51 HasHalf = (
int)HalfPacketSize < (
int)PacketSize,
52 HasQuarter = (
int)QuarterPacketSize < (
int)HalfPacketSize
55 const_blas_data_mapper<Scalar, Index, StorageOrder> lhs(lhs_, lhsStride);
59 const Index peeled_mc3 = Pack1 >= 3 * PacketSize ? (
rows / (3 * PacketSize)) * (3 * PacketSize) : 0;
60 const Index peeled_mc2 =
61 Pack1 >= 2 * PacketSize ? peeled_mc3 + ((
rows - peeled_mc3) / (2 * PacketSize)) * (2 * PacketSize) : 0;
62 const Index peeled_mc1 =
63 Pack1 >= 1 * PacketSize ? peeled_mc2 + ((
rows - peeled_mc2) / (1 * PacketSize)) * (1 * PacketSize) : 0;
64 const Index peeled_mc_half =
65 Pack1 >= HalfPacketSize ? peeled_mc1 + ((
rows - peeled_mc1) / (HalfPacketSize)) * (HalfPacketSize) : 0;
66 const Index peeled_mc_quarter =
67 Pack1 >= QuarterPacketSize
68 ? peeled_mc_half + ((
rows - peeled_mc_half) / (QuarterPacketSize)) * (QuarterPacketSize)
71 if (Pack1 >= 3 * PacketSize)
72 for (
Index i = 0; i < peeled_mc3; i += 3 * PacketSize) pack<3 * PacketSize>(blockA, lhs,
cols,
i, count);
74 if (Pack1 >= 2 * PacketSize)
75 for (
Index i = peeled_mc3; i < peeled_mc2; i += 2 * PacketSize) pack<2 * PacketSize>(blockA, lhs,
cols,
i, count);
77 if (Pack1 >= 1 * PacketSize)
78 for (
Index i = peeled_mc2; i < peeled_mc1; i += 1 * PacketSize) pack<1 * PacketSize>(blockA, lhs,
cols,
i, count);
80 if (HasHalf && Pack1 >= HalfPacketSize)
81 for (
Index i = peeled_mc1;
i < peeled_mc_half;
i += HalfPacketSize)
82 pack<HalfPacketSize>(blockA, lhs,
cols,
i, count);
84 if (HasQuarter && Pack1 >= QuarterPacketSize)
85 for (
Index i = peeled_mc_half;
i < peeled_mc_quarter;
i += QuarterPacketSize)
86 pack<QuarterPacketSize>(blockA, lhs,
cols,
i, count);
90 for (
Index k = 0;
k <
i;
k++) blockA[count++] = lhs(
i,
k);
AnnoyingScalar conj(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:133
int i
Definition: BiCGSTAB_step_by_step.cpp:9
int rows
Definition: Tutorial_commainit_02.cpp:1
int cols
Definition: Tutorial_commainit_02.cpp:1
float real
Definition: datatypes.h:10
char char char int int * k
Definition: level2_impl.h:374
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:83
@ size
Definition: GenericPacketMath.h:113
T type
Definition: GenericPacketMath.h:135
@ size
Definition: GenericPacketMath.h:139