42 #include "ConstrainedOptPack_MatrixIdentConcat.hpp"
43 #include "AbstractLinAlgPack_LinAlgOpPack.hpp"
44 #include "AbstractLinAlgPack_MatrixOpOut.hpp"
45 #include "AbstractLinAlgPack_VectorSpace.hpp"
46 #include "AbstractLinAlgPack_VectorMutable.hpp"
47 #include "AbstractLinAlgPack_VectorStdOps.hpp"
48 #include "AbstractLinAlgPack_SpVectorClass.hpp"
49 #include "AbstractLinAlgPack_AssertOp.hpp"
50 #include "AbstractLinAlgPack_SpVectorOp.hpp"
53 #include "Teuchos_FancyOStream.hpp"
72 const AbstractLinAlgPack::SpVectorSlice &v
76 return Teuchos::rcp(
new AbstractLinAlgPack::SpVectorSlice( v(rng) ) );
84 ,AbstractLinAlgPack::value_type a
85 ,AbstractLinAlgPack::value_type alpha
88 ,
const DenseLinAlgPack::Range1D &D_rng
89 ,
const DenseLinAlgPack::Range1D &I_rng
92 ,AbstractLinAlgPack::value_type b
132 namespace ConstrainedOptPack {
138 return this->
D_rng().size() + this->
I_rng().size();
143 return this->
I_rng().size();
148 const MatrixOp& D = this->
D();
158 const Range1D D_rng = this->
D_rng();
160 *out <<
"Converted to dense =\n";
161 MatrixOp::output(*out);
162 *out <<
"This is a " << this->
rows() <<
" x " << this->
cols()
163 <<
" general matrix / identity matrix concatenated matrix object ";
164 if( D_rng.lbound() == 1 ) {
166 *out <<
"[ alpha*D; I ]";
168 *out <<
"[ alpha*D'; I ]";
172 *out <<
"[ I; alpha*D ]";
174 *out <<
"[ I; alpha*D' ]";
176 *out <<
" where alpha and D are:";
178 *out <<
"\nalpha = " << this->
alpha();
179 *out <<
"\nD =\n" <<
D();
185 ,
const Vector& x, value_type b
194 ,
const SpVectorSlice& x, value_type b
virtual const MatrixOp & D() const =0
void Vp_StMtV(VectorMutable *vs_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const Vector &vs_rhs2, value_type beta) const
virtual vec_mut_ptr_t sub_view(const Range1D &rng)
vec_ptr_t sub_view(const index_type &l, const index_type &u) const
void Vt_S(VectorMutable *v_lhs, const value_type &alpha)
void Vp_StV(VectorMutable *v_lhs, const value_type &alpha, const Vector &v_rhs)
basic_OSTab< CharT, Traits > & incrTab(const int tabs=1)
std::ostream & output(std::ostream &out) const
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
virtual Range1D I_rng() const =0
virtual value_type alpha() const =0
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)
virtual Range1D D_rng() const =0
Transp trans_not(Transp _trans)
virtual BLAS_Cpp::Transp D_trans() const =0
void Vp_MtV_assert_compatibility(VectorMutable *v_lhs, const MatrixOp &m_rhs1, BLAS_Cpp::Transp trans_rhs1, const Vector &v_rhs2)
size_type cols(size_type rows, size_type cols, BLAS_Cpp::Transp _trans)