pairinteraction
A Rydberg Interaction Calculator
Info.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2025 Pairinteraction Developers
2// SPDX-License-Identifier: LGPL-3.0-or-later
3
4#pragma once
5
6namespace pairinteraction {
7
8struct Info {
9 Info() = delete;
10
11 // Whether it compiled with MKL
12#if defined(WITH_MKL)
13 static constexpr bool with_mkl = true;
14#else
15 static constexpr bool with_mkl = false;
16#endif
17
18 // Eigen diagonalizer is always available
19 static constexpr bool has_eigen = true;
20
21 // LAPACKE diagonalizers are available if compiled with either MKL or LAPACKE
22#if defined(WITH_MKL) || defined(WITH_LAPACKE)
23 static constexpr bool has_lapacke_evd = true;
24 static constexpr bool has_lapacke_evr = true;
25#else
26 static constexpr bool has_lapacke_evd = false;
27 static constexpr bool has_lapacke_evr = false;
28#endif
29
30 // FEAST diagonalizer is only available if compiled with MKL
31#if defined(WITH_MKL)
32 static constexpr bool has_feast = true;
33#else
34 static constexpr bool has_feast = false;
35#endif
36};
37
38} // namespace pairinteraction
static constexpr bool has_eigen
Definition: Info.hpp:19
static constexpr bool with_mkl
Definition: Info.hpp:15
static constexpr bool has_lapacke_evr
Definition: Info.hpp:27
static constexpr bool has_feast
Definition: Info.hpp:34
static constexpr bool has_lapacke_evd
Definition: Info.hpp:26