Home --> Documentations --> PJLIB Reference

Data Structures | Macros | Functions
Mathematics and Statistics

Data Structures

struct  pj_math_stat


#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))


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).

Macro Definition Documentation

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

Mathematical macro

#define PJ_PI   3.14159265358979323846 /* pi */

Mathematical constants

Function Documentation

unsigned pj_isqrt ( unsigned  i)

Calculate integer square root of an integer.

iInteger to be calculated.
Square root result.

Referenced by pj_math_stat_get_stddev().

unsigned pj_math_stat_get_stddev ( const pj_math_stat stat)

Get the standard deviation of specified statistics state.

statStatistic state.
The standard deviation.

References pj_isqrt().

void pj_math_stat_init ( pj_math_stat stat)

Initialize statistics state.

statStatistic state.

References pj_bzero().

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.

statStatistic state.
devThe standard deviation.
void pj_math_stat_update ( pj_math_stat stat,
int  val 

Update statistics state as a new sample comes.

statStatistic state.
valThe new sample data.

References int().


PJLIB Open Source, high performance, small footprint, and very very portable framework
Copyright (C) 2006-2009 Teluu Inc.