00001
00002
00003
00004 #include "CoinPragma.hpp"
00005
00006 #include <iostream>
00007
00008 #include "ClpCholeskyBase.hpp"
00009 #include "ClpInterior.hpp"
00010
00011
00012
00013
00014
00015
00016
00017
00018 ClpCholeskyBase::ClpCholeskyBase () :
00019 type_(-1),
00020 pivotTolerance_(1.0e-14),
00021 zeroTolerance_(1.0e-17),
00022 choleskyCondition_(0.0),
00023 model_(NULL),
00024 numberTrials_(),
00025 numberRows_(0),
00026 status_(0),
00027 rowsDropped_(NULL),
00028 permuteIn_(NULL),
00029 permuteOut_(NULL),
00030 numberRowsDropped_(0)
00031 {
00032
00033 }
00034
00035
00036
00037
00038 ClpCholeskyBase::ClpCholeskyBase (const ClpCholeskyBase & rhs) :
00039 type_(rhs.type_),
00040 pivotTolerance_(rhs.pivotTolerance_),
00041 zeroTolerance_(rhs.zeroTolerance_),
00042 choleskyCondition_(rhs.choleskyCondition_),
00043 model_(rhs.model_),
00044 numberTrials_(rhs.numberTrials_),
00045 numberRows_(rhs.numberRows_),
00046 status_(rhs.status_),
00047 numberRowsDropped_(rhs.numberRowsDropped_)
00048 {
00049 rowsDropped_ = ClpCopyOfArray(rhs.rowsDropped_,numberRows_);
00050 permuteIn_ = ClpCopyOfArray(rhs.permuteIn_,numberRows_);
00051 permuteOut_ = ClpCopyOfArray(rhs.permuteOut_,numberRows_);
00052 }
00053
00054
00055
00056
00057 ClpCholeskyBase::~ClpCholeskyBase ()
00058 {
00059 delete [] rowsDropped_;
00060 delete [] permuteIn_;
00061 delete [] permuteOut_;
00062 }
00063
00064
00065
00066
00067 ClpCholeskyBase &
00068 ClpCholeskyBase::operator=(const ClpCholeskyBase& rhs)
00069 {
00070 if (this != &rhs) {
00071 type_ = rhs.type_;
00072 pivotTolerance_ = rhs.pivotTolerance_;
00073 zeroTolerance_ = rhs.zeroTolerance_;
00074 choleskyCondition_ = rhs.choleskyCondition_;
00075 model_ = rhs.model_;
00076 numberTrials_ = rhs.numberTrials_;
00077 numberRows_ = rhs.numberRows_;
00078 status_ = rhs.status_;
00079 numberRowsDropped_ = rhs.numberRowsDropped_;
00080 delete [] rowsDropped_;
00081 delete [] permuteIn_;
00082 delete [] permuteOut_;
00083 rowsDropped_ = ClpCopyOfArray(rhs.rowsDropped_,numberRows_);
00084 permuteIn_ = ClpCopyOfArray(rhs.permuteIn_,numberRows_);
00085 permuteOut_ = ClpCopyOfArray(rhs.permuteOut_,numberRows_);
00086 }
00087 return *this;
00088 }
00089
00090 void
00091 ClpCholeskyBase::resetRowsDropped()
00092 {
00093 numberRowsDropped_=0;
00094 memset(rowsDropped_,0,numberRows_);
00095 }