def test_riemann_matrix(self): # the transformed period matrices should still result in a Riemann # matrix after normalization Pa, Pb = symmetrize_periods(self.atrott.T, self.btrott.T) Omega = Pa.inverse() * Pb Y = Omega.apply_map(imag) symmetric_error = (Omega - Omega.T).norm() eigenvalues = Y.eigenvalues() self.assertLess(symmetric_error, 3e-3) # the example itself has low precision for eig in eigenvalues: self.assertGreater(eig, 0) Pa, Pb = symmetrize_periods(self.aklein.T, self.bklein.T, tol=1e-3) Omega = Pa.inverse() * Pb Y = Omega.apply_map(imag) symmetric_error = (Omega - Omega.T).norm() eigenvalues = Y.eigenvalues() self.assertLess(symmetric_error, 1e-3) for eig in eigenvalues: self.assertGreater(eig, 0) Pa, Pb = symmetrize_periods(self.afermat.T, self.bfermat.T, tol=1e-3) Omega = Pa.inverse() * Pb Y = Omega.apply_map(imag) symmetric_error = (Omega - Omega.T).norm() eigenvalues = Y.eigenvalues() self.assertLess(symmetric_error, 1e-3) for eig in eigenvalues: self.assertGreater(eig, 0) Pa, Pb = symmetrize_periods(self.a6.T, self.b6.T) Omega = Pa.inverse() * Pb Y = Omega.apply_map(imag) symmetric_error = (Omega - Omega.T).norm() eigenvalues = Y.eigenvalues() self.assertLess(symmetric_error, 1e-3) for eig in eigenvalues: self.assertGreater(eig, 0)
def test_riemann_matrix(self): # the transformed period matrices should still result in a Riemann # matrix after normalization Pa, Pb = symmetrize_periods(self.atrott.T, self.btrott.T) Omega = Pa.inverse()*Pb Y = Omega.apply_map(imag) symmetric_error = (Omega - Omega.T).norm() eigenvalues = Y.eigenvalues() self.assertLess(symmetric_error, 3e-3) # the example itself has low precision for eig in eigenvalues: self.assertGreater(eig, 0) Pa, Pb = symmetrize_periods(self.aklein.T, self.bklein.T, tol=1e-3) Omega = Pa.inverse()*Pb Y = Omega.apply_map(imag) symmetric_error = (Omega - Omega.T).norm() eigenvalues = Y.eigenvalues() self.assertLess(symmetric_error, 1e-3) for eig in eigenvalues: self.assertGreater(eig, 0) Pa, Pb = symmetrize_periods(self.afermat.T, self.bfermat.T, tol=1e-3) Omega = Pa.inverse()*Pb Y = Omega.apply_map(imag) symmetric_error = (Omega - Omega.T).norm() eigenvalues = Y.eigenvalues() self.assertLess(symmetric_error, 1e-3) for eig in eigenvalues: self.assertGreater(eig, 0) Pa, Pb = symmetrize_periods(self.a6.T, self.b6.T) Omega = Pa.inverse()*Pb Y = Omega.apply_map(imag) symmetric_error = (Omega - Omega.T).norm() eigenvalues = Y.eigenvalues() self.assertLess(symmetric_error, 1e-3) for eig in eigenvalues: self.assertGreater(eig, 0)
def test_integral(self): # symmetrize_periods already tests if Gamma is integral Pa, Pb = symmetrize_periods(self.atrott.T, self.btrott.T) Pa, Pb = symmetrize_periods(self.aklein.T, self.bklein.T, tol=1e-3) Pa, Pb = symmetrize_periods(self.afermat.T, self.bfermat.T, tol=1e-3) Pa, Pb = symmetrize_periods(self.a6.T, self.b6.T)