23#ifndef ROOFIT_BATCHCOMPUTE_BATCHES_H
24#define ROOFIT_BATCHCOMPUTE_BATCHES_H
35constexpr std::size_t maxParams = 8;
36constexpr std::size_t maxExtraArgs = 16;
45 const double *__restrict
_array =
nullptr;
87 double *buffer =
nullptr);
107 for (std::size_t i = 0; i <
_nBatches; i++)
These classes encapsulate the necessary data for the computations.
void advance(std::size_t _nEvents)
const double *__restrict _array
void set(double scalar, InputArr array, bool isVector)
constexpr double operator[](std::size_t i) const noexcept
__roodevice__ constexpr bool isItVector() const
Batch(InputArr array, bool isVector)
Batches(RestrictArr output, std::size_t nEvents, const VarVector &vars, ArgVector &extraArgs, double *buffer=nullptr)
__roodevice__ std::size_t getNEvents() const
__roodevice__ Batch operator[](int batchIdx) const
Batches(const Batches &)=delete
__roodevice__ std::size_t getNExtraArgs() const
void advance(std::size_t nEvents)
__roodevice__ void setExtraArg(std::size_t i, double val)
std::vector< Batch > _arrays
__roodevice__ double extraArg(std::size_t i) const
void setNEvents(std::size_t n)
Batches & operator=(Batches &&)=delete
Batches(Batches &&)=delete
Batches & operator=(const Batches &)=delete
Namespace for dispatching RooFit computations to various backends.
std::vector< RooSpan< const double > > VarVector
constexpr std::size_t bufferSize
const double *__restrict InputArr
std::vector< double > ArgVector
double *__restrict RestrictArr