Project
Loading...
Searching...
No Matches
SMatrixGPU.h File Reference

This is a close porting of the SMatrix and SVectorGPU ROOT interfaces. Only parts strictly requiring STD library have been changed. Also some utilities to have basic checks and printouts working on GPUs have been rewritten. More...

#include "GPUCommonDef.h"
#include "GPUCommonArray.h"
#include "GPUCommonMath.h"
#include "GPUCommonAlgorithm.h"
#include "GPUCommonLogger.h"
#include "GPUCommonTypeTraits.h"

Go to the source code of this file.

Classes

struct  o2::math_utils::detail::Check< bool >
 
struct  o2::math_utils::detail::Check< false >
 
class  o2::math_utils::detail::SVectorGPU< T, N >
 
struct  o2::math_utils::detail::meta_dot< I >
 
struct  o2::math_utils::detail::meta_dot< 0 >
 
struct  o2::math_utils::detail::meta_matrix_dot< I >
 
struct  o2::math_utils::detail::meta_matrix_dot< 0 >
 
struct  o2::math_utils::detail::row_offsets_utils::indices<... >
 
struct  o2::math_utils::detail::row_offsets_utils::make_indices_impl< I, indices< Indices... >, N >
 
struct  o2::math_utils::detail::row_offsets_utils::make_indices_impl< N, indices< Indices... >, N >
 
struct  o2::math_utils::detail::row_offsets_utils::make_indices< N >
 
class  o2::math_utils::detail::MatRepSymGPU< T, D >
 
class  o2::math_utils::detail::MatRepStdGPU< T, D1, D2 >
 SMatReprStd starting port here. More...
 
struct  o2::math_utils::detail::SMatrixIdentity
 SMatrixGPU starting port here. More...
 
struct  o2::math_utils::detail::SMatrixNoInit
 
class  o2::math_utils::detail::Expr< ExprType, T, D, D2, R1 >
 
class  o2::math_utils::detail::SMatrixGPU< T, D1, D2, R >
 
class  o2::math_utils::detail::SMatrixGPU< T, D1, D2, R >::SMatrixRowGPU
 
class  o2::math_utils::detail::SMatrixGPU< T, D1, D2, R >::SMatrixRowGPUconst
 
struct  o2::math_utils::detail::Assign< T, D1, D2, A, R1, R2 >
 
struct  o2::math_utils::detail::Assign< T, D1, D2, A, MatRepSymGPU< T, D1 >, MatRepSymGPU< T, D1 > >
 
struct  o2::math_utils::detail::Assign< T, D1, D2, A, MatRepSymGPU< T, D1 >, MatRepStdGPU< T, D1, D2 > >
 
struct  o2::math_utils::detail::AssignSym
 
struct  o2::math_utils::detail::MultPolicyGPU< T, R1, R2 >
 
class  o2::math_utils::detail::MatrixMulOpGPU< MatrixA, MatrixB, T, D >
 
class  o2::math_utils::detail::Inverter< D, N >
 Inversion. More...
 
struct  o2::math_utils::detail::TranspPolicyGPU< T, D1, D2, R >
 
struct  o2::math_utils::detail::TranspPolicyGPU< T, D1, D2, MatRepSymGPU< T, D1 > >
 
class  o2::math_utils::detail::TransposeOpGPU< Matrix, T, D1, D2 >
 

Namespaces

namespace  o2
 a couple of static helper functions to create timestamp values for CCDB queries or override obsolete objects
 
namespace  o2::math_utils
 
namespace  o2::math_utils::detail
 
namespace  o2::math_utils::detail::row_offsets_utils
 

Macros

#define GPU_STATIC_CHECK(expr, msg)
 

Functions

template<class T , unsigned int D>
 o2::math_utils::detail::GPUdi () T *SVectorGPU< T
 
template<class T , unsigned int N>
 o2::math_utils::detail::GPUhdi () const T &SVectorGPU< T
 
template<class T , unsigned int N>
 o2::math_utils::detail::GPUdi () const T &SVectorGPU< T
 
template<class T , unsigned int N>
 o2::math_utils::detail::GPUd () SVectorGPU< T
 
template<int I0, class F , int... I>
constexpr auto o2::math_utils::detail::row_offsets_utils::do_make (F f, indices< I... >) -> gpu::gpustd::array< int, sizeof...(I)>
 
template<int N, int I0 = 0, class F >
constexpr auto o2::math_utils::detail::row_offsets_utils::make (F f) -> gpu::gpustd::array< int, N >
 
template<class T , unsigned int D1, unsigned int D2, class R , typename Y , typename X = Y>
requires (sizeof(typename X::traits_type::pos_type) != 0)
 o2::math_utils::detail::GPUd () X &operator<<(Y &y
 
template<class T , unsigned int D1, unsigned int D2, class R >
const SMatrixGPU< T, D1, D2, R > & o2::math_utils::detail::GPUdi () SMatrixGPU< T
 
template<class T , unsigned int D1, unsigned int D2, class R >
 o2::math_utils::detail::GPUdi () SMatrixGPU< T
 
template<class R2 >
 o2::math_utils::detail::GPUd () SMatrixGPU< T
 
template<class T >
 o2::math_utils::detail::GPUdi () int nint(T x)
 
template<class T , unsigned int D1, unsigned int D2, class R >
 o2::math_utils::detail::GPUdi () const T &SMatrixGPU< T
 
template<class T , unsigned int D1, unsigned int D, unsigned int D2, class R1 , class R2 >
 o2::math_utils::detail::GPUdi () Expr< MatrixMulOpGPU< SMatrixGPU< T
 
MultPolicyGPU< T, R1, R2 >::RepType o2::math_utils::detail::operator* (const SMatrixGPU< T, D1, D, R1 > &lhs, const SMatrixGPU< T, D, D2, R2 > &rhs)
 
D1 o2::math_utils::detail::operator* (const SMatrixGPU< T, D1, D2, R > &rhs, const SVectorGPU< T, D2 > &lhs)
 
TranspPolicyGPU< T, D1, D2, R >::RepType o2::math_utils::detail::Transpose (const SMatrixGPU< T, D1, D2, R > &rhs)
 
MatRepSymGPU< T, D1o2::math_utils::detail::Similarity (const SMatrixGPU< T, D1, D2, R > &lhs, const SMatrixGPU< T, D2, D2, MatRepSymGPU< T, D2 > > &rhs)
 

Variables

Do2::math_utils::detail::lhs
 
D const SVectorGPU< T, D > & o2::math_utils::detail::rhs
 
const SMatrixGPU< T, D1, D2, Ro2::math_utils::detail::D1
 
const SMatrixGPU< T, D1, D2, Ro2::math_utils::detail::D2
 
 o2::math_utils::detail::D
 
 o2::math_utils::detail::R1
 
 o2::math_utils::detail::SMatrixGPU< T, D, D2, R2 >
 
 o2::math_utils::detail::T
 
 o2::math_utils::detail::R
 

Detailed Description

This is a close porting of the SMatrix and SVectorGPU ROOT interfaces. Only parts strictly requiring STD library have been changed. Also some utilities to have basic checks and printouts working on GPUs have been rewritten.

Author
Matteo Concas mconc.nosp@m.as@c.nosp@m.ern.c.nosp@m.h

Other than that, the author is not taking any credit on the methodologies implemented which have been taken straight from root source code

Original sources are on the official website:

Definition in file SMatrixGPU.h.

Macro Definition Documentation

◆ GPU_STATIC_CHECK

#define GPU_STATIC_CHECK (   expr,
  msg 
)
Value:
{ \
class ERROR_##msg \
{ \
}; \
ERROR_##msg e; \
(void)(Check<(expr) != 0>(&e)); \
}
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)
uint64_t const void const *restrict const msg
Definition x9.h:153

Definition at line 44 of file SMatrixGPU.h.