Defines | Enumerations | Functions

libavutil/mathematics.h File Reference

#include <stdint.h>
#include <math.h>
#include "attributes.h"
#include "rational.h"

Go to the source code of this file.

Defines

#define M_E   2.7182818284590452354
#define M_LN2   0.69314718055994530942
#define M_LN10   2.30258509299404568402
#define M_LOG2_10   3.32192809488736234787
#define M_PHI   1.61803398874989484820
#define M_PI   3.14159265358979323846
#define M_SQRT1_2   0.70710678118654752440
#define M_SQRT2   1.41421356237309504880
#define NAN   (0.0/0.0)
#define INFINITY   (1.0/0.0)

Enumerations

enum  AVRounding {
  AV_ROUND_ZERO = 0, AV_ROUND_INF = 1, AV_ROUND_DOWN = 2, AV_ROUND_UP = 3,
  AV_ROUND_NEAR_INF = 5, AV_ROUND_ZERO = 0, AV_ROUND_INF = 1, AV_ROUND_DOWN = 2,
  AV_ROUND_UP = 3, AV_ROUND_NEAR_INF = 5
}

Functions

int64_t av_const av_gcd (int64_t a, int64_t b)
 Return the greatest common divisor of a and b.
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) av_const
 Rescale a 64-bit integer with specified rounding.
int64_t av_rescale_q (int64_t a, AVRational bq, AVRational cq) av_const
 Rescale a 64-bit integer by 2 rational numbers.
int av_compare_ts (int64_t ts_a, AVRational tb_a, int64_t ts_b, AVRational tb_b)
 Compare 2 timestamps each in its own timebases.
int64_t av_compare_mod (uint64_t a, uint64_t b, uint64_t mod)
 Compare 2 integers modulo mod.

Define Documentation

#define INFINITY   (1.0/0.0)

Definition at line 57 of file mathematics.h.

#define M_E   2.7182818284590452354

Definition at line 30 of file mathematics.h.

#define M_LN10   2.30258509299404568402

Definition at line 36 of file mathematics.h.

#define M_LN2   0.69314718055994530942

Definition at line 33 of file mathematics.h.

#define M_LOG2_10   3.32192809488736234787

Definition at line 39 of file mathematics.h.

#define M_PHI   1.61803398874989484820

Definition at line 42 of file mathematics.h.

#define M_PI   3.14159265358979323846

Definition at line 45 of file mathematics.h.

#define M_SQRT1_2   0.70710678118654752440

Definition at line 48 of file mathematics.h.

#define M_SQRT2   1.41421356237309504880

Definition at line 51 of file mathematics.h.

#define NAN   (0.0/0.0)

Definition at line 54 of file mathematics.h.


Enumeration Type Documentation

enum AVRounding
Enumerator:
AV_ROUND_ZERO 

Round toward zero.

AV_ROUND_INF 

Round away from zero.

AV_ROUND_DOWN 

Round toward -infinity.

AV_ROUND_UP 

Round toward +infinity.

AV_ROUND_NEAR_INF 

Round to nearest and halfway cases away from zero.

AV_ROUND_ZERO 

Round toward zero.

AV_ROUND_INF 

Round away from zero.

AV_ROUND_DOWN 

Round toward -infinity.

AV_ROUND_UP 

Round toward +infinity.

AV_ROUND_NEAR_INF 

Round to nearest and halfway cases away from zero.

Definition at line 60 of file mathematics.h.


Function Documentation

int64_t av_compare_mod ( uint64_t  a,
uint64_t  b,
uint64_t  mod 
)

Compare 2 integers modulo mod.

That is we compare integers a and b for which only the least significant log2(mod) bits are known.

Parameters:
mod must be a power of 2
Returns:
a negative value if a is smaller than b a positive value if a is greater than b 0 if a equals b

Definition at line 150 of file mathematics.c.

int av_compare_ts ( int64_t  ts_a,
AVRational  tb_a,
int64_t  ts_b,
AVRational  tb_b 
)

Compare 2 timestamps each in its own timebases.

The result of the function is undefined if one of the timestamps is outside the int64_t range when represented in the others timebase.

Returns:
-1 if ts_a is before ts_b, 1 if ts_a is after ts_b or 0 if they represent the same position

Definition at line 140 of file mathematics.c.

int64_t av_const av_gcd ( int64_t  a,
int64_t  b 
)

Return the greatest common divisor of a and b.

If both a and b are 0 or either or both are <0 then behavior is undefined.

Definition at line 73 of file mathematics.c.

int64_t av_rescale ( int64_t  a,
int64_t  b,
int64_t  c 
) const

Rescale a 64-bit integer with rounding to nearest.

A simple a*b/c isn't possible as it can overflow.

Definition at line 130 of file mathematics.c.

int64_t av_rescale_q ( int64_t  a,
AVRational  bq,
AVRational  cq 
) const

Rescale a 64-bit integer by 2 rational numbers.

Definition at line 134 of file mathematics.c.

int64_t av_rescale_rnd ( int64_t  a,
int64_t  b,
int64_t  c,
enum  AVRounding 
) const

Rescale a 64-bit integer with specified rounding.

A simple a*b/c isn't possible as it can overflow.

Definition at line 78 of file mathematics.c.