Overload List
| # | Signature | Description |
|---|---|---|
| 1 | double Rem(const double X, const double Y); | IEEE 754 floating-point remainder (fmod). |
| 2 | TCplx Rem(const TCplx &X, const TCplx &Y); | Complex remainder after division. |
| 3 | TSCplx Rem(const TSCplx &X, const TSCplx &Y); |
Overload 1: double Rem(const double X, const double Y);
IEEE 754 floating-point remainder (fmod).
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | const double | |
| 2 | Y | const double |
Returns: The exact remainder of X/Y, with |result| < |Y| and same sign as X.
Computes X - trunc(X/Y) * Y with no rounding error (IEEE 754 exact operation). General-purpose modular arithmetic for arbitrary divisor Y - use for clock wrapping, spatial tiling, fractional part extraction, or any case where you need the exact numerical value of the remainder in a guaranteed range.
Not suitable for angle reduction before trigonometric functions. Sin, Cos and Tan handle large arguments internally using Payne-Hanek range reduction with extended-precision constants - calling Rem(x, 2*Pi) beforehand does not improve their accuracy and can degrade it for large |x|.
Overload 2: TCplx Rem(const TCplx &X, const TCplx &Y);
Complex remainder after division.
Returns: The remainder after complex division: X/Y. Applied component-wise.