35#ifndef _BLAZE_MATH_SIMD_INVCBRT_H_
36#define _BLAZE_MATH_SIMD_INVCBRT_H_
67#if BLAZE_SVML_MODE && BLAZE_AVX512F_MODE
69 return _mm512_recip_ps( _mm512_cbrt_ps( (*a).eval().value ) );
71#elif BLAZE_SVML_MODE && BLAZE_AVX_MODE
73 return _mm256_invcbrt_ps( (*a).eval().value );
75#elif BLAZE_SVML_MODE && BLAZE_SSE_MODE
77 return _mm_invcbrt_ps( (*a).eval().value );
102template<
typename T >
104#if BLAZE_SVML_MODE && BLAZE_AVX512F_MODE
106 return _mm512_recip_pd( _mm512_cbrt_pd( (*a).eval().value ) );
108#elif BLAZE_SVML_MODE && BLAZE_AVX_MODE
110 return _mm256_invcbrt_pd( (*a).eval().value );
112#elif BLAZE_SVML_MODE && BLAZE_SSE_MODE
114 return _mm_invcbrt_pd( (*a).eval().value );
Header file for the basic SIMD types.
SIMD type for 64-bit double precision floating point data values.
SIMD type for 32-bit single precision floating point data values.
BLAZE_ALWAYS_INLINE const SIMDdouble invcbrt(const SIMDf64< T > &a) noexcept=delete
Computes the inverse cubic root for a vector of double precision floating point values.
#define BLAZE_ALWAYS_INLINE
Platform dependent setup of an enforced inline keyword.
Definition: Inline.h:85
System settings for the inline keywords.
System settings for the SSE mode.