Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
sse.h File Reference
#include <xmmintrin.h>
+ Include dependency graph for sse.h:

Go to the source code of this file.

Macros

#define POLY0(x, c0)   _mm_set1_ps(c0)
 
#define POLY1(x, c0, c1)   _mm_add_ps(_mm_mul_ps(POLY0(x, c1), x), _mm_set1_ps(c0))
 
#define POLY2(x, c0, c1, c2)   _mm_add_ps(_mm_mul_ps(POLY1(x, c1, c2), x), _mm_set1_ps(c0))
 
#define POLY3(x, c0, c1, c2, c3)   _mm_add_ps(_mm_mul_ps(POLY2(x, c1, c2, c3), x), _mm_set1_ps(c0))
 
#define POLY4(x, c0, c1, c2, c3, c4)   _mm_add_ps(_mm_mul_ps(POLY3(x, c1, c2, c3, c4), x), _mm_set1_ps(c0))
 
#define POLY5(x, c0, c1, c2, c3, c4, c5)   _mm_add_ps(_mm_mul_ps(POLY4(x, c1, c2, c3, c4, c5), x), _mm_set1_ps(c0))
 
#define EXP_POLY_DEGREE   4
 
#define LOG_POLY_DEGREE   5
 

Functions

static __m128 _mm_exp2_ps (__m128 x)
 
static __m128 _mm_log2_ps (__m128 x)
 
static __m128 _mm_pow_ps (__m128 x, __m128 y)
 
static __m128 _mm_pow_ps1 (__m128 x, float y)
 
static float _mm_vectorGetByIndex (__m128 V, unsigned int i)
 

Macro Definition Documentation

◆ EXP_POLY_DEGREE

#define EXP_POLY_DEGREE   4

◆ LOG_POLY_DEGREE

#define LOG_POLY_DEGREE   5

◆ POLY0

#define POLY0 (   x,
  c0 
)    _mm_set1_ps(c0)

Fast SSE2 implementation of special math functions.

◆ POLY1

#define POLY1 (   x,
  c0,
  c1 
)    _mm_add_ps(_mm_mul_ps(POLY0(x, c1), x), _mm_set1_ps(c0))

◆ POLY2

#define POLY2 (   x,
  c0,
  c1,
  c2 
)    _mm_add_ps(_mm_mul_ps(POLY1(x, c1, c2), x), _mm_set1_ps(c0))

◆ POLY3

#define POLY3 (   x,
  c0,
  c1,
  c2,
  c3 
)    _mm_add_ps(_mm_mul_ps(POLY2(x, c1, c2, c3), x), _mm_set1_ps(c0))

◆ POLY4

#define POLY4 (   x,
  c0,
  c1,
  c2,
  c3,
  c4 
)    _mm_add_ps(_mm_mul_ps(POLY3(x, c1, c2, c3, c4), x), _mm_set1_ps(c0))

◆ POLY5

#define POLY5 (   x,
  c0,
  c1,
  c2,
  c3,
  c4,
  c5 
)    _mm_add_ps(_mm_mul_ps(POLY4(x, c1, c2, c3, c4, c5), x), _mm_set1_ps(c0))

Function Documentation

◆ _mm_exp2_ps()

static __m128 _mm_exp2_ps ( __m128  x)
inlinestatic

◆ _mm_log2_ps()

static __m128 _mm_log2_ps ( __m128  x)
inlinestatic

◆ _mm_pow_ps()

static __m128 _mm_pow_ps ( __m128  x,
__m128  y 
)
inlinestatic

References _mm_exp2_ps(), and _mm_log2_ps().

◆ _mm_pow_ps1()

static __m128 _mm_pow_ps1 ( __m128  x,
float  y 
)
inlinestatic

References _mm_exp2_ps(), and _mm_log2_ps().

◆ _mm_vectorGetByIndex()

static float _mm_vectorGetByIndex ( __m128  V,
unsigned int  i 
)
inlinestatic

Allow access of the content of a SSE vector