|
Macaulay2 Engine
|
M2::ARingRR — machine-precision real numbers (IEEE 754 double). More...
#include "interface/random.h"#include "exceptions.hpp"#include "aring.hpp"#include "buffer.hpp"#include "ringelem.hpp"#include "ringmap.hpp"Go to the source code of this file.
Classes | |
| class | M2::ARingRR |
| aring-style adapter for double-precision real numbers. More... | |
Namespaces | |
| namespace | M2 |
M2::ARingRR — machine-precision real numbers (IEEE 754 double).
ARingRR is the simplest real ring in the aring family: a SimpleARing<ARingRR> whose elem is plain double and whose get_precision() returns 53 (the IEEE 754 mantissa width). add / subtract / mult / divide / invert are hardware floating-point operations with no zero check — divide by zero silently produces an IEEE inf, matching the source's "we silently assume that a != 0" comment on invert. The non-trivial pieces lean on libm (pow for power, fabs for abs / increase_norm) and on MPFR for the zeroize_tiny, set_from_BigReal, and increase_norm bridges into higher-precision values. Arbitrary precision drops through to ARingRRR (MPFR); interval certification lives in aring-RRi.hpp.
Engine consumers are SLEvaluatorConcrete<ARingRR> in SLP-defs.hpp / SLP-imp.hpp, the DMat<ARingRR> (DMatRR) dense matrices in mat-linalg.hpp and dmat-lu-inplace.hpp, the cross-ring coercion routines in aring-translate.hpp, and the MutableMat machinery that registers RR in mutablemat-defs.hpp.
Definition in file aring-RR.hpp.