13#ifndef RooFit_Detail_EvalContext_h
14#define RooFit_Detail_EvalContext_h
76struct hash<
RooFit::Detail::DataKey> {
91 inline void set(
RooAbsArg const *arg, std::span<const double>
const &span)
122 std::vector<std::span<const double>>
_ctx;
126 std::vector<RooBatchCompute::Config>
_cfgs;
TRObject operator()(const T1 &t1) const
The Kahan summation is a compensated summation algorithm, which significantly reduces numerical error...
Common abstract base class for objects that represent a value and a "shape" in RooFit.
bool hasDataToken() const
std::size_t dataToken() const
Returns the token for retrieving results in the BatchMode. For internal use only.
RooAbsArg * owner() const
Returns the owner of this proxy.
Minimal configuration struct to steer the evaluation of a single node with the RooBatchCompute librar...
DataKey(RooTemplateProxy< T > const &proxy)
friend bool operator!=(const DataKey &k1, const DataKey &k2)
DataKey(RooAbsArg const *arg)
DataKey(TNamed const *arg)
TObject const * operator->() const
friend bool operator<(const DataKey &k1, const DataKey &k2)
friend bool operator==(const DataKey &k1, const DataKey &k2)
TObject const & operator*() const
std::vector< RooBatchCompute::Config > _cfgs
void set(RooAbsArg const *arg, std::span< const double > const &span)
std::span< const double > at(RooAbsArg const *arg, RooAbsArg const *caller=nullptr)
std::span< double > output()
void resetVectorBuffers()
void enableVectorBuffers(bool enable)
bool _enableVectorBuffers
std::span< const double > at(RooTemplateProxy< T > const &proxy)
RooBatchCompute::Config config(RooAbsArg const *arg) const
void setConfig(RooAbsArg const *arg, RooBatchCompute::Config const &config)
std::vector< std::span< const double > > _ctx
void setOutputWithOffset(RooAbsArg const *arg, ROOT::Math::KahanSum< double > val, ROOT::Math::KahanSum< double > const &offset)
Sets the output value with an offset.
std::vector< std::vector< double > > _buffers
std::span< double > _currentOutput
void resize(std::size_t n)
const T & arg() const
Return reference to object held in proxy.
The TNamed class is the base class for all named ROOT classes.
Mother of all ROOT objects.
Namespace for dispatching RooFit computations to various backends.
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...