provides some generic functions for non-standard arithmetic operations
#include <AUtils.h>
|
template<class T > |
static T | max (T a, T b) |
|
template<class T > |
static T | min (T a, T b) |
|
template<class T > |
static T | div_roundup (T a, T b) |
|
template<class T > |
static T | bminus (T a, T b) |
|
template<class T , T top> |
static T | bplus (T a, T b) |
|
template<class T > |
static T | bplus (T a, T b, T top) |
|
template<class T , class CTYPE > |
static T | modsum (T *s, CTYPE n, T m) |
|
template<class IT , class FT > |
static IT | roundup (FT x) |
|
template<class T > |
static T | log2_ceil (T n) |
|
template<class T >
T AUtils::bminus |
( |
T |
a, |
|
|
T |
b |
|
) |
| |
|
static |
substraction with the modification to return 0 (T()) for negative difference (needs >, -, T())
template<class T , T top>
T AUtils::bplus |
( |
T |
a, |
|
|
T |
b |
|
) |
| |
|
static |
addition with the modification to return top for sums that are larger than top
template<class T >
T AUtils::bplus |
( |
T |
a, |
|
|
T |
b, |
|
|
T |
top |
|
) |
| |
|
static |
template<class T >
T AUtils::div_roundup |
( |
T |
a, |
|
|
T |
b |
|
) |
| |
|
static |
returns a divided through b rounded up to nearest "integer" (needs =, –, +, /)
template<class T >
T AUtils::log2_ceil |
( |
T |
n | ) |
|
|
static |
compute 2-logarithm of n (rounded up to nearest int), i.e. number of bits needed to store values from {0,...,n-1}
template<class T >
T AUtils::max |
( |
T |
a, |
|
|
T |
b |
|
) |
| |
|
static |
return the maximum of a and b (needs >)
template<class T >
T AUtils::min |
( |
T |
a, |
|
|
T |
b |
|
) |
| |
|
static |
return the minimum of a and b (needs <)
template<class T , class CTYPE >
T AUtils::modsum |
( |
T * |
s, |
|
|
CTYPE |
n, |
|
|
T |
m |
|
) |
| |
|
static |
calculate the sum s[0]+...s[n-1] modulo m (needs =, +, % for T and =, CTYPE(), <, ++ for CTYPE)
template<class IT , class FT >
IT AUtils::roundup |
( |
FT |
x | ) |
|
|
static |
round up x to nearest integer
The documentation for this class was generated from the following file: