def test07_inverse(M): pytest.importorskip("numpy") import numpy as np np.random.seed(1) for i in range(100): m1 = np.float32(np.random.normal(size=list(reversed(M.Shape)))) m2 = M(m1) inv1 = M(np.linalg.inv(m1)) @ m2 - ek.identity(M) inv2 = ek.inverse(m2) @ m2 - ek.identity(M) assert ek.allclose(inv1, 0, atol=1e-3) assert ek.allclose(inv2, 0, atol=1e-3)
def test05_allclose(): m = ek.full(M, 1) assert ek.allclose(m, ek.full(M, 1)) m[1, 0] = 0 assert not ek.allclose(m, ek.full(M, 1)) m = ek.identity(M) assert ek.allclose(m, 1) m[1, 0] = 1 assert not ek.allclose(m, 1)
def test08_polar(): m = M(*range(1, 17)) + ek.identity(M) q, r = ek.polar_decomp(m) assert ek.allclose(q @ r, m) assert ek.allclose(q @ ek.transpose(q), ek.identity(M), atol=1e-6)