lagrange

0.1.0 • Public • Published

node-lagrange

Implements Lagrange polynomial interpolation for both the numbers you are used to as well as finite fields. Given a list of x values and a list of y values, it will attempt to solve f(x) for a given x value.

All finite field arithmetic uses the galois NPM module (npm show galois).

Functions

  • base10(x, xValues, yValues) - Assumes the standard decimal system.

  • galois(x, xValues, yValues, gfW) - The gfW parameter is passed to the galois module functions, which uses it as the exponent to define the field size (2^w).

  • splitCoords(coords) - The above math functions take two separate arrays, one for x values and one for y values, but your application is likely to use an array of tuples to define coordinates. This utility function splits them out, giving you a tuple of x and y values ([xValues, yValues]).

Examples

See ./tests/lagrange.js for examples using different equations.

var lagrange = require('lagrange');
 
var GF_W = 8;
 
//f(x)=2x, for GF(256)
var coords = [[5, 10], [244, 245]];    //app stores tuples
coords = lagrange.splitCoords(coords); //make them lagrange friendly
 
assert.equal(lagrange.galois(0, coords[0], coords[1], GF_W), 0);
assert.equal(lagrange.galois(255, coords[0], coords[1], GF_W), 227);
console.log('success');

Package Sidebar

Install

npm i lagrange

Weekly Downloads

1

Version

0.1.0

License

apache-2.0

Last publish

Collaborators

  • sbisbee