Clp  1.17.8
ClpMatrixBase.hpp
Go to the documentation of this file.
1 /* $Id$ */
2 // Copyright (C) 2002, International Business Machines
3 // Corporation and others. All Rights Reserved.
4 // This code is licensed under the terms of the Eclipse Public License (EPL).
5 
6 #ifndef ClpMatrixBase_H
7 #define ClpMatrixBase_H
8 
9 #include "CoinPragma.hpp"
10 #include "CoinTypes.hpp"
11 
12 #include "CoinPackedMatrix.hpp"
13 class CoinIndexedVector;
14 class ClpSimplex;
15 class ClpModel;
16 // Compilers can produce better code if they know about __restrict
17 #ifndef COIN_RESTRICT
18 #ifdef COIN_USE_RESTRICT
19 #define COIN_RESTRICT __restrict
20 #else
21 #define COIN_RESTRICT
22 #endif
23 #endif
24 
39 
40 public:
43  virtual CoinPackedMatrix *getPackedMatrix() const = 0;
46  virtual bool isColOrdered() const = 0;
48  virtual CoinBigIndex getNumElements() const = 0;
50  virtual int getNumCols() const = 0;
52  virtual int getNumRows() const = 0;
53 
58  virtual const double *getElements() const = 0;
64  virtual const int *getIndices() const = 0;
65 
66  virtual const CoinBigIndex *getVectorStarts() const = 0;
68  virtual const int *getVectorLengths() const = 0;
70  virtual int getVectorLength(int index) const;
72  virtual void deleteCols(const int numDel, const int *indDel) = 0;
74  virtual void deleteRows(const int numDel, const int *indDel) = 0;
75 #ifndef CLP_NO_VECTOR
76  virtual void appendCols(int number, const CoinPackedVectorBase *const *columns);
79  virtual void appendRows(int number, const CoinPackedVectorBase *const *rows);
80 #endif
81 
84  virtual void modifyCoefficient(int row, int column, double newElement,
85  bool keepZero = false);
90  virtual int appendMatrix(int number, int type,
91  const CoinBigIndex *starts, const int *index,
92  const double *element, int numberOther = -1);
93 
97  {
98  return NULL;
99  }
100 
102  virtual int countBasis(const int *whichColumn,
103  int &numberColumnBasic)
104  = 0;
106  virtual void fillBasis(ClpSimplex *model,
107  const int *whichColumn,
108  int &numberColumnBasic,
109  int *row, int *start,
110  int *rowCount, int *columnCount,
111  CoinFactorizationDouble *element)
112  = 0;
116  virtual int scale(ClpModel *, ClpSimplex * = NULL) const
117  {
118  return 1;
119  }
122  virtual void scaleRowCopy(ClpModel *) const {}
124  virtual bool canGetRowCopy() const
125  {
126  return true;
127  }
131  inline virtual ClpMatrixBase *scaledColumnCopy(ClpModel *) const
132  {
133  return this->clone();
134  }
135 
146  virtual bool allElementsInRange(ClpModel *,
147  double, double,
148  int = 15)
149  {
150  return true;
151  }
157  virtual void setDimensions(int numrows, int numcols);
161  virtual void rangeOfElements(double &smallestNegative, double &largestNegative,
162  double &smallestPositive, double &largestPositive);
163 
166  virtual void unpack(const ClpSimplex *model, CoinIndexedVector *rowArray,
167  int column) const = 0;
172  virtual void unpackPacked(ClpSimplex *model,
173  CoinIndexedVector *rowArray,
174  int column) const = 0;
179  virtual int refresh(ClpSimplex *)
180  {
181  return 0;
182  }
183 
184  // Really scale matrix
185  virtual void reallyScale(const double *rowScale, const double *columnScale);
191  virtual CoinBigIndex *dubiousWeights(const ClpSimplex *model, int *inputWeights) const;
194  virtual void add(const ClpSimplex *model, CoinIndexedVector *rowArray,
195  int column, double multiplier) const = 0;
197  virtual void add(const ClpSimplex *model, double *array,
198  int column, double multiplier) const = 0;
200  virtual void releasePackedMatrix() const = 0;
202  virtual bool canDoPartialPricing() const;
204  virtual int hiddenRows() const;
206  virtual void partialPricing(ClpSimplex *model, double start, double end,
207  int &bestSequence, int &numberWanted);
217  virtual int extendUpdated(ClpSimplex *model, CoinIndexedVector *update, int mode);
224  virtual void primalExpanded(ClpSimplex *model, int mode);
234  virtual void dualExpanded(ClpSimplex *model, CoinIndexedVector *array,
235  double *other, int mode);
255  virtual int generalExpanded(ClpSimplex *model, int mode, int &number);
259  virtual int updatePivot(ClpSimplex *model, double oldInValue, double oldOutValue);
263  virtual void createVariable(ClpSimplex *model, int &bestSequence);
266  virtual int checkFeasible(ClpSimplex *model, double &sum) const;
268  double reducedCost(ClpSimplex *model, int sequence) const;
270  virtual void correctSequence(const ClpSimplex *model, int &sequenceIn, int &sequenceOut);
272 
273  //---------------------------------------------------------------------------
281  virtual void times(double scalar,
282  const double *COIN_RESTRICT x, double *COIN_RESTRICT y) const = 0;
286  virtual void times(double scalar,
287  const double *COIN_RESTRICT x, double *COIN_RESTRICT y,
288  const double *COIN_RESTRICT rowScale,
289  const double *COIN_RESTRICT columnScale) const;
293  virtual void transposeTimes(double scalar,
294  const double *COIN_RESTRICT x, double *COIN_RESTRICT y) const = 0;
298  virtual void transposeTimes(double scalar,
299  const double *COIN_RESTRICT x, double *COIN_RESTRICT y,
300  const double *COIN_RESTRICT rowScale,
301  const double *COIN_RESTRICT columnScale,
302  double *COIN_RESTRICT spare = NULL) const;
303 #if COIN_LONG_WORK
304  // For long double versions (aborts if not supported)
305  virtual void times(CoinWorkDouble scalar,
306  const CoinWorkDouble *COIN_RESTRICT x, CoinWorkDouble *COIN_RESTRICT y) const;
307  virtual void transposeTimes(CoinWorkDouble scalar,
308  const CoinWorkDouble *COIN_RESTRICT x, CoinWorkDouble *COIN_RESTRICT y) const;
309 #endif
310 
314  virtual void transposeTimes(const ClpSimplex *model, double scalar,
315  const CoinIndexedVector *x,
316  CoinIndexedVector *y,
317  CoinIndexedVector *z) const = 0;
322  virtual void subsetTransposeTimes(const ClpSimplex *model,
323  const CoinIndexedVector *x,
324  const CoinIndexedVector *y,
325  CoinIndexedVector *z) const = 0;
328  virtual bool canCombine(const ClpSimplex *,
329  const CoinIndexedVector *) const
330  {
331  return false;
332  }
337  virtual int transposeTimes2(const ClpSimplex *model,
338  const CoinIndexedVector *pi1, CoinIndexedVector *dj1,
339  const CoinIndexedVector *pi2,
340  CoinIndexedVector *spare,
341  double *infeas, double *reducedCost,
342  double referenceIn, double devex,
343  // Array for exact devex to say what is in reference framework
344  unsigned int *reference,
345  double *weights, double scaleFactor);
347  virtual void subsetTimes2(const ClpSimplex *model,
348  CoinIndexedVector *dj1,
349  const CoinIndexedVector *pi2, CoinIndexedVector *dj2,
350  double referenceIn, double devex,
351  // Array for exact devex to say what is in reference framework
352  unsigned int *reference,
353  double *weights, double scaleFactor);
358  virtual void listTransposeTimes(const ClpSimplex *model,
359  double *x,
360  int *y,
361  int number,
362  double *z) const;
364 
365  virtual ClpMatrixBase *clone() const = 0;
372  virtual ClpMatrixBase *subsetClone(
373  int numberRows, const int *whichRows,
374  int numberColumns, const int *whichColumns) const;
376  virtual void backToBasics() {}
383  inline int type() const
384  {
385  return type_;
386  }
388  void setType(int newtype)
389  {
390  type_ = newtype;
391  }
393  void useEffectiveRhs(ClpSimplex *model);
397  virtual double *rhsOffset(ClpSimplex *model, bool forceRefresh = false,
398  bool check = false);
400  inline int lastRefresh() const
401  {
402  return lastRefresh_;
403  }
405  inline int refreshFrequency() const
406  {
407  return refreshFrequency_;
408  }
409  inline void setRefreshFrequency(int value)
410  {
411  refreshFrequency_ = value;
412  }
414  inline bool skipDualCheck() const
415  {
416  return skipDualCheck_;
417  }
418  inline void setSkipDualCheck(bool yes)
419  {
420  skipDualCheck_ = yes;
421  }
424  inline int minimumObjectsScan() const
425  {
426  return minimumObjectsScan_;
427  }
428  inline void setMinimumObjectsScan(int value)
429  {
430  minimumObjectsScan_ = value;
431  }
433  inline int minimumGoodReducedCosts() const
434  {
436  }
437  inline void setMinimumGoodReducedCosts(int value)
438  {
439  minimumGoodReducedCosts_ = value;
440  }
442  inline double startFraction() const
443  {
444  return startFraction_;
445  }
446  inline void setStartFraction(double value)
447  {
448  startFraction_ = value;
449  }
451  inline double endFraction() const
452  {
453  return endFraction_;
454  }
455  inline void setEndFraction(double value)
456  {
457  endFraction_ = value;
458  }
460  inline double savedBestDj() const
461  {
462  return savedBestDj_;
463  }
464  inline void setSavedBestDj(double value)
465  {
466  savedBestDj_ = value;
467  }
469  inline int originalWanted() const
470  {
471  return originalWanted_;
472  }
473  inline void setOriginalWanted(int value)
474  {
475  originalWanted_ = value;
476  }
478  inline int currentWanted() const
479  {
480  return currentWanted_;
481  }
482  inline void setCurrentWanted(int value)
483  {
484  currentWanted_ = value;
485  }
487  inline int savedBestSequence() const
488  {
489  return savedBestSequence_;
490  }
491  inline void setSavedBestSequence(int value)
492  {
493  savedBestSequence_ = value;
494  }
496 
497 protected:
503  ClpMatrixBase();
505 public:
506  virtual ~ClpMatrixBase();
507 
508 protected:
509  // Copy
510  ClpMatrixBase(const ClpMatrixBase &);
511  // Assignment
514 
515 protected:
522  double *rhsOffset_;
526  double endFraction_;
528  double savedBestDj_;
536  int type_;
552 };
553 // bias for free variables
554 #define FREE_BIAS 1.0e1
555 // Acceptance criteria for free variables
556 #define FREE_ACCEPT 1.0e2
557 
558 #endif
559 
560 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
561 */
ClpMatrixBase::trueSequenceOut_
int trueSequenceOut_
True sequence out (i.e. from larger problem)
Definition: ClpMatrixBase.hpp:548
ClpSimplex
This solves LPs using the simplex method.
Definition: ClpSimplex.hpp:106
ClpMatrixBase::savedBestSequence
int savedBestSequence() const
Current best sequence.
Definition: ClpMatrixBase.hpp:487
ClpMatrixBase::endFraction
double endFraction() const
Current end of search space in matrix (as fraction)
Definition: ClpMatrixBase.hpp:451
ClpMatrixBase::refreshFrequency_
int refreshFrequency_
If rhsOffset used this is refresh frequency (0==off)
Definition: ClpMatrixBase.hpp:540
ClpMatrixBase::rangeOfElements
virtual void rangeOfElements(double &smallestNegative, double &largestNegative, double &smallestPositive, double &largestPositive)
Returns largest and smallest elements of both signs.
ClpMatrixBase::updatePivot
virtual int updatePivot(ClpSimplex *model, double oldInValue, double oldOutValue)
update information for a pivot (and effective rhs)
ClpMatrixBase::scale
virtual int scale(ClpModel *, ClpSimplex *=NULL) const
Creates scales for column copy (rowCopy in model may be modified) default does not allow scaling retu...
Definition: ClpMatrixBase.hpp:116
ClpMatrixBase::setSkipDualCheck
void setSkipDualCheck(bool yes)
Definition: ClpMatrixBase.hpp:418
ClpMatrixBase::type
int type() const
Returns type.
Definition: ClpMatrixBase.hpp:383
ClpMatrixBase::checkFeasible
virtual int checkFeasible(ClpSimplex *model, double &sum) const
Just for debug if odd type matrix.
ClpMatrixBase::refreshFrequency
int refreshFrequency() const
If rhsOffset used this is refresh frequency (0==off)
Definition: ClpMatrixBase.hpp:405
ClpMatrixBase::deleteRows
virtual void deleteRows(const int numDel, const int *indDel)=0
Delete the rows whose indices are listed in indDel.
ClpMatrixBase::minimumGoodReducedCosts_
int minimumGoodReducedCosts_
Partial pricing tuning parameter - minimum number of negative reduced costs to get.
Definition: ClpMatrixBase.hpp:544
ClpMatrixBase::hiddenRows
virtual int hiddenRows() const
Returns number of hidden rows e.g. gub.
ClpMatrixBase::reallyScale
virtual void reallyScale(const double *rowScale, const double *columnScale)
ClpMatrixBase::type_
int type_
type (may be useful)
Definition: ClpMatrixBase.hpp:536
ClpMatrixBase::savedBestSequence_
int savedBestSequence_
Saved best sequence in pricing.
Definition: ClpMatrixBase.hpp:534
ClpMatrixBase::dubiousWeights
virtual CoinBigIndex * dubiousWeights(const ClpSimplex *model, int *inputWeights) const
Given positive integer weights for each row fills in sum of weights for each column (and slack).
ClpMatrixBase::dualExpanded
virtual void dualExpanded(ClpSimplex *model, CoinIndexedVector *array, double *other, int mode)
utility dual function for dealing with dynamic constraints mode=0 - Set up before "updateTranspose" a...
ClpMatrixBase::savedBestDj
double savedBestDj() const
Current best reduced cost.
Definition: ClpMatrixBase.hpp:460
ClpMatrixBase::transposeTimes2
virtual int transposeTimes2(const ClpSimplex *model, const CoinIndexedVector *pi1, CoinIndexedVector *dj1, const CoinIndexedVector *pi2, CoinIndexedVector *spare, double *infeas, double *reducedCost, double referenceIn, double devex, unsigned int *reference, double *weights, double scaleFactor)
Updates two arrays for steepest and does devex weights (need not be coded) Returns nonzero if updates...
ClpMatrixBase::rhsOffset_
double * rhsOffset_
Effective RHS offset if it is being used.
Definition: ClpMatrixBase.hpp:522
ClpMatrixBase::rhsOffset
virtual double * rhsOffset(ClpSimplex *model, bool forceRefresh=false, bool check=false)
Returns effective RHS offset if it is being used.
ClpMatrixBase::setOriginalWanted
void setOriginalWanted(int value)
Definition: ClpMatrixBase.hpp:473
ClpMatrixBase::trueSequenceIn_
int trueSequenceIn_
True sequence in (i.e. from larger problem)
Definition: ClpMatrixBase.hpp:546
ClpMatrixBase::endFraction_
double endFraction_
Current end of search space in matrix (as fraction)
Definition: ClpMatrixBase.hpp:526
ClpMatrixBase::isColOrdered
virtual bool isColOrdered() const =0
Whether the packed matrix is column major ordered or not.
ClpModel
Definition: ClpModel.hpp:38
ClpMatrixBase::setRefreshFrequency
void setRefreshFrequency(int value)
Definition: ClpMatrixBase.hpp:409
ClpMatrixBase::canDoPartialPricing
virtual bool canDoPartialPricing() const
Says whether it can do partial pricing.
ClpMatrixBase::getElements
virtual const double * getElements() const =0
A vector containing the elements in the packed matrix.
ClpMatrixBase::unpack
virtual void unpack(const ClpSimplex *model, CoinIndexedVector *rowArray, int column) const =0
Unpacks a column into an CoinIndexedvector.
ClpMatrixBase::add
virtual void add(const ClpSimplex *model, CoinIndexedVector *rowArray, int column, double multiplier) const =0
Adds multiple of a column into an CoinIndexedvector You can use quickAdd to add to vector.
ClpMatrixBase::canGetRowCopy
virtual bool canGetRowCopy() const
Returns true if can create row copy.
Definition: ClpMatrixBase.hpp:124
ClpMatrixBase::lastRefresh
int lastRefresh() const
If rhsOffset used this is iteration last refreshed.
Definition: ClpMatrixBase.hpp:400
ClpMatrixBase::backToBasics
virtual void backToBasics()
Gets rid of any mutable by products.
Definition: ClpMatrixBase.hpp:376
ClpMatrixBase::countBasis
virtual int countBasis(const int *whichColumn, int &numberColumnBasic)=0
Returns number of elements in column part of basis.
ClpMatrixBase::clone
virtual ClpMatrixBase * clone() const =0
ClpMatrixBase::modifyCoefficient
virtual void modifyCoefficient(int row, int column, double newElement, bool keepZero=false)
Modify one element of packed matrix.
ClpMatrixBase::setMinimumGoodReducedCosts
void setMinimumGoodReducedCosts(int value)
Definition: ClpMatrixBase.hpp:437
ClpMatrixBase::scaleRowCopy
virtual void scaleRowCopy(ClpModel *) const
Scales rowCopy if column copy scaled Only called if scales already exist.
Definition: ClpMatrixBase.hpp:122
ClpMatrixBase::setSavedBestSequence
void setSavedBestSequence(int value)
Definition: ClpMatrixBase.hpp:491
ClpMatrixBase::subsetClone
virtual ClpMatrixBase * subsetClone(int numberRows, const int *whichRows, int numberColumns, const int *whichColumns) const
Subset clone (without gaps).
ClpMatrixBase::setMinimumObjectsScan
void setMinimumObjectsScan(int value)
Definition: ClpMatrixBase.hpp:428
ClpMatrixBase::fillBasis
virtual void fillBasis(ClpSimplex *model, const int *whichColumn, int &numberColumnBasic, int *row, int *start, int *rowCount, int *columnCount, CoinFactorizationDouble *element)=0
Fills in column part of basis.
ClpMatrixBase::savedBestDj_
double savedBestDj_
Best reduced cost so far.
Definition: ClpMatrixBase.hpp:528
ClpMatrixBase::subsetTransposeTimes
virtual void subsetTransposeTimes(const ClpSimplex *model, const CoinIndexedVector *x, const CoinIndexedVector *y, CoinIndexedVector *z) const =0
Return x *A in z but just for indices in y.
ClpMatrixBase::currentWanted_
int currentWanted_
Current number of negative reduced costs which we still need.
Definition: ClpMatrixBase.hpp:532
ClpMatrixBase::canCombine
virtual bool canCombine(const ClpSimplex *, const CoinIndexedVector *) const
Returns true if can combine transposeTimes and subsetTransposeTimes and if it would be faster.
Definition: ClpMatrixBase.hpp:328
ClpMatrixBase
Abstract base class for Clp Matrices.
Definition: ClpMatrixBase.hpp:38
ClpMatrixBase::skipDualCheck_
bool skipDualCheck_
whether to skip dual checks most of time
Definition: ClpMatrixBase.hpp:550
ClpMatrixBase::skipDualCheck
bool skipDualCheck() const
whether to skip dual checks most of time
Definition: ClpMatrixBase.hpp:414
ClpMatrixBase::deleteCols
virtual void deleteCols(const int numDel, const int *indDel)=0
Delete the columns whose indices are listed in indDel.
ClpMatrixBase::primalExpanded
virtual void primalExpanded(ClpSimplex *model, int mode)
utility primal function for dealing with dynamic constraints mode=0 - Set up before "update" and "tim...
ClpMatrixBase::getNumCols
virtual int getNumCols() const =0
Number of columns.
ClpMatrixBase::ClpMatrixBase
ClpMatrixBase()
Default constructor.
ClpMatrixBase::subsetTimes2
virtual void subsetTimes2(const ClpSimplex *model, CoinIndexedVector *dj1, const CoinIndexedVector *pi2, CoinIndexedVector *dj2, double referenceIn, double devex, unsigned int *reference, double *weights, double scaleFactor)
Updates second array for steepest and does devex weights (need not be coded)
ClpMatrixBase::operator=
ClpMatrixBase & operator=(const ClpMatrixBase &)
ClpMatrixBase::getVectorLengths
virtual const int * getVectorLengths() const =0
The lengths of the major-dimension vectors.
ClpMatrixBase::appendRows
virtual void appendRows(int number, const CoinPackedVectorBase *const *rows)
Append Rows.
COIN_RESTRICT
#define COIN_RESTRICT
Definition: ClpMatrixBase.hpp:21
ClpMatrixBase::minimumObjectsScan
int minimumObjectsScan() const
Partial pricing tuning parameter - minimum number of "objects" to scan.
Definition: ClpMatrixBase.hpp:424
ClpMatrixBase::transposeTimes
virtual void transposeTimes(double scalar, const double *COIN_RESTRICT x, double *COIN_RESTRICT y) const =0
Return y + x * scalar * A in y.
ClpMatrixBase::setDimensions
virtual void setDimensions(int numrows, int numcols)
Set the dimensions of the matrix.
ClpMatrixBase::refresh
virtual int refresh(ClpSimplex *)
Purely for column generation and similar ideas.
Definition: ClpMatrixBase.hpp:179
ClpMatrixBase::startFraction
double startFraction() const
Current start of search space in matrix (as fraction)
Definition: ClpMatrixBase.hpp:442
ClpMatrixBase::getPackedMatrix
virtual CoinPackedMatrix * getPackedMatrix() const =0
Return a complete CoinPackedMatrix.
ClpMatrixBase::listTransposeTimes
virtual void listTransposeTimes(const ClpSimplex *model, double *x, int *y, int number, double *z) const
Return x *A in z but just for number indices in y.
ClpMatrixBase::extendUpdated
virtual int extendUpdated(ClpSimplex *model, CoinIndexedVector *update, int mode)
expands an updated column to allow for extra rows which the main solver does not know about and retur...
ClpMatrixBase::reducedCost
double reducedCost(ClpSimplex *model, int sequence) const
Returns reduced cost of a variable.
ClpMatrixBase::generalExpanded
virtual int generalExpanded(ClpSimplex *model, int mode, int &number)
general utility function for dealing with dynamic constraints mode=0 - Create list of non-key basics ...
ClpMatrixBase::useEffectiveRhs
void useEffectiveRhs(ClpSimplex *model)
Sets up an effective RHS.
ClpMatrixBase::~ClpMatrixBase
virtual ~ClpMatrixBase()
Destructor (has to be public)
ClpMatrixBase::lastRefresh_
int lastRefresh_
If rhsOffset used this is iteration last refreshed.
Definition: ClpMatrixBase.hpp:538
ClpMatrixBase::releasePackedMatrix
virtual void releasePackedMatrix() const =0
Allow any parts of a created CoinPackedMatrix to be deleted.
ClpMatrixBase::scaledColumnCopy
virtual ClpMatrixBase * scaledColumnCopy(ClpModel *) const
Realy really scales column copy Only called if scales already exist.
Definition: ClpMatrixBase.hpp:131
ClpMatrixBase::minimumGoodReducedCosts
int minimumGoodReducedCosts() const
Partial pricing tuning parameter - minimum number of negative reduced costs to get.
Definition: ClpMatrixBase.hpp:433
ClpMatrixBase::setCurrentWanted
void setCurrentWanted(int value)
Definition: ClpMatrixBase.hpp:482
ClpMatrixBase::correctSequence
virtual void correctSequence(const ClpSimplex *model, int &sequenceIn, int &sequenceOut)
Correct sequence in and out to give true value (if both -1 maybe do whole matrix)
ClpMatrixBase::allElementsInRange
virtual bool allElementsInRange(ClpModel *, double, double, int=15)
Checks if all elements are in valid range.
Definition: ClpMatrixBase.hpp:146
ClpMatrixBase::minimumObjectsScan_
int minimumObjectsScan_
Partial pricing tuning parameter - minimum number of "objects" to scan.
Definition: ClpMatrixBase.hpp:542
ClpMatrixBase::appendMatrix
virtual int appendMatrix(int number, int type, const CoinBigIndex *starts, const int *index, const double *element, int numberOther=-1)
Append a set of rows/columns to the end of the matrix.
ClpMatrixBase::partialPricing
virtual void partialPricing(ClpSimplex *model, double start, double end, int &bestSequence, int &numberWanted)
Partial pricing.
ClpMatrixBase::setStartFraction
void setStartFraction(double value)
Definition: ClpMatrixBase.hpp:446
ClpMatrixBase::startFraction_
double startFraction_
Current start of search space in matrix (as fraction)
Definition: ClpMatrixBase.hpp:524
ClpMatrixBase::getNumRows
virtual int getNumRows() const =0
Number of rows.
ClpMatrixBase::appendCols
virtual void appendCols(int number, const CoinPackedVectorBase *const *columns)
Append Columns.
ClpMatrixBase::setSavedBestDj
void setSavedBestDj(double value)
Definition: ClpMatrixBase.hpp:464
ClpMatrixBase::times
virtual void times(double scalar, const double *COIN_RESTRICT x, double *COIN_RESTRICT y) const =0
Return y + A * x * scalar in y.
ClpMatrixBase::originalWanted
int originalWanted() const
Initial number of negative reduced costs wanted.
Definition: ClpMatrixBase.hpp:469
ClpMatrixBase::getVectorLength
virtual int getVectorLength(int index) const
The length of a single major-dimension vector.
ClpMatrixBase::reverseOrderedCopy
virtual ClpMatrixBase * reverseOrderedCopy() const
Returns a new matrix in reverse order without gaps Is allowed to return NULL if doesn't want to have ...
Definition: ClpMatrixBase.hpp:96
ClpMatrixBase::currentWanted
int currentWanted() const
Current number of negative reduced costs which we still need.
Definition: ClpMatrixBase.hpp:478
ClpMatrixBase::originalWanted_
int originalWanted_
Initial number of negative reduced costs wanted.
Definition: ClpMatrixBase.hpp:530
ClpMatrixBase::setEndFraction
void setEndFraction(double value)
Definition: ClpMatrixBase.hpp:455
ClpMatrixBase::setType
void setType(int newtype)
Sets type.
Definition: ClpMatrixBase.hpp:388
ClpMatrixBase::getNumElements
virtual CoinBigIndex getNumElements() const =0
Number of entries in the packed matrix.
ClpMatrixBase::getVectorStarts
virtual const CoinBigIndex * getVectorStarts() const =0
ClpMatrixBase::unpackPacked
virtual void unpackPacked(ClpSimplex *model, CoinIndexedVector *rowArray, int column) const =0
Unpacks a column into an CoinIndexedvector in packed format Note that model is NOT const.
ClpMatrixBase::getIndices
virtual const int * getIndices() const =0
A vector containing the minor indices of the elements in the packed matrix.
ClpMatrixBase::createVariable
virtual void createVariable(ClpSimplex *model, int &bestSequence)
Creates a variable.