pyrival.linear_algebra¶
pyrival.linear_algebra.matrix¶
-
pyrival.linear_algebra.matrix.eye(m)¶ returns an indentity matrix of order m
-
pyrival.linear_algebra.matrix.mat_add(*mat)¶
-
pyrival.linear_algebra.matrix.mat_inv(A)¶
-
pyrival.linear_algebra.matrix.mat_mul(A, B)¶
-
pyrival.linear_algebra.matrix.mat_pow(mat, power)¶ returns mat**power
-
pyrival.linear_algebra.matrix.mat_sub(A, B)¶
-
pyrival.linear_algebra.matrix.minor(mat, i, j)¶
-
pyrival.linear_algebra.matrix.transpose(mat)¶
-
pyrival.linear_algebra.matrix.vec_mul(mat, vec)¶
pyrival.linear_algebra.max_xor¶
Maximizes xor of values in a list (works with big integers)
Example: >>>> A = [10**20, 3, 6, 4] >>>> I = max_xor(A) >>>> xor = 0 >>>> for i in I: …. xor ^= A[i] …. >>>> xor 100000000000000000007
-
pyrival.linear_algebra.max_xor.max_xor(A)¶ Input: List A of non-negative integers Output: I such that xor(A[i] for i in I) is maximized
pyrival.linear_algebra.multivariable_crt¶
-
pyrival.linear_algebra.multivariable_crt.extended_gcd(a, b)¶ returns gcd(a, b), s, r s.t. a * s + b * r == gcd(a, b)
-
pyrival.linear_algebra.multivariable_crt.gcd(x, y)¶ greatest common divisor of x and y
-
pyrival.linear_algebra.multivariable_crt.is_sol(A, x, b, m)¶ checks if Ax = b mod m
-
pyrival.linear_algebra.multivariable_crt.mat_mul(A, B)¶
-
pyrival.linear_algebra.multivariable_crt.mat_sub(A, B)¶
-
pyrival.linear_algebra.multivariable_crt.mcrt(A, b, m)¶ returns x s.t. Ax = b mod m
-
pyrival.linear_algebra.multivariable_crt.modinv(a, m)¶ returns the modular inverse of a w.r.t. to m
-
pyrival.linear_algebra.multivariable_crt.pivot(A, m)¶ returns the pivot of A and m