runmat 0.4.3 → 0.4.4-dev.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/artifacts/stdlib.snapshot +0 -0
- package/dist/builtins.d.ts +12 -0
- package/dist/builtins.d.ts.map +1 -1
- package/dist/builtins.js.map +1 -1
- package/dist/generated/builtin-examples-catalog.d.ts.map +1 -1
- package/dist/generated/builtin-examples-catalog.js +1 -1
- package/dist/generated/builtin-examples-catalog.js.map +1 -1
- package/dist/generated/builtins/area.d.ts.map +1 -1
- package/dist/generated/builtins/area.js +36 -0
- package/dist/generated/builtins/area.js.map +1 -1
- package/dist/generated/builtins/axis.d.ts.map +1 -1
- package/dist/generated/builtins/axis.js +30 -0
- package/dist/generated/builtins/axis.js.map +1 -1
- package/dist/generated/builtins/bar.d.ts.map +1 -1
- package/dist/generated/builtins/bar.js +36 -0
- package/dist/generated/builtins/bar.js.map +1 -1
- package/dist/generated/builtins/box.d.ts.map +1 -1
- package/dist/generated/builtins/box.js +26 -0
- package/dist/generated/builtins/box.js.map +1 -1
- package/dist/generated/builtins/cellfun.d.ts.map +1 -1
- package/dist/generated/builtins/cellfun.js +20 -0
- package/dist/generated/builtins/cellfun.js.map +1 -1
- package/dist/generated/builtins/chol.d.ts.map +1 -1
- package/dist/generated/builtins/chol.js +32 -0
- package/dist/generated/builtins/chol.js.map +1 -1
- package/dist/generated/builtins/colorbar.d.ts.map +1 -1
- package/dist/generated/builtins/colorbar.js +30 -0
- package/dist/generated/builtins/colorbar.js.map +1 -1
- package/dist/generated/builtins/colormap.d.ts.map +1 -1
- package/dist/generated/builtins/colormap.js +30 -0
- package/dist/generated/builtins/colormap.js.map +1 -1
- package/dist/generated/builtins/containers.Map.d.ts.map +1 -1
- package/dist/generated/builtins/containers.Map.js +29 -0
- package/dist/generated/builtins/containers.Map.js.map +1 -1
- package/dist/generated/builtins/contour.d.ts.map +1 -1
- package/dist/generated/builtins/contour.js +36 -0
- package/dist/generated/builtins/contour.js.map +1 -1
- package/dist/generated/builtins/contourf.d.ts.map +1 -1
- package/dist/generated/builtins/contourf.js +36 -0
- package/dist/generated/builtins/contourf.js.map +1 -1
- package/dist/generated/builtins/conv2.d.ts.map +1 -1
- package/dist/generated/builtins/conv2.js +36 -0
- package/dist/generated/builtins/conv2.js.map +1 -1
- package/dist/generated/builtins/cross.d.ts +4 -0
- package/dist/generated/builtins/cross.d.ts.map +1 -0
- package/dist/generated/builtins/cross.js +131 -0
- package/dist/generated/builtins/cross.js.map +1 -0
- package/dist/generated/builtins/cumtrapz.d.ts +4 -0
- package/dist/generated/builtins/cumtrapz.d.ts.map +1 -0
- package/dist/generated/builtins/cumtrapz.js +125 -0
- package/dist/generated/builtins/cumtrapz.js.map +1 -0
- package/dist/generated/builtins/datetime.d.ts.map +1 -1
- package/dist/generated/builtins/datetime.js +1 -25
- package/dist/generated/builtins/datetime.js.map +1 -1
- package/dist/generated/builtins/eig.d.ts.map +1 -1
- package/dist/generated/builtins/eig.js +42 -0
- package/dist/generated/builtins/eig.js.map +1 -1
- package/dist/generated/builtins/errorbar.d.ts.map +1 -1
- package/dist/generated/builtins/errorbar.js +36 -0
- package/dist/generated/builtins/errorbar.js.map +1 -1
- package/dist/generated/builtins/exist.d.ts.map +1 -1
- package/dist/generated/builtins/exist.js +25 -1
- package/dist/generated/builtins/exist.js.map +1 -1
- package/dist/generated/builtins/fgets.d.ts.map +1 -1
- package/dist/generated/builtins/fgets.js +24 -0
- package/dist/generated/builtins/fgets.js.map +1 -1
- package/dist/generated/builtins/flipud.d.ts.map +1 -1
- package/dist/generated/builtins/flipud.js +23 -0
- package/dist/generated/builtins/flipud.js.map +1 -1
- package/dist/generated/builtins/fopen.d.ts.map +1 -1
- package/dist/generated/builtins/fopen.js +26 -0
- package/dist/generated/builtins/fopen.js.map +1 -1
- package/dist/generated/builtins/get.d.ts.map +1 -1
- package/dist/generated/builtins/get.js +30 -0
- package/dist/generated/builtins/get.js.map +1 -1
- package/dist/generated/builtins/getfield.js +1 -1
- package/dist/generated/builtins/getfield.js.map +1 -1
- package/dist/generated/builtins/gradient.d.ts +4 -0
- package/dist/generated/builtins/gradient.d.ts.map +1 -0
- package/dist/generated/builtins/gradient.js +129 -0
- package/dist/generated/builtins/gradient.js.map +1 -0
- package/dist/generated/builtins/grid.d.ts.map +1 -1
- package/dist/generated/builtins/grid.js +30 -0
- package/dist/generated/builtins/grid.js.map +1 -1
- package/dist/generated/builtins/hist.d.ts.map +1 -1
- package/dist/generated/builtins/hist.js +26 -0
- package/dist/generated/builtins/hist.js.map +1 -1
- package/dist/generated/builtins/histcounts2.d.ts.map +1 -1
- package/dist/generated/builtins/histcounts2.js +25 -0
- package/dist/generated/builtins/histcounts2.js.map +1 -1
- package/dist/generated/builtins/histogram.d.ts.map +1 -1
- package/dist/generated/builtins/histogram.js +36 -0
- package/dist/generated/builtins/histogram.js.map +1 -1
- package/dist/generated/builtins/image.d.ts.map +1 -1
- package/dist/generated/builtins/image.js +30 -0
- package/dist/generated/builtins/image.js.map +1 -1
- package/dist/generated/builtins/imagesc.d.ts.map +1 -1
- package/dist/generated/builtins/imagesc.js +36 -0
- package/dist/generated/builtins/imagesc.js.map +1 -1
- package/dist/generated/builtins/isfield.js +1 -1
- package/dist/generated/builtins/isfield.js.map +1 -1
- package/dist/generated/builtins/isnan.d.ts.map +1 -1
- package/dist/generated/builtins/isnan.js +23 -0
- package/dist/generated/builtins/isnan.js.map +1 -1
- package/dist/generated/builtins/join.js +2 -2
- package/dist/generated/builtins/join.js.map +1 -1
- package/dist/generated/builtins/legend.d.ts.map +1 -1
- package/dist/generated/builtins/legend.js +30 -0
- package/dist/generated/builtins/legend.js.map +1 -1
- package/dist/generated/builtins/log1p.d.ts.map +1 -1
- package/dist/generated/builtins/log1p.js +23 -0
- package/dist/generated/builtins/log1p.js.map +1 -1
- package/dist/generated/builtins/loglog.d.ts.map +1 -1
- package/dist/generated/builtins/loglog.js +30 -0
- package/dist/generated/builtins/loglog.js.map +1 -1
- package/dist/generated/builtins/mesh.d.ts.map +1 -1
- package/dist/generated/builtins/mesh.js +36 -0
- package/dist/generated/builtins/mesh.js.map +1 -1
- package/dist/generated/builtins/meshc.d.ts.map +1 -1
- package/dist/generated/builtins/meshc.js +30 -0
- package/dist/generated/builtins/meshc.js.map +1 -1
- package/dist/generated/builtins/num2str.d.ts.map +1 -1
- package/dist/generated/builtins/num2str.js +24 -0
- package/dist/generated/builtins/num2str.js.map +1 -1
- package/dist/generated/builtins/numel.d.ts.map +1 -1
- package/dist/generated/builtins/numel.js +19 -0
- package/dist/generated/builtins/numel.js.map +1 -1
- package/dist/generated/builtins/pie.d.ts.map +1 -1
- package/dist/generated/builtins/pie.js +36 -0
- package/dist/generated/builtins/pie.js.map +1 -1
- package/dist/generated/builtins/plot.d.ts.map +1 -1
- package/dist/generated/builtins/plot.js +36 -0
- package/dist/generated/builtins/plot.js.map +1 -1
- package/dist/generated/builtins/plot3.d.ts.map +1 -1
- package/dist/generated/builtins/plot3.js +30 -0
- package/dist/generated/builtins/plot3.js.map +1 -1
- package/dist/generated/builtins/polyder.js +1 -1
- package/dist/generated/builtins/polyder.js.map +1 -1
- package/dist/generated/builtins/polyval.d.ts.map +1 -1
- package/dist/generated/builtins/polyval.js +37 -0
- package/dist/generated/builtins/polyval.js.map +1 -1
- package/dist/generated/builtins/quiver.d.ts.map +1 -1
- package/dist/generated/builtins/quiver.js +36 -0
- package/dist/generated/builtins/quiver.js.map +1 -1
- package/dist/generated/builtins/readmatrix.d.ts.map +1 -1
- package/dist/generated/builtins/readmatrix.js +24 -0
- package/dist/generated/builtins/readmatrix.js.map +1 -1
- package/dist/generated/builtins/replace.js +2 -2
- package/dist/generated/builtins/replace.js.map +1 -1
- package/dist/generated/builtins/round.d.ts.map +1 -1
- package/dist/generated/builtins/round.js +20 -0
- package/dist/generated/builtins/round.js.map +1 -1
- package/dist/generated/builtins/scatter.d.ts.map +1 -1
- package/dist/generated/builtins/scatter.js +30 -0
- package/dist/generated/builtins/scatter.js.map +1 -1
- package/dist/generated/builtins/scatter3.d.ts.map +1 -1
- package/dist/generated/builtins/scatter3.js +36 -0
- package/dist/generated/builtins/scatter3.js.map +1 -1
- package/dist/generated/builtins/semilogx.d.ts.map +1 -1
- package/dist/generated/builtins/semilogx.js +30 -0
- package/dist/generated/builtins/semilogx.js.map +1 -1
- package/dist/generated/builtins/semilogy.d.ts.map +1 -1
- package/dist/generated/builtins/semilogy.js +30 -0
- package/dist/generated/builtins/semilogy.js.map +1 -1
- package/dist/generated/builtins/set.d.ts.map +1 -1
- package/dist/generated/builtins/set.js +30 -0
- package/dist/generated/builtins/set.js.map +1 -1
- package/dist/generated/builtins/setfield.js +1 -1
- package/dist/generated/builtins/setfield.js.map +1 -1
- package/dist/generated/builtins/sgtitle.d.ts +4 -0
- package/dist/generated/builtins/sgtitle.d.ts.map +1 -0
- package/dist/generated/builtins/sgtitle.js +99 -0
- package/dist/generated/builtins/sgtitle.js.map +1 -0
- package/dist/generated/builtins/shading.d.ts.map +1 -1
- package/dist/generated/builtins/shading.js +30 -0
- package/dist/generated/builtins/shading.js.map +1 -1
- package/dist/generated/builtins/sortrows.d.ts.map +1 -1
- package/dist/generated/builtins/sortrows.js +20 -0
- package/dist/generated/builtins/sortrows.js.map +1 -1
- package/dist/generated/builtins/split.js +2 -2
- package/dist/generated/builtins/split.js.map +1 -1
- package/dist/generated/builtins/stairs.d.ts.map +1 -1
- package/dist/generated/builtins/stairs.js +36 -0
- package/dist/generated/builtins/stairs.js.map +1 -1
- package/dist/generated/builtins/std.d.ts.map +1 -1
- package/dist/generated/builtins/std.js +37 -0
- package/dist/generated/builtins/std.js.map +1 -1
- package/dist/generated/builtins/stem.d.ts.map +1 -1
- package/dist/generated/builtins/stem.js +36 -0
- package/dist/generated/builtins/stem.js.map +1 -1
- package/dist/generated/builtins/strcat.js +2 -2
- package/dist/generated/builtins/strcat.js.map +1 -1
- package/dist/generated/builtins/strcmpi.d.ts.map +1 -1
- package/dist/generated/builtins/strcmpi.js +24 -0
- package/dist/generated/builtins/strcmpi.js.map +1 -1
- package/dist/generated/builtins/subplot.d.ts.map +1 -1
- package/dist/generated/builtins/subplot.js +30 -0
- package/dist/generated/builtins/subplot.js.map +1 -1
- package/dist/generated/builtins/surf.d.ts.map +1 -1
- package/dist/generated/builtins/surf.js +36 -0
- package/dist/generated/builtins/surf.js.map +1 -1
- package/dist/generated/builtins/surfc.d.ts.map +1 -1
- package/dist/generated/builtins/surfc.js +30 -0
- package/dist/generated/builtins/surfc.js.map +1 -1
- package/dist/generated/builtins/trapz.d.ts +4 -0
- package/dist/generated/builtins/trapz.d.ts.map +1 -0
- package/dist/generated/builtins/trapz.js +129 -0
- package/dist/generated/builtins/trapz.js.map +1 -0
- package/dist/generated/builtins/view.d.ts.map +1 -1
- package/dist/generated/builtins/view.js +30 -0
- package/dist/generated/builtins/view.js.map +1 -1
- package/dist/generated/builtins/zlabel.d.ts.map +1 -1
- package/dist/generated/builtins/zlabel.js +30 -0
- package/dist/generated/builtins/zlabel.js.map +1 -1
- package/dist/generated/builtins-manifest.d.ts.map +1 -1
- package/dist/generated/builtins-manifest.js +115 -15
- package/dist/generated/builtins-manifest.js.map +1 -1
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lsp/runmat_lsp.d.ts +2 -2
- package/dist/lsp/runmat_lsp.js +4 -4
- package/dist/lsp/runmat_lsp_bg.wasm +0 -0
- package/dist/lsp/runmat_lsp_bg.wasm.d.ts +2 -2
- package/dist/pkg-web/runmat_wasm_web.d.ts +21 -24
- package/dist/pkg-web/runmat_wasm_web.js +94 -96
- package/dist/pkg-web/runmat_wasm_web_bg.wasm +0 -0
- package/dist/pkg-web/runmat_wasm_web_bg.wasm.d.ts +13 -13
- package/dist/runtime/stdlib.snapshot +0 -0
- package/package.json +1 -1
|
@@ -12,6 +12,7 @@ const builtinDoc = {
|
|
|
12
12
|
"topographic lines"
|
|
13
13
|
],
|
|
14
14
|
"summary": "Create contour line plots for level sets, iso-lines, and MATLAB `contour` workflows.",
|
|
15
|
+
"hero_image": "https://web.runmatstatic.com/builtin-image/runmat-matlab-plot-contour-thermal-field-level-sets.webp",
|
|
15
16
|
"gpu_support": {
|
|
16
17
|
"elementwise": false,
|
|
17
18
|
"reduction": false,
|
|
@@ -58,6 +59,25 @@ const builtinDoc = {
|
|
|
58
59
|
"description": "Inspect the returned contour handle",
|
|
59
60
|
"input": "[X, Y] = meshgrid(1:20, 1:20);\nZ = X + Y;\nh = contour(X, Y, Z);\nget(h, 'Type')",
|
|
60
61
|
"output": "ans =\n 'contour'"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"description": "Temperature-style level sets",
|
|
65
|
+
"input": "[X, Y] = meshgrid(linspace(-3, 3, 120), linspace(-3, 3, 120));\nZ = 2*exp(-((X-1).^2 + Y.^2)) + 1.5*exp(-((X+1.5).^2 + (Y-1).^2)) - exp(-(X.^2 + (Y+1.5).^2));\n\ncontour(X, Y, Z, 20);\ncolormap('turbo');\ncolorbar;\ntitle('Thermal Field — Level Sets');\nxlabel('x (m)');\nylabel('y (m)');\naxis equal;",
|
|
66
|
+
"image_webp": "https://web.runmatstatic.com/builtin-image/runmat-matlab-plot-contour-thermal-field-level-sets.webp"
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
"faqs": [
|
|
70
|
+
{
|
|
71
|
+
"question": "How do I set specific contour levels?",
|
|
72
|
+
"answer": "Pass a vector of values as the fourth argument. Each value becomes one contour line.\n\n```matlab\ncontour(X, Y, Z, [0.1 0.3 0.5 0.7 0.9]);\n```\n\nIf you pass a scalar instead, it's interpreted as the number of levels (e.g., `contour(X, Y, Z, 20)` draws 20 automatically spaced levels)."
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"question": "Can I add labels to the contour lines?",
|
|
76
|
+
"answer": "Use `clabel` after `contour` to annotate the lines with their level values. Pass the contour handle to `clabel` so it knows which plot to label.\n\n```matlab\n[C, h] = contour(X, Y, Z);\nclabel(C, h);\n```"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"question": "What's the difference between contour and contourf?",
|
|
80
|
+
"answer": "`contour` draws line-only iso-curves — the regions between lines are transparent. `contourf` fills those regions with colors from the active colormap. Use `contour` when you want to overlay on other plots or keep the background visible, and `contourf` when the filled color bands are the primary visualization."
|
|
61
81
|
}
|
|
62
82
|
],
|
|
63
83
|
"links": [
|
|
@@ -80,6 +100,22 @@ const builtinDoc = {
|
|
|
80
100
|
{
|
|
81
101
|
"label": "colormap",
|
|
82
102
|
"url": "./colormap"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"label": "Choosing the right plot type",
|
|
106
|
+
"url": "/docs/plotting/choosing-the-right-plot-type"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"label": "Styling plots and axes",
|
|
110
|
+
"url": "/docs/plotting/styling-plots-and-axes"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"label": "Plot replay and export",
|
|
114
|
+
"url": "/docs/plotting/plot-replay-and-export"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"label": "Complete plotting guide",
|
|
118
|
+
"url": "/blog/matlab-plotting-guide"
|
|
83
119
|
}
|
|
84
120
|
],
|
|
85
121
|
"source": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contour.js","sourceRoot":"","sources":["../../../src/generated/builtins/contour.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,uBAAuB;AAIvB,MAAM,UAAU,GAAe;IAC7B,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,UAAU;IACtB,UAAU,EAAE;QACV,SAAS;QACT,eAAe;QACf,WAAW;QACX,YAAY;QACZ,gBAAgB;QAChB,mBAAmB;KACpB;IACD,SAAS,EAAE,sFAAsF;IACjG,aAAa,EAAE;QACb,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE;YACZ,QAAQ;YACR,QAAQ;SACT;QACD,cAAc,EAAE,MAAM;QACtB,OAAO,EAAE,8GAA8G;KACxH;IACD,QAAQ,EAAE;QACR,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,QAAQ;KACtB;IACD,kBAAkB,EAAE,IAAI;IACxB,QAAQ,EAAE;QACR,MAAM,EAAE,oCAAoC;KAC7C;IACD,aAAa,EAAE,sTAAsT;IACrU,WAAW,EAAE;QACX,0GAA0G;QAC1G,oFAAoF;QACpF,+FAA+F;QAC/F,oHAAoH;QACpH,wHAAwH;KACzH;IACD,SAAS,EAAE;QACT,+FAA+F;QAC/F,uDAAuD;QACvD,mIAAmI;KACpI;IACD,UAAU,EAAE;QACV;YACE,aAAa,EAAE,gDAAgD;YAC/D,OAAO,EAAE,0FAA0F;SACpG;QACD;YACE,aAAa,EAAE,6BAA6B;YAC5C,OAAO,EAAE,wGAAwG;SAClH;QACD;YACE,aAAa,EAAE,qCAAqC;YACpD,OAAO,EAAE,mFAAmF;YAC5F,QAAQ,EAAE,sBAAsB;SACjC;KACF;IACD,OAAO,EAAE;QACP;YACE,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,YAAY;SACpB;QACD;YACE,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,SAAS;SACjB;QACD;YACE,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,SAAS;SACjB;QACD;YACE,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,YAAY;SACpB;QACD;YACE,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,YAAY;SACpB;KACF;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,8DAA8D;QACvE,KAAK,EAAE,2GAA2G;KACnH;IACD,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,cAAc,EAAE;QACd,UAAU;KACX;CACF,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"contour.js","sourceRoot":"","sources":["../../../src/generated/builtins/contour.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,uBAAuB;AAIvB,MAAM,UAAU,GAAe;IAC7B,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,UAAU;IACtB,UAAU,EAAE;QACV,SAAS;QACT,eAAe;QACf,WAAW;QACX,YAAY;QACZ,gBAAgB;QAChB,mBAAmB;KACpB;IACD,SAAS,EAAE,sFAAsF;IACjG,YAAY,EAAE,qGAAqG;IACnH,aAAa,EAAE;QACb,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE;YACZ,QAAQ;YACR,QAAQ;SACT;QACD,cAAc,EAAE,MAAM;QACtB,OAAO,EAAE,8GAA8G;KACxH;IACD,QAAQ,EAAE;QACR,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,QAAQ;KACtB;IACD,kBAAkB,EAAE,IAAI;IACxB,QAAQ,EAAE;QACR,MAAM,EAAE,oCAAoC;KAC7C;IACD,aAAa,EAAE,sTAAsT;IACrU,WAAW,EAAE;QACX,0GAA0G;QAC1G,oFAAoF;QACpF,+FAA+F;QAC/F,oHAAoH;QACpH,wHAAwH;KACzH;IACD,SAAS,EAAE;QACT,+FAA+F;QAC/F,uDAAuD;QACvD,mIAAmI;KACpI;IACD,UAAU,EAAE;QACV;YACE,aAAa,EAAE,gDAAgD;YAC/D,OAAO,EAAE,0FAA0F;SACpG;QACD;YACE,aAAa,EAAE,6BAA6B;YAC5C,OAAO,EAAE,wGAAwG;SAClH;QACD;YACE,aAAa,EAAE,qCAAqC;YACpD,OAAO,EAAE,mFAAmF;YAC5F,QAAQ,EAAE,sBAAsB;SACjC;QACD;YACE,aAAa,EAAE,8BAA8B;YAC7C,OAAO,EAAE,+SAA+S;YACxT,YAAY,EAAE,qGAAqG;SACpH;KACF;IACD,MAAM,EAAE;QACN;YACE,UAAU,EAAE,uCAAuC;YACnD,QAAQ,EAAE,iSAAiS;SAC5S;QACD;YACE,UAAU,EAAE,wCAAwC;YACpD,QAAQ,EAAE,+MAA+M;SAC1N;QACD;YACE,UAAU,EAAE,qDAAqD;YACjE,QAAQ,EAAE,wTAAwT;SACnU;KACF;IACD,OAAO,EAAE;QACP;YACE,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,YAAY;SACpB;QACD;YACE,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,SAAS;SACjB;QACD;YACE,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,SAAS;SACjB;QACD;YACE,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,YAAY;SACpB;QACD;YACE,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,YAAY;SACpB;QACD;YACE,OAAO,EAAE,8BAA8B;YACvC,KAAK,EAAE,6CAA6C;SACrD;QACD;YACE,OAAO,EAAE,wBAAwB;YACjC,KAAK,EAAE,uCAAuC;SAC/C;QACD;YACE,OAAO,EAAE,wBAAwB;YACjC,KAAK,EAAE,uCAAuC;SAC/C;QACD;YACE,OAAO,EAAE,yBAAyB;YAClC,KAAK,EAAE,6BAA6B;SACrC;KACF;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,8DAA8D;QACvE,KAAK,EAAE,2GAA2G;KACnH;IACD,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,cAAc,EAAE;QACd,UAAU;KACX;CACF,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contourf.d.ts","sourceRoot":"","sources":["../../../src/generated/builtins/contourf.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,QAAA,MAAM,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"contourf.d.ts","sourceRoot":"","sources":["../../../src/generated/builtins/contourf.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,QAAA,MAAM,UAAU,EAAE,UAyHjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -11,6 +11,7 @@ const builtinDoc = {
|
|
|
11
11
|
"matlab contourf"
|
|
12
12
|
],
|
|
13
13
|
"summary": "Create filled contour plots for level regions, scalar fields, and MATLAB `contourf` workflows.",
|
|
14
|
+
"hero_image": "https://web.runmatstatic.com/builtin-image/runmat-matlab-plot-contourf-interference-pattern.webp",
|
|
14
15
|
"gpu_support": {
|
|
15
16
|
"elementwise": false,
|
|
16
17
|
"reduction": false,
|
|
@@ -52,6 +53,25 @@ const builtinDoc = {
|
|
|
52
53
|
"description": "Inspect the returned contour-fill handle",
|
|
53
54
|
"input": "[X, Y] = meshgrid(1:20, 1:20);\nZ = X - Y;\nh = contourf(X, Y, Z);\nget(h, 'Type')",
|
|
54
55
|
"output": "ans =\n 'contour'"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"description": "Filled scalar field with explicit levels",
|
|
59
|
+
"input": "[X, Y] = meshgrid(linspace(-3, 3, 150), linspace(-3, 3, 150));\nZ = sin(X) .* cos(Y) + 0.5*sin(2*X + Y);\n\ncontourf(X, Y, Z, 25);\ncolormap('turbo');\ncolorbar;\ntitle('Interference Pattern — Filled Contours');\nxlabel('x');\nylabel('y');\naxis equal;",
|
|
60
|
+
"image_webp": "https://web.runmatstatic.com/builtin-image/runmat-matlab-plot-contourf-interference-pattern.webp"
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
"faqs": [
|
|
64
|
+
{
|
|
65
|
+
"question": "What's the difference between contourf and contour?",
|
|
66
|
+
"answer": "`contourf` fills the regions between contour levels with solid colors from the colormap. `contour` draws only the boundary lines. If you're building a heatmap-style visualization where color bands carry meaning, `contourf` is the right choice. If you just need iso-lines overlaid on something else, use `contour`."
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"question": "How does the colormap interact with contourf?",
|
|
70
|
+
"answer": "Each filled region maps to a range in the active colormap based on its contour level. Calling `colormap('hot')` after `contourf` recolors all regions immediately. Pair it with `colorbar` to show the value-to-color mapping.\n\n```matlab\ncontourf(X, Y, Z, 15);\ncolormap('hot');\ncolorbar;\n```"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"question": "How do I control the number of filled levels?",
|
|
74
|
+
"answer": "Pass an integer as the fourth argument to set the level count: `contourf(X, Y, Z, 20)` creates 20 levels. For exact control, pass a vector of level values instead: `contourf(X, Y, Z, [-1 -0.5 0 0.5 1])`. More levels give smoother color transitions but add rendering cost on large grids."
|
|
55
75
|
}
|
|
56
76
|
],
|
|
57
77
|
"links": [
|
|
@@ -74,6 +94,22 @@ const builtinDoc = {
|
|
|
74
94
|
{
|
|
75
95
|
"label": "meshc",
|
|
76
96
|
"url": "./meshc"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"label": "Choosing the right plot type",
|
|
100
|
+
"url": "/docs/plotting/choosing-the-right-plot-type"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"label": "Styling plots and axes",
|
|
104
|
+
"url": "/docs/plotting/styling-plots-and-axes"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"label": "Plot replay and export",
|
|
108
|
+
"url": "/docs/plotting/plot-replay-and-export"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"label": "Complete plotting guide",
|
|
112
|
+
"url": "/blog/matlab-plotting-guide"
|
|
77
113
|
}
|
|
78
114
|
],
|
|
79
115
|
"source": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contourf.js","sourceRoot":"","sources":["../../../src/generated/builtins/contourf.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,uBAAuB;AAIvB,MAAM,UAAU,GAAe;IAC7B,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,UAAU;IACtB,UAAU,EAAE;QACV,UAAU;QACV,qBAAqB;QACrB,eAAe;QACf,sBAAsB;QACtB,iBAAiB;KAClB;IACD,SAAS,EAAE,gGAAgG;IAC3G,aAAa,EAAE;QACb,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE;YACZ,QAAQ;YACR,QAAQ;SACT;QACD,cAAc,EAAE,MAAM;QACtB,OAAO,EAAE,uFAAuF;KACjG;IACD,QAAQ,EAAE;QACR,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,QAAQ;KACtB;IACD,kBAAkB,EAAE,IAAI;IACxB,QAAQ,EAAE;QACR,MAAM,EAAE,qCAAqC;KAC9C;IACD,aAAa,EAAE,wQAAwQ;IACvR,WAAW,EAAE;QACX,2FAA2F;QAC3F,4EAA4E;QAC5E,qGAAqG;QACrG,gIAAgI;QAChI,0FAA0F;KAC3F;IACD,UAAU,EAAE;QACV;YACE,aAAa,EAAE,8BAA8B;YAC7C,OAAO,EAAE,sGAAsG;SAChH;QACD;YACE,aAAa,EAAE,qCAAqC;YACpD,OAAO,EAAE,kIAAkI;SAC5I;QACD;YACE,aAAa,EAAE,0CAA0C;YACzD,OAAO,EAAE,oFAAoF;YAC7F,QAAQ,EAAE,sBAAsB;SACjC;KACF;IACD,OAAO,EAAE;QACP;YACE,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,WAAW;SACnB;QACD;YACE,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,YAAY;SACpB;QACD;YACE,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,YAAY;SACpB;QACD;YACE,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,SAAS;SACjB;QACD;YACE,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,SAAS;SACjB;KACF;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,+DAA+D;QACxE,KAAK,EAAE,4GAA4G;KACpH;IACD,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,cAAc,EAAE;QACd,UAAU;KACX;CACF,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"contourf.js","sourceRoot":"","sources":["../../../src/generated/builtins/contourf.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,uBAAuB;AAIvB,MAAM,UAAU,GAAe;IAC7B,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,UAAU;IACtB,UAAU,EAAE;QACV,UAAU;QACV,qBAAqB;QACrB,eAAe;QACf,sBAAsB;QACtB,iBAAiB;KAClB;IACD,SAAS,EAAE,gGAAgG;IAC3G,YAAY,EAAE,kGAAkG;IAChH,aAAa,EAAE;QACb,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE;YACZ,QAAQ;YACR,QAAQ;SACT;QACD,cAAc,EAAE,MAAM;QACtB,OAAO,EAAE,uFAAuF;KACjG;IACD,QAAQ,EAAE;QACR,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,QAAQ;KACtB;IACD,kBAAkB,EAAE,IAAI;IACxB,QAAQ,EAAE;QACR,MAAM,EAAE,qCAAqC;KAC9C;IACD,aAAa,EAAE,wQAAwQ;IACvR,WAAW,EAAE;QACX,2FAA2F;QAC3F,4EAA4E;QAC5E,qGAAqG;QACrG,gIAAgI;QAChI,0FAA0F;KAC3F;IACD,UAAU,EAAE;QACV;YACE,aAAa,EAAE,8BAA8B;YAC7C,OAAO,EAAE,sGAAsG;SAChH;QACD;YACE,aAAa,EAAE,qCAAqC;YACpD,OAAO,EAAE,kIAAkI;SAC5I;QACD;YACE,aAAa,EAAE,0CAA0C;YACzD,OAAO,EAAE,oFAAoF;YAC7F,QAAQ,EAAE,sBAAsB;SACjC;QACD;YACE,aAAa,EAAE,0CAA0C;YACzD,OAAO,EAAE,8PAA8P;YACvQ,YAAY,EAAE,kGAAkG;SACjH;KACF;IACD,MAAM,EAAE;QACN;YACE,UAAU,EAAE,qDAAqD;YACjE,QAAQ,EAAE,2TAA2T;SACtU;QACD;YACE,UAAU,EAAE,+CAA+C;YAC3D,QAAQ,EAAE,uSAAuS;SAClT;QACD;YACE,UAAU,EAAE,+CAA+C;YAC3D,QAAQ,EAAE,gSAAgS;SAC3S;KACF;IACD,OAAO,EAAE;QACP;YACE,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,WAAW;SACnB;QACD;YACE,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,YAAY;SACpB;QACD;YACE,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,YAAY;SACpB;QACD;YACE,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,SAAS;SACjB;QACD;YACE,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,SAAS;SACjB;QACD;YACE,OAAO,EAAE,8BAA8B;YACvC,KAAK,EAAE,6CAA6C;SACrD;QACD;YACE,OAAO,EAAE,wBAAwB;YACjC,KAAK,EAAE,uCAAuC;SAC/C;QACD;YACE,OAAO,EAAE,wBAAwB;YACjC,KAAK,EAAE,uCAAuC;SAC/C;QACD;YACE,OAAO,EAAE,yBAAyB;YAClC,KAAK,EAAE,6BAA6B;SACrC;KACF;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,+DAA+D;QACxE,KAAK,EAAE,4GAA4G;KACpH;IACD,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,cAAc,EAAE;QACd,UAAU;KACX;CACF,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conv2.d.ts","sourceRoot":"","sources":["../../../src/generated/builtins/conv2.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,QAAA,MAAM,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"conv2.d.ts","sourceRoot":"","sources":["../../../src/generated/builtins/conv2.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,QAAA,MAAM,UAAU,EAAE,UAuLjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -102,6 +102,18 @@ const builtinDoc = {
|
|
|
102
102
|
{
|
|
103
103
|
"question": "Will the result stay on the GPU?",
|
|
104
104
|
"answer": "If the active provider exposes the `conv2d` hook the result stays device-resident. Otherwise RunMat falls back to the CPU path and returns a host tensor; this fallback is documented so providers can add native kernels without breaking compatibility."
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"question": "What does `conv2` actually compute?",
|
|
108
|
+
"answer": "— Two-dimensional convolution. For every output pixel, `conv2` flips the kernel `B` across both axes and sums the element-wise product of `B` with the corresponding neighbourhood of `A`. If you want correlation (no flip), use `filter2` instead."
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"question": "When is the separable form `conv2(u, v, A)` faster than `conv2(A, B)`?",
|
|
112
|
+
"answer": "— Whenever the kernel is rank-1, i.e. `B = u * v'` for a column vector `u` and a row vector `v`. The separable form runs a 1-D column pass followed by a 1-D row pass, costing roughly `O(n*(m+k))` operations instead of `O(n*m*k)` for the full 2-D kernel — a dramatic win for Gaussians, box filters, and Sobel components."
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"question": "Should I use `conv2`, `filter2`, or `imfilter`?",
|
|
116
|
+
"answer": "— Use `conv2` for true convolution (the kernel is flipped); use `filter2` for correlation with the same kernel (no flip); use `imfilter` when you need the Image Processing Toolbox's extended boundary handling (`'replicate'`, `'symmetric'`, `'circular'`). All three produce the same result when the kernel is symmetric."
|
|
105
117
|
}
|
|
106
118
|
],
|
|
107
119
|
"links": [
|
|
@@ -141,6 +153,30 @@ const builtinDoc = {
|
|
|
141
153
|
"gpu_behavior": [
|
|
142
154
|
"RunMat Accelerate keeps tensors on the GPU when the active provider implements a `conv2d` hook (the in-process provider uses the host implementation and returns a GPU handle; the WGPU backend will adopt a native kernel). When the hook is unavailable, RunMat gathers GPU inputs to the host, performs the convolution on the CPU, and returns a host tensor. Documentation and the GPU metadata make this fallback explicit so providers can add native implementations without changing this builtin."
|
|
143
155
|
],
|
|
156
|
+
"syntax": {
|
|
157
|
+
"example": {
|
|
158
|
+
"description": "Syntax",
|
|
159
|
+
"input": "C = conv2(A, B)\nC = conv2(u, v, A)\nC = conv2(___, shape)"
|
|
160
|
+
},
|
|
161
|
+
"points": [
|
|
162
|
+
"`A` is the 2-D input matrix (real, complex, or logical; logicals are promoted to double).",
|
|
163
|
+
"`B` is the 2-D convolution kernel. It is flipped along both axes before the sum-of-products, which is what makes the operation true convolution rather than correlation.",
|
|
164
|
+
"`conv2(u, v, A)` is the separable form: `u` is a column vector applied down the rows of `A` and `v` is a row vector applied across the columns. This is equivalent to `conv2(u(:) * v(:).', A)` but runs as two 1-D passes, which is much faster whenever the effective kernel `u*v'` is rank-1 (box filters, Gaussians, Sobel components).",
|
|
165
|
+
"`shape` selects the output region: `'full'` (default) returns an array of size `size(A) + size(B) - 1`; `'same'` slices the central portion so the output matches `size(A)`; `'valid'` returns only the fully-overlapping region of size `size(A) - size(B) + 1` (empty when `B` is larger than `A` along any dimension)."
|
|
166
|
+
]
|
|
167
|
+
},
|
|
168
|
+
"validation": {
|
|
169
|
+
"summary": "`conv2` uses an in-repo implementation for both the direct (`conv2(A, B)`) and separable (`conv2(u, v, A)`) forms. The module-level tests cover `'full'`, `'same'`, and `'valid'` shapes against reference outputs. The GPU path currently defers to the CPU implementation via the in-process provider and returns a GPU handle; a native WGPU `conv2d` kernel is tracked as follow-up.",
|
|
170
|
+
"implementation": {
|
|
171
|
+
"label": "crates/runmat-runtime/src/builtins/math/signal/conv2.rs",
|
|
172
|
+
"url": "https://github.com/runmat-org/runmat/blob/main/crates/runmat-runtime/src/builtins/math/signal/conv2.rs"
|
|
173
|
+
},
|
|
174
|
+
"parity_test": {
|
|
175
|
+
"label": "conv2 unit tests",
|
|
176
|
+
"url": "https://github.com/runmat-org/runmat/blob/main/crates/runmat-runtime/src/builtins/math/signal/conv2.rs"
|
|
177
|
+
},
|
|
178
|
+
"tolerance": "1e-9 (f64), 1e-3 (f32)"
|
|
179
|
+
},
|
|
144
180
|
"key": "conv2",
|
|
145
181
|
"slug": "conv2",
|
|
146
182
|
"categoryPath": [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conv2.js","sourceRoot":"","sources":["../../../src/generated/builtins/conv2.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"conv2.js","sourceRoot":"","sources":["../../../src/generated/builtins/conv2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross.d.ts","sourceRoot":"","sources":["../../../src/generated/builtins/cross.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,QAAA,MAAM,UAAU,EAAE,UA8HjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
// @generated by scripts/generate-builtins.cjs
|
|
2
|
+
// Do not edit by hand.
|
|
3
|
+
const builtinDoc = {
|
|
4
|
+
"title": "cross",
|
|
5
|
+
"category": "math/linalg/ops",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"cross",
|
|
8
|
+
"cross product",
|
|
9
|
+
"vector product",
|
|
10
|
+
"3d vector",
|
|
11
|
+
"gpu"
|
|
12
|
+
],
|
|
13
|
+
"summary": "Compute the vector cross product of matching 3-element vectors along a chosen dimension.",
|
|
14
|
+
"references": [
|
|
15
|
+
"https://www.mathworks.com/help/matlab/ref/cross.html"
|
|
16
|
+
],
|
|
17
|
+
"gpu_support": {
|
|
18
|
+
"elementwise": false,
|
|
19
|
+
"reduction": false,
|
|
20
|
+
"precisions": [
|
|
21
|
+
"f32",
|
|
22
|
+
"f64"
|
|
23
|
+
],
|
|
24
|
+
"broadcasting": "none",
|
|
25
|
+
"notes": "Providers may implement the `cross` hook to keep real-valued inputs on the device. Complex outputs currently fall back to the host path."
|
|
26
|
+
},
|
|
27
|
+
"fusion": {
|
|
28
|
+
"elementwise": false,
|
|
29
|
+
"reduction": false,
|
|
30
|
+
"max_inputs": 2,
|
|
31
|
+
"constants": "inline"
|
|
32
|
+
},
|
|
33
|
+
"requires_feature": null,
|
|
34
|
+
"tested": {
|
|
35
|
+
"unit": "builtins::math::linalg::ops::cross::tests",
|
|
36
|
+
"integration": "builtins::math::linalg::ops::cross::tests::cross_gpu_roundtrip",
|
|
37
|
+
"gpu": "builtins::math::linalg::ops::cross::tests::cross_wgpu_matches_cpu"
|
|
38
|
+
},
|
|
39
|
+
"description": "`cross(A, B)` computes the vector cross product for matching 3-element vectors. When `A` and `B` are matrices or higher-rank tensors, `cross` operates along the first dimension whose length is `3`, unless you supply an explicit dimension.",
|
|
40
|
+
"behaviors": [
|
|
41
|
+
"Inputs `A` and `B` must be the same size.",
|
|
42
|
+
"With no dimension argument, `cross` uses the first dimension whose extent is exactly `3`.",
|
|
43
|
+
"`cross(A, B, dim)` requires `dim` to be a valid array dimension and `size(A, dim) == 3`.",
|
|
44
|
+
"The output has the same shape as the inputs because each input 3-vector produces one output 3-vector.",
|
|
45
|
+
"Logical and integer inputs are promoted to double precision before evaluation.",
|
|
46
|
+
"Real `gpuArray` inputs remain GPU-resident when the active provider implements the `cross` hook; otherwise RunMat gathers, evaluates on the host, and re-uploads the real result."
|
|
47
|
+
],
|
|
48
|
+
"examples": [
|
|
49
|
+
{
|
|
50
|
+
"description": "Computing the cross product of row vectors",
|
|
51
|
+
"input": "a = [1 0 0];\nb = [0 1 0];\nc = cross(a, b)",
|
|
52
|
+
"output": "c =\n 0 0 1"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"description": "Computing the cross product of column vectors",
|
|
56
|
+
"input": "u = [1; 0; 0];\nv = [0; 1; 0];\nw = cross(u, v)",
|
|
57
|
+
"output": "w =\n 0\n 0\n 1"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"description": "Applying `cross` row-wise across a matrix",
|
|
61
|
+
"input": "A = [1 0 0; 0 1 0];\nB = [0 1 0; 0 0 1];\nC = cross(A, B, 2)",
|
|
62
|
+
"output": "C =\n 0 0 1\n 1 0 0"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"description": "Evaluating `cross` on GPU-resident tensors",
|
|
66
|
+
"input": "G1 = gpuArray([1 0 0]);\nG2 = gpuArray([0 1 0]);\nG = cross(G1, G2);\nresult = gather(G)",
|
|
67
|
+
"output": "result =\n 0 0 1"
|
|
68
|
+
}
|
|
69
|
+
],
|
|
70
|
+
"faqs": [
|
|
71
|
+
{
|
|
72
|
+
"question": "Does `cross` require vectors of length 3?",
|
|
73
|
+
"answer": "Yes. The operating dimension must have extent `3`, whether the vectors are stored as rows, columns, or slices of a higher-rank tensor."
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"question": "How is the default dimension chosen?",
|
|
77
|
+
"answer": "RunMat follows MATLAB semantics and picks the first dimension whose size is exactly `3`."
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"question": "What happens if I pass `dim` explicitly?",
|
|
81
|
+
"answer": "The dimension must exist and must have length `3`; otherwise `cross` raises a descriptive error."
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"question": "Can I use complex inputs?",
|
|
85
|
+
"answer": "Yes. Complex host inputs use the standard bilinear cross-product formula without conjugation."
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"question": "Does the result stay on the GPU?",
|
|
89
|
+
"answer": "For real-valued gpuArray inputs, yes when the provider implements `cross`. Complex results currently remain on the host because GPU complex tensor support is not yet wired through this builtin."
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
"links": [
|
|
93
|
+
{
|
|
94
|
+
"label": "dot",
|
|
95
|
+
"url": "./dot"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"label": "kron",
|
|
99
|
+
"url": "./kron"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"label": "mtimes",
|
|
103
|
+
"url": "./mtimes"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"label": "norm",
|
|
107
|
+
"url": "./norm"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"label": "sum",
|
|
111
|
+
"url": "./sum"
|
|
112
|
+
}
|
|
113
|
+
],
|
|
114
|
+
"source": {
|
|
115
|
+
"label": "`crates/runmat-runtime/src/builtins/math/linalg/ops/cross.rs`",
|
|
116
|
+
"url": "https://github.com/runmat-org/runmat/blob/main/crates/runmat-runtime/src/builtins/math/linalg/ops/cross.rs"
|
|
117
|
+
},
|
|
118
|
+
"gpu_residency": "You usually do not need to call `gpuArray` explicitly for `cross`. RunMat keeps real-valued tensors on the GPU whenever the active provider supports the operation, and otherwise falls back to a gather -> host compute -> re-upload path automatically.",
|
|
119
|
+
"gpu_behavior": [
|
|
120
|
+
"The WGPU provider computes real-valued `cross` products by gathering the three vector components into temporary device tensors, applying multiply/subtract kernels on-device, and scattering the results back into the output tensor. Providers that do not implement `cross` fall back to the host reference path."
|
|
121
|
+
],
|
|
122
|
+
"key": "cross",
|
|
123
|
+
"slug": "cross",
|
|
124
|
+
"categoryPath": [
|
|
125
|
+
"math",
|
|
126
|
+
"linalg",
|
|
127
|
+
"ops"
|
|
128
|
+
]
|
|
129
|
+
};
|
|
130
|
+
export default builtinDoc;
|
|
131
|
+
//# sourceMappingURL=cross.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross.js","sourceRoot":"","sources":["../../../src/generated/builtins/cross.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,uBAAuB;AAIvB,MAAM,UAAU,GAAe;IAC7B,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,iBAAiB;IAC7B,UAAU,EAAE;QACV,OAAO;QACP,eAAe;QACf,gBAAgB;QAChB,WAAW;QACX,KAAK;KACN;IACD,SAAS,EAAE,0FAA0F;IACrG,YAAY,EAAE;QACZ,sDAAsD;KACvD;IACD,aAAa,EAAE;QACb,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE;YACZ,KAAK;YACL,KAAK;SACN;QACD,cAAc,EAAE,MAAM;QACtB,OAAO,EAAE,0IAA0I;KACpJ;IACD,QAAQ,EAAE;QACR,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,QAAQ;KACtB;IACD,kBAAkB,EAAE,IAAI;IACxB,QAAQ,EAAE;QACR,MAAM,EAAE,2CAA2C;QACnD,aAAa,EAAE,gEAAgE;QAC/E,KAAK,EAAE,mEAAmE;KAC3E;IACD,aAAa,EAAE,gPAAgP;IAC/P,WAAW,EAAE;QACX,2CAA2C;QAC3C,2FAA2F;QAC3F,0FAA0F;QAC1F,uGAAuG;QACvG,gFAAgF;QAChF,mLAAmL;KACpL;IACD,UAAU,EAAE;QACV;YACE,aAAa,EAAE,4CAA4C;YAC3D,OAAO,EAAE,6CAA6C;YACtD,QAAQ,EAAE,yBAAyB;SACpC;QACD;YACE,aAAa,EAAE,+CAA+C;YAC9D,OAAO,EAAE,iDAAiD;YAC1D,QAAQ,EAAE,6BAA6B;SACxC;QACD;YACE,aAAa,EAAE,2CAA2C;YAC1D,OAAO,EAAE,8DAA8D;YACvE,QAAQ,EAAE,6CAA6C;SACxD;QACD;YACE,aAAa,EAAE,4CAA4C;YAC3D,OAAO,EAAE,0FAA0F;YACnG,QAAQ,EAAE,8BAA8B;SACzC;KACF;IACD,MAAM,EAAE;QACN;YACE,UAAU,EAAE,2CAA2C;YACvD,QAAQ,EAAE,wIAAwI;SACnJ;QACD;YACE,UAAU,EAAE,sCAAsC;YAClD,QAAQ,EAAE,0FAA0F;SACrG;QACD;YACE,UAAU,EAAE,0CAA0C;YACtD,QAAQ,EAAE,kGAAkG;SAC7G;QACD;YACE,UAAU,EAAE,2BAA2B;YACvC,QAAQ,EAAE,+FAA+F;SAC1G;QACD;YACE,UAAU,EAAE,kCAAkC;YAC9C,QAAQ,EAAE,mMAAmM;SAC9M;KACF;IACD,OAAO,EAAE;QACP;YACE,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,OAAO;SACf;QACD;YACE,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,QAAQ;SAChB;QACD;YACE,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,UAAU;SAClB;QACD;YACE,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,QAAQ;SAChB;QACD;YACE,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,OAAO;SACf;KACF;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,+DAA+D;QACxE,KAAK,EAAE,4GAA4G;KACpH;IACD,eAAe,EAAE,2PAA2P;IAC5Q,cAAc,EAAE;QACd,qTAAqT;KACtT;IACD,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,OAAO;IACf,cAAc,EAAE;QACd,MAAM;QACN,QAAQ;QACR,KAAK;KACN;CACF,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cumtrapz.d.ts","sourceRoot":"","sources":["../../../src/generated/builtins/cumtrapz.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,QAAA,MAAM,UAAU,EAAE,UAwHjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
// @generated by scripts/generate-builtins.cjs
|
|
2
|
+
// Do not edit by hand.
|
|
3
|
+
const builtinDoc = {
|
|
4
|
+
"title": "cumtrapz",
|
|
5
|
+
"category": "math/reduction",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"cumtrapz",
|
|
8
|
+
"cumulative trapezoidal integration",
|
|
9
|
+
"numerical integration",
|
|
10
|
+
"discrete integration",
|
|
11
|
+
"gpu"
|
|
12
|
+
],
|
|
13
|
+
"summary": "Cumulative trapezoidal numerical integration of sampled data.",
|
|
14
|
+
"references": [],
|
|
15
|
+
"gpu_support": {
|
|
16
|
+
"elementwise": false,
|
|
17
|
+
"reduction": false,
|
|
18
|
+
"precisions": [
|
|
19
|
+
"f32",
|
|
20
|
+
"f64"
|
|
21
|
+
],
|
|
22
|
+
"broadcasting": "matlab",
|
|
23
|
+
"notes": "GPU inputs currently gather to the host for cumulative trapezoidal integration and re-upload real-valued outputs so downstream code can remain device-resident."
|
|
24
|
+
},
|
|
25
|
+
"fusion": {
|
|
26
|
+
"elementwise": false,
|
|
27
|
+
"reduction": false,
|
|
28
|
+
"max_inputs": 2,
|
|
29
|
+
"constants": "inline"
|
|
30
|
+
},
|
|
31
|
+
"requires_feature": null,
|
|
32
|
+
"tested": {
|
|
33
|
+
"unit": "builtins::math::reduction::cumtrapz::tests"
|
|
34
|
+
},
|
|
35
|
+
"description": "`cumtrapz(Y)` computes the cumulative trapezoidal integral of sampled data in `Y`. The output has the same size as `Y`, with the first element along the working dimension set to zero and later elements holding the running integral.",
|
|
36
|
+
"behaviors": [
|
|
37
|
+
"`cumtrapz(Y)` assumes unit spacing between adjacent samples.",
|
|
38
|
+
"`cumtrapz(X, Y)` accepts a scalar spacing, a vector of coordinates whose length matches the working dimension, or an array `X` with the same size as `Y`.",
|
|
39
|
+
"`cumtrapz(..., dim)` selects the working dimension explicitly. Dimensions larger than `ndims(Y)` behave like singleton axes, so the result stays zero along those slices.",
|
|
40
|
+
"Logical inputs are promoted to double precision before integration. Complex-valued `Y` inputs are integrated component-wise and preserve their complex output type.",
|
|
41
|
+
"When the selected dimension has length 0 or 1, the output is zero along that dimension because there are no intervals to accumulate."
|
|
42
|
+
],
|
|
43
|
+
"examples": [
|
|
44
|
+
{
|
|
45
|
+
"description": "Computing a cumulative integral with explicit coordinates",
|
|
46
|
+
"input": "x = [0 1 3];\ny = [0 1 2];\nq = cumtrapz(x, y)",
|
|
47
|
+
"output": "q = [0 0.5 3.5]"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"description": "Using unit spacing for sampled data",
|
|
51
|
+
"input": "y = [1 2 3];\nq = cumtrapz(y)",
|
|
52
|
+
"output": "q = [0 1.5 4]"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"description": "Accumulating across rows in a matrix",
|
|
56
|
+
"input": "A = [1 2 3; 4 5 6];\nq = cumtrapz(A, 2)",
|
|
57
|
+
"output": "q =\n 0 1.5 4\n 0 4.5 10"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"description": "Running cumtrapz on GPU data",
|
|
61
|
+
"input": "G = gpuArray([1 2 3]);\nq = cumtrapz(G);\nresult = gather(q)",
|
|
62
|
+
"output": "result = [0 1.5 4]"
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
"faqs": [
|
|
66
|
+
{
|
|
67
|
+
"question": "How is `cumtrapz` different from `trapz`?",
|
|
68
|
+
"answer": "`trapz` returns the final integrated value, while `cumtrapz` returns the running integral at every sample."
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"question": "Why is the first element zero?",
|
|
72
|
+
"answer": "There is no interval before the first sample, so the cumulative integral begins at zero."
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"question": "What forms of `X` are accepted?",
|
|
76
|
+
"answer": "A scalar spacing, a vector of coordinates matching the integration dimension, or an array with the same size as `Y`."
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"question": "Does cumtrapz support complex inputs?",
|
|
80
|
+
"answer": "Yes. RunMat accumulates the real and imaginary components independently and returns a complex result."
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"question": "Does cumtrapz keep gpuArray residency?",
|
|
84
|
+
"answer": "For real-valued results, yes. RunMat currently gathers GPU inputs to the host, computes the cumulative trapezoidal integral, and re-uploads the result so downstream GPU code can stay resident."
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
"links": [
|
|
88
|
+
{
|
|
89
|
+
"label": "trapz",
|
|
90
|
+
"url": "./trapz"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"label": "cumsum",
|
|
94
|
+
"url": "./cumsum"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"label": "diff",
|
|
98
|
+
"url": "./diff"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"label": "gpuArray",
|
|
102
|
+
"url": "./gpuarray"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"label": "gather",
|
|
106
|
+
"url": "./gather"
|
|
107
|
+
}
|
|
108
|
+
],
|
|
109
|
+
"source": {
|
|
110
|
+
"label": "`crates/runmat-runtime/src/builtins/math/reduction/cumtrapz.rs`",
|
|
111
|
+
"url": "https://github.com/runmat-org/runmat/blob/main/crates/runmat-runtime/src/builtins/math/reduction/cumtrapz.rs"
|
|
112
|
+
},
|
|
113
|
+
"gpu_residency": "Manual `gpuArray` promotion is optional. If sampled data already lives on the GPU, RunMat preserves real-valued cumulative results as gpuArrays by re-uploading the output after the host fallback path.",
|
|
114
|
+
"gpu_behavior": [
|
|
115
|
+
"RunMat does not yet expose a native provider hook for `cumtrapz`. When the input is a gpuArray, the runtime gathers the data to host memory, performs the cumulative trapezoidal integration with MATLAB-compatible dimension and spacing rules, and re-uploads real-valued outputs so downstream GPU work stays resident."
|
|
116
|
+
],
|
|
117
|
+
"key": "cumtrapz",
|
|
118
|
+
"slug": "cumtrapz",
|
|
119
|
+
"categoryPath": [
|
|
120
|
+
"math",
|
|
121
|
+
"reduction"
|
|
122
|
+
]
|
|
123
|
+
};
|
|
124
|
+
export default builtinDoc;
|
|
125
|
+
//# sourceMappingURL=cumtrapz.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cumtrapz.js","sourceRoot":"","sources":["../../../src/generated/builtins/cumtrapz.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,uBAAuB;AAIvB,MAAM,UAAU,GAAe;IAC7B,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE;QACV,UAAU;QACV,oCAAoC;QACpC,uBAAuB;QACvB,sBAAsB;QACtB,KAAK;KACN;IACD,SAAS,EAAE,+DAA+D;IAC1E,YAAY,EAAE,EAAE;IAChB,aAAa,EAAE;QACb,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE;YACZ,KAAK;YACL,KAAK;SACN;QACD,cAAc,EAAE,QAAQ;QACxB,OAAO,EAAE,iKAAiK;KAC3K;IACD,QAAQ,EAAE;QACR,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,QAAQ;KACtB;IACD,kBAAkB,EAAE,IAAI;IACxB,QAAQ,EAAE;QACR,MAAM,EAAE,4CAA4C;KACrD;IACD,aAAa,EAAE,yOAAyO;IACxP,WAAW,EAAE;QACX,8DAA8D;QAC9D,2JAA2J;QAC3J,2KAA2K;QAC3K,qKAAqK;QACrK,sIAAsI;KACvI;IACD,UAAU,EAAE;QACV;YACE,aAAa,EAAE,2DAA2D;YAC1E,OAAO,EAAE,gDAAgD;YACzD,QAAQ,EAAE,iBAAiB;SAC5B;QACD;YACE,aAAa,EAAE,qCAAqC;YACpD,OAAO,EAAE,+BAA+B;YACxC,QAAQ,EAAE,eAAe;SAC1B;QACD;YACE,aAAa,EAAE,sCAAsC;YACrD,OAAO,EAAE,yCAAyC;YAClD,QAAQ,EAAE,6CAA6C;SACxD;QACD;YACE,aAAa,EAAE,8BAA8B;YAC7C,OAAO,EAAE,8DAA8D;YACvE,QAAQ,EAAE,oBAAoB;SAC/B;KACF;IACD,MAAM,EAAE;QACN;YACE,UAAU,EAAE,2CAA2C;YACvD,QAAQ,EAAE,4GAA4G;SACvH;QACD;YACE,UAAU,EAAE,gCAAgC;YAC5C,QAAQ,EAAE,0FAA0F;SACrG;QACD;YACE,UAAU,EAAE,iCAAiC;YAC7C,QAAQ,EAAE,sHAAsH;SACjI;QACD;YACE,UAAU,EAAE,uCAAuC;YACnD,QAAQ,EAAE,uGAAuG;SAClH;QACD;YACE,UAAU,EAAE,wCAAwC;YACpD,QAAQ,EAAE,kMAAkM;SAC7M;KACF;IACD,OAAO,EAAE;QACP;YACE,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,SAAS;SACjB;QACD;YACE,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,UAAU;SAClB;QACD;YACE,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,QAAQ;SAChB;QACD;YACE,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,YAAY;SACpB;QACD;YACE,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,UAAU;SAClB;KACF;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,iEAAiE;QAC1E,KAAK,EAAE,8GAA8G;KACtH;IACD,eAAe,EAAE,0MAA0M;IAC3N,cAAc,EAAE;QACd,4TAA4T;KAC7T;IACD,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,cAAc,EAAE;QACd,MAAM;QACN,WAAW;KACZ;CACF,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../../../src/generated/builtins/datetime.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,QAAA,MAAM,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../../../src/generated/builtins/datetime.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,QAAA,MAAM,UAAU,EAAE,UAyHjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -31,7 +31,7 @@ const builtinDoc = {
|
|
|
31
31
|
},
|
|
32
32
|
"requires_feature": null,
|
|
33
33
|
"tested": {
|
|
34
|
-
"integration": "runmat-
|
|
34
|
+
"integration": "runmat-vm/tests/datetime.rs"
|
|
35
35
|
},
|
|
36
36
|
"description": "`datetime` constructs MATLAB-style datetime objects. RunMat currently supports creation from year-month-day component inputs, from text scalars or text arrays, from serial date numbers, and from numeric inputs marked with `ConvertFrom='datenum'`. The resulting object stores serial dates internally and exposes a writable `Format` property used by display, `string`, and `char` conversion.",
|
|
37
37
|
"behaviors": [
|
|
@@ -95,30 +95,6 @@ const builtinDoc = {
|
|
|
95
95
|
}
|
|
96
96
|
],
|
|
97
97
|
"links": [
|
|
98
|
-
{
|
|
99
|
-
"label": "year",
|
|
100
|
-
"url": "./year"
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
"label": "month",
|
|
104
|
-
"url": "./month"
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
"label": "day",
|
|
108
|
-
"url": "./day"
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
"label": "hour",
|
|
112
|
-
"url": "./hour"
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
"label": "minute",
|
|
116
|
-
"url": "./minute"
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
"label": "second",
|
|
120
|
-
"url": "./second"
|
|
121
|
-
},
|
|
122
98
|
{
|
|
123
99
|
"label": "string",
|
|
124
100
|
"url": "./string"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datetime.js","sourceRoot":"","sources":["../../../src/generated/builtins/datetime.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,uBAAuB;AAIvB,MAAM,UAAU,GAAe;IAC7B,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,UAAU;IACtB,UAAU,EAAE;QACV,UAAU;QACV,MAAM;QACN,MAAM;QACN,oBAAoB;QACpB,SAAS;QACT,QAAQ;QACR,sBAAsB;KACvB;IACD,SAAS,EAAE,yFAAyF;IACpG,YAAY,EAAE;QACZ,yDAAyD;KAC1D;IACD,aAAa,EAAE;QACb,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,EAAE;QAChB,cAAc,EAAE,MAAM;QACtB,OAAO,EAAE,8GAA8G;KACxH;IACD,QAAQ,EAAE;QACR,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,QAAQ;KACtB;IACD,kBAAkB,EAAE,IAAI;IACxB,QAAQ,EAAE;QACR,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"datetime.js","sourceRoot":"","sources":["../../../src/generated/builtins/datetime.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,uBAAuB;AAIvB,MAAM,UAAU,GAAe;IAC7B,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,UAAU;IACtB,UAAU,EAAE;QACV,UAAU;QACV,MAAM;QACN,MAAM;QACN,oBAAoB;QACpB,SAAS;QACT,QAAQ;QACR,sBAAsB;KACvB;IACD,SAAS,EAAE,yFAAyF;IACpG,YAAY,EAAE;QACZ,yDAAyD;KAC1D;IACD,aAAa,EAAE;QACb,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,EAAE;QAChB,cAAc,EAAE,MAAM;QACtB,OAAO,EAAE,8GAA8G;KACxH;IACD,QAAQ,EAAE;QACR,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,QAAQ;KACtB;IACD,kBAAkB,EAAE,IAAI;IACxB,QAAQ,EAAE;QACR,aAAa,EAAE,6BAA6B;KAC7C;IACD,aAAa,EAAE,uYAAuY;IACtZ,WAAW,EAAE;QACX,yEAAyE;QACzE,+JAA+J;QAC/J,+JAA+J;QAC/J,wGAAwG;QACxG,iJAAiJ;QACjJ,wKAAwK;QACxK,kEAAkE;QAClE,mIAAmI;KACpI;IACD,UAAU,EAAE;QACV;YACE,aAAa,EAAE,wDAAwD;YACvE,OAAO,EAAE,qCAAqC;YAC9C,QAAQ,EAAE,6BAA6B;SACxC;QACD;YACE,aAAa,EAAE,6BAA6B;YAC5C,OAAO,EAAE,kEAAkE;YAC3E,QAAQ,EAAE,iDAAiD;SAC5D;QACD;YACE,aAAa,EAAE,6CAA6C;YAC5D,OAAO,EAAE,0DAA0D;YACnE,QAAQ,EAAE,iDAAiD;SAC5D;QACD;YACE,aAAa,EAAE,2DAA2D;YAC1E,OAAO,EAAE,kFAAkF;YAC3F,QAAQ,EAAE,qBAAqB;SAChC;QACD;YACE,aAAa,EAAE,0CAA0C;YACzD,OAAO,EAAE,0FAA0F;YACnG,QAAQ,EAAE,gCAAgC;SAC3C;QACD;YACE,aAAa,EAAE,uCAAuC;YACtD,OAAO,EAAE,2DAA2D;YACpE,QAAQ,EAAE,WAAW;SACtB;KACF;IACD,MAAM,EAAE;QACN;YACE,UAAU,EAAE,yCAAyC;YACrD,QAAQ,EAAE,6IAA6I;SACxJ;QACD;YACE,UAAU,EAAE,iCAAiC;YAC7C,QAAQ,EAAE,mKAAmK;SAC9K;QACD;YACE,UAAU,EAAE,8BAA8B;YAC1C,QAAQ,EAAE,yEAAyE;SACpF;QACD;YACE,UAAU,EAAE,iCAAiC;YAC7C,QAAQ,EAAE,uJAAuJ;SAClK;KACF;IACD,OAAO,EAAE;QACP;YACE,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,UAAU;SAClB;QACD;YACE,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,QAAQ;SAChB;QACD;YACE,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,QAAQ;SAChB;KACF;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,sDAAsD;QAC/D,KAAK,EAAE,mGAAmG;KAC3G;IACD,eAAe,EAAE,uOAAuO;IACxP,cAAc,EAAE;QACd,uKAAuK;KACxK;IACD,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,cAAc,EAAE;QACd,UAAU;KACX;CACF,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eig.d.ts","sourceRoot":"","sources":["../../../src/generated/builtins/eig.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,QAAA,MAAM,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"eig.d.ts","sourceRoot":"","sources":["../../../src/generated/builtins/eig.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,QAAA,MAAM,UAAU,EAAE,UA4MjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|