def do(self, a, b): evalues, evectors = gula.eig(a) assert_valid_eigenvals(a, evalues) assert_valid_eigen(a, evalues, evectors) ev = gula.eigvals(a) assert_valid_eigenvals(a, evalues) assert_almost_equal(ev, evalues)
def do(self, a, b): d = gula.det(a) s, ld = gula.slogdet(a) assert_almost_equal(s * np.exp(ld), d) if np.csingle == a.dtype.type or np.single == a.dtype.type: cmp_type=np.csingle else: cmp_type=np.cdouble ev = gula.eigvals(a.astype(cmp_type)) assert_almost_equal(d.astype(cmp_type), multiply.reduce(ev.astype(cmp_type), axis=(ev.ndim-1))) if s != 0: assert_almost_equal(np.abs(s), 1) else: assert_equal(ld, -inf)