]>
Commit | Line | Data |
---|---|---|
0531ce1d XL |
1 | # num-traits |
2 | ||
3 | [![crate](https://img.shields.io/crates/v/num-traits.svg)](https://crates.io/crates/num-traits) | |
4 | [![documentation](https://docs.rs/num-traits/badge.svg)](https://docs.rs/num-traits) | |
f035d41b XL |
5 | [![minimum rustc 1.8](https://img.shields.io/badge/rustc-1.8+-red.svg)](https://rust-lang.github.io/rfcs/2495-min-rust-version.html) |
6 | [![build status](https://github.com/rust-num/num-traits/workflows/master/badge.svg)](https://github.com/rust-num/num-traits/actions) | |
0531ce1d XL |
7 | |
8 | Numeric traits for generic mathematics in Rust. | |
9 | ||
10 | ## Usage | |
11 | ||
12 | Add this to your `Cargo.toml`: | |
13 | ||
14 | ```toml | |
15 | [dependencies] | |
16 | num-traits = "0.2" | |
17 | ``` | |
18 | ||
19 | and this to your crate root: | |
20 | ||
21 | ```rust | |
22 | extern crate num_traits; | |
23 | ``` | |
24 | ||
25 | ## Features | |
26 | ||
27 | This crate can be used without the standard library (`#![no_std]`) by disabling | |
8faf50e0 | 28 | the default `std` feature. Use this in `Cargo.toml`: |
0531ce1d XL |
29 | |
30 | ```toml | |
31 | [dependencies.num-traits] | |
32 | version = "0.2" | |
33 | default-features = false | |
f035d41b | 34 | # features = ["libm"] # <--- Uncomment if you wish to use `Float` and `Real` without `std` |
0531ce1d XL |
35 | ``` |
36 | ||
f035d41b XL |
37 | The `Float` and `Real` traits are only available when either `std` or `libm` is enabled. |
38 | The `libm` feature is only available with Rust 1.31 and later ([see PR #99](https://github.com/rust-num/num-traits/pull/99)). | |
39 | ||
40 | The `FloatCore` trait is always available. `MulAdd` and `MulAddAssign` for `f32` | |
41 | and `f64` also require `std` or `libm`, as do implementations of signed and floating- | |
8faf50e0 XL |
42 | point exponents in `Pow`. |
43 | ||
44 | Implementations for `i128` and `u128` are only available with Rust 1.26 and | |
45 | later. The build script automatically detects this, but you can make it | |
46 | mandatory by enabling the `i128` crate feature. | |
0531ce1d XL |
47 | |
48 | ## Releases | |
49 | ||
50 | Release notes are available in [RELEASES.md](RELEASES.md). | |
51 | ||
52 | ## Compatibility | |
53 | ||
54 | The `num-traits` crate is tested for rustc 1.8 and greater. |