template<scalar Scalar, in-matrix InMat, possibly-packed-out-matrix OutMat, class Triangle>
void symmetric_matrix_rank_k_update(Scalar alpha, InMat A, OutMat C, Triangle t);
template<class ExecutionPolicy, scalar Scalar,
in-matrix InMat, possibly-packed-out-matrix OutMat, class Triangle>
void symmetric_matrix_rank_k_update(ExecutionPolicy&& exec,
Scalar alpha, InMat A, OutMat C, Triangle t);
template<scalar Scalar, in-matrix InMat, possibly-packed-out-matrix OutMat,
class Triangle>
void hermitian_matrix_rank_k_update(Scalar alpha, InMat A, OutMat C, Triangle t);
template<class ExecutionPolicy, scalar Scalar, in-matrix InMat,
possibly-packed-out-matrix OutMat, class Triangle>
void hermitian_matrix_rank_k_update(ExecutionPolicy&& exec, Scalar alpha, InMat A,
OutMat C, Triangle t);
template<scalar Scalar, in-matrix InMat1, in-matrix InMat2, possibly-packed-out-matrix OutMat,
class Triangle>
void symmetric_matrix_rank_k_update(Scalar alpha, InMat1 A, InMat2 E, OutMat C, Triangle t);
template<class ExecutionPolicy, scalar Scalar, in-matrix InMat1, in-matrix InMat2,
possibly-packed-out-matrix OutMat, class Triangle>
void symmetric_matrix_rank_k_update(ExecutionPolicy&& exec, Scalar alpha, InMat1 A, InMat2 E,
OutMat C, Triangle t);
template<scalar Scalar, in-matrix InMat1, in-matrix InMat2, possibly-packed-out-matrix OutMat,
class Triangle>
void hermitian_matrix_rank_k_update(Scalar alpha, InMat1 A, InMat2 E, OutMat C, Triangle t);
template<class ExecutionPolicy, scalar Scalar, in-matrix InMat1, in-matrix InMat2,
possibly-packed-out-matrix OutMat, class Triangle>
void hermitian_matrix_rank_k_update(ExecutionPolicy&& exec, Scalar alpha, InMat1 A, InMat2 E,
OutMat C, Triangle t);