eigen/Eigen
Antonio Sanchez d24f9f9b55 Fix NVCC+ICC issues.
NVCC does not understand `__forceinline`, so we need to use `inline`
when compiling for GPU.

ICC specializes `std::complex` operators for `float` and `double`
by default, which cannot be used on device and conflict with Eigen's
workaround in CUDA/Complex.h.  This can be prevented by defining
`_OVERRIDE_COMPLEX_SPECIALIZATION_` before including `<complex>`.
Added this define to the tests and to `Eigen/Core`, but this will
not work if the user includes `<complex>` before `<Eigen/Core>`.

ICC also seems to generate a duplicate `Map` symbol in
`PlainObjectBase`:
```
error: "Map" has already been declared in the current scope
  static ConstMapType Map(const Scalar *data)

```
I tracked this down to `friend class Eigen::Map`.  Putting the `friend`
statements at the bottom of the class seems to resolve this issue.

Fixes #2180
2021-03-15 18:42:04 +00:00
..
src Fix NVCC+ICC issues. 2021-03-15 18:42:04 +00:00
Cholesky Remove vim specific comments to recognoize correct file-type. 2021-02-09 09:13:09 +01:00
CholmodSupport Update link to suitesparse. 2016-01-27 22:48:40 +01:00
Core Fix NVCC+ICC issues. 2021-03-15 18:42:04 +00:00
Dense
Eigen Sparse is stable now, so Eigen/Eigen should include Sparse 2013-10-02 23:31:59 +02:00
Eigenvalues Remove vim specific comments to recognoize correct file-type. 2021-02-09 09:13:09 +01:00
Geometry Remove vim specific comments to recognoize correct file-type. 2021-02-09 09:13:09 +01:00
Householder Remove vim specific comments to recognoize correct file-type. 2021-02-09 09:13:09 +01:00
IterativeLinearSolvers Add missing licence header to some top header files 2015-10-26 11:46:05 +01:00
Jacobi Remove vim specific comments to recognoize correct file-type. 2021-02-09 09:13:09 +01:00
KLUSupport Move KLU support to official 2017-11-10 14:11:22 +01:00
LU Remove vim specific comments to recognoize correct file-type. 2021-02-09 09:13:09 +01:00
MetisSupport Add missing licence header to some top header files 2015-10-26 11:46:05 +01:00
OrderingMethods Remove EIGEN_MPL2_ONLY guards around code re-licensed from LGPL to MPL2 in 2ca1e73239 2019-03-05 10:24:54 -08:00
PardisoSupport Extend CUDA support to matrix inversion and selfadjointeigensolver 2018-06-11 18:33:24 +02:00
PaStiXSupport clarify Pastix requirements 2017-11-27 22:11:57 +01:00
QR Remove vim specific comments to recognoize correct file-type. 2021-02-09 09:13:09 +01:00
QtAlignedMalloc Remove vim specific comments to recognoize correct file-type. 2021-02-09 09:13:09 +01:00
Sparse Remove EIGEN_MPL2_ONLY guards around code re-licensed from LGPL to MPL2 in 2ca1e73239 2019-03-05 10:24:54 -08:00
SparseCholesky Remove EIGEN_MPL2_ONLY guards around code re-licensed from LGPL to MPL2 in 2ca1e73239 2019-03-05 10:24:54 -08:00
SparseCore bug #1101: typo 2015-10-30 12:02:52 +01:00
SparseLU Fix numerous shadow-warnings for GCC<=4.8 2018-08-28 18:32:39 +02:00
SparseQR Old gcc versions have problems with recursive #pragma GCC diagnostic push/pop 2018-08-28 11:44:15 +02:00
SPQRSupport Update link to suitesparse. 2016-01-27 22:48:40 +01:00
StdDeque bug #1389: MSVC's std containers do not properly align in 64 bits mode if the requested alignment is larger than 16 bytes (e.g., with AVX) 2017-02-03 15:22:35 +01:00
StdList bug #1389: MSVC's std containers do not properly align in 64 bits mode if the requested alignment is larger than 16 bytes (e.g., with AVX) 2017-02-03 15:22:35 +01:00
StdVector bug #1389: MSVC's std containers do not properly align in 64 bits mode if the requested alignment is larger than 16 bytes (e.g., with AVX) 2017-02-03 15:22:35 +01:00
SuperLUSupport bug #1119: Adjust call to ?gssvx for SuperLU 5 2016-07-10 02:29:57 +02:00
SVD Remove vim specific comments to recognoize correct file-type. 2021-02-09 09:13:09 +01:00
UmfPackSupport Update link to suitesparse. 2016-01-27 22:48:40 +01:00