Base class for Clp Cholesky factorization Will do better factorization. More...
#include <ClpCholeskyBase.hpp>
Public Member Functions | |
Gets | |
int | status () const |
status. Returns status | |
int | numberRowsDropped () const |
numberRowsDropped. Number of rows gone | |
void | resetRowsDropped () |
reset numberRowsDropped and rowsDropped. | |
char * | rowsDropped () const |
rowsDropped - which rows are gone | |
double | choleskyCondition () const |
choleskyCondition. | |
double | goDense () const |
goDense i.e. use dense factoriaztion if > this (default 0.7). | |
void | setGoDense (double value) |
goDense i.e. use dense factoriaztion if > this (default 0.7). | |
int | rank () const |
rank. Returns rank | |
int | numberRows () const |
Return number of rows. | |
CoinBigIndex | size () const |
Return size. | |
longDouble * | sparseFactor () const |
Return sparseFactor. | |
longDouble * | diagonal () const |
Return diagonal. | |
longDouble * | workDouble () const |
Return workDouble. | |
bool | kkt () const |
If KKT on. | |
void | setKKT (bool yesNo) |
Set KKT. | |
void | setIntegerParameter (int i, int value) |
Set integer parameter. | |
int | getIntegerParameter (int i) |
get integer parameter | |
void | setDoubleParameter (int i, double value) |
Set double parameter. | |
double | getDoubleParameter (int i) |
get double parameter | |
Constructors, destructor | |
ClpCholeskyBase (int denseThreshold=-1) | |
Constructor which has dense columns activated. | |
virtual | ~ClpCholeskyBase () |
Destructor (has to be public) | |
ClpCholeskyBase (const ClpCholeskyBase &) | |
Copy. | |
ClpCholeskyBase & | operator= (const ClpCholeskyBase &) |
Assignment. | |
Protected Member Functions | |
Symbolic, factor and solve | |
int | symbolic1 (const CoinBigIndex *Astart, const int *Arow) |
Symbolic1 - works out size without clever stuff. | |
void | symbolic2 (const CoinBigIndex *Astart, const int *Arow) |
Symbolic2 - Fills in indices Uses lower triangular so can do cliques etc. | |
void | factorizePart2 (int *rowsDropped) |
Factorize - filling in rowsDropped and returning number dropped in integerParam. | |
void | solve (CoinWorkDouble *region, int type) |
solve - 1 just first half, 2 just second half - 3 both. | |
int | preOrder (bool lowerTriangular, bool includeDiagonal, bool doKKT) |
Forms ADAT - returns nonzero if not enough memory. | |
void | updateDense (longDouble *d, int *first) |
Updates dense part (broken out for profiling) | |
Protected Attributes | |
Data members | |
The data members are protected to allow access for derived classes. | |
int | type_ |
type (may be useful) if > 20 do KKT | |
bool | doKKT_ |
Doing full KKT (only used if default symbolic and factorization) | |
double | goDense_ |
Go dense at this fraction. | |
double | choleskyCondition_ |
choleskyCondition. | |
ClpInterior * | model_ |
model. | |
int | numberTrials_ |
numberTrials. Number of trials before rejection | |
int | numberRows_ |
numberRows. Number of Rows in factorization | |
int | status_ |
status. Status of factorization | |
char * | rowsDropped_ |
rowsDropped | |
int * | permuteInverse_ |
permute inverse. | |
int * | permute_ |
main permute. | |
int | numberRowsDropped_ |
numberRowsDropped. Number of rows gone | |
longDouble * | sparseFactor_ |
sparseFactor. | |
CoinBigIndex * | choleskyStart_ |
choleskyStart - element starts | |
int * | choleskyRow_ |
choleskyRow (can be shorter than sparsefactor) | |
CoinBigIndex * | indexStart_ |
Index starts. | |
longDouble * | diagonal_ |
Diagonal. | |
longDouble * | workDouble_ |
double work array | |
int * | link_ |
link array | |
CoinBigIndex * | workInteger_ |
type (may be useful) if > 20 do KKT | |
int * | clique_ |
type (may be useful) if > 20 do KKT | |
CoinBigIndex | sizeFactor_ |
sizeFactor. | |
CoinBigIndex | sizeIndex_ |
Size of index array. | |
int | firstDense_ |
First dense row. | |
int | integerParameters_ [64] |
integerParameters | |
double | doubleParameters_ [64] |
doubleParameters; | |
ClpMatrixBase * | rowCopy_ |
Row copy of matrix. | |
char * | whichDense_ |
Dense indicators. | |
longDouble * | denseColumn_ |
Dense columns (updated) | |
ClpCholeskyDense * | dense_ |
Dense cholesky. | |
int | denseThreshold_ |
Dense threshold (for taking out of Cholesky) | |
Virtual methods that the derived classes may provide | |
virtual int | order (ClpInterior *model) |
Orders rows and saves pointer to matrix.and model. | |
virtual int | symbolic () |
Does Symbolic factorization given permutation. | |
virtual int | factorize (const CoinWorkDouble *diagonal, int *rowsDropped) |
Factorize - filling in rowsDropped and returning number dropped. | |
virtual void | solve (CoinWorkDouble *region) |
Uses factorization to solve. | |
virtual void | solveKKT (CoinWorkDouble *region1, CoinWorkDouble *region2, const CoinWorkDouble *diagonal, CoinWorkDouble diagonalScaleFactor) |
Uses factorization to solve. | |
int | orderAMD () |
AMD ordering. | |
Other | |
virtual ClpCholeskyBase * | clone () const |
Returns type. | |
int | type () const |
Returns type. | |
void | setType (int type) |
Sets type. | |
void | setModel (ClpInterior *model) |
model. |
Base class for Clp Cholesky factorization Will do better factorization.
very crude ordering
Derived classes may be using more sophisticated methods
Definition at line 51 of file ClpCholeskyBase.hpp.
ClpCholeskyBase::ClpCholeskyBase | ( | int | denseThreshold = -1 | ) |
Constructor which has dense columns activated.
Default is off.
virtual ClpCholeskyBase::~ClpCholeskyBase | ( | ) | [virtual] |
Destructor (has to be public)
ClpCholeskyBase::ClpCholeskyBase | ( | const ClpCholeskyBase & | ) |
Copy.
virtual int ClpCholeskyBase::order | ( | ClpInterior * | model | ) | [virtual] |
Orders rows and saves pointer to matrix.and model.
returns non-zero if not enough memory. You can use preOrder to set up ADAT If using default symbolic etc then must set sizeFactor_ to size of input matrix to order (and to symbolic). Also just permute_ and permuteInverse_ should be created
Reimplemented in ClpCholeskyTaucs, ClpCholeskyUfl, ClpCholeskyMumps, ClpCholeskyWssmp, ClpCholeskyWssmpKKT, and ClpCholeskyDense.
virtual int ClpCholeskyBase::symbolic | ( | ) | [virtual] |
Does Symbolic factorization given permutation.
This is called immediately after order. If user provides this then user must provide factorize and solve. Otherwise the default factorization is used returns non-zero if not enough memory
Reimplemented in ClpCholeskyTaucs, ClpCholeskyMumps, ClpCholeskyWssmp, ClpCholeskyWssmpKKT, and ClpCholeskyDense.
virtual int ClpCholeskyBase::factorize | ( | const CoinWorkDouble * | diagonal, |
int * | rowsDropped | ||
) | [virtual] |
Factorize - filling in rowsDropped and returning number dropped.
If return code negative then out of memory
Reimplemented in ClpCholeskyDense.
virtual void ClpCholeskyBase::solve | ( | CoinWorkDouble * | region | ) | [virtual] |
Uses factorization to solve.
Reimplemented in ClpCholeskyDense.
virtual void ClpCholeskyBase::solveKKT | ( | CoinWorkDouble * | region1, |
CoinWorkDouble * | region2, | ||
const CoinWorkDouble * | diagonal, | ||
CoinWorkDouble | diagonalScaleFactor | ||
) | [virtual] |
Uses factorization to solve.
int ClpCholeskyBase::orderAMD | ( | ) | [private] |
AMD ordering.
int ClpCholeskyBase::status | ( | ) | const [inline] |
status. Returns status
Definition at line 86 of file ClpCholeskyBase.hpp.
int ClpCholeskyBase::numberRowsDropped | ( | ) | const [inline] |
numberRowsDropped. Number of rows gone
Definition at line 90 of file ClpCholeskyBase.hpp.
void ClpCholeskyBase::resetRowsDropped | ( | ) |
reset numberRowsDropped and rowsDropped.
char* ClpCholeskyBase::rowsDropped | ( | ) | const [inline] |
rowsDropped - which rows are gone
Definition at line 96 of file ClpCholeskyBase.hpp.
double ClpCholeskyBase::choleskyCondition | ( | ) | const [inline] |
choleskyCondition.
Definition at line 100 of file ClpCholeskyBase.hpp.
double ClpCholeskyBase::goDense | ( | ) | const [inline] |
goDense i.e. use dense factoriaztion if > this (default 0.7).
Definition at line 104 of file ClpCholeskyBase.hpp.
void ClpCholeskyBase::setGoDense | ( | double | value | ) | [inline] |
goDense i.e. use dense factoriaztion if > this (default 0.7).
Definition at line 108 of file ClpCholeskyBase.hpp.
int ClpCholeskyBase::rank | ( | ) | const [inline] |
rank. Returns rank
Definition at line 112 of file ClpCholeskyBase.hpp.
int ClpCholeskyBase::numberRows | ( | ) | const [inline] |
Return number of rows.
Definition at line 116 of file ClpCholeskyBase.hpp.
CoinBigIndex ClpCholeskyBase::size | ( | ) | const [inline] |
Return size.
Definition at line 120 of file ClpCholeskyBase.hpp.
longDouble* ClpCholeskyBase::sparseFactor | ( | ) | const [inline] |
Return sparseFactor.
Definition at line 124 of file ClpCholeskyBase.hpp.
longDouble* ClpCholeskyBase::diagonal | ( | ) | const [inline] |
Return diagonal.
Reimplemented in ClpCholeskyDense.
Definition at line 128 of file ClpCholeskyBase.hpp.
longDouble* ClpCholeskyBase::workDouble | ( | ) | const [inline] |
Return workDouble.
Definition at line 132 of file ClpCholeskyBase.hpp.
bool ClpCholeskyBase::kkt | ( | ) | const [inline] |
If KKT on.
Definition at line 136 of file ClpCholeskyBase.hpp.
void ClpCholeskyBase::setKKT | ( | bool | yesNo | ) | [inline] |
Set KKT.
Definition at line 140 of file ClpCholeskyBase.hpp.
void ClpCholeskyBase::setIntegerParameter | ( | int | i, |
int | value | ||
) | [inline] |
Set integer parameter.
Definition at line 144 of file ClpCholeskyBase.hpp.
int ClpCholeskyBase::getIntegerParameter | ( | int | i | ) | [inline] |
get integer parameter
Definition at line 148 of file ClpCholeskyBase.hpp.
void ClpCholeskyBase::setDoubleParameter | ( | int | i, |
double | value | ||
) | [inline] |
Set double parameter.
Definition at line 152 of file ClpCholeskyBase.hpp.
double ClpCholeskyBase::getDoubleParameter | ( | int | i | ) | [inline] |
get double parameter
Definition at line 156 of file ClpCholeskyBase.hpp.
ClpCholeskyBase& ClpCholeskyBase::operator= | ( | const ClpCholeskyBase & | ) |
Assignment.
virtual ClpCholeskyBase* ClpCholeskyBase::clone | ( | ) | const [virtual] |
Returns type.
Reimplemented in ClpCholeskyDense, ClpCholeskyUfl, ClpCholeskyTaucs, ClpCholeskyMumps, ClpCholeskyWssmpKKT, and ClpCholeskyWssmp.
int ClpCholeskyBase::type | ( | ) | const [inline] |
Returns type.
Definition at line 183 of file ClpCholeskyBase.hpp.
void ClpCholeskyBase::setType | ( | int | type | ) | [inline, protected] |
Sets type.
Definition at line 189 of file ClpCholeskyBase.hpp.
void ClpCholeskyBase::setModel | ( | ClpInterior * | model | ) | [inline, protected] |
model.
Definition at line 193 of file ClpCholeskyBase.hpp.
int ClpCholeskyBase::symbolic1 | ( | const CoinBigIndex * | Astart, |
const int * | Arow | ||
) | [protected] |
Symbolic1 - works out size without clever stuff.
Uses upper triangular as much easier. Returns size
void ClpCholeskyBase::symbolic2 | ( | const CoinBigIndex * | Astart, |
const int * | Arow | ||
) | [protected] |
Symbolic2 - Fills in indices Uses lower triangular so can do cliques etc.
void ClpCholeskyBase::factorizePart2 | ( | int * | rowsDropped | ) | [protected] |
Factorize - filling in rowsDropped and returning number dropped in integerParam.
Reimplemented in ClpCholeskyDense.
void ClpCholeskyBase::solve | ( | CoinWorkDouble * | region, |
int | type | ||
) | [protected] |
solve - 1 just first half, 2 just second half - 3 both.
If 1 and 2 then diagonal has sqrt of inverse otherwise inverse
int ClpCholeskyBase::preOrder | ( | bool | lowerTriangular, |
bool | includeDiagonal, | ||
bool | doKKT | ||
) | [protected] |
Forms ADAT - returns nonzero if not enough memory.
void ClpCholeskyBase::updateDense | ( | longDouble * | d, |
int * | first | ||
) | [protected] |
Updates dense part (broken out for profiling)
int ClpCholeskyBase::type_ [protected] |
type (may be useful) if > 20 do KKT
Definition at line 228 of file ClpCholeskyBase.hpp.
bool ClpCholeskyBase::doKKT_ [protected] |
Doing full KKT (only used if default symbolic and factorization)
Definition at line 230 of file ClpCholeskyBase.hpp.
double ClpCholeskyBase::goDense_ [protected] |
Go dense at this fraction.
Definition at line 232 of file ClpCholeskyBase.hpp.
double ClpCholeskyBase::choleskyCondition_ [protected] |
choleskyCondition.
Definition at line 234 of file ClpCholeskyBase.hpp.
ClpInterior* ClpCholeskyBase::model_ [protected] |
model.
Definition at line 236 of file ClpCholeskyBase.hpp.
int ClpCholeskyBase::numberTrials_ [protected] |
numberTrials. Number of trials before rejection
Definition at line 238 of file ClpCholeskyBase.hpp.
int ClpCholeskyBase::numberRows_ [protected] |
numberRows. Number of Rows in factorization
Definition at line 240 of file ClpCholeskyBase.hpp.
int ClpCholeskyBase::status_ [protected] |
status. Status of factorization
Definition at line 242 of file ClpCholeskyBase.hpp.
char* ClpCholeskyBase::rowsDropped_ [protected] |
rowsDropped
Definition at line 244 of file ClpCholeskyBase.hpp.
int* ClpCholeskyBase::permuteInverse_ [protected] |
permute inverse.
Definition at line 246 of file ClpCholeskyBase.hpp.
int* ClpCholeskyBase::permute_ [protected] |
main permute.
Definition at line 248 of file ClpCholeskyBase.hpp.
int ClpCholeskyBase::numberRowsDropped_ [protected] |
numberRowsDropped. Number of rows gone
Definition at line 250 of file ClpCholeskyBase.hpp.
longDouble* ClpCholeskyBase::sparseFactor_ [protected] |
sparseFactor.
Definition at line 252 of file ClpCholeskyBase.hpp.
CoinBigIndex* ClpCholeskyBase::choleskyStart_ [protected] |
choleskyStart - element starts
Definition at line 254 of file ClpCholeskyBase.hpp.
int* ClpCholeskyBase::choleskyRow_ [protected] |
choleskyRow (can be shorter than sparsefactor)
Definition at line 256 of file ClpCholeskyBase.hpp.
CoinBigIndex* ClpCholeskyBase::indexStart_ [protected] |
Index starts.
Definition at line 258 of file ClpCholeskyBase.hpp.
longDouble* ClpCholeskyBase::diagonal_ [protected] |
Diagonal.
Definition at line 260 of file ClpCholeskyBase.hpp.
longDouble* ClpCholeskyBase::workDouble_ [protected] |
double work array
Definition at line 262 of file ClpCholeskyBase.hpp.
int* ClpCholeskyBase::link_ [protected] |
link array
Definition at line 264 of file ClpCholeskyBase.hpp.
CoinBigIndex* ClpCholeskyBase::workInteger_ [protected] |
type (may be useful) if > 20 do KKT
Definition at line 266 of file ClpCholeskyBase.hpp.
int* ClpCholeskyBase::clique_ [protected] |
type (may be useful) if > 20 do KKT
Definition at line 268 of file ClpCholeskyBase.hpp.
CoinBigIndex ClpCholeskyBase::sizeFactor_ [protected] |
sizeFactor.
Definition at line 270 of file ClpCholeskyBase.hpp.
CoinBigIndex ClpCholeskyBase::sizeIndex_ [protected] |
Size of index array.
Definition at line 272 of file ClpCholeskyBase.hpp.
int ClpCholeskyBase::firstDense_ [protected] |
First dense row.
Definition at line 274 of file ClpCholeskyBase.hpp.
int ClpCholeskyBase::integerParameters_[64] [protected] |
integerParameters
Definition at line 276 of file ClpCholeskyBase.hpp.
double ClpCholeskyBase::doubleParameters_[64] [protected] |
doubleParameters;
Definition at line 278 of file ClpCholeskyBase.hpp.
ClpMatrixBase* ClpCholeskyBase::rowCopy_ [protected] |
Row copy of matrix.
Definition at line 280 of file ClpCholeskyBase.hpp.
char* ClpCholeskyBase::whichDense_ [protected] |
Dense indicators.
Definition at line 282 of file ClpCholeskyBase.hpp.
longDouble* ClpCholeskyBase::denseColumn_ [protected] |
Dense columns (updated)
Definition at line 284 of file ClpCholeskyBase.hpp.
ClpCholeskyDense* ClpCholeskyBase::dense_ [protected] |
Dense cholesky.
Definition at line 286 of file ClpCholeskyBase.hpp.
int ClpCholeskyBase::denseThreshold_ [protected] |
Dense threshold (for taking out of Cholesky)
Definition at line 288 of file ClpCholeskyBase.hpp.