AxpyTrapezoid

Performs the trapezoidal portion of an axpy \(Y := \alpha X + Y\); the trapezoid is defined by the uplo and offset parameters, where offset determines which sub or superdiagonal to use as the cutoff for the upper or lower-trapezoidal portion of the update. Elemental uses the same convention as MATLAB and Octave for labeling the diagonals: an offset of zero corresponds to the main diagonal and will produce a triangular matrix, and an offset of \(1\) corresponds to the superdiagonal which, combined with uplo=LOWER, would produce a lower-Hessenberg matrix.

C++ API

void AxpyTrapezoid(UpperOrLower uplo, S alpha, const Matrix<T> &X, Matrix<T> &Y, Int offset = 0)
void AxpyTrapezoid(UpperOrLower uplo, S alpha, const AbstractDistMatrix<T> &X, AbstractDistMatrix<T> &Y, Int offset = 0)
void AxpyTrapezoid(UpperOrLower uplo, S alpha, const SparseMatrix<T> &X, SparseMatrix<T> &Y, Int offset = 0)
void AxpyTrapezoid(UpperOrLower uplo, S alpha, const DistSparseMatrix<T> &X, DistSparseMatrix<T> &Y, Int offset = 0)

C API

ElError ElAxpyTrapezoid_i(UpperOrLower uplo, ElInt alpha, ElConstMatrix_i X, ElMatrix_i Y, ElInt offset)
ElError ElAxpyTrapezoid_s(UpperOrLower uplo, float alpha, ElConstMatrix_s X, ElMatrix_s Y, ElInt offset)
ElError ElAxpyTrapezoid_d(UpperOrLower uplo, double alpha, ElConstMatrix_d X, ElMatrix_d Y, ElInt offset)
ElError ElAxpyTrapezoid_c(UpperOrLower uplo, complex_float alpha, ElConstMatrix_c X, ElMatrix_c Y, ElInt offset)
ElError ElAxpyTrapezoid_z(UpperOrLower uplo, complex_double alpha, ElConstMatrix_z X, ElMatrix_z Y, ElInt offset)
ElError ElAxpyTrapezoidDist_i(UpperOrLower uplo, ElInt alpha, ElConstMatrix_i X, ElMatrix_i Y, ElInt offset)
ElError ElAxpyTrapezoidDist_s(UpperOrLower uplo, float alpha, ElConstMatrix_s X, ElMatrix_s Y, ElInt offset)
ElError ElAxpyTrapezoidDist_d(UpperOrLower uplo, double alpha, ElConstMatrix_d X, ElMatrix_d Y, ElInt offset)
ElError ElAxpyTrapezoidDist_c(UpperOrLower uplo, complex_float alpha, ElConstMatrix_c X, ElMatrix_c Y, ElInt offset)
ElError ElAxpyTrapezoidDist_z(UpperOrLower uplo, complex_double alpha, ElConstMatrix_z X, ElMatrix_z Y, ElInt offset)
ElError ElAxpyTrapezoidSparse_i(UpperOrLower uplo, ElInt alpha, ElConstMatrix_i X, ElMatrix_i Y, ElInt offset)
ElError ElAxpyTrapezoidSparse_s(UpperOrLower uplo, float alpha, ElConstMatrix_s X, ElMatrix_s Y, ElInt offset)
ElError ElAxpyTrapezoidSparse_d(UpperOrLower uplo, double alpha, ElConstMatrix_d X, ElMatrix_d Y, ElInt offset)
ElError ElAxpyTrapezoidSparse_c(UpperOrLower uplo, complex_float alpha, ElConstMatrix_c X, ElMatrix_c Y, ElInt offset)
ElError ElAxpyTrapezoidSparse_z(UpperOrLower uplo, complex_double alpha, ElConstMatrix_z X, ElMatrix_z Y, ElInt offset)
ElError ElAxpyTrapezoidDistSparse_i(UpperOrLower uplo, ElInt alpha, ElConstMatrix_i X, ElMatrix_i Y, ElInt offset)
ElError ElAxpyTrapezoidDistSparse_s(UpperOrLower uplo, float alpha, ElConstMatrix_s X, ElMatrix_s Y, ElInt offset)
ElError ElAxpyTrapezoidDistSparse_d(UpperOrLower uplo, double alpha, ElConstMatrix_d X, ElMatrix_d Y, ElInt offset)
ElError ElAxpyTrapezoidDistSparse_c(UpperOrLower uplo, complex_float alpha, ElConstMatrix_c X, ElMatrix_c Y, ElInt offset)
ElError ElAxpyTrapezoidDistSparse_z(UpperOrLower uplo, complex_double alpha, ElConstMatrix_z X, ElMatrix_z Y, ElInt offset)

Python API

AxpyTrapezoid(uplo, alpha, X, Y, offset=0)