58 #ifndef GEN_MATRIX_OP_H
59 #define GEN_MATRIX_OP_H
61 #include "DenseLinAlgPack_Types.hpp"
62 #include "DenseLinAlgPack_AssertOp.hpp"
63 #include "DenseLinAlgPack_DMatrixClass.hpp"
64 #include "DenseLinAlgPack_DMatrixAsTriSym.hpp"
65 #include "DenseLinAlgPack_DVectorOp.hpp"
191 namespace DenseLinAlgPack {
207 void Mt_S(DMatrixSlice* gms_lhs, value_type alpha);
210 void M_diagVtM( DMatrixSlice* gms_lhs,
const DVectorSlice& vs_rhs
214 void Mt_S(DMatrixSliceTriEle* tri_lhs, value_type alpha);
217 void Mp_StM(DMatrixSliceTriEle* tri_lhs, value_type alpha,
const DMatrixSliceTriEle& tri_rhs);
224 void Mp_StM(DMatrixSlice* gms_lhs, value_type alpha,
const DMatrixSlice& gms_rhs
228 void Mp_StM(DMatrixSlice* gms_lhs, value_type alpha,
const DMatrixSliceSym& sym_rhs
232 void Mp_StM(DMatrixSlice* gms_lhs, value_type alpha,
const DMatrixSliceTri& tri_rhs
257 void Vp_StMtV(DVectorSlice* vs_lhs, value_type alpha,
const DMatrixSlice& gms_rhs1
258 ,
BLAS_Cpp::Transp trans_rhs1,
const DVectorSlice& vs_rhs2, value_type beta = 1.0);
266 void Vp_StMtV(DVectorSlice* vs_lhs, value_type alpha,
const DMatrixSliceSym& sym_rhs1
267 ,
BLAS_Cpp::Transp trans_rhs1,
const DVectorSlice& vs_rhs2, value_type beta = 1.0);
278 void V_MtV(DVector* v_lhs,
const DMatrixSliceTri& tri_rhs1,
BLAS_Cpp::Transp trans_rhs1
279 ,
const DVectorSlice& vs_rhs2);
286 void V_MtV(DVectorSlice* vs_lhs,
const DMatrixSliceTri& tri_rhs1,
BLAS_Cpp::Transp trans_rhs1
287 ,
const DVectorSlice& vs_rhs2);
300 void Vp_StMtV(DVectorSlice* vs_lhs, value_type alpha,
const DMatrixSliceTri& tri_rhs1
301 ,
BLAS_Cpp::Transp trans_rhs1,
const DVectorSlice& vs_rhs2, value_type beta = 1.0);
312 void V_InvMtV(DVector* v_lhs,
const DMatrixSliceTri& tri_rhs1,
BLAS_Cpp::Transp trans_rhs1
313 ,
const DVectorSlice& vs_rhs2);
320 void V_InvMtV(DVectorSlice* vs_lhs,
const DMatrixSliceTri& tri_rhs1,
BLAS_Cpp::Transp trans_rhs1
321 ,
const DVectorSlice& vs_rhs2);
333 void ger(value_type alpha,
const DVectorSlice& vs_rhs1,
const DVectorSlice& vs_rhs2
334 , DMatrixSlice* gms_lhs);
346 void syr(value_type alpha,
const DVectorSlice& vs_rhs, DMatrixSliceSym* sym_lhs);
353 void syr2(value_type alpha,
const DVectorSlice& vs_rhs1,
const DVectorSlice& vs_rhs2
354 , DMatrixSliceSym* sym_lhs);
378 void Mp_StMtM(DMatrixSlice* gms_lhs, value_type alpha,
const DMatrixSlice& gms_rhs1
403 void Mp_StMtM(DMatrixSlice* gms_lhs, value_type alpha,
const DMatrixSliceSym& sym_rhs1
414 void Mp_StMtM(DMatrixSlice* gms_lhs, value_type alpha,
const DMatrixSlice& gms_rhs1
429 , value_type beta, DMatrixSliceSym* sym_lhs);
441 ,
const DMatrixSlice& gms_rhs2, value_type beta, DMatrixSliceSym* sym_lhs);
459 void M_StMtM(DMatrix* gm_lhs, value_type alpha,
const DMatrixSliceTri& tri_rhs1
468 void M_StMtM(DMatrixSlice* gms_lhs, value_type alpha,
const DMatrixSliceTri& tri_rhs1
481 void M_StMtM(DMatrix* gm_lhs, value_type alpha,
const DMatrixSlice& gms_rhs1
490 void M_StMtM(DMatrixSlice* gms_lhs, value_type alpha,
const DMatrixSlice& gms_rhs1
503 void Mp_StMtM(DMatrixSlice* gms_lhs, value_type alpha,
const DMatrixSliceTri& tri_rhs1
516 void Mp_StMtM(DMatrixSlice* gms_lhs, value_type alpha,
const DMatrixSlice& gms_rhs1
528 void M_StInvMtM(DMatrix* gm_lhs, value_type alpha,
const DMatrixSliceTri& tri_rhs1
537 void M_StInvMtM(DMatrixSlice* gms_lhs, value_type alpha,
const DMatrixSliceTri& tri_rhs1
549 void M_StMtInvM(DMatrix* gm_lhs, value_type alpha,
const DMatrixSlice& gms_rhs1
558 void M_StMtInvM(DMatrixSlice* gm_lhs, value_type alpha,
const DMatrixSlice& gms_rhs1
576 #endif // GEN_MATRIX_OP_H