libsemigroups  v3.1.2
C++ library for semigroups and monoids
Loading...
Searching...
No Matches
eigen.hpp
1//
2// libsemigroups - C++ library for semigroups and monoids
3// Copyright (C) 2024-2025 James D. Mitchell
4//
5// This program is free software: you can redistribute it and/or modify
6// it under the terms of the GNU General Public License as published by
7// the Free Software Foundation, either version 3 of the License, or
8// (at your option) any later version.
9//
10// This program is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU General Public License for more details.
14//
15// You should have received a copy of the GNU General Public License
16// along with this program. If not, see <http://www.gnu.org/licenses/>.
17//
18
19// This file includes relevant headers from eigen and suppresses the compiler
20// warnings emitted from it.
21
22#include "libsemigroups/config.hpp" // for LIBSEMIGROUPS_EIGEN_ENABLED
23
24#ifndef LIBSEMIGROUPS_DETAIL_EIGEN_HPP_
25#define LIBSEMIGROUPS_DETAIL_EIGEN_HPP_
26#ifdef LIBSEMIGROUPS_EIGEN_ENABLED
27#if defined(__clang__)
28#pragma clang diagnostic push
29#pragma clang diagnostic ignored "-Wdeprecated-declarations"
30#pragma clang diagnostic ignored "-Wmissing-noreturn"
31#pragma clang diagnostic ignored "-Wshadow"
32#pragma clang diagnostic ignored "-Wswitch-default"
33#else
34#pragma GCC diagnostic ignored "-Wclass-memaccess"
35#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
36#pragma GCC diagnostic ignored "-Wclass-memaccess"
37#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
38#endif
39#pragma GCC diagnostic push
40#pragma GCC diagnostic ignored "-Wold-style-cast"
41#pragma GCC diagnostic ignored "-Winline"
42#define _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS
43#include <Eigen/Core>
44#include <Eigen/QR>
45#include <unsupported/Eigen/MatrixFunctions>
46#undef _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS
47#pragma GCC diagnostic pop
48#if defined(__clang__)
49#pragma clang diagnostic pop
50#endif
51#endif
52#endif // LIBSEMIGROUPS_DETAIL_EIGEN_HPP_