Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ComputeFunctions.cxx File Reference
#include "RooBatchCompute.h"
#include "RooNaNPacker.h"
#include "RooVDTHeaders.h"
#include "Batches.h"
#include <TMath.h>
#include <RooHeterogeneousMath.h>
#include <vector>
Include dependency graph for ComputeFunctions.cxx:
This graph shows which files directly or indirectly include this file:

Namespaces

namespace  RooBatchCompute
 Namespace for dispatching RooFit computations to various backends.
 
namespace  RooBatchCompute::RF_ARCH
 

Macros

#define BEGIN   0
 
#define STEP   1
 

Functions

__rooglobal__ void RooBatchCompute::RF_ARCH::computeAddPdf (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeArgusBG (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeBernstein (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeBifurGauss (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeBMixDecay (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeBreitWigner (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeBukin (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeCBShape (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeChebychev (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeChiSquare (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeDeltaFunction (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeDstD0BG (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeExponential (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeExponentialNeg (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeExpPoly (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeGamma (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeGaussian (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeGaussModelExpBasis (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeIdentity (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeJohnson (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeLandau (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeLognormal (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeLognormalStandard (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeNegativeLogarithms (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeNormalizedPdf (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeNovosibirsk (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computePoisson (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computePolynomial (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computePower (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeProdPdf (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeRatio (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeTruthModelCosBasis (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeTruthModelCoshBasis (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeTruthModelExpBasis (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeTruthModelLinBasis (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeTruthModelQuadBasis (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeTruthModelSinBasis (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeTruthModelSinhBasis (Batches &batches)
 
__rooglobal__ void RooBatchCompute::RF_ARCH::computeVoigtian (Batches &batches)
 
std::vector< void(*)(Batches &)> RooBatchCompute::RF_ARCH::getFunctions ()
 Returns a std::vector of pointers to the compute functions in this file.
 

Detailed Description

This file contains vectorizable computation functions for PDFs and other Roofit objects.

The same source file can also be compiled with nvcc. All functions have a single Batches object as an argument passed by value, which contains all the information necessary for the computation. In case of cuda computations, the loops have a step (stride) the size of the grid which allows for reusing the same code as the cpu implementations, easier debugging and in terms of performance, maximum memory coalescing. For more details, see https://developer.nvidia.com/blog/cuda-pro-tip-write-flexible-kernels-grid-stride-loops/

Definition in file ComputeFunctions.cxx.

Macro Definition Documentation

◆ BEGIN

#define BEGIN   0

Definition at line 41 of file ComputeFunctions.cxx.

◆ STEP

#define STEP   1

Definition at line 42 of file ComputeFunctions.cxx.