JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2
  • Score
    100M100P100Q44748F
  • License MIT

Math approximation tools.

Package Exports

  • interpolate-by-pravosleva

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (interpolate-by-pravosleva) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

interpolate-by-pravosleva

🚫 DEPRECATED.

Use math-interpolate instead of (TypeScript support added).

Install

$ yarn add interpolate-by-pravosleva

Interpolation cases usage

import Interpolate from 'interpolate-by-pravosleva';

// Or any static method of the class if necessary:
import { linear } from 'interpolate-by-pravosleva';

So, you can use methods below

linear

console.log(
  Interpolate.linear({ x: 0.5, x1: 0, y1: 1, x2: 1, y2: 2 })
);
// 1.5

This example description

          |
y2= 2     |                           o
          |
y= ?      |             o
(1.5 will be found)
y1= 1     o
          |
          ------------------------------------
          x1= 0         x= 0.5        x2= 1

bilinear

console.log(
  Interpolate.bilinear ({
    x1: 1, q11: 400, q12: 410,
    y1: 1,
    x2: 6, q21: 210, q22: 590,
    y2: 5,
    x: 3,
    y: 3.5
  })
);
// 377.75

This example description

          |   q12= 410                q22= 590
y2= 5     |   o                       o
          |
          |           q= ? (377.75 will be found)
y= 3.5    |           o
          |
          |   q11= 400                q21= 210
y1= 1     |   o                       o
          ------------------------------------
              x1= 1   x= 3            x2= 6

And also, you can read more about bilinear interpolation on wiki.

byInternalTable

Interpolate by table (only internal table values gives correct result) for example

const temperature = -21.0;
const percentage = 20.0;
/*
  About table below:
  1st horizontal line (highest row as x axis) - temperature conditions template
  1st vertical column (first left column as y axis) - percentage conditions template
*/
const tableAsDoubleArray = [
  [0.0,   -30,      -20.0,    -10.0,    0.0,     20.0,  40.0,    60.0,    80.0,    100.0],
  [0.0,   4.19,     4.19,     4.19,     4.19,    4.19,  4.19,    4.19,    4.19,    4.19],
  [25.0,  3.93000,  3.93000,  3.93,     3.95,    3.98,  4.00,    4.03,    4.05,    4.08],
  [37.0,  3.68000,  3.68,     3.70000,  3.72,    3.77,  3.82,    3.88,    3.94,    4.00],
  [45.0,  3.49000,  3.49,     3.52,     3.56,    3.62,  3.69,    3.76,    3.82,    3.89],
];

console.log(
  Interpolate.byInternalTable({
    x: temperature,
    y: percentage,
    tableAsDoubleArray,
  })
);
// 3.982

getKB

console.log(
  Interpolate.getKB({
    x1: 1, y1: 1,
    x2: 6, y2: 5,
  })
);
// { k: -0.8,
//   b: 1.8 }

getCommonPointByBisectionMethod

console.log(
  Interpolate.getCommonPointByBisectionMethod({
    fn1: x => x,
    fn2: x => -x,
    xMin: -200, // -1000 by default
    xMax: 200, // 1000 by default
    eps: 0.001, // 0.001 by default (accuracy)
    iMax: 1000, // 1000 by default (max iterations number)
  })
);
// { error: false,
//   x: ~0,
//   y: ~0 }

This example description

          |
y2= 2     o                           o
          |
y= ?      |             o
(~1.5 will be found)
y1= 1     o                           o
          |
          ------------------------------------
          x1= 0         x= ?          x2= 1
                        (~0.5 will be found)
const { k: k1, b: b1 } = Interpolate.getKB({ x1: 0, y1: 1, x2: 1, y2: 2 });
const { k: k2, b: b2 } = Interpolate.getKB({ x1: 0, y1: 2, x2: 1, y2: 1 });
const fn1 = x => (k1 * x) + b1;
const fn2 = x => (k2 * x) + b2;

console.log(
  Interpolate.getCommonPointByBisectionMethod({
    fn1,
    fn2,
  })
);
// { error: false, // & description field if true
//   x: 0.5002021789550781,
//   y: 1.5002021789550781 }

Commands

  • npm run clean - Remove lib/ directory
  • npm test - Run tests with linting and coverage results.
  • npm test:only - Run tests without linting or coverage.
  • npm test:watch - You can even re-run tests on file changes!
  • npm test:prod - Run tests with minified code.
  • npm run test:examples - Test written examples on pure JS for better understanding module usage.
  • npm run lint - Run ESlint with airbnb-config
  • npm run cover - Get coverage report for your code.
  • npm run build - Babel will transpile ES6 => ES5 and minify the code.
  • npm run prepublish - Hook for npm. Do all the checks before publishing your module.

License

MIT © Den Pol