runmat 0.5.2-dev.4 → 0.5.2-dev.6

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.
Files changed (58) hide show
  1. package/artifacts/stdlib.snapshot +0 -0
  2. package/dist/generated/builtin-examples-catalog.d.ts.map +1 -1
  3. package/dist/generated/builtin-examples-catalog.js +1 -1
  4. package/dist/generated/builtin-examples-catalog.js.map +1 -1
  5. package/dist/generated/builtins/butter.d.ts +4 -0
  6. package/dist/generated/builtins/butter.d.ts.map +1 -0
  7. package/dist/generated/builtins/butter.js +112 -0
  8. package/dist/generated/builtins/butter.js.map +1 -0
  9. package/dist/generated/builtins/dcgain.d.ts +4 -0
  10. package/dist/generated/builtins/dcgain.d.ts.map +1 -0
  11. package/dist/generated/builtins/dcgain.js +96 -0
  12. package/dist/generated/builtins/dcgain.js.map +1 -0
  13. package/dist/generated/builtins/feedback.d.ts +4 -0
  14. package/dist/generated/builtins/feedback.d.ts.map +1 -0
  15. package/dist/generated/builtins/feedback.js +114 -0
  16. package/dist/generated/builtins/feedback.js.map +1 -0
  17. package/dist/generated/builtins/imhist.d.ts +4 -0
  18. package/dist/generated/builtins/imhist.d.ts.map +1 -0
  19. package/dist/generated/builtins/imhist.js +123 -0
  20. package/dist/generated/builtins/imhist.js.map +1 -0
  21. package/dist/generated/builtins/isstable.d.ts +4 -0
  22. package/dist/generated/builtins/isstable.d.ts.map +1 -0
  23. package/dist/generated/builtins/isstable.js +96 -0
  24. package/dist/generated/builtins/isstable.js.map +1 -0
  25. package/dist/generated/builtins/pole.d.ts +4 -0
  26. package/dist/generated/builtins/pole.d.ts.map +1 -0
  27. package/dist/generated/builtins/pole.js +96 -0
  28. package/dist/generated/builtins/pole.js.map +1 -0
  29. package/dist/generated/builtins/rref.d.ts.map +1 -1
  30. package/dist/generated/builtins/rref.js +36 -57
  31. package/dist/generated/builtins/rref.js.map +1 -1
  32. package/dist/generated/builtins/run.d.ts +4 -0
  33. package/dist/generated/builtins/run.d.ts.map +1 -0
  34. package/dist/generated/builtins/run.js +118 -0
  35. package/dist/generated/builtins/run.js.map +1 -0
  36. package/dist/generated/builtins/step.d.ts.map +1 -1
  37. package/dist/generated/builtins/step.js +14 -3
  38. package/dist/generated/builtins/step.js.map +1 -1
  39. package/dist/generated/builtins/stepinfo.d.ts +4 -0
  40. package/dist/generated/builtins/stepinfo.d.ts.map +1 -0
  41. package/dist/generated/builtins/stepinfo.js +111 -0
  42. package/dist/generated/builtins/stepinfo.js.map +1 -0
  43. package/dist/generated/builtins/tf.d.ts.map +1 -1
  44. package/dist/generated/builtins/tf.js +41 -9
  45. package/dist/generated/builtins/tf.js.map +1 -1
  46. package/dist/generated/builtins-manifest.d.ts.map +1 -1
  47. package/dist/generated/builtins-manifest.js +177 -9
  48. package/dist/generated/builtins-manifest.js.map +1 -1
  49. package/dist/lsp/runmat_lsp.d.ts +3 -3
  50. package/dist/lsp/runmat_lsp.js +7 -7
  51. package/dist/lsp/runmat_lsp_bg.wasm +0 -0
  52. package/dist/lsp/runmat_lsp_bg.wasm.d.ts +3 -3
  53. package/dist/pkg-web/runmat_wasm_web.d.ts +4 -4
  54. package/dist/pkg-web/runmat_wasm_web.js +10 -10
  55. package/dist/pkg-web/runmat_wasm_web_bg.wasm +0 -0
  56. package/dist/pkg-web/runmat_wasm_web_bg.wasm.d.ts +4 -4
  57. package/dist/runtime/stdlib.snapshot +0 -0
  58. package/package.json +2 -2
@@ -7,9 +7,11 @@ const builtinDoc = {
7
7
  "tf",
8
8
  "transfer function",
9
9
  "control system",
10
- "coefficient vector"
10
+ "coefficient vector",
11
+ "feedback",
12
+ "step response"
11
13
  ],
12
- "summary": "Create SISO transfer-function model objects from numerator and denominator coefficient vectors.",
14
+ "summary": "Create and combine SISO transfer-function model objects.",
13
15
  "references": [
14
16
  "title: \"MATLAB tf documentation\"",
15
17
  "title: \"Octave control package tf documentation\""
@@ -33,8 +35,10 @@ const builtinDoc = {
33
35
  "unit": "builtins::control::tf::tests",
34
36
  "integration": "crates/runmat-vm/tests/control.rs"
35
37
  },
36
- "description": "`tf(num, den)` creates scalar-input scalar-output transfer-function objects from numeric coefficient vectors. Coefficients follow MATLAB-compatible highest-order-to-constant polynomial ordering.",
38
+ "description": "`tf('s')` creates a continuous-time transfer-function variable, and `tf(num, den)` creates scalar-input scalar-output transfer-function objects from numeric coefficient vectors. Coefficients follow MATLAB-compatible highest-order-to-constant polynomial ordering.",
37
39
  "behaviors": [
40
+ "`tf('s')` and `tf('p')` create continuous-time transfer-function variables with numerator `[1 0]`, denominator `[1]`, and `Ts = 0`.",
41
+ "`tf('z', Ts)`, `tf('q', Ts)`, `tf('z^-1', Ts)`, and `tf('q^-1', Ts)` create discrete-time variables with a positive sample time.",
38
42
  "Accepts numeric scalar, row-vector, or column-vector numerator coefficients.",
39
43
  "Accepts numeric scalar, row-vector, or column-vector denominator coefficients.",
40
44
  "Normalizes stored numerator and denominator coefficients to row vectors on the returned `tf` object.",
@@ -45,9 +49,17 @@ const builtinDoc = {
45
49
  "`tf(num, den, 'Variable', variable)` accepts `variable` values `'s'`, `'p'`, `'z'`, `'q'`, `'z^-1'`, and `'q^-1'`.",
46
50
  "`tf(num, den, 'Ts', Ts)` or `tf(num, den, 'SampleTime', Ts)` stores a finite non-negative sample time.",
47
51
  "Complex coefficients are accepted and stored as complex row vectors.",
48
- "Logical and integer coefficients are promoted to double precision."
52
+ "Logical and integer coefficients are promoted to double precision.",
53
+ "`tf` objects overload `+`, `-`, unary `+`, unary `-`, `*`, `.*`, `/`, `./`, `\\`, `.\\`, `^`, and `.^` for SISO transfer-function algebra with scalar gains.",
54
+ "Transfer-function powers require integer scalar exponents.",
55
+ "Arithmetic requires compatible sample times and does not support nonzero input or output delays."
49
56
  ],
50
57
  "examples": [
58
+ {
59
+ "description": "Using the transfer-function variable shorthand",
60
+ "input": "s = tf('s');\nG = 2.5/(0.4*s^2 + 1.8*s + 1);\nG.Denominator",
61
+ "output": "ans = [0.4 1.8 1.0]"
62
+ },
51
63
  {
52
64
  "description": "Creating a first-order continuous-time transfer function",
53
65
  "input": "H = tf(20, [1 5]);\nclass(H)",
@@ -63,6 +75,11 @@ const builtinDoc = {
63
75
  "input": "H = tf(1, [1 -0.5], 0.1);\nH.Variable\nH.Ts",
64
76
  "output": "H.Variable = 'z'\nH.Ts = 0.1"
65
77
  },
78
+ {
79
+ "description": "Creating a closed-loop model",
80
+ "input": "s = tf('s');\nG = 1/(s + 1);\nT = feedback(2*G, 1);\ndcgain(T)",
81
+ "output": "ans = 0.6667"
82
+ },
66
83
  {
67
84
  "description": "Selecting the polynomial variable",
68
85
  "input": "H = tf([1 0], [1 2 1], 'Variable', 'p');\nH.Variable",
@@ -79,8 +96,12 @@ const builtinDoc = {
79
96
  "answer": "Not yet. This implementation supports scalar-input scalar-output systems created from numeric coefficient vectors."
80
97
  },
81
98
  {
82
- "question": "Does `tf` implement `step`, `impulse`, or `bode`?",
83
- "answer": "No. Those functions are not part of this builtin."
99
+ "question": "Can I build models with `s = tf('s')`?",
100
+ "answer": "Yes. Continuous-time variable shorthand and integer powers are supported for common polynomial model construction."
101
+ },
102
+ {
103
+ "question": "Does `tf` implement response and stability helpers?",
104
+ "answer": "`step`, `impulse`, `nyquist`, `stepinfo`, `feedback`, `dcgain`, `pole`, and `isstable` are implemented as separate control builtins."
84
105
  },
85
106
  {
86
107
  "question": "Can I pass matrices of coefficients?",
@@ -99,6 +120,14 @@ const builtinDoc = {
99
120
  {
100
121
  "label": "roots",
101
122
  "url": "./roots"
123
+ },
124
+ {
125
+ "label": "feedback",
126
+ "url": "./feedback"
127
+ },
128
+ {
129
+ "label": "step",
130
+ "url": "./step"
102
131
  }
103
132
  ],
104
133
  "source": {
@@ -108,17 +137,20 @@ const builtinDoc = {
108
137
  "syntax": {
109
138
  "example": {
110
139
  "description": "Supported forms",
111
- "input": "H = tf(num, den)\nH = tf(num, den, Ts)\nH = tf(num, den, 'Variable', variable)\nH = tf(num, den, 'Ts', Ts)",
140
+ "input": "s = tf('s')\nz = tf('z', Ts)\nH = tf(num, den)\nH = tf(num, den, Ts)\nH = tf(num, den, 'Variable', variable)\nH = tf(num, den, 'Ts', Ts)",
112
141
  "output": "H is a tf object."
113
142
  },
114
143
  "points": [
144
+ "`tf('s')` and `tf('p')` create continuous-time indeterminates.",
145
+ "`tf('z', Ts)` and related discrete variables require a positive finite sample time; `tf('z')` defaults to `Ts = 1`.",
115
146
  "`num` and `den` are numeric scalar, row-vector, or column-vector coefficient inputs. Coefficients are stored using MATLAB's highest-order-term-first polynomial convention.",
116
147
  "`Ts` is an optional finite non-negative sample time. Positive sample times default the transfer-function variable to `'z'` unless `Variable` is provided explicitly.",
117
- "`Variable` accepts `'s'`, `'p'`, `'z'`, `'q'`, `'z^-1'`, or `'q^-1'`. The denominator vector must contain at least one non-zero coefficient."
148
+ "`Variable` accepts `'s'`, `'p'`, `'z'`, `'q'`, `'z^-1'`, or `'q^-1'`. The denominator vector must contain at least one non-zero coefficient.",
149
+ "SISO `tf` arithmetic supports scalar gains and compatible `tf` operands."
118
150
  ]
119
151
  },
120
152
  "validation": {
121
- "summary": "`tf` validates coefficient shapes, finite numeric values, supported variable names, and sample-time constraints before constructing the host-side transfer-function object. Unit and integration tests cover continuous and discrete constructors, row normalization, option parsing, and invalid denominator or matrix coefficient inputs.",
153
+ "summary": "`tf` validates coefficient shapes, finite numeric values, supported variable names, sample-time constraints, and SISO arithmetic compatibility before constructing or combining host-side transfer-function objects. Unit and integration tests cover continuous and discrete constructors, variable shorthand, polynomial arithmetic, scalar division by transfer functions, row normalization, option parsing, and invalid denominator or matrix coefficient inputs.",
122
154
  "implementation": {
123
155
  "label": "`crates/runmat-runtime/src/builtins/control/tf.rs`",
124
156
  "url": "https://github.com/runmat-org/runmat/blob/main/crates/runmat-runtime/src/builtins/control/tf.rs"
@@ -1 +1 @@
1
- {"version":3,"file":"tf.js","sourceRoot":"","sources":["../../../src/generated/builtins/tf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tf.js","sourceRoot":"","sources":["../../../src/generated/builtins/tf.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"builtins-manifest.d.ts","sourceRoot":"","sources":["../../src/generated/builtins-manifest.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE7E,eAAO,MAAM,eAAe,EAAE,oBAAoB,EAo5QjD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CA0a9D,CAAC;AAEF,eAAO,MAAM,4BAA4B,sEAC0C,CAAC"}
1
+ {"version":3,"file":"builtins-manifest.d.ts","sourceRoot":"","sources":["../../src/generated/builtins-manifest.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE7E,eAAO,MAAM,eAAe,EAAE,oBAAoB,EAojRjD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAkb9D,CAAC;AAEF,eAAO,MAAM,4BAA4B,sEAC0C,CAAC"}
@@ -463,6 +463,29 @@ export const builtinManifest = [
463
463
  "summary": "Toggle axes box outlines in MATLAB and RunMat plotting.",
464
464
  "exampleCount": 2
465
465
  },
466
+ {
467
+ "key": "butter",
468
+ "title": "butter",
469
+ "slug": "butter",
470
+ "aliases": [],
471
+ "category": "math/signal",
472
+ "categoryPath": [
473
+ "math",
474
+ "signal"
475
+ ],
476
+ "keywords": [
477
+ "butter",
478
+ "Butterworth",
479
+ "IIR",
480
+ "lowpass",
481
+ "highpass",
482
+ "bandpass",
483
+ "bandstop",
484
+ "signal processing"
485
+ ],
486
+ "summary": "Design Butterworth IIR filters.",
487
+ "exampleCount": 4
488
+ },
466
489
  {
467
490
  "key": "cat",
468
491
  "title": "cat",
@@ -1459,6 +1482,25 @@ export const builtinManifest = [
1459
1482
  "summary": "Convert numeric values to decibels in MATLAB and RunMat.",
1460
1483
  "exampleCount": 4
1461
1484
  },
1485
+ {
1486
+ "key": "dcgain",
1487
+ "title": "dcgain",
1488
+ "slug": "dcgain",
1489
+ "aliases": [],
1490
+ "category": "control",
1491
+ "categoryPath": [
1492
+ "control"
1493
+ ],
1494
+ "keywords": [
1495
+ "dcgain",
1496
+ "steady state",
1497
+ "control system",
1498
+ "transfer function",
1499
+ "tf"
1500
+ ],
1501
+ "summary": "Evaluate steady-state gain of SISO transfer-function models.",
1502
+ "exampleCount": 1
1503
+ },
1462
1504
  {
1463
1505
  "key": "deconv",
1464
1506
  "title": "deconv",
@@ -2049,6 +2091,25 @@ export const builtinManifest = [
2049
2091
  "summary": "Close file identifiers in MATLAB and RunMat.",
2050
2092
  "exampleCount": 6
2051
2093
  },
2094
+ {
2095
+ "key": "feedback",
2096
+ "title": "feedback",
2097
+ "slug": "feedback",
2098
+ "aliases": [],
2099
+ "category": "control",
2100
+ "categoryPath": [
2101
+ "control"
2102
+ ],
2103
+ "keywords": [
2104
+ "feedback",
2105
+ "closed loop",
2106
+ "control system",
2107
+ "transfer function",
2108
+ "tf"
2109
+ ],
2110
+ "summary": "Form SISO feedback interconnections for transfer-function models.",
2111
+ "exampleCount": 2
2112
+ },
2052
2113
  {
2053
2114
  "key": "feof",
2054
2115
  "title": "feof",
@@ -3443,6 +3504,26 @@ export const builtinManifest = [
3443
3504
  "summary": "Apply linear image filters in MATLAB and RunMat.",
3444
3505
  "exampleCount": 5
3445
3506
  },
3507
+ {
3508
+ "key": "imhist",
3509
+ "title": "imhist",
3510
+ "slug": "imhist",
3511
+ "aliases": [],
3512
+ "category": "image",
3513
+ "categoryPath": [
3514
+ "image"
3515
+ ],
3516
+ "keywords": [
3517
+ "imhist",
3518
+ "image histogram",
3519
+ "grayscale image",
3520
+ "indexed image",
3521
+ "colormap",
3522
+ "matlab imhist"
3523
+ ],
3524
+ "summary": "Compute or display grayscale and indexed-image histograms.",
3525
+ "exampleCount": 4
3526
+ },
3446
3527
  {
3447
3528
  "key": "impulse",
3448
3529
  "title": "impulse",
@@ -4034,6 +4115,25 @@ export const builtinManifest = [
4034
4115
  "summary": "Test whether arrays are sorted in MATLAB and RunMat.",
4035
4116
  "exampleCount": 8
4036
4117
  },
4118
+ {
4119
+ "key": "isstable",
4120
+ "title": "isstable",
4121
+ "slug": "isstable",
4122
+ "aliases": [],
4123
+ "category": "control",
4124
+ "categoryPath": [
4125
+ "control"
4126
+ ],
4127
+ "keywords": [
4128
+ "isstable",
4129
+ "stability",
4130
+ "poles",
4131
+ "control system",
4132
+ "tf"
4133
+ ],
4134
+ "summary": "Test stability of SISO transfer-function models.",
4135
+ "exampleCount": 1
4136
+ },
4037
4137
  {
4038
4138
  "key": "isstring",
4039
4139
  "title": "isstring",
@@ -5602,6 +5702,25 @@ export const builtinManifest = [
5602
5702
  "summary": "Compute element-wise addition in MATLAB and RunMat.",
5603
5703
  "exampleCount": 6
5604
5704
  },
5705
+ {
5706
+ "key": "pole",
5707
+ "title": "pole",
5708
+ "slug": "pole",
5709
+ "aliases": [],
5710
+ "category": "control",
5711
+ "categoryPath": [
5712
+ "control"
5713
+ ],
5714
+ "keywords": [
5715
+ "pole",
5716
+ "poles",
5717
+ "stability",
5718
+ "control system",
5719
+ "tf"
5720
+ ],
5721
+ "summary": "Return poles of SISO transfer-function models.",
5722
+ "exampleCount": 1
5723
+ },
5605
5724
  {
5606
5725
  "key": "polyder",
5607
5726
  "title": "polyder",
@@ -6531,13 +6650,32 @@ export const builtinManifest = [
6531
6650
  "keywords": [
6532
6651
  "rref",
6533
6652
  "reduced row echelon form",
6653
+ "row reduction",
6534
6654
  "pivot columns",
6535
- "Gaussian elimination",
6536
- "tolerance",
6537
- "gpu"
6655
+ "rank"
6538
6656
  ],
6539
- "summary": "Compute reduced row echelon form and MATLAB-style pivot column indices.",
6540
- "exampleCount": 5
6657
+ "summary": "Compute reduced row echelon form and pivot columns.",
6658
+ "exampleCount": 3
6659
+ },
6660
+ {
6661
+ "key": "run",
6662
+ "title": "run",
6663
+ "slug": "run",
6664
+ "aliases": [],
6665
+ "category": "io/repl_fs",
6666
+ "categoryPath": [
6667
+ "io",
6668
+ "repl_fs"
6669
+ ],
6670
+ "keywords": [
6671
+ "run",
6672
+ "script",
6673
+ "matlab script",
6674
+ "workspace",
6675
+ "path"
6676
+ ],
6677
+ "summary": "Execute a MATLAB script file in the caller workspace.",
6678
+ "exampleCount": 3
6541
6679
  },
6542
6680
  {
6543
6681
  "key": "save",
@@ -7255,7 +7393,27 @@ export const builtinManifest = [
7255
7393
  "tf"
7256
7394
  ],
7257
7395
  "summary": "Compute or plot step responses of SISO transfer-function models with MATLAB-compatible `step` forms.",
7258
- "exampleCount": 4
7396
+ "exampleCount": 5
7397
+ },
7398
+ {
7399
+ "key": "stepinfo",
7400
+ "title": "stepinfo",
7401
+ "slug": "stepinfo",
7402
+ "aliases": [],
7403
+ "category": "control",
7404
+ "categoryPath": [
7405
+ "control"
7406
+ ],
7407
+ "keywords": [
7408
+ "stepinfo",
7409
+ "step response",
7410
+ "rise time",
7411
+ "settling time",
7412
+ "overshoot",
7413
+ "control system"
7414
+ ],
7415
+ "summary": "Compute step-response metrics from SISO models or sampled responses.",
7416
+ "exampleCount": 2
7259
7417
  },
7260
7418
  {
7261
7419
  "key": "str2double",
@@ -7937,10 +8095,12 @@ export const builtinManifest = [
7937
8095
  "tf",
7938
8096
  "transfer function",
7939
8097
  "control system",
7940
- "coefficient vector"
8098
+ "coefficient vector",
8099
+ "feedback",
8100
+ "step response"
7941
8101
  ],
7942
- "summary": "Create SISO transfer-function model objects from numerator and denominator coefficient vectors.",
7943
- "exampleCount": 4
8102
+ "summary": "Create and combine SISO transfer-function model objects.",
8103
+ "exampleCount": 6
7944
8104
  },
7945
8105
  {
7946
8106
  "key": "tic",
@@ -8621,6 +8781,7 @@ export const builtinDocLoaders = {
8621
8781
  "bar": () => import("./builtins/bar.js").then((mod) => mod.default),
8622
8782
  "blackman": () => import("./builtins/blackman.js").then((mod) => mod.default),
8623
8783
  "box": () => import("./builtins/box.js").then((mod) => mod.default),
8784
+ "butter": () => import("./builtins/butter.js").then((mod) => mod.default),
8624
8785
  "cat": () => import("./builtins/cat.js").then((mod) => mod.default),
8625
8786
  "cd": () => import("./builtins/cd.js").then((mod) => mod.default),
8626
8787
  "ceil": () => import("./builtins/ceil.js").then((mod) => mod.default),
@@ -8670,6 +8831,7 @@ export const builtinDocLoaders = {
8670
8831
  "datetime": () => import("./builtins/datetime.js").then((mod) => mod.default),
8671
8832
  "day": () => import("./builtins/day.js").then((mod) => mod.default),
8672
8833
  "db": () => import("./builtins/db.js").then((mod) => mod.default),
8834
+ "dcgain": () => import("./builtins/dcgain.js").then((mod) => mod.default),
8673
8835
  "deconv": () => import("./builtins/deconv.js").then((mod) => mod.default),
8674
8836
  "deg2rad": () => import("./builtins/deg2rad.js").then((mod) => mod.default),
8675
8837
  "delete": () => import("./builtins/delete.js").then((mod) => mod.default),
@@ -8699,6 +8861,7 @@ export const builtinDocLoaders = {
8699
8861
  "factorial": () => import("./builtins/factorial.js").then((mod) => mod.default),
8700
8862
  "false": () => import("./builtins/false.js").then((mod) => mod.default),
8701
8863
  "fclose": () => import("./builtins/fclose.js").then((mod) => mod.default),
8864
+ "feedback": () => import("./builtins/feedback.js").then((mod) => mod.default),
8702
8865
  "feof": () => import("./builtins/feof.js").then((mod) => mod.default),
8703
8866
  "fft": () => import("./builtins/fft.js").then((mod) => mod.default),
8704
8867
  "fft2": () => import("./builtins/fft2.js").then((mod) => mod.default),
@@ -8768,6 +8931,7 @@ export const builtinDocLoaders = {
8768
8931
  "image": () => import("./builtins/image.js").then((mod) => mod.default),
8769
8932
  "imagesc": () => import("./builtins/imagesc.js").then((mod) => mod.default),
8770
8933
  "imfilter": () => import("./builtins/imfilter.js").then((mod) => mod.default),
8934
+ "imhist": () => import("./builtins/imhist.js").then((mod) => mod.default),
8771
8935
  "impulse": () => import("./builtins/impulse.js").then((mod) => mod.default),
8772
8936
  "imread": () => import("./builtins/imread.js").then((mod) => mod.default),
8773
8937
  "imshow": () => import("./builtins/imshow.js").then((mod) => mod.default),
@@ -8797,6 +8961,7 @@ export const builtinDocLoaders = {
8797
8961
  "isreal": () => import("./builtins/isreal.js").then((mod) => mod.default),
8798
8962
  "isscalar": () => import("./builtins/isscalar.js").then((mod) => mod.default),
8799
8963
  "issorted": () => import("./builtins/issorted.js").then((mod) => mod.default),
8964
+ "isstable": () => import("./builtins/isstable.js").then((mod) => mod.default),
8800
8965
  "isstring": () => import("./builtins/isstring.js").then((mod) => mod.default),
8801
8966
  "issymmetric": () => import("./builtins/issymmetric.js").then((mod) => mod.default),
8802
8967
  "isvector": () => import("./builtins/isvector.js").then((mod) => mod.default),
@@ -8874,6 +9039,7 @@ export const builtinDocLoaders = {
8874
9039
  "plot": () => import("./builtins/plot.js").then((mod) => mod.default),
8875
9040
  "plot3": () => import("./builtins/plot3.js").then((mod) => mod.default),
8876
9041
  "plus": () => import("./builtins/plus.js").then((mod) => mod.default),
9042
+ "pole": () => import("./builtins/pole.js").then((mod) => mod.default),
8877
9043
  "polyder": () => import("./builtins/polyder.js").then((mod) => mod.default),
8878
9044
  "polyfit": () => import("./builtins/polyfit.js").then((mod) => mod.default),
8879
9045
  "polyint": () => import("./builtins/polyint.js").then((mod) => mod.default),
@@ -8920,6 +9086,7 @@ export const builtinDocLoaders = {
8920
9086
  "rot90": () => import("./builtins/rot90.js").then((mod) => mod.default),
8921
9087
  "round": () => import("./builtins/round.js").then((mod) => mod.default),
8922
9088
  "rref": () => import("./builtins/rref.js").then((mod) => mod.default),
9089
+ "run": () => import("./builtins/run.js").then((mod) => mod.default),
8923
9090
  "save": () => import("./builtins/save.js").then((mod) => mod.default),
8924
9091
  "savepath": () => import("./builtins/savepath.js").then((mod) => mod.default),
8925
9092
  "sawtooth": () => import("./builtins/sawtooth.js").then((mod) => mod.default),
@@ -8956,6 +9123,7 @@ export const builtinDocLoaders = {
8956
9123
  "std": () => import("./builtins/std.js").then((mod) => mod.default),
8957
9124
  "stem": () => import("./builtins/stem.js").then((mod) => mod.default),
8958
9125
  "step": () => import("./builtins/step.js").then((mod) => mod.default),
9126
+ "stepinfo": () => import("./builtins/stepinfo.js").then((mod) => mod.default),
8959
9127
  "str2double": () => import("./builtins/str2double.js").then((mod) => mod.default),
8960
9128
  "strcat": () => import("./builtins/strcat.js").then((mod) => mod.default),
8961
9129
  "strcmp": () => import("./builtins/strcmp.js").then((mod) => mod.default),