#include <Number.h>
Public Member Functions | |
| Number () | |
| Number (string number, const ParseOptions &po=default_parse_options) | |
| Number (int numerator, int denominator=1, int exp_10=0) | |
| Number (const Number &o) | |
| void | set (string number, const ParseOptions &po=default_parse_options) |
| void | set (int numerator, int denominator=1, int exp_10=0) |
| void | setInfinity () |
| void | setPlusInfinity () |
| void | setMinusInfinity () |
| void | setFloat (double d_value) |
| void | setInternal (const cln::cl_N &cln_value) |
| void | setImaginaryPart (const Number &o) |
| void | setImaginaryPart (int numerator, int denominator=1, int exp_10=0) |
| void | set (const Number &o) |
| void | clear () |
| const cln::cl_N & | internalNumber () const |
| double | floatValue () const |
| int | intValue (bool *overflow=NULL) const |
| bool | isApproximate () const |
| bool | isApproximateType () const |
| void | setApproximate (bool is_approximate=true) |
| int | precision () const |
| void | setPrecision (int prec) |
| bool | isUndefined () const |
| bool | isInfinite () const |
| bool | isInfinity () const |
| bool | isPlusInfinity () const |
| bool | isMinusInfinity () const |
| Number | realPart () const |
| Number | imaginaryPart () const |
| Number | numerator () const |
| Number | denominator () const |
| Number | complexNumerator () const |
| Number | complexDenominator () const |
| void | operator= (const Number &o) |
| void | operator-- (int) |
| void | operator++ (int) |
| Number | operator- () const |
| Number | operator* (const Number &o) const |
| Number | operator/ (const Number &o) const |
| Number | operator+ (const Number &o) const |
| Number | operator- (const Number &o) const |
| Number | operator^ (const Number &o) const |
| Number | operator && (const Number &o) const |
| Number | operator|| (const Number &o) const |
| Number | operator! () const |
| void | operator*= (const Number &o) |
| void | operator/= (const Number &o) |
| void | operator+= (const Number &o) |
| void | operator-= (const Number &o) |
| void | operator^= (const Number &o) |
| bool | operator== (const Number &o) const |
| bool | operator!= (const Number &o) const |
| bool | bitAnd (const Number &o) |
| bool | bitOr (const Number &o) |
| bool | bitXor (const Number &o) |
| bool | bitNot () |
| bool | bitEqv (const Number &o) |
| bool | shiftLeft (const Number &o) |
| bool | shiftRight (const Number &o) |
| bool | shift (const Number &o) |
| bool | hasRealPart () const |
| bool | hasImaginaryPart () const |
| bool | isComplex () const |
| bool | isInteger () const |
| Number | integer () const |
| bool | isRational () const |
| bool | isReal () const |
| bool | isFraction () const |
| bool | isZero () const |
| bool | isOne () const |
| bool | isTwo () const |
| bool | isI () const |
| bool | isMinusI () const |
| bool | isMinusOne () const |
| bool | isNegative () const |
| bool | isNonNegative () const |
| bool | isPositive () const |
| bool | isNonPositive () const |
| bool | realPartIsNegative () const |
| bool | realPartIsPositive () const |
| bool | imaginaryPartIsNegative () const |
| bool | imaginaryPartIsPositive () const |
| bool | hasNegativeSign () const |
| bool | hasPositiveSign () const |
| bool | equalsZero () const |
| bool | equals (const Number &o) const |
| bool | equalsApproximately (const Number &o, int prec) const |
| ComparisonResult | compare (const Number &o) const |
| ComparisonResult | compareApproximately (const Number &o, int prec=EQUALS_PRECISION_LOWEST) const |
| ComparisonResult | compareImaginaryParts (const Number &o) const |
| ComparisonResult | compareRealParts (const Number &o) const |
| bool | isGreaterThan (const Number &o) const |
| bool | isLessThan (const Number &o) const |
| bool | isGreaterThanOrEqualTo (const Number &o) const |
| bool | isLessThanOrEqualTo (const Number &o) const |
| bool | isEven () const |
| bool | denominatorIsEven () const |
| bool | denominatorIsTwo () const |
| bool | numeratorIsEven () const |
| bool | numeratorIsOne () const |
| bool | numeratorIsMinusOne () const |
| bool | isOdd () const |
| int | integerLength () const |
| bool | add (const Number &o) |
| bool | subtract (const Number &o) |
| bool | multiply (const Number &o) |
| bool | divide (const Number &o) |
| bool | recip () |
| bool | raise (const Number &o, bool try_exact=true) |
| bool | exp10 (const Number &o) |
| bool | exp2 (const Number &o) |
| bool | exp10 () |
| bool | exp2 () |
| bool | square () |
| bool | negate () |
| void | setNegative (bool is_negative) |
| bool | abs () |
| bool | signum () |
| bool | round (const Number &o) |
| bool | floor (const Number &o) |
| bool | ceil (const Number &o) |
| bool | trunc (const Number &o) |
| bool | mod (const Number &o) |
| bool | isqrt () |
| bool | round () |
| bool | floor () |
| bool | ceil () |
| bool | trunc () |
| bool | frac () |
| bool | rem (const Number &o) |
| bool | smod (const Number &o) |
| bool | irem (const Number &o) |
| bool | irem (const Number &o, Number &q) |
| bool | iquo (const Number &o) |
| bool | iquo (const Number &o, Number &r) |
| int | getBoolean () const |
| void | toBoolean () |
| void | setTrue (bool is_true=true) |
| void | setFalse () |
| void | setLogicalNot () |
| void | e () |
| void | pi () |
| void | catalan () |
| void | euler () |
| bool | zeta () |
| bool | sin () |
| bool | asin () |
| bool | sinh () |
| bool | asinh () |
| bool | cos () |
| bool | acos () |
| bool | cosh () |
| bool | acosh () |
| bool | tan () |
| bool | atan () |
| bool | tanh () |
| bool | atanh () |
| bool | ln () |
| bool | log (const Number &o) |
| bool | exp () |
| bool | lambertW () |
| bool | gcd (const Number &o) |
| bool | lcm (const Number &o) |
| bool | factorial () |
| bool | multiFactorial (const Number &o) |
| bool | doubleFactorial () |
| bool | binomial (const Number &m, const Number &k) |
| bool | factorize (vector< Number > &factors) |
| bool | add (const Number &o, MathOperation op) |
| string | printNumerator (int base=10, bool display_sign=true, BaseDisplay base_display=BASE_DISPLAY_NORMAL, bool lower_case=false) const |
| string | printDenominator (int base=10, bool display_sign=true, BaseDisplay base_display=BASE_DISPLAY_NORMAL, bool lower_case=false) const |
| string | printImaginaryNumerator (int base=10, bool display_sign=true, BaseDisplay base_display=BASE_DISPLAY_NORMAL, bool lower_case=false) const |
| string | printImaginaryDenominator (int base=10, bool display_sign=true, BaseDisplay base_display=BASE_DISPLAY_NORMAL, bool lower_case=false) const |
| string | print (const PrintOptions &po=default_print_options, const InternalPrintStruct &ips=top_ips) const |
Protected Member Functions | |
| void | removeFloatZeroPart () |
| void | testApproximate () |
| void | testInteger () |
| void | setPrecisionAndApproximateFrom (const Number &o) |
Protected Attributes | |
| cln::cl_N | value |
| bool | b_inf |
| bool | b_pinf |
| bool | b_minf |
| bool | b_approx |
| int | i_precision |
Can be rational, floating point, complex or infinite. Has arbitrary precision (uses Calculator::precision()) and infinitely large rational numbers. Implimented using CLN numbers.
| Number::Number | ( | ) |
Constructs a number initialized as zero.
| Number::Number | ( | string | number, | |
| const ParseOptions & | po = default_parse_options | |||
| ) |
Constructs a number parsing a text string.
| number | Text string to read number from. | |
| po | Options for parsing the text string. |
| Number::Number | ( | int | numerator, | |
| int | denominator = 1, |
|||
| int | exp_10 = 0 | |||
| ) |
Constructs a rational number.
| numerator | ||
| denominator | ||
| exp_10 |
| Number::Number | ( | const Number & | o | ) |
Constructs a copy of a number.
| int Number::intValue | ( | bool * | overflow = NULL |
) | const |
Converts a number to an integer. If the number does not represent an integer it will rounded using round().
| [out] | overflow | If overflow is non-null it will be set to true if the number was to large to fit in an int. |
| bool Number::isApproximate | ( | ) | const |
Returns true if the number is approximate.
| bool Number::isApproximateType | ( | ) | const |
Returns true if the number has an approximate representation/is of approximate type -- if it is a floating point number. Numbers of approximate type are always approximate, but the reversed relation is not always true.
| void Number::setApproximate | ( | bool | is_approximate = true |
) |
Defines the number as approximate or exact. If a number of approximate type is set as exact, it will be converted to a rational number.
| is_approximate | If the number shall be regarded as approximate. |
| int Number::precision | ( | ) | const |
Returns the.precision of the number.
| bool Number::isInfinite | ( | ) | const |
Returns true if the number is infinity, plus infinity or minus infinity.
| bool Number::isInfinity | ( | ) | const |
Returns true if the number is infinity, if the number is plus or minus infinity (which is not known).
| bool Number::isPlusInfinity | ( | ) | const |
Returns true if the number is plus infinity.
| bool Number::isMinusInfinity | ( | ) | const |
Returns true if the number is minus infinity.
| Number Number::realPart | ( | ) | const |
Returns the real part of the number if it is complex, or a copy if it is real.
| Number Number::imaginaryPart | ( | ) | const |
Returns the imaginary part as real number of the number if it is complex, or zero if it is real.
| bool Number::add | ( | const Number & | o | ) |
| bool Number::subtract | ( | const Number & | o | ) |
Subtracts from to the number (x-o).
| o | Number to subtract. |
| bool Number::multiply | ( | const Number & | o | ) |
Multiply the number (x*o).
| o | Number to multiply with. |
| bool Number::divide | ( | const Number & | o | ) |
Divide the number (x/o).
| o | Number to divide by. |
| bool Number::recip | ( | ) |
Invert the number (1/x).
| bool Number::raise | ( | const Number & | o, | |
| bool | try_exact = true | |||
| ) |
Raise the number (x^o).
| o | Number to raise to. | |
| try_exact | If an exact solution should be tried first (might be slow). |
| bool Number::exp10 | ( | const Number & | o | ) |
Multiply the number with a power of ten (x*10^o).
| o | Number to raise 10 by. |
| bool Number::exp2 | ( | const Number & | o | ) |
Multiply the number with a power of two (x*2^o).
| o | Number to raise 2 by. |
| bool Number::exp10 | ( | ) |
Set the number to ten raised by the number (10^x).
| bool Number::exp2 | ( | ) |
Set the number to two raised by the number (2^x).
| bool Number::square | ( | ) |
Raise the number by two (x^2).
| bool Number::negate | ( | ) |
Negate the number (-x).
| void Number::e | ( | ) |
Set the number to e, the base of natural logarithm, calculated with the current default precision.
| void Number::pi | ( | ) |
Set the number to pi, Archimede's constant, calculated with the current default precision.
| void Number::catalan | ( | ) |
Set the number to Catalan's constant, calculated with the current default precision.
| void Number::euler | ( | ) |
Set the number to Euler's constant, calculated with the current default precision.
| bool Number::zeta | ( | ) |
Set the number to Riemann's zeta with the number as integral point. The number must be an integer greater than one.
1.5.5