- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# /home/coin/SVN-release/Osi-0.98.1/Clp/src/ClpNonLinearCost.hpp File Reference

`#include "CoinPragma.hpp"`

Include dependency graph for ClpNonLinearCost.hpp:

Go to the source code of this file.

## Classes
class | ClpNonLinearCost
## Defines
#define | CLP_BELOW_LOWER 0
| Trivial class to deal with non linear costs.
#define | CLP_FEASIBLE 1
#define | CLP_ABOVE_UPPER 2
#define | CLP_SAME 4
#define | CLP_METHOD1 ((method_&1)!=0)
#define | CLP_METHOD2 ((method_&2)!=0)
## Functions
int | originalStatus (unsigned char status)
int | currentStatus (unsigned char status)
void | setOriginalStatus (unsigned char &status, int value)
void | setCurrentStatus (unsigned char &status, int value)
void | setInitialStatus (unsigned char &status)
void | setSameStatus (unsigned char &status)

## Define Documentation

#define CLP_BELOW_LOWER 0

Trivial class to deal with non linear costs.

I don't make any explicit assumptions about convexity but I am sure I do make implicit ones.

One interesting idea for normal LP's will be to allow non-basic variables to come into basis as infeasible i.e. if variable at lower bound has very large positive reduced cost (when problem is infeasible) could it reduce overall problem infeasibility more by bringing it into basis below its lower bound.

Another feature would be to automatically discover when problems are convex piecewise linear and re-formulate to use non-linear. I did some work on this many years ago on "grade" problems, but while it improved primal interior point algorithms were much better for that particular problem.

Definition at line 35 of file ClpNonLinearCost.hpp.

Referenced by ClpNonLinearCost::changeInCost().

#define CLP_FEASIBLE 1

Definition at line 36 of file ClpNonLinearCost.hpp.

Referenced by ClpNonLinearCost::changeInCost(), and setInitialStatus().

#define CLP_ABOVE_UPPER 2

Definition at line 37 of file ClpNonLinearCost.hpp.

Referenced by ClpNonLinearCost::changeInCost().

#define CLP_SAME 4

Definition at line 38 of file ClpNonLinearCost.hpp.

Referenced by ClpNonLinearCost::changeInCost(), setInitialStatus(), and setSameStatus().

#define CLP_METHOD1 ((method_&1)!=0)

Definition at line 54 of file ClpNonLinearCost.hpp.

Referenced by ClpNonLinearCost::changeDownInCost(), ClpNonLinearCost::changeInCost(), and ClpNonLinearCost::changeUpInCost().

#define CLP_METHOD2 ((method_&2)!=0)

Definition at line 55 of file ClpNonLinearCost.hpp.

Referenced by ClpNonLinearCost::changeDownInCost(), ClpNonLinearCost::changeInCost(), and ClpNonLinearCost::changeUpInCost().

## Function Documentation

int originalStatus | ( | unsigned char | status | ) | `[inline]`

Definition at line 39 of file ClpNonLinearCost.hpp.

Referenced by ClpNonLinearCost::changeInCost().

int currentStatus | ( | unsigned char | status | ) | `[inline]`

Definition at line 41 of file ClpNonLinearCost.hpp.

Referenced by ClpNonLinearCost::changeInCost().

void setOriginalStatus | ( | unsigned char & | status,
|  | int | value |
| ) |  |  | `[inline]`

Definition at line 43 of file ClpNonLinearCost.hpp.

void setCurrentStatus | ( | unsigned char & | status,
|  | int | value |
| ) |  |  | `[inline]`

Definition at line 45 of file ClpNonLinearCost.hpp.

Referenced by ClpNonLinearCost::changeInCost().

void setInitialStatus | ( | unsigned char & | status | ) | `[inline]`

Definition at line 47 of file ClpNonLinearCost.hpp.

References CLP_FEASIBLE, and CLP_SAME.

void setSameStatus | ( | unsigned char & | status | ) | `[inline]`

Definition at line 49 of file ClpNonLinearCost.hpp.

References CLP_SAME.