/home/coin/SVN-release/OS-2.4.0/Bonmin/src/Interfaces/BonStartPointReader.cpp

Go to the documentation of this file.
00001 // (C) Copyright Carnegie Mellon University 2005
00002 // All Rights Reserved.
00003 // This code is published under the Common Public License.
00004 //
00005 // Authors :
00006 // Pierre Bonami, Carnegie Mellon University,
00007 //
00008 // Date : 26/05/2005
00009 #include "BonStartPointReader.hpp"
00010 
00011 
00012 namespace Bonmin {
00013 
00014   bool StartPointReader::readFile()
00015   {
00016     std::ifstream inFile(fileName_.c_str());
00017     if(!inFile.is_open()) {
00018       std::cerr<<"Error in opening initial point file";
00019       return false;
00020     }
00021     int numPrimals;
00022     int numDuals;
00023     inFile>>numPrimals>>numDuals;
00024     gutsOfDestructor();
00025     primals_ = new double [numPrimals];
00026     duals_ = new double[numDuals];
00027     for(int i = 0; i < numPrimals ; i++) {
00028       inFile>>primals_[i];
00029     }
00030     for(int i = 0; i < numDuals ; i++) {
00031       inFile>>duals_[i];
00032     }
00033     return true;
00034   }
00035 
00036   bool StartPointReader::readAndApply(OsiTMINLPInterface * solver)
00037   {
00038     readFile();
00039     solver->solver()->enableWarmStart();
00040     if(primals_)
00041       solver->setColSolution(primals_);
00042     else {
00043       std::cerr<<"No warm start info ???"<<std::endl;
00044       return 0;
00045     }
00046     if(duals_)
00047       solver->setRowPrice(duals_);
00048     else {
00049       std::cerr<<"No warm start info ???"<<std::endl;
00050       return 0;
00051     }
00052     return 1;
00053   }
00054 }

Generated on Thu Sep 22 03:05:55 2011 by  doxygen 1.4.7