Logo ROOT  
Reference Guide
RooBatchCompute Namespace Reference

Namespace for dispatching RooFit computations to various backends. More...

Namespaces

 RF_ARCH
 Contains the part of the code of the RooBatchCompute Library that needs to be compiled for every different cpu architecture.
 

Classes

class  BracketAdapter
 Little adapter that gives a bracket operator to types that don't have one. More...
 
class  BracketAdapterWithMask
 
class  RooBatchComputeInterface
 The interface which should be implemented to provide optimised computation functions for implementations of RooAbsReal::evaluateSpan(). More...
 
struct  RunContext
 This struct enables passing computation data around between elements of a computation graph. More...
 

Functions

double fast_exp (double x)
 
double fast_isqrt (double x)
 
double fast_log (double x)
 

Variables

R__EXTERN RooBatchComputeInterfacedispatch =nullptr
 This dispatch pointer points to an implementation of the compute library, provided one has been loaded. More...
 

Detailed Description

Namespace for dispatching RooFit computations to various backends.

This namespace contains an interface for providing high-performance computation functions for use in RooAbsReal::evaluateSpan(), see RooBatchComputeInterface.

Furthermore, several implementations of this interface can be created, which reside in RooBatchCompute::RF_ARCH, where RF_ARCH may be replaced by the architecture that this implementation targets, e.g. SSE, AVX, etc.

Using the pointer RooBatchCompute::dispatch, a computation request can be dispatched to the fastest backend that is available on a specific platform.

Function Documentation

◆ fast_exp()

double RooBatchCompute::fast_exp ( double  x)
inline

Definition at line 52 of file RooVDTHeaders.h.

◆ fast_isqrt()

double RooBatchCompute::fast_isqrt ( double  x)
inline

Definition at line 60 of file RooVDTHeaders.h.

◆ fast_log()

double RooBatchCompute::fast_log ( double  x)
inline

Definition at line 56 of file RooVDTHeaders.h.

Variable Documentation

◆ dispatch

RooBatchCompute::RooBatchComputeInterface * RooBatchCompute::dispatch =nullptr

This dispatch pointer points to an implementation of the compute library, provided one has been loaded.

Using a virtual call, computation requests are dispatched to backends with architecture-specific functions such as SSE, AVX, AVX2, etc.

See also
RooBatchComputeInterface, RooBatchComputeClass, RF_ARCH

Definition at line 68 of file RooBatchCompute.h.