Fix: Unitary Decomposition -> Conj inplace not handled correct

This commit is contained in:
h z
2024-12-15 01:21:59 +00:00
parent d890865c26
commit 8d378c0fbf
8 changed files with 147 additions and 10 deletions

View File

@@ -131,7 +131,7 @@ public class UnitaryMatrixFixTest : BaseTest
Complex det = detTest.Det();
Console.WriteLine(det);
SU2 s = new SU2(detTest);
SU2 s = new SU2(detTest.Copy());
Assert.IsTrue(s.IsEqualApprox(detTest));
}
@@ -151,7 +151,7 @@ public class UnitaryMatrixFixTest : BaseTest
0.3738133333164022 + 0.17859171769725135 * I
);
Assert.IsTrue((a * a.Hermitian()).IsEqualApprox(C33.One));
SU3 x = new SU3(a);
SU3 x = new SU3(a.Copy());
Assert.IsTrue(x.IsEqualApprox(a));
Assert.IsTrue(C33.One.IsEqualApprox(SU3.One));
}
@@ -164,7 +164,7 @@ public class UnitaryMatrixFixTest : BaseTest
0.23603845886157196+ 0.2882268492733082*I, 0.2598386072534029+ -0.5491251329056467*I, 0.6806580836521512+ -0.16988581178893247*I
);
Assert.IsTrue((a * a.Hermitian()).IsEqualApprox(C33.One));
SU3 x = new (a);
SU3 x = new (a.Copy());
Assert.IsTrue(x.IsEqualApprox(a));
Assert.IsTrue(C33.One.IsEqualApprox(SU3.One));
SU3 w = x * x.Hermitian();