1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
## Legend
| Symbol / Abbreviation | Meaning |
|------------------------------|----------------------------------------------------------------------------------------|
| **GPU** | ✓ = Supported (device kernels via provider hooks or offload) <br> — = Host only <br> N/A = Not applicable |
| **Fusion** | E = Elementwise <br> R = Reduction <br> S = Stencil / Convolution <br> M = MatMul <br> T = Transpose / Permutation <br> P = Pipeline / Fuse-friendly <br> — = Not applicable |
| **BLAS/LAPACK/FFTs** | BLAS, LAPACK, FFT, — (not applicable) |
| **Names** | Many rows list multiple names (comma-separated) for closely related families; each name is a distinct builtin.|
## Acceleration / GPU
| Completed | Path | Name(s) | Purpose | GPU | Fusion | BLAS/LAPACK/FFTs | Notes |
|-----------|---------------------|---------------------------------------------|-------------------------------|-----|--------|------------------|-----------------------------------------------|
| ✅ | acceleration/gpu | gpuArray, gather, gpuDevice, gpuInfo | Move to/from device; query device | ✓ | P | — | Residency-aware; gpuArray/gather. |
| ✅ | acceleration/gpu | arrayfun | Elementwise map on GPU | ✓ | E | — | Provider hook (unary_map) + fusion inline constants. |
| ✅ | acceleration/gpu | pagefun | Batched page-wise ops | ✓ | P | — | Maps batched BLAS/FFT when present. |
## Arrays — creation, shape, indexing
| Completed | Path | Name(s) | Purpose | GPU | Fusion | BLAS/LAPACK/FFTs | Notes |
|-----------|---------------------|-----------------------------------------------------------------------------------------------------|---------------------------------|-----|--------|--------------------|-----------------------------------------------------------------------------------------|
| ✅ | array/creation | zeros, ones, eye, diag, linspace, logspace, randi, rand, randn, randperm, fill, range, colon | Constructors & ranges | ✓ | E | — | RNG integrates rng streams; colon(a,b,…) implements :. |
| ✅ | array/creation | meshgrid | Grid generators | ✓ | T | — | X/Y grid; device index kernels. |
| ✅ | array/shape | reshape, squeeze, permute, ipermute, repmat, kron, cat, horzcat, vertcat, flip, fliplr, flipud, rot90, circshift, tril, triu, diag | Layout transforms | ✓ | T | BLAS (for kron via GEMM blocks) | Device-side index kernels; fuse where possible. |
| ✅ | array/indexing | sub2ind, ind2sub, find | Index conversions & queries | ✓ | P | — | find supports dim/k variants; device kernels for masks. |
| ✅ | array/sorting-sets | sort, sortrows, argsort (internal), unique, union, intersect, setdiff, ismember, issorted | Ordering & set ops | ✓ | P | — | GPU sort; host Timsort/ radix; full semantics. |
| ✅ | array/introspection | size, length, numel, ndims, isempty, isscalar, isvector, ismatrix | Metadata | N/A | — | — | |
## Math — elementwise & reductions
| Completed | Path | Name(s) | Purpose | GPU | Fusion | BLAS/LAPACK/FFTs | Notes |
|-----------|---------------------|----------------------------------------------------------------------------------|-----------------------------|-----|--------|------------------|------------------------------|
| ✅ | math/elementwise | abs, sign, real, imag, conj, angle | Complex helpers | ✓ | E | — | Complex tensors supported. |
| ✅ | math/elementwise | exp, expm1, log, log1p, log10, log2, sqrt, hypot, pow2 | Exponentials & roots | ✓ | E | — | Provider hooks unary_*. |
| ✅ | math/elementwise | single, double | Numeric casting (array/scalar) | ✓ | E | — | Type conversion to f32/f64. |
| ✅ | math/elementwise | plus, minus, times, rdivide, ldivide, power, gamma, factorial | Elementwise ops & specials | ✓ | E | — | GPU-aware; broadcast semantics. |
| ✅ | math/trigonometry | sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh, asinh, acosh, atanh | Trig & hyperbolic | ✓ | E | — | sin, asinh, acosh, atanh implemented; others mirror. |
| ✅ | math/rounding | round, floor, ceil, fix, mod, rem | Rounding & modulo | ✓ | E | — | mod/rem MATLAB semantics. |
| ✅ | math/reduction | sum, prod, mean, median, min, max, any, all, std, var, cumsum, cumprod, cummin, cummax, diff, nnz | Reductions & cumulatives | ✓ | R | — | omitnan host fallback initially; GPU reductions via hooks. |
## Linear algebra
| Completed | Path | Name(s) | Purpose | GPU | Fusion | BLAS/LAPACK/FFTs | Notes |
|-----------|------------------------|------------------------------------------------------|-----------------------------------|-----|--------|------------------|-----------------------------------------------------|
| ✅ | math/linalg/ops | mtimes (*), mrdivide (/), mldivide (\), transpose (.'), ctranspose ('), trace | Core ops | ✓ | M/T | BLAS | GEMM/GEMV; fall back to host BLAS; GPU matmul hooks.|
| ✅ | math/linalg/ops | dot, mpower | Dot product; matrix power | ✓ | M | BLAS | Device/offload support via provider hooks. |
| ✅ | math/linalg/factor | lu, qr, chol, svd, eig | Factorizations & eigensolvers | ✓ | — | LAPACK | GPU optional via provider; host uses LAPACK. |
| ✅ | math/linalg/solve | linsolve, pinv, inv, det, rank, rcond, cond, norm | Solves & metrics | ✓ | — | LAPACK/BLAS | Encourage \ instead of inv(A)*b. |
| ✅ | math/linalg/structure | bandwidth, issymmetric, ishermitian, symrcm| Structure queries | — | — | — | Useful diagnostics. |
## FFTs & signal / image primitives
| Completed | Path | Name(s) | Purpose | GPU | Fusion | BLAS/LAPACK/FFTs | Notes |
|-----------|----------------|------------------------------------------------------------|---------------------------|-----|--------|------------------|-----------------------------------------------------------------------------------------|
| ✅ | math/fft | fft, ifft, fft2, ifft2, fftshift, ifftshift | Fourier transforms | ✓ | P | FFT | Provider hook to device FFTs; host uses pocketfft. |
| ✅ | math/signal | conv, conv2, deconv, filter | 1D/2D conv & filtering | ✓ | S | — | Small kernels fuse; large can call FFT‑based conv. |
| ✅ | image/filters | fspecial | Generate filter kernels | — | — | — | Included: gaussian, average, laplacian, log, motion, sobel, prewitt, unsharp, disk. |
| ✅ | image/filters | imfilter, filter2 | Apply linear filters | ✓ | S | — | Padding modes: replicate, circular, symmetric. |
## Polynomials & fitting
| Completed | Path | Name(s) | Purpose | GPU | Fusion | BLAS/LAPACK/FFTs | Notes |
|-----------|------------|--------------------------------------------------|-------------------|-----|--------|------------------|----------------------------------------|
| ✅ | math/poly | polyval, polyfit, roots, polyder, polyint | Poly utilities | — | P | LAPACK (QR) | polyfit via least squares (\/QR). |
## Statistics (core)
| Completed | Path | Name(s) | Purpose | GPU | Fusion | BLAS/LAPACK/FFTs | Notes |
|-----------|----------------|-----------------------|----------------------------|-----|--------|------------------|---------------------------------------|
| ✅ | stats/summary | corrcoef, cov | Correlation / covariance | ✓ | R | BLAS | GPU optional; host via BLAS reductions. |
| ✅ | stats/hist | histcounts, histcounts2| Binning | ✓ | P | — | Includes GPU radix/binning. |
| ✅ | stats/random | rng | RNG control | N/A | — | — | Seeds, streams (host + device). |
## Logical & comparisons
| Completed | Path | Name(s) | Purpose | GPU | Fusion | BLAS/LAPACK/FFTs | Notes |
|-----------|----------------|----------------------------------------|--------------------|-----|--------|------------------|--------------------------------------|
| ✅ | logical/rel | eq, ne, gt, ge, lt, le | Relational ops | ✓ | E | — | Implemented for scalars/tensors/strings. |
| ✅ | logical/bit | and, or, xor, not | Logical ops | ✓ | E | — | Elementwise semantics. |
| ✅ | logical/tests | isnan, isinf, isfinite, isreal, islogical, isnumeric | Predicates | ✓ | E | — | Device kernels for masks. |
| ✅ | logical | logical | Type conversion | ✓ | E | — | Produces logical arrays/scalars. |
## Strings & text
| Completed | Path | Name(s) | Purpose | GPU | Fusion | BLAS/LAPACK/FFTs | Notes |
|-----------|-------------------|---------------------------------------------------------------|------------------------|-----|--------|------------------|--------------------------------------------|
| ✅ | strings/core | string, char, strlength, num2str, str2double, compose, sprintf| Conversions & formatting| — | — | — | sprintf returns string; fprintf in I/O. |
| ✅ | strings/core | strcmp, strcmpi, strncmp, strings, string.empty | Comparisons & constructors| — | — | — | |
| ✅ | strings/search | contains, startsWith, endsWith, strfind | Search | — | — | — | |
| ✅ | strings/transform | lower, upper, strip, strtrim, replace, split, join | Transformations | — | — | — | |
| ✅ | strings/transform | strrep, strcat, extractBetween, erase, eraseBetween, pad | Transformations | — | — | — | |
| ✅ | strings/regex | regexp, regexpi, regexprep | Regex utilities | — | — | — | Backed by regex crate. |
## Structs, cells, containers
| Completed | Path | Name(s) | Purpose | GPU | Fusion | BLAS/LAPACK/FFTs | Notes |
|-----------|-----------------|--------------------------------------------------|-----------------------|-----|--------|------------------|--------------------------------------------------|
| ✅ | structs/core | struct, fieldnames, isfield, getfield, setfield, rmfield, orderfields | Struct manipulation | — | — | — | |
| ✅ | cells/core | cell, cell2mat, mat2cell, cellfun | Cell arrays & ops | — | P | — | cellfun maps to fusion where trivial. |
| ✅ | cells/core | cellstr | Cell/string conversion | — | — | — | |
| ✅ | containers/map | containers.Map (constructor) | String→value map | — | — | — | Handy; small footprint. |
## Introspection, environment, diagnostics
| Completed | Path | Name(s) | Purpose | GPU | Fusion | BLAS/LAPACK/FFTs | Notes |
|-----------|------------------|---------------------------------------------------------------------------------|----------------------------|-----|--------|------------------|------------------------------------------|
| ✅ | introspection | class, isa, which, whos, who | Type & workspace queries | N/A | — | — | which resolves builtins/files. |
| ✅ | introspection | ischar, isstring | Type predicates | N/A | — | — | |
| ✅ | diagnostics | error, warning, assert | Errors & checks | N/A | — | — | Integrate with MException. |
| ✅ | timing | tic, toc, timeit, pause | Timing utilities | N/A | — | — | timeit microbenchmark helper. |
## I/O — filesystem and files
| Completed | Path | Name(s) | Purpose | GPU | Fusion | BLAS/LAPACK/FFTs | Notes |
|-----------|--------------|--------------------------------------------------------------------------------------------------------------------------------------------|------------------------|-----|--------|------------------|--------------------------------------------|
| ✅ | io/repl-fs | cd, pwd, ls/dir, mkdir, rmdir, movefile, copyfile, delete, exist, which, path, addpath, rmpath, genpath, savepath, tempdir, tempname, getenv, setenv | REPL ergonomics & FS | — | — | — | Covers cd and friends. |
| ✅ | io/filetext | fileread, filewrite, fopen, fclose, fread, fwrite, feof, fgets, fprintf | Text/binary I/O | — | — | — | |
| ✅ | io/core | disp | Display to stdout | — | — | — | sink builtin |
| ✅ | io/tabular | readmatrix, writematrix, csvread, csvwrite, dlmread, dlmwrite | Simple tabular I/O | — | — | — | CSV/TSV focus; tables package later. |
| ✅ | io/mat | save, load | MAT‑like persistence | — | — | — | Must completely support all semantics. |
## I/O — JSON & Networking
| Completed | Path | Name(s) | Purpose | GPU | Fusion | BLAS/LAPACK/FFTs | Notes |
|-----------|--------------|---------------------------------------------------|----------------------------|-----|--------|------------------|----------------------------------------|
| ✅ | io/json | jsonencode, jsondecode | JSON serialize/parse | — | — | — | UTF‑8. |
| ✅ | io/net | tcpserver, accept, tcpclient, read, readline, write, close | TCP servers/clients | — | — | — | Complete, supports existing MATLAB semantics; includes blocking, unblocking, TLS. Unix socket (UDS) supported (beyond MATLAB). |
| ✅ | io/http | webread, webwrite, weboptions | HTTP client | — | — | — | Built on tcpclient + TLS. |
## I/O — images (core)
| Completed | Path | Name(s) | Purpose | GPU | Fusion | BLAS/LAPACK/FFTs | Notes |
|-----------|-------------------|--------------- |------------- |-----|--------|------------------|-----------------------------|
| ✅ | io/image | imread, imwrite, imfinfo | Image I/O | — | — | — | All image formats in `imread` / `imwrite` / `imfinfo` on MATLAB are supported, including PNG/JPEG. |
| ✅ | plot/images (gui) | imshow, imagesc | Display | — | — | — | Behind gui/jupyter features.|
## Plotting & visualization (feature‑gated)
| Completed | Path | Name(s) | Purpose | GPU | Fusion | BLAS/LAPACK/FFTs | Notes |
|-----------|-------------|--------------------------------------------------------------------------------------------------|-----------------|-----|--------|------------------|------------------------------------------------|
| | plot/core | plot, scatter, semilogx, semilogy, loglog, bar, histogram, stairs, stem, subplot, figure, hold, title, xlabel, ylabel, legend, xlim, ylim, axis | 2D plotting | — | — | — | Provided by runmat-plot (gui/jupyter). |
| | plot/3d | surf, mesh, contour, contourf | 3D/surfaces | — | — | — | |
## Constants
| Completed | Path | Name(s) | Purpose | GPU | Fusion | BLAS/LAPACK/FFTs | Notes |
|-----------|-----------|-----------------------------------|----------------------|-----|--------|------------------|-----------------------------------------|
| | constants | pi, e, eps, inf, Inf, nan, NaN, true, false | Fundamental constants | N/A | — | — | |