47 {
49 const_blas_data_mapper<Scalar,Index,StorageOrder> lhs(_lhs,lhsStride);
51
52
53 const Index peeled_mc3 = Pack1>=3*PacketSize ? (
rows/(3*PacketSize))*(3*PacketSize) : 0;
54 const Index peeled_mc2 = Pack1>=2*PacketSize ? peeled_mc3+((
rows-peeled_mc3)/(2*PacketSize))*(2*PacketSize) : 0;
55 const Index peeled_mc1 = Pack1>=1*PacketSize ? (
rows/(1*PacketSize))*(1*PacketSize) : 0;
56
57 if(Pack1>=3*PacketSize)
58 for(
Index i=0; i<peeled_mc3; i+=3*PacketSize)
59 pack<3*PacketSize>(blockA, lhs, cols, i, count);
60
61 if(Pack1>=2*PacketSize)
62 for(
Index i=peeled_mc3; i<peeled_mc2; i+=2*PacketSize)
63 pack<2*PacketSize>(blockA, lhs, cols, i, count);
64
65 if(Pack1>=1*PacketSize)
66 for(
Index i=peeled_mc2; i<peeled_mc1; i+=1*PacketSize)
67 pack<1*PacketSize>(blockA, lhs, cols, i, count);
68
69
71 {
72 for(
Index k=0; k<i; k++)
73 blockA[count++] = lhs(i, k);
74
75 blockA[
count++] = numext::real(lhs(i, i));
76
78 blockA[count++] = numext::conj(lhs(k, i));
79 }
80 }
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition Meta.h:33
IGL_INLINE void count(const Eigen::SparseMatrix< XType > &X, const int dim, Eigen::SparseVector< SType > &S)
Definition count.cpp:12
size_t cols(const T &raster)
Definition MarchingSquares.hpp:60
size_t rows(const T &raster)
Definition MarchingSquares.hpp:55
@ size
Definition GenericPacketMath.h:102