Eigen  5.0.1
 
Loading...
Searching...
No Matches
SuperLUSupport
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// SPDX-FileCopyrightText: The Eigen Authors
8// SPDX-License-Identifier: MPL-2.0
9
10#ifndef EIGEN_SUPERLUSUPPORT_MODULE_H
11#define EIGEN_SUPERLUSUPPORT_MODULE_H
12
13#include "SparseCore"
14
15#include "src/Core/util/DisableStupidWarnings.h"
16
17#ifdef EMPTY
18#define EIGEN_EMPTY_WAS_ALREADY_DEFINED
19#endif
20
21// Required by SuperLU headers, which expect int_t to be defined as a global typedef.
22typedef int int_t;
23#include <slu_Cnames.h>
24#include <supermatrix.h>
25#include <slu_util.h>
26
27// slu_util.h defines a preprocessor token named EMPTY which is really polluting,
28// so we remove it in favor of a SUPERLU_EMPTY token.
29// If EMPTY was already defined then we don't undef it.
30
31#if defined(EIGEN_EMPTY_WAS_ALREADY_DEFINED)
32#undef EIGEN_EMPTY_WAS_ALREADY_DEFINED
33#elif defined(EMPTY)
34#undef EMPTY
35#endif
36
37#define SUPERLU_EMPTY (-1)
38
39namespace Eigen {
40struct SluMatrix;
41}
42
66
67// IWYU pragma: begin_exports
68#include "src/SuperLUSupport/SuperLUSupport.h"
69// IWYU pragma: end_exports
70
71#include "src/Core/util/ReenableStupidWarnings.h"
72
73#endif // EIGEN_SUPERLUSUPPORT_MODULE_H