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

ClpCholeskyBase.cpp

00001 // Copyright (C) 2002, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 
00004 #include "CoinPragma.hpp"
00005 
00006 #include <iostream>
00007 
00008 #include "ClpCholeskyBase.hpp"
00009 #include "ClpInterior.hpp"
00010 
00011 //#############################################################################
00012 // Constructors / Destructor / Assignment
00013 //#############################################################################
00014 
00015 //-------------------------------------------------------------------
00016 // Default Constructor 
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 // Copy constructor 
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 // Destructor 
00056 //-------------------------------------------------------------------
00057 ClpCholeskyBase::~ClpCholeskyBase ()
00058 {
00059   delete [] rowsDropped_;
00060   delete [] permuteIn_;
00061   delete [] permuteOut_;
00062 }
00063 
00064 //----------------------------------------------------------------
00065 // Assignment operator 
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 // reset numberRowsDropped and rowsDropped.
00090 void 
00091 ClpCholeskyBase::resetRowsDropped()
00092 {
00093   numberRowsDropped_=0;
00094   memset(rowsDropped_,0,numberRows_);
00095 }

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