@danielsimonjr/mathts-functions 0.47.0 → 0.48.0
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/dist/cas-integration.d.ts +6 -0
- package/dist/cas-integration.d.ts.map +1 -1
- package/dist/index.js +189 -130
- package/dist/typed/algebra.d.ts +18 -6
- package/dist/typed/algebra.d.ts.map +1 -1
- package/dist/typed/cas.d.ts +31 -27
- package/dist/typed/cas.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -3,8 +3,14 @@
|
|
|
3
3
|
* returned as an expression string (without the constant of integration). If the
|
|
4
4
|
* integrand is outside the supported subset, returns `integral(expr, variable)`.
|
|
5
5
|
*
|
|
6
|
+
* The direct recursion is tried first; on failure, partial-fraction integration
|
|
7
|
+
* (for rational integrands) and tabular integration by parts (for
|
|
8
|
+
* polynomial·{exp,sin,cos}) are attempted before giving up with the marker.
|
|
9
|
+
*
|
|
6
10
|
* @example symbolicIntegral('x^3') // 'x^4 / 4'
|
|
7
11
|
* @example symbolicIntegral('cos(3*x + 1)') // 'sin(3 * x + 1) / 3'
|
|
12
|
+
* @example symbolicIntegral('1/(x^2 - 1)') // partial fractions → sum of logs
|
|
13
|
+
* @example symbolicIntegral('x * sin(x)') // by parts → 'sin(x) - x*cos(x)'
|
|
8
14
|
*/
|
|
9
15
|
export declare function symbolicIntegral(expr: string, variable?: string): string;
|
|
10
16
|
//# sourceMappingURL=cas-integration.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cas-integration.d.ts","sourceRoot":"","sources":["../src/cas-integration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cas-integration.d.ts","sourceRoot":"","sources":["../src/cas-integration.ts"],"names":[],"mappings":"AAoWA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAM,GAAG,MAAM,CAWrE"}
|
package/dist/index.js
CHANGED
|
@@ -10230,10 +10230,10 @@ function splitProductChain(term) {
|
|
|
10230
10230
|
return { nums, dens };
|
|
10231
10231
|
}
|
|
10232
10232
|
function expand(expr) {
|
|
10233
|
-
const
|
|
10234
|
-
if (
|
|
10233
|
+
const vars = variables(expr);
|
|
10234
|
+
if (vars.length >= 1) {
|
|
10235
10235
|
try {
|
|
10236
|
-
return polyToString(polyFromExpression(expr,
|
|
10236
|
+
return polyToString(polyFromExpression(expr, vars), vars);
|
|
10237
10237
|
} catch {
|
|
10238
10238
|
}
|
|
10239
10239
|
}
|
|
@@ -10256,8 +10256,71 @@ function expand(expr) {
|
|
|
10256
10256
|
}
|
|
10257
10257
|
return result;
|
|
10258
10258
|
}
|
|
10259
|
+
function monomialString(powers, vars) {
|
|
10260
|
+
return powers.map((e, i) => e === 0 ? "" : e === 1 ? vars[i] : `${vars[i]}^${e}`).filter(Boolean).join("*");
|
|
10261
|
+
}
|
|
10262
|
+
function perfectIntSqrt(n) {
|
|
10263
|
+
if (n < 0) return null;
|
|
10264
|
+
const r = Math.round(Math.sqrt(n));
|
|
10265
|
+
return r * r === n ? r : null;
|
|
10266
|
+
}
|
|
10267
|
+
function tryMonomialDiffOfSquares(poly, vars) {
|
|
10268
|
+
if (poly.length !== 2) return null;
|
|
10269
|
+
const [t1, t2] = poly;
|
|
10270
|
+
if (Math.sign(t1.coeff) === Math.sign(t2.coeff)) return null;
|
|
10271
|
+
const pos = t1.coeff > 0 ? t1 : t2;
|
|
10272
|
+
const neg = t1.coeff > 0 ? t2 : t1;
|
|
10273
|
+
const cp = perfectIntSqrt(Math.round(pos.coeff));
|
|
10274
|
+
const cn = perfectIntSqrt(Math.round(-neg.coeff));
|
|
10275
|
+
if (cp === null || cn === null) return null;
|
|
10276
|
+
if (!pos.powers.every((e) => e % 2 === 0) || !neg.powers.every((e) => e % 2 === 0)) return null;
|
|
10277
|
+
const half = (t) => t.powers.map((e) => e / 2);
|
|
10278
|
+
const term = (c, powers) => {
|
|
10279
|
+
const mon = monomialString(powers, vars);
|
|
10280
|
+
if (!mon) return String(c);
|
|
10281
|
+
return c === 1 ? mon : `${c}*${mon}`;
|
|
10282
|
+
};
|
|
10283
|
+
const A = term(cp, half(pos));
|
|
10284
|
+
const B = term(cn, half(neg));
|
|
10285
|
+
return [`(${A} - ${B})`, `(${A} + ${B})`];
|
|
10286
|
+
}
|
|
10287
|
+
function factorMultivariate(expr, vars) {
|
|
10288
|
+
let poly;
|
|
10289
|
+
try {
|
|
10290
|
+
poly = polyFromExpression(expr, vars);
|
|
10291
|
+
} catch {
|
|
10292
|
+
return null;
|
|
10293
|
+
}
|
|
10294
|
+
if (poly.length < 2 || !poly.every((t) => isNearInt(t.coeff))) return null;
|
|
10295
|
+
let content = 0;
|
|
10296
|
+
for (const t of poly) content = gcdNum(content, Math.abs(Math.round(t.coeff)));
|
|
10297
|
+
if (content === 0) return null;
|
|
10298
|
+
const nVars = vars.length;
|
|
10299
|
+
const monPow = new Array(nVars).fill(Infinity);
|
|
10300
|
+
for (const t of poly)
|
|
10301
|
+
for (let i = 0; i < nVars; i++) monPow[i] = Math.min(monPow[i], t.powers[i]);
|
|
10302
|
+
const hasMonomial = monPow.some((e) => e > 0);
|
|
10303
|
+
const cofactor = normalize(
|
|
10304
|
+
poly.map((t) => ({
|
|
10305
|
+
coeff: Math.round(t.coeff) / content,
|
|
10306
|
+
powers: t.powers.map((e, i) => e - monPow[i])
|
|
10307
|
+
}))
|
|
10308
|
+
);
|
|
10309
|
+
const dsq = tryMonomialDiffOfSquares(cofactor, vars);
|
|
10310
|
+
if (!hasMonomial && !dsq) return null;
|
|
10311
|
+
const parts = [];
|
|
10312
|
+
if (content > 1) parts.push(String(content));
|
|
10313
|
+
if (hasMonomial) parts.push(monomialString(monPow, vars));
|
|
10314
|
+
if (dsq) parts.push(dsq[0], dsq[1]);
|
|
10315
|
+
else parts.push(`(${polyToString(cofactor, vars)})`);
|
|
10316
|
+
return parts.join("*");
|
|
10317
|
+
}
|
|
10259
10318
|
function factor(expr) {
|
|
10260
10319
|
const univariateVars = variables(expr);
|
|
10320
|
+
if (univariateVars.length >= 2) {
|
|
10321
|
+
const mv = factorMultivariate(expr, univariateVars);
|
|
10322
|
+
if (mv !== null) return mv;
|
|
10323
|
+
}
|
|
10261
10324
|
if (univariateVars.length === 1) {
|
|
10262
10325
|
try {
|
|
10263
10326
|
const v = univariateVars[0];
|
|
@@ -43784,65 +43847,6 @@ function _combineLikeTerms(expr) {
|
|
|
43784
43847
|
if (parts.length === 0) return "0";
|
|
43785
43848
|
return parts.join(" + ").replace(/\+\s*-/g, "- ");
|
|
43786
43849
|
}
|
|
43787
|
-
function _casExpandOne(expr) {
|
|
43788
|
-
let result = expr;
|
|
43789
|
-
result = result.replace(/\(([^()]+)\)\^2/g, "($1)*($1)");
|
|
43790
|
-
const mulPattern = /\(([^()]+)\)\s*\*\s*\(([^()]+)\)/g;
|
|
43791
|
-
let match;
|
|
43792
|
-
let safetyCount = 0;
|
|
43793
|
-
while ((match = mulPattern.exec(result)) !== null && safetyCount++ < 20) {
|
|
43794
|
-
const leftTerms = match[1].split(/\s*\+\s*/);
|
|
43795
|
-
const rightTerms = match[2].split(/\s*\+\s*/);
|
|
43796
|
-
const products = [];
|
|
43797
|
-
for (const l of leftTerms) {
|
|
43798
|
-
for (const rv of rightTerms) {
|
|
43799
|
-
products.push(l.trim() + "*" + rv.trim());
|
|
43800
|
-
}
|
|
43801
|
-
}
|
|
43802
|
-
result = result.slice(0, match.index) + products.join(" + ") + result.slice(match.index + match[0].length);
|
|
43803
|
-
mulPattern.lastIndex = 0;
|
|
43804
|
-
}
|
|
43805
|
-
return result;
|
|
43806
|
-
}
|
|
43807
|
-
function _casFactorOne(expr) {
|
|
43808
|
-
function _gcd2(a, b) {
|
|
43809
|
-
a = Math.abs(a);
|
|
43810
|
-
b = Math.abs(b);
|
|
43811
|
-
while (b !== 0) {
|
|
43812
|
-
const tmp = b;
|
|
43813
|
-
b = a % b;
|
|
43814
|
-
a = tmp;
|
|
43815
|
-
}
|
|
43816
|
-
return a;
|
|
43817
|
-
}
|
|
43818
|
-
const normalized = expr.replace(/\s*-\s*/g, " + -");
|
|
43819
|
-
const terms = normalized.split(/\s*\+\s*/).filter((t) => t.trim() !== "");
|
|
43820
|
-
if (terms.length < 2) return expr;
|
|
43821
|
-
const coeffs = [];
|
|
43822
|
-
const varParts = [];
|
|
43823
|
-
for (const term of terms) {
|
|
43824
|
-
const numMatch = term.match(/^(-?\d+)\s*\*?\s*(.*)$/);
|
|
43825
|
-
if (numMatch) {
|
|
43826
|
-
coeffs.push(parseInt(numMatch[1], 10));
|
|
43827
|
-
varParts.push(numMatch[2] || "1");
|
|
43828
|
-
} else {
|
|
43829
|
-
return expr;
|
|
43830
|
-
}
|
|
43831
|
-
}
|
|
43832
|
-
let g = Math.abs(coeffs[0]);
|
|
43833
|
-
for (let i = 1; i < coeffs.length; i++) {
|
|
43834
|
-
g = _gcd2(g, Math.abs(coeffs[i]));
|
|
43835
|
-
}
|
|
43836
|
-
if (g <= 1) return expr;
|
|
43837
|
-
const inner = coeffs.map((c, i) => {
|
|
43838
|
-
const reduced = c / g;
|
|
43839
|
-
if (varParts[i] === "1") return String(reduced);
|
|
43840
|
-
if (reduced === 1) return varParts[i];
|
|
43841
|
-
if (reduced === -1) return "-" + varParts[i];
|
|
43842
|
-
return reduced + "*" + varParts[i];
|
|
43843
|
-
}).join(" + ");
|
|
43844
|
-
return g + "*(" + inner + ")";
|
|
43845
|
-
}
|
|
43846
43850
|
function _casDerivativeOne(expr, variable) {
|
|
43847
43851
|
const terms = expr.split(/\s*\+\s*/);
|
|
43848
43852
|
const derivedTerms = [];
|
|
@@ -44101,76 +44105,15 @@ function casDerivative(input, variable) {
|
|
|
44101
44105
|
}
|
|
44102
44106
|
function casExpand(input) {
|
|
44103
44107
|
if (!Array.isArray(input)) {
|
|
44104
|
-
return
|
|
44105
|
-
}
|
|
44106
|
-
const strs = input.map(_nodeToStr);
|
|
44107
|
-
if (strs.length < CAS_BATCH_THRESHOLD || !computePool12.isReady()) {
|
|
44108
|
-
return Promise.resolve(strs.map(_casExpandOne));
|
|
44108
|
+
return expand(_nodeToStr(input));
|
|
44109
44109
|
}
|
|
44110
|
-
return
|
|
44111
|
-
let result = exprStr;
|
|
44112
|
-
result = result.replace(/\(([^()]+)\)\^2/g, "($1)*($1)");
|
|
44113
|
-
const mulPattern = /\(([^()]+)\)\s*\*\s*\(([^()]+)\)/g;
|
|
44114
|
-
let match;
|
|
44115
|
-
let safetyCount = 0;
|
|
44116
|
-
while ((match = mulPattern.exec(result)) !== null && safetyCount++ < 20) {
|
|
44117
|
-
const leftTerms = match[1].split(/\s*\+\s*/);
|
|
44118
|
-
const rightTerms = match[2].split(/\s*\+\s*/);
|
|
44119
|
-
const products = [];
|
|
44120
|
-
for (const l of leftTerms) {
|
|
44121
|
-
for (const rv of rightTerms) {
|
|
44122
|
-
products.push(l.trim() + "*" + rv.trim());
|
|
44123
|
-
}
|
|
44124
|
-
}
|
|
44125
|
-
result = result.slice(0, match.index) + products.join(" + ") + result.slice(match.index + match[0].length);
|
|
44126
|
-
mulPattern.lastIndex = 0;
|
|
44127
|
-
}
|
|
44128
|
-
return result;
|
|
44129
|
-
}).then((r) => r.result);
|
|
44110
|
+
return Promise.resolve(input.map((e) => expand(_nodeToStr(e))));
|
|
44130
44111
|
}
|
|
44131
44112
|
function casFactor(input) {
|
|
44132
44113
|
if (!Array.isArray(input)) {
|
|
44133
|
-
return
|
|
44114
|
+
return factor(_nodeToStr(input));
|
|
44134
44115
|
}
|
|
44135
|
-
|
|
44136
|
-
if (strs.length < CAS_BATCH_THRESHOLD || !computePool12.isReady()) {
|
|
44137
|
-
return Promise.resolve(strs.map(_casFactorOne));
|
|
44138
|
-
}
|
|
44139
|
-
return computePool12.map(strs, (exprStr) => {
|
|
44140
|
-
function _gcdW(a, b) {
|
|
44141
|
-
a = Math.abs(a);
|
|
44142
|
-
b = Math.abs(b);
|
|
44143
|
-
while (b !== 0) {
|
|
44144
|
-
const tmp = b;
|
|
44145
|
-
b = a % b;
|
|
44146
|
-
a = tmp;
|
|
44147
|
-
}
|
|
44148
|
-
return a;
|
|
44149
|
-
}
|
|
44150
|
-
const normalized = exprStr.replace(/\s*-\s*/g, " + -");
|
|
44151
|
-
const terms = normalized.split(/\s*\+\s*/).filter((t) => t.trim() !== "");
|
|
44152
|
-
if (terms.length < 2) return exprStr;
|
|
44153
|
-
const coeffs = [];
|
|
44154
|
-
const varParts = [];
|
|
44155
|
-
for (const term of terms) {
|
|
44156
|
-
const numMatch = term.match(/^(-?\d+)\s*\*?\s*(.*)$/);
|
|
44157
|
-
if (numMatch) {
|
|
44158
|
-
coeffs.push(parseInt(numMatch[1], 10));
|
|
44159
|
-
varParts.push(numMatch[2] || "1");
|
|
44160
|
-
} else return exprStr;
|
|
44161
|
-
}
|
|
44162
|
-
let g = Math.abs(coeffs[0]);
|
|
44163
|
-
for (let i = 1; i < coeffs.length; i++) g = _gcdW(g, Math.abs(coeffs[i]));
|
|
44164
|
-
if (g <= 1) return exprStr;
|
|
44165
|
-
const inner = coeffs.map((c, i) => {
|
|
44166
|
-
const reduced = c / g;
|
|
44167
|
-
if (varParts[i] === "1") return String(reduced);
|
|
44168
|
-
if (reduced === 1) return varParts[i];
|
|
44169
|
-
if (reduced === -1) return "-" + varParts[i];
|
|
44170
|
-
return reduced + "*" + varParts[i];
|
|
44171
|
-
}).join(" + ");
|
|
44172
|
-
return g + "*(" + inner + ")";
|
|
44173
|
-
}).then((r) => r.result);
|
|
44116
|
+
return Promise.resolve(input.map((e) => factor(_nodeToStr(e))));
|
|
44174
44117
|
}
|
|
44175
44118
|
|
|
44176
44119
|
// src/config-api.ts
|
|
@@ -48326,7 +48269,9 @@ function isConst(n, x) {
|
|
|
48326
48269
|
const node = unwrap(n);
|
|
48327
48270
|
if (node.type === "SymbolNode") return node.name !== x;
|
|
48328
48271
|
if (node.type === "ConstantNode") return true;
|
|
48329
|
-
return [...node.args ?? [], ...node.content ? [node.content] : []].every(
|
|
48272
|
+
return [...node.args ?? [], ...node.content ? [node.content] : []].every(
|
|
48273
|
+
(a) => isConst(a, x)
|
|
48274
|
+
);
|
|
48330
48275
|
}
|
|
48331
48276
|
function num(v) {
|
|
48332
48277
|
return Number.isInteger(v) ? String(v) : String(Number(v.toPrecision(15)));
|
|
@@ -48422,12 +48367,126 @@ function integrateNode(raw, x) {
|
|
|
48422
48367
|
throw new NotIntegrable(node.type);
|
|
48423
48368
|
}
|
|
48424
48369
|
}
|
|
48370
|
+
var stripWs = (s) => s.replace(/\s+/g, "");
|
|
48371
|
+
function tryPartialFractions(expr, x) {
|
|
48372
|
+
const vars = variables(expr);
|
|
48373
|
+
if (vars.length !== 1 || vars[0] !== x) return null;
|
|
48374
|
+
let decomposed;
|
|
48375
|
+
try {
|
|
48376
|
+
decomposed = apart(expr);
|
|
48377
|
+
} catch {
|
|
48378
|
+
return null;
|
|
48379
|
+
}
|
|
48380
|
+
if (stripWs(decomposed) === stripWs(expr)) return null;
|
|
48381
|
+
try {
|
|
48382
|
+
return integrateNode(parse2(decomposed), x);
|
|
48383
|
+
} catch {
|
|
48384
|
+
return null;
|
|
48385
|
+
}
|
|
48386
|
+
}
|
|
48387
|
+
function flattenMul(raw) {
|
|
48388
|
+
const n = unwrap(raw);
|
|
48389
|
+
if (n.type === "OperatorNode" && n.op === "*") {
|
|
48390
|
+
return (n.args ?? []).flatMap(flattenMul);
|
|
48391
|
+
}
|
|
48392
|
+
return [n];
|
|
48393
|
+
}
|
|
48394
|
+
function polyDenseFromStr(s, x) {
|
|
48395
|
+
const poly = polyFromExpression(s, [x]);
|
|
48396
|
+
let maxPow = 0;
|
|
48397
|
+
for (const t of poly) maxPow = Math.max(maxPow, t.powers[0] ?? 0);
|
|
48398
|
+
const dense = new Array(maxPow + 1).fill(0);
|
|
48399
|
+
for (const t of poly) dense[t.powers[0]] += t.coeff;
|
|
48400
|
+
return dense;
|
|
48401
|
+
}
|
|
48402
|
+
function derivDense(c) {
|
|
48403
|
+
if (c.length <= 1) return [0];
|
|
48404
|
+
return c.slice(1).map((v, i) => v * (i + 1));
|
|
48405
|
+
}
|
|
48406
|
+
function densePolyToStr(coeffs, x) {
|
|
48407
|
+
const parts = [];
|
|
48408
|
+
for (let i = coeffs.length - 1; i >= 0; i--) {
|
|
48409
|
+
const c = coeffs[i];
|
|
48410
|
+
if (Math.abs(c) < 1e-12) continue;
|
|
48411
|
+
if (i === 0) parts.push(num(c));
|
|
48412
|
+
else {
|
|
48413
|
+
const v = i === 1 ? x : `${x}^${i}`;
|
|
48414
|
+
if (Math.abs(c - 1) < 1e-12) parts.push(v);
|
|
48415
|
+
else if (Math.abs(c + 1) < 1e-12) parts.push(`-${v}`);
|
|
48416
|
+
else parts.push(`${num(c)}*${v}`);
|
|
48417
|
+
}
|
|
48418
|
+
}
|
|
48419
|
+
if (parts.length === 0) return "0";
|
|
48420
|
+
return parts.join(" + ").replace(/\+ -/g, "- ");
|
|
48421
|
+
}
|
|
48422
|
+
var isZeroDense = (c) => c.every((v) => Math.abs(v) < 1e-12);
|
|
48423
|
+
function repeatedAntideriv(fn, u, m) {
|
|
48424
|
+
if (fn === "exp") return { str: `exp(${u})`, sign: 1 };
|
|
48425
|
+
const rem = ((m - 1) % 4 + 4) % 4;
|
|
48426
|
+
if (fn === "sin") {
|
|
48427
|
+
return [
|
|
48428
|
+
{ str: `cos(${u})`, sign: -1 },
|
|
48429
|
+
{ str: `sin(${u})`, sign: -1 },
|
|
48430
|
+
{ str: `cos(${u})`, sign: 1 },
|
|
48431
|
+
{ str: `sin(${u})`, sign: 1 }
|
|
48432
|
+
][rem];
|
|
48433
|
+
}
|
|
48434
|
+
return [
|
|
48435
|
+
{ str: `sin(${u})`, sign: 1 },
|
|
48436
|
+
{ str: `cos(${u})`, sign: -1 },
|
|
48437
|
+
{ str: `sin(${u})`, sign: -1 },
|
|
48438
|
+
{ str: `cos(${u})`, sign: 1 }
|
|
48439
|
+
][rem];
|
|
48440
|
+
}
|
|
48441
|
+
function tryByParts(expr, x) {
|
|
48442
|
+
let root2;
|
|
48443
|
+
try {
|
|
48444
|
+
root2 = unwrap(parse2(expr));
|
|
48445
|
+
} catch {
|
|
48446
|
+
return null;
|
|
48447
|
+
}
|
|
48448
|
+
if (root2.type !== "OperatorNode" || root2.op !== "*") return null;
|
|
48449
|
+
const factors = flattenMul(root2);
|
|
48450
|
+
const gFactors = factors.filter((f) => f.type === "FunctionNode");
|
|
48451
|
+
if (gFactors.length !== 1) return null;
|
|
48452
|
+
const g = gFactors[0];
|
|
48453
|
+
const fn = g.fn?.name ?? g.name ?? "";
|
|
48454
|
+
if (fn !== "exp" && fn !== "sin" && fn !== "cos") return null;
|
|
48455
|
+
const arg3 = (g.args ?? [])[0];
|
|
48456
|
+
if (!arg3) return null;
|
|
48457
|
+
const u = arg3.toString();
|
|
48458
|
+
const a = linearSlope(u, x);
|
|
48459
|
+
if (a === null) return null;
|
|
48460
|
+
const rest = factors.filter((f) => f !== g);
|
|
48461
|
+
const pStr = rest.length ? rest.map((f) => `(${f.toString()})`).join("*") : "1";
|
|
48462
|
+
let pk;
|
|
48463
|
+
try {
|
|
48464
|
+
pk = polyDenseFromStr(pStr, x);
|
|
48465
|
+
} catch {
|
|
48466
|
+
return null;
|
|
48467
|
+
}
|
|
48468
|
+
const terms = [];
|
|
48469
|
+
for (let k = 0; !isZeroDense(pk); k++) {
|
|
48470
|
+
const m = k + 1;
|
|
48471
|
+
const { str: gStr, sign: sign3 } = repeatedAntideriv(fn, u, m);
|
|
48472
|
+
const coeff = (k % 2 === 0 ? 1 : -1) * sign3 * Math.pow(1 / a, m);
|
|
48473
|
+
const polyStr = densePolyToStr(pk, x);
|
|
48474
|
+
if (polyStr !== "0") {
|
|
48475
|
+
const polyFactor = polyStr === "1" ? "" : `(${polyStr}) * `;
|
|
48476
|
+
terms.push(`${num(coeff)} * ${polyFactor}${gStr}`);
|
|
48477
|
+
}
|
|
48478
|
+
pk = derivDense(pk);
|
|
48479
|
+
if (k > 64) break;
|
|
48480
|
+
}
|
|
48481
|
+
if (terms.length === 0) return null;
|
|
48482
|
+
return terms.join(" + ").replace(/\+ -/g, "- ");
|
|
48483
|
+
}
|
|
48425
48484
|
function symbolicIntegral(expr, variable = "x") {
|
|
48426
48485
|
try {
|
|
48427
48486
|
return integrateNode(parse2(expr), variable);
|
|
48428
48487
|
} catch (e) {
|
|
48429
|
-
if (e instanceof NotIntegrable)
|
|
48430
|
-
|
|
48488
|
+
if (!(e instanceof NotIntegrable)) throw e;
|
|
48489
|
+
return tryPartialFractions(expr, variable) ?? tryByParts(expr, variable) ?? `integral(${expr}, ${variable})`;
|
|
48431
48490
|
}
|
|
48432
48491
|
}
|
|
48433
48492
|
|
package/dist/typed/algebra.d.ts
CHANGED
|
@@ -192,12 +192,16 @@ export declare function substitute(expr: string, vars: Record<string, string>):
|
|
|
192
192
|
/**
|
|
193
193
|
* Expand an expression string by distributing multiplication over addition.
|
|
194
194
|
*
|
|
195
|
-
* **
|
|
196
|
-
* powers, no function calls
|
|
197
|
-
*
|
|
195
|
+
* **Polynomials in one OR MORE variables** (integer/non-negative-integer
|
|
196
|
+
* powers, no function calls, division only by numeric constants) are expanded
|
|
197
|
+
* EXACTLY via `polyFromExpression` + `polyToString`, collecting like terms:
|
|
198
|
+
* `expand('(x+1)^3')` → `'1*x^3 + 3*x^2 + 3*x + 1'`;
|
|
199
|
+
* `expand('(x+y)^2')` → `'1*y^2 + 2*x*y + 1*x^2'`;
|
|
200
|
+
* `expand('(x+y)*(x-y)')` → `'-1*y^2 + 1*x^2'` (the `x*y` terms cancel).
|
|
198
201
|
*
|
|
199
|
-
* Everything else (
|
|
200
|
-
* the original regex-based distributor below
|
|
202
|
+
* Everything else (function calls like `sin`, non-integer exponents, division
|
|
203
|
+
* by a variable) falls back to the original regex-based distributor below,
|
|
204
|
+
* which does NOT collect like terms.
|
|
201
205
|
*
|
|
202
206
|
* @param expr - Expression string
|
|
203
207
|
* @returns Expanded expression string
|
|
@@ -206,6 +210,7 @@ export declare function substitute(expr: string, vars: Record<string, string>):
|
|
|
206
210
|
* ```typescript
|
|
207
211
|
* expand('(a+b)*(c+d)'); // 'a*c + a*d + b*c + b*d'
|
|
208
212
|
* expand('(x+1)^3'); // '1*x^3 + 3*x^2 + 3*x + 1'
|
|
213
|
+
* expand('(x+y)^2'); // '1*y^2 + 2*x*y + 1*x^2'
|
|
209
214
|
* ```
|
|
210
215
|
*/
|
|
211
216
|
export declare function expand(expr: string): string;
|
|
@@ -219,7 +224,14 @@ export declare function expand(expr: string): string;
|
|
|
219
224
|
* out exactly, and any irreducible remainder is left as-is:
|
|
220
225
|
* `factor('x^2-1')` → `'(x - 1)*(x + 1)'`.
|
|
221
226
|
*
|
|
222
|
-
*
|
|
227
|
+
* **Multivariate polynomials** get the tractable subset (see
|
|
228
|
+
* {@link factorMultivariate}): integer-content + common-monomial extraction
|
|
229
|
+
* and monomial difference-of-squares — `x^2*y + x*y^2 → 'x*y*(x + y)'`,
|
|
230
|
+
* `4*x^2 - 9*y^2 → '(2*x - 3*y)*(2*x + 3*y)'`. Full multivariate factorization
|
|
231
|
+
* into irreducible factors (Wang/Zassenhaus/EEZ) is OUT OF SCOPE and returns
|
|
232
|
+
* the partially-factored or unchanged expression rather than a wrong answer.
|
|
233
|
+
*
|
|
234
|
+
* Everything else (no rational root, no common factor) falls back to the
|
|
223
235
|
* original common-integer-factor extraction below.
|
|
224
236
|
*
|
|
225
237
|
* @param expr - Expression string
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"algebra.d.ts","sourceRoot":"","sources":["../../src/typed/algebra.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"algebra.d.ts","sourceRoot":"","sources":["../../src/typed/algebra.ts"],"names":[],"mappings":"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"}
|
package/dist/typed/cas.d.ts
CHANGED
|
@@ -640,29 +640,33 @@ export declare function casDerivative(expr: string | MathNode, variable: string)
|
|
|
640
640
|
*/
|
|
641
641
|
export declare function casDerivative(exprs: Array<string | MathNode>, variable: string): Promise<string[]>;
|
|
642
642
|
/**
|
|
643
|
-
* Expand
|
|
644
|
-
* (CAS batch-capable variant).
|
|
643
|
+
* Expand an expression, distributing products over sums and collecting like
|
|
644
|
+
* terms (CAS batch-capable variant).
|
|
645
645
|
*
|
|
646
|
-
*
|
|
647
|
-
* `algebra.ts
|
|
648
|
-
*
|
|
646
|
+
* Delegates to the real polynomial engine {@link algebraExpand} (`expand` from
|
|
647
|
+
* `algebra.ts`): polynomials in one OR MORE variables are expanded EXACTLY
|
|
648
|
+
* (`'(x+1)^2'` → `'1*x^2 + 2*x + 1'`, `'(x+y)^2'` → `'1*y^2 + 2*x*y + 1*x^2'`).
|
|
649
|
+
* Non-polynomial pieces fall back to that engine's regex distributor.
|
|
650
|
+
*
|
|
651
|
+
* (Formerly a crude string stub that emitted uncollected products like
|
|
652
|
+
* `'x*x + x*1 + 1*x + 1*1'`; now wired to the maintained engine.)
|
|
649
653
|
*
|
|
650
654
|
* @param expr - Expression string or parsed MathNode
|
|
651
655
|
* @returns Expanded expression string
|
|
652
656
|
*
|
|
653
657
|
* @example
|
|
654
|
-
* casExpand('(x+1)^2')
|
|
655
|
-
* casExpand('(
|
|
658
|
+
* casExpand('(x+1)^2') // => '1*x^2 + 2*x + 1'
|
|
659
|
+
* casExpand('(x+y)*(x-y)') // => '-1*y^2 + 1*x^2'
|
|
656
660
|
*/
|
|
657
661
|
export declare function casExpand(expr: string | MathNode): string;
|
|
658
662
|
/**
|
|
659
|
-
* Expand an array of expressions (batch overload
|
|
660
|
-
*
|
|
661
|
-
* Arrays shorter than {@link CAS_BATCH_THRESHOLD} (16) are processed
|
|
662
|
-
* synchronously in-process. Longer arrays are dispatched to the worker pool.
|
|
663
|
+
* Expand an array of expressions (batch overload).
|
|
663
664
|
*
|
|
664
|
-
*
|
|
665
|
-
*
|
|
665
|
+
* Each element is expanded via the real engine {@link algebraExpand}. Kept
|
|
666
|
+
* async (resolves to `string[]`) for API compatibility; because the engine
|
|
667
|
+
* relies on the polynomial parser it runs in-process rather than fanning out
|
|
668
|
+
* to workers (a worker cannot import it), so batch results are always
|
|
669
|
+
* identical to the per-element single-expression call.
|
|
666
670
|
*
|
|
667
671
|
* @param exprs - Array of expression strings (or MathNodes)
|
|
668
672
|
* @returns Promise resolving to an array of expanded expression strings
|
|
@@ -672,32 +676,32 @@ export declare function casExpand(expr: string | MathNode): string;
|
|
|
672
676
|
*/
|
|
673
677
|
export declare function casExpand(exprs: Array<string | MathNode>): Promise<string[]>;
|
|
674
678
|
/**
|
|
675
|
-
* Factor
|
|
676
|
-
* (CAS batch-capable variant).
|
|
679
|
+
* Factor an expression (CAS batch-capable variant).
|
|
677
680
|
*
|
|
678
|
-
*
|
|
679
|
-
* `algebra.ts
|
|
680
|
-
*
|
|
681
|
+
* Delegates to the real factoring engine {@link algebraFactor} (`factor` from
|
|
682
|
+
* `algebra.ts`): univariate polynomials are factored over ℚ via the
|
|
683
|
+
* rational-root theorem (`'x^2 - 1'` → `'(x - 1)*(x + 1)'`), multivariate
|
|
684
|
+
* polynomials get integer-content / common-monomial / difference-of-squares
|
|
685
|
+
* extraction (`'x^2*y + x*y^2'` → `'x*y*(x + y)'`), and anything else falls
|
|
686
|
+
* back to integer-GCD extraction (`'2*x + 4*y'` → `'2*(x + 2*y)'`).
|
|
681
687
|
*
|
|
682
|
-
*
|
|
683
|
-
* greater than 1 is found, or when terms do not follow the `c*var` pattern.
|
|
688
|
+
* (Formerly a crude integer-GCD-only stub; now wired to the maintained engine.)
|
|
684
689
|
*
|
|
685
690
|
* @param expr - Expression string or parsed MathNode
|
|
686
691
|
* @returns Factored expression string
|
|
687
692
|
*
|
|
688
693
|
* @example
|
|
689
694
|
* casFactor('2*x + 4*y') // => '2*(x + 2*y)'
|
|
690
|
-
* casFactor('x^2 - 1') // => 'x
|
|
695
|
+
* casFactor('x^2 - 1') // => '(x - 1)*(x + 1)'
|
|
691
696
|
*/
|
|
692
697
|
export declare function casFactor(expr: string | MathNode): string;
|
|
693
698
|
/**
|
|
694
|
-
* Factor an array of expressions (batch overload
|
|
699
|
+
* Factor an array of expressions (batch overload).
|
|
695
700
|
*
|
|
696
|
-
*
|
|
697
|
-
*
|
|
698
|
-
*
|
|
699
|
-
*
|
|
700
|
-
* before dispatch.
|
|
701
|
+
* Each element is factored via the real engine {@link algebraFactor}. Kept
|
|
702
|
+
* async (resolves to `string[]`) for API compatibility; runs in-process (the
|
|
703
|
+
* engine cannot be serialised to a worker), so batch results are always
|
|
704
|
+
* identical to the per-element single-expression call.
|
|
701
705
|
*
|
|
702
706
|
* @param exprs - Array of expression strings (or MathNodes)
|
|
703
707
|
* @returns Promise resolving to an array of factored expression strings
|
package/dist/typed/cas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cas.d.ts","sourceRoot":"","sources":["../../src/typed/cas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,KAAK,EAAY,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"cas.d.ts","sourceRoot":"","sources":["../../src/typed/cas.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED