Choose timezone
Your profile timezone:
Color code: (critical, news during the meeting: green, news from this week: blue, news from last week: purple, no news: black)
High priority Framework issues:
Global calibration topics:
Sync reconstruction
Async reconstruction
EPN major topics:
Other EPN topics:
Full system test issues:
Topology generation:
AliECS related topics:
GPU ROCm / compiler topics:
TPC GPU Processing
TPC processing performance regression:
General GPU Processing
Topology generation
#include "soa_wrapper.h"
#include "aos_wrapper.h"
#include <iostream>
#include <string>
#include <vector>
template<template <std::size_t, class...> class F, class... Args>
struct S {
F<0, int, Args...> x;
F<1, int, Args...> y;
F<2, double, Args...> activation;
F<3, std::string, Args...> identifier;
};
template <std::size_t, class T>
using my_vector = std::vector<T>;
int main() {
// aos_wrapper::aos_wrapper<my_vector, S> my_array(3);
soa_wrapper::soa_wrapper<my_vector, S> my_array(3);
// AoS access
for (int i = 0; i < 3; ++i) {
my_array[i].x = i - 10;
my_array[i].y = i + 50;
my_array[i].activation = 0.5 * i;
my_array[i].identifier = "foo" + std::to_string(i);
}
// SoA access
my_array.y[1] = 42;
my_array.identifier[2] = "bla";
}
I am about to fill the gabs in David's code following the same approch. The challenges are more or less the same: