template<in-vector InVec1, in-vector InVec2,
possibly-packed-out-matrix OutMat, class Triangle>
void symmetric_matrix_rank_2_update(InVec1 x, InVec2 y, OutMat A, Triangle t);
template<class ExecutionPolicy, in-vector InVec1, in-vector InVec2,
possibly-packed-out-matrix OutMat, class Triangle>
void symmetric_matrix_rank_2_update(ExecutionPolicy&& exec,
InVec1 x, InVec2 y, OutMat A, Triangle t);
template<in-vector InVec1, in-vector InVec2, in-matrix InMat,
possibly-packed-out-matrix OutMat, class Triangle>
void symmetric_matrix_rank_2_update(InVec1 x, InVec2 y, InMat E, OutMat A, Triangle t);
template<class ExecutionPolicy, in-vector InVec1, in-vector InVec2, in-matrix InMat,
possibly-packed-out-matrix OutMat, class Triangle>
void symmetric_matrix_rank_2_update(ExecutionPolicy&& exec,
InVec1 x, InVec2 y, InMat E, OutMat A, Triangle t);
template<in-vector InVec1, in-vector InVec2,
possibly-packed-out-matrix OutMat, class Triangle>
void hermitian_matrix_rank_2_update(InVec1 x, InVec2 y, OutMat A, Triangle t);
template<class ExecutionPolicy, in-vector InVec1, in-vector InVec2,
possibly-packed-out-matrix OutMat, class Triangle>
void hermitian_matrix_rank_2_update(ExecutionPolicy&& exec,
InVec1 x, InVec2 y, OutMat A, Triangle t);
template<in-vector InVec1, in-vector InVec2, in-matrix InMat,
possibly-packed-out-matrix OutMat, class Triangle>
void hermitian_matrix_rank_2_update(InVec1 x, InVec2 y, InMat E, OutMat A, Triangle t);
template<class ExecutionPolicy, in-vector InVec1, in-vector InVec2, in-matrix InMat,
possibly-packed-out-matrix OutMat, class Triangle>
void hermitian_matrix_rank_2_update(ExecutionPolicy&& exec,
InVec1 x, InVec2 y, InMat E, OutMat A, Triangle t);