MCPcopy Create free account
hub / github.com/arrayfire/arrayfire / SetUp

Method SetUp

test/jit.cpp:453–493  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

451class JIT : public ::testing::TestWithParam<tile_params> {
452 protected:
453 void SetUp() {
454 tile_params params = GetParam();
455 vector<float> vals(params.in_dim.elements());
456 iota(vals.begin(), vals.end(), 0.f);
457 in = array(params.in_dim, &vals.front());
458
459 // clang-format off
460 gold.resize(params.out_dim.elements());
461 dim_t tile_dim[4] = {params.tile[0], params.tile[1], params.tile[2],
462 params.tile[3]};
463
464 dim_t istride[4] = {1,
465 params.in_dim[0],
466 params.in_dim[0] * params.in_dim[1],
467 params.in_dim[0] * params.in_dim[1] * params.in_dim[2]};
468 dim_t ostride[4] = {1,
469 params.out_dim[0],
470 params.out_dim[0] * params.out_dim[1],
471 params.out_dim[0] * params.out_dim[1] * params.out_dim[2]};
472
473 for (int i = 0; i < 4; i++) {
474 if (tile_dim[i] != 1) { istride[i] = 0; }
475 }
476
477 for (int l = 0; l < params.out_dim[3]; l++) {
478 for (int k = 0; k < params.out_dim[2]; k++) {
479 for (int j = 0; j < params.out_dim[1]; j++) {
480 for (int i = 0; i < params.out_dim[0]; i++) {
481 gold[l * ostride[3] +
482 k * ostride[2] +
483 j * ostride[1] +
484 i * ostride[0]] = vals[l * istride[3] +
485 k * istride[2] +
486 j * istride[1] +
487 i * istride[0]];
488 }
489 }
490 }
491 }
492 // clang-format on
493 }
494
495 public:
496 array in;

Callers

nothing calls this directly

Calls 3

iotaFunction · 0.50
arrayClass · 0.50
elementsMethod · 0.45

Tested by

no test coverage detected