compute-lpnorm

1.0.0 • Public • Published

lpnorm

NPM version Build Status Coverage Status Dependencies

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

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

MIT license.


Copyright

Copyright © 2014. Athan Reines.

Package Sidebar

Install

npm i compute-lpnorm

Weekly Downloads

138

Version

1.0.0

License

none

Last publish

Collaborators

  • kgryte