+1 vote
asked by (380 points)


Suppose that we are tring to solve a genralized eigenvalue problem, how can we solve it in ITensor by using lapack functions?

The Hamiltonain now is a 2n rank tensor, and the eigenvector is now a n rank tensor. Should we tranform the tensors into matrix or vector and invoke standard lapack functions?

What about other linear equations? There should be a generalized method to use lapack functions to solve these equations.


1 Answer

0 votes
answered by (24.7k points)

ITensor has a basic matrix/tensor layer that wraps certain LAPACK routines. Currently the main use of this matrix layer is to power the ITensor class and related features (such as IQTensor, MPS, etc.). But this matrix layer is also available to use directly. While ideally we would provide wrappers for every major LAPACK routine, so far we've been conservatively just creating wrappers for ones we use in specific projects or which are needed for the ITensor layer.

You could use one of these wrappers (such as in matrix.cc) to create your own wrapper for a LAPACK routine. Or if you are asking about a specific routine you think should be in ITensor you can let me know which one you are thinking of and I could see about adding it. But it may take some months to fit it in unless you need it urgently for a project.


Welcome to ITensor Support Q&A, where you can ask questions and receive answers from other members of the community.

Formatting Tips:
  • To format code, indent by four spaces
  • To format inline LaTeX, surround it by @@ on both sides
  • To format LaTeX on its own line, surround it by $$ above and below
  • For LaTeX, it may be necessary to backslash-escape underscore characters to obtain proper formatting. So for example writing \sum\_i to represent a sum over i.
If you cannot register due to firewall issues (e.g. you cannot see the capcha box) please email Miles Stoudenmire to ask for an account.

To report ITensor bugs, please use the issue tracker.