Skip to main content

Module arithmetic

Module arithmetic 

Source
Expand description

Traits for arithmetic.

Modules§

abs
Absolute value of Integers, including implementations of UnsignedAbs.
abs_diff
Implementations of AbsDiff and AbsDiffAssign, traits for getting the absolute value of the difference between two numbers.
abs_squared
Implementations of AbsSquared and AbsSquaredAssign, traits for computing the squared absolute value of a number. For real types this is the same as squaring.
add
Addition of Integers.
add_mul
Implementations of AddMul and AddMulAssign, traits for adding a number and the product of two other numbers.
average
Average, AverageAssign, AverageRound, and AverageRoundAssign, traits for computing the average (arithmetic mean) of two numbers.
balanced_mod
BalancedMod and BalancedModAssign, traits for finding the representative of a number modulo another number that is closest to zero.
binomial_coefficient
Implementations of BinomialCoefficient, a trait for computing the binomial coefficient of two numbers.
canonical_unit_i_pow
An implementation of CanonicalUnitIPow, a trait for finding the power of $i$ that brings a number into canonical unit form.
canonicalize_unit
Implementations of CanonicalizeUnit and CanonicalizeUnitAssign, traits for bringing a number into canonical unit form.
conjugate
Implementations of Conjugate and ConjugateAssign, traits for computing the complex conjugate of a number. A real number is its own conjugate.
crt
Implementations of BalancedCrt, a trait for combining two congruences by the Chinese remainder theorem and returning the representative of smallest absolute value.
div
Division of Integers.
div_euclidean
Implementations of DivEuclidean and DivEuclideanAssign, traits for finding the quotient of two numbers, rounded so that the remainder would be nonnegative.
div_exact
Implementations of DivExact and DivExactAssign, traits for dividing two numbers when it’s known that the division is exact.
div_mod
Implementations of traits for simultaneously finding the quotient and remainder of two numbers, subject to various rounding rules.
div_mod_euclidean
Implementations of DivModEuclidean and DivAssignModEuclidean, traits for simultaneously finding the quotient and remainder of two numbers, where the remainder is nonnegative.
div_round
Implementations of DivRound and DivExactAssign, traits for dividing two numbers according to a specified RoundingMode.
divisible_by
Implementations of DivisibleBy, a trait for determining whether one number is divisible by another.
divisible_by_power_of_2
Implementations of DivisibleByPowerOf2, a trait for determining whether a number is divisible by $2^k$.
eq_mod
Implementations of EqMod, a trait for determining whether one number is equal by another modulo a third.
eq_mod_power_of_2
Implementations of EqModPowerOf2, a trait for determining whether one number is equal to another modulo $2^k$.
extended_gcd
Implementations of ExtendedGcd, a trait for computing the extended GCD of two numbers.
falling_factorial
Implementations of FallingFactorial, a trait for computing the falling factorial of a number.
gcd
Implementations of Gcd and GcdAssign, traits for computing the GCD (greatest common divisor) of two numbers.
is_power_of_2
An implementation of IsPowerOf2, a trait for determining whether a number is an integer power of 2.
is_unit
An implementation of IsUnit, a trait for determining whether a number is a unit of its ring.
kronecker_symbol
Implementations of LegendreSymbol, JacobiSymbol, and KroneckerSymbol, traits for computing the Legendre, Jacobi, and Kronecker symbols of two numbers.
mod_euclidean
Implementations of ModEuclidean and ModEuclideanAssign, traits for finding the remainder of two numbers, where the remainder is nonnegative.
mod_op
Implementations of traits for finding the remainder of two numbers, subject to various rounding rules.
mod_power_of_2
Implementations of traits for finding the remainder of a number divided by $2^k$, subject to various rounding rules.
mul
Multiplication of Integers.
mul_add_mul
mul_shr_round
Implementations of MulShrRound and MulShrRoundAssign, traits for multiplying two numbers and right-shifting the product with a specified rounding mode. When most of the product is discarded, a short product avoids computing the rest.
mul_sub_mul
multi_crt
Negation of an Integer. The one-shot balanced multi-modulus Chinese remainder combination, Integer::multi_balanced_crt.
neg
parity
Implementations of Parity, a trait for determining whether a number is even or odd.
pow
Implementations of Pow and PowAssign, traits for raising a number to a power.
power_of_2
Implementations of PowerOf2, a trait for computing a power of 2.
rising_factorial
Implementations of RisingFactorial, a trait for computing the rising factorial of a number.
root
Implementations of traits for taking the $n$th root of a number.
round_to_multiple
Implementations of RoundToMultiple and RoundToMultipleAssign, traits for rounding a number to a multiple of another number.
round_to_multiple_of_power_of_2
Implementations of RoundToMultipleOfPowerOf2 and RoundToMultipleOfPowerOf2Assign, traits for rounding a number to a multiple of a power of 2.
shl
Left-shifting an Integer (multiplying it by a power of 2).
shl_round
Implementations of ShlRound and ShlRoundAssign, traits for multiplying a number by a power of 2 and rounding according to a specified RoundingMode.
shr
Right-shifting an Integer (dividing it by a power of 2).
shr_round
Implementations of ShrRound and ShrRoundAssign, traits for dividing a number by a power of 2 and rounding according to a specified RoundingMode.
sign
Implementations of Sign, a trait for determining the sign of a number.
sqrt
Implementations of traits for taking the square root of a number.
square
Implementations of Square and SquareAssign, traits for squaring a number.
sub
Subtraction of Integers.
sub_mul
Implementations of SubMul and SubMulAssign, traits for subtracting the product of two numbers from a number.