Skip to content

Numeric Codecs API

Codecs for floating point, rational, and complex numbers.

FloatingPoint

Configurable precision floating point encoding.

template<unsigned MantissaBits, unsigned ExponentBits>
struct FloatingPoint;

// Standard formats
using Float16 = FloatingPoint<11, 5>;   // IEEE 754 half
using Float32 = FloatingPoint<24, 8>;   // IEEE 754 single
using Float64 = FloatingPoint<53, 11>;  // IEEE 754 double
using BFloat16 = FloatingPoint<8, 8>;   // Google Brain float

Rational

Exact fraction representation.

class PackedRational {
public:
    PackedRational(int numerator, int denominator);

    int numerator() const;
    int denominator() const;
    double to_double() const;
};

Complex

Complex number encoding (rectangular or polar).

template<typename FloatCodec>
class ComplexRectangular;

template<typename FloatCodec>
class ComplexPolar;

See API Overview for complete documentation.