110: Implement tan r=japaric a=porglezomp
Also includes implementing the private `k_tan` function.
Closesrust-lang/libm#36
Co-authored-by: C Jones <code@calebjones.net>
Fixesrust-lang/libm#7
Additonally adds inline functions for macros dealing with low and high words of f64s to the root module.
Also, the muslc code used a hexdecimal float. This shouldn't be needed because Rust implements
floating point parsing well.
104: add more #[inline] r=japaric a=erikdesjardins
Some of these are pretty big so they may not get inlined in practice, but we might as well make them consistent with the rest.
Co-authored-by: Erik <erikdesjardins@users.noreply.github.com>
100: Implement expm1 r=japaric a=Veykril
~~Closes 13~~, closesrust-lang/libm#18 and ~~closes 14~~.
~~I wasn't sure where to put `__expo2(x: f64) -> f64` so I left it in `src/math/cosh.rs` for now.~~ Moved the function into it's own module.
Edit: Didn't see that `exp` was already done in a pull request, I'll take it out once rust-lang/libm#90 lands then.
103: implement fma r=japaric a=erikdesjardins
closesrust-lang/libm#19
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Co-authored-by: Erik <erikdesjardins@users.noreply.github.com>
84: Implement fmod r=japaric a=P1n3appl3
closesrust-lang/libm#21
I replaced the `isnanf()` function from `fmodf()` with a call to the core function `is_nan()`. If there's a reason we needed to re-implement it then I can change that back.
Also I couldn't figure out what to do in `src/lib.rs`. Is the `#[cfg(todo]` that I should be removing the one for `mod_euc()`? If so why is the equivalent one for the `f64` version still there?
Co-authored-by: Joseph Ryan <josephryan3.14@gmail.com>
Co-authored-by: Jorge Aparicio <jorge@japaric.io>