17#ifndef ALICEO2_TPC_VECTOR_H_
18#define ALICEO2_TPC_VECTOR_H_
28template <
typename DataT,
size_t N>
31 using VDataT = Vc::Vector<DataT>;
38 Vector(Vc::Memory<VDataT, N>&& dataVector) : mDataVector(
std::move(dataVector)) {}
45 void setVector(
const size_t j,
const VDataT& vector) { mDataVector.vector(
j) = vector; }
48 const VDataT
getVector(
const size_t j)
const {
return mDataVector.vector(
j); }
54 Vc::Memory<VDataT, N> mDataVector{};
57template <
typename DataT,
size_t N>
60 using V = Vc::Vector<DataT>;
63 for (
size_t i = 0;
i < N; ++
i) {
65 for (
size_t j = 0;
j <
a[
i].vectorsCount(); ++
j) {
73template <
typename DataT,
size_t N>
77 for (
size_t j = 0;
j <
a.getvectorsCount(); ++
j) {
83template <
typename DataT,
size_t N>
88 for (
size_t j = 0;
j <
a.getvectorsCount(); ++
j) {
94template <
typename DataT,
size_t N>
99 for (
size_t j = 0;
j <
b.getvectorsCount(); ++
j) {
106template <
typename DataT,
size_t N>
110 Vc::Vector<DataT>
b =
a.getVector(0);
111 for (
size_t j = 1;
j <
a.getvectorsCount(); ++
j) {
118template <
typename DataT,
size_t N>
123 for (
size_t j = 0;
j <
a.getvectorsCount(); ++
j) {
Vector()=default
default constructor
DataT & operator[](size_t i)
Vector(Vc::Memory< VDataT, N > &&dataVector)
constructor
const DataT operator[](size_t i) const
operator access
size_t getvectorsCount() const
void setVector(const size_t j, const VDataT &vector)
sets the vector with index j
const VDataT getVector(const size_t j) const
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
Vector< DataT, N > floor_vec(const Vector< DataT, N > &a)
Vector< DataT, N > operator*(const std::array< Vc::Memory< Vc::Vector< DataT >, N >, N > &a, const Vector< DataT, N > &b)
CalDet< T > operator-(const CalDet< T > &c1, const CalDet< T > &c2)
DataT sum(const Vector< DataT, N > &a)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
Defining DataPointCompositeObject explicitly as copiable.