AccelerateSupport 2.04 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// 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 <Eigen/AccelerateSupport>
 * \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<SparseMatrix<float>, 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