This information is part of the Business Simulation Library (BSL). Please support this work and ► donate.
The output res is an index value for the ordered (either ascending or descending) list xVals so that for any x with min(xVals) <= max(xVals)
the condition xVals[res] <= x <= xVals[res+1]
.
Functions.hunt(x, {x1, x2, x3, ... xn}); // jsav = 1 Functions.hunt(x, {x1, x2, x3, ... xn}, jsav);
The implementation closely follows that given in Press et al. [26, pp. 115-117]
hunt(1.9, {0,1,2,3,4}, 1); // 2 hunt(2.5, {3,2,1,0}, 1); // 1
encapsulated function hunt import BusinessSimulation.Icons.Function; import BusinessSimulation.Functions.bitShiftRight; extends Function; input Real x "Value to locate in a list"; input Real[:] xVals "Ordered list of values"; input Integer jsav = 1 "Start index value for the search"; output Integer res "Index for the list so that xVals[res] <= x <= xVals[res+1]"; end hunt;