60 typedef internal::blas_data_mapper<Scalar, int, StorageOrder> BlasDataMapper;
62 int minSize = std::max<int>(packetSize, BlockSize);
65 int szm = internal::random<int>(minSize, 500), szn = internal::random<int>(minSize, 500);
66 int stride = StorageOrder ==
RowMajor ? szn : szm;
70 for (
int i = 0;
i < szm * szn;
i++) {
71 d[
i] = internal::random<Scalar>(
static_cast<Scalar>(3),
static_cast<Scalar>(10));
74 BlasDataMapper bdm(d, stride);
77 for (
int i = 0;
i < szm;
i++) {
78 for (
int j = 0;
j < szn;
j++) {
84 int i0 = internal::random<int>(0, szm - 2);
85 int j0 = internal::random<int>(0, szn - 2);
86 for (
int i = i0;
i < szm;
i++) {
87 for (
int j = j0;
j < szn;
j++) {
88 const BlasDataMapper& bdmSM = bdm.getSubMapper(i0, j0);
89 const internal::BlasLinearMapper<Scalar, int, 0>& bdmLM = bdm.getLinearMapper(i0, j0);
99 for (
int i = 0;
i < szm - minSize;
i++) {
100 for (
int j = 0;
j < szn - minSize;
j++) {
101 Packet pktBDM = bdm.template loadPacket<Packet>(
i,
j);
102 Packet pktD = internal::ploadu<Packet>(d +
GET(
i,
j));
104 compare<Scalar, Packet>(pktBDM, pktD);
110 for (
int i = 0;
i < szm - minSize;
i++) {
111 for (
int j = 0;
j < szn - minSize;
j++) {
112 Packet p = bdm.template gatherPacket<Packet>(
i,
j);
113 internal::pstoreu<Scalar, Packet>(buff,
p);
115 for (
int k = 0;
k < packetSize;
k++) {
123 for (
int i = 0;
i < szm - minSize;
i++) {
124 for (
int j = 0;
j < szn - minSize;
j++) {
126 bdm.template scatterPacket<Packet>(
i,
j,
p);
127 for (
int k = 0;
k < packetSize;
k++) {
134 internal::PacketBlock<Packet, BlockSize>
block;
139 for (
int i = 0;
i < szm - minSize;
i++) {
140 for (
int j = 0;
j < szn - minSize;
j++) {
141 bdm.template storePacketBlock<Packet, BlockSize>(
i,
j,
block);
Array< int, Dynamic, 1 > v
Definition: Array_initializer_list_vector_cxx11.cpp:1
float * p
Definition: Tutorial_Map_using.cpp:9
m m block(1, 0, 2, 2)<< 4
internal::packet_traits< Scalar >::type Packet
Definition: benchmark-blocking-sizes.cpp:54
#define GET(i, j)
Definition: blasutil.cpp:20
#define SCATTER(i, j, k)
Definition: blasutil.cpp:21
@ RowMajor
Definition: Constants.h:320
char char char int int * k
Definition: level2_impl.h:374
Definition: blasutil.cpp:41
void setPacketBlock(internal::PacketBlock< Packet, n > &block, Scalar value)
Definition: blasutil.cpp:44
void comparePacketBlock(Scalar *data, int i, int j, int stride, internal::PacketBlock< Packet, n > &block)
Definition: blasutil.cpp:50
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2