35#ifndef _BLAZE_MATH_TYPETRAITS_HASINVSQRT_H_
36#define _BLAZE_MATH_TYPETRAITS_HASINVSQRT_H_
64template<
typename T,
typename =
void >
65struct HasInvSqrtHelper
79struct HasInvSqrtHelper< T,
Void_t< decltype(
invsqrt( std::declval<T>() ) ) > >
107template<
typename T,
typename =
void >
109 :
public HasInvSqrtHelper<T>
119template<
typename T >
121 :
public HasInvSqrt< typename T::ElementType >
132template<
typename T >
134 :
public HasInvSqrt< typename T::ElementType >
153template<
typename T >
Header file for the EnableIf class template.
Header file for the IntegralConstant class template.
Header file for the IsMatrix type trait.
Header file for the IsVector type trait.
decltype(auto) invsqrt(const DenseMatrix< MT, SO > &dm)
Computes the inverse square root of each single element of the dense matrix dm.
Definition: DMatMapExpr.h:1647
constexpr bool HasInvSqrt_v
Auxiliary variable template for the HasInvSqrt type trait.
Definition: HasInvSqrt.h:154
constexpr bool IsVector_v
Auxiliary variable template for the IsVector type trait.
Definition: IsVector.h:125
constexpr bool IsMatrix_v
Auxiliary variable template for the IsMatrix type trait.
Definition: IsMatrix.h:124
void Void_t
Compile time type check.
Definition: Void.h:64
BoolConstant< true > TrueType
Type traits base class.
Definition: IntegralConstant.h:132
BoolConstant< false > FalseType
Type/value traits base class.
Definition: IntegralConstant.h:121
typename EnableIf< Condition, T >::Type EnableIf_t
Auxiliary type for the EnableIf class template.
Definition: EnableIf.h:138
Availability of the invsqrt() operation for the given data types.
Definition: HasInvSqrt.h:110
Header file for the Void type trait.