We used to only canonicalise MPS when there was going to be a truncation. However, some experiments using Mekena's use case have shown that canonicalising is also beneficial for exact simulation. In hindsight, this makes sense since canonicalisation will often reduce bond dimension (thanks to reduced QR decomposition) which will in most cases accelerate the simulation more than what the overhead of canonicalisation imposes.
Checklist
[x] I have run the tests on a machine with GPUs.
[x] I have performed a self-review of my code.
[x] I have commented hard-to-understand parts of my code.
[ ] I have made corresponding changes to the public API documentation.
[ ] I have added tests that prove my fix is effective or that my feature works.
[ ] I have updated the changelog with any user-facing changes.
We used to only canonicalise MPS when there was going to be a truncation. However, some experiments using Mekena's use case have shown that canonicalising is also beneficial for exact simulation. In hindsight, this makes sense since canonicalisation will often reduce bond dimension (thanks to reduced QR decomposition) which will in most cases accelerate the simulation more than what the overhead of canonicalisation imposes.
Checklist