compute-lpnorm v1.0.0
lpnorm
Computes the Lp norm of an array of values.
Installation
$ npm install compute-lpnormFor 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.2694The 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.jsNotes
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 testAll 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-covIstanbul creates a ./reports/coverage directory. To access an HTML version of the report,
$ make view-covLicense
Copyright
Copyright © 2014. Athan Reines.