27#ifndef AVUTIL_MATHEMATICS_H
28#define AVUTIL_MATHEMATICS_H
37#define M_E 2.7182818284590452354
40#define M_Ef 2.7182818284590452354f
43#define M_LN2 0.69314718055994530942
46#define M_LN2f 0.69314718055994530942f
49#define M_LN10 2.30258509299404568402
52#define M_LN10f 2.30258509299404568402f
55#define M_LOG2_10 3.32192809488736234787
58#define M_LOG2_10f 3.32192809488736234787f
61#define M_PHI 1.61803398874989484820
64#define M_PHIf 1.61803398874989484820f
67#define M_PI 3.14159265358979323846
70#define M_PIf 3.14159265358979323846f
73#define M_PI_2 1.57079632679489661923
76#define M_PI_2f 1.57079632679489661923f
79#define M_PI_4 0.78539816339744830962
82#define M_PI_4f 0.78539816339744830962f
85#define M_1_PI 0.31830988618379067154
88#define M_1_PIf 0.31830988618379067154f
91#define M_2_PI 0.63661977236758134308
94#define M_2_PIf 0.63661977236758134308f
97#define M_2_SQRTPI 1.12837916709551257390
100#define M_2_SQRTPIf 1.12837916709551257390f
103#define M_SQRT1_2 0.70710678118654752440
106#define M_SQRT1_2f 0.70710678118654752440f
109#define M_SQRT2 1.41421356237309504880
112#define M_SQRT2f 1.41421356237309504880f
115#define NAN av_int2float(0x7fc00000)
118#define INFINITY av_int2float(0x7f800000)
Macro definitions for various function/variable attributes.
int64_t av_add_stable(AVRational ts_tb, int64_t ts, AVRational inc_tb, int64_t inc)
Add a value to a timestamp.
int av_compare_ts(int64_t ts_a, AVRational tb_a, int64_t ts_b, AVRational tb_b)
Compare two timestamps each in its own time base.
int64_t av_rescale_delta(AVRational in_tb, int64_t in_ts, AVRational fs_tb, int duration, int64_t *last, AVRational out_tb)
Rescale a timestamp while preserving known durations.
int64_t av_rescale(int64_t a, int64_t b, int64_t c) av_const
Rescale a 64-bit integer with rounding to nearest.
int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding rnd) av_const
Rescale a 64-bit integer with specified rounding.
AVRounding
Rounding methods.
int64_t av_const av_gcd(int64_t a, int64_t b)
Compute the greatest common divisor of two integer operands.
int64_t av_rescale_q_rnd(int64_t a, AVRational bq, AVRational cq, enum AVRounding rnd) av_const
Rescale a 64-bit integer by 2 rational numbers with specified rounding.
double av_bessel_i0(double x)
0th order modified bessel function of the first kind.
int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq) av_const
Rescale a 64-bit integer by 2 rational numbers.
int64_t av_compare_mod(uint64_t a, uint64_t b, uint64_t mod)
Compare the remainders of two integer operands divided by a common divisor.
@ AV_ROUND_INF
Round away from zero.
@ AV_ROUND_ZERO
Round toward zero.
@ AV_ROUND_DOWN
Round toward -infinity.
@ AV_ROUND_PASS_MINMAX
Flag telling rescaling functions to pass INT64_MIN/MAX through unchanged, avoiding special cases for ...
@ AV_ROUND_UP
Round toward +infinity.
@ AV_ROUND_NEAR_INF
Round to nearest and halfway cases away from zero.
Utilties for rational number calculation.
Rational number (pair of numerator and denominator).