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)
106 return at(&proxy.arg(), proxy.
owner());
122 std::vector<std::span<const double>>
_ctx;
126 std::vector<RooBatchCompute::Config>
_cfgs;
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h offset
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.
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)
Evaluates a RooAbsReal object in other ways than recursive graph traversal.
const char RooAbsArg * owner
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...