Acosh.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_FUNCTORS_ACOSH_H_
36 #define _BLAZE_MATH_FUNCTORS_ACOSH_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
44 #include <blaze/math/shims/Acosh.h>
45 #include <blaze/math/simd/Acosh.h>
47 #include <blaze/system/Inline.h>
48 
49 
50 namespace blaze {
51 
52 //=================================================================================================
53 //
54 // CLASS DEFINITION
55 //
56 //=================================================================================================
57 
58 //*************************************************************************************************
62 struct Acosh
63 {
64  //**********************************************************************************************
67  explicit inline Acosh()
68  {}
69  //**********************************************************************************************
70 
71  //**********************************************************************************************
77  template< typename T >
78  BLAZE_ALWAYS_INLINE decltype(auto) operator()( const T& a ) const
79  {
80  return acosh( a );
81  }
82  //**********************************************************************************************
83 
84  //**********************************************************************************************
89  template< typename T >
90  static constexpr bool simdEnabled() { return HasSIMDAcosh<T>::value; }
91  //**********************************************************************************************
92 
93  //**********************************************************************************************
99  template< typename T >
100  BLAZE_ALWAYS_INLINE decltype(auto) load( const T& a ) const
101  {
103  return acosh( a );
104  }
105  //**********************************************************************************************
106 };
107 //*************************************************************************************************
108 
109 } // namespace blaze
110 
111 #endif
decltype(auto) acosh(const DenseMatrix< MT, SO > &dm)
Computes the inverse hyperbolic cosine for each single element of the dense matrix dm...
Definition: DMatMapExpr.h:2033
Availability of a SIMD inverse hyperbolic cosine operation for the given data type.Depending on the available instruction set (SSE, SSE2, SSE3, SSE4, AVX, AVX2, MIC, ...) and the used compiler, this type trait provides the information whether a SIMD inverse hyperbolic cosine operation exists for the given data type T (ignoring the cv-qualifiers). In case the SIMD operation is available, the value member constant is set to true, the nested type definition Type is TrueType, and the class derives from TrueType. Otherwise value is set to false, Type is FalseType, and the class derives from FalseType. The following example assumes that the Intel SVML is available:
Definition: HasSIMDAcosh.h:110
decltype(auto) BLAZE_ALWAYS_INLINE load(const T &a) const
Returns the result of the acosh() function for the given SIMD vector.
Definition: Acosh.h:100
Generic wrapper for the acosh() function.
Definition: Acosh.h:62
Acosh()
Default constructor of the Acosh functor.
Definition: Acosh.h:67
#define BLAZE_CONSTRAINT_MUST_BE_SIMD_PACK(T)
Constraint on the data type.In case the given data type T is not a SIMD pack, a compilation error is ...
Definition: SIMDPack.h:60
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
#define BLAZE_ALWAYS_INLINE
Platform dependent setup of an enforced inline keyword.
Definition: Inline.h:85
Constraint on the data type.
Header file for the acosh shim.
Header file for the HasSIMDAcosh type trait.
Header file for the SIMD inverse hyperbolic cosine functionality.
static constexpr bool simdEnabled()
Returns whether SIMD is enabled for the specified data type T.
Definition: Acosh.h:90
System settings for the inline keywords.