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_KLUSUPPORT_MODULE_H 9#define EIGEN_KLUSUPPORT_MODULE_H 10 11#include <Eigen/SparseCore> 12 13#include <Eigen/src/Core/util/DisableStupidWarnings.h> 14 15extern "C" { 16#include <btf.h> 17#include <klu.h> 18 } 19 20/** \ingroup Support_modules 21 * \defgroup KLUSupport_Module KLUSupport module 22 * 23 * This module provides an interface to the KLU library which is part of the <a href="http://www.suitesparse.com">suitesparse</a> package. 24 * It provides the following factorization class: 25 * - class KLU: a sparse LU factorization, well-suited for circuit simulation. 26 * 27 * \code 28 * #include <Eigen/KLUSupport> 29 * \endcode 30 * 31 * 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 * The dependencies depend on how umfpack has been compiled. 33 * For a cmake based project, you can use our FindKLU.cmake module to help you in this task. 34 * 35 */ 36 37#include "src/KLUSupport/KLUSupport.h" 38 39#include <Eigen/src/Core/util/ReenableStupidWarnings.h> 40 41#endif // EIGEN_KLUSUPPORT_MODULE_H 42