integer.h File Reference

arbitrary precision integers More...

#include <stdint.h>
#include "common.h"
Include dependency graph for integer.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  AVInteger
 

Macros

#define AV_INTEGER_SIZE   8
 

Typedefs

typedef struct AVInteger AVInteger
 

Functions

AVInteger av_add_i (AVInteger a, AVInteger b) av_const
 
AVInteger av_sub_i (AVInteger a, AVInteger b) av_const
 
int av_log2_i (AVInteger a) av_const
 Return the rounded-down value of the base 2 logarithm of the given AVInteger. More...
 
AVInteger av_mul_i (AVInteger a, AVInteger b) av_const
 
int av_cmp_i (AVInteger a, AVInteger b) av_const
 Return 0 if a==b, 1 if a>b and -1 if a<b. More...
 
AVInteger av_shr_i (AVInteger a, int s) av_const
 bitwise shift More...
 
AVInteger av_mod_i (AVInteger *quot, AVInteger a, AVInteger b)
 Return a % b. More...
 
AVInteger av_div_i (AVInteger a, AVInteger b) av_const
 Return a/b. More...
 
AVInteger av_int2i (int64_t a) av_const
 Convert the given int64_t to an AVInteger. More...
 
int64_t av_i2int (AVInteger a) av_const
 Convert the given AVInteger to an int64_t. More...
 

Detailed Description

arbitrary precision integers

Author
Michael Niedermayer micha.nosp@m.elni.nosp@m.@gmx..nosp@m.at

Definition in file integer.h.

Macro Definition Documentation

#define AV_INTEGER_SIZE   8

Typedef Documentation

typedef struct AVInteger AVInteger

Function Documentation

AVInteger av_add_i ( AVInteger  a,
AVInteger  b 
) const

Definition at line 32 of file integer.c.

Referenced by av_i2int(), and av_rescale_rnd().

int av_cmp_i ( AVInteger  a,
AVInteger  b 
) const

Return 0 if a==b, 1 if a>b and -1 if a<b.

Definition at line 83 of file integer.c.

Referenced by av_mod_i().

AVInteger av_div_i ( AVInteger  a,
AVInteger  b 
) const

Return a/b.

Definition at line 133 of file integer.c.

Referenced by av_i2int(), and av_rescale_rnd().

int64_t av_i2int ( AVInteger  a) const

Convert the given AVInteger to an int64_t.

If the AVInteger is too large to fit into an int64_t, then only the least significant 64 bits will be used.

Definition at line 150 of file integer.c.

Referenced by av_i2int(), and av_rescale_rnd().

AVInteger av_int2i ( int64_t  a) const

Convert the given int64_t to an AVInteger.

Definition at line 139 of file integer.c.

Referenced by av_i2int(), and av_rescale_rnd().

int av_log2_i ( AVInteger  a) const

Return the rounded-down value of the base 2 logarithm of the given AVInteger.

This is simply the index of the most significant bit which is 1, or 0 if all bits are 0.

Definition at line 52 of file integer.c.

Referenced by av_i2int(), av_mod_i(), and av_mul_i().

AVInteger av_mod_i ( AVInteger quot,
AVInteger  a,
AVInteger  b 
)

Return a % b.

Parameters
quota/b will be stored here.

Definition at line 109 of file integer.c.

Referenced by av_div_i().

AVInteger av_mul_i ( AVInteger  a,
AVInteger  b 
) const

Definition at line 62 of file integer.c.

Referenced by av_i2int(), and av_rescale_rnd().

AVInteger av_shr_i ( AVInteger  a,
int  s 
) const

bitwise shift

Parameters
sthe number of bits by which the value should be shifted right, may be negative for shifting left

Definition at line 95 of file integer.c.

Referenced by av_i2int(), and av_mod_i().

AVInteger av_sub_i ( AVInteger  a,
AVInteger  b 
) const

Definition at line 42 of file integer.c.

Referenced by av_i2int(), and av_mod_i().