Home Developers Evidence math.polynomial.roots

Public evidence

math.polynomial.roots

Machine-checked verification for calculation version 1.2.1 · tier engine_tested

Verification

21/21 calculation tests · Production surface contract 3/3

  • Golden tests 7 / 7
  • Boundary tests 6 / 6
  • Property tests 8 / 8
  • Production surface contract 3 / 3
  • }
  • Engine tested Yes
  • Source checked Yes
  • Artifact integrity PASS
  • Production attestation Embedded snapshot: Capability production binding: STALE · Last attested schema matched 1.2.1 snapshot / local build · Semantic contract ✓ · Last attestation PASS · Evidence changed after the last successful production attestation. Re-attestation required. · Public/cache ✓ · Origin ✓
  • Semantic contract PASS
  • Evidence attested at 2026-09-21T18:06:22.700Z
  • Last production check 2026-09-21T18:06:22.700Z
  • Public / cache PASS
  • Origin PASS
  • Supplemental domain review Not performed
  • Named expert review Not performed
  • release artifacts aligned PASS
  • schema output required declared PASS
  • rest success payload validates schema PASS

Fingerprint sha256:e7d5591f24a81e1e38ac20bb2b3a4f7bc768e73ac2cb15c9c08d3312dde73ad3

Input schema sha256:d849b30057a82b92b64c26c65e1f5efa9938b9a7fc50131062b903fb6a3ec374 · Output schema sha256:351b09e4e3527bd62b764e85d5d448fa573e567e282f4b1b088da22559889af7 · Build-time SHA-256 digests prove published artifacts agree with each other (release_integrity.scope=workspace). Production attestation GETs canonical URLs twice (public/cached view and origin), including Capability HTML, via npm run attest:production --write (published at /.well-known/calculatorx-production-attestation.json) and fails if the public Capability page advertises a different calculation_version. This is artifact consistency, not an independent immutable release log.

Build & scope

Engine identity and declared limitations.

Tool
polynomial-roots
Engine
polynomial-roots
Engine build
2026-09-21
Evidence core
2026-09-21T15:56:45.653Z
Rendered
2026-09-21T16:00:36.138Z
Last reviewed

Assumptions

  • The Result Card includes an engine-linked figure of p (markers are published real roots on y=0; complex roots stay off the real plane). Same Horner nesting as REST/MCP. Curve samples are not a REST field.
  • Real coefficients
  • Leading coefficient nonzero
  • Degree ≤ 8
  • Not a second quadratic page
  • Not Ferrari quartic
  • Not CAS factoring

Limitations

  • Not /calc/math/quadratic (discriminant / vertex / parabola)
  • Not Ferrari quartic closed form
  • Not a single numerical root
  • Not symbolic CAS factoring
  • Not polynomial expansion
  • Degree ≤ 8
  • Leading coefficient must be nonzero
  • method=evaluate requires x

Sources

Standards and references supporting this tool specification. Methods are listed separately — they are algorithms, not bibliographic sources.

Published checks

Golden, boundary, and property cases included in this evidence build.

IDKindStatusDetail
golden-lineargoldenpassExpected n=1 · degree=1 · solver=linear · Actual n=1 · method=all_roots · solver=linear · degree=1 · residual_max=0 · polynomial=2x − 2 · formula=x = −c0/c1
golden-quadraticgoldenpassExpected n=2 · degree=2 · solver=quadratic · Actual n=2 · method=all_roots · solver=quadratic · degree=2 · residual_max=0 · polynomial=x² − 6x + 8 · formula=x = (−b ± √(b² − 4ac)) / (2a)
golden-cubic-123goldenpassExpected n=3 · degree=3 · solver=cardano · cubic_case=three_real · Actual n=3 · delta=-0.037037037037 · method=all_roots · solver=cardano · degree=3 · residual_max=0 · polynomial=x³ − 6x² + 11x − 6 · cubic_case=three_real
golden-cardano-abcdgoldenpassExpected n=3 · degree=3 · solver=cardano · cubic_case=three_real · Actual n=3 · delta=-0.037037037037 · method=cardano · solver=cardano · degree=3 · residual_max=0 · polynomial=x³ − 6x² + 11x − 6 · cubic_case=three_real
golden-cardano-one-realgoldenpassExpected n=3 · degree=3 · solver=cardano · cubic_case=one_real · Actual n=3 · delta=0.25 · method=cardano · solver=cardano · degree=3 · residual_max=1.31607134029e-12 · polynomial=x³ − 1 · cubic_case=one_real
boundary-leading-zeroboundarypassExpected INVALID_INPUT · Actual INVALID_INPUT
boundary-degree-zeroboundarypassExpected INVALID_INPUT · Actual INVALID_INPUT
boundary-quadratic-methodboundarypassExpected INVALID_MODE · Actual INVALID_MODE
boundary-casboundarypassExpected INVALID_MODE · Actual INVALID_MODE
golden-horner-17goldenpassExpected value=17 · solver=horner · n_mul=2 · Actual value=17 · method=evaluate · solver=horner · degree=2 · x=2 · n_mul=2 · polynomial=3x² + 2x + 1 · formula=p(x) = ((cₙ x + cₙ₋₁) x + … ) x + c₀
golden-horner-rootgoldenpassExpected value=0 · solver=horner · Actual value=0 · method=evaluate · solver=horner · degree=3 · x=2 · n_mul=3 · polynomial=x³ − 6x² + 11x − 6 · formula=p(x) = ((cₙ x + cₙ₋₁) x + … ) x + c₀
boundary-evaluate-missing-xboundarypassExpected MISSING_REQUIRED_INPUT · Actual MISSING_REQUIRED_INPUT
boundary-factorboundarypassExpected INVALID_MODE · Actual INVALID_MODE
property-poly-linearpropertypass2x−2=0 → 1
property-poly-quadraticpropertypassx²−6x+8
property-poly-cubicpropertypass(x−1)(x−2)(x−3)
property-poly-ipropertypassx²+1 → ±i
property-poly-vietapropertypassVieta sum
property-poly-cardanopropertypassx³−1 Cardano
property-poly-hornerpropertypass1+2x+3x² at 2
property-poly-horner-naivepropertypassHorner matches monomial sum