Opis is a library for rational number and matrix arithmetic.
Roy R. O. Okello
text
[dependencies]
opis = "5.0.0"
text
use opis::{ Bit, Integer, Fraction, Matrix };
Add a + b
And a & b
Eq a == a
Not !a
Or a | b
Xor a ^ b
Addition a + b, a += b
And a & b
Base2 Integer::from_bin("1010101"), a.to_bin()
Base10 Integer::from_dec("674755"), a.to_dec()
Base16 Integer::from_hex("00ABC012"), a.to_hex()
Bytes Integer::from(&bytes), a.into()
Comparision a < b, a <= b, a > b, a >= b
Division a / b?
Equality a == b
Extended Euclidean Algorithm a.ext_gcd(&b)
Extended Bits a.to_ext_bits(256)
Extended Bytes a.to_ext_bytes(32)
Linear Feedback Shift Register a.lfsr(1)?
Modulo: a.modulo(&m)
Multiply a * b, a *= b
Negate a.negate()
Not !a
Or a | b
Exponentiation a.pow(e)
Remainder: a % b?
Shifts a << 1, a <<= 1, a >> 1, a >>= 1
Subtraction a - b, a -= b
Type Conversion 2_u8.into()
Addition a + b, a += b
Comparison a < b, a <= b, a > b, a >= b
Division a / b?
Equality a == b
Multiplication a * b, a *= b
Reciprocal a.reciprocal()
Reduce a.reduce()
String Conversion Fraction::try_from("1/2")
Subtraction a - b, a -= b
Type Conversion 2_u8.into()
Addition a + b
Determinant a.determinant()
Dimensions a.dimensions()
Equality a == b
Identity Matrix::identity(size, zero, one)
Inverse a.inverse(zero, one)
Multiplication a * b
Subtraction a - b
Trace a.trace()
Transpose a.transpose()
2022-11-05