pub struct MpFloat { /* private fields */ }Expand description
Arbitrary-precision floating-point number.
Wraps DBig with a precision (in binary bits) stored alongside so
that prec() returns the correct bit width. All arithmetic is carried
out at the stored precision.
Implementations§
Source§impl MpFloat
impl MpFloat
Sourcepub fn with_val(bits: u32, v: f64) -> Self
pub fn with_val(bits: u32, v: f64) -> Self
Create a new MpFloat from an f64 at the given bit precision.
§Examples
use oxinum_float::mp_float::MpFloat;
let x = MpFloat::with_val(256, 3.14f64);
assert!((x.to_f64() - 3.14).abs() < 1e-10);Sourcepub fn with_val_from(bits: u32, other: &MpFloat) -> Self
pub fn with_val_from(bits: u32, other: &MpFloat) -> Self
Create a new MpFloat from another MpFloat value at the given bit
precision (analogous to rug::Float::with_val(bits, &other)).
Sourcepub fn from_dbig(d: &DBig, bits: u32) -> Self
pub fn from_dbig(d: &DBig, bits: u32) -> Self
Create from a DBig reference, using the existing precision.
Sourcepub fn decimal_prec(&self) -> usize
pub fn decimal_prec(&self) -> usize
Return the decimal precision used internally.
Sourcepub fn is_integer(&self) -> bool
pub fn is_integer(&self) -> bool
True if the value is an integer (fractional part is zero).
Sourcepub fn is_sign_positive(&self) -> bool
pub fn is_sign_positive(&self) -> bool
True if the value is strictly positive.
Sourcepub fn is_sign_negative(&self) -> bool
pub fn is_sign_negative(&self) -> bool
True if the value is strictly negative.
Sourcepub fn sqrt(self) -> Self
pub fn sqrt(self) -> Self
Square root. Returns 0 for negative inputs (mirrors MPFR NaN→0 fallback).
Sourcepub fn ln_gamma_mut(&mut self)
pub fn ln_gamma_mut(&mut self)
Apply log-gamma in-place (mirrors rug::Float::ln_gamma_mut()).
Sourcepub fn digamma_mut(&mut self)
pub fn digamma_mut(&mut self)
Apply digamma in-place (mirrors rug::Float::digamma_mut()).
Trait Implementations§
Source§impl AddAssign for MpFloat
impl AddAssign for MpFloat
Source§fn add_assign(&mut self, rhs: MpFloat)
fn add_assign(&mut self, rhs: MpFloat)
+= operation. Read moreSource§impl AddAssign<&MpFloat> for MpFloat
impl AddAssign<&MpFloat> for MpFloat
Source§fn add_assign(&mut self, rhs: &MpFloat)
fn add_assign(&mut self, rhs: &MpFloat)
+= operation. Read moreSource§impl AddAssign<f64> for MpFloat
impl AddAssign<f64> for MpFloat
Source§fn add_assign(&mut self, rhs: f64)
fn add_assign(&mut self, rhs: f64)
+= operation. Read moreSource§impl DivAssign for MpFloat
impl DivAssign for MpFloat
Source§fn div_assign(&mut self, rhs: MpFloat)
fn div_assign(&mut self, rhs: MpFloat)
/= operation. Read moreSource§impl DivAssign<&MpFloat> for MpFloat
impl DivAssign<&MpFloat> for MpFloat
Source§fn div_assign(&mut self, rhs: &MpFloat)
fn div_assign(&mut self, rhs: &MpFloat)
/= operation. Read moreSource§impl DivAssign<f64> for MpFloat
impl DivAssign<f64> for MpFloat
Source§fn div_assign(&mut self, rhs: f64)
fn div_assign(&mut self, rhs: f64)
/= operation. Read moreSource§impl MulAssign for MpFloat
impl MulAssign for MpFloat
Source§fn mul_assign(&mut self, rhs: MpFloat)
fn mul_assign(&mut self, rhs: MpFloat)
*= operation. Read moreSource§impl MulAssign<&MpFloat> for MpFloat
impl MulAssign<&MpFloat> for MpFloat
Source§fn mul_assign(&mut self, rhs: &MpFloat)
fn mul_assign(&mut self, rhs: &MpFloat)
*= operation. Read moreSource§impl MulAssign<f64> for MpFloat
impl MulAssign<f64> for MpFloat
Source§fn mul_assign(&mut self, rhs: f64)
fn mul_assign(&mut self, rhs: f64)
*= operation. Read moreSource§impl PartialOrd for MpFloat
impl PartialOrd for MpFloat
Source§impl PartialOrd<f64> for MpFloat
impl PartialOrd<f64> for MpFloat
Source§impl SubAssign for MpFloat
impl SubAssign for MpFloat
Source§fn sub_assign(&mut self, rhs: MpFloat)
fn sub_assign(&mut self, rhs: MpFloat)
-= operation. Read moreSource§impl SubAssign<&MpFloat> for MpFloat
impl SubAssign<&MpFloat> for MpFloat
Source§fn sub_assign(&mut self, rhs: &MpFloat)
fn sub_assign(&mut self, rhs: &MpFloat)
-= operation. Read more