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 by
({ x, x1, y1, x2, y2 })
- bilinear by
({ x, y, x1, y1, x2, y2, q11, q12, q21, q22 })
- byInternalTable by
({ x, y, tableAsDoubleArray }
TODO: external cases - getKB for condition like
y = (k * x) + b
by{ x1, y1, x2, y2 }
- getCommonPointByBisectionMethod by
({ fn1, fn2, xMin = -1000, xMax = 1000, eps = 0.001 })
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
- Removelib/
directorynpm 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-confignpm 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