Add a 'materialize' option to tridiag() and bidiag() to simplify downstream applications #204
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Most applications of tridiagonalisation and bidiatonalisation require materialising the tri/bidiagonal matrices and doing linear algebra with those dense matrices.
Currently, all applications of bi/tridiagonalisation (including funm, eig, and tests) have a function like "todense_tri/bidiagonal", and there is not a single use of the coefficients without materialising the matrices in the entire library.
This PR introduces an option for materialising those matrices as part of the decompositions.
This
materialize
flag is set toTrue
by default, but can be set toFalse
to recover the previous implementation.Functions of matrices require that
materialize
is set to True.As a result, future version of Matfree can write integrand_funm agnostic of the decomposition, which will simplify a lot of code.