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: