erf — Compute error-function values element-wise in MATLAB and RunMat.
Y = erf(X) evaluates the Gaussian error function element-by-element for real numeric input. RunMat follows MATLAB's documented real, nonsparse surface and keeps real GPU tensors resident when the active provider supports unary_erf.
Syntax
Y = erf(X)Inputs
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
X | Any | Yes | — | Real numeric input. |
Returns
| Name | Type | Description |
|---|---|---|
Y | NumericArray | Elementwise error-function result. |
Errors
| Identifier | When | Message |
|---|---|---|
RunMat:erf:InvalidInput | Input cannot be interpreted as a real, nonsparse numeric array. | erf: invalid input |
RunMat:erf:Internal | Internal tensor construction or provider interaction failed. | erf: internal error |
How erf works
erf(X)applies the error function element-by-element while preserving the input tensor shape.- Double inputs return double results; single tensors preserve single dtype metadata with single-rounded output values.
- Scalar integer, logical, and character inputs are promoted through RunMat's ordinary numeric coercion path for compatibility with existing elementwise builtins.
- Complex, string, and sparse inputs produce stable
RunMat:erf:InvalidInputerrors. - Real GPU tensors stay on device when the provider implements
unary_erf; otherwise RunMat gathers the tensor, evaluates on the host, and returns a host value with the computed results.
GPU memory and residency
Yes when the active provider implements unary_erf for real-valued gpuArray inputs. Providers without that hook trigger a host fallback, so the computed result is returned as a host tensor rather than a resident gpuArray.
Examples
Calculate the error function of a scalar
y = erf(1)Expected output:
y = 0.8427Apply erf to every element of a vector
x = [-0.5 0 1 3];
y = erf(x)Expected output:
y = [-0.5205 0 0.8427 1.0000]Evaluate a matrix element-wise
A = [0.29 -0.11; 3.1 -2.9];
B = erf(A)Expected output:
B = [0.3183 -0.1236; 1.0000 -1.0000]Use erf when computing a normal CDF
x = -3:0.1:3;
y = 0.5*(1 + erf(x/sqrt(2)));Expected output:
y = 1x61 doubleRun erf on GPU data
G = gpuArray([-1 0 1]);
out = erf(G);
result = gather(out)Expected output:
result = [-0.8427 0 0.8427]Using erf with coding agents
Open a RunMat example with live inputs, then ask the agent to explain how erf changes the result.
Run a small erf example, explain the result, then change one input and compare the output.
FAQ
Does erf support complex inputs?⌄
No. MATLAB documents erf for real single and double arrays, and RunMat reports a typed input error for complex values instead of applying a non-MATLAB analytic continuation.
Why use erfc instead of 1 - erf(x)?⌄
For large positive x, erf(x) is very close to 1. A complementary error function can preserve the small residual more accurately than subtracting from 1.
Can erf run on GPU arrays?⌄
Yes for real tensors. The WGPU backend evaluates erf on device; other providers may fall back to the host if they do not expose unary_erf.
Related Math functions
Elementwise
abs · angle · bsxfun · complex · conj · double · erfcinv · exp · expm1 · factorial · flintmax · gamma · gammaln · heaviside · hypot · idivide · imag · intmax · intmin · ldivide · log · log10 · log1p · log2 · minus · nextpow2 · plus · pow2 · power · rdivide · real · realmax · realmin · realsqrt · rescale · sign · single · sqrt · swapbytes · times · uint32
Trigonometry
acos · acosh · asin · asinh · atan · atan2 · atanh · cos · cosd · cosh · cospi · deg2rad · pol2cart · rad2deg · sin · sind · sinh · sinpi · tan · tand · tanh
Reduction
all · any · bounds · cummax · cummin · cumprod · cumsum · cumtrapz · diff · gradient · max · maxk · mean · median · min · mink · movmax · movmean · movmedian · movmin · movprod · movstd · movsum · movvar · nnz · prod · rms · std · sum · trapz · var
Structure
bandwidth · isdiag · ishermitian · issymmetric · istril · istriu · symrcm
Signal
blackman · butter · buttord · cheb2ord · conv · conv2 · deconv · downsample · envelope · filter · filtfilt · fir1 · freqz · gauspuls · hamming · hann · hilbert · periodogram · pulstran · pwelch · rectpuls · resample · sawtooth · sinc · spectrogram · square · tripuls · unwrap · upsample · zplane
Optim
coneprog · fminbnd · fminunc · fsolve · fzero · integral · linprog · lsqcurvefit · lsqnonlin · optimset · quad · secondordercone
Ops
cross · ctranspose · dot · mldivide · mpower · mrdivide · mtimes · pagemtimes · pagetranspose · trace · transpose
About RunMat
RunMat is an open-source runtime that executes MATLAB-syntax code blazing on any GPU. It is licensed under the Apache 2.0 license.
- RunMat automatically optimizes your math for GPU execution on Apple, Nvidia, and AMD hardware. No code changes needed. Simulations that took hours now take minutes.
- Start running code in seconds. RunMat runs in the browser, on the desktop, or from the CLI. No license server, no IT ticket.