@danielsimonjr/mathts-functions 0.2.4 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,21 @@
1
+ # @danielsimonjr/mathts-functions
2
+
3
+ Math functions for [MathTS](https://github.com/danielsimonjr/mathts).
4
+
5
+ The mathematical function library for MathTS — arithmetic, trigonometry, algebra, statistics, signal processing, and more — dispatched polymorphically via typed-function across number / Complex / Fraction / BigNumber / Matrix.
6
+
7
+ ## Install
8
+
9
+ ```sh
10
+ npm install @danielsimonjr/mathts-functions
11
+ ```
12
+
13
+ ## What it provides
14
+
15
+ - Hundreds of typed functions (`add`, `sin`, `svd`-aware ops, `parallelFFT`, …).
16
+ - A wired `parse` / `evaluate` against the full activated math scope.
17
+ - Per-domain focused entry points are also published: `@danielsimonjr/mathts-{arithmetic,trigonometry,statistics,signal}`.
18
+
19
+ ## License
20
+
21
+ MIT (c) Daniel Simon Jr.
package/dist/index.js CHANGED
@@ -5463,8 +5463,8 @@ function besselY1Scalar(x) {
5463
5463
  if (x <= 0) return NaN;
5464
5464
  if (x < 8) {
5465
5465
  const y = x * x;
5466
- const r1 = -4900604943e3 + y * (127527439e4 + y * (-51534866840 + y * (6227854327e-1 + y * (-3130827714e-3 + y * 7.374753505))));
5467
- const r2 = 249958057e5 + y * (424441966400 + y * (3733650367 + y * (2245976615e-2 + y * (103832.3184 + y * (365.2510261 + y * 1)))));
5466
+ const r1 = x * (-4900604943e3 + y * (127527439e4 + y * (-51534381390 + y * (7349264551e-1 + y * (-4237922726e-3 + y * 8511.937935)))));
5467
+ const r2 = 249958057e5 + y * (424441966400 + y * (3733650367 + y * (2245904002e-2 + y * (102042.605 + y * (354.9632885 + y)))));
5468
5468
  return r1 / r2 + 0.636619772 * (besselJ1Scalar(x) * Math.log(x) - 1 / x);
5469
5469
  } else {
5470
5470
  const z = 8 / x;
@@ -5732,26 +5732,40 @@ function lambertWScalar(x) {
5732
5732
  function cosIntegralScalar(x) {
5733
5733
  if (x <= 0) return NaN;
5734
5734
  const euler = 0.5772156649015329;
5735
- if (x <= 4) {
5735
+ if (x <= 35) {
5736
5736
  let sum2 = 0;
5737
5737
  let term = 1;
5738
- for (let n = 1; n < 100; n++) {
5738
+ for (let n = 1; n < 200; n++) {
5739
5739
  term *= -x * x / ((2 * n - 1) * (2 * n));
5740
5740
  sum2 += term / (2 * n);
5741
- if (Math.abs(term / (2 * n)) < 1e-15) break;
5741
+ if (Math.abs(term / (2 * n)) < Math.abs(sum2) * 1e-16) break;
5742
5742
  }
5743
5743
  return euler + Math.log(x) + sum2;
5744
5744
  }
5745
- let f = 0, g = 0;
5745
+ let f = 1, g = 1;
5746
5746
  let fn = 1, gn = 1;
5747
- for (let n = 1; n <= 30; n++) {
5748
- fn *= -(2 * n - 1) * (2 * n - 2) / (x * x);
5749
- gn *= -(2 * n) * (2 * n - 1) / (x * x);
5750
- f += fn;
5751
- g += gn;
5747
+ let fDone = false, gDone = false;
5748
+ for (let n = 1; n <= 60; n++) {
5749
+ const fnNext = fn * (-(2 * n) * (2 * n - 1)) / (x * x);
5750
+ const gnNext = gn * (-(2 * n + 1) * (2 * n)) / (x * x);
5751
+ if (!fDone) {
5752
+ if (Math.abs(fnNext) > Math.abs(fn)) fDone = true;
5753
+ else {
5754
+ fn = fnNext;
5755
+ f += fn;
5756
+ }
5757
+ }
5758
+ if (!gDone) {
5759
+ if (Math.abs(gnNext) > Math.abs(gn)) gDone = true;
5760
+ else {
5761
+ gn = gnNext;
5762
+ g += gn;
5763
+ }
5764
+ }
5765
+ if (fDone && gDone) break;
5752
5766
  }
5753
- f = (1 + f) / x;
5754
- g = (1 + g) / x;
5767
+ f = f / x;
5768
+ g = g / (x * x);
5755
5769
  return f * Math.sin(x) - g * Math.cos(x);
5756
5770
  }
5757
5771
  function sinIntegralScalar(x) {
@@ -5807,6 +5821,33 @@ function fresnelCScalar(x) {
5807
5821
  }
5808
5822
  return sign3 * sum2;
5809
5823
  }
5824
+ var AIRY_U = (() => {
5825
+ const u = [1];
5826
+ for (let k = 1; k <= 10; k++) {
5827
+ u.push(u[k - 1] * ((6 * k - 5) * (6 * k - 3) * (6 * k - 1)) / (216 * k));
5828
+ }
5829
+ return u;
5830
+ })();
5831
+ function airyAsymPQ(zeta2) {
5832
+ let p = 0, q = 0;
5833
+ let pTerm = Infinity, qTerm = Infinity;
5834
+ const half = Math.floor((AIRY_U.length - 1) / 2);
5835
+ for (let k = 0; k <= half; k++) {
5836
+ const sign3 = k % 2 === 0 ? 1 : -1;
5837
+ const pt = sign3 * AIRY_U[2 * k] / Math.pow(zeta2, 2 * k);
5838
+ if (Math.abs(pt) > Math.abs(pTerm)) break;
5839
+ p += pt;
5840
+ pTerm = pt;
5841
+ }
5842
+ for (let k = 0; k <= half - 1; k++) {
5843
+ const sign3 = k % 2 === 0 ? 1 : -1;
5844
+ const qt = sign3 * AIRY_U[2 * k + 1] / Math.pow(zeta2, 2 * k + 1);
5845
+ if (Math.abs(qt) > Math.abs(qTerm)) break;
5846
+ q += qt;
5847
+ qTerm = qt;
5848
+ }
5849
+ return { p, q };
5850
+ }
5810
5851
  function airyAiScalar(x) {
5811
5852
  const XBIG = 4.5;
5812
5853
  const AI0 = 0.3550280538878172;
@@ -5836,14 +5877,8 @@ function airyAiScalar(x) {
5836
5877
  const axp = Math.pow(ax, 0.25);
5837
5878
  const zeta2 = 2 / 3 * ax * Math.sqrt(ax);
5838
5879
  const theta = zeta2 - Math.PI / 4;
5839
- let p = 0, q = 0, zk = 1, sign3 = 1;
5840
- for (let k = 0; k < C.length; k++) {
5841
- if (k % 2 === 0) p += sign3 * C[k] / zk;
5842
- else q += sign3 * C[k] / zk;
5843
- zk *= zeta2;
5844
- sign3 = -sign3;
5845
- }
5846
- return (Math.sin(theta) * p + Math.cos(theta) * q) / (Math.sqrt(Math.PI) * axp);
5880
+ const { p, q } = airyAsymPQ(zeta2);
5881
+ return (Math.cos(theta) * p + Math.sin(theta) * q) / (Math.sqrt(Math.PI) * axp);
5847
5882
  }
5848
5883
  const x3 = x * x * x;
5849
5884
  let f = 1, g = x, fTerm = 1, gTerm = x;
@@ -5889,15 +5924,9 @@ function airyBiScalar(x) {
5889
5924
  const ax = Math.abs(x);
5890
5925
  const axp = Math.pow(ax, 0.25);
5891
5926
  const zeta2 = 2 / 3 * ax * Math.sqrt(ax);
5892
- const theta = zeta2 + Math.PI / 4;
5893
- let p = 0, q = 0, zk = 1, sign3 = 1;
5894
- for (let k = 0; k < C.length; k++) {
5895
- if (k % 2 === 0) p += sign3 * C[k] / zk;
5896
- else q += sign3 * C[k] / zk;
5897
- zk *= zeta2;
5898
- sign3 = -sign3;
5899
- }
5900
- return (Math.cos(theta) * p + Math.sin(theta) * q) / (Math.sqrt(Math.PI) * axp);
5927
+ const theta = zeta2 - Math.PI / 4;
5928
+ const { p, q } = airyAsymPQ(zeta2);
5929
+ return (-Math.sin(theta) * p + Math.cos(theta) * q) / (Math.sqrt(Math.PI) * axp);
5901
5930
  }
5902
5931
  const x3 = x * x * x;
5903
5932
  let f = 1, g = x, fTerm = 1, gTerm = x;
@@ -1 +1 @@
1
- {"version":3,"file":"special.d.ts","sourceRoot":"","sources":["../../src/typed/special.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"special.d.ts","sourceRoot":"","sources":["../../src/typed/special.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danielsimonjr/mathts-functions",
3
- "version": "0.2.4",
3
+ "version": "0.2.6",
4
4
  "description": "Mathematical functions for MathTS - arithmetic, algebra, trigonometry, statistics, and more",
5
5
  "author": "Daniel Simon Jr.",
6
6
  "license": "MIT",
@@ -31,9 +31,9 @@
31
31
  "build:prod": "tsup src/index.ts --format esm --clean --minify --treeshake"
32
32
  },
33
33
  "dependencies": {
34
- "@danielsimonjr/mathts-core": "0.1.3",
35
- "@danielsimonjr/mathts-expression": "0.2.2",
36
- "@danielsimonjr/mathts-matrix": "0.1.4",
34
+ "@danielsimonjr/mathts-core": "0.1.4",
35
+ "@danielsimonjr/mathts-expression": "0.2.3",
36
+ "@danielsimonjr/mathts-matrix": "0.1.5",
37
37
  "@danielsimonjr/mathts-parallel": "0.2.1",
38
38
  "bignumber.js": "^9.1.2",
39
39
  "complex.js": "^2.2.5",