Click or drag to resize

MathUtilGetInterval Method (Double, Int32, FuncInt32, Double, Double, Int32)

Finds the interval in a vector where the argument lays in between. Assumes that the vector has at least two elements.

The vector is represented by the vectorValue function, which must return vector values in strictly increasing order.

The vector must increase strictly monotonically. If argument is below the first value, 0 is returned. If argument is above last value, the length of the vector is returned.

The result is the interval number, one based, meaning that the arg fullfills:

(vector[res-1] < arg && arg <= vector[res])

Also the scale factor for interpolating is returned. For linear interpolation

arg = vector[res-1] + fraction*(vector[res]-vector[res-1])
or
arg = (1-fraction)*vector[res-1] + fraction*vector[res]

If arg exists in vector, the result is such that

arg = vector[res]
i.e., fraction is one (except when arg = vector[0], then res = 1 and fraction = 0).

Namespace:  DHI.Mike1D.Generic
Assembly:  DHI.Mike1D.Generic (in DHI.Mike1D.Generic.dll) Version: 19.0.0.0 (11.1.1.1111)
Syntax
public static int GetInterval(
	double arg,
	int count,
	Func<int, double> vectorValue,
	out double fraction,
	int lastInterval
)

Parameters

arg
Type: SystemDouble
Value to look up in table
count
Type: SystemInt32
Number of elements in vector
vectorValue
Type: SystemFuncInt32, Double
Return vector value at given index.
fraction
Type: SystemDouble
number with wich to scale the highest
lastInterval
Type: SystemInt32
last result returned. Must be >= 0 and <= vector.Length. Use -1 if not known or first time called

Return Value

Type: Int32

[Missing <returns> documentation for "M:DHI.Mike1D.Generic.MathUtil.GetInterval(System.Double,System.Int32,System.Func{System.Int32,System.Double},System.Double@,System.Int32)"]

See Also