SIRIUS 7.5.0
Electronic structure library and applications
Classes | Namespaces | Typedefs | Functions | Variables
acc_common.hpp File Reference

Common device functions used by GPU kernels. More...

Go to the source code of this file.

Classes

struct  sirius::Real< gpu_complex_type< float > >
 
struct  sirius::Real< gpu_complex_type< double > >
 

Namespaces

module  sirius
 Namespace of the SIRIUS library.
 
namespace  sirius::acc
 Namespace for accelerator-related functions.
 

Typedefs

template<typename T >
using sirius::real_type = typename Real< T >::type
 

Functions

__device__ size_t sirius::acc::array2D_offset (int i0, int i1, int ld0)
 
__device__ size_t sirius::acc::array3D_offset (int i0, int i1, int i2, int ld0, int ld1)
 
__device__ size_t sirius::acc::array4D_offset (int i0, int i1, int i2, int i3, int ld0, int ld1, int ld2)
 
__host__ __device__ int sirius::acc::num_blocks (int length, int block_size)
 
__device__ auto sirius::acc::add_accNumbers (double x, double y)
 
__device__ auto sirius::acc::add_accNumbers (float x, float y)
 
__device__ auto sirius::acc::add_accNumbers (gpu_complex_type< double > x, gpu_complex_type< double > y)
 
__device__ auto sirius::acc::add_accNumbers (gpu_complex_type< float > x, gpu_complex_type< float > y)
 
__device__ auto sirius::acc::sub_accNumbers (double x, double y)
 
__device__ auto sirius::acc::sub_accNumbers (float x, float y)
 
__device__ auto sirius::acc::sub_accNumbers (gpu_complex_type< double > x, gpu_complex_type< double > y)
 
__device__ auto sirius::acc::sub_accNumbers (gpu_complex_type< float > x, gpu_complex_type< float > y)
 
__device__ auto sirius::acc::make_accComplex (float x, float y)
 
__device__ auto sirius::acc::make_accComplex (double x, double y)
 
__device__ auto sirius::acc::mul_accNumbers (gpu_complex_type< double > x, gpu_complex_type< double > y)
 
__device__ auto sirius::acc::mul_accNumbers (double x, gpu_complex_type< double > y)
 
__device__ auto sirius::acc::mul_accNumbers (gpu_complex_type< float > x, gpu_complex_type< float > y)
 
__device__ auto sirius::acc::mul_accNumbers (float x, gpu_complex_type< float > y)
 
template<typename T >
__device__ auto sirius::acc::accZero ()
 
template<>
__device__ auto sirius::acc::accZero< double > ()
 
template<>
__device__ auto sirius::acc::accZero< float > ()
 
template<>
__device__ auto sirius::acc::accZero< gpu_complex_type< double > > ()
 
template<>
__device__ auto sirius::acc::accZero< gpu_complex_type< float > > ()
 
bool __device__ sirius::acc::is_zero (gpu_complex_type< float > x)
 
bool __device__ sirius::acc::is_zero (gpu_complex_type< double > x)
 
bool __device__ sirius::acc::is_zero (float x)
 
bool __device__ sirius::acc::is_zero (double x)
 

Variables

const double sirius::acc::twopi = 6.2831853071795864769
 

Detailed Description

Common device functions used by GPU kernels.

Definition in file acc_common.hpp.