This PR puts in functions which can be customized from outside of NDTensors to put in fermion minus signs in crucial places. By itself, this PR should not change any behavior of NDTensors, since the functions called have trivial defaults which do things like returning a tensor unchanged or just returning the number +1.
Here is a complete list of the changes:
blocksparse/blocksparsetensor.jl:
define scale_blocks! and permfactor
call permfactor in permutedims! (R has same blocks as T)
define compute_alpha
call compute_alpha in _threaded_contract!
call compute_alpha in contract!
blocksparse/combiner.jl:
define before_combiner_signs
define after_combiner_signs
call before_combiner_signs and after_combiner_signs in three places in combiner contract function
This PR puts in functions which can be customized from outside of NDTensors to put in fermion minus signs in crucial places. By itself, this PR should not change any behavior of NDTensors, since the functions called have trivial defaults which do things like returning a tensor unchanged or just returning the number +1.
Here is a complete list of the changes: