CGAL::MP_Float
Definition
An object of the class MP_Float is able to represent a floating point
value with arbitrary precision. This number type has the property that
additions, subtractions and multiplications are computed exactly, as well as
the construction from a double. Division and square root are computed
approximately, so we suggest that you use rationals using
Quotient<MP_Float> when you need exact divisions.
Note on the implementation : although the mantissa length is basically only
limited by the available memory, the exponent is currently represented by a
double, which can overflow in some circumstances. We plan to also have
a multiprecision exponent to fix this issue.
#include <CGAL/MP_Float.h>
Is Model for the Concept
FieldNumberType
Creation
MP_Float m;
|
|
introduces an uninitialized variable m.
|
MP_Float m ( MP_Float);
|
|
copy constructor.
|
MP_Float m ( int i);
|
|
introduces the integral value i.
|
MP_Float m ( double d);
|
|
introduces the floating point value d.
|
Operations
std::ostream&
|
std::ostream& out << m
|
| |
writes a double approximation of m to the ostream out.
|
|
std::istream&
|
std::istream& in >> & m
|
| |
reads a double from in, then converts it to an MP_Float.
|
Implementation
The implementation of MP_Float is simple but provides a quadratic
complexity for multiplications. This can be a problem for large operands.
For faster implementations of the same functionality with large integral
values, you may want to consider using GMP or LEDA instead.