Acos.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_FUNCTORS_ACOS_H_
36 #define _BLAZE_MATH_FUNCTORS_ACOS_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
44 #include <blaze/math/shims/Acos.h>
45 #include <blaze/math/simd/Acos.h>
47 #include <blaze/system/Inline.h>
48 
49 
50 namespace blaze {
51 
52 //=================================================================================================
53 //
54 // CLASS DEFINITION
55 //
56 //=================================================================================================
57 
58 //*************************************************************************************************
62 struct Acos
63 {
64  //**********************************************************************************************
67  explicit inline Acos()
68  {}
69  //**********************************************************************************************
70 
71  //**********************************************************************************************
77  template< typename T >
78  BLAZE_ALWAYS_INLINE decltype(auto) operator()( const T& a ) const
79  {
80  return acos( a );
81  }
82  //**********************************************************************************************
83 
84  //**********************************************************************************************
89  template< typename T >
90  static constexpr bool simdEnabled() { return HasSIMDAcos<T>::value; }
91  //**********************************************************************************************
92 
93  //**********************************************************************************************
99  template< typename T >
100  BLAZE_ALWAYS_INLINE decltype(auto) load( const T& a ) const
101  {
103  return acos( a );
104  }
105  //**********************************************************************************************
106 };
107 //*************************************************************************************************
108 
109 } // namespace blaze
110 
111 #endif
Header file for the acos shim.
decltype(auto) acos(const DenseMatrix< MT, SO > &dm)
Computes the inverse cosine for each single element of the dense matrix dm.
Definition: DMatMapExpr.h:1972
#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 SIMD inverse cosine functionality.
Header file for the HasSIMDAcos type trait.
static constexpr bool simdEnabled()
Returns whether SIMD is enabled for the specified data type T.
Definition: Acos.h:90
decltype(auto) BLAZE_ALWAYS_INLINE load(const T &a) const
Returns the result of the acos() function for the given SIMD vector.
Definition: Acos.h:100
Generic wrapper for the acos() function.
Definition: Acos.h:62
Acos()
Default constructor of the Acos functor.
Definition: Acos.h:67
System settings for the inline keywords.
Availability of a SIMD inverse cosine operation for the given data type.Depending on the available in...
Definition: HasSIMDAcos.h:110