RunMat
GitHub

cosd — Cosine of angles expressed in degrees with MATLAB-exact values at canonical multiples.

y = cosd(x) evaluates the cosine of each angle in x, interpreting the values in degrees rather than radians. The implementation reduces the angle modulo 360 and special-cases 0, 60, 90, 120, 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 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]

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 · 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 cosd 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.