RunMat
GitHub

cosd — Compute cosine of degree-valued inputs in MATLAB and RunMat.

y = cosd(x) evaluates cosine using degree input rather than radians. Canonical multiples are handled to preserve exact MATLAB/RunMat values (for example 0, ±0.5, and ±1) where applicable.

Syntax

Y = cosd(X)

Inputs

NameTypeRequiredDefaultDescription
XAnyYesInput scalar, array, logical array, complex value, or gpuArray.

Returns

NameTypeDescription
YAnyElement-wise cosine result with degree input semantics.

Errors

IdentifierWhenMessage
RunMat:cosd:InvalidInputInput cannot be interpreted as supported numeric/logical/complex data.cosd: invalid input
RunMat:cosd:InternalInternal gather/conversion/allocation flow failed.cosd: internal error

How cosd 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 90 and exactly ±1 at multiples of 180.
  • Returns exactly ±0.5 at multiples of 60 and 120.
  • Complex inputs delegate to the analytic extension of cos 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

Cosine of a canonical degree angle

y = cosd(60)

Expected output:

y = 0.5

Cosine of multiples of 90 returns exactly zero

y = cosd([90 270])

Expected output:

y = [0 0]

Cosine of a vector of common angles

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

Expected output:

y = [1 0.8660 0.7071 0.5 0]

Using cosd with coding agents

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

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

FAQ

Why does cosd(90) return exactly zero?

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

Is cosd(x) equivalent to cos(x*pi/180)?

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

Does cosd 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 · cosh · deg2rad · rad2deg · sin · sind · 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 · butter · 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 · 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 cosd 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.