xref: /aosp_15_r20/external/eigen/Eigen/KLUSupport (revision bf2c37156dfe67e5dfebd6d394bad8b2ab5804d4)
1*bf2c3715SXin Li// This file is part of Eigen, a lightweight C++ template library
2*bf2c3715SXin Li// for linear algebra.
3*bf2c3715SXin Li//
4*bf2c3715SXin Li// This Source Code Form is subject to the terms of the Mozilla
5*bf2c3715SXin Li// Public License v. 2.0. If a copy of the MPL was not distributed
6*bf2c3715SXin Li// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
7*bf2c3715SXin Li
8*bf2c3715SXin Li#ifndef EIGEN_KLUSUPPORT_MODULE_H
9*bf2c3715SXin Li#define EIGEN_KLUSUPPORT_MODULE_H
10*bf2c3715SXin Li
11*bf2c3715SXin Li#include <Eigen/SparseCore>
12*bf2c3715SXin Li
13*bf2c3715SXin Li#include <Eigen/src/Core/util/DisableStupidWarnings.h>
14*bf2c3715SXin Li
15*bf2c3715SXin Liextern "C" {
16*bf2c3715SXin Li#include <btf.h>
17*bf2c3715SXin Li#include <klu.h>
18*bf2c3715SXin Li   }
19*bf2c3715SXin Li
20*bf2c3715SXin Li/** \ingroup Support_modules
21*bf2c3715SXin Li  * \defgroup KLUSupport_Module KLUSupport module
22*bf2c3715SXin Li  *
23*bf2c3715SXin Li  * This module provides an interface to the KLU library which is part of the <a href="http://www.suitesparse.com">suitesparse</a> package.
24*bf2c3715SXin Li  * It provides the following factorization class:
25*bf2c3715SXin Li  * - class KLU: a sparse LU factorization, well-suited for circuit simulation.
26*bf2c3715SXin Li  *
27*bf2c3715SXin Li  * \code
28*bf2c3715SXin Li  * #include <Eigen/KLUSupport>
29*bf2c3715SXin Li  * \endcode
30*bf2c3715SXin Li  *
31*bf2c3715SXin Li  * In order to use this module, the klu and btf headers must be accessible from the include paths, and your binary must be linked to the klu library and its dependencies.
32*bf2c3715SXin Li  * The dependencies depend on how umfpack has been compiled.
33*bf2c3715SXin Li  * For a cmake based project, you can use our FindKLU.cmake module to help you in this task.
34*bf2c3715SXin Li  *
35*bf2c3715SXin Li  */
36*bf2c3715SXin Li
37*bf2c3715SXin Li#include "src/KLUSupport/KLUSupport.h"
38*bf2c3715SXin Li
39*bf2c3715SXin Li#include <Eigen/src/Core/util/ReenableStupidWarnings.h>
40*bf2c3715SXin Li
41*bf2c3715SXin Li#endif // EIGEN_KLUSUPPORT_MODULE_H
42