FFmpeg  4.0
Functions | Variables
integer.c File Reference

arbitrary precision integers More...

#include "common.h"
#include "integer.h"
#include "avassert.h"

Go to the source code of this file.

Functions

AVInteger av_add_i (AVInteger a, AVInteger b)
 
AVInteger av_sub_i (AVInteger a, AVInteger b)
 
int av_log2_i (AVInteger a)
 Return the rounded-down value of the base 2 logarithm of the given AVInteger. More...
 
AVInteger av_mul_i (AVInteger a, AVInteger b)
 
int av_cmp_i (AVInteger a, AVInteger b)
 Return 0 if a==b, 1 if a>b and -1 if a<b. More...
 
AVInteger av_shr_i (AVInteger a, int s)
 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)
 Return a/b. More...
 
AVInteger av_int2i (int64_t a)
 Convert the given int64_t to an AVInteger. More...
 
int64_t av_i2int (AVInteger a)
 Convert the given AVInteger to an int64_t. More...
 

Variables

static const AVInteger zero_i
 

Detailed Description

arbitrary precision integers

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

Definition in file integer.c.

Function Documentation

◆ av_add_i()

AVInteger av_add_i ( AVInteger  a,
AVInteger  b 
)

Definition at line 34 of file integer.c.

Referenced by av_rescale_rnd(), and main().

◆ av_sub_i()

AVInteger av_sub_i ( AVInteger  a,
AVInteger  b 
)

Definition at line 44 of file integer.c.

Referenced by av_mod_i(), and main().

◆ av_log2_i()

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 54 of file integer.c.

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

◆ av_mul_i()

AVInteger av_mul_i ( AVInteger  a,
AVInteger  b 
)

Definition at line 64 of file integer.c.

Referenced by av_rescale_rnd(), and main().

◆ av_cmp_i()

int av_cmp_i ( AVInteger  a,
AVInteger  b 
)

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

Definition at line 85 of file integer.c.

Referenced by av_mod_i(), and main().

◆ av_shr_i()

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 97 of file integer.c.

Referenced by av_mod_i(), and main().

◆ av_mod_i()

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

Return a % b.

Parameters
quota/b will be stored here.

Definition at line 111 of file integer.c.

Referenced by av_div_i(), and av_mod_i().

◆ av_div_i()

AVInteger av_div_i ( AVInteger  a,
AVInteger  b 
)

Return a/b.

Definition at line 141 of file integer.c.

Referenced by av_rescale_rnd(), and main().

◆ av_int2i()

AVInteger av_int2i ( int64_t  a)

Convert the given int64_t to an AVInteger.

Definition at line 147 of file integer.c.

Referenced by av_rescale_rnd(), and main().

◆ av_i2int()

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 158 of file integer.c.

Referenced by av_rescale_rnd(), and main().

Variable Documentation

◆ zero_i

const AVInteger zero_i
static

Definition at line 32 of file integer.c.