// This file is part of Eigen, a lightweight C++ template library // for linear algebra. // // This Source Code Form is subject to the terms of the Mozilla // Public License v. 2.0. If a copy of the MPL was not distributed // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. #ifndef EIGEN_ACCELERATESUPPORT_MODULE_H #define EIGEN_ACCELERATESUPPORT_MODULE_H #include "SparseCore" #include "src/Core/util/DisableStupidWarnings.h" /** \ingroup Support_modules * \defgroup AccelerateSupport_Module AccelerateSupport module * * This module provides an interface to the Apple Accelerate library. * It provides the seven following main factorization classes: * - class AccelerateLLT: a Cholesky (LL^T) factorization. * - class AccelerateLDLT: the default LDL^T factorization. * - class AccelerateLDLTUnpivoted: a Cholesky-like LDL^T factorization with only 1x1 pivots and no pivoting * - class AccelerateLDLTSBK: an LDL^T factorization with Supernode Bunch-Kaufman and static pivoting * - class AccelerateLDLTTPP: an LDL^T factorization with full threshold partial pivoting * - class AccelerateQR: a QR factorization * - class AccelerateCholeskyAtA: a QR factorization without storing Q (equivalent to A^TA = R^T R) * * \code * #include * \endcode * * In order to use this module, the Accelerate headers must be accessible from * the include paths, and your binary must be linked to the Accelerate framework. * The Accelerate library is only available on Apple hardware. * * Note that many of the algorithms can be influenced by the UpLo template * argument. All matrices are assumed to be symmetric. For example, the following * creates an LDLT factorization where your matrix is symmetric (implicit) and * uses the lower triangle: * * \code * AccelerateLDLT, Lower> ldlt; * \endcode */ // IWYU pragma: begin_exports #include "src/AccelerateSupport/AccelerateSupport.h" // IWYU pragma: end_exports #include "src/Core/util/ReenableStupidWarnings.h" #endif // EIGEN_ACCELERATESUPPORT_MODULE_H