Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
libavutil
mathematics.h
Go to the documentation of this file.
1
/*
2
* copyright (c) 2005 Michael Niedermayer <michaelni@gmx.at>
3
*
4
* This file is part of Libav.
5
*
6
* Libav is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* Libav is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with Libav; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
21
#ifndef AVUTIL_MATHEMATICS_H
22
#define AVUTIL_MATHEMATICS_H
23
24
#include <stdint.h>
25
#include <math.h>
26
#include "
attributes.h
"
27
#include "
rational.h
"
28
29
#ifndef M_E
30
#define M_E 2.7182818284590452354
/* e */
31
#endif
32
#ifndef M_LN2
33
#define M_LN2 0.69314718055994530942
/* log_e 2 */
34
#endif
35
#ifndef M_LN10
36
#define M_LN10 2.30258509299404568402
/* log_e 10 */
37
#endif
38
#ifndef M_LOG2_10
39
#define M_LOG2_10 3.32192809488736234787
/* log_2 10 */
40
#endif
41
#ifndef M_PHI
42
#define M_PHI 1.61803398874989484820
/* phi / golden ratio */
43
#endif
44
#ifndef M_PI
45
#define M_PI 3.14159265358979323846
/* pi */
46
#endif
47
#ifndef M_SQRT1_2
48
#define M_SQRT1_2 0.70710678118654752440
/* 1/sqrt(2) */
49
#endif
50
#ifndef M_SQRT2
51
#define M_SQRT2 1.41421356237309504880
/* sqrt(2) */
52
#endif
53
#ifndef NAN
54
#define NAN (0.0/0.0)
55
#endif
56
#ifndef INFINITY
57
#define INFINITY (1.0/0.0)
58
#endif
59
66
enum
AVRounding
{
67
AV_ROUND_ZERO
= 0,
68
AV_ROUND_INF
= 1,
69
AV_ROUND_DOWN
= 2,
70
AV_ROUND_UP
= 3,
71
AV_ROUND_NEAR_INF
= 5,
72
};
73
79
int64_t
av_const
av_gcd
(int64_t a, int64_t
b
);
80
85
int64_t
av_rescale
(int64_t a, int64_t
b
, int64_t c)
av_const
;
86
91
int64_t
av_rescale_rnd
(int64_t a, int64_t
b
, int64_t c,
enum
AVRounding
)
av_const
;
92
96
int64_t
av_rescale_q
(int64_t a,
AVRational
bq,
AVRational
cq) av_const;
97
104
int
av_compare_ts
(int64_t ts_a,
AVRational
tb_a, int64_t ts_b,
AVRational
tb_b);
105
116
int64_t
av_compare_mod
(uint64_t a, uint64_t b, uint64_t mod);
117
122
#endif
/* AVUTIL_MATHEMATICS_H */