Home --> Documentations --> PJLIB Reference

Mathematics and Statistics

## Data Structures

struct  pj_math_stat

## Macros

#define PJ_PI   3.14159265358979323846 /* pi */

#define PJ_1_PI   0.318309886183790671538 /* 1/pi */

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

#define PJ_MAX(x, y)   ((x) > (y)? (x) : (y))

#define PJ_MIN(x, y)   ((x) < (y)? (x) : (y))

## Functions

unsigned pj_isqrt (unsigned i)

void pj_math_stat_init (pj_math_stat *stat)

void pj_math_stat_update (pj_math_stat *stat, int val)

unsigned pj_math_stat_get_stddev (const pj_math_stat *stat)

void pj_math_stat_set_stddev (pj_math_stat *stat, unsigned dev)

## Detailed Description

Provides common mathematics constants and operations, and also standard statistics calculation (min, max, mean, standard deviation). Statistics calculation is done in realtime (statistics state is updated on time each new sample comes).

## ◆ PJ_ABS

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

Mathematical macro

## ◆ PJ_PI

 #define PJ_PI   3.14159265358979323846 /* pi */

Mathematical constants

## ◆ pj_isqrt()

 unsigned pj_isqrt ( unsigned i )

Calculate integer square root of an integer.

Parameters
 i Integer to be calculated.
Returns
Square root result.

Referenced by pj_math_stat_get_stddev().

## ◆ pj_math_stat_get_stddev()

 unsigned pj_math_stat_get_stddev ( const pj_math_stat * stat )

Get the standard deviation of specified statistics state.

Parameters
 stat Statistic state.
Returns
The standard deviation.

References pj_isqrt().

## ◆ pj_math_stat_init()

 void pj_math_stat_init ( pj_math_stat * stat )

Initialize statistics state.

Parameters
 stat Statistic state.

References pj_bzero().

## ◆ pj_math_stat_set_stddev()

 void pj_math_stat_set_stddev ( pj_math_stat * stat, unsigned dev )

Set the standard deviation of statistics state. This is useful when the statistic state is operated in 'read-only' mode as a storage of statistical data.

Parameters
 stat Statistic state. dev The standard deviation.

## ◆ pj_math_stat_update()

 void pj_math_stat_update ( pj_math_stat * stat, int val )

Update statistics state as a new sample comes.

Parameters
 stat Statistic state. val The new sample data.

References int().

PJLIB Open Source, high performance, small footprint, and very very portable framework