HomeCalculatorsMathVectorsCross Product Calculator
Math calculator

Cross Product Calculator

Calculate vector cross products in 2D or 3D. Explore worked steps, numerical limits and verified results. Share inputs or export the complete calculation.

Instant result
Result
—

Enter values to calculate.

Inputs—
Mode—
Formula—
Trust summary CVP VERIFIED · CVP protocol 1.0.0-proposed · Core assurance · all published modes
Input interpretation
Enter values to calculate.
Result
—
Verified scope
all published modes
Assurance
Core
Declared partition coverage
PASS · 10/10 declared partitions (magnitude, normalize, add, sub, dot, cross, angle, projection, triple, invalid-domain) · Matrix
Known limitations
  • Core CVP does not include live graph, viewport, or pointer interaction.
Model
The vector (cross) product of two Euclidean vectors in R³.
Scope
Euclidean R³
Verification
Engine tested · Source checked · v1.8.0 · CVP VERIFIED · CVP protocol 1.0.0-proposed · Core assurance · all published modes· View Manifest · CVP overview · Specification
Versions
Calculation 1.8.0 · CVP protocol 1.0.0-proposed · Evidence 2026-10-29.math-uuce-fields-v1
Verification revision
2026-10-29.math-uuce-fields-v1 · 7/7 property · digest fcf6780d8c02
Legacy regression
11/11 tests · Production surface contract 6/6
Trust layers
Verification VERIFIED · Production CURRENT · Overall CVP state: VERIFIED under CVP 1.0.0-proposed
Reference
O1 model · O2 expected_values · O2 numerical_behavior
Interfaces
PASS · UI (SSR) / REST / MCP — ui-ssr is query-result HTML, not a live browser session. Error-path engine·REST·MCP 2/2 (status, code, calculation_version). SSR compared on URL-canonical requested calculations; empty query is idle (not an error) and JSON-typed object/array inputs are REST/MCP-only.
Supplemental domain review
Not performed
Named expert review
Not performed
CVP suite
387/387 golden · 4/4 CVP boundary · 28/28 invalid · 7/7 property · 4/4 metamorphic · 6/6 cross-interface · 2/2 cross-calculator · 6/6 CVP contract · Manifest
Cross-product property checks
i × j = k · Orthogonal to u · Orthogonal to v · Anti-commutativity · Self-cross = 0
Evidence
3 legacy golden · 2 legacy boundary · legacy regression suite · 387/387 oracle-backed golden · 28/28 invalid · Artifact integrity PASS
This calculator CURRENT · Public schema 1.8.0 matches · Semantic contract ✓ · Production attested · Public/cache ✓ · Origin ✓
Semantic contract
PASS
Full verification

Manifest identity, reference classes, interfaces, suite, and production records.

Formulas

Core equations used by this calculator.

Cross productu × v = (uy vz − uz vy, uz vx − ux vz, ux vy − uy vx)
2-D special case(ux, uy, 0) × (vx, vy, 0) = (0, 0, ux vy − uy vx)
iSame engine as /vector. Dot product is /dot-product. The scalar triple product u·(v×w) stays on the hub.

How to use

1

Enter u and v

uz and vz default to 0. i × j = (0, 0, 1).

2

Read the vector

The result is perpendicular to both inputs. Its magnitude is the parallelogram area; half of that is the triangle area. Parallel vectors give the zero vector.

Example calculations

Common configurations with formula and result.

ϟ

i × j

u = (1, 0, 0), v = (0, 1, 0)

k
(0, 0, 1)
ϟ

2-D

u = (3, 4, 0), v = (1, 0, 0)

k(0−4)
(0, 0, −4)
ϟ

Parallel vectors

u = (1, 2, 3), v = (2, 4, 6); parallel vectors produce the zero vector

u × (2u)
(0, 0, 0)
ϟ

Three-dimensional vectors

u = (1, 2, 3), v = (4, 5, 6); all three components are calculated

(2·6−3·5, 3·4−1·6, 1·5−2·4)
(−3, 6, −3)

Cross Product calculator specification

Version 1.8.0 · Engine tested

Calculation status

Review policy · Evidence

Definition
u × v = (uy vz − uz vy, uz vx − ux vz, ux vy − uy vx). This page is mode=cross on math.vector. i × j = k. 2-D inputs use uz = vz = 0 and return a k-component. Not a second engine. Not CAS.
What it calculates
The vector (cross) product of two Euclidean vectors in R³.
Inputs
  • ux
  • uy
  • uz?
  • vx
  • vy
  • vz?
Outputs
  • cx
  • cy
  • cz
Formula
u × v = (uy vz − uz vy, uz vx − ux vz, ux vy − uy vx)
Assumptions
  • Euclidean R³
  • Absent z defaults to 0; explicit empty/null is invalid
  • Right-handed
  • Not a matrix
  • Not CAS
Units
  • Product of input units [u][v]; equal length units give length²
Boundary conditions
  • missing ux, uy, vx, or vy → MISSING_REQUIRED_INPUT
  • non-finite input (NaN or Infinity) → INVALID_NUMBER
  • nonfinite or nonzero subnormal input/output components → NUMERIC_RANGE; rescale
  • Finite scientific notation and signed zero are accepted; nonzero input/output components must be normal binary64. Small normal values are retained.
  • unknown mode → INVALID_MODE
Example
i × j → (0, 0, 1)
Validation cases

2 published on this page · 11/11 tests · Production surface contract 6/6 · View evidence

  • ux=1 uy=0 uz=0 vx=0 vy=1 vz=0 → cx=0 cy=0 cz=1
  • ux=3 uy=4 vx=1 vy=0 → cz=-4
Sources
  • ISO 80000-2:2019 Quantities and units — Mathematics
    Supports: Mathematical symbols and notation. This standard is not numerical verification or an endorsement of this implementation.
  • Gilbert Strang, Calculus — Chapter 11: Vectors and Matrices (MIT OpenCourseWare) — §§11.1–11.3 Vectors, Dot Products, Projections and Cross Products
    Supports: Vector components and magnitudes, dot product and angle/projection relations, and cross product/determinant orientation and area. Projecting a point displacement onto the unit normal to Ax+By+C=0 gives distance |Ax₀+By₀+C|/sqrt(A²+B²); this planar expression is derived from the projection formula. Mathematical reference only; not implementation validation or an endorsement of CalculatorX.
Calculation version
1.8.0

Background

Interpretation and common distinctions.

What does this cross product calculator compute?

u × v = (uy vz − uz vy, uz vx − ux vz, ux vy − uy vx).

The published formula or method is u × v = (uy vz − uz vy, uz vx − ux vz, ux vy − uy vx). The following references support the stated mathematics or method:

  • Gilbert Strang, Calculus — Chapter 11: Vectors and Matrices (MIT OpenCourseWare): Vector components and magnitudes, dot product and angle/projection relations, and cross product/determinant orientation and area. Projecting a point displacement onto the unit normal to Ax+By+C=0 gives distance |Ax₀+By₀+C|/sqrt(A²+B²); this planar expression is derived from the projection formula. Mathematical reference only; not implementation validation or an endorsement of CalculatorX.

Which inputs and limits should you check?

Follow the input domain, units, branch or solve direction, and rounding policy in the specification. Preserve exact outputs and any additional candidates or warnings.

The worked example uses u = (1, 0, 0), v = (0, 1, 0) with k. Compare it with the Example calculations and the complete result for the same inputs.

How can you verify and cite this result?

CalculatorX is responsible for this page. The mathematical references above explain the model; implementation checks and their scope are documented separately in the math.vector v1.8.0 Evidence and capability contract. Read the displayed verification and production state together with the specification's numerical limits.

Use the clean calculator URL to cite the tool. A shared input link identifies a particular calculation. Content updates, numerical verification, and domain reviews have separate dates and scopes.

Numerical range, precision and figures

Inputs accept finite decimals, including scientific notation. Required x/y components cannot be empty. z defaults to zero only when absent from a request; an explicitly empty z is invalid. Nonzero inputs and every reported numeric field must be normal binary64 (magnitude at least 2⁻¹⁰²²). Overflow or a nonzero result below this range returns NUMERIC_RANGE; rescale the vectors. Decimal text which rounds to zero returns NUMERIC_UNDERFLOW instead of silently becoming zero.

Addition, subtraction, dot, cross and scalar triple products use exact dyadic intermediates followed by binary64 rounding. Projection uses exact intermediate ratios. Magnitude uses scaled hypot; normalization and the atan2 cross/dot angle are approximate. Results retain binary64 precision. Reference comparisons use relative tolerance 2×10⁻¹² (or 8 ULP), with absolute 2×10⁻¹⁰ degrees for ordinary angles and 2×10⁻¹³ for cosine. Cancellation can make relative component error sensitive; directions are undefined at zero and sensitive near zero. This is bounded vector arithmetic, not a general arbitrary-precision or symbolic system.

Units must be consistent across components: magnitude, sum, difference and projection retain component units; dot/cross products square them; the scalar triple product cubes them. Normalized components and projection scale are dimensionless. Angles include degrees, radians and cosine. Zero u can be projected onto nonzero v; normalizing zero, finding its direction angle, or projecting onto zero v is invalid.

Arrow figures show only the xy plane when every relevant z is exactly zero; cross/triple and 3D results use complete text and worked results. Arrows share a linear scale. Nonzero arrows smaller than a pixel receive a “below plot resolution” label instead of a false zero marker.

Interactive calculations run locally. Shared links contain the entered components and may be server-rendered. Exported JSON/CSV preserves the entered inputs, full numeric result and calculation version. Treat shared links and downloaded files as copies of your data.

Frequently asked questions

Key distinctions behind the calculation.

Is this a second vector engine?

No. It is mode=cross on math.vector, the same engine as /calc/math/vector.

Does 2-D cross return a scalar?

The engine always returns a 3-vector. In the plane uz = vz = 0, so only the z-component is nonzero.

Where does this run?

Locally in the browser by default. REST and MCP call the same vector engine.

What does the cross-product magnitude mean?

|u × v| is the area of the parallelogram spanned by u and v. The corresponding triangle area is |u × v| / 2. The direction follows the right-hand rule.