28 lines
641 B
TypeScript
28 lines
641 B
TypeScript
|
|
/**
|
||
|
|
* returns equal if the two arrays are identical within the
|
||
|
|
* given tolerance.
|
||
|
|
*
|
||
|
|
* @param v1 - The first array of values
|
||
|
|
* @param v2 - The second array of values.
|
||
|
|
* @param tolerance - The acceptable tolerance, the default is 0.00001
|
||
|
|
*
|
||
|
|
* @returns True if the two values are within the tolerance levels.
|
||
|
|
*/
|
||
|
|
export default function isEqualWithin(
|
||
|
|
v1: number[] | Float32Array,
|
||
|
|
v2: number[] | Float32Array,
|
||
|
|
tolerance = 1e-5
|
||
|
|
): boolean {
|
||
|
|
if (v1.length !== v2.length) {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
for (let i = 0; i < v1.length; i++) {
|
||
|
|
if (Math.abs(v1[i] - v2[i]) > tolerance) {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
return true;
|
||
|
|
}
|