StepBoundInfo

Calculates the largest multiple of a vector that can be added to this vector while keeping each element of this vector nonnegative.

Synopsis

#include "tao_solver.h"  
int TaoVec::StepBoundInfo(TaoVec* XL ,TaoVec* XU, TaoVec*S, double *bmin1,double *bmin2, double *bmax)

Input Parameters

txl - the lower bounds on this vector
txu - the upper bounds on this vector
tdx - the step direction for this vector

Output Parameters

boundmin - the step to closest bound i.e min(a1, ..., an);
wolfemin - the step to closest bound not equal i.e min(b1, ..., bn);
boundmax - the step to farthest bound i.e. max(c1, ..., cn);

Where

if tdx[i] > 0; ai = (txu[i] - this[i])/tdx[i] ; bi=ai, ci=ai; if tdx[i] < 0; ai = (txl[i] - this[i])/tdx[i] ; bi=ai, ci=ai if tdx[i] == 0 && txl[i] < x[i] < txu[i] ; ai=TAO_INFINITY, bi=ai, ci=ai; if tdx[i] == 0 && (txl[i] == x[i] || txu[i] == x[i]) ; ai= 0, bi=TAO_INFINITY, ci=0;

Note

If there is no maximum steplength, the output scalar may be set to TAO_INFINITY.

Level:advanced
Location:src/vector/taovec.c
TAO Solver Index
Table of Contents