Number Class Reference

A number. More...

`#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

## Detailed Description

A number.

Can be rational, floating point, complex or infinite. Has arbitrary precision (uses Calculator::precision()) and infinitely large rational numbers. Implimented using CLN numbers.

## Constructor & Destructor Documentation

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.

Parameters

  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.

Parameters

  numerator |
  denominator |
  exp_10 |

Number::Number | ( | const Number & | o | ) |

Constructs a copy of a number.

## Member Function Documentation

bool Number::add | ( | const Number & | o | ) |

Add to the number (x+o).

Parameters

  o | Number to add.

Returns
  true if the operation was successful.

void Number::catalan | ( |  | ) |

Set the number to Catalan's constant, calculated with the current default precision.

bool Number::divide | ( | const Number & | o | ) |

Divide the number (x/o).

Parameters

  o | Number to divide by.

Returns
  true if the operation was successful.

void Number::e | ( |  | ) |

Set the number to e, the base of natural logarithm, calculated with the current default precision.

void Number::euler | ( |  | ) |

Set the number to Euler's constant, calculated with the current default precision.

bool Number::exp10 | ( | const Number & | o | ) |

Multiply the number with a power of ten (x*10^o).

Parameters

  o | Number to raise 10 by.

Returns
  true if the operation was successful.

bool Number::exp10 | ( |  | ) |

Set the number to ten raised by the number (10^x).

Returns
  true if the operation was successful.

bool Number::exp2 | ( | const Number & | o | ) |

Multiply the number with a power of two (x*2^o).

Parameters

  o | Number to raise 2 by.

Returns
  true if the operation was successful.

bool Number::exp2 | ( |  | ) |

Set the number to two raised by the number (2^x).

Returns
  true if the operation was successful.

Number Number::imaginaryPart | ( |  | ) | const

Returns the imaginary part as real number of the number if it is complex, or zero if it is real.

Returns
  true if the imaginary part of a complex 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().

Parameters

  [out] | overflow | If overflow is non-null it will be set to true if the number was to large to fit in an int.

Returns
  Resulting integer.

bool Number::isApproximate | ( |  | ) | const

Returns true if the number is approximate.

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.

Returns
  true if the number has an approximate representation.

bool Number::isInfinite | ( |  | ) | const

Returns true if the number is infinity, plus infinity or minus infinity.

Returns
  true if the number is infinite.

bool Number::isInfinity | ( |  | ) | const

Returns true if the number is infinity, if the number is plus or minus infinity (which is not known).

Returns
  true if the number is infinity.

bool Number::isMinusInfinity | ( |  | ) | const

Returns true if the number is minus infinity.

Returns
  true if the number is minus infinity.

bool Number::isPlusInfinity | ( |  | ) | const

Returns true if the number is plus infinity.

Returns
  true if the number is plus infinity.

bool Number::multiply | ( | const Number & | o | ) |

Multiply the number (x*o).

Parameters

  o | Number to multiply with.

Returns
  true if the operation was successful.

bool Number::negate | ( |  | ) |

Negate the number (-x).

Returns
  true if the operation was successful.

void Number::pi | ( |  | ) |

Set the number to pi, Archimede's constant, calculated with the current default precision.

int Number::precision | ( |  | ) | const

Returns the.precision of the number.

Returns
  Precision of the number or -1 if the number is exact or the precision has not been set.

bool Number::raise | ( | const Number & | o,
|  | bool | try_exact = `true`
| ) |  |

Raise the number (x^o).

Parameters

  o | Number to raise to.
  try_exact | If an exact solution should be tried first (might be slow).

Returns
  true if the operation was successful.

Number Number::realPart | ( |  | ) | const

Returns the real part of the number if it is complex, or a copy if it is real.

Returns
  true if the real part of a complex number.

bool Number::recip | ( |  | ) |

Invert the number (1/x).

Returns
  true if the operation was successful.

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.

Parameters

  is_approximate | If the number shall be regarded as approximate.

bool Number::square | ( |  | ) |

Raise the number by two (x^2).

Returns
  true if the operation was successful.

bool Number::subtract | ( | const Number & | o | ) |

Subtracts from to the number (x-o).

Parameters

  o | Number to subtract.

Returns
  true if the operation was successful.

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.

Returns
  true if the calculation was successful.

The documentation for this class was generated from the following file:

- libqalculate/Number.h