RunMat
GitHub

sind — Sine of angles expressed in degrees with MATLAB-exact values at canonical multiples.

y = sind(x) evaluates the sine of each angle in x, interpreting the values in degrees rather than radians. The implementation reduces the angle modulo 360 and special-cases 0, 30, 90, 150, and 180 (and their negative/wrapped counterparts) so the result matches MATLAB's exact 0, ±0.5, and ±1 values without floating-point noise.

How sind works

  • Operates element-wise on scalars, vectors, matrices, and N-D tensors.
  • Integer and logical inputs are promoted to double precision before evaluation.
  • Returns exactly 0 at multiples of 180 and exactly ±1 at the odd multiples of 90 (±90 + 360k).
  • Returns exactly ±0.5 at angles congruent to ±30 or ±150 modulo 360.
  • Complex inputs delegate to the analytic extension of sin after scaling by pi/180; exact-value treatment for complex operands is deferred.
  • Output shape matches the input shape; non-finite inputs propagate as NaN.
  • String inputs are unsupported and raise a builtin-scoped error.

Examples

Sine of a canonical degree angle

y = sind(30)

Expected output:

y = 0.5

Sine of multiples of 180 returns exactly zero

y = sind([0 180 360])

Expected output:

y = [0 0 0]

Sine of a vector of common angles

angles = [0 30 45 60 90];
y = sind(angles)

Expected output:

y = [0 0.5 0.7071 0.8660 1]

FAQ

Why does sind(180) return exactly zero?

MATLAB guarantees an exact zero at multiples of 180 to avoid floating-point noise from pi. RunMat reduces the angle modulo 360 and short-circuits the canonical cases before delegating to sin.

Is sind(x) equivalent to sin(x*pi/180)?

Mathematically yes, but the floating-point result differs at canonical angles because pi/180 is not exact in binary floating point. sind returns the exact MATLAB values at multiples of 30, 90, 150, and 180.

Does sind support arrays?

Yes. Scalars, vectors, matrices, and N-D tensors are all handled element-wise; the shape of the input is preserved.

Trigonometry

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

Elementwise

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

Reduction

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

Signal

blackman · conv · conv2 · deconv · filter · hamming · hann · sawtooth · sinc · square

Rounding

ceil · fix · floor · mod · rem · round

Factor

chol · eig · lu · qr · svd

Solve

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

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 sind works, line by line, in Rust.

About RunMat

RunMat is an open-source runtime that executes MATLAB-syntax code — faster, on any GPU, with no license required.

  • Simulations that took hours now take minutes. RunMat automatically optimizes your math for GPU execution on Apple, Nvidia, and AMD hardware. No code changes needed.
  • Start running code in seconds. Open the browser sandbox or download a single binary. No license server, no IT ticket, no setup.
  • A full development environment. GPU-accelerated 2D and 3D plotting, automatic versioning on every save, and a browser IDE you can share with a link.

Getting started · Benchmarks · Pricing

Try RunMat for free

Write code or describe what you want to compute. The sandbox is free, no account required.