From 6d7d099c102a4e7237d75909c220ab4f34306306 Mon Sep 17 00:00:00 2001 From: Abhinav Agarwal Date: Sun, 26 Apr 2026 16:22:41 -0700 Subject: [PATCH 1/2] [linalg.algs.blas2.rank1] Add missing E in matrix_rank_1_update_c effects The non-ExecutionPolicy codeblock dispatches to the overwriting 3-argument matrix_rank_1_update, dropping the InMat E parameter and computing A = x conj(y)^T instead of the specified A = E + x conj(y)^T. The ExecutionPolicy branch already passes E. --- source/numerics.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/numerics.tex b/source/numerics.tex index 36f4bc1b86..7603d7be51 100644 --- a/source/numerics.tex +++ b/source/numerics.tex @@ -14994,7 +14994,7 @@ For the overloads without an \tcode{ExecutionPolicy} argument, equivalent to: \begin{codeblock} -matrix_rank_1_update(x, conjugated(y), A); +matrix_rank_1_update(x, conjugated(y), E, A); \end{codeblock} \item otherwise, equivalent to: From 8c2557d0c31bac2108a57f7855d35850c9c64539 Mon Sep 17 00:00:00 2001 From: Abhinav Agarwal Date: Sun, 26 Apr 2026 16:22:58 -0700 Subject: [PATCH 2/2] [linalg.algs.blas2.symherrank1] Restore parameters in updating overload The detailed declaration drops in-vector InVec, in-matrix InMat, Scalar alpha, and InMat E, even though the Effects compute A = E + alpha x x^H and the Remarks state "A may alias E". Match the synopsis. --- source/numerics.tex | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/source/numerics.tex b/source/numerics.tex index 7603d7be51..3b71c0a686 100644 --- a/source/numerics.tex +++ b/source/numerics.tex @@ -15150,11 +15150,14 @@ \indexlibraryglobal{hermitian_matrix_rank_1_update}% \begin{itemdecl} -template<@\exposconcept{scalar}@ Scalar, @\exposconcept{possibly-packed-out-matrix}@ OutMat, class Triangle> - void hermitian_matrix_rank_1_update(InVec x, OutMat A, Triangle t); +template<@\exposconcept{scalar}@ Scalar, @\exposconcept{in-vector}@ InVec, @\exposconcept{in-matrix}@ InMat, @\exposconcept{possibly-packed-out-matrix}@ OutMat, + class Triangle> + void hermitian_matrix_rank_1_update(Scalar alpha, InVec x, InMat E, OutMat A, Triangle t); template - void hermitian_matrix_rank_1_update(ExecutionPolicy&& exec, InVec x, OutMat A, Triangle t); + @\exposconcept{scalar}@ Scalar, @\exposconcept{in-vector}@ InVec, @\exposconcept{in-matrix}@ InMat, @\exposconcept{possibly-packed-out-matrix}@ OutMat, + class Triangle> + void hermitian_matrix_rank_1_update(ExecutionPolicy&& exec, + Scalar alpha, InVec x, InMat E, OutMat A, Triangle t); \end{itemdecl} \begin{itemdescr}