Skip to content
/ num Public

A collection of numeric types and traits for Rust.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

rust-num/num

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

num

crate documentation minimum rustc 1.60 build status

A collection of numeric types and traits for Rust.

This includes new types for big integers, rationals (aka fractions), and complex numbers, new traits for generic programming on numeric properties like Integer, and generic range iterators.

num is a meta-crate, re-exporting items from these sub-crates:

Repository Crate Documentation
num-bigint crate documentation
num-complex crate documentation
num-integer crate documentation
num-iter crate documentation
num-rational crate documentation
num-traits crate documentation
(num-derive) crate documentation

Note: num-derive is listed here for reference, but it's not directly included in num. This is a proc-macro crate for deriving some of num's traits.

Usage

Add this to your Cargo.toml:

[dependencies]
num = "0.4"

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]
version = "0.4"
default-features = false

The num-bigint crate requires the std feature, or the alloc feature may be used instead with Rust 1.36 and later. Other sub-crates may also have limited functionality when used without std.

The libm feature uses pure-Rust floating point implementations in no_std builds, enabling the Float trait and related Complex methods.

The rand feature enables randomization traits in num-bigint and num-complex.

The serde feature enables serialization for types in num-bigint, num-complex, and num-rational.

The num meta-crate no longer supports features to toggle the inclusion of the individual sub-crates. If you need such control, you are recommended to directly depend on your required crates instead.

Releases

Release notes are available in RELEASES.md.

Compatibility

The num crate as a whole is tested for rustc 1.60 and greater.

The num-traits, num-integer, and num-iter crates are individually tested for rustc 1.8 and greater, if you require such older compatibility.

License

Licensed under either of

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.