interpolate-by-pravosleva

3.0.9 • Public • Published

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

Package Sidebar

Install

npm i interpolate-by-pravosleva

Weekly Downloads

2

Version

3.0.9

License

MIT

Unpacked Size

14.4 kB

Total Files

5

Last publish

Collaborators

  • pravosleva