MathUtilGetInterval Method (Double, Double, Double, Int32) |
Finds the interval in a vector where the argument lays in between. Searches
the last interval first. It is assumed that the input vector has at least two elements.
This uses binary search techniques for efficiency.
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
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,
double[] vector,
out double fraction,
int lastInterval
)
Public Shared Function GetInterval (
arg As Double,
vector As Double(),
<OutAttribute> ByRef fraction As Double,
lastInterval As Integer
) As Integer
public:
static int GetInterval(
double arg,
array<double>^ vector,
[OutAttribute] double% fraction,
int lastInterval
)
Parameters
- arg
- Type: SystemDouble
Value to look up in table - vector
- Type: SystemDouble
Vector, must be monoton increasing - 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
Return Value
Type:
Int32[Missing <returns> documentation for "M:DHI.Mike1D.Generic.MathUtil.GetInterval(System.Double,System.Double[],System.Double@,System.Int32)"]
See Also