diff options
| author | EllipticEllipsis <elliptic.ellipsis@gmail.com> | 2022-05-01 23:06:35 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-02 00:06:35 +0200 |
| commit | e84f5ab3878b30bdddd2ee5a0dbddc10e00d219d (patch) | |
| tree | 67e1ac6584b3612b2b5e4066388ef2bc811efc1f /src/code/fmodf.c | |
| parent | 7334ffa373d7aeef31977c2fe39af711d7069809 (diff) | |
Memstuff (#1164)
* Un-fake a couple of matches in memory manip functions
* Document fmodf
* Un-fake a couple of matches in memory manip functions
* Document fmodf
* Rename functions and files
* Document memmove, memsets, memcpys
* Format
* Sort out some missing sizeofs
* Name fmodf
* Rename local variables
* size_t
* Use COBRA_SHADOW_TEX_SIZE
* Review
* Tweak the Doxyfile to remove @brief requirement
* Roman's review
* Fix a bug comment
* Change fmodf
Diffstat (limited to 'src/code/fmodf.c')
| -rw-r--r-- | src/code/fmodf.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/code/fmodf.c b/src/code/fmodf.c index 6cc69dd87..e1e386223 100644 --- a/src/code/fmodf.c +++ b/src/code/fmodf.c @@ -1,12 +1,27 @@ #include "global.h" +/** + * Computes one `x` modulo `y` for floats. + * + * Acts like the standard C fmodf except does not handle Infinity. See https://en.cppreference.com/w/c/numeric/math/fmod + * for the details. It summarizes this function as follows: + * "The floating-point remainder of the division operation x/y calculated by this function is exactly the value x - n*y, + * where n is x/y with its fractional part truncated. + * + * The returned value has the same sign as x and is less or equal to y in magnitude." + * + * @param x dividend + * @param y modulus + * + * @return f32 0.0f if y is 0.0f, or x modulo y otherwise + */ f32 fmodf(f32 x, f32 y) { - s32 quot; + s32 n; if (y == 0.0f) { return 0.0f; } - quot = x / y; + n = x / y; - return x - (quot * y); + return x - (n * y); } |
