Macaulay2 Engine
Loading...
Searching...
No Matches
aring-RR.hpp File Reference

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

Detailed Description

M2::ARingRR — machine-precision real numbers (IEEE 754 double).

Note
AI-generated documentation. Verify against the source before relying on it.

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.

See also
aring-RRR.hpp
aring-RRi.hpp
aring-CC.hpp
aring.hpp

Definition in file aring-RR.hpp.