.. _sec-bibliography:

============
Bibliography
============

Background Reading
==================

For a short but informative introduction to the subject we recommend
the booklet by [Madsen]_ . For a general introduction to non-linear
optimization we recommend [NocedalWright]_. [Bjorck]_ remains the
seminal reference on least squares problems. [TrefethenBau]_ is our
favorite text on introductory numerical linear algebra. [Triggs]_
provides a thorough coverage of the bundle adjustment problem.


References
==========

.. [Agarwal] S. Agarwal, N. Snavely, S. M. Seitz and R. Szeliski,
   **Bundle Adjustment in the Large**, *Proceedings of the European
   Conference on Computer Vision*, pp. 29--42, 2010.

.. [Bjorck] A. Bjorck, **Numerical Methods for Least Squares
   Problems**, SIAM, 1996

.. [Brown] D. C. Brown, **A solution to the general problem of
   multiple station analytical stereo triangulation**,  Technical
   Report 43, Patrick Airforce Base, Florida, 1958.

.. [ByrdNocedal] R. H. Byrd, J. Nocedal, R. B. Schanbel,
   **Representations of Quasi-Newton Matrices and their use in Limited
   Memory Methods**, *Mathematical Programming* 63(4):129-156, 1994.

.. [ByrdSchnabel] R.H. Byrd, R.B. Schnabel, and G.A. Shultz, **Approximate
   solution of the trust region problem by minimization over
   two dimensional subspaces**, *Mathematical programming*,
   40(1):247-263, 1988.

.. [Chen] Y. Chen, T. A. Davis, W. W. Hager, and
   S. Rajamanickam, **Algorithm 887: CHOLMOD, Supernodal Sparse
   Cholesky Factorization and Update/Downdate**, *TOMS*, 35(3), 2008.

.. [Conn] A.R. Conn, N.I.M. Gould, and P.L. Toint, **Trust region
   methods**, *Society for Industrial Mathematics*, 2000.

.. [Davis] Timothy A. Davis, **Direct methods for Sparse Linear
   Systems**, *SIAM*, 2006.

.. [Dellaert] F. Dellaert, J. Carlson, V. Ila, K. Ni and C. E. Thorpe,
   **Subgraph-preconditioned conjugate gradients for large scale SLAM**,
   *International Conference on Intelligent Robots and Systems*, 2010.

.. [GolubPereyra] G.H. Golub and V. Pereyra, **The differentiation of
   pseudo-inverses and nonlinear least squares problems whose
   variables separate**, *SIAM Journal on numerical analysis*,
   10(2):413-432, 1973.

.. [GouldScott] N. Gould and J. Scott, **The State-of-the-Art of
   Preconditioners for Sparse Linear Least-Squares Problems**,
   *ACM Trans. Math. Softw.*, 43(4), 2017.

.. [HartleyZisserman] R.I. Hartley and A. Zisserman, **Multiview
   Geometry in Computer Vision**, Cambridge University Press, 2004.

.. [Hertzberg] C. Hertzberg, R. Wagner, U. Frese and L. Schroder,
   **Integrating Generic Sensor Fusion Algorithms with Sound State
   Representations through Encapsulation of Manifolds**, *Information
   Fusion*, 14(1):57-77, 2013.

.. [KanataniMorris] K. Kanatani and D. D. Morris, **Gauges and gauge
   transformations for uncertainty description of geometric structure
   with indeterminacy**, *IEEE Transactions on Information Theory*
   47(5):2017-2028, 2001.

.. [Keys] R. G. Keys, **Cubic convolution interpolation for digital
   image processing**, *IEEE Trans. on Acoustics, Speech, and Signal
   Processing*, 29(6), 1981.

.. [KushalAgarwal] A. Kushal and S. Agarwal, **Visibility based
   preconditioning for bundle adjustment**, *In Proceedings of the
   IEEE Conference on Computer Vision and Pattern Recognition*, 2012.

.. [Kanzow] C. Kanzow, N. Yamashita and M. Fukushima,
   **Levenberg-Marquardt methods with strong local convergence
   properties for solving nonlinear equations with convex
   constraints**, *Journal of Computational and Applied Mathematics*,
   177(2):375-397, 2005.

.. [Levenberg] K. Levenberg, **A method for the solution of certain
   nonlinear problems in least squares**, *Quart. Appl.  Math*,
   2(2):164-168, 1944.

.. [LiSaad] Na Li and Y. Saad, **MIQR: A multilevel incomplete qr
   preconditioner for large sparse least squares problems**, *SIAM
   Journal on Matrix Analysis and Applications*, 28(2):524-550, 2007.

.. [LourakisArgyros] M. L. A. Lourakis, A. A. Argyros, **Is
   Levenberg-Marquardt the most efficient algorithm for implementing
   bundle adjustment?**, *International Conference on Computer
   Vision*, 2005.

.. [Madsen] K. Madsen, H.B. Nielsen, and O. Tingleff, **Methods for
   nonlinear least squares problems**, 2004.

.. [Mandel] J. Mandel, **On block diagonal and Schur complement
   preconditioning**, *Numer. Math.*, 58(1):79-93, 1990.

.. [Marquardt] D.W. Marquardt, **An algorithm for least squares
   estimation of nonlinear parameters**, *J. SIAM*, 11(2):431-441,
   1963.

.. [Mathew] T.P.A. Mathew, **Domain decomposition methods for the
   numerical solution of partial differential equations**, Springer
   Verlag, 2008.

.. [NashSofer] S.G. Nash and A. Sofer, **Assessing a search direction
   within a truncated newton method**, *Operations Research Letters*,
   9(4):219-221, 1990.

.. [Nocedal] J. Nocedal, **Updating Quasi-Newton Matrices with Limited
   Storage**, *Mathematics of Computation*, 35(151): 773--782, 1980.

.. [NocedalWright] J. Nocedal and S. Wright, **Numerical Optimization**,
   Springer, 2004.

.. [Oren] S. S. Oren, **Self-scaling Variable Metric (SSVM) Algorithms
   Part II: Implementation and Experiments**, Management Science,
   20(5), 863-874, 1974.

.. [Press] W. H. Press, S. A. Teukolsky, W. T. Vetterling
   and B. P. Flannery, **Numerical Recipes**, Cambridge University
   Press, 2007.

.. [Ridders] C. J. F. Ridders, **Accurate computation of F'(x) and
   F'(x) F"(x)**, Advances in Engineering Software 4(2), 75-76, 1978.

.. [RuheWedin] A. Ruhe and P.Å. Wedin, **Algorithms for separable
   nonlinear least squares problems**, Siam Review, 22(3):318-337,
   1980.

.. [Saad] Y. Saad, **Iterative methods for sparse linear
   systems**, SIAM, 2003.

.. [Simon] I. Simon, N. Snavely and S. M. Seitz, **Scene Summarization
   for Online Image Collections**, *International Conference on
   Computer Vision*, 2007.

.. [Stigler] S. M. Stigler, **Gauss and the invention of least
   squares**, *The Annals of Statistics*, 9(3):465-474, 1981.

.. [TenenbaumDirector] J. Tenenbaum and B. Director, **How Gauss
   Determined the Orbit of Ceres**.

.. [TrefethenBau] L.N. Trefethen and D. Bau, **Numerical Linear
   Algebra**, SIAM, 1997.

.. [Triggs] B. Triggs, P. F. Mclauchlan, R. I. Hartley and
   A. W. Fitzgibbon, **Bundle Adjustment: A Modern Synthesis**,
   Proceedings of the International Workshop on Vision Algorithms:
   Theory and Practice, pp. 298-372, 1999.

.. [Weber] S. Weber, N. Demmel, TC Chan, D. Cremers, **Power Bundle
   Adjustment for Large-Scale 3D Reconstruction**, *IEEE Conference on
   Computer Vision and Pattern Recognition*, 2023.

.. [Wiberg] T. Wiberg, **Computation of principal components when data
   are missing**, In Proc. *Second Symp. Computational Statistics*,
   pages 229-236, 1976.

.. [WrightHolt] S. J. Wright and J. N. Holt, **An Inexact Levenberg
   Marquardt Method for Large Sparse Nonlinear Least Squares**,
   *Journal of the Australian Mathematical Society Series B*,
   26(4):387-403, 1985.

.. [Zheng] Q. Zheng, Y. Xi and Y. Saad, **A power Schur Complement
   low-rank correction preconditioner for general sparse linear
   systems**, *SIAM Journal on Matrix Analysis and
   Applications*, 2021.
