42 #ifndef SLAP_MATRIX_NONSINGULAR_SERIAL_H
43 #define SLAP_MATRIX_NONSINGULAR_SERIAL_H
45 #include "AbstractLinAlgPack_Types.hpp"
46 #include "AbstractLinAlgPack_MatrixNonsing.hpp"
48 namespace AbstractLinAlgPack {
98 DMatrix* gm_lhs, value_type alpha
108 DMatrix* gm_lhs, value_type alpha
118 DMatrix* gm_lhs, value_type alpha
128 DMatrix* gm_lhs, value_type alpha
146 ,
const Vector& v_rhs2)
const;
155 ,
const Vector& v_rhs3)
const;
187 M_rhs1.
V_InvMtV(v_lhs,trans_rhs1,vs_rhs2);
194 M_rhs1.
V_InvMtV(vs_lhs,trans_rhs1,vs_rhs2);
201 M_rhs1.
V_InvMtV(v_lhs,trans_rhs1,sv_rhs2);
208 M_rhs1.
V_InvMtV(vs_lhs,trans_rhs1,sv_rhs2);
233 DMatrix* gm_lhs, value_type alpha
238 M_rhs1.
M_StInvMtM(gm_lhs,alpha,trans_rhs1,gms_rhs2,trans_rhs2);
248 M_rhs1.
M_StInvMtM(gms_lhs,alpha,trans_rhs1,gms_rhs2,trans_rhs2);
253 DMatrix* gm_lhs, value_type alpha
258 M_rhs2.
M_StMtInvM(gm_lhs,alpha,gms_rhs1,trans_rhs1,trans_rhs2);
268 M_rhs2.
M_StMtInvM(gms_lhs,alpha,gms_rhs1,trans_rhs1,trans_rhs2);
273 DMatrix* gm_lhs, value_type alpha
278 M_rhs1.
M_StInvMtM(gm_lhs,alpha,trans_rhs1,mwo_rhs2,trans_rhs2);
288 M_rhs1.
M_StInvMtM(gms_lhs,alpha,trans_rhs1,mwo_rhs2,trans_rhs2);
293 DMatrix* gm_lhs, value_type alpha
298 M_rhs2.
M_StMtInvM(gm_lhs,alpha,mwo_rhs1,trans_rhs1,trans_rhs2);
308 M_rhs2.
M_StMtInvM(gms_lhs,alpha,mwo_rhs1,trans_rhs1,trans_rhs2);
319 #endif // SLAP_MATRIX_NONSINGULAR_SERIAL_H
Abstract interface for immutable, finite dimensional, coordinate vectors {abstract}.
void M_StMtInvM(DMatrixSlice *gms_lhs, value_type alpha, const MatrixOpSerial &mwo_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixNonsingSerial &M_rhs2, BLAS_Cpp::Transp trans_rhs2)
gms_lhs = alpha * op(mwo_rhs1) * inv(op(M_rhs2)) (left)
Base class for all matrices implemented in a shared memory address space.
virtual void M_StInvMtM(DMatrix *gm_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const DMatrixSlice &gms_rhs2, BLAS_Cpp::Transp trans_rhs2) const
gm_lhs = alpha * inv(op(M_rhs1)) * op(gms_rhs2) (right)
void V_InvMtV(DVectorSlice *vs_lhs, const MatrixNonsingSerial &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const SpVectorSlice &sv_rhs2)
vs_lhs = inv(op(M_rhs1)) * sv_rhs2
Abstract base class for all AbstractLinAlgPack::MatrixNonsing objects implemented in shared memory sp...
virtual void V_InvMtV(DVector *v_lhs, BLAS_Cpp::Transp trans_rhs1, const DVectorSlice &vs_rhs2) const
v_lhs = inv(op(M_rhs1)) * vs_rhs2
Base class for all matrices that support basic matrix operations.
value_type transVtInvMtV(const SpVectorSlice &sv_rhs1, const MatrixNonsingSerial &M_rhs2, BLAS_Cpp::Transp trans_rhs2, const SpVectorSlice &sv_rhs3)
result = sv_rhs1' * inv(op(M_rhs2)) * sv_rhs3
virtual value_type transVtInvMtV(const DVectorSlice &vs_rhs1, BLAS_Cpp::Transp trans_rhs2, const DVectorSlice &vs_rhs3) const
result = vs_rhs1' * inv(op(M_rhs2)) * vs_rhs3
Abstract interface for mutable coordinate vectors {abstract}.
virtual void M_StMtInvM(DMatrix *gm_lhs, value_type alpha, const DMatrixSlice &gms_rhs1, BLAS_Cpp::Transp trans_rhs1, BLAS_Cpp::Transp trans_rhs2) const
gm_lhs = alpha * op(gms_rhs1) * inv(op(M_rhs2)) (left)
void M_StInvMtM(DMatrixSlice *gms_lhs, value_type alpha, const MatrixNonsingSerial &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const MatrixOpSerial &mwo_rhs2, BLAS_Cpp::Transp trans_rhs2)
gms_lhs = alpha * inv(op(M_rhs1)) * op(mwo_rhs2) (right)
Abstract base class for all nonsingular polymorphic matrices that can solve for linear system with bu...