Hi,
I'm recently developing some Krylov subspace algorithm with itensor, and the final step is phi = V*u
, where V and u are std::vector<ITensor> V(n)
and std::vector<Cplx> u(n)
respectively. One can consider V
as a matrix (it has n
columns with each be an ITensor, all ITensors have same IndexSet).
A possible efficient way is extracting each storage of ITensors in V
and joint them into a new large storage(since itensor use column major, it's straightforward to combine these storages into a new one), then do matrix multiplication with u
.
I'm not familiar with lower itensor apis and any help is appreciated. It is also necessary to consider the block storage of QN ITensors.