51 #include "MiWorkspacePack.h"
53 namespace ConstrainedOptPack {
61 ,
const release_resource_ptr_t& MB_release_resource_ptr
64 initialize(m,n,kl,ku,MB,MB_release_resource_ptr);
73 ,
const release_resource_ptr_t& MB_release_resource_ptr
80 throw std::invalid_argument(
81 "MatrixGenBanded::initialize(...): Error, "
82 "n must be 0 if m == 0" );
84 throw std::invalid_argument(
85 "MatrixGenBanded::initialize(...): Error, "
86 "kl must be 0 if m == 0" );
88 throw std::invalid_argument(
89 "MatrixGenBanded::initialize(...): Error, "
90 "ku must be 0 if m == 0" );
92 throw std::invalid_argument(
93 "MatrixGenBanded::initialize(...): Error, "
94 "MB must be NULL if m == 0" );
95 if( MB_release_resource_ptr.get() != NULL )
96 throw std::invalid_argument(
97 "MatrixGenBanded::initialize(...): Error, "
98 "MB_release_resource_ptr.get() must be NULL if m == 0" );
102 throw std::invalid_argument(
103 "MatrixGenBanded::initialize(...): Error, "
104 "kl + 1 can not be larger than m" );
106 throw std::invalid_argument(
107 "MatrixGenBanded::initialize(...): Error, "
108 "ku + 1 can not be larger than n" );
110 throw std::invalid_argument(
111 "MatrixGenBanded::initialize(...): Error, "
112 "MB must not be NULL if n > 0" );
164 ,b,y->raw_ptr(),y->stride());
200 throw std::logic_error(
"MatrixGenBanded::assert_initialized(): Error, "
201 "not initialized!" );
void gbmv(Transp transa, f_int m, f_int n, f_int kl, f_int ku, f_dbl_prec alpha, const f_dbl_prec *pa, f_int lda, const f_dbl_prec *x, f_int incx, f_dbl_prec beta, f_dbl_prec *py, f_int incy)
AbstractLinAlgPack::size_type size_type
void Vp_StPtMtV(DVectorSlice *vs_lhs, value_type alpha, const GenPermMatrixSlice &P_rhs1, BLAS_Cpp::Transp P_rhs1_trans, BLAS_Cpp::Transp M_rhs2_trans, const DVectorSlice &vs_rhs3, value_type beta) const
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 assert_initialized() const
std::ostream & output(std::ostream &o, const COOMatrix &coom)
Output stream function for COOMatrix.
void initialize(size_type m=0, size_type n=0, size_type kl=0, size_type ku=0, DMatrixSlice *MB=NULL, const release_resource_ptr_t &MB_release_resource_ptr=NULL)
Initialize.
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)
const f_int f_dbl_prec a[]
SparseVectorSlice< SparseElement< index_type, value_type > > SpVectorSlice
DenseLinAlgPack::VectorSliceTmpl< value_type > DVectorSlice
MatrixGenBanded(size_type m=0, size_type n=0, size_type kl=0, size_type ku=0, DMatrixSlice *MB=NULL, const release_resource_ptr_t &MB_release_resource_ptr=NULL)
Construct and Initialize.
void Vp_StMtV(DVectorSlice *vs_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const DVectorSlice &vs_rhs2, value_type beta) const
AbstractLinAlgPack::value_type value_type
void Vp_MtV_assert_sizes(size_type v_lhs_size, size_type m_rhs1_rows, size_type m_rhs1_cols, BLAS_Cpp::Transp trans_rhs1, size_type v_rhs2_size)
v_lhs += op(m_rhs1) * v_rhs2
std::ostream & output(std::ostream &out) const
DenseLinAlgPack::DMatrixSlice DMatrixSlice
release_resource_ptr_t MB_release_resource_ptr_