the existence of NSL::conj and NSL::LinAlg::conj led to errors. Solution: Unify on NSL::LinAlg::conj.
Similar for abs, arg.
Mysteriously a simultaneous constructor assignment NSL::Tensor B = A.transpose().conj() would not actually leave B conjugated. (The error required both the transpose and the conjugation, which was actually used in the test_fermionMatrixHubbardExp Mdagger test.) Solution:
modify Tensor.conj() to force an actualization of the conjugation. This might incur a performance penalty which we should address in the future.
add Tests/Tensor/test_Tensor_conj.cpp to ensure the correct behavior is not broken in the future.
Squash a number of sneaky bugs including
NSL::conj
andNSL::LinAlg::conj
led to errors. Solution: Unify onNSL::LinAlg::conj
.abs
,arg
.NSL::Tensor B = A.transpose().conj()
would not actually leave B conjugated. (The error required both the transpose and the conjugation, which was actually used in the test_fermionMatrixHubbardExp Mdagger test.) Solution:Tensor.conj()
to force an actualization of the conjugation. This might incur a performance penalty which we should address in the future.Tests/Tensor/test_Tensor_conj.cpp
to ensure the correct behavior is not broken in the future.