fixed_t
fixed_t
is a central type in this library, designed for high-precision fixed-point arithmetic. Its purpose is to facilitate arithmetic operations with fixed-point numbers while avoiding the pitfalls of implicit conversions from standard integer types.
fix_carrier_t
as an internal carrier for the fixed_internal
type. This approach ensures clear differentiation from standard int64
types, encapsulating the fixed-point value securely.fixed_t
prevents implicit conversions from int64
, long long
, and similar types, preserving the integrity and intended precision of calculations.+
, -
, *
, ensuring fixed_t
can be used seamlessly in mathematical expressions.==
, !=
, <
, >
, <=
, >=
), enabling straightforward equality and relational comparisons.constexpr
and noexcept
, emphasizing efficiency and compatibility with compile-time evaluation.as_fixed
: Constructs a fixed_t
instance from a raw value in its internal format, facilitating direct manipulation of fixed-point values with explicit control.==
, !=
, <
, >
, <=
, >=
) are marked as constexpr
, gnu::const
, and gnu::always_inline
, optimizing for performance and inline expansion where supported.