Bug: 162344292

Clone this repo:
  1. 042ce62 Make num-traits available to product and vendor am: 51edc814c9 by Matthew Maurer · 2 weeks ago master
  2. 51edc81 Make num-traits available to product and vendor by Matthew Maurer · 2 weeks ago
  3. e97c56e Update TEST_MAPPING am: bf3df99561 by Jeff Vander Stoep · 7 weeks ago
  4. bf3df99 Update TEST_MAPPING by Jeff Vander Stoep · 8 weeks ago
  5. 9e4e002 Update TEST_MAPPING am: e7ebd7efdb by David Brazdil · 8 weeks ago


crate documentation minimum rustc 1.8 build status

Numeric traits for generic mathematics in Rust.


Add this to your Cargo.toml:

num-traits = "0.2"


This crate can be used without the standard library (#![no_std]) by disabling the default std feature. Use this in Cargo.toml:

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.


Release notes are available in RELEASES.md.


The num-traits crate is tested for rustc 1.8 and greater.


Licensed under either of

at your option.


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.