2f0cffd522
99: Revive Float+Real in no_std thanks to libm r=cuviper a=yoanlcq Greetings, This is a hopeful fix for #75. Basically: Add `libm` as an optional dependency, and handle three possible cases depending on which features are enabled: - std and libm: std is used; - std and not libm: std is used; - libm and not std: libm and FloatCore are used. It was briefly mentioned that `libm` wasn't ready yet, but this was months ago, and I believe it is better not to wait for too long. If anything, bugs in `libm` should be fixed in `libm`; `num-traits` is only delegating its implementations to it; not to mention that the more `libm` is used, the likelier issues are to be found and hopefully fixed. Thanks in advance! Co-authored-by: Yoan Lecoq <yoanlecoq.io@gmail.com> Co-authored-by: Josh Stone <cuviper@gmail.com> |
||
---|---|---|
ci | ||
src | ||
tests | ||
.gitignore | ||
.travis.yml | ||
Cargo.toml | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
README.md | ||
RELEASES.md | ||
bors.toml | ||
build.rs |
README.md
num-traits
Numeric traits for generic mathematics in Rust.
Usage
Add this to your Cargo.toml
:
[dependencies]
num-traits = "0.2"
and this to your crate root:
extern crate num_traits;
Features
This crate can be used without the standard library (#![no_std]
) by disabling
the default std
feature. Use this in Cargo.toml
:
[dependencies.num-traits]
version = "0.2"
default-features = false
# features = ["libm"] # <--- Uncomment if you wish to use `Float` and `Real` without `std`
The Float
and Real
traits are only available when either std
or libm
is enabled.
The libm
feature is only available with Rust 1.31 and later (see PR #99).
The FloatCore
trait is always available. MulAdd
and MulAddAssign
for f32
and f64
also require std
or libm
, as do implementations of signed and floating-
point exponents in Pow
.
Implementations for i128
and u128
are only available with Rust 1.26 and
later. The build script automatically detects this, but you can make it
mandatory by enabling the i128
crate feature.
Releases
Release notes are available in RELEASES.md.
Compatibility
The num-traits
crate is tested for rustc 1.8 and greater.