Skip to content

Updated level2 Q generation functions#1216

Open
jprhyne wants to merge 3 commits intoReference-LAPACK:masterfrom
jprhyne:level2Q
Open

Updated level2 Q generation functions#1216
jprhyne wants to merge 3 commits intoReference-LAPACK:masterfrom
jprhyne:level2Q

Conversation

@jprhyne
Copy link
Copy Markdown
Contributor

@jprhyne jprhyne commented Mar 27, 2026

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

  1. 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.

  2. 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*y

which 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

  • The documentation has been updated.

…nd removed erronous zero setting in xorg2l/xung2l
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant