Options
All
  • Public
  • Public/Protected
  • All
Menu

External module "math/base/utils/float64-epsilon-difference/docs/types/index.d"

Index

Type aliases

Functions

Type aliases

ScaleFunction

ScaleFunction: (x: number, y: number) => number

Custom scale function.

param

first value

param

second value

returns

custom scale

Type declaration

    • (x: number, y: number): number
    • Parameters

      • x: number
      • y: number

      Returns number

ScaleNames

ScaleNames: "max-abs" | "max" | "min-abs" | "min" | "mean-abs" | "mean" | "x" | "y"

Scale function name.

Notes

  • The following scale functions are supported:

    • 'max-abs': maximum absolute value of x and y (default).
    • 'max': maximum value of x and y.
    • 'min-abs': minimum absolute value of x and y.
    • 'min': minimum value of x and y.
    • 'mean-abs': arithmetic mean of the absolute values of x and y.
    • 'mean': arithmetic mean of x and y.
    • 'x': x (noncommutative).
    • 'y': y (noncommutative).

Functions

Export assignment epsilonDifference

  • Computes the relative difference in units of double-precision floating-point epsilon.

    Notes

    • By default, the function scales the absolute difference by dividing the absolute difference by the maximum absolute value of x and y. To scale by a different function, specify a scale function name or custom scale function.
    • If computing the relative difference in units of epsilon will result in overflow, the function returns the maximum double-precision floating-point number.
    • If the absolute difference of x and y is 0, the relative difference is always 0.
    • If |x| = |y| = infinity, the function returns NaN.
    • If |x| = |-y| = infinity, the relative difference is +infinity.
    • If a scale function returns 0, the function returns NaN.

    Parameters

    • x: number

      first number

    • y: number

      second number

    • Optional scale: ScaleFunction | ScaleNames

      scale function (default: 'max-abs')

    Returns number

    relative difference in units of double-precision floating-point epsilon

    Example

    var d = epsilonDifference( 12.15, 12.149999999999999 ); // => ~0.658ε
    // returns ~0.658

    Example

    var d = epsilonDifference( 2.4341309458983933, 2.4341309458633909, 'mean-abs' ); // => ~64761.5ε => ~1.438e-11
    // returns ~64761.5

    Example

    function scale( x, y ) {
         // Return the minimum value:
         return ( x > y ) ? y : x;
    }
    
    var d = epsilonDifference( 1.0000000000000002, 1.0000000000000100, scale ); // => ~44ε
    // returns ~44