Class representing elements of F_q[epsilon];
compact datatype for (x,eps)-Pair; field characteristic is parametrized during compile time.
More...
#include <fastNumber.h>
Public Types | |
typedef TScalar | scalarType |
Public Member Functions | |
Constructors | |
number_eps1 () | |
number_eps1 (int epsPrec, string dummy) | |
einheitlicher Konstruktor fuer eine Zahl mit beliebigen EpsPrecision - notwendig ??? | |
number_eps1 (scalarType x) | |
constructs (x,0) from x | |
number_eps1 (const number_eps1 &z_x) | |
copy constructor | |
number_eps1 (scalarType x, scalarType eps) | |
constructs x + eps*EPS | |
properties | |
unsigned short | getEpsPrecision () const |
void | setEpsPrecision (int epsPrecision) const |
returns 1 | |
short | getEpsDegree () const |
returns 1 | |
data access | |
scalarType | getX () const |
get x from (x,eps) | |
scalarType | getEps () const |
get eps from (x,eps) | |
void | setX (scalarType x) |
set x in (x,eps) | |
void | setEps (scalarType eps) |
set eps in (x,eps) | |
void | setValue (unsigned short _epsPrecision, scalarType val) |
setzt entweder .x oder .eps gleich 'val', je nach 'eps_exponent'-Wert | |
int | getValue (unsigned short _epsPrecision) |
operators | |
bool | isZero () const |
bool | isNotZero () const |
bool | nearlyEqual (const number_eps1 &z) const |
compare x-components, eps-parts are ignored | |
int | operator== (const number_eps1< CHAR, TScalar, TScalarPair > &z) const |
int | operator!= (const number_eps1< CHAR, TScalar, TScalarPair > &z) const |
Static Public Member Functions | |
safety | |
static bool | memsetClearAllowed () |
returns true, if it is allowed to initialise class objects with memset(0) | |
static bool | wellDefined (unsigned int characteristic) |
static bool | wellDefined () |
regular index computation interface | |
static size_t | getSingleIndex (const number_eps1< CHAR, TScalar, TScalarPair > b, const TScalar characteristic) |
returns b.epsx | |
static size_t | getSingleIndexByRef (const number_eps1< CHAR, TScalar, TScalarPair > &b, const TScalar &characteristic) |
returns b.epsx | |
static size_t | getPairIndex (const number_eps1< CHAR, TScalar, TScalarPair > a, const number_eps1< CHAR, TScalar, TScalarPair > b, const TScalar characteristic) |
computes a*(2^(fullbitsize)) + b.epsx | |
static size_t | getPairIndexByRef (const number_eps1< CHAR, TScalar, TScalarPair > &a, const number_eps1< CHAR, TScalar, TScalarPair > &b, const TScalar &characteristic) |
computes a*(2^(fullbitsize)) + b.epsx | |
static size_t | getMaxSingleIndex (const TScalar characteristic) |
static size_t | getMaxPairIndex (const TScalar characteristic) |
reduced index computation interface | |
static size_t | getSingleIndex (const number_eps1< CHAR, TScalar, TScalarPair > b) |
returns b.epsx | |
static size_t | getSingleIndexByRef (const number_eps1< CHAR, TScalar, TScalarPair > &b) |
returns b.epsx | |
static size_t | getPairIndex (const number_eps1< CHAR, TScalar, TScalarPair > a, const number_eps1< CHAR, TScalar, TScalarPair > b) |
computes a*(2^(fullbitsize)) + b.epsx | |
static size_t | getPairIndexByRef (const number_eps1< CHAR, TScalar, TScalarPair > &a, const number_eps1< CHAR, TScalar, TScalarPair > &b) |
computes a*(2^(fullbitsize)) + b.epsx | |
Public Attributes | |
value representation | |
TScalarPair | epsx |
data | |
static data | |
| |
enum | { bitsize = needbits<CHAR>::value } |
enum | { fullbitsize = needbits<CHAR>::doubledvalue } |
enum | { maskx = pow2<needbits<CHAR>::value>::valueMinusOne } |
enum | { maskeps = pow2<needbits<CHAR>::doubledvalue>::valueMinusOne - ( pow2<needbits<CHAR>::value>::valueMinusOne) } |
bitmask for eps More... | |
static const number_eps1 | Zero = number_eps1<CHAR, TScalar, TScalarPair>(0) |
static const number_eps1 | One = number_eps1<CHAR, TScalar, TScalarPair>(1) |
datatype for (x,eps)-Pair; -----------number_eps1 DATA LAYOUT
Data is stored compact in a 'short int' as follows:
first 'bitsize' bits for 'x' and next 'bitsize' bits for 'eps'
MSB ist the first bit of 'x'
LSB ist the last bit of 'eps'
Der Template-Parameter CHAR ist die Charakteristik des Koerpers, dessen Werte in number_eps1.x , bzw number_eps1.eps
dargestellbar sein sollen. CHAR ist auf 256 beschraenkt!
Definition at line 59 of file fastNumber.h.
typedef TScalar number_eps1< CHAR, TScalar, TScalarPair >::scalarType |
Definition at line 63 of file fastNumber.h.
anonymous enum |
Definition at line 75 of file fastNumber.h.
anonymous enum |
Definition at line 76 of file fastNumber.h.
anonymous enum |
Definition at line 78 of file fastNumber.h.
anonymous enum |
Definition at line 81 of file fastNumber.h.
number_eps1< CHAR, TScalar, TScalarPair >::number_eps1 | ( | ) | [inline] |
Definition at line 50 of file fastNumber.cpp.
number_eps1< CHAR, TScalar, TScalarPair >::number_eps1 | ( | int | epsPrec, | |
string | dummy | |||
) | [inline] |
number_eps1< CHAR, TScalar, TScalarPair >::number_eps1 | ( | scalarType | x | ) | [inline] |
constructs (x,0) from x
Definition at line 77 of file fastNumber.cpp.
number_eps1< CHAR, TScalar, TScalarPair >::number_eps1 | ( | const number_eps1< CHAR, TScalar, TScalarPair > & | z_x | ) | [inline] |
Konstruiert number_eps1 (x,eps) aus number_eps1(x,eps).
Definition at line 93 of file fastNumber.cpp.
number_eps1< CHAR, TScalar, TScalarPair >::number_eps1 | ( | scalarType | x, | |
scalarType | eps | |||
) | [inline] |
Konstruiert number_eps1(x,eps) aus (x,eps).
Definition at line 103 of file fastNumber.cpp.
References number_eps1< CHAR, TScalar, TScalarPair >::fullbitsize.
TScalar number_eps1< CHAR, TScalar, TScalarPair >::getEps | ( | ) | const [inline] |
Definition at line 187 of file fastNumber.cpp.
References number_eps1< CHAR, TScalar, TScalarPair >::epsx.
Referenced by number_eps1< CHAR, TScalar, TScalarPair >::getEpsDegree(), and number_eps1< CHAR, TScalar, TScalarPair >::getValue().
short number_eps1< CHAR, TScalar, TScalarPair >::getEpsDegree | ( | ) | const [inline] |
returns the highest EpsExponent where the Coeffitient is not zero.
Definition at line 112 of file fastNumber.cpp.
References number_eps1< CHAR, TScalar, TScalarPair >::getEps(), and number_eps1< CHAR, TScalar, TScalarPair >::getX().
unsigned short number_eps1< CHAR, TScalar, TScalarPair >::getEpsPrecision | ( | ) | const [inline] |
Definition at line 120 of file fastNumber.h.
size_t number_eps1< CHAR, TScalar, TScalarPair >::getMaxPairIndex | ( | const TScalar | characteristic | ) | [inline, static] |
Definition at line 425 of file fastNumber.cpp.
References number_eps1< CHAR, TScalar, TScalarPair >::getPairIndex().
size_t number_eps1< CHAR, TScalar, TScalarPair >::getMaxSingleIndex | ( | const TScalar | characteristic | ) | [inline, static] |
Definition at line 409 of file fastNumber.cpp.
References number_eps1< CHAR, TScalar, TScalarPair >::getSingleIndex().
size_t number_eps1< CHAR, TScalar, TScalarPair >::getPairIndex | ( | const number_eps1< CHAR, TScalar, TScalarPair > | a, | |
const number_eps1< CHAR, TScalar, TScalarPair > | b | |||
) | [inline, static] |
Definition at line 320 of file fastNumber.cpp.
References number_eps1< CHAR, TScalar, TScalarPair >::epsx.
size_t number_eps1< CHAR, TScalar, TScalarPair >::getPairIndex | ( | const number_eps1< CHAR, TScalar, TScalarPair > | a, | |
const number_eps1< CHAR, TScalar, TScalarPair > | b, | |||
const TScalar | characteristic | |||
) | [inline, static] |
Definition at line 379 of file fastNumber.cpp.
Referenced by number_eps1< CHAR, TScalar, TScalarPair >::getMaxPairIndex().
size_t number_eps1< CHAR, TScalar, TScalarPair >::getPairIndexByRef | ( | const number_eps1< CHAR, TScalar, TScalarPair > & | a, | |
const number_eps1< CHAR, TScalar, TScalarPair > & | b | |||
) | [inline, static] |
Definition at line 335 of file fastNumber.cpp.
References number_eps1< CHAR, TScalar, TScalarPair >::epsx.
size_t number_eps1< CHAR, TScalar, TScalarPair >::getPairIndexByRef | ( | const number_eps1< CHAR, TScalar, TScalarPair > & | a, | |
const number_eps1< CHAR, TScalar, TScalarPair > & | b, | |||
const TScalar & | characteristic | |||
) | [inline, static] |
Definition at line 393 of file fastNumber.cpp.
size_t number_eps1< CHAR, TScalar, TScalarPair >::getSingleIndex | ( | const number_eps1< CHAR, TScalar, TScalarPair > | b | ) | [inline, static] |
Definition at line 292 of file fastNumber.cpp.
References number_eps1< CHAR, TScalar, TScalarPair >::epsx.
size_t number_eps1< CHAR, TScalar, TScalarPair >::getSingleIndex | ( | const number_eps1< CHAR, TScalar, TScalarPair > | b, | |
const TScalar | characteristic | |||
) | [inline, static] |
Definition at line 351 of file fastNumber.cpp.
Referenced by number_eps1< CHAR, TScalar, TScalarPair >::getMaxSingleIndex().
size_t number_eps1< CHAR, TScalar, TScalarPair >::getSingleIndexByRef | ( | const number_eps1< CHAR, TScalar, TScalarPair > & | b | ) | [inline, static] |
Definition at line 306 of file fastNumber.cpp.
References number_eps1< CHAR, TScalar, TScalarPair >::epsx.
size_t number_eps1< CHAR, TScalar, TScalarPair >::getSingleIndexByRef | ( | const number_eps1< CHAR, TScalar, TScalarPair > & | b, | |
const TScalar & | characteristic | |||
) | [inline, static] |
Definition at line 365 of file fastNumber.cpp.
int number_eps1< CHAR, TScalar, TScalarPair >::getValue | ( | unsigned short | _epsPrecision | ) | [inline] |
Definition at line 139 of file fastNumber.h.
References number_eps1< CHAR, TScalar, TScalarPair >::getEps(), and number_eps1< CHAR, TScalar, TScalarPair >::getX().
TScalar number_eps1< CHAR, TScalar, TScalarPair >::getX | ( | ) | const [inline] |
Definition at line 180 of file fastNumber.cpp.
References number_eps1< CHAR, TScalar, TScalarPair >::epsx, and number_eps1< CHAR, TScalar, TScalarPair >::maskx.
Referenced by number_eps1< CHAR, TScalar, TScalarPair >::getEpsDegree(), number_eps1< CHAR, TScalar, TScalarPair >::getValue(), and number_eps1< CHAR, TScalar, TScalarPair >::nearlyEqual().
bool number_eps1< CHAR, TScalar, TScalarPair >::isNotZero | ( | ) | const [inline] |
Definition at line 252 of file fastNumber.cpp.
References number_eps1< CHAR, TScalar, TScalarPair >::epsx.
bool number_eps1< CHAR, TScalar, TScalarPair >::isZero | ( | ) | const [inline] |
Definition at line 246 of file fastNumber.cpp.
References number_eps1< CHAR, TScalar, TScalarPair >::epsx.
static bool number_eps1< CHAR, TScalar, TScalarPair >::memsetClearAllowed | ( | ) | [inline, static] |
Definition at line 88 of file fastNumber.h.
bool number_eps1< CHAR, TScalar, TScalarPair >::nearlyEqual | ( | const number_eps1< CHAR, TScalar, TScalarPair > & | z | ) | const [inline] |
Definition at line 260 of file fastNumber.cpp.
References number_eps1< CHAR, TScalar, TScalarPair >::getX().
int number_eps1< CHAR, TScalar, TScalarPair >::operator!= | ( | const number_eps1< CHAR, TScalar, TScalarPair > & | z | ) | const [inline] |
Definition at line 277 of file fastNumber.cpp.
References number_eps1< CHAR, TScalar, TScalarPair >::epsx.
int number_eps1< CHAR, TScalar, TScalarPair >::operator== | ( | const number_eps1< CHAR, TScalar, TScalarPair > & | z | ) | const [inline] |
Definition at line 269 of file fastNumber.cpp.
References number_eps1< CHAR, TScalar, TScalarPair >::epsx.
void number_eps1< CHAR, TScalar, TScalarPair >::setEps | ( | scalarType | eps | ) | [inline] |
setzt eps in (x,eps)
Definition at line 210 of file fastNumber.cpp.
References number_eps1< CHAR, TScalar, TScalarPair >::epsx, and number_eps1< CHAR, TScalar, TScalarPair >::maskx.
Referenced by number_eps1< CHAR, TScalar, TScalarPair >::setValue().
void number_eps1< CHAR, TScalar, TScalarPair >::setEpsPrecision | ( | int | epsPrecision | ) | const [inline] |
Definition at line 122 of file fastNumber.h.
void number_eps1< CHAR, TScalar, TScalarPair >::setValue | ( | unsigned short | _epsPrecision, | |
scalarType | val | |||
) | [inline] |
_epsPrecision | beinhaltet die epsilon--Potenz von val - mit val ist gemeint ![]() | |
val | der Koeffizient von (![]() |
Definition at line 231 of file fastNumber.cpp.
References number_eps1< CHAR, TScalar, TScalarPair >::setEps(), and number_eps1< CHAR, TScalar, TScalarPair >::setX().
void number_eps1< CHAR, TScalar, TScalarPair >::setX | ( | scalarType | x | ) | [inline] |
todo: Assert, that x has not too much bits!
Definition at line 198 of file fastNumber.cpp.
References number_eps1< CHAR, TScalar, TScalarPair >::epsx, and number_eps1< CHAR, TScalar, TScalarPair >::maskeps.
Referenced by number_eps1< CHAR, TScalar, TScalarPair >::setValue().
bool number_eps1< CHAR, TScalar, TScalarPair >::wellDefined | ( | ) | [inline, static] |
trage in Tscalar test2 an jede zulässige Bitstelle Einsen ein.
Definition at line 134 of file fastNumber.cpp.
References number_eps1< CHAR, TScalar, TScalarPair >::bitsize, number_eps1< CHAR, TScalar, TScalarPair >::fullbitsize, and make::test().
Referenced by number_eps0< CHAR, TScalar >::wellDefined(), and number_eps1< CHAR, TScalar, TScalarPair >::wellDefined().
bool number_eps1< CHAR, TScalar, TScalarPair >::wellDefined | ( | unsigned int | characteristic | ) | [inline, static] |
Definition at line 125 of file fastNumber.cpp.
References number_eps1< CHAR, TScalar, TScalarPair >::wellDefined().
TScalarPair number_eps1< CHAR, TScalar, TScalarPair >::epsx |
Definition at line 67 of file fastNumber.h.
Referenced by number_eps1< CHAR, TScalar, TScalarPair >::getEps(), number_eps1< CHAR, TScalar, TScalarPair >::getPairIndex(), number_eps1< CHAR, TScalar, TScalarPair >::getPairIndexByRef(), number_eps1< CHAR, TScalar, TScalarPair >::getSingleIndex(), number_eps1< CHAR, TScalar, TScalarPair >::getSingleIndexByRef(), number_eps1< CHAR, TScalar, TScalarPair >::getX(), number_eps1< CHAR, TScalar, TScalarPair >::isNotZero(), number_eps1< CHAR, TScalar, TScalarPair >::isZero(), number_eps1< CHAR, TScalar, TScalarPair >::operator!=(), number_eps1< CHAR, TScalar, TScalarPair >::operator==(), number_eps1< CHAR, TScalar, TScalarPair >::setEps(), and number_eps1< CHAR, TScalar, TScalarPair >::setX().
const number_eps1< CHAR, TScalar, TScalarPair > number_eps1< CHAR, TScalar, TScalarPair >::One = number_eps1<CHAR, TScalar, TScalarPair>(1) [inline, static] |
Definition at line 73 of file fastNumber.h.
const number_eps1< CHAR, TScalar, TScalarPair > number_eps1< CHAR, TScalar, TScalarPair >::Zero = number_eps1<CHAR, TScalar, TScalarPair>(0) [inline, static] |
Definition at line 72 of file fastNumber.h.