Eigen::internal::detail Namespace Reference

Functions

template<typename Packet >
void zip_in_place (Packet &p1, Packet &p2)
 
template<>
EIGEN_ALWAYS_INLINE void zip_in_place< Packet2f > (Packet2f &p1, Packet2f &p2)
 
template<>
EIGEN_ALWAYS_INLINE void zip_in_place< Packet4f > (Packet4f &p1, Packet4f &p2)
 
template<>
EIGEN_ALWAYS_INLINE void zip_in_place< Packet8c > (Packet8c &p1, Packet8c &p2)
 
template<>
EIGEN_ALWAYS_INLINE void zip_in_place< Packet16c > (Packet16c &p1, Packet16c &p2)
 
template<>
EIGEN_ALWAYS_INLINE void zip_in_place< Packet8uc > (Packet8uc &p1, Packet8uc &p2)
 
template<>
EIGEN_ALWAYS_INLINE void zip_in_place< Packet16uc > (Packet16uc &p1, Packet16uc &p2)
 
template<>
EIGEN_ALWAYS_INLINE void zip_in_place< Packet2i > (Packet2i &p1, Packet2i &p2)
 
template<>
EIGEN_ALWAYS_INLINE void zip_in_place< Packet4i > (Packet4i &p1, Packet4i &p2)
 
template<>
EIGEN_ALWAYS_INLINE void zip_in_place< Packet2ui > (Packet2ui &p1, Packet2ui &p2)
 
template<>
EIGEN_ALWAYS_INLINE void zip_in_place< Packet4ui > (Packet4ui &p1, Packet4ui &p2)
 
template<>
EIGEN_ALWAYS_INLINE void zip_in_place< Packet4s > (Packet4s &p1, Packet4s &p2)
 
template<>
EIGEN_ALWAYS_INLINE void zip_in_place< Packet8s > (Packet8s &p1, Packet8s &p2)
 
template<>
EIGEN_ALWAYS_INLINE void zip_in_place< Packet4us > (Packet4us &p1, Packet4us &p2)
 
template<>
EIGEN_ALWAYS_INLINE void zip_in_place< Packet8us > (Packet8us &p1, Packet8us &p2)
 
template<typename Packet >
EIGEN_ALWAYS_INLINE void ptranspose_impl (PacketBlock< Packet, 2 > &kernel)
 
template<typename Packet >
EIGEN_ALWAYS_INLINE void ptranspose_impl (PacketBlock< Packet, 4 > &kernel)
 
template<typename Packet >
EIGEN_ALWAYS_INLINE void ptranspose_impl (PacketBlock< Packet, 8 > &kernel)
 
template<typename Packet >
EIGEN_ALWAYS_INLINE void ptranspose_impl (PacketBlock< Packet, 16 > &kernel)
 
template<>
EIGEN_ALWAYS_INLINE void zip_in_place< Packet4bf > (Packet4bf &p1, Packet4bf &p2)
 

Function Documentation

◆ ptranspose_impl() [1/4]

template<typename Packet >
EIGEN_ALWAYS_INLINE void Eigen::internal::detail::ptranspose_impl ( PacketBlock< Packet, 16 > &  kernel)
4240  {
4242  for (int i = 0; i < 4; ++i) {
4243  const int m = (1 << i);
4245  for (int j = 0; j < m; ++j) {
4246  const int n = (1 << (3 - i));
4248  for (int k = 0; k < n; ++k) {
4249  const int idx = 2 * j * n + k;
4250  zip_in_place(kernel.packet[idx], kernel.packet[idx + n]);
4251  }
4252  }
4253  }
4254 }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
#define EIGEN_UNROLL_LOOP
Definition: Macros.h:1298
int * m
Definition: level2_cplx_impl.h:294
char char char int int * k
Definition: level2_impl.h:374
void zip_in_place(Packet &p1, Packet &p2)
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2

References EIGEN_UNROLL_LOOP, i, j, k, m, n, Eigen::internal::PacketBlock< Packet, N >::packet, and zip_in_place().

◆ ptranspose_impl() [2/4]

template<typename Packet >
EIGEN_ALWAYS_INLINE void Eigen::internal::detail::ptranspose_impl ( PacketBlock< Packet, 2 > &  kernel)
4209  {
4210  zip_in_place(kernel.packet[0], kernel.packet[1]);
4211 }

References Eigen::internal::PacketBlock< Packet, N >::packet, and zip_in_place().

Referenced by Eigen::internal::ptranspose().

◆ ptranspose_impl() [3/4]

template<typename Packet >
EIGEN_ALWAYS_INLINE void Eigen::internal::detail::ptranspose_impl ( PacketBlock< Packet, 4 > &  kernel)
4214  {
4215  zip_in_place(kernel.packet[0], kernel.packet[2]);
4216  zip_in_place(kernel.packet[1], kernel.packet[3]);
4217  zip_in_place(kernel.packet[0], kernel.packet[1]);
4218  zip_in_place(kernel.packet[2], kernel.packet[3]);
4219 }

References Eigen::internal::PacketBlock< Packet, N >::packet, and zip_in_place().

◆ ptranspose_impl() [4/4]

template<typename Packet >
EIGEN_ALWAYS_INLINE void Eigen::internal::detail::ptranspose_impl ( PacketBlock< Packet, 8 > &  kernel)
4222  {
4223  zip_in_place(kernel.packet[0], kernel.packet[4]);
4224  zip_in_place(kernel.packet[1], kernel.packet[5]);
4225  zip_in_place(kernel.packet[2], kernel.packet[6]);
4226  zip_in_place(kernel.packet[3], kernel.packet[7]);
4227 
4228  zip_in_place(kernel.packet[0], kernel.packet[2]);
4229  zip_in_place(kernel.packet[1], kernel.packet[3]);
4230  zip_in_place(kernel.packet[4], kernel.packet[6]);
4231  zip_in_place(kernel.packet[5], kernel.packet[7]);
4232 
4233  zip_in_place(kernel.packet[0], kernel.packet[1]);
4234  zip_in_place(kernel.packet[2], kernel.packet[3]);
4235  zip_in_place(kernel.packet[4], kernel.packet[5]);
4236  zip_in_place(kernel.packet[6], kernel.packet[7]);
4237 }

References Eigen::internal::PacketBlock< Packet, N >::packet, and zip_in_place().

◆ zip_in_place()

template<typename Packet >
void Eigen::internal::detail::zip_in_place ( Packet p1,
Packet p2 
)

◆ zip_in_place< Packet16c >()

4132  {
4133  const int8x16x2_t tmp = vzipq_s8(p1, p2);
4134  p1 = tmp.val[0];
4135  p2 = tmp.val[1];
4136 }
Vector3f p1
Definition: MatrixBase_all.cpp:2
Eigen::Matrix< Scalar, Dynamic, Dynamic, ColMajor > tmp
Definition: level3_impl.h:365

References p1, and tmp.

◆ zip_in_place< Packet16uc >()

4146  {
4147  const uint8x16x2_t tmp = vzipq_u8(p1, p2);
4148  p1 = tmp.val[0];
4149  p2 = tmp.val[1];
4150 }

References p1, and tmp.

◆ zip_in_place< Packet2f >()

4111  {
4112  const float32x2x2_t tmp = vzip_f32(p1, p2);
4113  p1 = tmp.val[0];
4114  p2 = tmp.val[1];
4115 }

References p1, and tmp.

◆ zip_in_place< Packet2i >()

4153  {
4154  const int32x2x2_t tmp = vzip_s32(p1, p2);
4155  p1 = tmp.val[0];
4156  p2 = tmp.val[1];
4157 }

References p1, and tmp.

◆ zip_in_place< Packet2ui >()

4167  {
4168  const uint32x2x2_t tmp = vzip_u32(p1, p2);
4169  p1 = tmp.val[0];
4170  p2 = tmp.val[1];
4171 }

References p1, and tmp.

◆ zip_in_place< Packet4bf >()

4785  {
4786  const uint16x4x2_t tmp = vzip_u16(p1, p2);
4787  p1 = tmp.val[0];
4788  p2 = tmp.val[1];
4789 }

References p1, and tmp.

◆ zip_in_place< Packet4f >()

4118  {
4119  const float32x4x2_t tmp = vzipq_f32(p1, p2);
4120  p1 = tmp.val[0];
4121  p2 = tmp.val[1];
4122 }

References p1, and tmp.

◆ zip_in_place< Packet4i >()

4160  {
4161  const int32x4x2_t tmp = vzipq_s32(p1, p2);
4162  p1 = tmp.val[0];
4163  p2 = tmp.val[1];
4164 }

References p1, and tmp.

◆ zip_in_place< Packet4s >()

4181  {
4182  const int16x4x2_t tmp = vzip_s16(p1, p2);
4183  p1 = tmp.val[0];
4184  p2 = tmp.val[1];
4185 }

References p1, and tmp.

◆ zip_in_place< Packet4ui >()

4174  {
4175  const uint32x4x2_t tmp = vzipq_u32(p1, p2);
4176  p1 = tmp.val[0];
4177  p2 = tmp.val[1];
4178 }

References p1, and tmp.

◆ zip_in_place< Packet4us >()

4195  {
4196  const uint16x4x2_t tmp = vzip_u16(p1, p2);
4197  p1 = tmp.val[0];
4198  p2 = tmp.val[1];
4199 }

References p1, and tmp.

◆ zip_in_place< Packet8c >()

4125  {
4126  const int8x8x2_t tmp = vzip_s8(p1, p2);
4127  p1 = tmp.val[0];
4128  p2 = tmp.val[1];
4129 }

References p1, and tmp.

◆ zip_in_place< Packet8s >()

4188  {
4189  const int16x8x2_t tmp = vzipq_s16(p1, p2);
4190  p1 = tmp.val[0];
4191  p2 = tmp.val[1];
4192 }

References p1, and tmp.

◆ zip_in_place< Packet8uc >()

4139  {
4140  const uint8x8x2_t tmp = vzip_u8(p1, p2);
4141  p1 = tmp.val[0];
4142  p2 = tmp.val[1];
4143 }

References p1, and tmp.

◆ zip_in_place< Packet8us >()

4202  {
4203  const uint16x8x2_t tmp = vzipq_u16(p1, p2);
4204  p1 = tmp.val[0];
4205  p2 = tmp.val[1];
4206 }

References p1, and tmp.