Ignore:
Timestamp:
Oct 1, 2004 4:01:01 PM (16 years ago)
Author:
forrest
Message:

Trying to make faster

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ClpFactorization.cpp

    r454 r461  
    176176        int numberColumnBasic = numberBasic-numberRowBasic;
    177177
    178         numberElements +=matrix->fillBasis(model,
     178        numberElements +=matrix->countBasis(model,
    179179                                           pivotTemp+numberRowBasic,
    180180                                           numberRowBasic,
    181                                            numberColumnBasic,
    182                                            NULL,NULL,NULL);
     181                                            numberColumnBasic);
    183182        // and recompute as network side say different
    184183        if (model->numberIterations())
     
    196195#endif
    197196        //fill
    198         //copy
    199         numberElements=numberRowBasic;
     197        // Fill in counts so we can skip part of preProcess
     198        CoinZeroN ( numberInRow_, numberRows_ + 1 );
     199        CoinZeroN ( numberInColumn_, maximumColumnsExtra_ + 1 );
    200200        for (i=0;i<numberRowBasic;i++) {
    201201          int iRow = pivotTemp[i];
    202202          indexRowU_[i]=iRow;
    203           indexColumnU_[i]=i;
     203          startColumnU_[i]=i;
    204204          elementU_[i]=slackValue_;
    205         }
     205          numberInRow_[iRow]=1;
     206          numberInColumn_[i]=1;
     207        }
     208        startColumnU_[numberRowBasic]=numberRowBasic;
    206209        // can change for gub so redo
    207210        numberColumnBasic = numberBasic-numberRowBasic;
    208         numberElements +=matrix->fillBasis(model,
    209                                            pivotTemp+numberRowBasic,
    210                                            numberRowBasic,
    211                                            numberColumnBasic,
    212                                            indexRowU_+numberElements,
    213                                            indexColumnU_+numberElements,
    214                                            elementU_+numberElements);
     211        matrix->fillBasis(model,
     212                          pivotTemp+numberRowBasic,
     213                          numberColumnBasic,
     214                          indexRowU_,
     215                          startColumnU_+numberRowBasic,
     216                          numberInRow_,
     217                          numberInColumn_+numberRowBasic,
     218                          elementU_);
    215219#if 0
    216220        {
     
    223227        // recompute number basic
    224228        numberBasic = numberRowBasic+numberColumnBasic;
     229        numberElements = startColumnU_[numberBasic-1]
     230          +numberInColumn_[numberBasic-1];
    225231        lengthU_ = numberElements;
    226 
    227         preProcess ( 0 );
     232        //CoinFillN(indexColumnU_,numberElements,-1);
     233        preProcess ( 2 );
    228234        factor (  );
    229235        if (status_==-99) {
Note: See TracChangeset for help on using the changeset viewer.