Bug: 162344292

Clone this repo:
  1. 0fdf21d Mark ab/6881855 as merged by Xin Li · 8 weeks ago master
  2. bec374e Merge "TEST_MAPPING: test dependers of this crate" am: 35a4e19a07 by Treehugger Robot · 2 months ago
  3. 35a4e19 Merge "TEST_MAPPING: test dependers of this crate" by Treehugger Robot · 2 months ago
  4. 568481f TEST_MAPPING: test dependers of this crate by Jeff Vander Stoep · 2 months ago
  5. 3488148 Upgrade rust/crates/num-traits to 0.2.14 am: fa1e128f8d by Haibo Huang · 2 months 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"

and this to your crate root:

extern crate num_traits;


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.