NVCC and older versions of clang do not fully support `std::complex` on device, leading to either compile errors (Cannot call `__host__` function) or worse, runtime errors (Illegal instruction). For most functions, we can implement specialized `numext` versions. Here we specialize the standard operators (with the exception of stream operators and member function operators with a scalar that are already specialized in `<complex>`) so they can be used in device code as well. To import these operators into the current scope, use `EIGEN_USING_STD_COMPLEX_OPERATORS`. By default, these are imported into the `Eigen`, `Eigen:internal`, and `Eigen::numext` namespaces. This allow us to remove specializations of the sum/difference/product/quotient ops, and allow us to treat complex numbers like most other scalars (e.g. in tests). |
||
|---|---|---|
| bench | ||
| blas | ||
| ci | ||
| cmake | ||
| debug | ||
| demos | ||
| doc | ||
| Eigen | ||
| failtest | ||
| lapack | ||
| scripts | ||
| test | ||
| unsupported | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .hgeol | ||
| CMakeLists.txt | ||
| COPYING.APACHE | ||
| COPYING.BSD | ||
| COPYING.GPL | ||
| COPYING.LGPL | ||
| COPYING.MINPACK | ||
| COPYING.MPL2 | ||
| COPYING.README | ||
| CTestConfig.cmake | ||
| CTestCustom.cmake.in | ||
| eigen3.pc.in | ||
| INSTALL | ||
| README.md | ||
| signature_of_eigen3_matrix_library | ||
Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
For more information go to http://eigen.tuxfamily.org/.
For pull request, bug reports, and feature requests, go to https://gitlab.com/libeigen/eigen.