| 1 | // This file is part of Eigen, a lightweight C++ template library | 
| 2 | // for linear algebra. | 
| 3 | // | 
| 4 | // This Source Code Form is subject to the terms of the Mozilla | 
| 5 | // Public License v. 2.0. If a copy of the MPL was not distributed | 
| 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. | 
| 7 |  | 
| 8 | #ifndef EIGEN_SVD_MODULE_H | 
| 9 | #define EIGEN_SVD_MODULE_H | 
| 10 |  | 
| 11 | #include "QR" | 
| 12 | #include "Householder" | 
| 13 | #include "Jacobi" | 
| 14 |  | 
| 15 | #include "src/Core/util/DisableStupidWarnings.h" | 
| 16 |  | 
| 17 | /** \defgroup SVD_Module SVD module | 
| 18 |   * | 
| 19 |   * | 
| 20 |   * | 
| 21 |   * This module provides SVD decomposition for matrices (both real and complex). | 
| 22 |   * Two decomposition algorithms are provided: | 
| 23 |   *  - JacobiSVD implementing two-sided Jacobi iterations is numerically very accurate, fast for small matrices, but very slow for larger ones. | 
| 24 |   *  - BDCSVD implementing a recursive divide & conquer strategy on top of an upper-bidiagonalization which remains fast for large problems. | 
| 25 |   * These decompositions are accessible via the respective classes and following MatrixBase methods: | 
| 26 |   *  - MatrixBase::jacobiSvd() | 
| 27 |   *  - MatrixBase::bdcSvd() | 
| 28 |   * | 
| 29 |   * \code | 
| 30 |   * #include <Eigen/SVD> | 
| 31 |   * \endcode | 
| 32 |   */ | 
| 33 |  | 
| 34 | #include "src/misc/RealSvd2x2.h" | 
| 35 | #include "src/SVD/UpperBidiagonalization.h" | 
| 36 | #include "src/SVD/SVDBase.h" | 
| 37 | #include "src/SVD/JacobiSVD.h" | 
| 38 | #include "src/SVD/BDCSVD.h" | 
| 39 | #if defined(EIGEN_USE_LAPACKE) && !defined(EIGEN_USE_LAPACKE_STRICT) | 
| 40 | #ifdef EIGEN_USE_MKL | 
| 41 | #include "mkl_lapacke.h" | 
| 42 | #else | 
| 43 | #include "src/misc/lapacke.h" | 
| 44 | #endif | 
| 45 | #include "src/SVD/JacobiSVD_LAPACKE.h" | 
| 46 | #endif | 
| 47 |  | 
| 48 | #include "src/Core/util/ReenableStupidWarnings.h" | 
| 49 |  | 
| 50 | #endif // EIGEN_SVD_MODULE_H | 
| 51 |  |