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) |
◆ bminus()
template<class T>
T AUtils::bminus |
( |
T | a, |
|
|
T | b ) |
|
static |
substraction with the modification to return 0 (T()) for negative difference (needs >, -, T())
◆ bplus() [1/2]
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
◆ bplus() [2/2]
template<class T>
T AUtils::bplus |
( |
T | a, |
|
|
T | b, |
|
|
T | top ) |
|
static |
◆ div_roundup()
template<class T>
T AUtils::div_roundup |
( |
T | a, |
|
|
T | b ) |
|
static |
returns a divided through b rounded up to nearest "integer" (needs =, –, +, /)
◆ log2_ceil()
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}
◆ max()
template<class T>
T AUtils::max |
( |
T | a, |
|
|
T | b ) |
|
static |
return the maximum of a and b (needs >)
◆ min()
template<class T>
T AUtils::min |
( |
T | a, |
|
|
T | b ) |
|
static |
return the minimum of a and b (needs <)
◆ modsum()
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)
◆ roundup()
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: