42 #ifndef GEN_PERM_MATRIX_SLICE_OP_H
43 #define GEN_PERM_MATRIX_SLICE_OP_H
48 namespace AbstractLinAlgPack {
79 V_StMtV(sv_lhs,1.0,P_rhs1,P_rhs1_trans,vs_rhs2);
126 V_StMtV(sv_lhs,1.0,P_rhs1,P_rhs1_trans,sv_rhs2);
155 Vp_StMtV(sv_lhs,1.0,P_rhs1,P_rhs1_trans,vs_rhs2);
211 const GenPermMatrixSlice &P1
213 ,
const GenPermMatrixSlice &P2
219 ,GenPermMatrixSlice *Q = NULL
226 #endif // GEN_PERM_MATRIX_SLICE_OP_H
void V_StMtV(SpVector *sv_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, const DVectorSlice &vs_rhs2)
sv_lhs = alpha * op(P_rhs1) * vs_rhs2.
SparseVector< SparseElement< index_type, value_type >, std::allocator< SparseElement< index_type, value_type > > > SpVector
RTOp_value_type value_type
Sparse Vector Slice class template.
RTOp_index_type size_type
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)
Sparse Vector class template.
SparseVectorSlice< SparseElement< index_type, value_type > > SpVectorSlice
DenseLinAlgPack::VectorSliceTmpl< value_type > DVectorSlice
void Vp_MtV(SpVector *sv_lhs, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, const DVectorSlice &vs_rhs2)
sv_lhs += op(P_rhs1) * vs_rhs2.
void intersection(const GenPermMatrixSlice &P1, BLAS_Cpp::Transp P1_trans, const GenPermMatrixSlice &P2, BLAS_Cpp::Transp P2_trans, size_type *Q_nz, const size_type Q_max_nz=0, size_type Q_row_i[]=NULL, size_type Q_col_j[]=NULL, GenPermMatrixSlice *Q=NULL)
Find the intersection between two GenPermMatrixSlice objects.
void V_MtV(DVector &v_lhs, const T_Matrix &gm_rhs1, BLAS_Cpp::Transp trans_rhs1, const DVectorSlice &vs_rhs2)
v_lhs = T_M * vs_lhs (templated matrix type T_M)
Concrete matrix type to represent general permutation (mapping) matrices.