pub struct BigRational { /* private fields */ }Expand description
Exact rational number with arbitrary-precision numerator and denominator.
Implementations§
Source§impl BigRational
impl BigRational
Sourcepub fn from_bigint(n: BigInt) -> Self
pub fn from_bigint(n: BigInt) -> Self
Construct from a BigInt (n/1).
Sourcepub fn from_i64s(num: i64, den: i64) -> Option<Self>
pub fn from_i64s(num: i64, den: i64) -> Option<Self>
Construct from a numerator/denominator pair of i64. Fails closed on a
zero denominator.
Sourcepub fn new(num: BigInt, den: BigInt) -> Option<Self>
pub fn new(num: BigInt, den: BigInt) -> Option<Self>
Construct from arbitrary BigInt numerator and denominator, reducing
and sign-normalising. Returns None if den is zero.
Sourcepub fn denominator(&self) -> &BigInt
pub fn denominator(&self) -> &BigInt
Denominator (always positive).
Sourcepub fn recip(&self) -> Option<Self>
pub fn recip(&self) -> Option<Self>
Multiplicative inverse den/num. Fails closed if self is zero.
Sourcepub fn add(&self, other: &BigRational) -> BigRational
pub fn add(&self, other: &BigRational) -> BigRational
Sum self + other. Computes (a*d + c*b) / (b*d) then reduces.
Sourcepub fn sub(&self, other: &BigRational) -> BigRational
pub fn sub(&self, other: &BigRational) -> BigRational
Difference self - other.
Sourcepub fn mul(&self, other: &BigRational) -> BigRational
pub fn mul(&self, other: &BigRational) -> BigRational
Product self * other.
Sourcepub fn div(&self, other: &BigRational) -> Option<BigRational>
pub fn div(&self, other: &BigRational) -> Option<BigRational>
Quotient self / other. Fails closed if other is zero.
Trait Implementations§
Source§impl Clone for BigRational
impl Clone for BigRational
Source§fn clone(&self) -> BigRational
fn clone(&self) -> BigRational
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for BigRational
impl Debug for BigRational
Source§impl Display for BigRational
impl Display for BigRational
Source§impl Ord for BigRational
impl Ord for BigRational
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for BigRational
impl PartialEq for BigRational
Source§fn eq(&self, other: &BigRational) -> bool
fn eq(&self, other: &BigRational) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl PartialOrd for BigRational
impl PartialOrd for BigRational
impl Eq for BigRational
impl StructuralPartialEq for BigRational
Auto Trait Implementations§
impl Freeze for BigRational
impl RefUnwindSafe for BigRational
impl Send for BigRational
impl Sync for BigRational
impl Unpin for BigRational
impl UnsafeUnpin for BigRational
impl UnwindSafe for BigRational
Blanket Implementations§
§impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
Aggregate shares in an MPC protocol.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more