-
Notifications
You must be signed in to change notification settings - Fork 368
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introducing approximation into the MPS simulation method #475
Conversation
…_expectation_value
…arallelization in contract_2_dimensions
@chriseclectic , I implemented the changes in MPS approximation as we discussed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good!
I just added some style related comments.
@merav-aharoni Could you add a release note for this new feature? |
Added documentation for release notes. |
Summary
We allow using approximation when using the MPS simulation method.
Details and comments
The idea of approximation is to limit the number of Schmidt coefficients in the lambda matrices of the MPS. This can be done either by a size threshold or by the number of coefficients.
The approximation is controlled by two parameters at the beginning of svd.cpp:
APPROX_THRES
- we discard values in lambda whose norm is smaller thanAPPROX_THRES * norm(S[0]), where S[0] is the largest Schmidt coefficient.
APPROX_LIMIT
- we discard values only if the size of lambda is greater than this valueThese parameters are currently hard-coded, and for now can be changed only in the code.
We need to add a user interface for these parameters, and to experiment with this option.