| commit | e763fcd09e620300226ca22d152b94867123b603 | [log] [tgz] |
|---|---|---|
| author | Gustavo Lima Chaves <gustavo.lima.chaves@intel.com> | Wed Dec 19 14:24:44 2018 -0800 |
| committer | Gustavo Lima Chaves <gustavo.lima.chaves@intel.com> | Wed Dec 19 14:24:44 2018 -0800 |
| tree | 8f2546814d92e2f460e2b1abe385d96d50e1ef73 | |
| parent | efa4c9c40fbed9506aaef6a5393d27713f161984 [diff] |
Introducing "vectorized" byte on unpacket_traits structs This is a preparation to a change on gebp_traits, where a new template argument will be introduced to dictate the packet size, so it won't be bound to the current/max packet size only anymore. By having packet types defined early on gebp_traits, one has now to act on packet types, not scalars anymore, for the enum values defined on that class. One approach for reaching the vectorizable/size properties one needs there could be getting the packet's scalar again with unpacket_traits<>, then the size/Vectorizable enum entries from packet_traits<>. It turns out guards like "#ifndef EIGEN_VECTORIZE_AVX512" at AVX/PacketMath.h will hide smaller packet variations of packet_traits<> for some types (and it makes sense to keep that). In other words, one can't go back to the scalar and create a new PacketType, as this will always lead to the maximum packet type for the architecture. The less costly/invasive solution for that, thus, is to add the vectorizable info on every unpacket_traits struct as well.
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 please only use the official repository at https://bitbucket.org/eigen/eigen.
For bug reports and feature requests go to http://eigen.tuxfamily.org/bz.