@johnhenry/math 0.0.3 → 0.1.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.
@@ -14,6 +14,13 @@ export declare class DualNumber {
14
14
  static constant(x: number): DualNumber;
15
15
  /** An independent variable at `x` (unit derivative). */
16
16
  static variable(x: number): DualNumber;
17
+ /**
18
+ * Builds a dual number whose value may be outside the function's domain. A
19
+ * NaN value (e.g. `log` of a negative) makes the derivative NaN too, rather
20
+ * than leaving a finite-looking derivative (`x.deriv / x.value`) next to a
21
+ * meaningless value.
22
+ */
23
+ private static domain;
17
24
  private static lift;
18
25
  add(o: DualNumber | number): DualNumber;
19
26
  subtract(o: DualNumber | number): DualNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"DualNumber.d.ts","sourceRoot":"","sources":["../src/DualNumber.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,qBAAa,UAAU;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,KAAK,SAAI,EAAE,KAAK,SAAI;IAKhC,oCAAoC;IACpC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU;IAItC,wDAAwD;IACxD,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU;IAItC,OAAO,CAAC,MAAM,CAAC,IAAI;IAInB,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU;IAKvC,QAAQ,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU;IAK5C,QAAQ,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU;IAK5C,MAAM,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU;IAK1C,MAAM,IAAI,UAAU;IAIpB,8CAA8C;IAC9C,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU;IAW1B,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU;IAGrC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU;IAGrC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU;IAIrC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU;IAIrC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU;IAGrC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU;IAKtC,wEAAwE;IACxE,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAItE,uDAAuD;IACvD,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAK7G,oFAAoF;IACpF,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAO/E,QAAQ,IAAI,MAAM;CAGnB"}
1
+ {"version":3,"file":"DualNumber.d.ts","sourceRoot":"","sources":["../src/DualNumber.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,qBAAa,UAAU;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,KAAK,SAAI,EAAE,KAAK,SAAI;IAKhC,oCAAoC;IACpC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU;IAItC,wDAAwD;IACxD,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU;IAItC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,MAAM;IAIrB,OAAO,CAAC,MAAM,CAAC,IAAI;IAInB,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU;IAKvC,QAAQ,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU;IAK5C,QAAQ,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU;IAK5C,MAAM,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU;IAK1C,MAAM,IAAI,UAAU;IAIpB,8CAA8C;IAC9C,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU;IAW1B,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU;IAGrC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU;IAGrC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU;IAIrC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU;IAIrC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU;IAGrC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU;IAKtC,wEAAwE;IACxE,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAItE,uDAAuD;IACvD,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAK7G,oFAAoF;IACpF,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAO/E,QAAQ,IAAI,MAAM;CAGnB"}
@@ -21,6 +21,15 @@ export class DualNumber {
21
21
  static variable(x) {
22
22
  return new DualNumber(x, 1);
23
23
  }
24
+ /**
25
+ * Builds a dual number whose value may be outside the function's domain. A
26
+ * NaN value (e.g. `log` of a negative) makes the derivative NaN too, rather
27
+ * than leaving a finite-looking derivative (`x.deriv / x.value`) next to a
28
+ * meaningless value.
29
+ */
30
+ static domain(value, deriv) {
31
+ return new DualNumber(value, Number.isNaN(value) ? Number.NaN : deriv);
32
+ }
24
33
  static lift(x) {
25
34
  return x instanceof DualNumber ? x : new DualNumber(x, 0);
26
35
  }
@@ -53,7 +62,7 @@ export class DualNumber {
53
62
  // form (issue #74).
54
63
  if (n === 0)
55
64
  return new DualNumber(1, 0);
56
- return new DualNumber(this.value ** n, n * this.value ** (n - 1) * this.deriv);
65
+ return DualNumber.domain(this.value ** n, n * this.value ** (n - 1) * this.deriv);
57
66
  }
58
67
  static sin(x) {
59
68
  return new DualNumber(Math.sin(x.value), Math.cos(x.value) * x.deriv);
@@ -70,11 +79,11 @@ export class DualNumber {
70
79
  return new DualNumber(e, e * x.deriv);
71
80
  }
72
81
  static log(x) {
73
- return new DualNumber(Math.log(x.value), x.deriv / x.value);
82
+ return DualNumber.domain(Math.log(x.value), x.deriv / x.value);
74
83
  }
75
84
  static sqrt(x) {
76
85
  const s = Math.sqrt(x.value);
77
- return new DualNumber(s, x.deriv / (2 * s));
86
+ return DualNumber.domain(s, x.deriv / (2 * s));
78
87
  }
79
88
  /** The derivative of `f` at `x`, evaluated exactly via dual numbers. */
80
89
  static derivative(f, x) {
@@ -1 +1 @@
1
- {"version":3,"file":"DualNumber.js","sourceRoot":"","sources":["../src/DualNumber.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DualNumber.js","sourceRoot":"","sources":["../src/DualNumber.ts"],"names":[],"mappings":"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"}
@@ -74,6 +74,8 @@ export declare class Graph3DUtils {
74
74
  /**
75
75
  * Build a surface mesh from a grid (matrix) of points, as two triangle
76
76
  * sweeps with distinct materials (bug fix: the first sweep now uses `alpha1`).
77
+ * Triangles touching a NaN or infinite vertex are omitted, so the surface
78
+ * breaks into pieces around them.
77
79
  */
78
80
  static pointMatrixToMesh3D(vector: Vector<Vector<Vector<number>>>, color1?: number, alpha1?: number, color2?: number, alpha2?: number): Mesh[];
79
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Graph3DUtils.d.ts","sourceRoot":"","sources":["../src/Graph3DUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Graph3DUtils.d.ts","sourceRoot":"","sources":["../src/Graph3DUtils.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,12 @@
1
1
  import { VectorUtils } from "./VectorUtils.js";
2
2
  const v3 = (x, y, z = 0) => ({ x, y, z });
3
3
  const asPoint = (p) => ({ x: p.x, y: p.y, z: p.z });
4
+ const isFinitePoint = (p) => Number.isFinite(p.x) && Number.isFinite(p.y) && Number.isFinite(p.z);
5
+ /** A triangle face, or `null` when any vertex is NaN / infinite (so the surface breaks there instead of drawing garbage). */
6
+ const finiteFace = (a, b, c) => {
7
+ const face = [asPoint(a), asPoint(b), asPoint(c)];
8
+ return face.every(isFinitePoint) ? face : null;
9
+ };
4
10
  export class Graph3DUtils {
5
11
  /** Sample `binaryOperation` over a 2D grid, returning a matrix of results. */
6
12
  static dualRangeVector(binaryOperation, xMin = -10, xMax = 10, xStep = 1, yMin = -10, yMax = 10, yStep = 1) {
@@ -118,6 +124,8 @@ export class Graph3DUtils {
118
124
  /**
119
125
  * Build a surface mesh from a grid (matrix) of points, as two triangle
120
126
  * sweeps with distinct materials (bug fix: the first sweep now uses `alpha1`).
127
+ * Triangles touching a NaN or infinite vertex are omitted, so the surface
128
+ * breaks into pieces around them.
121
129
  */
122
130
  static pointMatrixToMesh3D(vector, color1 = 0, alpha1 = 1, color2 = 0xffffff, alpha2 = 1) {
123
131
  const width = VectorUtils.width(vector);
@@ -127,11 +135,9 @@ export class Graph3DUtils {
127
135
  for (let i = 0; i < width - 1; i++) {
128
136
  for (let j = 0; j < height - 1; j++) {
129
137
  if (at(i, j) && vector[i + 1] && at(i, j + 1)) {
130
- faces1.push([
131
- asPoint(at(i, j)),
132
- asPoint(at(i + 1, j)),
133
- asPoint(at(i, j + 1)),
134
- ]);
138
+ const face = finiteFace(at(i, j), at(i + 1, j), at(i, j + 1));
139
+ if (face)
140
+ faces1.push(face);
135
141
  }
136
142
  }
137
143
  }
@@ -139,11 +145,9 @@ export class Graph3DUtils {
139
145
  for (let i = 1; i < width; i++) {
140
146
  for (let j = 1; j < height; j++) {
141
147
  if (at(i, j) && vector[i - 1] && at(i, j - 1)) {
142
- faces2.push([
143
- asPoint(at(i, j)),
144
- asPoint(at(i - 1, j)),
145
- asPoint(at(i, j - 1)),
146
- ]);
148
+ const face = finiteFace(at(i, j), at(i - 1, j), at(i, j - 1));
149
+ if (face)
150
+ faces2.push(face);
147
151
  }
148
152
  }
149
153
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Graph3DUtils.js","sourceRoot":"","sources":["../src/Graph3DUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Graph3DUtils.js","sourceRoot":"","sources":["../src/Graph3DUtils.ts"],"names":[],"mappings":"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AC,CAAC,CAAC,CAAC,CAAC;QAE3D,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,MAAM,EA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"}
@@ -59,7 +59,10 @@ export declare class GraphUtils {
59
59
  static barPlacement(p: Vector<number>, barWidth?: number): BarPlacement2D;
60
60
  static placements(points: Vector<Vector<number>>, altProperties?: string[] | null): Array<Placement2D | Record<string, number>>;
61
61
  static barPlacements(points: Vector<Vector<number>>, barWidth?: number): BarPlacement2D[];
62
- /** A poly-line path through the given points. */
62
+ /**
63
+ * A poly-line path through the given points. Points with a non-finite x or y
64
+ * (NaN, +/-Infinity) are skipped and split the line into separate segments.
65
+ */
63
66
  static vectorToCurve(points: Vector<Vector<number>>, thickness?: number, color?: number, alpha?: number, pixelHinting?: boolean, scaleMode?: string, caps?: string | null, joints?: string | null, miterLimit?: number): Path2D;
64
67
  /** A filled, closed path tracing a polygon's edges. */
65
68
  static polygonToCurve(polygon: Polygon, strokeThickness?: number, strokeColor?: number, strokeAlpha?: number, fillColor?: number, fillAlpha?: number, pixelHinting?: boolean, scaleMode?: string, caps?: string | null, joints?: string | null, miterLimit?: number): Path2D;
@@ -1 +1 @@
1
- {"version":3,"file":"GraphUtils.d.ts","sourceRoot":"","sources":["../src/GraphUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GraphUtils.d.ts","sourceRoot":"","sources":["../src/GraphUtils.ts"],"names":[],"mappings":"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"}
@@ -33,17 +33,25 @@ export class GraphUtils {
33
33
  static barPlacements(points, barWidth = 40) {
34
34
  return [...points].map((p) => GraphUtils.barPlacement(p, barWidth));
35
35
  }
36
- /** A poly-line path through the given points. */
36
+ /**
37
+ * A poly-line path through the given points. Points with a non-finite x or y
38
+ * (NaN, +/-Infinity) are skipped and split the line into separate segments.
39
+ */
37
40
  static vectorToCurve(points, thickness = 0, color = 0, alpha = 1, pixelHinting = false, scaleMode = "normal", caps = null, joints = null, miterLimit = 3) {
38
41
  const stroke = { thickness, color, alpha, pixelHinting, scaleMode, caps, joints, miterLimit };
39
42
  const commands = [];
40
- if (points.length > 0) {
41
- const first = point(points[0]);
42
- commands.push({ op: "moveTo", x: first.x, y: first.y });
43
- for (let i = 1; i < points.length; i++) {
44
- const pt = point(points[i]);
45
- commands.push({ op: "lineTo", x: pt.x, y: pt.y });
43
+ // A NaN or +/-Infinity coordinate (a pole, a domain error) breaks the path: the
44
+ // run before it ends, and the next finite point starts a new run with `moveTo`
45
+ // rather than a `lineTo` drawn through the gap.
46
+ let penDown = false;
47
+ for (let i = 0; i < points.length; i++) {
48
+ const pt = point(points[i]);
49
+ if (!Number.isFinite(pt.x) || !Number.isFinite(pt.y)) {
50
+ penDown = false;
51
+ continue;
46
52
  }
53
+ commands.push({ op: penDown ? "lineTo" : "moveTo", x: pt.x, y: pt.y });
54
+ penDown = true;
47
55
  }
48
56
  return { stroke, commands };
49
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GraphUtils.js","sourceRoot":"","sources":["../src/GraphUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GraphUtils.js","sourceRoot":"","sources":["../src/GraphUtils.ts"],"names":[],"mappings":"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"}
@@ -139,9 +139,31 @@ export interface OdeClosedFormResult {
139
139
  y?: Expr;
140
140
  implicitRelation?: Expr;
141
141
  }
142
+ /** Options for {@link Symbolic.parse} and {@link Symbolic.fromLatex}. */
143
+ export interface ParseOptions {
144
+ /**
145
+ * Read juxtaposition as multiplication, the way people type maths: `2x`, `x y`, `xy`, `2(x+1)`,
146
+ * `(x+1)(x-1)`, `x(x+1)`, `3sin(x)`. Default `false`, which keeps the strict grammar (`2x` is an
147
+ * error and `xy` is one variable named `xy`).
148
+ *
149
+ * With this on, a run of letters that is not a function call (`name(`) or `pi` is split into
150
+ * single-letter variables, so `xy` is `x*y` and multi-letter variable names such as `theta` are
151
+ * unavailable (use a subscript: `x_1` or `x_a`, which stays one variable). A letter followed by
152
+ * digits is a product too (`x3` is `x*3`). A function name must be followed by `(`. Space
153
+ * between two numbers multiplies (`2 3` is `6`). Juxtaposition has the same precedence as `*`
154
+ * and `/` and binds left to right, so `1/2x` is `(1/2)*x`; `^` binds tighter (`2x^2` is `2*(x^2)`).
155
+ * For `fromLatex` it also lets a function with no brackets take a whole product as its argument
156
+ * (`\sin 2x` is `sin(2*x)`, `\sin x\cos x` is `sin(x)*cos(x)`), and `^` take one token (`x^23` is
157
+ * `x^2*3`, as TeX reads it; `x^{23}` is `x^23`).
158
+ */
159
+ implicitMultiplication?: boolean;
160
+ }
142
161
  export declare class Symbolic {
143
- /** Parse an expression string such as `"sin(x^2) + 3*x"` into an AST. */
144
- static parse(input: string): Expr;
162
+ /**
163
+ * Parse an expression string such as `"sin(x^2) + 3*x"` into an AST.
164
+ * Pass `{ implicitMultiplication: true }` to also read `2x`, `x y` and `2(x+1)`; see {@link ParseOptions}.
165
+ */
166
+ static parse(input: string, options?: ParseOptions): Expr;
145
167
  static differentiate(expr: Expr | string, variable?: string): Expr;
146
168
  /**
147
169
  * Like {@link differentiate}, but also returns a bottom-up trace of every
@@ -154,6 +176,16 @@ export declare class Symbolic {
154
176
  steps: DifferentiationStep[];
155
177
  result: Expr;
156
178
  };
179
+ /**
180
+ * Algebraic simplification: constant folding, like-term collection, and, as a last
181
+ * step, expanding the expression as a rational function and cancelling common
182
+ * factors -- `(x+1)^2 - x^2 - 2*x` gives `1` and `(x^2-1)/(x-1)` gives `x+1`.
183
+ * The expanded/cancelled form is used only when it is strictly smaller than the
184
+ * collected form, so a product such as `(x+1)*2` keeps its shape. Non-polynomial
185
+ * subexpressions (`sin(x)`, `x^y`) are treated as opaque symbols. Like any CAS
186
+ * cancellation, `(x^2-1)/(x-1)` is `x+1` as an expression, ignoring that the
187
+ * original is undefined at `x = 1`.
188
+ */
157
189
  static simplify(expr: Expr | string): Expr;
158
190
  /**
159
191
  * Simplifies `expr` with additional domain knowledge about specific
@@ -352,11 +384,15 @@ export declare class Symbolic {
352
384
  * commands (`\sin`, `\arcsin`, `\sinh`, `\operatorname{sech}`, ...), and the
353
385
  * two-argument `BinaryFuncName` commands (`\min`, `\max`, `\gcd`,
354
386
  * `\operatorname{atan2}`, `\operatorname{hypot}`, `\operatorname{lcm}`).
355
- * Spacing commands (`\,`, `\;`, `\!`, `\quad`) are ignored.
387
+ * Spacing commands (`\,`, `\;`, `\!`, `\quad`) are ignored. Single-token arguments as TeX
388
+ * reads them (`\frac12`, `\frac1x`, `\sqrt2`) and a power on a function command
389
+ * (`\sin^{2}(x)` is `sin(x)^2`) are accepted. An exponent of `-1` on a function command (`\sin^{-1}`) is
390
+ * refused as ambiguous (inverse function or reciprocal): write `\arcsin(x)` or `(\sin x)^{-1}`. For what people type into a math field
391
+ * (`2x`, `\sin 2x`, `(x+1)(x-1)`, `x^23`) pass `{ implicitMultiplication: true }`; see {@link ParseOptions}.
356
392
  *
357
393
  * @throws on LaTeX constructs with no `Expr` equivalent, e.g. `\int` or `\sum`.
358
394
  */
359
- static fromLatex(latex: string): Expr;
395
+ static fromLatex(latex: string, options?: ParseOptions): Expr;
360
396
  /**
361
397
  * Solve `expr = 0` for `variable`, returning every *real* root @johnhenry/math
362
398
  * can find as an exact `Expr` (rationals and `sqrt`-radicals where
@@ -1 +1 @@
1
- {"version":3,"file":"Symbolic.d.ts","sourceRoot":"","sources":["../src/Symbolic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Symbolic.d.ts","sourceRoot":"","sources":["../src/Symbolic.ts"],"names":[],"mappings":"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"}