Alphabeta Math
AlgorithmAlgorithm: Literature-sourcedProof: Not applicablePipeline-generated
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.

Finite budget implicit shifted QR for bidiagonal singular values

Definition

Input the original A∈Fm×n, the successful output record of Householder bidiagonalization and its finite precision status for C=A if m≥n and C=A∗ otherwise, a deflation tolerance τ≥0, and a finite nonnegative integer sweep budget N. The reduction record supplies the upper bidiagonal work matrix B0, dense accumulators UB,VB, and ordered stored local transformation data. Initialize B=B0, the sweep accumulators UΣ,VΣ to identities of order p=min⁡(m,n), empty ordered left/right transformation lists, an empty deflation record, a pass counter t=0, and a sweep counter s=0. Write the diagonal as di and superdiagonal as ei, and set e0=0.

At the start of each pass, set t←t+1, set ei to zero and append (t,i,eiold) to the deflation record whenever ∣ei∣≤τ(∣di∣+∣di+1∣). The corresponding additive matrix change has entry −eiold at (i,i+1) and zero elsewhere. Record any later non-target sparsity cleanup the same way with its row, column, and old value. The zero entries split the active blocks. If every active block has size one, stop with converged. Otherwise process the active blocks in increasing order of ℓ, skipping singleton blocks. Before each block sweep, if s=N, stop with budget-exhausted; otherwise form only the tridiagonal entries of T=B∗B on that block: Tii=∣di∣2+∣ei−1∣2 and Ti,i+1=di‾ei. Choose μ to be the eigenvalue of the trailing Hermitian block [Tr−1,r−1Tr−1,rTr,r−1Trr] closest to Trr, resolving a tie by the smaller eigenvalue. If the leading pivot dℓ is zero or has magnitude at most τmax⁡(∣eℓ−1∣,∣eℓ∣), use the zero-shift branch μ=0 and choose the initial right Givens factor Gℓ so that (dℓ,eℓ)Gℓ=(ρ,0), avoiding division by the small or zero diagonal.

Finite-precision shift and comparison schedule. The preceding exact-arithmetic formulas retain their exact meaning. For finite precision use the scalar order, six-real-operation complex product, scaled real-component norm, and first-failing-primitive range policy of Scaled real and complex Householder and Givens update arithmetic also for the following stages. All assignments below are stored; do not fuse operations. Comparisons, maxima, copies, conjugations, sign changes, and real absolute values are exact operations on stored finite values. Evaluate each complex magnitude by that helper's scaled two-component norm, with zero magnitude returned exactly as zero. At each pass visit deflation indices increasingly; at index i evaluate ai=∣ei∣, bi=∣di∣, ci=∣di+1∣ in that order, then hi=fl⁡(bi+ci) and ki=fl⁡(τhi), and deflate exactly when ai≤ki.

For each nonsingleton block, form its Gram diagonal entries in increasing index order, followed by its upper off-diagonal entries in increasing index order. To form Tii, square ℜdi,ℑdi,ℜei−1,ℑei−1 separately with rounding, add the first two rounded squares, add the last two, and add these two rounded sums, rounding each addition. Form Ti,i+1 by the helper's complex product for di‾ei and copy its conjugate to the lower off-diagonal. No other Gram entries are formed. Write the stored trailing block as [azz‾c]. In this order compute h=fl⁡(fl⁡(a+c)/2), δ=fl⁡(fl⁡(a−c)/2), and k by the helper's scaled norm on the ordered four-real-component list (δ,0,ℜz,ℑz), corresponding to the complex vector (δ,z), returning exact zero for the zero list. Then compute μ−=fl⁡(h−k), μ+=fl⁡(h+k), q−=∣fl⁡(μ−−c)∣, and q+=∣fl⁡(μ+−c)∣. Choose μ=μ− if q−≤q+ and μ=μ+ otherwise. In exact arithmetic these are the two Hermitian eigenvalues and the stated nearest-eigenvalue/tie rule; in finite precision they specify the shift estimates without asserting their accuracy.

Next evaluate ∣dℓ∣, ∣eℓ−1∣, and ∣eℓ∣ in that order and form w=fl⁡(τmax⁡(∣eℓ−1∣,∣eℓ∣)). Use the zero-shift branch exactly when dℓ=0 or ∣dℓ∣≤w. In the ordinary branch form the first shift-vector entry as fl⁡(Tℓℓ−μ) and use the stored lower Gram entry as its second entry. If any of these primitives fails the helper's normal-range/finite-value requirements, return the existing range-failure record immediately, before any sweep transformation for that block. This rule permits range failure in shift formation and makes no unconditional progress claim. For p=0 or only singleton active blocks none of the block stages is requested.

In the ordinary branch choose the first right Givens factor Gℓ so that Gℓ∗(Tℓℓ−μ,Tℓ+1,ℓ)T=(ρ,0)T, where Tℓ+1,ℓ=eℓ‾dℓ. In either branch, apply B←BGℓ, update columns ℓ,ℓ+1 of VΣ by right multiplication by this same stored rotation, and append its exact unitary representative to the right list. For j=ℓ,…,r−1, choose a left Givens factor Hj so that Hj∗(Bj,j,Bj+1,j)T=(ρ,0)T; apply it to rows j,j+1, update columns j,j+1 of UΣ by right multiplication by this same stored rotation, and append its exact unitary representative to the left list. If j<r−1, choose a right Givens factor Gj+1 so that (Bj,j+1,Bj,j+2)Gj+1=(ρ,0); apply it to columns j+1,j+2, update the corresponding columns of VΣ by right multiplication by this same stored rotation, and append its exact unitary representative to the right list. Continue until the bulge reaches the active block endpoint. A zero annihilation vector uses the identity rotation. In finite precision each Givens formation/update uses Scaled real and complex Householder and Givens update arithmetic, conjugate-transposed as needed for the stated left/right orientation; accumulator multiplications use the same stored local data but omit all target-zero writes. The dense accumulator multiplications follow the operationwise arithmetic model, while the ordered lists retain the exact unitary representatives used in analysis. Target zero writes to B are included in their local error bounds. The initial shift-vector rotation does not zero an unrelated entry of B. Each Givens factor is chosen using Real Givens rotations and complex Givens transformations and its annihilation guarantee in Householder reflectors and Givens transformations are unitary and can annihilate prescribed entries.

After each processed block, increment s by one. Once all current active blocks have been processed, start a new pass. If any operation, norm or pivot is invalid or nonfinite, or a nonzero exact intermediate is outside the normal range, return range-failure with the partial B, accumulators, transformation lists, deflation record, and available residual reports. On budget-exhausted, return the current B, accumulators, transformation lists, deflation record, triplet residuals, and orthogonality residuals. On converged, set Bfinal=B and return it with both dense accumulators, both transformation lists, the deflation record, triplet/orthogonality residuals, and its tall embedding B‾final=[Bfinal0M−p,p].

For every exit other than range-failure, let Bout be the current work matrix, and let di=(Bout)ii. Obtain each candidate value as σ^i=∣di∣ by the scaled two-component modulus evaluation (real absolute value is exact). On converged, the active-block condition makes Bout=Bfinal diagonal; after budget-exhausted, the diagonal values are estimates only and carry no accuracy claim.

Let WB=diag⁡(UΣ,IM−p). In exact arithmetic the tall-orientation accumulated factors are UC=UBWB and VC=VBVΣ. In finite precision form each dense product by row-by-column multiplication, with six-real-operation complex products and sequential componentwise rounded additions under the operationwise model; return range-failure if any required intermediate is invalid, nonfinite, or outside the normal range. Their exact theoretical factors are the products represented by the ordered local transformation lists together with the bidiagonal-reduction lists. If m≥n, set U^=UC and V^=VC; for each nonzero di, multiply column i of U^ by di/∣di∣ in exact arithmetic, using componentwise division by the successful scaled modulus readout in finite precision. If m<n, set U^=VC and V^=UC; in this wide orientation multiply column i of V^ by di/∣di∣ instead. Sort the candidate values in nonincreasing order, breaking ties by their original diagonal index, and permute the corresponding columns of the returned triplet vectors in the same way; leave Bout and the transformation lists in their algorithmic order. For every candidate triplet (σ^i,u^i,v^i), report ∥Av^i−σ^iu^i∥2 and ∥A∗u^i−σ^iv^i∥2. Also report ∥U^∗U^−I∥F and ∥V^∗V^−I∥F. The reports expose finite-budget and rounding behavior; they do not certify convergence by themselves. Matrix residuals use the Frobenius norm defined in The Frobenius norm ∥A∥F=(∑i,j∣aij∣2)1/2 on real or complex matrices. Any additional sparsity cleanup is recorded separately in the deflation record with its discarded-entry perturbation.

Depends on

Used by

Dependency tree · two levels

14 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