Number Class Reference

A number. More...

#include <Number.h>

List of all members.

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

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.

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.

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::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::isPlusInfinity (  )  const

Returns true if the number is plus infinity.

Returns:
true if the number is plus infinity.

bool Number::isMinusInfinity (  )  const

Returns true if the number is minus infinity.

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.

Returns:
true if the real part of a complex number.

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.

bool Number::add ( const Number o  ) 

Add to the number (x+o).

Parameters:
o Number to add.
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::multiply ( const Number o  ) 

Multiply the number (x*o).

Parameters:
o Number to multiply with.
Returns:
true if the operation was successful.

bool Number::divide ( const Number o  ) 

Divide the number (x/o).

Parameters:
o Number to divide by.
Returns:
true if the operation was successful.

bool Number::recip (  ) 

Invert the number (1/x).

Returns:
true if the operation was successful.

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.

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::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::exp10 (  ) 

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

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.

bool Number::square (  ) 

Raise the number by two (x^2).

Returns:
true if the operation was successful.

bool Number::negate (  ) 

Negate the number (-x).

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::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.

Returns:
true if the calculation was successful.


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

Generated on Tue Jan 5 08:26:29 2010 for libqalculate-0.9.7 by  doxygen 1.5.5