Home Developers Capabilities Triangle solver

CVP verified calculation capability

Triangle solver Calculation Capability

Solve a Euclidean triangle from SSS, SAS, ASA, AAS, or SSA (ambiguous). Not the Pythagorean-only page.

Math · Geometry Capability ID math.geometry.triangle version 1.1.0 CVP VERIFIED CURRENT Core

Model

Law of sines

Inputs / Outputs

Canonical symbols for this capability. Agent schemas remain the contract.

SymbolQuantityUnit policyRole
alengthconsistent length unitinput / output
blengthconsistent length unitinput / output
clengthconsistent length unitinput / output
A_degscalar plane angle—input / output
B_degscalar plane angle—input / output
C_degscalar plane angle—input / output
Ascalar plane angle—input
Bscalar plane angle—input
Cscalar plane angle—input
areaareasquare of input unitoutput
perimeterlengthsame length unitoutput
solution_count——input / output
solutions——input / output
model——output

Trusted Math contract

Inspectable numeric contract for this Capability@Version. Not a rewrite of the engine.

FieldDeclaration
numeric_domainreal
exactnessfloat64
algorithmExact dyadic SSS predicates/Kahan polynomial area and atan2 angles; half-angle SAS; sine-law ASA/AAS; stable SSA quadratic roots with full ordered candidate set
valid_domainPositive normal binary64 lengths; degree angles strictly0<angle<180 with normal radian conversion; all reported positive values finite normal binary64. Strict raw decimals, max1024 characters, matching degree aliases. Complete1/2 SSA candidates; zero solution is an error.
singularity_policyINVALID_INPUT for impossible raw triangles or zero SSA candidates. NUMERIC_CONDITION for non-exact SSA height relative discriminant <=1e-8, angles rounded to endpoints, or derived rounded triangle gaps <=64*Number.EPSILON times the shortest side. Exact sin30/sin90/sin150 identities bypass height guard; raw SSS uses exact inequalities. NUMERIC_RANGE requires rescaling for nonnormal outputs.
branch_policynot applicable — real principal value only
tolerancetype: relative; value: 5e-10; note: Independent mpmath750 model values; exact status/count/array cardinality and primary candidate identity. Not an input perturbation bound.
convergencenot applicable — non-iterative
conditioningNear-flat triangles and SSA near tangent roots are input-sensitive. Exact predicates concern normalized binary64 only; decimal rounding can change the number of solutions. Two near-coincident solutions remain distinct or the case is rejected; never merged by an epsilon.
roundingieee754_round_ties_to_even
overflowieee754_nonfinite_or_coded_error
reproducibilitydeterministic algorithm + Capability@Version
independent_oraclecvp:math.geometry.triangle O2 Python mpmath750 cosine-law/Heron/inverse-sine independent fixtures
golden_vectorsEvidence golden + boundary + property (and published_reference_case when listed)

Assumptions / Validity

Declared scope for this capability. Do not use it outside this domain.

Assumptions

Example

One numerical check. The calculator page holds worked steps and FAQ.

mode=sss a=3 b=4 c=5 → C=90°

Open this example in the calculator

Trust

CVP VERIFIED · CVP protocol 1.0.0-proposed · Core assurance · all published modes. Computational verification is defined by CVP. Supplemental domain review (internal) and named expert review are defined by the Review policy and do not by themselves determine CVP conformance.

CVP
CVP VERIFIED · CVP protocol 1.0.0-proposed · Core assurance · all published modes· View Manifest · CVP overview · Specification
Verified scope
all published modes
Assurance
Core
Declared partition coverage
PASS · 6/6 declared partitions (sss, sas, asa, aas, ssa, invalid-domain)
Calculation version
1.1.0
Verification
10/10 calculation tests · 3/3 legacy golden · 2/2 legacy boundary · 5/5 legacy property
Production surface contract
5/5
Versions
Calculation 1.1.0 · CVP protocol 1.0.0-proposed · Evidence 2026-10-29.math-uuce-fields-v1
Verification revision
2026-10-29.math-uuce-fields-v1 · 3/3 property · digest 0c4df55e9ff8
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 1/1 (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.
CVP suite
168/168 golden · 2/2 CVP boundary · 75/75 invalid · 3/3 property · 4/4 metamorphic · 2/2 cross-interface · 1/1 cross-calculator · 5/5 CVP contract
Supplemental domain review
Not performed
Named expert review
Not performed
Version lock
Supported (409 VERSION_MISMATCH)
Artifact consistency
Build verified · 1.1.0 (workspace artifacts agree)
Review-policy tier
Engine tested — catalog token engine_tested; supplemental; not CVP status
This calculator CURRENT · Public schema 1.1.0 matches · Semantic contract ✓ · Production attested · Public/cache ✓ · Origin ✓

Call this capability

Human page, REST, and MCP share the same engine and calculation_version. Build verified hashes workspace artifacts only. After deploy, attest:production GETs canonical URLs twice — the public/cached view an Agent actually hits, and origin — including every /capabilities/{id} HTML page. Public Capability HTML version must match catalog before production attestation passes. Live Trust rows above fetch /.well-known/calculatorx-production-attestation.json and the output schema const. Build hashes: release integrity. That proves currently published page / engine / schema / evidence / MCP agree — not that a historical version is independently immutable. Reference Calculation Standard — Production surface contract 5/5.

curl -sS -X POST 'https://www.calculatorx.com/api/v1/calc/triangle-solver' \
  -H 'Content-Type: application/json' \
  -d '{"inputs":{"mode":"sss","a":3,"b":4,"c":5},"calculation_version":"1.1.0"}'

POST /api/v1/calc/triangle-solver. This is a POST calculate endpoint — do not GET it.

Full REST contract: REST API docs.

Tool id
triangle-solver
Engine
triangle-solver
REST
POST /api/v1/calc/triangle-solver
MCP
execute_calculation with capability_id: "math.geometry.triangle"
Agent input schema
Canonical (MCP / Agent)
Output schema
JSON Schema (latest)
Versioned input schema
Immutable pin (1.1.0)
Versioned output schema
Immutable pin (1.1.0)

References

Human-readable sources plus CVP reference evidence classes.

Sources

Reference evidence classes: O1 model · O2 expected_values · O2 numerical_behavior

Try with an agent

Inspect, then execute. Same engine as REST and the human calculator.

curl -sS -X POST 'https://www.calculatorx.com/mcp' \
  -H 'Content-Type: application/json' \
  -H 'MCP-Protocol-Version: 2026-07-28' \
  -H 'Mcp-Method: tools/call' \
  -H 'Mcp-Name: inspect_capability' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"inspect_capability","arguments":{"capability_id":"math.geometry.triangle"},"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientInfo":{"name":"calculatorx-docs-example","version":"1.0.0"},"io.modelcontextprotocol/clientCapabilities":{}}}}'

Pin calculation_version (1.1.0) when the result must stay reproducible.

Inspect the trust tier and required assurance level before execution. Full protocol notes: MCP docs.