Public Member Functions | |
| bool | OK () const |
| Checks if all the invariants are satisfied. | |
| Result | classify (bool nan=true, bool inf=true, bool sign=true) const |
| Classifies *this. | |
Constructors | |
| Checked_Number () | |
| Default constructor. | |
| Checked_Number (const Checked_Number &y) | |
| Copy-constructor. | |
| template<typename From, typename From_Policy> | |
| Checked_Number (const Checked_Number< From, From_Policy > &y) | |
| Direct initialization from a Checked_Number. | |
| Checked_Number (const signed char y, Rounding_Dir dir) | |
| Direct initialization from a signed char and rounding mode. | |
| Checked_Number (const signed short y, Rounding_Dir dir) | |
| Direct initialization from a signed short and rounding mode. | |
| Checked_Number (const signed int y, Rounding_Dir dir) | |
| Direct initialization from a signed int and rounding mode. | |
| Checked_Number (const signed long y, Rounding_Dir dir) | |
| Direct initialization from a signed long and rounding mode. | |
| Checked_Number (const signed long long y, Rounding_Dir dir) | |
| Direct initialization from a signed long long and rounding mode. | |
| Checked_Number (const unsigned char y, Rounding_Dir dir) | |
| Direct initialization from an unsigned char and rounding mode. | |
| Checked_Number (const unsigned short y, Rounding_Dir dir) | |
| Direct initialization from an unsigned short and rounding mode. | |
| Checked_Number (const unsigned int y, Rounding_Dir dir) | |
| Direct initialization from an unsigned int and rounding mode. | |
| Checked_Number (const unsigned long y, Rounding_Dir dir) | |
| Direct initialization from an unsigned long and rounding mode. | |
| Checked_Number (const unsigned long long y, Rounding_Dir dir) | |
| Direct initialization from an unsigned long long and rounding mode. | |
| Checked_Number (const float y, Rounding_Dir dir) | |
| Direct initialization from a float and rounding mode. | |
| Checked_Number (const double y, Rounding_Dir dir) | |
| Direct initialization from a double and rounding mode. | |
| Checked_Number (const long double y, Rounding_Dir dir) | |
| Direct initialization from a long double and rounding mode. | |
| Checked_Number (const mpq_class &y, Rounding_Dir dir) | |
| Direct initialization from a rational and rounding mode. | |
| Checked_Number (const mpz_class &y, Rounding_Dir dir) | |
| Direct initialization from an unbounded integer and rounding mode. | |
| Checked_Number (const char *y, Rounding_Dir dir) | |
| Direct initialization from a C string and rounding mode. | |
| Checked_Number (const Minus_Infinity &y, Rounding_Dir dir) | |
| Direct initialization from minus infinity and rounding mode. | |
| Checked_Number (const Plus_Infinity &y, Rounding_Dir dir) | |
| Direct initialization from plus infinity and rounding mode. | |
| Checked_Number (const Not_A_Number &y, Rounding_Dir dir) | |
| Direct initialization from NAN and rounding mode. | |
| Checked_Number (const signed char y) | |
| Direct initialization from a signed char, default rounding mode. | |
| Checked_Number (const signed short y) | |
| Direct initialization from a signed short, default rounding mode. | |
| Checked_Number (const signed int y) | |
| Direct initialization from a signed int, default rounding mode. | |
| Checked_Number (const signed long y) | |
| Direct initialization from a signed long, default rounding mode. | |
| Checked_Number (const signed long long y) | |
| Direct initialization from a signed long long, default rounding mode. | |
| Checked_Number (const unsigned char y) | |
| Direct initialization from an unsigned char, default rounding mode. | |
| Checked_Number (const unsigned short y) | |
| Direct initialization from an unsigned short, default rounding mode. | |
| Checked_Number (const unsigned int y) | |
| Direct initialization from an unsigned int, default rounding mode. | |
| Checked_Number (const unsigned long y) | |
| Direct initialization from an unsigned long, default rounding mode. | |
| Checked_Number (const unsigned long long y) | |
| Direct initialization from an unsigned long long, default rounding mode. | |
| Checked_Number (const float y) | |
| Direct initialization from a float, default rounding mode. | |
| Checked_Number (const double y) | |
| Direct initialization from a double, default rounding mode. | |
| Checked_Number (const long double y) | |
| Direct initialization from a long double, default rounding mode. | |
| Checked_Number (const mpq_class &y) | |
| Direct initialization from a rational, default rounding mode. | |
| Checked_Number (const mpz_class &y) | |
| Direct initialization from an unbounded integer, default rounding mode. | |
| Checked_Number (const char *y) | |
| Direct initialization from a C string, default rounding mode. | |
| Checked_Number (const Minus_Infinity &y) | |
| Direct initialization from minus infinity, default rounding mode. | |
| Checked_Number (const Plus_Infinity &y) | |
| Direct initialization from plus infinity, default rounding mode. | |
| Checked_Number (const Not_A_Number &y) | |
| Direct initialization from NAN, default rounding mode. | |
Accessors and Conversions | |
| operator T () const | |
| Conversion operator: returns a copy of the underlying numeric value. | |
| T & | raw_value () |
| Returns a reference to the underlying numeric value. | |
| const T & | raw_value () const |
| Returns a const reference to the underlying numeric value. | |
Assignment Operators | |
| Checked_Number & | operator= (const Checked_Number &y) |
| Assignment operator. | |
| template<typename From, typename From_Policy> | |
| Checked_Number & | operator= (const Checked_Number< From, From_Policy > &y) |
| Assignment operator. | |
| template<typename From> | |
| Checked_Number & | operator= (const From &y) |
| Assignment operator. | |
| Checked_Number & | operator= (const Not_A_Number &y) |
| Assignment operator. | |
| Checked_Number & | operator= (const Minus_Infinity &y) |
| Assignment operator. | |
| Checked_Number & | operator= (const Plus_Infinity &y) |
| Assignment operator. | |
| template<typename From_Policy> | |
| Checked_Number & | operator+= (const Checked_Number< T, From_Policy > &y) |
| Add and assign operator. | |
| Checked_Number & | operator+= (const T &y) |
| Add and assign operator. | |
| template<typename From, typename From_Policy> | |
| Checked_Number & | operator+= (const Checked_Number< From, From_Policy > &y) |
| Add and assign operator. | |
| template<typename From_Policy> | |
| Checked_Number & | operator-= (const Checked_Number< T, From_Policy > &y) |
| Subtract and assign operator. | |
| Checked_Number & | operator-= (const T &y) |
| Subtract and assign operator. | |
| template<typename From, typename From_Policy> | |
| Checked_Number & | operator-= (const Checked_Number< From, From_Policy > &y) |
| Subtract and assign operator. | |
| template<typename From> | |
| Checked_Number & | operator-= (const From &y) |
| Subtract and assign operator. | |
| template<typename From_Policy> | |
| Checked_Number & | operator *= (const Checked_Number< T, From_Policy > &y) |
| Multiply and assign operator. | |
| Checked_Number & | operator *= (const T &y) |
| Multiply and assign operator. | |
| template<typename From, typename From_Policy> | |
| Checked_Number & | operator *= (const Checked_Number< From, From_Policy > &y) |
| Multiply and assign operator. | |
| template<typename From> | |
| Checked_Number & | operator *= (const From &y) |
| Multiply and assign operator. | |
| template<typename From_Policy> | |
| Checked_Number & | operator/= (const Checked_Number< T, From_Policy > &y) |
| Divide and assign operator. | |
| Checked_Number & | operator/= (const T &y) |
| Divide and assign operator. | |
| template<typename From, typename From_Policy> | |
| Checked_Number & | operator/= (const Checked_Number< From, From_Policy > &y) |
| Divide and assign operator. | |
| template<typename From> | |
| Checked_Number & | operator/= (const From &y) |
| Divide and assign operator. | |
| template<typename From_Policy> | |
| Checked_Number & | operator%= (const Checked_Number< T, From_Policy > &y) |
| Compute remainder and assign operator. | |
| Checked_Number & | operator%= (const T &y) |
| Compute remainder and assign operator. | |
| template<typename From, typename From_Policy> | |
| Checked_Number & | operator%= (const Checked_Number< From, From_Policy > &y) |
| Compute remainder and assign operator. | |
| template<typename From> | |
| Checked_Number & | operator%= (const From &y) |
| Compute remainder and assign operator. | |
Increment and Decrement Operators | |
| Checked_Number & | operator++ () |
| Pre-increment operator. | |
| Checked_Number | operator++ (int) |
| Post-increment operator. | |
| Checked_Number & | operator-- () |
| Pre-decrement operator. | |
| Checked_Number | operator-- (int) |
| Post-decrement operator. | |
Related Functions | |
| (Note that these are not member functions.) | |
| void | swap (Checked_Number< T, Policy > &x, Checked_Number< T, Policy > &y) |
Swaps *this with y. | |
Accessor Functions | |
| const T & | raw_value (const Checked_Number< T, Policy > &x) |
| Returns a const reference to the underlying native integer value. | |
| T & | raw_value (Checked_Number< T, Policy > &x) |
| Returns a reference to the underlying native integer value. | |
Memory Size Inspection Functions | |
| size_t | total_memory_in_bytes (const Checked_Number< T, Policy > &x) |
Returns the total size in bytes of the memory occupied by x. | |
| size_t | external_memory_in_bytes (const Checked_Number< T, Policy > &x) |
Returns the size in bytes of the memory managed by x. | |
Arithmetic Operators | |
| Checked_Number< T, Policy > | operator+ (const Checked_Number< T, Policy > &x) |
| Unary plus operator. | |
| Checked_Number< T, Policy > | operator- (const Checked_Number< T, Policy > &x) |
| Unary minus operator. | |
| void | neg_assign (Checked_Number< T, Policy > &x) |
Assigns to x its negation. | |
| void | add_mul_assign (Checked_Number< T, Policy > &x, const Checked_Number< T, Policy > &y, const Checked_Number< T, Policy > &z) |
Assigns to x the value x + y * z. | |
| void | sub_mul_assign (Checked_Number< T, Policy > &x, const Checked_Number< T, Policy > &y, const Checked_Number< T, Policy > &z) |
Assigns to x the value x - y * z. | |
| void | gcd_assign (Checked_Number< T, Policy > &x, const Checked_Number< T, Policy > &y, const Checked_Number< T, Policy > &z) |
Assigns to x the greatest common divisor of y and z. | |
| void | lcm_assign (Checked_Number< T, Policy > &x, const Checked_Number< T, Policy > &y, const Checked_Number< T, Policy > &z) |
Assigns to x the least common multiple of y and z. | |
| void | exact_div_assign (Checked_Number< T, Policy > &x, const Checked_Number< T, Policy > &y, const Checked_Number< T, Policy > &z) |
Assigns to x the integer division of y and z. | |
| void | sqrt_assign (Checked_Number< T, Policy > &x, const Checked_Number< T, Policy > &y) |
Assigns to x the integer square root of y. | |
Relational Operators and Comparison Functions | |
| bool | operator== (const Checked_Number< T1, Policy1 > &x, const Checked_Number< T2, Policy2 > &y) |
| Equality operator. | |
| bool | operator!= (const Checked_Number< T1, Policy1 > &x, const Checked_Number< T2, Policy2 > &y) |
| Disequality operator. | |
| bool | operator>= (const Checked_Number< T1, Policy1 > &x, const Checked_Number< T2, Policy2 > &y) |
| Greater than or equal to operator. | |
| bool | operator> (const Checked_Number< T1, Policy1 > &x, const Checked_Number< T2, Policy2 > &y) |
| Greater than operator. | |
| bool | operator<= (const Checked_Number< T1, Policy1 > &x, const Checked_Number< T2, Policy2 > &y) |
| Less than or equal to operator. | |
| bool | operator< (const Checked_Number< T1, Policy1 > &x, const Checked_Number< T2, Policy2 > &y) |
| Less than operator. | |
| int | sgn (const Checked_Number< T, Policy > &x) |
Returns , or depending on whether the value of x is negative, zero or positive, respectively. | |
| int | cmp (const Checked_Number< T1, Policy1 > &x, const Checked_Number< T2, Policy2 > &y) |
Returns a negative, zero or positive value depending on whether x is lower than, equal to or greater than y, respectively. | |
Input-Output Operators | |
| std::ostream & | operator<< (std::ostream &os, const Checked_Number< T, Policy > &x) |
| Output operator. | |
| Result | input (std::istream &is, Checked_Number< T, Policy > &x, Rounding_Dir dir) |
| Input function. | |
| std::istream & | operator>> (std::istream &is, Checked_Number< T, Policy > &x) |
| Input operator. | |
The wrapper and related functions implement an interface which is common to all kinds of coefficient types, therefore allowing for a uniform coding style. This class also implements the policy encoded by the second template parameter. The default policy is to perform the detection of overflow errors.
|
|
|||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
1.4.6-20060115