RunMat
  • Pricing
RunMat
GitHub
GitHub
DownloadSign InTry in Browser
DesktopRuntimeServer
RunMat

Run math blazing fast

GitHubX (Twitter)LinkedIn

Company

  • About
  • Pricing
  • Contact
  • License
  • Privacy

Learn

  • Docs
  • Blog
  • Benchmarks
  • RunMat vs MATLAB Online

Get product updates and release notes from the RunMat team.

© 2026 Dystr · Made withfor the scientific community.

RunMat™ is a registered trademark of Dystr, Inc. MATLAB® is a registered trademark of The MathWorks, Inc. RunMat is not affiliated with, endorsed by, or sponsored by The MathWorks, Inc.

/
See all docs
Builtin Reference
    • cond
    • det
    • inv
    • linsolve
    • norm
    • null
    • pinv
    • rank
    • rcond
    • rref
    • vecnorm

cond — Compute matrix condition numbers in MATLAB and RunMat.

k = cond(A) returns the condition number of matrix A, measuring sensitivity of linear-system solutions to perturbations. By default, it computes the 2-norm condition number from singular-value extrema, following MATLAB semantics.

Syntax

c = cond(A)
c = cond(A, p)

Inputs

NameTypeRequiredDefaultDescription
AAnyYes—Input matrix.
pAnyNo—Norm selector (1, 2, inf, or "fro").

Returns

NameTypeDescription
cNumericScalarCondition number estimate of A.

Errors

IdentifierWhenMessage
RunMat:cond:InvalidArgumentNorm selector argument is malformed or unsupported.cond: invalid argument
RunMat:cond:InvalidInputInput shape/type cannot be processed for condition-number evaluation.cond: invalid input
RunMat:cond:InternalRuntime fails while computing cond or executing fallback/upload paths.cond: internal runtime failure

How cond works

  • cond(A) and cond(A, 2) use the singular values of A, so rectangular matrices are supported.
  • cond(A, 1), cond(A, Inf), and cond(A, 'fro') require a square, invertible matrix and use the definition norm(A, p) * norm(inv(A), p) with MATLAB's norm semantics.
  • Scalars behave like 1x1 matrices. Non-zero scalars have condition number 1, while cond(0) = Inf.
  • Empty matrices return 0, matching MATLAB's convention.
  • Singular or rank-deficient matrices return Inf.
  • Any NaN or infinite matrix element returns NaN, matching the current MATLAB nonfinite-input convention.
  • Single-precision host input returns a native single scalar; double input returns double. Resident output retains the owning provider's selected precision, including integer gather-fallback results re-uploaded through that provider.
  • Complex inputs are handled in full complex arithmetic.
  • The documented matrix domain is single or double. Typed-integer and logical matrices are independent RunMat-only extensions; integer matrices must be exactly representable as binary64 before crossing the floating linear-algebra boundary.
  • Typed-integer norm selectors are a separate RunMat-only structural extension. They are decoded exactly and accept only 1 or 2 without entering matrix arithmetic.

Does RunMat run cond on the GPU?

When the input already lives on a GPU, RunMat first looks for an acceleration provider that exposes the custom cond hook registered below. Current providers gather the matrix to host memory, reuse the shared CPU implementation, and then re-upload the scalar so downstream GPU computations preserve residency. This mirrors MATLAB semantics while keeping the user-facing API uniform.

GPU memory and residency

G = gpuArray([]);      % Empty 0x0 matrix on the GPU
k = cond(G);           % Returns 0 and keeps residency when possible
result = gather(k);

Expected output:

result = 0

Examples

Condition number of the identity matrix

A = eye(3);
k = cond(A)

Expected output:

k = 1

Diagnosing an ill-conditioned diagonal matrix

D = diag([1, 1e-8]);
k = cond(D)

Expected output:

k = 1.0e+8

Condition number of a rectangular matrix (2-norm)

A = [1 0; 0 1; 1 1];
k = cond(A, 2)

Expected output:

k = 1.7321

Using a different norm specification

A = [4 -1; 2 3];
k1 = cond(A, 1)
kInf = cond(A, Inf)

Expected output:

k1   = 2.1429
kInf = 2.1429

Complex-valued matrices

A = [1+2i 0; 3i 4-1i];
k = cond(A)

Expected output:

k = 3.0327

Empty inputs and GPU residency

G = gpuArray([]);      % Empty 0x0 matrix on the GPU
k = cond(G);           % Returns 0 and keeps residency when possible
result = gather(k)

Expected output:

result = 0

Using cond with coding agents

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

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

FAQ

What does a large condition number mean?⌄

Large condition numbers (>> 1) indicate that small perturbations in the input can produce large changes in the solution of a linear system involving A. Values close to 1 indicate a well- conditioned matrix.

Why does cond return Inf for singular matrices?⌄

Singular matrices have at least one zero singular value (or an undefined inverse), so the condition number is mathematically infinite. RunMat mirrors MATLAB and returns Inf in these cases.

Does cond support rectangular matrices?⌄

Yes for the default 2-norm: cond(A) uses singular values and accepts any two-dimensional matrix. Norms 1, Inf, and 'fro' require a square, invertible matrix because they are defined using the matrix inverse.

How does cond handle empty matrices?⌄

All norm choices return 0 for empty matrices (0x0), matching MATLAB's behaviour.

Will calling cond move my data off the GPU?⌄

Only when the owning provider lacks a dedicated implementation. RunMat then gathers, computes on the host, and uploads the scalar through that same provider; an upload failure is reported rather than silently changing residency.

Related Linalg functions

Solve

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

Structure

bandwidth · isdiag · ishermitian · issymmetric · istril · istriu · symrcm

Factor

chol · decomposition · eig · eigs · lu · qr · svd

Ops

cross · ctranspose · dot · mldivide · mpower · mrdivide · mtimes · pagemtimes · pagetranspose · trace · transpose

Open-source implementation

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

  • View the source for cond in Rust on GitHub
  • Learn how the RunMat runtime works
  • Found a bug? Open an issue with a minimal reproduction.

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.

Download RunMatOpen Sandbox
On this page
  • Syntax
  • Inputs
  • Returns
  • Errors
  • How cond works
  • Does RunMat run cond on the GPU?
  • GPU memory and residency
  • Examples
  • Condition number of the identity matrix
  • Diagnosing an ill-conditioned diagonal matrix
  • Condition number of a rectangular matrix (2-norm)
  • Using a different norm specification
  • Complex-valued matrices
  • Empty inputs and GPU residency
  • Using cond with coding agents
  • FAQ
  • Related Linalg functions
  • Solve
  • Structure
  • Factor
  • Ops
  • Open-source implementation
  • About RunMat