NO FRAMES

Class IloNumToNumStepFunction

Definition file: ilconcert/ilonumfunc.h
Represents a step function that is defined everywhere on an interval.

An instance of IloNumToNumStepFunction represents a step function that is defined everywhere on an interval [xMin, xMax). Each interval [x1, x2) on which the function has the same value is called a step.

Note that if n is the number of steps of the function, the random access to a given step (see the member functions IloNumToNumStepFunction::addValue, IloNumToNumStepFunction::getArea, IloNumToNumStepFunction::getValue, IloNumToNumStepFunction::setValue) has a worst-case complexity in O(log(n)).

Furthermore, when two consecutive steps of the function have the same value, these steps are merged so that the function is always represented with the minimal number of steps.

See Also:

Constructor Summary
public IloNumToNumStepFunction(const IloEnv env, IloNum xmin=-IloInfinity, IloNum xmax=IloInfinity, IloNum dval=0.0, const char * name=0)
public IloNumToNumStepFunction(const IloEnv env, const IloNumArray x, const IloNumArray v, IloNum xmin=-IloInfinity, IloNum xmax=IloInfinity, const char * name=0)
Method Summary
public voidaddValue(IloNum x1, IloNum x2, IloNum v) const
public IloNumToNumStepFunctioncopy() const
public voiddilate(IloNum k) const
public IloNumgetArea(IloNum x1, IloNum x2) const
public IloNumgetDefinitionIntervalMax() const
public IloNumgetDefinitionIntervalMin() const
public IloNumgetMax(IloNum x1, IloNum x2) const
public IloNumgetMin(IloNum x1, IloNum x2) const
public IloNumgetValue(IloNum x) const
public voidoperator *=(IloNum k) const
public voidoperator+=(const IloNumToNumStepFunction fct) const
public voidoperator-=(const IloNumToNumStepFunction fct) const
public voidsetMax(const IloNumToNumStepFunction fct) const
public voidsetMax(IloNum x1, IloNum x2, IloNum v) const
public voidsetMin(const IloNumToNumStepFunction fct) const
public voidsetMin(IloNum x1, IloNum x2, IloNum v) const
public voidsetPeriodic(const IloNumToNumStepFunction f, IloNum x0, IloNum n=IloInfinity, IloNum dval=0) const
public voidsetPeriodicValue(IloNum x1, IloNum x2, const IloNumToNumStepFunction f, IloNum offset=0) const
public voidsetSteps(const IloNumArray x, const IloNumArray v) const
public voidsetValue(IloNum x1, IloNum x2, IloNum v) const
public voidshift(IloNum dx, IloNum dval=0) const
Constructor Detail

IloNumToNumStepFunction

public IloNumToNumStepFunction(const IloEnv env, IloNum xmin=-IloInfinity, IloNum xmax=IloInfinity, IloNum dval=0.0, const char * name=0)

This constructor creates a step function defined everywhere on the interval [xmin, xmax) with the same value dval.


IloNumToNumStepFunction

public IloNumToNumStepFunction(const IloEnv env, const IloNumArray x, const IloNumArray v, IloNum xmin=-IloInfinity, IloNum xmax=IloInfinity, const char * name=0)

This constructor creates a step function defined everywhere on the interval [xmin, xmax) whose steps are defined by the two argument arrays x and v. More precisely, if n is the size of array x, size of array v must be n+1 and, if the created function is defined on the interval [xmin,xmax), its values will be:

The values in the array are copied, and no modification to the arrays will be taken into account once the constructor has been called.


Method Detail

addValue

public void addValue(IloNum x1, IloNum x2, IloNum v) const

This member function adds v to the value of the invoking step function everywhere on the interval [x1, x2).


copy

public IloNumToNumStepFunction copy() const

This member function creates and returns a new function that is a copy of the invoking function.


dilate

public void dilate(IloNum k) const

This member function multiplies by k the scale of x for the invoking step function. k must be a nonnegative numeric value. More precisely, if the invoking function was defined over an interval [xMin, xMax), it will be redefined over the interval [k*xMin, k*xMax) and the value at x will be the former value at x/k.


getArea

public IloNum getArea(IloNum x1, IloNum x2) const

This member function returns the sum of the invoking step function on the interval [x1, x2). An instance of IloException is thrown if the interval [x1, x2) is not included in the definition interval of the invoking function.


getDefinitionIntervalMax

public IloNum getDefinitionIntervalMax() const

This member function returns the right-most point of the definition interval of the invoking step function.


getDefinitionIntervalMin

public IloNum getDefinitionIntervalMin() const

This member function returns the left-most point of the definition interval of the invoking step function.


getMax

public IloNum getMax(IloNum x1, IloNum x2) const

This member function returns the maximal value of the invoking step function on the interval [x1, x2). An instance of IloException is thrown if the interval [x1, x2) is not included in the definition interval of the invoking function.


getMin

public IloNum getMin(IloNum x1, IloNum x2) const

This member function returns the minimal value of the invoking step function on the interval [x1, x2). An instance of IloException is thrown if the interval [x1, x2) is not included in the definition interval of the invoking function.


getValue

public IloNum getValue(IloNum x) const

This member function returns the value of the invoking step function at x. An instance of IloException is thrown if x does not belong to the definition interval of the invoking function.


operator *=

public void operator *=(IloNum k) const

This operator multiplies by a factor k the value of the invoking step function everywhere on the definition interval.


operator+=

public void operator+=(const IloNumToNumStepFunction fct) const

This operator adds the argument function fct to the invoking step function.


operator-=

public void operator-=(const IloNumToNumStepFunction fct) const

This operator subtracts the argument function fct from the invoking step function.


setMax

public void setMax(const IloNumToNumStepFunction fct) const

This member function sets the value of the invoking step function to be the maximum between the current value and the value of fct everywhere on the definition interval of the invoking function. The interval of definition of fct must be the same as that of the invoking step function.


setMax

public void setMax(IloNum x1, IloNum x2, IloNum v) const

This member function sets the value of the invoking step function to be the maximum between the current value and v everywhere on the interval [x1, x2).


setMin

public void setMin(const IloNumToNumStepFunction fct) const

This member function sets the value of the invoking step function to be the minimum between the current value and the value of fct everywhere on the definition interval of the invoking function. The definition interval of fct must be the same as the one of the invoking step function.


setMin

public void setMin(IloNum x1, IloNum x2, IloNum v) const

This member function sets the value of the invoking step function to be the minimum between the current value and v everywhere on the interval [x1, x2).


setPeriodic

public void setPeriodic(const IloNumToNumStepFunction f, IloNum x0, IloNum n=IloInfinity, IloNum dval=0) const

This member function initializes the invoking function as a step function that repeats the step function f, n times after x0. More precisely, if f is defined on [xfpMin,xfpMax) and if the invoking function is defined on [xMin,xMax), the value of the invoking function will be:


setPeriodicValue

public void setPeriodicValue(IloNum x1, IloNum x2, const IloNumToNumStepFunction f, IloNum offset=0) const

This member function changes the value of the invoking function on the interval [x1,x2). On this interval, the invoking function is set to equal a repetition of the pattern function f with an initial offset of offset. The invoking function is not modified outside the interval [x1,x2). More precisely, if [min,max) denotes the definition interval of f, for all t in [x1,x2), the invoking function at t is set to equal f(min + (offset+t-x1)%(max-min))) where % denotes the modulo operator. By default, the offset is equal to 0.


setSteps

public void setSteps(const IloNumArray x, const IloNumArray v) const

This member function initializes the invoking function as a step function whose steps are defined by the two arguments arrays x and v. More precisely, if n is the size of array x, size of array v must be n+1 and, if the invoking function is defined on the interval [xMin,xMax), its values will be:


setValue

public void setValue(IloNum x1, IloNum x2, IloNum v) const

This member function sets the value of the invoking step function to be v on the interval [x1, x2).


shift

public void shift(IloNum dx, IloNum dval=0) const

This member function shifts the invoking function from dx to the right if dx > 0 or from -dx to the left if dx < 0. It has no effect if dx = 0. More precisely, if the invoking function is defined on [xMin,xMax) and dx > 0, the new value of the invoking function is:

If dx < 0, the new value of the invoking function is: