diff-grok 1.3.0 → 1.4.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/README.MD +38 -2
- package/dist/src/latex-export/generator/document-builder.js +30 -30
- package/dist/src/latex-export/generator/document-builder.js.map +1 -1
- package/dist/src/latex-export/generator/latex-generator.d.ts +9 -6
- package/dist/src/latex-export/generator/latex-generator.js +35 -31
- package/dist/src/latex-export/generator/latex-generator.js.map +1 -1
- package/dist/src/pipeline/loops-pipeline-creator.js +3 -2
- package/dist/src/pipeline/loops-pipeline-creator.js.map +1 -1
- package/dist/src/pipeline/output.d.ts +4 -0
- package/dist/src/pipeline/output.js +85 -38
- package/dist/src/pipeline/output.js.map +1 -1
- package/dist/src/pipeline/updates-pipeline-creator.js +4 -3
- package/dist/src/pipeline/updates-pipeline-creator.js.map +1 -1
- package/package.json +2 -3
package/README.MD
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
# Diff Grok
|
|
2
2
|
|
|
3
|
+
[](https://link.springer.com/chapter/10.1007/978-3-032-22236-7_31)
|
|
4
|
+
[](https://doi.org/10.21105/joss.09090)
|
|
3
5
|
[](https://doi.org/10.5281/zenodo.19219694)
|
|
4
6
|
[](https://datagrok-ai.github.io/diff-grok/)
|
|
5
7
|
[](https://github.com/datagrok-ai/diff-grok/blob/main/LICENSE)
|
|
6
8
|
[](https://github.com/datagrok-ai/diff-grok/actions/workflows/libraries.yaml)
|
|
7
9
|
[](https://github.com/datagrok-ai/diff-grok/actions/workflows/test.yaml)
|
|
8
10
|
|
|
9
|
-
A lightweight TypeScript library for solving initial value problem ([IVP](https://en.wikipedia.org/wiki/Initial_value_problem)) for ordinary differential equations ([ODEs](https://en.wikipedia.org/wiki/Ordinary_differential_equation)) using numerical methods. The primary solvers are [LSODA](https://doi.org/10.1137/0904010)
|
|
11
|
+
A lightweight TypeScript library for solving initial value problem ([IVP](https://en.wikipedia.org/wiki/Initial_value_problem)) for ordinary differential equations ([ODEs](https://en.wikipedia.org/wiki/Ordinary_differential_equation)) using numerical methods. The primary solvers are [LSODA](https://doi.org/10.1137/0904010) - a variable-order method that automatically detects stiffness and switches between Adams (non-stiff) and BDF (stiff) formulations - and [CVODE](https://sundials.readthedocs.io/en/latest/cvode/index.html) - a variable-order, variable-step solver from the SUNDIALS suite supporting both Adams and BDF methods.
|
|
10
12
|
|
|
11
13
|
## Features
|
|
12
14
|
|
|
@@ -423,7 +425,7 @@ Find this example in [scripting.ts](./src/examples/scripting.ts).
|
|
|
423
425
|
|
|
424
426
|
### Pipelines
|
|
425
427
|
|
|
426
|
-
Diff Grok **pipeline** is a powerful feature for complex process simulation and model analysis in webworkers. It wraps the main solver with a set of actions that perform pre- and post-processing of a model inputs & outputs. In addition, they provide an output customization.
|
|
428
|
+
Diff Grok **pipeline** is a powerful feature for complex process simulation and model analysis in webworkers (see our [paper](https://link.springer.com/chapter/10.1007/978-3-032-22236-7_31) in Lecture Notes in Networks and Systems). It wraps the main solver with a set of actions that perform pre- and post-processing of a model inputs & outputs. In addition, they provide an output customization.
|
|
427
429
|
|
|
428
430
|
1. Start with imports:
|
|
429
431
|
|
|
@@ -673,6 +675,40 @@ node src/examples/basic-use.js
|
|
|
673
675
|
|
|
674
676
|
</details>
|
|
675
677
|
|
|
678
|
+
## Citation
|
|
679
|
+
|
|
680
|
+
If you use this library for research purposes, please cite the following papers:
|
|
681
|
+
|
|
682
|
+
* [Diff Studio: Ecosystem for Interactive Modeling by Ordinary Differential Equations](https://joss.theoj.org/papers/10.21105/joss.09090) in Journal of Open Source Software (2026).
|
|
683
|
+
|
|
684
|
+
```
|
|
685
|
+
@article{diffstudio2026joss,
|
|
686
|
+
title = {Diff Studio: Ecosystem for Interactive Modeling by Ordinary Differential Equations},
|
|
687
|
+
author = {Viktor Makarichev, Larisa Bankurova, Gennadii Zakharov, Leonid Stolbov, Steven Mehrman, Dan Skatov, Jeffrey Cohen, Paul Sass, Davit Rizhinashvili, Andrew Skalkin},
|
|
688
|
+
journal = {Journal of Open Source Software},
|
|
689
|
+
year = {2026},
|
|
690
|
+
volume = {11},
|
|
691
|
+
number = {120},
|
|
692
|
+
doi = {10.21105/joss.09090}
|
|
693
|
+
}
|
|
694
|
+
```
|
|
695
|
+
|
|
696
|
+
* [Diff Studio: Web-Based Environment for Interactive Modeling with Ordinary Differential Equations](https://link.springer.com/chapter/10.1007/978-3-032-22236-7_31) in Springer, CoMeSySo 2025 Proceedings (Lecture Notes in Networks and Systems, vol. 1901) - foundational paper.
|
|
697
|
+
|
|
698
|
+
```
|
|
699
|
+
@InProceedings{diffstudio2026lnns,
|
|
700
|
+
title = {Diff Studio: Web-Based Environment for Interactive Modeling with Ordinary Differential Equations},
|
|
701
|
+
author = {Viktor Makarichev, Larisa Bankurova, Gennadii Zakharov, Leonid Stolbov, Steven Mehrman, Dan Skatov, Jeffrey Cohen, Paul Sass, Davit Rizhinashvili, Andrew Skalkin},
|
|
702
|
+
editor = {Radek Silhavy, Petr Silhavy},
|
|
703
|
+
booktitle = {Focus on Artificial Intelligence in Intelligent Systems Design},
|
|
704
|
+
year = {2026},
|
|
705
|
+
publisher = {Springer Nature Switzerland},
|
|
706
|
+
address = {Cham},
|
|
707
|
+
pages = {390--401},
|
|
708
|
+
doi = {10.1007/978-3-032-22236-7_31}
|
|
709
|
+
}
|
|
710
|
+
```
|
|
711
|
+
|
|
676
712
|
## References
|
|
677
713
|
|
|
678
714
|
* L. Petzold, "Automatic Selection of Methods for Solving Stiff and Nonstiff Systems of Ordinary Differential Equations," *SIAM J. Sci. Stat. Comput.*, 4(1), 136–148, 1983. [doi:10.1137/0904010](https://doi.org/10.1137/0904010)
|
|
@@ -30,28 +30,28 @@ export function buildLatexDocument(model, options) {
|
|
|
30
30
|
}
|
|
31
31
|
if (model.equations.length > 0) {
|
|
32
32
|
parts.push(`\\subsection{${plural('Equation', model.equations.length)}}`);
|
|
33
|
-
parts.push(buildLatexAlign(model.equations));
|
|
33
|
+
parts.push(buildLatexAlign(model.equations, opts));
|
|
34
34
|
if (model.argument.entries.length >= 3)
|
|
35
35
|
parts.push(buildLatexArgRange(model));
|
|
36
36
|
}
|
|
37
37
|
if (model.expressions.length > 0) {
|
|
38
38
|
parts.push(`\\subsection{${plural('Expression', model.expressions.length)}}`);
|
|
39
|
-
parts.push(buildLatexAlign(model.expressions));
|
|
39
|
+
parts.push(buildLatexAlign(model.expressions, opts));
|
|
40
40
|
}
|
|
41
41
|
const loopInfo = extractLoopInfo(model);
|
|
42
42
|
if (loopInfo && loopInfo.updates.length > 0) {
|
|
43
43
|
parts.push('\\subsection{Cyclic Update}');
|
|
44
|
-
const lines = loopInfo.updates.map((u) => ` ${renderLoopUpdateLine(u)}`);
|
|
44
|
+
const lines = loopInfo.updates.map((u) => ` ${renderLoopUpdateLine(u, opts)}`);
|
|
45
45
|
parts.push(`Before each cycle:\n\\begin{align}\n${lines.join(' \\\\\n')}\n\\end{align}`);
|
|
46
46
|
}
|
|
47
47
|
const stages = extractStageInfos(model);
|
|
48
48
|
if (stages.length > 0) {
|
|
49
49
|
parts.push('\\subsection{Stage Transitions}');
|
|
50
50
|
for (const stage of stages) {
|
|
51
|
-
const dur = stage.duration ? ` (duration: $${expressionToLatex(stage.duration)}$)` : '';
|
|
51
|
+
const dur = stage.duration ? ` (duration: $${expressionToLatex(stage.duration, opts)}$)` : '';
|
|
52
52
|
parts.push(`\\textbf{${stage.stageName}}${dur}`);
|
|
53
53
|
if (stage.transitions.length > 0) {
|
|
54
|
-
const lines = stage.transitions.map((t) => ` ${renderTransitionLine(t)}`);
|
|
54
|
+
const lines = stage.transitions.map((t) => ` ${renderTransitionLine(t, opts)}`);
|
|
55
55
|
parts.push(`Before this stage:\n\\begin{align}\n${lines.join(' \\\\\n')}\n\\end{align}`);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
@@ -90,28 +90,28 @@ export function buildMarkdownDocument(model, options) {
|
|
|
90
90
|
}
|
|
91
91
|
if (model.equations.length > 0) {
|
|
92
92
|
parts.push(`### ${plural('Equation', model.equations.length)}`);
|
|
93
|
-
parts.push(buildMarkdownAlign(model.equations));
|
|
93
|
+
parts.push(buildMarkdownAlign(model.equations, opts));
|
|
94
94
|
if (model.argument.entries.length >= 3)
|
|
95
95
|
parts.push(buildMarkdownArgRange(model));
|
|
96
96
|
}
|
|
97
97
|
if (model.expressions.length > 0) {
|
|
98
98
|
parts.push(`### ${plural('Expression', model.expressions.length)}`);
|
|
99
|
-
parts.push(buildMarkdownAlign(model.expressions));
|
|
99
|
+
parts.push(buildMarkdownAlign(model.expressions, opts));
|
|
100
100
|
}
|
|
101
101
|
const loopInfo = extractLoopInfo(model);
|
|
102
102
|
if (loopInfo && loopInfo.updates.length > 0) {
|
|
103
103
|
parts.push('### Cyclic Update');
|
|
104
|
-
const lines = loopInfo.updates.map((u) => ` ${renderLoopUpdateLine(u)}`);
|
|
104
|
+
const lines = loopInfo.updates.map((u) => ` ${renderLoopUpdateLine(u, opts)}`);
|
|
105
105
|
parts.push(`Before each cycle:\n\n$$\n\\begin{aligned}\n${lines.join(' \\\\\n')}\n\\end{aligned}\n$$`);
|
|
106
106
|
}
|
|
107
107
|
const stages = extractStageInfos(model);
|
|
108
108
|
if (stages.length > 0) {
|
|
109
109
|
parts.push('### Stage Transitions');
|
|
110
110
|
for (const stage of stages) {
|
|
111
|
-
const dur = stage.duration ? ` (duration: $${expressionToLatex(stage.duration)}$)` : '';
|
|
111
|
+
const dur = stage.duration ? ` (duration: $${expressionToLatex(stage.duration, opts)}$)` : '';
|
|
112
112
|
parts.push(`**${stage.stageName}**${dur}`);
|
|
113
113
|
if (stage.transitions.length > 0) {
|
|
114
|
-
const lines = stage.transitions.map((t) => ` ${renderTransitionLine(t)}`);
|
|
114
|
+
const lines = stage.transitions.map((t) => ` ${renderTransitionLine(t, opts)}`);
|
|
115
115
|
parts.push(`Before this stage:\n\n$$\n\\begin{aligned}\n${lines.join(' \\\\\n')}\n\\end{aligned}\n$$`);
|
|
116
116
|
}
|
|
117
117
|
}
|
|
@@ -193,18 +193,18 @@ function renderFormulaLhs(f) {
|
|
|
193
193
|
return `${lhs}(${f.arrowParams.join(', ')})`;
|
|
194
194
|
return lhs;
|
|
195
195
|
}
|
|
196
|
-
function buildLatexAlign(formulas) {
|
|
196
|
+
function buildLatexAlign(formulas, opts) {
|
|
197
197
|
const lines = formulas.map((f) => {
|
|
198
198
|
const lhs = renderFormulaLhs(f);
|
|
199
|
-
const rhs = expressionToLatex(f.rhs);
|
|
199
|
+
const rhs = expressionToLatex(f.rhs, opts);
|
|
200
200
|
return ` ${lhs} &= ${rhs}`;
|
|
201
201
|
});
|
|
202
202
|
return `\\begin{align}\n${lines.join(' \\\\\n')}\n\\end{align}`;
|
|
203
203
|
}
|
|
204
|
-
function buildMarkdownAlign(formulas) {
|
|
204
|
+
function buildMarkdownAlign(formulas, opts) {
|
|
205
205
|
const lines = formulas.map((f) => {
|
|
206
206
|
const lhs = renderFormulaLhs(f);
|
|
207
|
-
const rhs = expressionToLatex(f.rhs);
|
|
207
|
+
const rhs = expressionToLatex(f.rhs, opts);
|
|
208
208
|
return ` ${lhs} &= ${rhs}`;
|
|
209
209
|
});
|
|
210
210
|
return `$$\n\\begin{aligned}\n${lines.join(' \\\\\n')}\n\\end{aligned}\n$$`;
|
|
@@ -225,10 +225,10 @@ function compactInlineItems(model) {
|
|
|
225
225
|
return `${name}(${t0}) = ${e.value}`;
|
|
226
226
|
});
|
|
227
227
|
}
|
|
228
|
-
function compactExprItems(model) {
|
|
228
|
+
function compactExprItems(model, opts) {
|
|
229
229
|
return model.expressions.map((f) => {
|
|
230
230
|
const lhs = renderFormulaLhs(f);
|
|
231
|
-
const rhs = expressionToLatex(f.rhs);
|
|
231
|
+
const rhs = expressionToLatex(f.rhs, opts);
|
|
232
232
|
return `${lhs} = ${rhs}`;
|
|
233
233
|
});
|
|
234
234
|
}
|
|
@@ -248,9 +248,9 @@ function extractLoopInfo(model) {
|
|
|
248
248
|
}
|
|
249
249
|
return count ? { count, updates } : undefined;
|
|
250
250
|
}
|
|
251
|
-
function renderLoopUpdateLine(u) {
|
|
251
|
+
function renderLoopUpdateLine(u, opts) {
|
|
252
252
|
const varLatex = identifierToLatex(u.variable);
|
|
253
|
-
const valLatex = expressionToLatex(u.value);
|
|
253
|
+
const valLatex = expressionToLatex(u.value, opts);
|
|
254
254
|
return `${varLatex} \\leftarrow ${varLatex} + ${valLatex}`;
|
|
255
255
|
}
|
|
256
256
|
/** Replace internal argument refs (_t0, _t1, _h) with actual values from #argument. */
|
|
@@ -296,9 +296,9 @@ function extractStageInfos(model) {
|
|
|
296
296
|
return { stageName: block.stageName, duration, transitions };
|
|
297
297
|
});
|
|
298
298
|
}
|
|
299
|
-
function renderTransitionLine(t) {
|
|
299
|
+
function renderTransitionLine(t, opts) {
|
|
300
300
|
const varLatex = identifierToLatex(t.variable);
|
|
301
|
-
const valLatex = expressionToLatex(t.value);
|
|
301
|
+
const valLatex = expressionToLatex(t.value, opts);
|
|
302
302
|
if (t.isIncrement)
|
|
303
303
|
return `${varLatex} \\leftarrow ${varLatex} + ${valLatex}`;
|
|
304
304
|
return `${varLatex} \\leftarrow ${valLatex}`;
|
|
@@ -309,7 +309,7 @@ function buildLatexCompact(model, opts) {
|
|
|
309
309
|
parts.push(`\\textbf{${model.name}}`);
|
|
310
310
|
if (model.equations.length > 0) {
|
|
311
311
|
parts.push(`${plural('Equation', model.equations.length)}:`);
|
|
312
|
-
parts.push(buildLatexAlign(model.equations));
|
|
312
|
+
parts.push(buildLatexAlign(model.equations, opts));
|
|
313
313
|
if (model.argument.entries.length >= 3)
|
|
314
314
|
parts.push(buildLatexArgRange(model));
|
|
315
315
|
}
|
|
@@ -318,19 +318,19 @@ function buildLatexCompact(model, opts) {
|
|
|
318
318
|
parts.push(`${compactInitsLabel(model)}:\n${lines.join('\n')}`);
|
|
319
319
|
}
|
|
320
320
|
if (model.expressions.length > 0) {
|
|
321
|
-
const lines = compactExprItems(model).map((item) => `\\[ ${item} \\]`);
|
|
321
|
+
const lines = compactExprItems(model, opts).map((item) => `\\[ ${item} \\]`);
|
|
322
322
|
parts.push(`where\n${lines.join('\n')}`);
|
|
323
323
|
}
|
|
324
324
|
const loopInfo = extractLoopInfo(model);
|
|
325
325
|
if (loopInfo && loopInfo.updates.length > 0) {
|
|
326
|
-
const lines = loopInfo.updates.map((u) => `\\[ ${renderLoopUpdateLine(u)} \\]`);
|
|
326
|
+
const lines = loopInfo.updates.map((u) => `\\[ ${renderLoopUpdateLine(u, opts)} \\]`);
|
|
327
327
|
parts.push(`before each cycle:\n${lines.join('\n')}`);
|
|
328
328
|
}
|
|
329
329
|
const stages = extractStageInfos(model);
|
|
330
330
|
for (const stage of stages) {
|
|
331
331
|
if (stage.transitions.length > 0) {
|
|
332
|
-
const dur = stage.duration ? ` ($${expressionToLatex(stage.duration)}$)` : '';
|
|
333
|
-
const lines = stage.transitions.map((t) => `\\[ ${renderTransitionLine(t)} \\]`);
|
|
332
|
+
const dur = stage.duration ? ` ($${expressionToLatex(stage.duration, opts)}$)` : '';
|
|
333
|
+
const lines = stage.transitions.map((t) => `\\[ ${renderTransitionLine(t, opts)} \\]`);
|
|
334
334
|
parts.push(`before ${stage.stageName}${dur}:\n${lines.join('\n')}`);
|
|
335
335
|
}
|
|
336
336
|
}
|
|
@@ -346,7 +346,7 @@ function buildMarkdownCompact(model, opts) {
|
|
|
346
346
|
parts.push(`**${model.name}**`);
|
|
347
347
|
if (model.equations.length > 0) {
|
|
348
348
|
parts.push(`${plural('Equation', model.equations.length)}:`);
|
|
349
|
-
parts.push(buildMarkdownAlign(model.equations));
|
|
349
|
+
parts.push(buildMarkdownAlign(model.equations, opts));
|
|
350
350
|
if (model.argument.entries.length >= 3)
|
|
351
351
|
parts.push(buildMarkdownArgRange(model));
|
|
352
352
|
}
|
|
@@ -355,19 +355,19 @@ function buildMarkdownCompact(model, opts) {
|
|
|
355
355
|
parts.push(`${compactInitsLabel(model)}:\n${lines.join('\n')}`);
|
|
356
356
|
}
|
|
357
357
|
if (model.expressions.length > 0) {
|
|
358
|
-
const lines = compactExprItems(model).map((item) => `$$${item}$$`);
|
|
358
|
+
const lines = compactExprItems(model, opts).map((item) => `$$${item}$$`);
|
|
359
359
|
parts.push(`where\n${lines.join('\n')}`);
|
|
360
360
|
}
|
|
361
361
|
const loopInfo = extractLoopInfo(model);
|
|
362
362
|
if (loopInfo && loopInfo.updates.length > 0) {
|
|
363
|
-
const lines = loopInfo.updates.map((u) => `$$${renderLoopUpdateLine(u)}$$`);
|
|
363
|
+
const lines = loopInfo.updates.map((u) => `$$${renderLoopUpdateLine(u, opts)}$$`);
|
|
364
364
|
parts.push(`before each cycle:\n${lines.join('\n')}`);
|
|
365
365
|
}
|
|
366
366
|
const stages = extractStageInfos(model);
|
|
367
367
|
for (const stage of stages) {
|
|
368
368
|
if (stage.transitions.length > 0) {
|
|
369
|
-
const dur = stage.duration ? ` ($${expressionToLatex(stage.duration)}$)` : '';
|
|
370
|
-
const lines = stage.transitions.map((t) => `$$${renderTransitionLine(t)}$$`);
|
|
369
|
+
const dur = stage.duration ? ` ($${expressionToLatex(stage.duration, opts)}$)` : '';
|
|
370
|
+
const lines = stage.transitions.map((t) => `$$${renderTransitionLine(t, opts)}$$`);
|
|
371
371
|
parts.push(`before ${stage.stageName}${dur}:\n${lines.join('\n')}`);
|
|
372
372
|
}
|
|
373
373
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-builder.js","sourceRoot":"","sources":["../../../../src/latex-export/generator/document-builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"document-builder.js","sourceRoot":"","sources":["../../../../src/latex-export/generator/document-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { ASTNode } from '../types';
|
|
2
|
+
export interface RenderOptions {
|
|
3
|
+
useCdot: boolean;
|
|
4
|
+
}
|
|
2
5
|
/** Convert an expression string to LaTeX by parsing and rendering the AST.
|
|
3
6
|
* @param expr expression string (RHS of a formula)
|
|
7
|
+
* @param opts render options (useCdot flag)
|
|
4
8
|
* @returns LaTeX string
|
|
5
9
|
*/
|
|
6
|
-
export declare function expressionToLatex(expr: string): string;
|
|
10
|
+
export declare function expressionToLatex(expr: string, opts?: RenderOptions): string;
|
|
7
11
|
/** Render an AST node to LaTeX.
|
|
8
|
-
* @param node
|
|
9
|
-
* @param
|
|
10
|
-
* @
|
|
11
|
-
* @returns LaTeX string
|
|
12
|
+
* @param node AST node to render
|
|
13
|
+
* @param opts render options (useCdot flag)
|
|
14
|
+
* @returns LaTeX string
|
|
12
15
|
*/
|
|
13
|
-
export declare function nodeToLatex(node: ASTNode,
|
|
16
|
+
export declare function nodeToLatex(node: ASTNode, opts?: RenderOptions): string;
|
|
14
17
|
/** Convert a derivative LHS to LaTeX (e.g. "dy/dt" → "\frac{dy}{dt}").
|
|
15
18
|
* @param lhs derivative string, e.g. "d(X)/dt" or "dX/dt"
|
|
16
19
|
* @returns LaTeX string
|
|
@@ -4,62 +4,66 @@ import { identifierToLatex } from '../transformer/identifier';
|
|
|
4
4
|
import { functionToLatex } from '../transformer/functions';
|
|
5
5
|
import { operatorToLatex } from '../transformer/operators';
|
|
6
6
|
import { needsParentheses, wrapParens } from './bracket-manager';
|
|
7
|
+
const DEFAULT_RENDER_OPTS = { useCdot: true };
|
|
8
|
+
function mulSeparator(opts) {
|
|
9
|
+
return opts.useCdot ? ' \\cdot ' : ' \\, ';
|
|
10
|
+
}
|
|
7
11
|
/** Convert an expression string to LaTeX by parsing and rendering the AST.
|
|
8
12
|
* @param expr expression string (RHS of a formula)
|
|
13
|
+
* @param opts render options (useCdot flag)
|
|
9
14
|
* @returns LaTeX string
|
|
10
15
|
*/
|
|
11
|
-
export function expressionToLatex(expr) {
|
|
16
|
+
export function expressionToLatex(expr, opts = DEFAULT_RENDER_OPTS) {
|
|
12
17
|
const ast = parseExpression(expr);
|
|
13
|
-
return nodeToLatex(ast);
|
|
18
|
+
return nodeToLatex(ast, opts);
|
|
14
19
|
}
|
|
15
20
|
/** Render an AST node to LaTeX.
|
|
16
|
-
* @param node
|
|
17
|
-
* @param
|
|
18
|
-
* @
|
|
19
|
-
* @returns LaTeX string
|
|
21
|
+
* @param node AST node to render
|
|
22
|
+
* @param opts render options (useCdot flag)
|
|
23
|
+
* @returns LaTeX string
|
|
20
24
|
*/
|
|
21
|
-
export function nodeToLatex(node,
|
|
25
|
+
export function nodeToLatex(node, opts = DEFAULT_RENDER_OPTS) {
|
|
22
26
|
switch (node.type) {
|
|
23
27
|
case 'number':
|
|
24
28
|
return numberToLatex(node.value);
|
|
25
29
|
case 'identifier':
|
|
26
30
|
return identifierToLatex(node.name);
|
|
27
31
|
case 'unary': {
|
|
28
|
-
const operand = nodeToLatex(node.operand);
|
|
32
|
+
const operand = nodeToLatex(node.operand, opts);
|
|
29
33
|
const needsWrap = node.operand.type === 'binary' || node.operand.type === 'ternary';
|
|
30
34
|
return `${node.op}${needsWrap ? `\\left(${operand}\\right)` : operand}`;
|
|
31
35
|
}
|
|
32
36
|
case 'binary':
|
|
33
|
-
return renderBinary(node);
|
|
37
|
+
return renderBinary(node, opts);
|
|
34
38
|
case 'call': {
|
|
35
|
-
const args = node.args.map((a) => nodeToLatex(a));
|
|
39
|
+
const args = node.args.map((a) => nodeToLatex(a, opts));
|
|
36
40
|
return functionToLatex(node.name, args);
|
|
37
41
|
}
|
|
38
42
|
case 'ternary': {
|
|
39
|
-
const cond = nodeToLatex(node.condition);
|
|
40
|
-
const cons = nodeToLatex(node.consequent);
|
|
41
|
-
const alt = nodeToLatex(node.alternate);
|
|
43
|
+
const cond = nodeToLatex(node.condition, opts);
|
|
44
|
+
const cons = nodeToLatex(node.consequent, opts);
|
|
45
|
+
const alt = nodeToLatex(node.alternate, opts);
|
|
42
46
|
return `\\begin{cases} ${cons}, & \\text{if } ${cond} \\\\ ${alt}, & \\text{otherwise} \\end{cases}`;
|
|
43
47
|
}
|
|
44
48
|
}
|
|
45
49
|
}
|
|
46
|
-
function renderBinary(node) {
|
|
50
|
+
function renderBinary(node, opts) {
|
|
47
51
|
const { op, left, right } = node;
|
|
48
52
|
// Division → \frac; flatten into product of fractions when chain has multiple divisions
|
|
49
53
|
if (op === '/') {
|
|
50
54
|
const factors = flattenMulDivChain(node);
|
|
51
55
|
const divisorCount = factors.filter((f) => f.isDivisor).length;
|
|
52
56
|
if (divisorCount > 1)
|
|
53
|
-
return renderProductOfFractions(factors);
|
|
54
|
-
const l = nodeToLatex(left);
|
|
55
|
-
const r = nodeToLatex(right);
|
|
57
|
+
return renderProductOfFractions(factors, opts);
|
|
58
|
+
const l = nodeToLatex(left, opts);
|
|
59
|
+
const r = nodeToLatex(right, opts);
|
|
56
60
|
return operatorToLatex('/', l, r);
|
|
57
61
|
}
|
|
58
62
|
// Exponentiation → base^{exp}
|
|
59
63
|
if (op === '**') {
|
|
60
64
|
const isCompound = left.type === 'binary' || left.type === 'unary' || left.type === 'ternary';
|
|
61
|
-
const l = nodeToLatex(left);
|
|
62
|
-
const r = nodeToLatex(right);
|
|
65
|
+
const l = nodeToLatex(left, opts);
|
|
66
|
+
const r = nodeToLatex(right, opts);
|
|
63
67
|
return operatorToLatex('**', l, r, { baseIsCompound: isCompound });
|
|
64
68
|
}
|
|
65
69
|
// For *, +, -, comparisons: use precedence-based bracketing
|
|
@@ -67,10 +71,10 @@ function renderBinary(node) {
|
|
|
67
71
|
const rightOp = getNodeOp(right);
|
|
68
72
|
const leftNeedsParen = needsParentheses(leftOp, op, 'left');
|
|
69
73
|
const rightNeedsParen = needsParentheses(rightOp, op, 'right');
|
|
70
|
-
const l = wrapParens(nodeToLatex(left), leftNeedsParen);
|
|
71
|
-
const r = wrapParens(nodeToLatex(right), rightNeedsParen);
|
|
74
|
+
const l = wrapParens(nodeToLatex(left, opts), leftNeedsParen);
|
|
75
|
+
const r = wrapParens(nodeToLatex(right, opts), rightNeedsParen);
|
|
72
76
|
if (op === '*')
|
|
73
|
-
return operatorToLatex('*', l, r, { useCdot:
|
|
77
|
+
return operatorToLatex('*', l, r, { useCdot: opts.useCdot });
|
|
74
78
|
return operatorToLatex(op, l, r);
|
|
75
79
|
}
|
|
76
80
|
function getNodeOp(node) {
|
|
@@ -96,23 +100,23 @@ function flattenMulDivChain(node) {
|
|
|
96
100
|
collect(node);
|
|
97
101
|
return factors;
|
|
98
102
|
}
|
|
99
|
-
/** Render a list of factors joined with
|
|
100
|
-
function renderProductTerm(nodes) {
|
|
103
|
+
/** Render a list of factors joined with the configured multiplication separator. */
|
|
104
|
+
function renderProductTerm(nodes, opts) {
|
|
101
105
|
if (nodes.length === 0)
|
|
102
106
|
return '1';
|
|
103
107
|
if (nodes.length === 1)
|
|
104
|
-
return nodeToLatex(nodes[0]);
|
|
108
|
+
return nodeToLatex(nodes[0], opts);
|
|
105
109
|
return nodes.map((n) => {
|
|
106
|
-
const latex = nodeToLatex(n);
|
|
110
|
+
const latex = nodeToLatex(n, opts);
|
|
107
111
|
if (n.type === 'binary' && (n.op === '+' || n.op === '-'))
|
|
108
112
|
return `\\left(${latex}\\right)`;
|
|
109
113
|
if (n.type === 'ternary')
|
|
110
114
|
return `\\left(${latex}\\right)`;
|
|
111
115
|
return latex;
|
|
112
|
-
}).join(
|
|
116
|
+
}).join(mulSeparator(opts));
|
|
113
117
|
}
|
|
114
118
|
/** Render factors as a product of fractions. */
|
|
115
|
-
function renderProductOfFractions(factors) {
|
|
119
|
+
function renderProductOfFractions(factors, opts) {
|
|
116
120
|
const groups = [];
|
|
117
121
|
let cur = { nums: [], dens: [] };
|
|
118
122
|
for (const f of factors) {
|
|
@@ -129,13 +133,13 @@ function renderProductOfFractions(factors) {
|
|
|
129
133
|
}
|
|
130
134
|
groups.push(cur);
|
|
131
135
|
const parts = groups.map((g) => {
|
|
132
|
-
const num = renderProductTerm(g.nums);
|
|
136
|
+
const num = renderProductTerm(g.nums, opts);
|
|
133
137
|
if (g.dens.length === 0)
|
|
134
138
|
return num;
|
|
135
|
-
const den = renderProductTerm(g.dens);
|
|
139
|
+
const den = renderProductTerm(g.dens, opts);
|
|
136
140
|
return `\\frac{${num}}{${den}}`;
|
|
137
141
|
});
|
|
138
|
-
return parts.join(
|
|
142
|
+
return parts.join(mulSeparator(opts));
|
|
139
143
|
}
|
|
140
144
|
/** Convert a derivative LHS to LaTeX (e.g. "dy/dt" → "\frac{dy}{dt}").
|
|
141
145
|
* @param lhs derivative string, e.g. "d(X)/dt" or "dX/dt"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"latex-generator.js","sourceRoot":"","sources":["../../../../src/latex-export/generator/latex-generator.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAG5E,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAC,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"latex-generator.js","sourceRoot":"","sources":["../../../../src/latex-export/generator/latex-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MATH_CONSTS, MATH_FUNCS, POW_IDX } from '../scripting-tools/scripting-tools';
|
|
2
|
-
import { getOutputCode } from './output';
|
|
2
|
+
import { getOutputCode, getStageOutputCode } from './output';
|
|
3
3
|
import { PipelineCreator } from './pipeline-creator';
|
|
4
4
|
import { argName2IdxMap, ARG, ARG_COL_IDX, CORRECTION_FACTOR, DEFAULT_CORRECTION, LOOP_MIN_COUNT } from './constants';
|
|
5
5
|
/** Pipeline creator for cyclic model
|
|
@@ -191,10 +191,11 @@ export class CyclicModelPipelineCreator extends PipelineCreator {
|
|
|
191
191
|
const preCode = preProcLines.join('\n');
|
|
192
192
|
const postCode = postProcLines.join('\n');
|
|
193
193
|
const wrappers = new Array(repetitions);
|
|
194
|
+
const stageOut = getStageOutputCode(this.ivp);
|
|
194
195
|
for (let i = 0; i < repetitions; ++i) {
|
|
195
196
|
wrappers[i] = {
|
|
196
197
|
preproc: preCode,
|
|
197
|
-
out:
|
|
198
|
+
out: stageOut,
|
|
198
199
|
postproc: postCode,
|
|
199
200
|
};
|
|
200
201
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loops-pipeline-creator.js","sourceRoot":"","sources":["../../../src/pipeline/loops-pipeline-creator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAC,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"loops-pipeline-creator.js","sourceRoot":"","sources":["../../../src/pipeline/loops-pipeline-creator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAC,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAC,aAAa,EAAE,kBAAkB,EAAC,MAAM,UAAU,CAAC;AAE3D,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAC,cAAc,EAAE,GAAG,EAAE,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAC,MAAM,aAAa,CAAC;AAEpH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4GO;AACP,MAAM,OAAO,0BAA2B,SAAQ,eAAe;IAC7D;;OAEG;IACH,YAAY,GAAQ;QAClB,KAAK,CAAC,GAAG,CAAC,CAAC;QAEX,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI;YACnB,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACtF,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,MAAoB;QACrC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI;YACxB,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QAEpF,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC;QACpC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAEvC,IAAI,WAAW,GAAG,cAAc;YAC9B,MAAM,IAAI,KAAK,CAAC,gCAAgC,WAAW,iBAAiB,CAAC,CAAC;QAEhF,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,kBAAkB;QAClB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACrC,IAAI,GAAG,KAAK,OAAO;gBACjB,YAAY,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;;gBAEnF,YAAY,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,mBAAmB;QACnB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACtC,YAAY,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC,WAAW,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QAEH,kBAAkB;QAClB,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,IAAI;YAC1B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAEjG,YAAY,CAAC,IAAI,CAAC,wCAAwC,UAAU,IAAI,CAAC,CAAC;QAE1E,iBAAiB;QACjB,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,IAAI,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC;QAE1F,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAChD,YAAY,CAAC,IAAI,CAAC,OAAO,IAAI,aAAa,GAAG,GAAG,OAAO,IAAI,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAC3D,IAAI,GAAG,GAAG,CAAC,CAAC;YAEZ,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;gBAClC,YAAY,CAAC,IAAI,CAAC,OAAO,IAAI,aAAa,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC;gBAC3D,EAAE,GAAG,CAAC;YACR,CAAC,CAAC,CAAC;QACL,CAAC;QAED,UAAU;QACV,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;QAEvE,sBAAsB;QACtB,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,GAAG,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC;QAEtF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAChD,YAAY,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,OAAO,OAAO,IAAI,GAAG,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAC3D,IAAI,GAAG,GAAG,CAAC,CAAC;YAEZ,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;gBAClC,YAAY,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,KAAK,OAAO,IAAI,GAAG,CAAC,CAAC;gBACvD,EAAE,GAAG,CAAC;YACR,CAAC,CAAC,CAAC;QACL,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEpC,MAAM,aAAa,GAAG;YACpB,gCAAgC;YAChC,yCAAyC;YACzC,gDAAgD;YAChD,2BAA2B,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;YACxG,UAAU,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI;YACvF,UAAU,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB;SACzD,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YAC7C,aAAa,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,OAAO,gBAAgB,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QAEH,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAErC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1C,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAU,WAAW,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC;YACrC,QAAQ,CAAC,CAAC,CAAC,GAAG;gBACZ,OAAO,EAAE,OAAO;gBAChB,GAAG,EAAE,QAAQ;gBACb,QAAQ,EAAE,QAAQ;aACnB,CAAC;QACJ,CAAC;QAED,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAEtE,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;SAC7B,CAAC;IACJ,CAAC,CAAC,cAAc;IAEhB,gDAAgD;IACxC,yBAAyB;QAC/B,OAAO,4BAA4B,WAAW;;;yCAGT,iBAAiB,KAAK,kBAAkB;;;;;yBAKxD,CAAC;IACxB,CAAC,CAAC,4BAA4B;CAC/B,CAAC,6BAA6B"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { IVP } from '../scripting-tools/scripting-tools';
|
|
2
|
+
/** Return per-stage output code for cyclic/multistage models: recompute the output expressions
|
|
3
|
+
for this stage (using this stage's parameters), then APPEND them as columns to the stage
|
|
4
|
+
solution. Returns null when the model has no expressions in its outputs. */
|
|
5
|
+
export declare function getStageOutputCode(ivp: IVP): string | null;
|
|
2
6
|
/** Return a code for output extraction
|
|
3
7
|
* @internal
|
|
4
8
|
*/
|
|
@@ -22,16 +22,28 @@ function getOutputNoExprs(ivp) {
|
|
|
22
22
|
lines.push('return solution;');
|
|
23
23
|
return lines.join('\n');
|
|
24
24
|
} // getOutputNoExprs
|
|
25
|
-
/**
|
|
26
|
-
function
|
|
25
|
+
/** Output-expression names, in #expressions order — the columns a stage appends. */
|
|
26
|
+
function outputExprNames(ivp) {
|
|
27
|
+
const outputs = ivp.outputs;
|
|
28
|
+
const exprs = ivp.exprs;
|
|
29
|
+
if (outputs === null || exprs === null)
|
|
30
|
+
return [];
|
|
31
|
+
const names = [];
|
|
32
|
+
exprs.forEach((_, name) => {
|
|
33
|
+
if (outputs.has(name))
|
|
34
|
+
names.push(name);
|
|
35
|
+
});
|
|
36
|
+
return names;
|
|
37
|
+
} // outputExprNames
|
|
38
|
+
/** Lines that recompute the expressions row-by-row from the argument & solution columns of
|
|
39
|
+
arguments[0], reading parameters from the input vector arguments[1], and fill a Float64Array
|
|
40
|
+
<name>Raw for each output expression. Shared by the basic recompute and the per-stage code. */
|
|
41
|
+
function getExprComputeLines(ivp) {
|
|
27
42
|
const outputs = ivp.outputs;
|
|
28
|
-
if (outputs === null)
|
|
29
|
-
throw new Error('Grok Lib issue: no outputs in the initial value problem');
|
|
30
43
|
const exprs = ivp.exprs;
|
|
31
|
-
if (!exprsInOutputs(ivp) || (exprs === null))
|
|
32
|
-
throw new Error('Grok Lib issue: expressions must be given');
|
|
33
44
|
const argName = ivp.arg.name;
|
|
34
|
-
const
|
|
45
|
+
const funcNames = ivp.deqs.solutionNames;
|
|
46
|
+
const lines = [];
|
|
35
47
|
// Used math funcs
|
|
36
48
|
ivp.usedMathFuncs.forEach((idx) => {
|
|
37
49
|
if (idx !== POW_IDX)
|
|
@@ -44,37 +56,50 @@ function getOutputWithExprs(ivp) {
|
|
|
44
56
|
// Model constants
|
|
45
57
|
if (ivp.consts !== null)
|
|
46
58
|
ivp.consts.forEach((input, name) => lines.push(`const ${name} = ${input.value};`));
|
|
47
|
-
// Model parameters
|
|
59
|
+
// Model parameters (per-stage input vector)
|
|
48
60
|
if (ivp.params !== null) {
|
|
49
|
-
let idx = ARG_INP_COUNT +
|
|
61
|
+
let idx = ARG_INP_COUNT + funcNames.length;
|
|
50
62
|
ivp.params.forEach((_, name) => {
|
|
51
63
|
lines.push(`const ${name} = arguments[1][${idx}];`);
|
|
52
64
|
++idx;
|
|
53
65
|
});
|
|
54
66
|
}
|
|
55
67
|
lines.push('');
|
|
56
|
-
|
|
57
|
-
|
|
68
|
+
// __len / __i are underscore-prefixed so they cannot collide with a model constant or parameter
|
|
69
|
+
// (e.g. a model with a constant named `k` would otherwise be shadowed by the loop counter).
|
|
70
|
+
lines.push('const __len = arguments[0][0].length;');
|
|
58
71
|
lines.push(`let ${argName} = 0;`);
|
|
59
72
|
funcNames.forEach((name) => lines.push(`let ${name} = 0;`));
|
|
60
73
|
lines.push('');
|
|
61
74
|
exprs.forEach((_, name) => {
|
|
62
75
|
lines.push(`let ${name} = 0;`);
|
|
63
76
|
if (outputs.has(name))
|
|
64
|
-
lines.push(`let ${name}Raw = new Float64Array(
|
|
77
|
+
lines.push(`let ${name}Raw = new Float64Array(__len);`);
|
|
65
78
|
});
|
|
66
79
|
lines.push('');
|
|
67
|
-
lines.push('for (let
|
|
68
|
-
lines.push(` ${argName} = arguments[0][0][
|
|
69
|
-
funcNames.forEach((name, idx) => lines.push(` ${name} = arguments[0][${SHIFT + idx}][
|
|
80
|
+
lines.push('for (let __i = 0; __i < __len; ++__i) {');
|
|
81
|
+
lines.push(` ${argName} = arguments[0][0][__i];`);
|
|
82
|
+
funcNames.forEach((name, idx) => lines.push(` ${name} = arguments[0][${SHIFT + idx}][__i];`));
|
|
70
83
|
lines.push('');
|
|
71
84
|
exprs.forEach((expr, name) => {
|
|
72
85
|
lines.push(` ${name} = ${expr};`);
|
|
73
86
|
if (outputs.has(name))
|
|
74
|
-
lines.push(` ${name}Raw[
|
|
87
|
+
lines.push(` ${name}Raw[__i] = ${name};`);
|
|
75
88
|
});
|
|
76
89
|
lines.push('}');
|
|
77
90
|
lines.push('');
|
|
91
|
+
return lines;
|
|
92
|
+
} // getExprComputeLines
|
|
93
|
+
/** Return output for a basic (non-cyclic, non-multistage) model WITH expressions.
|
|
94
|
+
Recomputes the output expressions once, at top level, over the full solution. */
|
|
95
|
+
function getOutputWithExprs(ivp) {
|
|
96
|
+
const outputs = ivp.outputs;
|
|
97
|
+
const exprs = ivp.exprs;
|
|
98
|
+
if (outputs === null || exprs === null || !exprsInOutputs(ivp))
|
|
99
|
+
throw new Error('Grok Lib issue: expressions must be given');
|
|
100
|
+
const argName = ivp.arg.name;
|
|
101
|
+
const lines = getExprComputeLines(ivp);
|
|
102
|
+
lines.push('const solution = [];');
|
|
78
103
|
outputs.forEach((_, name) => {
|
|
79
104
|
if (name === argName)
|
|
80
105
|
lines.push('solution.push(arguments[0][0]);');
|
|
@@ -89,6 +114,44 @@ function getOutputWithExprs(ivp) {
|
|
|
89
114
|
lines.push('return solution;');
|
|
90
115
|
return lines.join('\n');
|
|
91
116
|
} // getOutputWithExprs
|
|
117
|
+
/** Return per-stage output code for cyclic/multistage models: recompute the output expressions
|
|
118
|
+
for this stage (using this stage's parameters), then APPEND them as columns to the stage
|
|
119
|
+
solution. Returns null when the model has no expressions in its outputs. */
|
|
120
|
+
export function getStageOutputCode(ivp) {
|
|
121
|
+
if (!exprsInOutputs(ivp))
|
|
122
|
+
return null;
|
|
123
|
+
const lines = getExprComputeLines(ivp);
|
|
124
|
+
// Keep [arg, f0..fN] intact and append the output-expression columns after them.
|
|
125
|
+
lines.push('const solution = arguments[0];');
|
|
126
|
+
outputExprNames(ivp).forEach((name) => lines.push(`solution.push(${name}Raw);`));
|
|
127
|
+
lines.push('return solution;');
|
|
128
|
+
return lines.join('\n');
|
|
129
|
+
} // getStageOutputCode
|
|
130
|
+
/** Return top-level output code for cyclic/multistage models with output expressions: the stages
|
|
131
|
+
already appended the expression columns, so this only selects columns into #output order. */
|
|
132
|
+
function getOutputSelectWithExprCols(ivp) {
|
|
133
|
+
const outputs = ivp.outputs;
|
|
134
|
+
const argName = ivp.arg.name;
|
|
135
|
+
const funcNames = ivp.deqs.solutionNames;
|
|
136
|
+
const exprNames = outputExprNames(ivp);
|
|
137
|
+
const lines = ['const solution = [];'];
|
|
138
|
+
outputs.forEach((_, name) => {
|
|
139
|
+
if (name === argName) {
|
|
140
|
+
lines.push('solution.push(arguments[0][0]);');
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
const funcIdx = funcNames.indexOf(name);
|
|
144
|
+
if (funcIdx > -1) {
|
|
145
|
+
lines.push(`solution.push(arguments[0][${funcIdx + 1}]);`);
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
const exprIdx = exprNames.indexOf(name);
|
|
149
|
+
if (exprIdx > -1)
|
|
150
|
+
lines.push(`solution.push(arguments[0][${1 + funcNames.length + exprIdx}]);`);
|
|
151
|
+
});
|
|
152
|
+
lines.push('return solution;');
|
|
153
|
+
return lines.join('\n');
|
|
154
|
+
} // getOutputSelectWithExprCols
|
|
92
155
|
/** Return a code for output extraction
|
|
93
156
|
* @internal
|
|
94
157
|
*/
|
|
@@ -96,11 +159,13 @@ export function getOutputCode(ivp) {
|
|
|
96
159
|
const outputs = ivp.outputs;
|
|
97
160
|
if (outputs === null)
|
|
98
161
|
return null;
|
|
99
|
-
|
|
100
|
-
if (exprsInOutputs(ivp))
|
|
101
|
-
return getOutputWithExprs(ivp);
|
|
102
|
-
else
|
|
162
|
+
if (!exprsInOutputs(ivp))
|
|
103
163
|
return getOutputNoExprs(ivp);
|
|
164
|
+
// Cyclic (#loop) & multistage (#update) models compute expression columns per stage; the
|
|
165
|
+
// top level only selects them. Basic models recompute the expressions here.
|
|
166
|
+
if (ivp.loop !== null || ivp.updates !== null)
|
|
167
|
+
return getOutputSelectWithExprCols(ivp);
|
|
168
|
+
return getOutputWithExprs(ivp);
|
|
104
169
|
} // getOutputCode
|
|
105
170
|
/** Check whether outputs have items from expressions */
|
|
106
171
|
function exprsInOutputs(ivp) {
|
|
@@ -114,24 +179,6 @@ function exprsInOutputs(ivp) {
|
|
|
114
179
|
exprs.forEach((_, name) => flag ||= outputs.has(name));
|
|
115
180
|
return flag;
|
|
116
181
|
}
|
|
117
|
-
/** Check applicability of model outputs */
|
|
118
|
-
function checkApplicability(ivp) {
|
|
119
|
-
const outputs = ivp.outputs;
|
|
120
|
-
if (outputs === null)
|
|
121
|
-
throw new Error('Model has no outputs');
|
|
122
|
-
const exprs = ivp.exprs;
|
|
123
|
-
if (exprs === null)
|
|
124
|
-
return;
|
|
125
|
-
if (ivp.loop !== null) {
|
|
126
|
-
if (exprsInOutputs(ivp))
|
|
127
|
-
throw new Error('Non-supported model: expressions in output & loops');
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
if (ivp.updates !== null) {
|
|
131
|
-
if (exprsInOutputs(ivp))
|
|
132
|
-
throw new Error('Non-supported model: expressions in output and updates');
|
|
133
|
-
}
|
|
134
|
-
} // checkApplicability
|
|
135
182
|
/** Return names of the model outputs
|
|
136
183
|
* @param ivp - initial value problem
|
|
137
184
|
* @returns an array of names of the model outputs
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/pipeline/output.ts"],"names":[],"mappings":"AAAA,mDAAmD;AAEnD,OAAO,EAAM,WAAW,EAAE,OAAO,EAAE,UAAU,EAAC,MAAM,oCAAoC,CAAC;AACzF,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAE1C,MAAM,KAAK,GAAG,CAAC,CAAC;AAEhB,sDAAsD;AACtD,SAAS,gBAAgB,CAAC,GAAQ;IAChC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IAC5B,IAAI,OAAO,KAAK,IAAI;QAClB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAE7E,IAAI,cAAc,CAAC,GAAG,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAGhE,MAAM,KAAK,GAAa,CAAC,sBAAsB,CAAC,CAAC;IAEjD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;QAC1B,IAAI,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI;YACvB,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;aAC3C,CAAC;YACJ,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEjD,IAAI,GAAG,GAAG,CAAC,CAAC;gBACV,KAAK,CAAC,IAAI,CAAC,8BAA8B,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAE/B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC,CAAC,mBAAmB;AAErB,
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/pipeline/output.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable max-len */
|
|
2
2
|
import { MATH_CONSTS, MATH_FUNCS, POW_IDX } from '../scripting-tools/scripting-tools';
|
|
3
|
-
import { getOutputCode } from './output';
|
|
3
|
+
import { getOutputCode, getStageOutputCode } from './output';
|
|
4
4
|
import { PipelineCreator } from './pipeline-creator';
|
|
5
5
|
import { argName2IdxMap, ARG, ARG_COL_IDX, CORRECTION_FACTOR, DEFAULT_CORRECTION } from './constants';
|
|
6
6
|
/** Pipeline creator for model with updates
|
|
@@ -141,9 +141,10 @@ export class UpdatesModelPipelineCreator extends PipelineCreator {
|
|
|
141
141
|
getPipeline(inputs) {
|
|
142
142
|
if (this.ivp.updates === null)
|
|
143
143
|
throw new Error('Incorrect use of UpdatesModelPipelineCreator: model has no updates');
|
|
144
|
+
const stageOut = getStageOutputCode(this.ivp);
|
|
144
145
|
const wrappers = [{
|
|
145
146
|
preproc: null,
|
|
146
|
-
out:
|
|
147
|
+
out: stageOut,
|
|
147
148
|
postproc: null,
|
|
148
149
|
}];
|
|
149
150
|
this.ivp.updates.forEach((update) => {
|
|
@@ -200,7 +201,7 @@ export class UpdatesModelPipelineCreator extends PipelineCreator {
|
|
|
200
201
|
lines.push('return inputs;');
|
|
201
202
|
wrappers.push({
|
|
202
203
|
preproc: lines.join('\n'),
|
|
203
|
-
out:
|
|
204
|
+
out: stageOut,
|
|
204
205
|
postproc: null,
|
|
205
206
|
});
|
|
206
207
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updates-pipeline-creator.js","sourceRoot":"","sources":["../../../src/pipeline/updates-pipeline-creator.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAG5B,OAAO,EAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAC,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"updates-pipeline-creator.js","sourceRoot":"","sources":["../../../src/pipeline/updates-pipeline-creator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
|
10
10
|
"license": "MIT",
|
|
11
|
-
"version": "1.
|
|
11
|
+
"version": "1.4.0",
|
|
12
12
|
"description": "Tools for solving initial value problem for ordinary differential equations",
|
|
13
13
|
"main": "dist/index.js",
|
|
14
14
|
"types": "dist/index.d.ts",
|
|
@@ -45,7 +45,6 @@
|
|
|
45
45
|
},
|
|
46
46
|
"repository": {
|
|
47
47
|
"type": "git",
|
|
48
|
-
"url": "git
|
|
49
|
-
"directory": ""
|
|
48
|
+
"url": "git+https://github.com/datagrok-ai/diff-grok.git"
|
|
50
49
|
}
|
|
51
50
|
}
|