Updated level2 Q generation functions#1216
Open
jprhyne wants to merge 3 commits intoReference-LAPACK:masterfrom
Open
Updated level2 Q generation functions#1216jprhyne wants to merge 3 commits intoReference-LAPACK:masterfrom
jprhyne wants to merge 3 commits intoReference-LAPACK:masterfrom
Conversation
added 2 commits
March 26, 2026 18:04
…antage of assumed 0s and 1s instead of explicitly setting them
…nd removed erronous zero setting in xorg2l/xung2l
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description
During my work on the draft pr #1112 we found that the level2 factorization does not properly take advantage of (1) the initial application of the ``first'' reflector to the identity and the 0s in the subsequent blocks. The advantages are as follows
We no longer require a workspace for the level2 Q generation functions. I did not remove this array from the interface
as I am unsure if we want to actually change the interface and instead say we no longer use this array potentially for backwards compatibility on future releases.
We perform fewer operations overall
One slight drawback is in the case of complex arithmetic, we need to compute a kernel of the form
y = alpha*A*conjg(x) + beta*ywhich is a gemv but conjugating x without conjugating the matrix A. I implemented this in a way to compute elements of y sequentially and did not investigate other methods. I only wrote tests in a personal repo that I can attempt to port or attach to this PR. I only tested the cases of when incx and incy are positive as I do not have a use case for the negative increment cases.
If there is anything I missed or any questions just let me know!
Checklist