@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.
- package/dist/DualNumber.d.ts +7 -0
- package/dist/DualNumber.d.ts.map +1 -1
- package/dist/DualNumber.js +12 -3
- package/dist/DualNumber.js.map +1 -1
- package/dist/Graph3DUtils.d.ts +2 -0
- package/dist/Graph3DUtils.d.ts.map +1 -1
- package/dist/Graph3DUtils.js +14 -10
- package/dist/Graph3DUtils.js.map +1 -1
- package/dist/GraphUtils.d.ts +4 -1
- package/dist/GraphUtils.d.ts.map +1 -1
- package/dist/GraphUtils.js +15 -7
- package/dist/GraphUtils.js.map +1 -1
- package/dist/Symbolic.d.ts +40 -4
- package/dist/Symbolic.d.ts.map +1 -1
- package/dist/Symbolic.js +624 -104
- package/dist/Symbolic.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/DualNumber.ts +13 -3
- package/src/Graph3DUtils.ts +20 -10
- package/src/GraphUtils.ts +15 -7
- package/src/Symbolic.ts +652 -103
- package/src/index.ts +1 -0
package/dist/index.d.ts
CHANGED
|
@@ -42,7 +42,7 @@ export { SpecialOperator } from "./SpecialOperator.ts";
|
|
|
42
42
|
export * as Statistics from "./Statistics.ts";
|
|
43
43
|
export { StringEvaluator } from "./StringEvaluator.ts";
|
|
44
44
|
export { Structure, type StructureOptions } from "./Structure.ts";
|
|
45
|
-
export { type Assumption, type BinaryFuncName, type CmpOp, DegenerateOdeError, type DifferentiationStep, type Expr, FUNCTION_NAMES, type FuncName, InfiniteSolutionsError, IntegrationSingularityError, NoClosedFormError, NonLinearSystemError, NotIntegrableError, NotSeparableError, type OdeClosedFormResult, ProductNotDifferentiableError, SeriesDivergesError, SingularSystemError, Symbolic, SystemDidNotConvergeError, UndeclaredVariableError, } from "./Symbolic.ts";
|
|
45
|
+
export { type Assumption, type BinaryFuncName, type CmpOp, DegenerateOdeError, type DifferentiationStep, type Expr, FUNCTION_NAMES, type FuncName, InfiniteSolutionsError, IntegrationSingularityError, NoClosedFormError, NonLinearSystemError, NotIntegrableError, NotSeparableError, type OdeClosedFormResult, type ParseOptions, ProductNotDifferentiableError, SeriesDivergesError, SingularSystemError, Symbolic, SystemDidNotConvergeError, UndeclaredVariableError, } from "./Symbolic.ts";
|
|
46
46
|
export { Type, TypeTag } from "./Type.ts";
|
|
47
47
|
export { Utilities } from "./Utilities.ts";
|
|
48
48
|
export { Vec4 } from "./Vec4.ts";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI3C,OAAO,EAAE,SAAS,EAAE,KAAK,QAAQ,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEpG,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,YAAY,EACZ,2BAA2B,EAC3B,YAAY,EACZ,OAAO,GACR,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,aAAa,EACb,eAAe,EACf,KAAK,UAAU,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAE5F,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EACL,KAAK,wBAAwB,EAC7B,iBAAiB,EACjB,UAAU,IAAI,WAAW,EACzB,IAAI,IAAI,KAAK,EACb,yBAAyB,EACzB,uBAAuB,EACvB,eAAe,EACf,KAAK,sBAAsB,EAC3B,YAAY,IAAI,aAAa,GAC9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,KAAK,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EACL,KAAK,IAAI,EACT,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,IAAI,EACT,KAAK,WAAW,EAChB,KAAK,IAAI,GACV,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,UAAU,EACV,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,oBAAoB,EACpB,KAAK,YAAY,EACjB,WAAW,EACX,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,UAAU,EACV,KAAK,QAAQ,EACb,KAAK,SAAS,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,wBAAwB,EAAE,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EACL,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,KAAK,EACV,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,IAAI,EACT,cAAc,EACd,KAAK,QAAQ,EACb,sBAAsB,EACtB,2BAA2B,EAC3B,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,6BAA6B,EAC7B,mBAAmB,EACnB,mBAAmB,EACnB,QAAQ,EACR,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,KAAK,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/DualNumber.ts
CHANGED
|
@@ -25,6 +25,16 @@ export class DualNumber {
|
|
|
25
25
|
return new DualNumber(x, 1);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
+
/**
|
|
29
|
+
* Builds a dual number whose value may be outside the function's domain. A
|
|
30
|
+
* NaN value (e.g. `log` of a negative) makes the derivative NaN too, rather
|
|
31
|
+
* than leaving a finite-looking derivative (`x.deriv / x.value`) next to a
|
|
32
|
+
* meaningless value.
|
|
33
|
+
*/
|
|
34
|
+
private static domain(value: number, deriv: number): DualNumber {
|
|
35
|
+
return new DualNumber(value, Number.isNaN(value) ? Number.NaN : deriv);
|
|
36
|
+
}
|
|
37
|
+
|
|
28
38
|
private static lift(x: DualNumber | number): DualNumber {
|
|
29
39
|
return x instanceof DualNumber ? x : new DualNumber(x, 0);
|
|
30
40
|
}
|
|
@@ -62,7 +72,7 @@ export class DualNumber {
|
|
|
62
72
|
// general formula entirely rather than let it hit that indeterminate
|
|
63
73
|
// form (issue #74).
|
|
64
74
|
if (n === 0) return new DualNumber(1, 0);
|
|
65
|
-
return
|
|
75
|
+
return DualNumber.domain(this.value ** n, n * this.value ** (n - 1) * this.deriv);
|
|
66
76
|
}
|
|
67
77
|
|
|
68
78
|
static sin(x: DualNumber): DualNumber {
|
|
@@ -80,11 +90,11 @@ export class DualNumber {
|
|
|
80
90
|
return new DualNumber(e, e * x.deriv);
|
|
81
91
|
}
|
|
82
92
|
static log(x: DualNumber): DualNumber {
|
|
83
|
-
return
|
|
93
|
+
return DualNumber.domain(Math.log(x.value), x.deriv / x.value);
|
|
84
94
|
}
|
|
85
95
|
static sqrt(x: DualNumber): DualNumber {
|
|
86
96
|
const s = Math.sqrt(x.value);
|
|
87
|
-
return
|
|
97
|
+
return DualNumber.domain(s, x.deriv / (2 * s));
|
|
88
98
|
}
|
|
89
99
|
|
|
90
100
|
/** The derivative of `f` at `x`, evaluated exactly via dual numbers. */
|
package/src/Graph3DUtils.ts
CHANGED
|
@@ -59,6 +59,12 @@ export interface Placement3D {
|
|
|
59
59
|
|
|
60
60
|
const v3 = (x: number, y: number, z = 0): Vec3 => ({ x, y, z });
|
|
61
61
|
const asPoint = (p: Vector<number>): Vec3 => ({ x: p.x as number, y: p.y as number, z: p.z as number });
|
|
62
|
+
const isFinitePoint = (p: Vec3): boolean => Number.isFinite(p.x) && Number.isFinite(p.y) && Number.isFinite(p.z);
|
|
63
|
+
/** A triangle face, or `null` when any vertex is NaN / infinite (so the surface breaks there instead of drawing garbage). */
|
|
64
|
+
const finiteFace = (a: Vector<number>, b: Vector<number>, c: Vector<number>): Face | null => {
|
|
65
|
+
const face: Face = [asPoint(a), asPoint(b), asPoint(c)];
|
|
66
|
+
return face.every(isFinitePoint) ? face : null;
|
|
67
|
+
};
|
|
62
68
|
|
|
63
69
|
export class Graph3DUtils {
|
|
64
70
|
/** Sample `binaryOperation` over a 2D grid, returning a matrix of results. */
|
|
@@ -222,6 +228,8 @@ export class Graph3DUtils {
|
|
|
222
228
|
/**
|
|
223
229
|
* Build a surface mesh from a grid (matrix) of points, as two triangle
|
|
224
230
|
* sweeps with distinct materials (bug fix: the first sweep now uses `alpha1`).
|
|
231
|
+
* Triangles touching a NaN or infinite vertex are omitted, so the surface
|
|
232
|
+
* breaks into pieces around them.
|
|
225
233
|
*/
|
|
226
234
|
static pointMatrixToMesh3D(
|
|
227
235
|
vector: Vector<Vector<Vector<number>>>,
|
|
@@ -239,11 +247,12 @@ export class Graph3DUtils {
|
|
|
239
247
|
for (let i = 0; i < width - 1; i++) {
|
|
240
248
|
for (let j = 0; j < height - 1; j++) {
|
|
241
249
|
if (at(i, j) && vector[i + 1] && at(i, j + 1)) {
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
250
|
+
const face = finiteFace(
|
|
251
|
+
at(i, j) as Vector<number>,
|
|
252
|
+
at(i + 1, j) as Vector<number>,
|
|
253
|
+
at(i, j + 1) as Vector<number>,
|
|
254
|
+
);
|
|
255
|
+
if (face) faces1.push(face);
|
|
247
256
|
}
|
|
248
257
|
}
|
|
249
258
|
}
|
|
@@ -252,11 +261,12 @@ export class Graph3DUtils {
|
|
|
252
261
|
for (let i = 1; i < width; i++) {
|
|
253
262
|
for (let j = 1; j < height; j++) {
|
|
254
263
|
if (at(i, j) && vector[i - 1] && at(i, j - 1)) {
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
264
|
+
const face = finiteFace(
|
|
265
|
+
at(i, j) as Vector<number>,
|
|
266
|
+
at(i - 1, j) as Vector<number>,
|
|
267
|
+
at(i, j - 1) as Vector<number>,
|
|
268
|
+
);
|
|
269
|
+
if (face) faces2.push(face);
|
|
260
270
|
}
|
|
261
271
|
}
|
|
262
272
|
}
|
package/src/GraphUtils.ts
CHANGED
|
@@ -98,7 +98,10 @@ export class GraphUtils {
|
|
|
98
98
|
return [...points].map((p) => GraphUtils.barPlacement(p, barWidth));
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
/**
|
|
101
|
+
/**
|
|
102
|
+
* A poly-line path through the given points. Points with a non-finite x or y
|
|
103
|
+
* (NaN, +/-Infinity) are skipped and split the line into separate segments.
|
|
104
|
+
*/
|
|
102
105
|
static vectorToCurve(
|
|
103
106
|
points: Vector<Vector<number>>,
|
|
104
107
|
thickness = 0,
|
|
@@ -112,13 +115,18 @@ export class GraphUtils {
|
|
|
112
115
|
): Path2D {
|
|
113
116
|
const stroke: StrokeStyle = { thickness, color, alpha, pixelHinting, scaleMode, caps, joints, miterLimit };
|
|
114
117
|
const commands: PathCommand[] = [];
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
118
|
+
// A NaN or +/-Infinity coordinate (a pole, a domain error) breaks the path: the
|
|
119
|
+
// run before it ends, and the next finite point starts a new run with `moveTo`
|
|
120
|
+
// rather than a `lineTo` drawn through the gap.
|
|
121
|
+
let penDown = false;
|
|
122
|
+
for (let i = 0; i < points.length; i++) {
|
|
123
|
+
const pt = point(points[i] as Vector<number>);
|
|
124
|
+
if (!Number.isFinite(pt.x) || !Number.isFinite(pt.y)) {
|
|
125
|
+
penDown = false;
|
|
126
|
+
continue;
|
|
121
127
|
}
|
|
128
|
+
commands.push({ op: penDown ? "lineTo" : "moveTo", x: pt.x, y: pt.y });
|
|
129
|
+
penDown = true;
|
|
122
130
|
}
|
|
123
131
|
return { stroke, commands };
|
|
124
132
|
}
|