Changeset 762


Ignore:
Timestamp:
Aug 18, 2007 5:55:59 PM (12 years ago)
Author:
tkr
Message:

Fixing dependence of libCbc on libCbcSolver

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/BSP/trunk/Cbc/src/CbcSolver.cpp

    r754 r762  
    1818#include "CoinMpsIO.hpp"
    1919#include "CoinModel.hpp"
     20#include "CoinRead.hpp"
    2021
    2122#include "ClpFactorization.hpp"
     
    176177}
    177178
    178 int CbcOrClpRead_mode=1;
    179 FILE * CbcOrClpReadCommand=stdin;
     179int ReadMode=1;
     180FILE * ReadCommand=stdin;
    180181static bool noPrinting=false;
    181182static int * analyze(OsiClpSolverInterface * solverMod, int & numberChanged, double & increment,
     
    12331234  totalTime=0.0;
    12341235  currentBranchModel = NULL;
    1235   CbcOrClpRead_mode=1;
    1236   CbcOrClpReadCommand=stdin;
     1236  ReadMode=1;
     1237  ReadCommand=stdin;
    12371238  noPrinting=false;
    12381239  int returnCode = CbcMain1(n+2,const_cast<const char **>(argv),model);
     
    15271528      if (returnCode)
    15281529        return returnCode;
    1529       CbcOrClpRead_mode=2; // so will start with parameters
     1530      ReadMode=2; // so will start with parameters
    15301531      // see if log in list (including environment)
    15311532      for (int i=1;i<info.numberArguments;i++) {
     
    18541855    while (1) {
    18551856      // next command
    1856       field=CoinReadGetCommand(argc,argv);
     1857      field=CoinReadGetCommand(argc,argv,ReadCommand,ReadMode);
    18571858      // adjust field if has odd trailing characters
    18581859      char temp [200];
     
    20502051        } else if (type<101) {
    20512052          // get next field as double
    2052           double value = CoinReadGetDoubleField(argc,argv,&valid);
     2053          double value = CoinReadGetDoubleField(argc,argv,&valid,ReadCommand,
     2054                                                ReadMode);
    20532055          if (!valid) {
    20542056            if (type<51) {
     
    20842086        } else if (type<201) {
    20852087          // get next field as int
    2086           int value = CoinReadGetIntField(argc,argv,&valid);
     2088          int value = CoinReadGetIntField(argc,argv,&valid,ReadCommand,
     2089                                          ReadMode);
    20872090          if (!valid) {
    20882091            if (type<151) {
     
    21322135        } else if (type<301) {
    21332136          // one of several strings
    2134           std::string value = CoinReadGetString(argc,argv);
     2137          std::string value = CoinReadGetString(argc,argv,ReadCommand,
     2138                                                ReadMode);
    21352139          int action = parameters[iParam].parameterOption(value);
    21362140          if (action<0) {
     
    50235027              //babModel=NULL;
    50245028              // get next field
    5025               field = CoinReadGetString(argc,argv);
     5029              field = CoinReadGetString(argc,argv,ReadCommand,ReadMode);
    50265030              if (field=="$") {
    50275031                field = parameters[iParam].stringValue();
     
    51395143                  time1=time2;
    51405144                  // Go to canned file if just input file
    5141                   if (CbcOrClpRead_mode==2&&argc==2) {
     5145                  if (ReadMode==2&&argc==2) {
    51425146                    // only if ends .mps
    51435147                    char * find = (char *)strstr(fileName.c_str(),".mps");
     
    51465150                      FILE *fp=fopen(fileName.c_str(),"r");
    51475151                      if (fp) {
    5148                         CbcOrClpReadCommand=fp; // Read from that file
    5149                         CbcOrClpRead_mode=-1;
     5152                        ReadCommand=fp; // Read from that file
     5153                        ReadMode=-1;
    51505154                      }
    51515155                    }
     
    51635167            {
    51645168              // get next field
    5165               field = CoinReadGetString(argc,argv);
     5169              field = CoinReadGetString(argc,argv,ReadCommand,ReadMode);
    51665170              if (field=="$") {
    51675171                field = parameters[iParam].stringValue();
     
    52455249            if (goodModel) {
    52465250              // get next field
    5247               field = CoinReadGetString(argc,argv);
     5251              field = CoinReadGetString(argc,argv,ReadCommand,ReadMode);
    52485252              if (field=="$") {
    52495253                field = parameters[iParam].stringValue();
     
    53865390            if (goodModel) {
    53875391              // get next field
    5388               field = CoinReadGetString(argc,argv);
     5392              field = CoinReadGetString(argc,argv,ReadCommand,ReadMode);
    53895393              if (field=="$") {
    53905394                field = parameters[iParam].stringValue();
     
    54415445            if (goodModel) {
    54425446              // get next field
    5443               field = CoinReadGetString(argc,argv);
     5447              field = CoinReadGetString(argc,argv,ReadCommand,ReadMode);
    54445448              if (field=="$") {
    54455449                field = parameters[iParam].stringValue();
     
    57145718              debugValues=NULL;
    57155719              // get next field
    5716               field = CoinReadGetString(argc,argv);
     5720              field = CoinReadGetString(argc,argv,ReadCommand,ReadMode);
    57175721              if (field=="$") {
    57185722                field = parameters[iParam].stringValue();
     
    57685772            // get next field
    57695773            {
    5770               std::string name = CoinReadGetString(argc,argv);
     5774              std::string name = CoinReadGetString(argc,argv,ReadCommand,
     5775                                                   ReadMode);
    57715776              if (name!="EOL") {
    57725777                parameters[iParam].setStringValue(name);
     
    57805785            if (goodModel) {
    57815786              // get next field
    5782               field = CoinReadGetString(argc,argv);
     5787              field = CoinReadGetString(argc,argv,ReadCommand,ReadMode);
    57835788              if (field=="$") {
    57845789                field = parameters[iParam].stringValue();
     
    58275832            {
    58285833              // get next field
    5829               field = CoinReadGetString(argc,argv);
     5834              field = CoinReadGetString(argc,argv,ReadCommand,ReadMode);
    58305835              if (field=="$") {
    58315836                field = parameters[iParam].stringValue();
     
    59055910            {
    59065911              // get next field
    5907               field = CoinReadGetString(argc,argv);
     5912              field = CoinReadGetString(argc,argv,ReadCommand,ReadMode);
    59085913              if (field=="$") {
    59095914                field = parameters[iParam].stringValue();
     
    59855990          case DIRECTORY:
    59865991            {
    5987               std::string name = CoinReadGetString(argc,argv);
     5992              std::string name = CoinReadGetString(argc,argv,ReadCommand,
     5993                                                   ReadMode);
    59885994              if (name!="EOL") {
    59895995                int length=name.length();
     
    60006006          case DIRSAMPLE:
    60016007            {
    6002               std::string name = CoinReadGetString(argc,argv);
     6008              std::string name = CoinReadGetString(argc,argv,ReadCommand,
     6009                                                   ReadMode);
    60036010              if (name!="EOL") {
    60046011                int length=name.length();
     
    60156022          case DIRNETLIB:
    60166023            {
    6017               std::string name = CoinReadGetString(argc,argv);
     6024              std::string name = CoinReadGetString(argc,argv,ReadCommand,
     6025                                                   ReadMode);
    60186026              if (name!="EOL") {
    60196027                int length=name.length();
     
    60306038          case DIRMIPLIB:
    60316039            {
    6032               std::string name = CoinReadGetString(argc,argv);
     6040              std::string name = CoinReadGetString(argc,argv,ReadCommand,
     6041                                                   ReadMode);
    60336042              if (name!="EOL") {
    60346043                int length=name.length();
     
    60446053            break;
    60456054          case STDIN:
    6046             CbcOrClpRead_mode=-1;
     6055            ReadMode=-1;
    60476056            break;
    60486057          case NETLIB_DUAL:
     
    60656074            if (goodModel) {
    60666075              // get bound
    6067               double value = CoinReadGetDoubleField(argc,argv,&valid);
     6076              double value = CoinReadGetDoubleField(argc,argv,&valid,
     6077                                                    ReadCommand,ReadMode);
    60686078              if (!valid) {
    60696079                std::cout<<"Setting "<<parameters[iParam].name()<<
     
    62286238            if (goodModel) {
    62296239              // get next field
    6230               field = CoinReadGetString(argc,argv);
     6240              field = CoinReadGetString(argc,argv,ReadCommand,ReadMode);
    62316241              if (field=="$") {
    62326242                field = parameters[iParam].stringValue();
     
    64986508            if (goodModel) {
    64996509              // get next field
    6500               field = CoinReadGetString(argc,argv);
     6510              field = CoinReadGetString(argc,argv,ReadCommand,ReadMode);
    65016511              if (field=="$") {
    65026512                field = parameters[iParam].stringValue();
Note: See TracChangeset for help on using the changeset viewer.