JSPM

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

Approximation methods.

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

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 by { x, x1, y1, x2, y2 }
  • bilinear by { x, y, x1, y1, x2, y2, q11, q12, q21, q22 }
  • byInternalTable by { x, y, tableAsDoubleArray }
  • getKB (auxiliary) for condition like y=kx+b by { x1, y1, x2, y2 }

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 in line by x value)
y1= 1     o
          |
          ------------------------------------
          x1= 0         x= 0.5        x2= 1

bilinear

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

This example description

          |   q12= 410                q22= 590
y2= 5     |   o                       o
          |
          |           q= ? (362 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) for example

const temperature = -21.0;
const percentage = 20.0;
/*
  About table below:
  1st horizontal line (highest row) - temperature conditions template
  1st vertical column (first left column) - percentage conditions template
*/
const dataObj = [
  [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: dataObj,
  })
);
// 3.982

getKB

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

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