CLASS
Float
SUPERCLASS
CAObject
MATURITY INDEX
Immature
DESCRIPTION
It is planned to make this class evolve into an Objective C class for arbitrary precision floating-point arithmetic. Currently, Float is merely a Computer Algebra Kit compatible interface to plain C floating-point arithmetic. Instances are object wrappers around the float datatype; arithmetic is subject to the same limitations, round-off errors etc. as in C.
Support for floating-point arithmetic is minimal in the Computer Algebra Kit; it is possible to convert results that are obtained by exact arithmetic to a numerical approximation (see the method asNumerical of Integer, Matrix, Polynomial etc.) for further processing by numerical analysis software.
METHOD TYPES
Creation
new
newFloatValue:
newStrValue:
Identity
hash
isEqual:
floatValue
floatValue:
Comparing
sign
compare:
Addition
zero
isZero
isOpposite:
negate
double
add:
subtract:
Multiplication
one
minusOne
isOne
isMinusOne
square
multiply:
inverse
divide:
Expression Object
asExpression
expression:
Printing
printsLeadingSign
printToFile:
METHODS
new
+ new
Creates an floating-point object equal to zero.
newFloatValue:
+ newFloatValue: (float) floatValue
Creates an object with value equal to floatValue.
newStrValue:
+ newStrValue: (STR) aString
Returns a new float object given a string aString , or returns nil if the method can't parse aString. This method acts like the ANSI function atof().
hash
- (unsigned) hash
Returns a small integer that is the same for objects that are equal (in the sense of isEqual: ).
isEqual:
- (BOOL) isEqual: b
floatValue
- (float) floatValue
Returns the value of the object.
floatValue:
- floatValue: (float) f
Creates an object with value f.
sign
- (int) sign
Returns plus one if the object is positive (greater than zero), zero if zero and minus one if negative (less than zero).
compare:
- (int) compare: b
Returns -1, 0, or +1 if the object is respectively less than, equal to, or greater than b. Returns 0 for pointer equal objects.
zero
- zero
Returns a new reference to a shared float instance with value equal to zero.
isZero
- (BOOL) isZero
Whether the object is equal to zero.
isOpposite:
- (BOOL) isOpposite: b
Whether the object is the opposite of b.
negate
- negate
Returns the opposite of the object.
double
- double
Returns a new object, equal to the object multiplied by two i.e., added to itself.
add:
- add: b
Adds b to the object. Returns a new object.
subtract:
- subtract: b
Subtracts b from the object. Returns a new object.
one
- one
Returns a new reference to a shared float instance with value equal to one.
minusOne
- minusOne
Returns a new reference to the float minus one.
isOne
- (BOOL) isOne
Whether the object is equal to one.
isMinusOne
- (BOOL) isMinusOne
Whether the object is equal to minus one.
square
- square
Returns the square of the object i.e., a new object equal to the original object multiplied by itself.
multiply:
- multiply: b
Returns a new object, the product of the object multiplied (to the right) by b. If the objects are pointer equal, this method is equivalent to square.
inverse
- inverse
Returns the multiplicative inverse of the object (returns a new object). Returns nil if the object is equal to zero or cannot be inverted.
divide:
- divide: b
Returns a new object, the exact quotient of the object divided by b. Returns nil if b is equal to zero or if the division is not exact.
asExpression
- asExpression
Returns a new expression object, containing a copy of the receiving object.
expression:
- expression: anExpression
Try to evaluate anExpression as a floating-point number or return nil otherwise (when anExpression is symbolic, for example).
printsLeadingSign
- (BOOL) printsLeadingSign
Returns YES if the number is negative.
printToFile:
- printToFile: (FILE *) aFile
Prints the floating-point number to aFile according to the '%g' format of the ANSI function printf().