@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.
@@ -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":"AA2KA;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAM,GAAG,MAAM,CAOrE"}
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 univariateVars = variables(expr);
10234
- if (univariateVars.length === 1) {
10233
+ const vars = variables(expr);
10234
+ if (vars.length >= 1) {
10235
10235
  try {
10236
- return polyToString(polyFromExpression(expr, univariateVars), univariateVars);
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 _casExpandOne(_nodeToStr(input));
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 computePool12.map(strs, (exprStr) => {
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 _casFactorOne(_nodeToStr(input));
44114
+ return factor(_nodeToStr(input));
44134
44115
  }
44135
- const strs = input.map(_nodeToStr);
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((a) => isConst(a, x));
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) return `integral(${expr}, ${variable})`;
48430
- throw e;
48488
+ if (!(e instanceof NotIntegrable)) throw e;
48489
+ return tryPartialFractions(expr, variable) ?? tryByParts(expr, variable) ?? `integral(${expr}, ${variable})`;
48431
48490
  }
48432
48491
  }
48433
48492
 
@@ -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
- * **Univariate polynomials** (a single variable, integer/no non-integer
196
- * powers, no function calls) are expanded EXACTLY via `polyFromExpression` +
197
- * `polyToString`: `expand('(x+1)^3')` `'1*x^3 + 3*x^2 + 3*x + 1'`.
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 (multiple variables, non-polynomial pieces) falls back to
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
- * Everything else (multiple variables, no rational root) falls back to the
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":"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"}
1
+ {"version":3,"file":"algebra.d.ts","sourceRoot":"","sources":["../../src/typed/algebra.ts"],"names":[],"mappings":"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"}
@@ -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 a single expression by distributing products over sums
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
- * Named `casExpand` to avoid ambiguity with the `expand` function in
647
- * `algebra.ts`. Both perform algebraic expansion; this one additionally
648
- * supports a batch-array overload with worker fan-out for large inputs.
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') // => 'x*x + x*1 + 1*x + 1*1'
655
- * casExpand('(a+b)*(a-b)') // distributes fully
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 with worker fan-out).
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
- * **String round-trip:** batch inputs are serialised to their source string
665
- * before dispatch.
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 a single expression by extracting the integer GCD from all terms
676
- * (CAS batch-capable variant).
679
+ * Factor an expression (CAS batch-capable variant).
677
680
  *
678
- * Named `casFactor` to avoid ambiguity with the `factor` function in
679
- * `algebra.ts`. Both factor expressions; this one additionally supports a
680
- * batch-array overload with worker fan-out for large inputs.
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
- * Returns the original expression unchanged when no common integer factor
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^2 - 1' (no integer GCD > 1)
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 with worker fan-out).
699
+ * Factor an array of expressions (batch overload).
695
700
  *
696
- * Arrays shorter than {@link CAS_BATCH_THRESHOLD} (16) are processed
697
- * synchronously in-process. Longer arrays are dispatched to the worker pool.
698
- *
699
- * **String round-trip:** batch inputs are serialised to their source string
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
@@ -1 +1 @@
1
- {"version":3,"file":"cas.d.ts","sourceRoot":"","sources":["../../src/typed/cas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cas.d.ts","sourceRoot":"","sources":["../../src/typed/cas.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.47.0",
3
+ "version": "0.48.0",
4
4
  "description": "Mathematical functions for MathTS - arithmetic, algebra, trigonometry, statistics, and more",
5
5
  "author": "Daniel Simon Jr.",
6
6
  "license": "MIT",