OpenWareLaboratory
basicmaths.h File Reference
Include dependency graph for basicmaths.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define _USE_MATH_DEFINES
 
#define abs(x)   ((x)>0?(x):-(x))
 
#define clamp(x, lo, hi)   ((x)>(hi)?(hi):((x)<(lo)?(lo):(x)))
 
#define M_PI   3.14159265358979323846
 
#define M_SQRT2   1.41421356237309504880
 
#define max(a, b)   ((a)>(b)?(a):(b))
 
#define min(a, b)   ((a)<(b)?(a):(b))
 

Functions

uint32_t arm_rand32 ()
 Generate an unsigned 32bit pseudo-random number using xorshifter algorithm. More...
 
float arm_sqrtf (float in)
 
void arm_srand32 (uint32_t s)
 
float fast_atan2f (float a, float b)
 
float fast_exp10f (float x)
 
float fast_exp2f (float x)
 
float fast_expf (float x)
 
float fast_fmodf (float x, float y)
 
float fast_log10f (float x)
 
float fast_log2f (float x)
 
uint32_t fast_log2i (uint32_t x)
 
void fast_log_set_table (const float *table, int size)
 
float fast_logf (float x)
 
void fast_pow_set_table (const uint32_t *table, int size)
 
float fast_powf (float x, float y)
 
float randf ()
 generate a random number between 0 and 1 More...
 

Macro Definition Documentation

◆ _USE_MATH_DEFINES

#define _USE_MATH_DEFINES

Definition at line 8 of file basicmaths.h.

◆ abs

#define abs (   x)    ((x)>0?(x):-(x))

Definition at line 44 of file basicmaths.h.

◆ clamp

#define clamp (   x,
  lo,
  hi 
)    ((x)>(hi)?(hi):((x)<(lo)?(lo):(x)))

Definition at line 47 of file basicmaths.h.

◆ M_PI

#define M_PI   3.14159265358979323846

Definition at line 52 of file basicmaths.h.

◆ M_SQRT2

#define M_SQRT2   1.41421356237309504880

Definition at line 55 of file basicmaths.h.

◆ max

#define max (   a,
 
)    ((a)>(b)?(a):(b))

Definition at line 41 of file basicmaths.h.

◆ min

#define min (   a,
 
)    ((a)<(b)?(a):(b))

Definition at line 38 of file basicmaths.h.

Function Documentation

◆ arm_rand32()

uint32_t arm_rand32 ( )

Generate an unsigned 32bit pseudo-random number using xorshifter algorithm.

Aka xorshifter32. "Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin." – John von Neumann.

Definition at line 67 of file basicmaths.c.

References r32seed.

Referenced by WhiteNoiseGenerator::generate(), and randf().

◆ arm_sqrtf()

float arm_sqrtf ( float  in)

Definition at line 78 of file basicmaths.c.

◆ arm_srand32()

void arm_srand32 ( uint32_t  s)

Definition at line 58 of file basicmaths.c.

References r32seed.

◆ fast_atan2f()

float fast_atan2f ( float  a,
float  b 
)

Definition at line 91 of file basicmaths.c.

References M_PI.

◆ fast_exp10f()

float fast_exp10f ( float  x)

Definition at line 133 of file basicmaths.c.

References M_LOG210, pow_precision, pow_table, and powFastLookup().

◆ fast_exp2f()

float fast_exp2f ( float  x)

Definition at line 129 of file basicmaths.c.

References pow_precision, pow_table, and powFastLookup().

◆ fast_expf()

float fast_expf ( float  x)

Definition at line 125 of file basicmaths.c.

References pow_precision, pow_table, and powFastLookup().

◆ fast_fmodf()

float fast_fmodf ( float  x,
float  y 
)

Definition at line 161 of file basicmaths.c.

◆ fast_log10f()

float fast_log10f ( float  x)

Definition at line 141 of file basicmaths.c.

References icsi_log(), log_precision, and log_table.

◆ fast_log2f()

float fast_log2f ( float  x)

Definition at line 146 of file basicmaths.c.

References icsi_log(), log_precision, and log_table.

◆ fast_log2i()

uint32_t fast_log2i ( uint32_t  x)

Definition at line 166 of file basicmaths.c.

Referenced by fast_log_set_table(), and fast_pow_set_table().

◆ fast_log_set_table()

void fast_log_set_table ( const float *  table,
int  size 
)

Definition at line 156 of file basicmaths.c.

References fast_log2i(), log_precision, and log_table.

◆ fast_logf()

float fast_logf ( float  x)

Definition at line 137 of file basicmaths.c.

References icsi_log(), log_precision, and log_table.

◆ fast_pow_set_table()

void fast_pow_set_table ( const uint32_t *  table,
int  size 
)

Definition at line 151 of file basicmaths.c.

References fast_log2i(), pow_precision, and pow_table.

◆ fast_powf()

float fast_powf ( float  x,
float  y 
)

Definition at line 121 of file basicmaths.c.

References pow_precision, pow_table, and powFastLookup().

◆ randf()

float randf ( )

generate a random number between 0 and 1

Definition at line 74 of file basicmaths.c.

References arm_rand32().

Referenced by WhiteNoiseGenerator::generate(), GaussianNoiseGenerator::generate(), NoiseOscillator::generate(), FloatArray::noise(), and NoiseOscillator::reset().