Extended Kahan

The upper-triangular matrix \(A = S R\), where \(S=\text{diag}(1,\zeta,...,\zeta^{3 2^k-1})\), and

\[\begin{split}R = \begin{pmatrix} I & -\phi H_k & 0 \\ 0 & I & \phi H_k \\ 0 & 0 & I \end{pmatrix}.\end{split}\]

TODO: Reference for its introduction and a description of its relevance to rank-revealing QR factorizations

C++ API

void ExtendedKahan(Matrix<F> &A, Int k, Base<F> phi, Base<F> mu)
void ExtendedKahan(ElementalMatrix<F> &A, Int k, Base<F> phi, Base<F> mu)

C API

ElError ElExtendedKahan_s(ElMatrix_s A, ElInt k, float phi, float mu)
ElError ElExtendedKahan_d(ElMatrix_d A, ElInt k, double phi, double mu)
ElError ElExtendedKahan_c(ElMatrix_c A, ElInt k, float phi, float mu)
ElError ElExtendedKahan_z(ElMatrix_z A, ElInt k, double phi, double mu)
ElError ElExtendedKahanDist_s(ElDistMatrix_s A, ElInt k, float phi, float mu)
ElError ElExtendedKahanDist_d(ElDistMatrix_d A, ElInt k, double phi, double mu)
ElError ElExtendedKahanDist_c(ElDistMatrix_c A, ElInt k, float phi, float mu)
ElError ElExtendedKahanDist_z(ElDistMatrix_z A, ElInt k, double phi, double mu)

Python API

ExtendedKahan(A, k, phi, mu)