43 #ifndef LIN_ALG_OP_PACK_HACK_H
44 #define LIN_ALG_OP_PACK_HACK_H
46 #include "AbstractLinAlgPack_LinAlgOpPack.hpp"
48 #include "DenseLinAlgPack_LinAlgOpPack.hpp"
49 #include "AbstractLinAlgPack_MatrixSymOpNonsingSerial.hpp"
51 namespace LinAlgOpPack {
53 using DenseLinAlgPack::DVector;
54 using DenseLinAlgPack::DVectorSlice;
68 DMatrixSlice* vs_lhs, value_type alpha
75 DVectorSlice* vs_lhs, value_type alpha,
const MatrixOp& mwo_rhs1
77 ,value_type beta = 1.0 );
82 DVectorSlice* vs_lhs,
const MatrixOp& mwo_rhs1
84 ,value_type beta = 1.0 );
89 DVectorSlice* vs_lhs, value_type alpha,
const MatrixOp& mwo_rhs1
91 ,value_type beta = 1.0 );
96 DVectorSlice* vs_lhs,
const MatrixOp& mwo_rhs1
102 DVectorSlice* vs_lhs,
const MatrixOpNonsing& mwo_rhs1
108 DVector* v_lhs,
const MatrixOpNonsing& mwo_rhs1
114 DVectorSlice* vs_lhs,
const MatrixOpNonsing& mwo_rhs1
120 DVector* v_lhs,
const MatrixOpNonsing& mwo_rhs1
126 DVectorSlice* vs_lhs, value_type alpha
129 ,
const DVectorSlice& vs_rhs3, value_type beta = 1.0 );
134 DVectorSlice* vs_lhs, value_type alpha
137 ,
const SpVectorSlice& sv_rhs3, value_type beta = 1.0 );
145 void LinAlgOpPack::Vp_MtV(
146 DVectorSlice* vs_lhs,
const MatrixOp& mwo_rhs1
150 Vp_StMtV(vs_lhs,1.0,mwo_rhs1,trans_rhs1,vs_rhs2,beta);
154 void LinAlgOpPack::V_MtV(
155 DVectorSlice* vs_lhs,
const MatrixOp& mwo_rhs1
158 Vp_StMtV(vs_lhs,1.0,mwo_rhs1,trans_rhs1,sv_rhs2);
164 #endif // LIN_ALG_OP_PACK_HACK_H
void Vp_StPtMtV(VectorMutable *v_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, const MatrixOp &M_rhs2, BLAS_Cpp::Transp M_rhs2_trans, const Vector &v_rhs3, value_type beta=1.0)
v_lhs = alpha * op(P_rhs1) * op(M_rhs2) * v_rhs3 + beta * v_rhs
void assign(VectorMutable *v_lhs, const V &V_rhs)
v_lhs = V_rhs.
void V_InvMtV(VectorMutable *v_lhs, const MatrixNonsing &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const Vector &v_rhs2)
v_lhs = inv(op(M_rhs1)) * v_rhs2
void Mp_StM(MatrixOp *mwo_lhs, value_type alpha, const MatrixOp &M_rhs, BLAS_Cpp::Transp trans_rhs)
void Vp_StMtV(VectorMutable *v_lhs, value_type alpha, const MatrixOp &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const Vector &v_rhs2, value_type beta=1.0)
v_lhs = alpha * op(M_rhs1) * v_rhs2 + beta * v_lhs (BLAS xGEMV)
Base class for all matrices that support basic matrix operations.
Abstract base class for all nonsingular polymorphic matrices that can be used to compute matrix-vecto...
Abstract base class for all nonsingular polymorphic matrices that can solve for linear system with bu...
Concrete matrix type to represent general permutation (mapping) matrices.