Skip to content

marksoliman3/mixed-precision-eig

Repository files navigation

Mixed-Precision Iterative Refinement for Symmetric Eigenpair Computation

MATLAB implementation and supporting materials for the paper

Mixed-Precision Iterative Refinement for Symmetric Eigenpair Computation via Bordered Newton Iteration Mark Soliman, UC Davis Department of Mathematics, 2026.

The paper PDF is in this repository: soliman_mp_eig_newton.pdf.

Summary

This work characterizes the convergence behavior of mixed-precision bordered Newton iteration on the symmetric eigenvalue problem. The inner saddle-point solve runs in FP32 while the residual and update stay in FP64. On a battery of symmetric matrices spanning condition numbers from $10^{1}$ to $10^{13}$, the mixed-precision method matches FP64 accuracy across nine orders of magnitude in $\kappa(A)$ and fails only at $\kappa(A) \approx 10^{13}$, roughly six orders of magnitude past the naive textbook prediction $\kappa(A) \cdot u_{32} \lesssim 1$. The gap is explained by the Newton contraction noted by Kelley (2022) combined with the Bauer-Fike conditioning of symmetric eigenvalues.

The end-to-end pipeline — an FP32 eigendecomposition oracle followed by mixed-precision Newton refinement — delivers all twenty eigenpairs of lehmer(20) at FP64 accuracy using only FP32 arithmetic for the cubic-cost linear algebra.

Repository contents

File Purpose
newton_eig.m FP64 baseline bordered Newton iteration
newton_eig_mp.m Mixed-precision (FP32 inner solve, FP64 residual/update) variant
run_sweep.m Matrix battery sweep across lehmer(n) and hilb(n)
make_figures.m Generates figure1.pdf and figure2.pdf
test_baseline.m Sanity check on the FP64 implementation
test_mp_compare.m Compares FP32 inner solve to FP64 baseline
test_end_to_end.m Runs the full FP32-oracle plus mixed-precision-refinement pipeline
references.bib Bibliography (BibTeX)
soliman_mp_eig_newton.pdf Paper PDF

Requirements

  • MATLAB R2025a or newer
  • No additional toolboxes required for the core algorithms
  • make_figures.m uses exportgraphics, available in R2020a and later

Reproducing the results

From the repository root in MATLAB:

% Verify the baseline
test_baseline

% Verify mixed-precision against FP64 on a single matrix
test_mp_compare

% Run the matrix battery sweep (Table I in the paper)
run_sweep

% Run the end-to-end pipeline demonstration on lehmer(20)
test_end_to_end

% Regenerate the figures
make_figures

The matrix battery sweep is the slowest of these; expect a few seconds to a minute depending on hardware. The hilb(10) case dominates the runtime because mixed-precision requires many more iterations there.

Citation

If you use this code or refer to the work, please cite the paper:

@misc{soliman2026mpeig,
  author = {Mark Soliman},
  title  = {Mixed-Precision Iterative Refinement for Symmetric Eigenpair Computation via Bordered Newton Iteration},
  year   = {2026},
  note   = {Davis Math Lab, UC Davis}
}

Acknowledgments

This work was conducted as part of the Davis Math Lab (DML) Spring 2026 research program under the supervision of Prof. Zhaojun Bai.

License

MIT. See LICENSE.

About

Mixed-precision iterative refinement for the symmetric eigenvalue problem via bordered Newton iteration. MATLAB implementation, experiments, and paper.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages