ATLAS Offline Software
Classes | Namespaces | Functions | Variables
GPUClusterInfoAndMomentsCalculatorImpl.h File Reference
#include "CaloRecGPU/CUDAFriendlyClasses.h"
#include "CaloRecGPU/DataHolders.h"
#include "CaloRecGPU/Helpers.h"
#include "CaloRecGPU/IGPUKernelSizeOptimizer.h"
#include <cmath>
#include <type_traits>
Include dependency graph for GPUClusterInfoAndMomentsCalculatorImpl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ClusterMomentsCalculator::RealSymmetricMatrixSolverIterative
 
struct  ClusterMomentsCalculator::RealSymmetricMatrixSolver
 
struct  ClusterMomentsCalculator::ClusterMomentCalculationOptions
 
struct  ClusterMomentsCalculator::CMCOptionsHolder
 

Namespaces

 ClusterMomentsCalculator
 

Functions

CUDA_HOS_DEV void ClusterMomentsCalculator::partial_kahan_babushka_neumaier_sum (const float &to_add, float &sum, float &corr)
 
template<class ... Floats, class disabler = std::enable_if_t < (std::is_same_v<std::decay_t<Floats>, float> && ...) >>
CUDA_HOS_DEV float ClusterMomentsCalculator::sum_kahan_babushka_neumaier (const Floats &... fs)
 
CUDA_HOS_DEV float ClusterMomentsCalculator::product_sum_cornea_harrison_tang (const float a, const float b, const float c, const float d)
 
CUDA_HOS_DEV float ClusterMomentsCalculator::corrected_dot_product (const float a_1, const float a_2, const float a_3, const float b_1, const float b_2, const float b_3)
 
CUDA_HOS_DEV float ClusterMomentsCalculator::corrected_dot_product (const float(&a)[3], const float(&b)[3])
 
CUDA_HOS_DEV void ClusterMomentsCalculator::corrected_cross_product (float(&res)[3], const float a1, const float a2, const float a3, const float b1, const float b2, const float b3)
 
CUDA_HOS_DEV void ClusterMomentsCalculator::corrected_cross_product (float(&res)[3], const float(&x)[3], const float(&y)[3])
 
CUDA_HOS_DEV float ClusterMomentsCalculator::corrected_magn_cross_product (const float a1, const float a2, const float a3, const float b1, const float b2, const float b3)
 
CUDA_HOS_DEV float ClusterMomentsCalculator::corrected_magn_cross_product (const float(&x)[3], const float(&y)[3])
 
void ClusterMomentsCalculator::register_kernels (IGPUKernelSizeOptimizer &optimizer)
 
void ClusterMomentsCalculator::calculateClusterPropertiesAndMoments (CaloRecGPU::EventDataHolder &holder, const CaloRecGPU::ConstantDataHolder &instance_data, const CMCOptionsHolder &options, const IGPUKernelSizeOptimizer &optimizer, size_t(&times)[num_time_measurements], const bool synchronize=false, CaloRecGPU::CUDA_Helpers::CUDAStreamPtrHolder stream={}, const bool defer_instead_of_oversize=false)
 

Variables

constexpr unsigned int ClusterMomentsCalculator::num_time_measurements = 11