35 #ifndef QPOASES_SPARSESOLVER_HPP
36 #define QPOASES_SPARSESOLVER_HPP
79 const int_t*
const airn,
80 const int_t*
const acjn,
144 Ma27SparseSolver(
const Ma27SparseSolver& rhs
148 virtual ~Ma27SparseSolver( );
151 virtual Ma27SparseSolver& operator=(
const SparseSolver& rhs
159 const int_t*
const airn,
160 const int_t*
const acjn,
177 virtual int_t getNegativeEigenvalues( );
180 virtual int getRank( );
229 bool have_factorization;
258 Ma57SparseSolver(
const Ma57SparseSolver& rhs
262 virtual ~Ma57SparseSolver( );
265 virtual Ma57SparseSolver& operator=(
const SparseSolver& rhs
273 const int_t*
const airn,
274 const int_t*
const acjn,
291 virtual int_t getNegativeEigenvalues( );
294 virtual int_t getRank( );
342 bool have_factorization;
370 MumpsSparseSolver( );
373 MumpsSparseSolver(
const MumpsSparseSolver& rhs
377 virtual ~MumpsSparseSolver( );
380 virtual MumpsSparseSolver& operator=(
const SparseSolver& rhs
388 const int_t*
const airn,
389 const int_t*
const acjn,
406 virtual int_t getNegativeEigenvalues( );
409 virtual int_t getRank( );
449 bool have_factorization;
453 int mumps_pivot_order_;
459 bool pivtol_changed_;
479 int mumps_permuting_scaling_;
485 double mumps_dep_tol_;
490 bool warm_start_same_structure_;
494 bool have_symbolic_factorization_;
498 inline void ComputeMemIncrease(
505 if( recommended >= std::numeric_limits<T>::max() )
508 if( len < std::numeric_limits<T>::max() )
510 len = std::numeric_limits<T>::max();
514 std::stringstream what;
515 what <<
"Cannot allocate more than " << std::numeric_limits<T>::max()*
sizeof(T) <<
" bytes for " << context <<
" due to limitation on integer type";
516 throw std::overflow_error(what.str());
521 len = std::max(min, (T) recommended);
549 const int_t*
const airn,
550 const int_t*
const acjn,
returnValue
Defines all symbols for global return values.
Definition: MessageHandling.hpp:65
int int_t
Definition: Types.hpp:180
BEGIN_NAMESPACE_QPOASES typedef double real_t
Definition: Types.hpp:171
#define END_NAMESPACE_QPOASES
Definition: Types.hpp:110
int fint_t
Definition: Types.hpp:189
#define BEGIN_NAMESPACE_QPOASES
Definition: Types.hpp:107
Base class for linear solvers that are used in a Schur-complement implementation in qpOASES.
Definition: SparseSolver.hpp:55
virtual returnValue getZeroPivots(int_t *&zeroPivots)
Definition: SparseSolver.cpp:138
returnValue copy(const SparseSolver &rhs)
Definition: SparseSolver.cpp:162
virtual SparseSolver & operator=(const SparseSolver &rhs)
Definition: SparseSolver.cpp:100
SparseSolver()
Definition: SparseSolver.cpp:74
returnValue clear()
Definition: SparseSolver.cpp:153
virtual ~SparseSolver()
Definition: SparseSolver.cpp:91
virtual returnValue setMatrixData(int_t dim, int_t numNonzeros, const int_t *const airn, const int_t *const acjn, const real_t *const avals)=0
virtual returnValue factorize()=0
virtual returnValue reset()
Definition: SparseSolver.cpp:114
virtual int_t getRank()
Definition: SparseSolver.cpp:130
virtual returnValue solve(int_t dim, const real_t *const rhs, real_t *const sol)=0
virtual int_t getNegativeEigenvalues()
Definition: SparseSolver.cpp:122