# 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 38 of file ClpNonLinearCost.hpp.

#define CLP_FEASIBLE 1

Definition at line 39 of file ClpNonLinearCost.hpp.

#define CLP_ABOVE_UPPER 2

Definition at line 40 of file ClpNonLinearCost.hpp.

#define CLP_SAME 4

Definition at line 41 of file ClpNonLinearCost.hpp.

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

Definition at line 72 of file ClpNonLinearCost.hpp.

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

Definition at line 73 of file ClpNonLinearCost.hpp.

## Function Documentation

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

Definition at line 42 of file ClpNonLinearCost.hpp.

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

Definition at line 46 of file ClpNonLinearCost.hpp.

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

Definition at line 50 of file ClpNonLinearCost.hpp.

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

Definition at line 55 of file ClpNonLinearCost.hpp.

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

Definition at line 60 of file ClpNonLinearCost.hpp.

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

Definition at line 64 of file ClpNonLinearCost.hpp.

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines