(self, a, b, tags)
| 948 | class DetCases(LinalgSquareTestCase, LinalgGeneralizedSquareTestCase): |
| 949 | |
| 950 | def do(self, a, b, tags): |
| 951 | d = linalg.det(a) |
| 952 | res = linalg.slogdet(a) |
| 953 | s, ld = res.sign, res.logabsdet |
| 954 | if asarray(a).dtype.type in (single, double): |
| 955 | ad = asarray(a).astype(double) |
| 956 | else: |
| 957 | ad = asarray(a).astype(cdouble) |
| 958 | ev = linalg.eigvals(ad) |
| 959 | assert_almost_equal(d, multiply.reduce(ev, axis=-1)) |
| 960 | assert_almost_equal(s * np.exp(ld), multiply.reduce(ev, axis=-1)) |
| 961 | |
| 962 | s = np.atleast_1d(s) |
| 963 | ld = np.atleast_1d(ld) |
| 964 | m = (s != 0) |
| 965 | assert_almost_equal(np.abs(s[m]), 1) |
| 966 | assert_equal(ld[~m], -inf) |
| 967 | |
| 968 | |
| 969 | class TestDet(DetCases): |
nothing calls this directly
no test coverage detected