compute-lpnorm
v1.0.0
Published
Computes the Lp norm of an array of values.
Downloads
1,000
Maintainers
Readme
lpnorm
Computes the Lp norm of an array of values.
Installation
$ npm install compute-lpnorm
For use in the browser, use browserify.
Usage
To use the module,
var lpnorm = require( 'compute-lpnorm' );
lpnorm( arr[, p] )
Computes the p-norm of an array
, where p
is an integer
greater than 0
.
var data = [ 3, 1, 9, 4, 4, 2 ];
var len = lpnorm( data, 2 );
// returns ~11.2694
The default value of p
is 2
(Euclidean norm).
Special Cases
p = 1
: the norm is theL1
, or so-called Taxicab norm.p = 2
: the norm is theL2
, or Euclidean norm.p = infinity
: the norm is the maximum norm.
Examples
var lpnorm = require( 'compute-lpnorm' );
var data = new Array( 1000 );
for ( var i = 0; i < data.length; i++ ) {
data[ i ] = Math.random() * 100;
}
// Compute the L1 norm:
console.log( 'L1: %d', lpnorm( data, 1 ) );
// Compute the L2 norm:
console.log( 'L2: %d', lpnorm( data, 2 ) );
// Compute the L10 norm:
console.log( 'L10: %d', lpnorm( data, 10 ) );
// Compute the maximum norm:
console.log( 'Sup: %d', lpnorm( data, Number.POSITIVE_INFINITY ) );
To run the example code from the top-level application directory,
$ node ./examples/index.js
Notes
Warning: Only specific Lp norms properly consider overflow and underflow; i.e., L1, L2, and the infinity norms. In the general case, you may overflow for large values of p
.
Tests
Unit
Unit tests use the Mocha test framework with Chai assertions. To run the tests, execute the following command in the top-level application directory:
$ make test
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:
$ make test-cov
Istanbul creates a ./reports/coverage
directory. To access an HTML version of the report,
$ make view-cov
License
Copyright
Copyright © 2014. Athan Reines.