Data Structures | Macros | Typedefs | Functions
MATH

Data Structures

struct  _MATH_Vec2_
 Defines a two element vector. More...
 
struct  _MATH_Vec3_
 Defines a three element vector. More...
 
struct  _MATH_cplx_vec2_
 Defines a two element vector. More...
 
struct  _MATH_cplx_vec3_
 Defines a three element vector. More...
 

Macros

#define MATH_Nm_TO_lbin_SF   ((float32_t)(8.8507457913f))
 Defines conversion scale factor from N*m to lb*in. More...
 
#define MATH_TWO_OVER_THREE   ((float32_t)(0.6666666666666666666666666667f))
 Defines 2/3. More...
 
#define MATH_ONE_OVER_THREE   ((float32_t)(0.3333333333333333333333333333f))
 Defines 1/3. More...
 
#define MATH_ONE_OVER_PI   ((float32_t)(0.318309886183791f))
 Defines 1/(pi) More...
 
#define MATH_SQRT_TWO   ((float32_t)(1.414213562373095f))
 Defines sqrt(2) More...
 
#define MATH_SQRT_THREE   ((float32_t)(1.73205080756887f))
 Defines sqrt(3) More...
 
#define MATH_ONE_OVER_SQRT_THREE   ((float32_t)(0.5773502691896257645091487805f))
 Defines 1/sqrt(3) More...
 
#define MATH_ONE_OVER_FOUR_PI   ((float32_t)(0.07957747154594767f))
 Defines 1/(4*pi) More...
 
#define MATH_ONE_OVER_TWO_PI   ((float32_t) (0.1591549430918954f))
 Defines 1/(2*pi) More...
 
#define MATH_PI   ((float32_t)(3.1415926535897932384626433832f))
 Defines pi. More...
 
#define MATH_PI_PU   ((float32_t)(0.5f))
 Defines pi per unit. More...
 
#define MATH_TWO_PI   ((float32_t)(6.283185307179586f))
 Defines 2*pi. More...
 
#define MATH_TWO_PI_PU   ((float32_t)(1.0f))
 Defines 2*pi per unit. More...
 
#define MATH_FOUR_PI   ((float32_t)(12.56637061435917f))
 Defines 4*pi. More...
 
#define MATH_FOUR_PI_PU   ((float32_t)(2.0f))
 Defines 4*pi per unit. More...
 
#define MATH_PI_OVER_TWO   ((float32_t)(1.570796326794897f))
 Defines pi/2. More...
 
#define MATH_PI_OVER_TWO_PU   ((float32_t)(0.25f))
 Defines pi/2 per unit. More...
 
#define MATH_PI_OVER_THREE   ((float32_t)(1.047197551196598f))
 Defines pi/3. More...
 
#define MATH_PI_OVER_FOUR   ((float32_t)(0.785398163397448f))
 Defines pi/4. More...
 
#define MATH_PI_OVER_FOUR_PU   ((float32_t)(0.125f))
 Defines pi/4 per unit. More...
 
#define MATH_SIX_PI   ((float32_t)(18.8495559215f))
 Defines 6*pi. More...
 
#define MATH_SQRTTHREE_OVER_TWO   ((float32_t)(0.8660254038f))
 Defines sqrt(3)/2. More...
 

Typedefs

typedef struct _MATH_Vec2_ MATH_Vec2
 Defines a two element vector. More...
 
typedef MATH_Vec2 MATH_vec2
 
typedef struct _MATH_Vec3_ MATH_Vec3
 Defines a three element vector. More...
 
typedef MATH_Vec3 MATH_vec3
 
typedef struct _MATH_cplx_vec2_ MATH_cplx_vec2
 Defines a two element vector. More...
 
typedef struct _MATH_cplx_vec3_ MATH_cplx_vec3
 Defines a three element vector. More...
 

Functions

static float32_t MATH_abs (const float32_t in)
 Finds the absolute value. More...
 
static float32_t MATH_max (const float32_t in1, const float32_t in2)
 Finds the maximum value between the twp input values. More...
 
static float32_t MATH_min (const float32_t in1, const float32_t in2)
 Finds the minimum value between the twp input values. More...
 
static float32_t MATH_incrAngle (const float32_t angle_rad, const float32_t angleDelta_rad)
 Increments an angle value and handles wrap-around. More...
 
static float32_t MATH_sat (const float32_t in, const float32_t max, const float32_t min)
 Saturates the input value between the minimum and maximum values. More...
 
static float32_t cAbsSq (const cplx_float_t *x1)
 Finds the absolute value. More...
 
static float32_t MATH_sign (const float32_t in)
 
static void MATH_mult_cc (cplx_float_t *x1, cplx_float_t *x2, cplx_float_t *y)
 
static void MATH_add_cc (cplx_float_t *x1, cplx_float_t *x2, cplx_float_t *y)
 
static void MATH_sub_cc (cplx_float_t *x1, cplx_float_t *x2, cplx_float_t *y)
 
static void MATH_mult_rc (float32_t x1, cplx_float_t *x2, cplx_float_t *y)
 
static void MATH_add_rc (float32_t x1, cplx_float_t *x2, cplx_float_t *y)
 
static void MATH_sub_rc (float32_t x1, cplx_float_t *x2, cplx_float_t *y)
 
static void MATH_sub_cr (cplx_float_t *x1, float32_t x2, cplx_float_t *y)
 

Detailed Description

Macro Definition Documentation

◆ MATH_Nm_TO_lbin_SF

#define MATH_Nm_TO_lbin_SF   ((float32_t)(8.8507457913f))

Defines conversion scale factor from N*m to lb*in.

◆ MATH_TWO_OVER_THREE

#define MATH_TWO_OVER_THREE   ((float32_t)(0.6666666666666666666666666667f))

Defines 2/3.

◆ MATH_ONE_OVER_THREE

#define MATH_ONE_OVER_THREE   ((float32_t)(0.3333333333333333333333333333f))

Defines 1/3.

◆ MATH_ONE_OVER_PI

#define MATH_ONE_OVER_PI   ((float32_t)(0.318309886183791f))

Defines 1/(pi)

◆ MATH_SQRT_TWO

#define MATH_SQRT_TWO   ((float32_t)(1.414213562373095f))

Defines sqrt(2)

◆ MATH_SQRT_THREE

#define MATH_SQRT_THREE   ((float32_t)(1.73205080756887f))

Defines sqrt(3)

◆ MATH_ONE_OVER_SQRT_THREE

#define MATH_ONE_OVER_SQRT_THREE   ((float32_t)(0.5773502691896257645091487805f))

Defines 1/sqrt(3)

◆ MATH_ONE_OVER_FOUR_PI

#define MATH_ONE_OVER_FOUR_PI   ((float32_t)(0.07957747154594767f))

Defines 1/(4*pi)

◆ MATH_ONE_OVER_TWO_PI

#define MATH_ONE_OVER_TWO_PI   ((float32_t) (0.1591549430918954f))

Defines 1/(2*pi)

◆ MATH_PI

#define MATH_PI   ((float32_t)(3.1415926535897932384626433832f))

Defines pi.

◆ MATH_PI_PU

#define MATH_PI_PU   ((float32_t)(0.5f))

Defines pi per unit.

◆ MATH_TWO_PI

#define MATH_TWO_PI   ((float32_t)(6.283185307179586f))

Defines 2*pi.

◆ MATH_TWO_PI_PU

#define MATH_TWO_PI_PU   ((float32_t)(1.0f))

Defines 2*pi per unit.

◆ MATH_FOUR_PI

#define MATH_FOUR_PI   ((float32_t)(12.56637061435917f))

Defines 4*pi.

◆ MATH_FOUR_PI_PU

#define MATH_FOUR_PI_PU   ((float32_t)(2.0f))

Defines 4*pi per unit.

◆ MATH_PI_OVER_TWO

#define MATH_PI_OVER_TWO   ((float32_t)(1.570796326794897f))

Defines pi/2.

◆ MATH_PI_OVER_TWO_PU

#define MATH_PI_OVER_TWO_PU   ((float32_t)(0.25f))

Defines pi/2 per unit.

◆ MATH_PI_OVER_THREE

#define MATH_PI_OVER_THREE   ((float32_t)(1.047197551196598f))

Defines pi/3.

◆ MATH_PI_OVER_FOUR

#define MATH_PI_OVER_FOUR   ((float32_t)(0.785398163397448f))

Defines pi/4.

◆ MATH_PI_OVER_FOUR_PU

#define MATH_PI_OVER_FOUR_PU   ((float32_t)(0.125f))

Defines pi/4 per unit.

◆ MATH_SIX_PI

#define MATH_SIX_PI   ((float32_t)(18.8495559215f))

Defines 6*pi.

◆ MATH_SQRTTHREE_OVER_TWO

#define MATH_SQRTTHREE_OVER_TWO   ((float32_t)(0.8660254038f))

Defines sqrt(3)/2.

Typedef Documentation

◆ MATH_Vec2

typedef struct _MATH_Vec2_ MATH_Vec2

Defines a two element vector.

◆ MATH_vec2

◆ MATH_Vec3

typedef struct _MATH_Vec3_ MATH_Vec3

Defines a three element vector.

◆ MATH_vec3

◆ MATH_cplx_vec2

Defines a two element vector.

◆ MATH_cplx_vec3

Defines a three element vector.

Function Documentation

◆ MATH_abs()

static float32_t MATH_abs ( const float32_t  in)
inlinestatic

Finds the absolute value.

Parameters
[in]inThe input value
Returns
The absolute value

Referenced by MTPA_computeCurrentReference().

◆ MATH_max()

static float32_t MATH_max ( const float32_t  in1,
const float32_t  in2 
)
inlinestatic

Finds the maximum value between the twp input values.

Parameters
[in]inThe input values
Returns
The absolute value

◆ MATH_min()

static float32_t MATH_min ( const float32_t  in1,
const float32_t  in2 
)
inlinestatic

Finds the minimum value between the twp input values.

Parameters
[in]inThe input values
Returns
The absolute value

◆ MATH_incrAngle()

static float32_t MATH_incrAngle ( const float32_t  angle_rad,
const float32_t  angleDelta_rad 
)
inlinestatic

Increments an angle value and handles wrap-around.

Parameters
[in]angle_radThe angle value, rad
[in]angleDelta_radThe angle increment value, rad
Returns
The incremented angle value, rad

References MATH_PI, and MATH_TWO_PI.

◆ MATH_sat()

static float32_t MATH_sat ( const float32_t  in,
const float32_t  max,
const float32_t  min 
)
inlinestatic

Saturates the input value between the minimum and maximum values.

Parameters
[in]inThe input value
[in]maxThe maximum value allowed
[in]minThe minimum value allowed
Returns
The saturated value

Referenced by PI_run(), PI_run_parallel(), PI_run_series(), PID_run_parallel(), PID_run_series(), and TRAJ_run().

◆ cAbsSq()

static float32_t cAbsSq ( const cplx_float_t x1)
inlinestatic

Finds the absolute value.

Parameters
[in]inThe input value
Returns
The absolute value

References _cplx_float_t::imag, and _cplx_float_t::real.

◆ MATH_sign()

static float32_t MATH_sign ( const float32_t  in)
inlinestatic

◆ MATH_mult_cc()

static void MATH_mult_cc ( cplx_float_t x1,
cplx_float_t x2,
cplx_float_t y 
)
inlinestatic

◆ MATH_add_cc()

static void MATH_add_cc ( cplx_float_t x1,
cplx_float_t x2,
cplx_float_t y 
)
inlinestatic

◆ MATH_sub_cc()

static void MATH_sub_cc ( cplx_float_t x1,
cplx_float_t x2,
cplx_float_t y 
)
inlinestatic

◆ MATH_mult_rc()

static void MATH_mult_rc ( float32_t  x1,
cplx_float_t x2,
cplx_float_t y 
)
inlinestatic

◆ MATH_add_rc()

static void MATH_add_rc ( float32_t  x1,
cplx_float_t x2,
cplx_float_t y 
)
inlinestatic

◆ MATH_sub_rc()

static void MATH_sub_rc ( float32_t  x1,
cplx_float_t x2,
cplx_float_t y 
)
inlinestatic

◆ MATH_sub_cr()

static void MATH_sub_cr ( cplx_float_t x1,
float32_t  x2,
cplx_float_t y 
)
inlinestatic

Copyright 2023, Texas Instruments Incorporated