... | ... |
@@ -1374,44 +1374,44 @@ |
1374 | 1374 |
///\brief Set the upper bound of several columns |
1375 | 1375 |
///(i.e variables) at once |
1376 | 1376 |
/// |
1377 | 1377 |
///This magic function takes a container as its argument |
1378 | 1378 |
///and applies the function on all of its elements. |
1379 | 1379 |
///The upper bound of a variable (column) has to be given by an |
1380 | 1380 |
///extended number of type Value, i.e. a finite number of type |
1381 | 1381 |
///Value or \ref INF. |
1382 | 1382 |
#ifdef DOXYGEN |
1383 | 1383 |
template<class T> |
1384 | 1384 |
void colUpperBound(T &t, Value value) { return 0;} |
1385 | 1385 |
#else |
1386 |
template<class T> |
|
1387 |
typename enable_if<typename T::value_type::LpCol,void>::type |
|
1388 |
colUpperBound(T &t, Value value,dummy<0> = 0) { |
|
1389 |
for(typename T::iterator i=t.begin();i!=t.end();++i) { |
|
1386 |
template<class T1> |
|
1387 |
typename enable_if<typename T1::value_type::LpCol,void>::type |
|
1388 |
colUpperBound(T1 &t, Value value,dummy<0> = 0) { |
|
1389 |
for(typename T1::iterator i=t.begin();i!=t.end();++i) { |
|
1390 | 1390 |
colUpperBound(*i, value); |
1391 | 1391 |
} |
1392 | 1392 |
} |
1393 |
template<class T> |
|
1394 |
typename enable_if<typename T::value_type::second_type::LpCol, |
|
1393 |
template<class T1> |
|
1394 |
typename enable_if<typename T1::value_type::second_type::LpCol, |
|
1395 | 1395 |
void>::type |
1396 |
colUpperBound(T &t, Value value,dummy<1> = 1) { |
|
1397 |
for(typename T::iterator i=t.begin();i!=t.end();++i) { |
|
1396 |
colUpperBound(T1 &t, Value value,dummy<1> = 1) { |
|
1397 |
for(typename T1::iterator i=t.begin();i!=t.end();++i) { |
|
1398 | 1398 |
colUpperBound(i->second, value); |
1399 | 1399 |
} |
1400 | 1400 |
} |
1401 |
template<class T> |
|
1402 |
typename enable_if<typename T::MapIt::Value::LpCol, |
|
1401 |
template<class T1> |
|
1402 |
typename enable_if<typename T1::MapIt::Value::LpCol, |
|
1403 | 1403 |
void>::type |
1404 |
colUpperBound(T &t, Value value,dummy<2> = 2) { |
|
1405 |
for(typename T::MapIt i(t); i!=INVALID; ++i){ |
|
1404 |
colUpperBound(T1 &t, Value value,dummy<2> = 2) { |
|
1405 |
for(typename T1::MapIt i(t); i!=INVALID; ++i){ |
|
1406 | 1406 |
colUpperBound(*i, value); |
1407 | 1407 |
} |
1408 | 1408 |
} |
1409 | 1409 |
#endif |
1410 | 1410 |
|
1411 | 1411 |
/// Set the lower and the upper bounds of a column (i.e a variable) |
1412 | 1412 |
|
1413 | 1413 |
/// The lower and the upper bounds of |
1414 | 1414 |
/// a variable (column) have to be given by an |
1415 | 1415 |
/// extended number of type Value, i.e. a finite number of type |
1416 | 1416 |
/// Value, -\ref INF or \ref INF. |
1417 | 1417 |
void colBounds(Col c, Value lower, Value upper) { |
... | ... |
@@ -1423,42 +1423,42 @@ |
1423 | 1423 |
///(i.e variables) at once |
1424 | 1424 |
/// |
1425 | 1425 |
///This magic function takes a container as its argument |
1426 | 1426 |
///and applies the function on all of its elements. |
1427 | 1427 |
/// The lower and the upper bounds of |
1428 | 1428 |
/// a variable (column) have to be given by an |
1429 | 1429 |
/// extended number of type Value, i.e. a finite number of type |
1430 | 1430 |
/// Value, -\ref INF or \ref INF. |
1431 | 1431 |
#ifdef DOXYGEN |
1432 | 1432 |
template<class T> |
1433 | 1433 |
void colBounds(T &t, Value lower, Value upper) { return 0;} |
1434 | 1434 |
#else |
1435 |
template<class T> |
|
1436 |
typename enable_if<typename T::value_type::LpCol,void>::type |
|
1437 |
colBounds(T &t, Value lower, Value upper,dummy<0> = 0) { |
|
1438 |
for(typename T::iterator i=t.begin();i!=t.end();++i) { |
|
1435 |
template<class T2> |
|
1436 |
typename enable_if<typename T2::value_type::LpCol,void>::type |
|
1437 |
colBounds(T2 &t, Value lower, Value upper,dummy<0> = 0) { |
|
1438 |
for(typename T2::iterator i=t.begin();i!=t.end();++i) { |
|
1439 | 1439 |
colBounds(*i, lower, upper); |
1440 | 1440 |
} |
1441 | 1441 |
} |
1442 |
template<class T> |
|
1443 |
typename enable_if<typename T::value_type::second_type::LpCol, void>::type |
|
1444 |
colBounds(T &t, Value lower, Value upper,dummy<1> = 1) { |
|
1445 |
for(typename T::iterator i=t.begin();i!=t.end();++i) { |
|
1442 |
template<class T2> |
|
1443 |
typename enable_if<typename T2::value_type::second_type::LpCol, void>::type |
|
1444 |
colBounds(T2 &t, Value lower, Value upper,dummy<1> = 1) { |
|
1445 |
for(typename T2::iterator i=t.begin();i!=t.end();++i) { |
|
1446 | 1446 |
colBounds(i->second, lower, upper); |
1447 | 1447 |
} |
1448 | 1448 |
} |
1449 |
template<class T> |
|
1450 |
typename enable_if<typename T::MapIt::Value::LpCol, void>::type |
|
1451 |
colBounds(T &t, Value lower, Value upper,dummy<2> = 2) { |
|
1452 |
for(typename T::MapIt i(t); i!=INVALID; ++i){ |
|
1449 |
template<class T2> |
|
1450 |
typename enable_if<typename T2::MapIt::Value::LpCol, void>::type |
|
1451 |
colBounds(T2 &t, Value lower, Value upper,dummy<2> = 2) { |
|
1452 |
for(typename T2::MapIt i(t); i!=INVALID; ++i){ |
|
1453 | 1453 |
colBounds(*i, lower, upper); |
1454 | 1454 |
} |
1455 | 1455 |
} |
1456 | 1456 |
#endif |
1457 | 1457 |
|
1458 | 1458 |
/// Set the lower bound of a row (i.e a constraint) |
1459 | 1459 |
|
1460 | 1460 |
/// The lower bound of a constraint (row) has to be given by an |
1461 | 1461 |
/// extended number of type Value, i.e. a finite number of type |
1462 | 1462 |
/// Value or -\ref INF. |
1463 | 1463 |
void rowLowerBound(Row r, Value value) { |
1464 | 1464 |
_setRowLowerBound(rows(id(r)),value); |
0 comments (0 inline)