VCV Rack API v2
Loading...
Searching...
No Matches
functions.hpp File Reference
#include <simd/Vector.hpp>
#include <simd/sse_mathfun_extension.h>
#include <common.hpp>
#include <math.hpp>
Include dependency graph for functions.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  rack
 Root namespace for the Rack API.
 
namespace  rack::simd
 Abstraction of aligned types for SIMD computation.
 

Macros

#define _MM_FROUND_NO_EXC   SIMDE_MM_FROUND_NO_EXC
 

Functions

float_4 rack::simd::andnot (float_4 a, float_4 b)
 ~a & b
 
int rack::simd::movemask (float_4 a)
 Returns an integer with each bit corresponding to the most significant bit of each element.
 
int rack::simd::movemask (int32_4 a)
 Returns an integer with each bit corresponding to the most significant bit of each element.
 
float_4 rack::simd::rsqrt (float_4 x)
 Returns the approximate reciprocal square root.
 
float_4 rack::simd::rcp (float_4 x)
 Returns the approximate reciprocal.
 
float rack::simd::ifelse (bool cond, float a, float b)
 
float_4 rack::simd::ifelse (float_4 mask, float_4 a, float_4 b)
 Given a mask, returns a if mask is 0xffffffff per element, b if mask is 0x00000000.
 
template<typename T >
rack::simd::movemaskInverse (int a)
 Returns a vector where element N is all 1's if the N'th bit of a is 1, or all 0's if the N'th bit of a is 0.
 
template<>
int32_4 rack::simd::movemaskInverse< int32_4 > (int a)
 
template<>
float_4 rack::simd::movemaskInverse< float_4 > (int a)
 
float_4 rack::simd::fmax (float_4 x, float_4 b)
 
float_4 rack::simd::fmin (float_4 x, float_4 b)
 
float_4 rack::simd::sqrt (float_4 x)
 
float_4 rack::simd::log (float_4 x)
 
float_4 rack::simd::log10 (float_4 x)
 
float_4 rack::simd::log2 (float_4 x)
 
float_4 rack::simd::exp (float_4 x)
 
float_4 rack::simd::sin (float_4 x)
 
float_4 rack::simd::cos (float_4 x)
 
float_4 rack::simd::tan (float_4 x)
 
float_4 rack::simd::atan (float_4 x)
 
float_4 rack::simd::atan2 (float_4 x, float_4 y)
 
float_4 rack::simd::trunc (float_4 a)
 
float_4 rack::simd::floor (float_4 a)
 
float_4 rack::simd::ceil (float_4 a)
 
float_4 rack::simd::round (float_4 a)
 
float_4 rack::simd::fmod (float_4 a, float_4 b)
 
float_4 rack::simd::hypot (float_4 a, float_4 b)
 
float_4 rack::simd::fabs (float_4 a)
 
float_4 rack::simd::abs (float_4 a)
 
float_4 rack::simd::abs (std::complex< float_4 > a)
 
float_4 rack::simd::arg (std::complex< float_4 > a)
 
float_4 rack::simd::pow (float_4 a, float_4 b)
 
float_4 rack::simd::pow (float a, float_4 b)
 
template<typename T >
rack::simd::pow (T a, int b)
 
float_4 rack::simd::clamp (float_4 x, float_4 a=0.f, float_4 b=1.f)
 
float_4 rack::simd::rescale (float_4 x, float_4 xMin, float_4 xMax, float_4 yMin, float_4 yMax)
 
float_4 rack::simd::crossfade (float_4 a, float_4 b, float_4 p)
 
float_4 rack::simd::sgn (float_4 x)
 

Macro Definition Documentation

◆ _MM_FROUND_NO_EXC

#define _MM_FROUND_NO_EXC   SIMDE_MM_FROUND_NO_EXC