Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
diagTensor() template argument deduction/substitution failed #96
My original goal was to see how the LocalOp::diag() function works (defined in itensor/mps/localop.h). Before ITensor 2, it depended on a function called tieIndices(). In ITensor 2, it involves noprime() and diagTensor() functions to tie the indices, and I want to see if it works the same way.
So, in the itensor/eigensolver.h file, to the davidson() function I added a line of
As for my configuration, I used g++ and framework Accelerate to compile ITensor 2 (the default setting of options.mk). And 'g++ --version' shows
Does anybody know how to fix this? Thank you!
The method diagTensor I was calling in the buggy code actually doesn't exist anymore! So that's why you were seeing the compilation error. I replaced it with the function
But at the moment, we aren't even calling the LocalOp::diag method in the Davidson algorithm within DMRG. The reason is kind of complicated, but there was a subtle issue with how we were doing the Davidson preconditioner step in the previous version of ITensor - it was working but doing something slightly incorrect. The fix for it needs more testing to make sure it doesn't slow down the DMRG code too much, but once it's tested LocalOp::diag will again be called from the DMRG code.