Socket
Socket
Sign inDemoInstall

@thi.ng/math

Package Overview
Dependencies
Maintainers
1
Versions
160
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@thi.ng/math - npm Package Compare versions

Comparing version 1.0.1 to 1.1.0

min-error.d.ts

1

api.d.ts

@@ -9,2 +9,3 @@ export declare const PI: number;

export declare const RAD2DEG: number;
export declare const PHI: number;
export declare const SQRT2: number;

@@ -11,0 +12,0 @@ export declare const SQRT3: number;

@@ -9,2 +9,3 @@ export const PI = Math.PI;

export const RAD2DEG = 180 / PI;
export const PHI = (1 + Math.sqrt(5)) / 2;
export const SQRT2 = Math.SQRT2;

@@ -11,0 +12,0 @@ export const SQRT3 = Math.sqrt(3);

@@ -6,2 +6,15 @@ # Change Log

# [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/math@1.0.1...@thi.ng/math@1.1.0) (2019-02-05)
### Features
* **math:** add minError() search ([cae8394](https://github.com/thi-ng/umbrella/commit/cae8394))
* **math:** add PHI const ([57d4488](https://github.com/thi-ng/umbrella/commit/57d4488))
* **math:** add simplifyRatio() ([31e369b](https://github.com/thi-ng/umbrella/commit/31e369b))
## [1.0.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/math@1.0.0...@thi.ng/math@1.0.1) (2019-01-21)

@@ -8,0 +21,0 @@

@@ -7,5 +7,7 @@ export * from "./api";

export * from "./interval";
export * from "./min-error";
export * from "./mix";
export * from "./prec";
export * from "./ratio";
export * from "./solve";
export * from "./step";

@@ -7,5 +7,7 @@ export * from "./api";

export * from "./interval";
export * from "./min-error";
export * from "./mix";
export * from "./prec";
export * from "./ratio";
export * from "./solve";
export * from "./step";

@@ -13,2 +13,3 @@ 'use strict';

const RAD2DEG = 180 / PI;
const PHI = (1 + Math.sqrt(5)) / 2;
const SQRT2 = Math.SQRT2;

@@ -89,2 +90,21 @@ const SQRT3 = Math.sqrt(3);

const minError = (fn, error, q, res = 16, iter = 8, start = 0, end = 1, eps = EPS) => {
if (iter <= 0)
return (start + end) / 2;
const delta = (end - start) / res;
let minT = start;
let minE = Infinity;
for (let i = 0; i <= res; i++) {
const t = start + i * delta;
const e = error(q, fn(t));
if (e < minE) {
if (e <= eps)
return t;
minE = e;
minT = t;
}
}
return minError(fn, error, q, res, iter - 1, Math.max(minT - delta, 0), Math.min(minT + delta, 1));
};
const mix = (a, b, t) => a + (b - a) * t;

@@ -144,2 +164,21 @@ const mixBilinear = (a, b, c, d, u, v) => mix(mix(a, b, u), mix(c, d, u), v);

const simplifyRatio = (num, denom) => {
let e1 = Math.abs(num);
let e2 = Math.abs(denom);
while (true) {
if (e1 < e2) {
const t = e1;
e1 = e2;
e2 = t;
}
const r = e1 % e2;
if (r) {
e1 = r;
}
else {
return [num / e2, denom / e2];
}
}
};
const derivative = (f, eps = EPS) => (x) => (f(x + eps) - f(x)) / eps;

@@ -212,2 +251,3 @@ const solveLinear = (a, b) => -b / a;

exports.RAD2DEG = RAD2DEG;
exports.PHI = PHI;
exports.SQRT2 = SQRT2;

@@ -258,2 +298,3 @@ exports.SQRT3 = SQRT3;

exports.inOpenRange = inOpenRange;
exports.minError = minError;
exports.mix = mix;

@@ -279,2 +320,3 @@ exports.mixBilinear = mixBilinear;

exports.roundEps = roundEps;
exports.simplifyRatio = simplifyRatio;
exports.derivative = derivative;

@@ -281,0 +323,0 @@ exports.solveLinear = solveLinear;

@@ -15,2 +15,3 @@ (function (global, factory) {

const RAD2DEG = 180 / PI;
const PHI = (1 + Math.sqrt(5)) / 2;
const SQRT2 = Math.SQRT2;

@@ -91,2 +92,21 @@ const SQRT3 = Math.sqrt(3);

const minError = (fn, error, q, res = 16, iter = 8, start = 0, end = 1, eps = EPS) => {
if (iter <= 0)
return (start + end) / 2;
const delta = (end - start) / res;
let minT = start;
let minE = Infinity;
for (let i = 0; i <= res; i++) {
const t = start + i * delta;
const e = error(q, fn(t));
if (e < minE) {
if (e <= eps)
return t;
minE = e;
minT = t;
}
}
return minError(fn, error, q, res, iter - 1, Math.max(minT - delta, 0), Math.min(minT + delta, 1));
};
const mix = (a, b, t) => a + (b - a) * t;

@@ -146,2 +166,21 @@ const mixBilinear = (a, b, c, d, u, v) => mix(mix(a, b, u), mix(c, d, u), v);

const simplifyRatio = (num, denom) => {
let e1 = Math.abs(num);
let e2 = Math.abs(denom);
while (true) {
if (e1 < e2) {
const t = e1;
e1 = e2;
e2 = t;
}
const r = e1 % e2;
if (r) {
e1 = r;
}
else {
return [num / e2, denom / e2];
}
}
};
const derivative = (f, eps = EPS) => (x) => (f(x + eps) - f(x)) / eps;

@@ -214,2 +253,3 @@ const solveLinear = (a, b) => -b / a;

exports.RAD2DEG = RAD2DEG;
exports.PHI = PHI;
exports.SQRT2 = SQRT2;

@@ -260,2 +300,3 @@ exports.SQRT3 = SQRT3;

exports.inOpenRange = inOpenRange;
exports.minError = minError;
exports.mix = mix;

@@ -281,2 +322,3 @@ exports.mixBilinear = mixBilinear;

exports.roundEps = roundEps;
exports.simplifyRatio = simplifyRatio;
exports.derivative = derivative;

@@ -283,0 +325,0 @@ exports.solveLinear = solveLinear;

6

package.json
{
"name": "@thi.ng/math",
"version": "1.0.1",
"version": "1.1.0",
"description": "Assorted common math functions & utilities",

@@ -19,3 +19,3 @@ "module": "./index.js",

"build:es6": "tsc --declaration",
"build:bundle": "../../scripts/bundle-module math",
"build:bundle": "../../scripts/bundle-module",
"test": "rimraf build && tsc -p test/tsconfig.json && nyc mocha build/test/*.js",

@@ -48,3 +48,3 @@ "clean": "rimraf *.js *.d.ts .nyc_output build coverage doc lib",

"sideEffects": false,
"gitHead": "d098aff5e61f96be177289461eec95648cf4e15a"
"gitHead": "74fb4d83013785ce7a95357c565426a046657e74"
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc