RunMat
GitHub

syms — Declare scalar symbolic variables in the active workspace.

syms supports MATLAB command syntax such as syms x h, symbolic function declarations such as syms Y(X), and string function syntax such as syms('x') by declaring each named symbol in the caller workspace before later expressions are resolved.

Syntax

syms name ...

Inputs

NameTypeRequiredDefaultDescription
nameStringScalarVariadicSymbol names and optional assumption keywords.

Returns

NameTypeDescription
ansAnyEmpty return value for command declarations.

Errors

IdentifierWhenMessage
RunMat:syms:EmptyDeclarationNo symbol names were supplied.syms: expected at least one symbolic variable name
RunMat:syms:InvalidNameA declaration token is not a valid MATLAB identifier or assumption keyword.syms: invalid symbolic variable name
RunMat:syms:WorkspaceUnavailableThe active runtime cannot assign to the caller workspace.syms: workspace assignment unavailable

How syms works

  • Command syntax is supported for identifiers, for example syms x h; function syntax supports literal text names, for example syms('x').
  • Declared identifiers are assigned scalar symbolic variables of the same name in the active workspace.
  • Symbolic function declarations such as syms Y(X) assign X as a symbolic variable and Y as a symbolic function expression. Calls such as Y(0) then produce symbolic applications rather than numeric indexing.
  • Common assumption tokens after the first declaration, such as real, positive, and integer, are accepted and ignored by the current scalar symbolic core.
  • syms is a sink builtin: it does not print or return a useful value when called as a statement.

Examples

Declare two symbolic variables

syms x h

Use declared variables in a symbolic expression

syms x
f = sin(x)/x

Declare and apply a symbolic function

syms Y(X)
cond = Y(0) == 0
dydx = diff(Y, X)

Using syms with coding agents

Open a RunMat example with live inputs, then ask the agent to explain how syms changes the result.

Run a small syms example, explain the result, then change one input and compare the output.

FAQ

Are symbolic assumptions enforced?

Assumption tokens are parsed for MATLAB command compatibility, but the current scalar symbolic evaluator treats expressions as real-valued and does not maintain an assumption database.

Symbolic

limit · sym

Elementwise

abs · angle · complex · conj · double · exp · expm1 · factorial · gamma · heaviside · hypot · imag · ldivide · log · log10 · log1p · log2 · minus · nextpow2 · plus · pow2 · power · rdivide · real · sign · single · sqrt · times

Trigonometry

acos · acosh · asin · asinh · atan · atan2 · atanh · cos · cosd · cosh · deg2rad · rad2deg · sin · sind · sinh · tan · tand · tanh

Reduction

all · any · cummax · cummin · cumprod · cumsum · cumtrapz · diff · gradient · max · mean · median · min · nnz · prod · std · sum · trapz · var

Rounding

ceil · fix · floor · mod · rem · round

Factor

chol · eig · lu · qr · svd

Solve

cond · det · inv · linsolve · norm · null · pinv · rank · rcond · rref

Fft

fft · fft2 · fftshift · ifft · ifft2 · ifftshift

Interpolation

interp1 · interp2 · pchip · ppval · spline

Ode

ode15s · ode23 · ode45

Open-source implementation

Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how syms is executed, line by line, in Rust.

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.

Getting started · Benchmarks · Pricing

Download RunMat

Download RunMat for full performance, or use RunMat in your browser for zero setup.