Precise bounds calculation for nfixed_mat_mul #2112
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.
For each of
_nfixed_mat_mul
_nfixed_mat_mul_classical
_nfixed_mat_mul_waksman
_nfixed_mat_mul_strassen
_nfixed_complex_mat_mul
we implement a corresponding method that bounds the magnitudes of all intermediate results as well as the final error (in ulps).
The magnitude bound allows one to scale the inputs tightly while guaranteeing |x| < 1 for intermediate results so that no overflow is possible.
Also, thanks to the error bound, it will be possible to use
nfixed
methods forarb_t
andacb_t
matrix multiplication (not done in this PR).@albinahlback This basically SLP error analysis, so you might want to give this code a careful look when you have time.