Thank you Miles.
I'm working on iPEPS algorithm those days. Using SVD instead of QR works well for me without lossing of efficiency.
But I don't know whether it will cause any non-instability in the future.
Any way, I managed to add QR decomposition myself with the help of doTask(GetBlocks ...) function and Eigen library. But doTask(GetBlocks ...) is an inner function and I can not fully understand it. Thus my code works but looks ugly.
Any way, it well be a delight if you add QR decomposition to the ITensor library itself. I'v encountered many QR decompositions in tensor network algorithms to factorize square matrices without truncation .
By the way, using denmatDecomp instead of QR does cause a bad_alloc error, but I don't known why.