Crate rugflo [−] [src]
Multiple-precision floating-point numbers
The rugflo
crate provides multiple-precision floating-point
numbers using the GNU MPFR Library, a
library for multiple-precision floating-point computations. It
can be helpful to refer to the documentation at the
MPFR page.
This crate is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This crate is one of a group of four crates:
rugint
for arbitrary-precision integers,rugrat
for arbitrary-precision rational numbers,rugflo
for multiple-precision floating-point numbers, andrugcom
for multiple-precision complex numbers.
Basic use
The crate provides the Float
type, which
holds a multiple-precision floating-point number.
Examples
use rugflo::Float; // Create a floating-point number with 53 bits of precision. // (An `f64` has 53 bits of precision too.) let flo53 = Float::from((0xff00ff, 53)); assert!(flo53.to_f64() == 0xff00ff as f64); // Create a floating-point number with only 16 bits of precision. let flo16 = Float::from((0xff00ff, 16)); // Now the number is rounded. assert!(flo16.to_f64() == 0xff0100 as f64);
Usage
To use rugflo
in your crate, add extern crate rugflo;
to the
crate root and add rugflo
as a dependency in Cargo.toml
:
[dependencies]
rugflo = "0.1.3"
The rugflo
crate depends on the low-level bindings in the
gmp-mpfr-sys
crate.
This should be transparent on GNU/Linux and macOS, but may need
some work on Windows. See the gmp-mpfr-sys
README
for some details.
Optional feature
The rugflo
crate has an optional feature random
to enable
random number generation. The random
feature has a build
dependency on the rand
crate. The feature is enabled by default;
to disable it add this to Cargo.toml
:
[dependencies.rugflo]
version = "0.1.3"
default-features = false
Structs
Float |
A multi-precision floating-point number. The precision has to be set during construction. |
Enums
Constant |
The available floating-point constants. |
Round |
The rounding methods for floating-point values. |
Special |
Special floating-point values. |
Traits
AddRound |
Provides addition with a specified rounding method. |
AssignRound |
Assigns to a number from another value, applying the specified rounding method. |
DivRound |
Provides division with a specified rounding method. |
FromRound |
Construct |
MulRound |
Provides multiplication with a specified rounding method. |
PowRound |
Provides the power operation inside |
ShlRound |
Provides the left shift operation with a specified rounding method. |
ShrRound |
Provides the right shift operation with a specified rounding method. |
SubRound |
Provides subtraction with a specified rounding method. |
Functions
exp_max |
Returns the maximum value for the exponent. |
exp_min |
Returns the minimum value for the exponent. |
prec_max |
Returns the maximum value for the precision. |
prec_min |
Returns the minimum value for the precision. |