# math-float64-epsilon-difference

1.0.0 • Public • Published

# Relative Difference

Computes the relative difference of two real numbers in units of double-precision floating-point epsilon.

## Usage

#### diff( x, y[, scale] )

Computes the relative difference of two real numbers in units of double-precision floating-point epsilon.

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).

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.

To use a custom scale `function`, provide a `function` which accepts two numeric arguments `x` and `y`.

## Notes

• 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`.

## Examples

To run the example code from the top-level application directory,

## Tests

### Unit

This repository uses tape for unit tests. To run the tests, execute the following command in the top-level application directory:

All new feature development should have corresponding unit tests to validate correct functionality.

### Test Coverage

This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:

Istanbul creates a `./reports/coverage` directory. To access an HTML version of the report,

### Browser Support

This repository uses Testling for browser testing. To run the tests in a (headless) local web browser, execute the following command in the top-level application directory:

To view the tests in a local web browser,

## Package Sidebar

### Install

`npm i math-float64-epsilon-difference`

### Repository

github.com/math-io/float64-epsilon-difference

0

1.0.0