Alphabeta Math
AlgorithmAlgorithm: Literature-sourcedProof: Not applicablePipeline-generatedjudge pass (gpt-6-luna)
How statement and proof provenance work

The first chip identifies the source of the statement or construction; the second identifies the source of its local proof or verification.

  • Literature-sourced: the exact statement appears in a cited source; only wording and notation differ.
  • AI-adapted: a semantically identical restatement of literature-sourced material, modulo indexing, notation, and boundary cases adopted by the library.
  • AI-generated: a genuinely novel statement formulated by AI, with no source for the claim itself.

These labels describe origin, not correctness: citations and verification chips remain separate evidence.

de Boor coefficient evaluation on a specified knot span

Definition

Use zero-based indices for this procedure: write the clamped knot vector from B-spline spaces and knot conventions as t0≤⋯≤tn+p, where ti=ξi+1, with n≥p+1, and write the real degree-p coefficients as c0,…,cn−1. The input includes p∈N0, a nonempty span index k with p≤k≤n−1 and tk<tk+1, a real query, and the p+1 active coefficients ck−p,…,ck. The query is either x∈[tk,tk+1) or, for the left limit at the right endpoint b, x=b with the last nonempty span supplied. At an interior knot, the half-open convention selects the span on its right. In exact mode the knots, query, and coefficients are real numbers. In floating-point mode the knots, query, and active coefficients are finite stored real numbers in the selected format; conversion into that format is outside this procedure.

The arithmetic mode is either exact real arithmetic or the operationwise floating-point model of Operationwise real and complex floating point arithmetic with rounded square roots and fused multiply-add. The output is success(value), invalid-input, or, in floating-point mode, range-failure(operation, r, j). The span search is supplied by the caller and is not part of the evaluation loop. Invalid indices, coefficient counts, span or query conditions, or floating-point input formats return invalid-input.

  1. If the indices, coefficient count, span, or query do not satisfy the input conditions, return invalid-input.
  2. If p=0, return ck by copy.
  3. Initialize dj(0)=ck−p+j for 0≤j≤p.
  4. For r=1,…,p, and then j=p,p−1,…,r, put L=k−p+j and U=k+1+j−r. In exact mode set α=(x−tL)/(tU−tL) and dj(r)=(1−α)dj−1(r−1)+αdj(r−1). In floating-point mode first compute v=fl⁡(x−tL). On failure return range-failure for the numerator subtraction. If v=0, copy dj−1(r−1) to dj(r) and skip the denominator subtraction, division, complement subtraction, products, and addition. Otherwise compute w=fl⁡(tU−tL) and then α^=fl⁡(v/w); on the first failure return its operation and indices. Next compute β^=fl⁡(1−α^), followed by a=fl⁡(β^dj−1(r−1)), b=fl⁡(α^dj(r−1)), and dj(r)=fl⁡(a+b), in that order, returning the first range-failure. Keep the old dj(r−1) until the update is complete.
  5. Return success(d_p^{(p)}).

For every loop entry, L≤k<U, so tL≤tk<tk+1≤tU and the denominator is positive. The exact weight therefore lies in [0,1]. When a span endpoint is requested as a one-sided value, the same recurrence is evaluated at that endpoint with the specified half-open or left-limit convention.

Depends on

Used by

Dependency tree · two levels

3 results within two dependency steps of this one, each drawn at its shortest distance from it. An arrow runs from a result to what uses it, so the chart reads left to right and ends at this result, which carries a heavier outline. Every node is a link to that result. Click elsewhere on the chart to enlarge it.

Sources