is-close
Check if either:
- two numbers are equal within a given tolerance
- the values in two arrays of numbers are equal within a given tolerance
isClose(a, b, rtol, atol, equalNaN, isCloseScaler) ⇒ boolean
|Array<boolean>
Check if a
is approximately equal to b
.
This check uses similar logic to Python math.isClose.
By default values are considered to be close if:
```
abs(a - b) <= max(rtol max(abs(a), abs(b)), atol).
```
Returns: boolean
- Returns true if both a
and b
are considered to be close.
| Parameter | Type | Description |
| ---------------- | --- | --- |
| a
| number
| First value to compare |
| b
| number
| Second value to compare |
| rtol
| number [optional]
| The relative tolerance parameterdefault = 1e-09 | |
atol
| number [optional]
| The absolute tolerance parameterdefault = 0.0 | |
equalNaN
| boolean [optional]
| Whether to compare NaNs as equal.If true, when
a
is NaN and b
is NaN they will be considered equal.default = false | |
isCloseScaler
| IsCloseScaler [optional]
| Method used to scale the absolute difference into a relative difference.default = IsCloseScalers.maxAbsAOrB |
Overload
Returns:Array<boolean>
- Returns an array of booleans corresponding to the result of calling isClose() on the individual values in the arrays a
and b
.
| Parameter | Type | Description |
| ---------------- | --- | --- |
| a
| Array<number>
| First value to compare |
| b
| Array<number>
| Second value to compare |
| rtol
| number [optional]
| The relative tolerance parameterdefault = 1e-09 | |
atol
| number [optional]
| The absolute tolerance parameterdefault = 0.0 | |
equalNaN
| boolean [optional]
| Whether to compare NaNs as equal.default = false | |
isCloseScaler
| IsCloseScaler [optional]
| Method used to scale the absolute difference into a relative difference.default = IsCloseScalers.maxAbsAOrB |
IsCloseScalers#maxAbsAOrB(a, b) => number
Returns: number
- Relative difference scaling: Max(|a|,|b|)
IsCloseScalers#maxAOrB(a, b) => number
Returns: number
- Relative difference scaling: Max(a,b)
IsCloseScalers#minAbsAOrB(a, b) => number
Returns: number
- Relative difference scaling: Min(|a|,|b|)
IsCloseScalers#minAOrB(a, b) => number
Returns: number
- Relative difference scaling: Min(a,b)
IsCloseScalers#meanAbs(a, b) => number
Returns: number
- Relative difference scaling: Mean: (|a|+|b|)/2, using Welford's method
IsCloseScalers#mean(a, b) => number
Returns: number
- Relative difference scaling: Mean: (a+b)/2, using Welford's method
IsCloseScalers#absA(a) => number
Returns: number
- Relative error scaling: abs(a)
IsCloseScalers#absB(a, b) => number
Returns: number
- Relative error scaling: abs(b)