| commit | 655c3a40428e0e6a5490a3a4d4bddceb45af4a3a | [log] [tgz] |
|---|---|---|
| author | Antonio Sanchez <cantonios@google.com> | Mon Dec 07 08:27:03 2020 -0800 |
| committer | Antonio Sanchez <cantonios@google.com> | Mon Dec 07 08:38:43 2020 -0800 |
| tree | 45f7551c781d7351135e2fdd19d13f998352a711 | |
| parent | 5ec4907434742d4555df4aa708b665868b88f3b4 [diff] |
Add specialization for compile-time zero-sized dense assignment. In the current `dense_assignment_loop` implementations, if the destination's inner or outer size is zero at compile time and if the kernel involves a product, we currently get a compile error (#2080). This is triggered by attempting to multiply a non-existent row by a column (or vice-versa). To address this, we add a specialization for zero-sized assignments (`AllAtOnceTraversal`) which evaluates to a no-op. We also add a static check to ensure the size is in-fact zero. This now seems to be the only existing use of `AllAtOnceTraversal`. Fixes #2080.
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.