|
SoPlex Doxygen Documentation
|
Go to the documentation of this file.
25 METHOD( "SPxLP::nNzos()" );
27 for( int i = 0; i < nCols(); ++i )
34 METHOD( "SPxLP::minAbsNzo()" );
38 for( int i = 0; i < nCols(); ++i )
52 METHOD( "SPxLP::maxAbsNzo()" );
56 for( int i = 0; i < nCols(); ++i )
70 METHOD( "SPxLP::getRow()" );
78 METHOD( "SPxLP::getRows()" );
80 for( int i = start; i <= end; i++)
86 METHOD( "SPxLP::getCol()" );
95 METHOD( "SPxLP::getCols()" );
97 for( int i = start; i <= end; i++)
103 METHOD( "SPxLP::getObj()" );
111 METHOD( "SPxLP::doAddRow()" );
113 int oldColNumber = nCols();
119 for ( int j = vec. size() - 1; j >= 0; --j)
122 int i = vec. index(j);
126 for ( int k = nCols(); k <= i; ++k)
141 METHOD( "SPxLP::doAddCol()" );
143 int oldRowNumber = nRows();
150 for ( int j = vec. size() - 1; j >= 0; --j)
153 int i = vec. index(j);
157 for ( int k = nRows(); k <= i; ++k)
172 METHOD( "SPxLP::added2Set()" );
182 int* more = moreArray. get_ptr();
184 for (i = p_set. num() - 1; i >= 0; --i)
187 for (tot = 0, i = p_add. num() - n, end = p_add. num(); i < end; ++i)
191 for (j = vec. size() - 1; j >= 0; --j)
192 more[ vec. index(j) ]++;
198 for (i = p_set. num() - 1; i >= 0; --i)
201 p_set. xtend(p_set[i], j + more[i]);
202 p_set[i].set_size( j + more[i] );
206 for (i = p_add. num() - n; i < p_add. num(); ++i)
209 for (j = vec. size() - 1; j >= 0; --j)
211 int k = vec. index(j);
214 l_xtend. index(m) = i;
222 METHOD( "SPxLP::doAddRows()" );
223 int i, j, k, ii, idx;
226 int oldRowNumber = nRows();
227 int oldColNumber = nCols();
235 for (i = nCols() - 1; i >= 0; --i)
237 for (i = p_set. num() - 1; i >= 0; --i)
240 for (j = vec. size() - 1; j >= 0; --j)
247 for (k = nCols(); k <= ii; ++k)
254 assert(ii < nCols());
260 for (i = nCols() - 1; i >= 0; --i)
274 for (i = nRows() - 1; i >= oldRowNumber; --i)
277 for (j = vec. size() - 1; j >= 0; --j)
281 idx = col-> size() - newCols[k];
282 assert(newCols[k] > 0);
290 for( i = 0; i < nCols(); ++i )
291 assert( newCols[i] == 0 );
295 assert( p_set. num() == nRows() - oldRowNumber );
302 METHOD( "SPxLP::doAddCols()" );
304 int oldColNumber = nCols();
305 int oldRowNumber = nRows();
314 for (i = nRows() - 1; i >= 0; --i)
316 for (i = p_set. num() - 1; i >= 0; --i)
319 for (j = vec. size() - 1; j >= 0; --j)
321 int l = vec. index(j);
326 for ( int k = nRows(); k <= l; ++k)
340 for( i = 0; i < nRows(); ++i )
351 for (i = oldColNumber; i < nCols(); ++i)
355 for (j = vec. size() - 1; j >= 0; --j)
357 int k = vec. index(j);
359 int idx = row. size() - newRows[k];
360 assert(newRows[k] > 0);
367 for( i = 0; i < nRows(); ++i )
368 assert( newRows[i] == 0 );
372 assert( p_set. num() == nCols() - oldColNumber );
379 METHOD( "SPxLP::addRows()" );
382 for ( int j = 0; i < nRows(); ++i, ++j)
388 METHOD( "SPxLP::addCols()" );
391 for ( int j = 0; i < nCols(); ++i, ++j)
397 METHOD( "SPxLP::doRemoveRow()" );
402 for (i = vec. size() - 1; i >= 0; --i)
408 int idx = nRows() - 1;
412 for (i = l_vec. size() - 1; i >= 0; --i)
424 METHOD( "SPxLP::doRemoveCol()" );
429 for (i = vec. size() - 1; i >= 0; --i)
435 int idx = nCols() - 1;
439 for (i = l_vec. size() - 1; i >= 0; --i)
451 METHOD( "SPxLP::doRemoveRows()" );
455 for ( int i = 0; i < j; ++i)
458 for ( int k = vec. size() - 1; k >= 0; --k)
460 int idx = vec. index(k);
464 vec. index(k) = perm[idx];
471 METHOD( "SPxLP::doRemoveCols()" );
475 for ( int i = 0; i < j; ++i)
478 for ( int k = vec. size() - 1; k >= 0; --k)
480 int idx = vec. index(k);
484 vec. index(k) = perm[idx];
491 METHOD( "SPxLP::removeRows()" );
498 for ( int i = nRows() - 1; i >= 0; --i)
507 METHOD( "SPxLP::removeRows()" );
514 for ( int i = nRows() - 1; i >= 0; --i)
523 METHOD( "SPxLP::removeRowRange()" );
526 int i = end - start + 1;
534 for (i = 0; i < start; ++i)
536 for (; i <= end; ++i)
538 for (; i < nRows(); ++i)
545 METHOD( "SPxLP::removeCols()" );
552 for ( int i = nCols() - 1; i >= 0; --i)
561 METHOD( "SPxLP::removeCols()" );
568 for ( int i = nCols() - 1; i >= 0; --i)
577 METHOD( "SPxLP::removeColRange()" );
580 int i = end - start + 1;
588 for (i = 0; i < start; ++i)
590 for (; i <= end; ++i)
592 for (; i < nCols(); ++i)
599 METHOD( "SPxLP::clear()" );
607 METHOD( "SPxLP::changeObj()" );
616 METHOD( "SPxLP::changeObj()" );
623 METHOD( "SPxLP::changeLower()" );
624 assert( lower().dim() == newLower. dim());
631 METHOD( "SPxLP::changeLower()" );
638 METHOD( "SPxLP::changeUpper()" );
639 assert( upper().dim() == newUpper. dim());
646 METHOD( "SPxLP::changeUpper()" );
653 METHOD( "SPxLP::changeLhs()" );
654 assert( lhs().dim() == newLhs. dim());
661 METHOD( "SPxLP::changeBounds()" );
669 METHOD( "SPxLP::changeBounds()" );
677 METHOD( "SPxLP::changeLhs()" );
684 METHOD( "SPxLP::changeRhs()" );
685 assert( rhs().dim() == newRhs. dim());
692 METHOD( "SPxLP::changeRhs()" );
699 METHOD( "SPxLP::changeRange()" );
707 METHOD( "SPxLP::changeRange()" );
716 METHOD( "SPxLP::changeRow()" );
719 for (j = row. size() - 1; j >= 0; --j)
729 for (j = newrow.size() - 1; j >= 0; --j)
731 int idx = newrow. index(j);
732 Real val = newrow.value(j);
741 METHOD( "SPxLP::changeCol()" );
744 for (j = col. size() - 1; j >= 0; --j)
755 for (j = newcol.size() - 1; j >= 0; --j)
757 int idx = newcol. index(j);
758 Real val = newcol.value(j);
767 METHOD( "SPxLP::changeElement()" );
784 else if (row. number(j) >= 0)
796 METHOD( "SPxLP::computePrimalActivity()" );
806 for( int c = 0; c < nCols(); c++ )
818 METHOD( "SPxLP::computeDualActivity()" );
828 for( int r = 0; r < nRows(); r++ )
838 #ifdef ENABLE_CONSISTENCY_CHECKS
839 METHOD( "SPxLP::isConsistent()" );
842 for (i = nCols() - 1; i >= 0; --i)
845 for (j = v. size() - 1; j >= 0; --j)
856 for (i = nRows() - 1; i >= 0; --i)
859 for (j = v. size() - 1; j >= 0; --j)
|