100: Implement expm1 r=japaric a=Veykril ~~Closes 13~~, closes #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 #90 lands then. 103: implement fma r=japaric a=erikdesjardins closes #19 Co-authored-by: Lukas Wirth <lukastw97@gmail.com> Co-authored-by: Erik <erikdesjardins@users.noreply.github.com>
libm
A port of MUSL's libm to Rust.
Goals
The short term goal of this library is to enable math support (e.g. sin
, atan2
) for the
wasm32-unknown-unknown
target (cf. rust-lang-nursery/compiler-builtins). The longer
term goal is to enable math support in the core
crate.
Already usable
This crate is on crates.io and can be used today in stable #![no_std]
programs like this:
#![no_std]
extern crate libm;
use libm::F32Ext; // adds methods to `f32`
fn foo(x: f32) {
let y = x.sqrt();
let z = libm::truncf(x);
}
Not all the math functions are available at the moment. Check the API docs to learn what's currently supported.
Contributing
Please check CONTRIBUTING.md
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.