Routines for hermitian rank-2k updates, a specialized form of Matrix*Matrix multiplication.
More...
|
|
void | myra::her2k_inplace (const MatrixRange< NumberS > &C, char uplo, const CMatrixRange< NumberS > &A, const CMatrixRange< NumberS > &B, char op='N', NumberS alpha=1, NumberS beta=0) |
| Updates C = beta*C + alpha*op(A)*hermitian(op(B)) + conj(alpha)*op(B)*hermitian(op(A)), touching only the specified triangle of C.
|
|
void | myra::her2k_inplace (const MatrixRange< NumberD > &C, char uplo, const CMatrixRange< NumberD > &A, const CMatrixRange< NumberD > &B, char op, NumberD alpha, NumberD beta) |
| Updates C = beta*C + alpha*op(A)*hermitian(op(B)) + conj(alpha)*op(B)*hermitian(op(A)), touching only the specified triangle of C.
|
|
void | myra::her2k_inplace (const MatrixRange< NumberC > &C, char uplo, const CMatrixRange< NumberC > &A, const CMatrixRange< NumberC > &B, char op, NumberC alpha, NumberS beta) |
| Updates C = beta*C + alpha*op(A)*hermitian(op(B)) + conj(alpha)*op(B)*hermitian(op(A)), touching only the specified triangle of C.
|
|
void | myra::her2k_inplace (const MatrixRange< NumberZ > &C, char uplo, const CMatrixRange< NumberZ > &A, const CMatrixRange< NumberZ > &B, char op, NumberZ alpha, NumberD beta) |
| Updates C = beta*C + alpha*op(A)*hermitian(op(B)) + conj(alpha)*op(B)*hermitian(op(A)), touching only the specified triangle of C.
|
|
|
void | myra::her2k_inplace (const LowerMatrixRange< NumberS > &C, const CMatrixRange< NumberS > &A, const CMatrixRange< NumberS > &B, char op='N', NumberS alpha=1, NumberS beta=0) |
| Updates C = beta*C + alpha*op(A)*hermitian(op(B)) + conj(alpha)*op(B)*hermitian(op(A))
|
|
void | myra::her2k_inplace (const LowerMatrixRange< NumberD > &C, const CMatrixRange< NumberD > &A, const CMatrixRange< NumberD > &B, char op, NumberD alpha, NumberD beta) |
| Updates C = beta*C + alpha*op(A)*hermitian(op(B)) + conj(alpha)*op(B)*hermitian(op(A))
|
|
void | myra::her2k_inplace (const LowerMatrixRange< NumberC > &C, const CMatrixRange< NumberC > &A, const CMatrixRange< NumberC > &B, char op, NumberC alpha, NumberS beta) |
| Updates C = beta*C + alpha*op(A)*hermitian(op(B)) + conj(alpha)*op(B)*hermitian(op(A))
|
|
void | myra::her2k_inplace (const LowerMatrixRange< NumberZ > &C, const CMatrixRange< NumberZ > &A, const CMatrixRange< NumberZ > &B, char op, NumberZ alpha, NumberD beta) |
| Updates C = beta*C + alpha*op(A)*hermitian(op(B)) + conj(alpha)*op(B)*hermitian(op(A))
|
|
|
LowerMatrix< NumberS > | myra::her2k (const CMatrixRange< NumberS > &A, const CMatrixRange< NumberS > &B, char op='N', NumberS alpha=1) |
| Returns alpha*op(A)*hermitian(op(B)) + conj(alpha)*op(B)*hermitian(op(A)), alpha is defaulted to 1.
|
|
LowerMatrix< NumberD > | myra::her2k (const CMatrixRange< NumberD > &A, const CMatrixRange< NumberD > &B, char op, NumberD alpha) |
| Returns alpha*op(A)*hermitian(op(B)) + conj(alpha)*op(B)*hermitian(op(A)), alpha is defaulted to 1.
|
|
LowerMatrix< NumberC > | myra::her2k (const CMatrixRange< NumberC > &A, const CMatrixRange< NumberC > &B, char op, NumberC alpha) |
| Returns alpha*op(A)*hermitian(op(B)) + conj(alpha)*op(B)*hermitian(op(A)), alpha is defaulted to 1.
|
|
LowerMatrix< NumberZ > | myra::her2k (const CMatrixRange< NumberZ > &A, const CMatrixRange< NumberZ > &B, char op, NumberZ alpha) |
| Returns alpha*op(A)*hermitian(op(B)) + conj(alpha)*op(B)*hermitian(op(A)), alpha is defaulted to 1.
|
|
Routines for hermitian rank-2k updates, a specialized form of Matrix*Matrix multiplication.
Four possibilies for op, each with a different effect:
'N' -> C = beta*C + alpha*A*hermitian(B) + conj(alpha)*B*hermitian(A) 'H' -> C = beta*C + alpha*hermitian(A)*B + conj(alpha)*hermitian(B)*A 'T' -> C = beta*C + alpha*transpose(A)*conjugate(B) + conj(alpha)*transpose(B)*conjugate(A) 'C' -> C = beta*C + alpha*conjugate(A)*transpose(B) + conj(alpha)*conjugate(B)*transpose(A)