Reflectors

Householder reflectors

Generate a reflector

TODO: Describe major difference from LAPACK’s conventions (i.e., we do not treat the identity matrix as a Householder transform since it requires the \(u\) in \(H=I-2uu'\) to have norm zero rather than one).

F LeftReflector(F &chi, Matrix<F> &x)
F LeftReflector(Matrix<F> &chi, Matrix<F> &x)
F LeftReflector(F &chi, AbstractDistMatrix<F> &x)
F LeftReflector(AbstractDistMatrix<F> &chi, AbstractDistMatrix<F> &x)
F reflector::Col(F &chi, AbstractDistMatrix<F> &x)
F reflector::Col(AbstractDistMatrix<F> &chi, AbstractDistMatrix<F> &x)
F RightReflector(F &chi, Matrix<F> &x)
F RightReflector(Matrix<F> &chi, Matrix<F> &x)
F RightReflector(F &chi, AbstractDistMatrix<F> &x)
F RightReflector(AbstractDistMatrix<F> &chi, AbstractDistMatrix<F> &x)
F reflector::Row(F &chi, AbstractDistMatrix<F> &x)
F reflector::Row(AbstractDistMatrix<F> &chi, AbstractDistMatrix<F> &x)

Apply packed reflectors

void ApplyPackedReflectors(LeftOrRight side, UpperOrLower uplo, VerticalOrHorizontal dir, ForwardOrBackward order, Conjugation conjugation, Int offset, const Matrix<F> &H, const Matrix<F> &t, Matrix<F> &A)
void ApplyPackedReflectors(LeftOrRight side, UpperOrLower uplo, VerticalOrHorizontal dir, ForwardOrBackward order, Conjugation conjugation, Int offset, const AbstractDistMatrix<F> &H, const AbstractDistMatrix<F> &t, AbstractDistMatrix<F> &A)

Expand packed reflectors

void ExpandPackedReflectors(UpperOrLower uplo, VerticalOrHorizontal dir, Conjugation conjugation, Int offset, Matrix<F> &H, const Matrix<F> &t)
void ExpandPackedReflectors(UpperOrLower uplo, VerticalOrHorizontal dir, Conjugation conjugation, Int offset, AbstractDistMatrix<F> &H, const AbstractDistMatrix<F> &t)

Hyperbolic reflectors

Generate a reflector

F LeftHyperbolicReflector(F &chi, Matrix<F> &x)
F LeftHyperbolicReflector(Matrix<F> &chi, Matrix<F> &x)
F LeftHyperbolicReflector(F &chi, AbstractDistMatrix<F> &x)
F LeftHyperbolicReflector(AbstractDistMatrix<F> &chi, AbstractDistMatrix<F> &x)
F hyp_reflector::Col(F &chi, AbstractDistMatrix<F> &x)
F hyp_reflector::Col(AbstractDistMatrix<F> &chi, AbstractDistMatrix<F> &x)
F RightHyperbolicReflector(F &chi, Matrix<F> &x)
F RightHyperbolicReflector(Matrix<F> &chi, Matrix<F> &x)
F RightHyperbolicReflector(F &chi, AbstractDistMatrix<F> &x)
F RightHyperbolicReflector(AbstractDistMatrix<F> &chi, AbstractDistMatrix<F> &x)
F hyp_reflector::Row(F &chi, AbstractDistMatrix<F> &x)
F hyp_reflector::Row(AbstractDistMatrix<F> &chi, AbstractDistMatrix<F> &x)