Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

ClpDummyMatrix.cpp

00001 // Copyright (C) 2003, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 
00004 
00005 #include <cstdio>
00006 
00007 #include "CoinPragma.hpp"
00008 
00009 #include "ClpSimplex.hpp"
00010 #include "ClpDummyMatrix.hpp"
00011 #include "ClpFactorization.hpp"
00012 #include "ClpMessage.hpp"
00013 
00014 //#############################################################################
00015 // Constructors / Destructor / Assignment
00016 //#############################################################################
00017 
00018 //-------------------------------------------------------------------
00019 // Default Constructor 
00020 //-------------------------------------------------------------------
00021 ClpDummyMatrix::ClpDummyMatrix () 
00022   : ClpMatrixBase()
00023 {
00024   setType(14);
00025   numberRows_=0;
00026   numberColumns_=0;
00027   numberElements_=0;
00028 }
00029 
00030 /* Constructor from data */
00031 ClpDummyMatrix::ClpDummyMatrix(int numberColumns, int numberRows,
00032                                    int numberElements)
00033   : ClpMatrixBase()
00034 {
00035   setType(14);
00036   numberRows_=numberRows;
00037   numberColumns_=numberColumns;
00038   numberElements_=numberElements;
00039 }
00040 //-------------------------------------------------------------------
00041 // Copy constructor 
00042 //-------------------------------------------------------------------
00043 ClpDummyMatrix::ClpDummyMatrix (const ClpDummyMatrix & rhs) 
00044 : ClpMatrixBase(rhs)
00045 {  
00046   numberRows_=rhs.numberRows_;
00047   numberColumns_=rhs.numberColumns_;
00048   numberElements_=rhs.numberElements_;
00049 }
00050 
00051 ClpDummyMatrix::ClpDummyMatrix (const CoinPackedMatrix & rhs) 
00052   : ClpMatrixBase()
00053 {  
00054   std::cerr<<"Constructor from CoinPackedMatrix nnot supported - ClpDummyMatrix"<<std::endl;
00055   abort();
00056 }
00057 
00058 //-------------------------------------------------------------------
00059 // Destructor 
00060 //-------------------------------------------------------------------
00061 ClpDummyMatrix::~ClpDummyMatrix ()
00062 {
00063 }
00064 
00065 //----------------------------------------------------------------
00066 // Assignment operator 
00067 //-------------------------------------------------------------------
00068 ClpDummyMatrix &
00069 ClpDummyMatrix::operator=(const ClpDummyMatrix& rhs)
00070 {
00071   if (this != &rhs) {
00072     ClpMatrixBase::operator=(rhs);
00073     numberRows_=rhs.numberRows_;
00074     numberColumns_=rhs.numberColumns_;
00075     numberElements_=rhs.numberElements_;
00076   }
00077   return *this;
00078 }
00079 //-------------------------------------------------------------------
00080 // Clone
00081 //-------------------------------------------------------------------
00082 ClpMatrixBase * ClpDummyMatrix::clone() const
00083 {
00084   return new ClpDummyMatrix(*this);
00085 }
00086 
00087 /* Returns a new matrix in reverse order without gaps */
00088 ClpMatrixBase * 
00089 ClpDummyMatrix::reverseOrderedCopy() const
00090 {
00091   std::cerr<<"reverseOrderedCopy not supported - ClpDummyMatrix"<<std::endl;
00092   abort();
00093   return NULL;
00094 }
00095 //unscaled versions
00096 void 
00097 ClpDummyMatrix::times(double scalar,
00098                    const double * x, double * y) const
00099 {
00100   std::cerr<<"times not supported - ClpDummyMatrix"<<std::endl;
00101   abort();
00102 }
00103 void 
00104 ClpDummyMatrix::transposeTimes(double scalar,
00105                                 const double * x, double * y) const
00106 {
00107   std::cerr<<"transposeTimes not supported - ClpDummyMatrix"<<std::endl;
00108   abort();
00109 }
00110 void 
00111 ClpDummyMatrix::times(double scalar,
00112                        const double * x, double * y,
00113                        const double * rowScale, 
00114                        const double * columnScale) const
00115 {
00116   std::cerr<<"timesnot supported - ClpDummyMatrix"<<std::endl;
00117   abort();
00118 }
00119 void 
00120 ClpDummyMatrix::transposeTimes( double scalar,
00121                                  const double * x, double * y,
00122                                  const double * rowScale, 
00123                                  const double * columnScale) const
00124 {
00125   std::cerr<<"transposeTimesnot supported - ClpDummyMatrix"<<std::endl;
00126   abort();
00127 }
00128 /* Return <code>x * A + y</code> in <code>z</code>. 
00129         Squashes small elements and knows about ClpSimplex */
00130 void 
00131 ClpDummyMatrix::transposeTimes(const ClpSimplex * model, double scalar,
00132                               const CoinIndexedVector * rowArray,
00133                               CoinIndexedVector * y,
00134                               CoinIndexedVector * columnArray) const
00135 {
00136   std::cerr<<"transposeTimes not supported - ClpDummyMatrix"<<std::endl;
00137   abort();
00138 }
00139 /* Return <code>x *A in <code>z</code> but
00140    just for indices in y.
00141    Squashes small elements and knows about ClpSimplex */
00142 void 
00143 ClpDummyMatrix::subsetTransposeTimes(const ClpSimplex * model,
00144                               const CoinIndexedVector * rowArray,
00145                               const CoinIndexedVector * y,
00146                               CoinIndexedVector * columnArray) const
00147 {
00148   std::cerr<<"subsetTransposeTimes not supported - ClpDummyMatrix"<<std::endl;
00149   abort();
00150 }
00151 /* Returns number of elements in basis
00152    column is basic if entry >=0 */
00153 CoinBigIndex 
00154 ClpDummyMatrix::numberInBasis(const int * columnIsBasic) const 
00155 {
00156   std::cerr<<"numberInBasis not supported - ClpDummyMatrix"<<std::endl;
00157   abort();
00158   return 0;
00159 }
00160 // Fills in basis (Returns number of elements and updates numberBasic)
00161 CoinBigIndex 
00162 ClpDummyMatrix::fillBasis(const ClpSimplex * model,
00163                                 const int * columnIsBasic, int & numberBasic,
00164                                 int * indexRowU, int * indexColumnU,
00165                                 double * elementU) const 
00166 {
00167   std::cerr<<"fillBasis not supported - ClpDummyMatrix"<<std::endl;
00168   abort();
00169   return 0;
00170 }
00171 /* If element NULL returns number of elements in column part of basis,
00172    If not NULL fills in as well */
00173 CoinBigIndex 
00174 ClpDummyMatrix::fillBasis(const ClpSimplex * model,
00175                                  const int * whichColumn, 
00176                                  int numberBasic,
00177                                  int numberColumnBasic,
00178                                  int * indexRowU, int * indexColumnU,
00179                                  double * elementU) const 
00180 {
00181   std::cerr<<"fillBasis not supported - ClpDummyMatrix"<<std::endl;
00182   abort();
00183   return 0;
00184 }
00185 /* Unpacks a column into an CoinIndexedvector
00186  */
00187 void 
00188 ClpDummyMatrix::unpack(const ClpSimplex * model,CoinIndexedVector * rowArray,
00189                    int iColumn) const 
00190 {
00191   std::cerr<<"unpack not supported - ClpDummyMatrix"<<std::endl;
00192   abort();
00193 }
00194 /* Unpacks a column into an CoinIndexedvector
00195 ** in packed foramt
00196 Note that model is NOT const.  Bounds and objective could
00197 be modified if doing column generation (just for this variable) */
00198 void 
00199 ClpDummyMatrix::unpackPacked(ClpSimplex * model,
00200                             CoinIndexedVector * rowArray,
00201                             int iColumn) const
00202 {
00203   std::cerr<<"unpackPacked not supported - ClpDummyMatrix"<<std::endl;
00204   abort();
00205 }
00206 /* Adds multiple of a column into an CoinIndexedvector
00207       You can use quickAdd to add to vector */
00208 void 
00209 ClpDummyMatrix::add(const ClpSimplex * model,CoinIndexedVector * rowArray,
00210                    int iColumn, double multiplier) const 
00211 {
00212   std::cerr<<"add not supported - ClpDummyMatrix"<<std::endl;
00213   abort();
00214 }
00215 
00216 // Return a complete CoinPackedMatrix
00217 CoinPackedMatrix * 
00218 ClpDummyMatrix::getPackedMatrix() const 
00219 {
00220   std::cerr<<"getPackedMatrix not supported - ClpDummyMatrix"<<std::endl;
00221   abort();
00222   return NULL;
00223 }
00224 /* A vector containing the elements in the packed matrix. Note that there
00225    might be gaps in this list, entries that do not belong to any
00226    major-dimension vector. To get the actual elements one should look at
00227    this vector together with vectorStarts and vectorLengths. */
00228 const double * 
00229 ClpDummyMatrix::getElements() const 
00230 {
00231   std::cerr<<"getElements not supported - ClpDummyMatrix"<<std::endl;
00232   abort();
00233   return NULL;
00234 }
00235 
00236 const CoinBigIndex * 
00237 ClpDummyMatrix::getVectorStarts() const 
00238 {
00239   std::cerr<<"getVectorStarts not supported - ClpDummyMatrix"<<std::endl;
00240   abort();
00241   return NULL;
00242 }
00243 /* The lengths of the major-dimension vectors. */
00244 const int * 
00245 ClpDummyMatrix::getVectorLengths() const
00246 {
00247   std::cerr<<"get VectorLengths not supported - ClpDummyMatrix"<<std::endl;
00248   abort();
00249   return NULL;
00250 }
00251 /* Delete the columns whose indices are listed in <code>indDel</code>. */
00252 void ClpDummyMatrix::deleteCols(const int numDel, const int * indDel) 
00253 {
00254   std::cerr<<"deleteCols not supported - ClpDummyMatrix"<<std::endl;
00255   abort();
00256 }
00257 /* Delete the rows whose indices are listed in <code>indDel</code>. */
00258 void ClpDummyMatrix::deleteRows(const int numDel, const int * indDel) 
00259 {
00260   std::cerr<<"deleteRows not supported - ClpDummyMatrix"<<std::endl;
00261   abort();
00262 }
00263 const int *
00264 ClpDummyMatrix::getIndices() const
00265 {
00266   std::cerr<<"getIndices not supported - ClpDummyMatrix"<<std::endl;
00267   abort();
00268   return NULL;
00269 }

Generated on Wed Dec 3 14:37:25 2003 for CLP by doxygen 1.3.5