DFT-EFE
 
Loading...
Searching...
No Matches
dftefe::utils Namespace Reference

Namespaces

namespace  mathConstants
 
namespace  mathFunctions
 
namespace  mpi
 
namespace  PeriodicTableInternal
 
namespace  SplineInternal
 
namespace  splineInternal
 
namespace  stringOps
 
namespace  TimerInternal
 

Classes

class  ConditionalOStream
 Provides an interface to print based on whether a certain condition is met or not. Typical use cases include: (a) printing based on different verbosity level (b) printing only from a certain processor while running in parallel. More...
 
class  ConditionalOStreamDefaults
 
class  DiscontiguousDataOperations
 
class  ExpModX
 
class  LogModX
 
class  MemoryManager
 
class  MemoryManager< ValueType, MemorySpace::HOST >
 
class  MemoryStorage
 
class  MemoryTransfer
 
class  MemoryTransfer< MemorySpace::HOST, MemorySpace::HOST >
 
class  MPICommunicatorP2PKernels
 
class  OptimizedIndexSet
 
class  PeriodicTableManager
 Provides a map from Atomic Number to Atomic Symbol. More...
 
class  PointChargePotentialFunction
 
class  PointImpl
 
class  Profiler
 
class  RandNumGen
 
class  RandNumGen< double >
 
class  RandNumGen< float >
 
class  RandNumGen< int >
 
class  RandNumGen< long >
 
class  RandNumGen< long double >
 
class  RandNumGen< long long >
 
class  RandNumGen< short >
 
class  RandNumGen< std::complex< double > >
 
class  RandNumGen< std::complex< float > >
 
class  RandNumGen< std::complex< long double > >
 
class  RandNumGen< unsigned int >
 
class  RandNumGen< unsigned long >
 
class  RandNumGen< unsigned long long >
 
class  RandNumGen< unsigned short >
 
class  ScalarSpatialFunction
 Abstract base for scalar functions of a spatial point. More...
 
class  ScalarSpatialFunctionReal1D
 Abstract base for scalar functions of a single real variable. More...
 
class  ScalarZeroFunctionReal
 
class  SmearChargeDensityFunction
 
class  SmearChargePotentialFunction
 
class  Spline
 
class  Timer
 
class  Types
 
class  Types< char >
 
class  Types< double >
 
class  Types< float >
 
class  Types< int >
 
class  Types< long int >
 
class  Types< short int >
 
class  Types< std::complex< double > >
 
class  Types< std::complex< float > >
 
class  Types< std::string >
 
class  Types< unsigned int >
 
class  Types< unsigned long int >
 
class  Types< unsigned short int >
 

Typedefs

typedef cudaError_t deviceError_t
 
typedef cudaStream_t deviceStream_t
 
typedef cudaEvent_t deviceEvent_t
 
typedef cuDoubleComplex deviceDoubleComplex
 
typedef cuFloatComplex deviceFloatComplex
 
typedef cublasHandle_t deviceBlasHandle_t
 
typedef cublasOperation_t deviceBlasOperation_t
 
typedef cublasStatus_t deviceBlasStatus_t
 
typedef cublasComputeType_t deviceBlasComputeType_t
 
typedef cudaDataType deviceDataType_t
 
typedef __nv_bfloat16 __device_bfloat16
 
typedef __nv_bfloat162 __device_bfloat162
 
typedef std::logic_error LogicError
 
typedef std::invalid_argument InvalidArgument
 
typedef std::domain_error DomainError
 
typedef std::length_error LengthError
 
typedef std::out_of_range OutOfRangeError
 
typedef std::runtime_error RuntimeError
 
typedef std::overflow_error OverflowError
 
typedef std::underflow_error UnderflowError
 
typedef PointImpl< double > Point
 
template<typename Q >
using ScalarSpatialFunctionT = ScalarSpatialFunction< Q >
 
using ScalarSpatialFunctionReal = ScalarSpatialFunction< double >
 
using ScalarSpatialFunctionComplex = ScalarSpatialFunction< std::complex< double > >
 

Enumerations

enum class  MemorySpace { HOST , HOST_PINNED , DEVICE }
 

Functions

unsigned int abs_ (unsigned int a)
 
int abs_ (int a)
 
double abs_ (double a)
 
float abs_ (float a)
 
double abs_ (std::complex< double > a)
 
float abs_ (std::complex< float > a)
 
unsigned int absSq (unsigned int a)
 
int absSq (int a)
 
double absSq (double a)
 
float absSq (float a)
 
double absSq (std::complex< double > a)
 
float absSq (std::complex< float > a)
 
template<typename ValueType >
bool absCompare (ValueType a, ValueType b)
 
template<typename T >
RealType< T >::Type realPart (const T &x)
 
template<>
RealType< float >::Type realPart (const float &x)
 
template<>
RealType< double >::Type realPart (const double &x)
 
template<>
RealType< std::complex< float > >::Type realPart (const std::complex< float > &x)
 
template<>
RealType< std::complex< double > >::Type realPart (const std::complex< double > &x)
 
template<typename T >
RealType< T >::Type imagPart (const T &x)
 
template<>
RealType< float >::Type imagPart (const float &x)
 
template<>
RealType< double >::Type imagPart (const double &x)
 
template<>
RealType< std::complex< float > >::Type imagPart (const std::complex< float > &x)
 
template<>
RealType< std::complex< double > >::Type imagPart (const std::complex< double > &x)
 
template<typename T >
conjugate (const T &x)
 
template<>
float conjugate (const float &x)
 
template<>
double conjugate (const double &x)
 
template<>
std::complex< float > conjugate (const std::complex< float > &x)
 
template<>
std::complex< double > conjugate (const std::complex< double > &x)
 
template<typename T1 , typename T2 >
__device__ void atomicAddWrapper (T1 *addr, T2 value)
 
__forceinline__ __device__ cuDoubleComplex makeComplex (double realPart, double imagPart)
 
__forceinline__ __device__ cuFloatComplex makeComplex (float realPart, float imagPart)
 
__forceinline__ __device__ void copyValue (double *a, const double b)
 
__forceinline__ __device__ void copyValue (float *a, const float b)
 
__forceinline__ __device__ void copyValue (cuDoubleComplex *a, const cuDoubleComplex b)
 
__forceinline__ __device__ void copyValue (cuFloatComplex *a, const cuFloatComplex b)
 
__forceinline__ __device__ void copyValue (float *a, const double b)
 
__forceinline__ __device__ void copyValue (double *a, const float b)
 
__forceinline__ __device__ void copyValue (cuDoubleComplex *a, const cuFloatComplex b)
 
__forceinline__ __device__ void copyValue (cuFloatComplex *a, const cuDoubleComplex b)
 
__forceinline__ __device__ void copyValue (cuDoubleComplex *a, const double b)
 
__forceinline__ __device__ void copyValue (cuFloatComplex *a, const float b)
 
__forceinline__ __device__ void copyValue (cuDoubleComplex *a, const float b)
 
__forceinline__ __device__ void copyValue (cuFloatComplex *a, const double b)
 
__forceinline__ __device__ double realPartDevice (double a)
 
__forceinline__ __device__ float realPartDevice (float a)
 
__forceinline__ __device__ double realPartDevice (cuDoubleComplex a)
 
__forceinline__ __device__ float realPartDevice (cuFloatComplex a)
 
__forceinline__ __device__ double imagPartDevice (double a)
 
__forceinline__ __device__ float imagPartDevice (float a)
 
__forceinline__ __device__ double imagPartDevice (cuDoubleComplex a)
 
__forceinline__ __device__ float imagPartDevice (cuFloatComplex a)
 
__forceinline__ __device__ double abs (double a)
 
__forceinline__ __device__ float abs (float a)
 
__forceinline__ __device__ double abs (cuDoubleComplex a)
 
__forceinline__ __device__ float abs (cuFloatComplex a)
 
__forceinline__ __device__ unsigned int conj (unsigned int a)
 
__forceinline__ __device__ unsigned long int conj (unsigned long int a)
 
__forceinline__ __device__ int conj (int a)
 
__forceinline__ __device__ float conj (float a)
 
__forceinline__ __device__ double conj (double a)
 
__forceinline__ __device__ cuDoubleComplex conj (cuDoubleComplex a)
 
__forceinline__ __device__ cuFloatComplex conj (cuFloatComplex a)
 
__forceinline__ __device__ unsigned int mult (unsigned int a, unsigned int b)
 
__forceinline__ __device__ unsigned long int mult (unsigned long int a, unsigned long int b)
 
__forceinline__ __device__ int mult (int a, int b)
 
__forceinline__ __device__ double mult (double a, double b)
 
__forceinline__ __device__ float mult (float a, float b)
 
__forceinline__ __device__ double mult (float a, double b)
 
__forceinline__ __device__ double mult (double a, float b)
 
__forceinline__ __device__ cuDoubleComplex mult (cuDoubleComplex a, cuDoubleComplex b)
 
__forceinline__ __device__ cuFloatComplex mult (cuFloatComplex a, cuFloatComplex b)
 
__forceinline__ __device__ cuDoubleComplex mult (cuFloatComplex a, cuDoubleComplex b)
 
__forceinline__ __device__ cuDoubleComplex mult (cuDoubleComplex a, cuFloatComplex b)
 
__forceinline__ __device__ cuDoubleComplex mult (double a, cuDoubleComplex b)
 
__forceinline__ __device__ cuDoubleComplex mult (cuDoubleComplex a, double b)
 
__forceinline__ __device__ cuFloatComplex mult (float a, cuFloatComplex b)
 
__forceinline__ __device__ cuFloatComplex mult (cuFloatComplex a, float b)
 
__forceinline__ __device__ cuDoubleComplex mult (double a, cuFloatComplex b)
 
__forceinline__ __device__ cuDoubleComplex mult (cuFloatComplex a, double b)
 
__forceinline__ __device__ unsigned int add (unsigned int a, unsigned int b)
 
__forceinline__ __device__ unsigned long int add (unsigned long int a, unsigned long int b)
 
__forceinline__ __device__ int add (int a, int b)
 
__forceinline__ __device__ double add (double a, double b)
 
__forceinline__ __device__ float add (float a, float b)
 
__forceinline__ __device__ cuDoubleComplex add (cuDoubleComplex a, cuDoubleComplex b)
 
__forceinline__ __device__ cuFloatComplex add (cuFloatComplex a, cuFloatComplex b)
 
__forceinline__ __device__ double add (double a, float b)
 
__forceinline__ __device__ double add (float a, double b)
 
__forceinline__ __device__ cuDoubleComplex add (cuDoubleComplex a, cuFloatComplex b)
 
__forceinline__ __device__ cuDoubleComplex add (cuFloatComplex a, cuDoubleComplex b)
 
__forceinline__ __device__ unsigned int sub (unsigned int a, unsigned int b)
 
__forceinline__ __device__ unsigned long int sub (unsigned long int a, unsigned long int b)
 
__forceinline__ __device__ int sub (int a, int b)
 
__forceinline__ __device__ double sub (double a, double b)
 
__forceinline__ __device__ float sub (float a, float b)
 
__forceinline__ __device__ cuDoubleComplex sub (cuDoubleComplex a, cuDoubleComplex b)
 
__forceinline__ __device__ cuFloatComplex sub (cuFloatComplex a, cuFloatComplex b)
 
__forceinline__ __device__ unsigned int div (unsigned int a, unsigned int b)
 
__forceinline__ __device__ unsigned long int div (unsigned long int a, unsigned long int b)
 
__forceinline__ __device__ int div (int a, int b)
 
__forceinline__ __device__ double div (double a, double b)
 
__forceinline__ __device__ float div (float a, float b)
 
__forceinline__ __device__ double div (float a, double b)
 
__forceinline__ __device__ double div (double a, float b)
 
__forceinline__ __device__ cuDoubleComplex div (cuDoubleComplex a, cuDoubleComplex b)
 
__forceinline__ __device__ cuFloatComplex div (cuFloatComplex a, cuFloatComplex b)
 
__forceinline__ __device__ cuDoubleComplex div (cuFloatComplex a, cuDoubleComplex b)
 
__forceinline__ __device__ cuDoubleComplex div (cuDoubleComplex a, cuFloatComplex b)
 
__forceinline__ __device__ cuDoubleComplex div (double a, cuDoubleComplex b)
 
__forceinline__ __device__ cuDoubleComplex div (cuDoubleComplex a, double b)
 
__forceinline__ __device__ cuFloatComplex div (float a, cuFloatComplex b)
 
__forceinline__ __device__ cuFloatComplex div (cuFloatComplex a, float b)
 
__forceinline__ __device__ cuDoubleComplex div (double a, cuFloatComplex b)
 
__forceinline__ __device__ cuDoubleComplex div (cuFloatComplex a, double b)
 
int * makeDataTypeDeviceCompatible (int *a)
 
const int * makeDataTypeDeviceCompatible (const int *a)
 
long int * makeDataTypeDeviceCompatible (long int *a)
 
const long int * makeDataTypeDeviceCompatible (const long int *a)
 
long long int * makeDataTypeDeviceCompatible (long long int *a)
 
const long long int * makeDataTypeDeviceCompatible (const long long int *a)
 
unsigned int * makeDataTypeDeviceCompatible (unsigned int *a)
 
const unsigned int * makeDataTypeDeviceCompatible (const unsigned int *a)
 
unsigned long int * makeDataTypeDeviceCompatible (unsigned long int *a)
 
const unsigned long int * makeDataTypeDeviceCompatible (const unsigned long int *a)
 
unsigned long long int * makeDataTypeDeviceCompatible (unsigned long long int *a)
 
const unsigned long long int * makeDataTypeDeviceCompatible (const unsigned long long int *a)
 
double * makeDataTypeDeviceCompatible (double *a)
 
const double * makeDataTypeDeviceCompatible (const double *a)
 
float * makeDataTypeDeviceCompatible (float *a)
 
const float * makeDataTypeDeviceCompatible (const float *a)
 
cuDoubleComplex * makeDataTypeDeviceCompatible (std::complex< double > *a)
 
const cuDoubleComplex * makeDataTypeDeviceCompatible (const std::complex< double > *a)
 
cuFloatComplex * makeDataTypeDeviceCompatible (std::complex< float > *a)
 
const cuFloatComplex * makeDataTypeDeviceCompatible (const std::complex< float > *a)
 
int makeDataTypeDeviceCompatible (int a)
 
long int makeDataTypeDeviceCompatible (long int a)
 
unsigned int makeDataTypeDeviceCompatible (unsigned int a)
 
unsigned long int makeDataTypeDeviceCompatible (unsigned long int a)
 
double makeDataTypeDeviceCompatible (double a)
 
float makeDataTypeDeviceCompatible (float a)
 
cuDoubleComplex makeDataTypeDeviceCompatible (std::complex< double > a)
 
cuFloatComplex makeDataTypeDeviceCompatible (std::complex< float > a)
 
bool makeDataTypeDeviceCompatible (bool a)
 
bool * makeDataTypeDeviceCompatible (bool *a)
 
__forceinline__ __device__ void copyValue (hipDoubleComplex *a, const hipDoubleComplex b)
 
__forceinline__ __device__ void copyValue (hipFloatComplex *a, const hipFloatComplex b)
 
__forceinline__ __device__ void copyValue (hipDoubleComplex *a, const hipFloatComplex b)
 
__forceinline__ __device__ void copyValue (hipFloatComplex *a, const hipDoubleComplex b)
 
__forceinline__ __device__ void copyValue (hipDoubleComplex *a, const double b)
 
__forceinline__ __device__ void copyValue (hipFloatComplex *a, const float b)
 
__forceinline__ __device__ void copyValue (hipDoubleComplex *a, const float b)
 
__forceinline__ __device__ void copyValue (hipFloatComplex *a, const double b)
 
__forceinline__ __device__ double realPartDevice (hipDoubleComplex a)
 
__forceinline__ __device__ float realPartDevice (hipFloatComplex a)
 
__forceinline__ __device__ double imagPartDevice (hipDoubleComplex a)
 
__forceinline__ __device__ float imagPartDevice (hipFloatComplex a)
 
__forceinline__ __device__ double abs (hipDoubleComplex a)
 
__forceinline__ __device__ float abs (hipFloatComplex a)
 
__forceinline__ __device__ hipDoubleComplex conj (hipDoubleComplex a)
 
__forceinline__ __device__ hipFloatComplex conj (hipFloatComplex a)
 
__forceinline__ __device__ hipDoubleComplex mult (hipDoubleComplex a, hipDoubleComplex b)
 
__forceinline__ __device__ hipFloatComplex mult (hipFloatComplex a, hipFloatComplex b)
 
__forceinline__ __device__ hipDoubleComplex mult (hipFloatComplex a, hipDoubleComplex b)
 
__forceinline__ __device__ hipDoubleComplex mult (hipDoubleComplex a, hipFloatComplex b)
 
__forceinline__ __device__ hipDoubleComplex mult (double a, hipDoubleComplex b)
 
__forceinline__ __device__ hipDoubleComplex mult (hipDoubleComplex a, double b)
 
__forceinline__ __device__ hipFloatComplex mult (float a, hipFloatComplex b)
 
__forceinline__ __device__ hipFloatComplex mult (hipFloatComplex a, float b)
 
__forceinline__ __device__ hipDoubleComplex mult (double a, hipFloatComplex b)
 
__forceinline__ __device__ hipDoubleComplex mult (hipFloatComplex a, double b)
 
__forceinline__ __device__ hipDoubleComplex add (hipDoubleComplex a, hipDoubleComplex b)
 
__forceinline__ __device__ hipFloatComplex add (hipFloatComplex a, hipFloatComplex b)
 
__forceinline__ __device__ hipDoubleComplex add (hipDoubleComplex a, hipFloatComplex b)
 
__forceinline__ __device__ hipDoubleComplex add (hipFloatComplex a, hipDoubleComplex b)
 
__forceinline__ __device__ hipDoubleComplex sub (hipDoubleComplex a, hipDoubleComplex b)
 
__forceinline__ __device__ hipFloatComplex sub (hipFloatComplex a, hipFloatComplex b)
 
__forceinline__ __device__ hipDoubleComplex div (hipDoubleComplex a, hipDoubleComplex b)
 
__forceinline__ __device__ hipFloatComplex div (hipFloatComplex a, hipFloatComplex b)
 
__forceinline__ __device__ hipDoubleComplex div (hipFloatComplex a, hipDoubleComplex b)
 
__forceinline__ __device__ hipDoubleComplex div (hipDoubleComplex a, hipFloatComplex b)
 
__forceinline__ __device__ hipDoubleComplex div (double a, hipDoubleComplex b)
 
__forceinline__ __device__ hipDoubleComplex div (hipDoubleComplex a, double b)
 
__forceinline__ __device__ hipFloatComplex div (float a, hipFloatComplex b)
 
__forceinline__ __device__ hipFloatComplex div (hipFloatComplex a, float b)
 
__forceinline__ __device__ hipDoubleComplex div (double a, hipFloatComplex b)
 
__forceinline__ __device__ hipDoubleComplex div (hipFloatComplex a, double b)
 
template<typename T1 , typename T2 >
void atomicAddWrapper (T1 *addr, T2 value)
 
void copyValue (std::complex< double > *a, const std::complex< double > b)
 
void copyValue (std::complex< float > *a, const std::complex< float > b)
 
void copyValue (std::complex< double > *a, const std::complex< float > b)
 
void copyValue (std::complex< float > *a, const std::complex< double > b)
 
void copyValue (std::complex< double > *a, const double b)
 
void copyValue (std::complex< float > *a, const float b)
 
void copyValue (std::complex< double > *a, const float b)
 
void copyValue (std::complex< float > *a, const double b)
 
double realPartDevice (std::complex< double > a)
 
float realPartDevice (std::complex< float > a)
 
double imagPartDevice (std::complex< double > a)
 
float imagPartDevice (std::complex< float > a)
 
double abs (std::complex< double > a)
 
float abs (std::complex< float > a)
 
std::complex< double > conj (std::complex< double > a)
 
std::complex< float > conj (std::complex< float > a)
 
std::complex< double > mult (std::complex< double > a, std::complex< double > b)
 
std::complex< float > mult (std::complex< float > a, std::complex< float > b)
 
std::complex< double > mult (std::complex< float > a, std::complex< double > b)
 
std::complex< double > mult (std::complex< double > a, std::complex< float > b)
 
std::complex< double > mult (double a, std::complex< double > b)
 
std::complex< double > mult (std::complex< double > a, double b)
 
std::complex< float > mult (float a, std::complex< float > b)
 
std::complex< float > mult (std::complex< float > a, float b)
 
std::complex< double > mult (double a, std::complex< float > b)
 
std::complex< double > mult (std::complex< float > a, double b)
 
std::complex< double > add (std::complex< double > a, std::complex< double > b)
 
std::complex< float > add (std::complex< float > a, std::complex< float > b)
 
std::complex< double > add (std::complex< double > a, std::complex< float > b)
 
std::complex< double > add (std::complex< float > a, std::complex< double > b)
 
std::complex< double > sub (std::complex< double > a, std::complex< double > b)
 
std::complex< float > sub (std::complex< float > a, std::complex< float > b)
 
std::complex< double > div (std::complex< double > a, std::complex< double > b)
 
std::complex< float > div (std::complex< float > a, std::complex< float > b)
 
std::complex< double > div (std::complex< float > a, std::complex< double > b)
 
std::complex< double > div (std::complex< double > a, std::complex< float > b)
 
std::complex< double > div (double a, std::complex< double > b)
 
std::complex< double > div (std::complex< double > a, double b)
 
std::complex< float > div (float a, std::complex< float > b)
 
std::complex< float > div (std::complex< float > a, float b)
 
std::complex< double > div (double a, std::complex< float > b)
 
std::complex< double > div (std::complex< float > a, double b)
 
__forceinline__ __device__ void copyValue (__device_bfloat16 *a, const float b)
 
__forceinline__ __device__ void copyValue (__device_bfloat16 *a, const double b)
 
__forceinline__ __device__ void copyValue (__device_bfloat162 *a, const cuFloatComplex b)
 
__forceinline__ __device__ void copyValue (__device_bfloat162 *a, const cuDoubleComplex b)
 
__forceinline__ __device__ void copyValue (float *a, const __device_bfloat16 b)
 
__forceinline__ __device__ void copyValue (double *a, const __device_bfloat16 b)
 
__forceinline__ __device__ void copyValue (cuFloatComplex *a, const __device_bfloat162 b)
 
__forceinline__ __device__ void copyValue (cuDoubleComplex *a, const __device_bfloat162 b)
 
__forceinline__ __device__ float realPartDevice (const __device_bfloat162 a)
 
__forceinline__ __device__ float imagPartDevice (const __device_bfloat162 a)
 
__device_bfloat16 makeDataTypeDeviceCompatible (uint16_t a)
 
__device_bfloat16makeDataTypeDeviceCompatible (uint16_t *a)
 
const __device_bfloat16makeDataTypeDeviceCompatible (const uint16_t *a)
 
__device_bfloat162 makeDataTypeDeviceCompatible (std::complex< uint16_t > a)
 
__device_bfloat162makeDataTypeDeviceCompatible (std::complex< uint16_t > *a)
 
const __device_bfloat162makeDataTypeDeviceCompatible (const std::complex< uint16_t > *a)
 
__forceinline__ __device__ void copyValue (__device_bfloat162 *a, const hipFloatComplex b)
 
__forceinline__ __device__ void copyValue (__device_bfloat162 *a, const hipDoubleComplex b)
 
__forceinline__ __device__ void copyValue (hipFloatComplex *a, const __device_bfloat162 b)
 
__forceinline__ __device__ void copyValue (hipDoubleComplex *a, const __device_bfloat162 b)
 
float __bfloat162float (__device_bfloat16 bf16)
 
__device_bfloat16 __float2bfloat16 (float f)
 
__device_bfloat16 __sycl_bfloat16_raw (uint16_t a)
 
void copyValue (__device_bfloat162 *a, const std::complex< float > &b)
 
void copyValue (__device_bfloat162 *a, const std::complex< double > &b)
 
void copyValue (float *a, const __device_bfloat16 &b)
 
void copyValue (double *a, const __device_bfloat16 &b)
 
void copyValue (std::complex< float > *a, const __device_bfloat162 &b)
 
void copyValue (std::complex< double > *a, const __device_bfloat162 &b)
 
void throwException (bool condition, std::string msg)
 
template<class T >
void throwException (bool condition, std::string msg="")
 
template<typename ValueType , utils::MemorySpace memorySpaceDst>
MemoryStorage< ValueType, memorySpaceDst > memoryStorageFromSTL (const std::vector< ValueType > &src)
 Create a MemoryStorage object from an input C++ STL vector. More...
 
template<typename ValueType , dftefe::utils::MemorySpace memorySpace>
void swap (MemoryStorage< ValueType, memorySpace > &X, MemoryStorage< ValueType, memorySpace > &Y)
 
template<>
double getRealPart (const std::complex< float > &t)
 
template<>
double getRealPart (const std::complex< double > &t)
 
template<>
double getImagPart (const std::complex< float > &t)
 
template<>
double getImagPart (const std::complex< double > &t)
 
template<typename T >
double getRealPart (const T &t)
 
template<typename T >
double getImagPart (const T &t)
 
template<typename T >
double getAbs (const T &t)
 
template<typename T >
PointImpl< T > & operator*= (PointImpl< T > &p, T a)
 In-plance multiplication of the point by a scalar p->p*a. More...
 
template<typename T >
PointImpl< T > operator* (const PointImpl< T > &p, T a)
 Multiplication by a scalar q = p*a. More...
 
template<typename T >
PointImpl< T > operator* (T a, const PointImpl< T > &p)
 Multiplication by a scalar q = p*a. More...
 
template<typename T >
PointImpl< T > & operator+= (PointImpl< T > &p, const PointImpl< T > &q)
 In-place addition of two pointts p-> p + q. More...
 
template<typename T >
PointImpl< T > operator+ (const PointImpl< T > &v, const PointImpl< T > &u)
 Addition of two points r = p + q. More...
 
template<typename T >
PointImpl< T > & operator-= (PointImpl< T > &p, const PointImpl< T > &q)
 In-place subtraction of two points p -> p - q;. More...
 
template<typename T >
PointImpl< T > operator- (const PointImpl< T > &p, const PointImpl< T > &q)
 Subtraction of two points = p - q. More...
 
template<typename T >
std::ostream & operator<< (std::ostream &outputStream, const PointImpl< T > &p)
 Output perator. More...
 
template<typename T >
std::vector< T > flatten (const std::vector< PointImpl< T > > &pts)
 Flatten a vector of points into a contiguous coordinate array. Output layout: [x0,y0,z0, x1,y1,z1, ...] of size pts.size()*dim. More...
 
template<dftefe::utils::MemorySpace memorySpace>
static void printCurrentMemoryUsage (const utils::mpi::MPIComm &mpiComm, const std::string message)
 
template<>
Spline::Func< utils::MemorySpace::HOSTSpline::getFunc< utils::MemorySpace::HOST > () const
 
template<>
void Spline::evalAll< utils::MemorySpace::HOST > (size_type n, const double *x, double *y, utils::deviceStream_t streamId) const
 
template<>
void Spline::derivAll< utils::MemorySpace::HOST > (size_type n, int order, const double *x, double *y, utils::deviceStream_t streamId) const
 

Variables

static const deviceError_t deviceSuccess = cudaSuccess
 
static const cublasOperation_t DEVICEBLAS_OP_N = CUBLAS_OP_N
 
static const cublasOperation_t DEVICEBLAS_OP_T = CUBLAS_OP_T
 
static const cublasOperation_t DEVICEBLAS_OP_C = CUBLAS_OP_C
 
static const cublasComputeType_t DEVICEBLAS_COMPUTE_32F
 
static const cublasComputeType_t DEVICEBLAS_COMPUTE_32F_FAST_TF32
 
static const cublasComputeType_t DEVICEBLAS_COMPUTE_32F_FAST_16BF
 
static const cublasComputeType_t DEVICEBLAS_COMPUTE_32F_FAST_16F
 
static const cublasGemmAlgo_t DEVICEBLAS_GEMM_DEFAULT = CUBLAS_GEMM_DEFAULT
 
static const cudaDataType DEVICE_R_64F = CUDA_R_64F
 
static const cudaDataType DEVICE_R_32F = CUDA_R_32F
 
static const cudaDataType DEVICE_R_16F = CUDA_R_16F
 
static const cudaDataType DEVICE_R_16BF = CUDA_R_16BF
 
static const cudaDataType DEVICE_C_64F = CUDA_C_64F
 
static const cudaDataType DEVICE_C_32F = CUDA_C_32F
 
static const cudaDataType DEVICE_C_16F = CUDA_C_16F
 
static const cudaDataType DEVICE_C_16BF = CUDA_C_16BF
 
static cudaStream_t defaultStream = 0
 
static deviceStream_t defaultStream = 0
 
static const deviceError_t deviceSuccess = hipSuccess
 
static const hipblasOperation_t DEVICEBLAS_OP_N = HIPBLAS_OP_N
 
static const hipblasOperation_t DEVICEBLAS_OP_T = HIPBLAS_OP_T
 
static const hipblasOperation_t DEVICEBLAS_OP_C = HIPBLAS_OP_C
 
static const hipblasComputeType_t DEVICEBLAS_COMPUTE_32F
 
static const hipblasComputeType_t DEVICEBLAS_COMPUTE_32F_FAST_TF32
 
static const hipblasComputeType_t DEVICEBLAS_COMPUTE_32F_FAST_16BF
 
static const hipblasComputeType_t DEVICEBLAS_COMPUTE_32F_FAST_16F
 
static const hipblasGemmAlgo_t DEVICEBLAS_GEMM_DEFAULT
 
static const hipDataType DEVICE_R_64F = HIP_R_64F
 
static const hipDataType DEVICE_R_32F = HIP_R_32F
 
static const hipDataType DEVICE_R_16F = HIP_R_16F
 
static const hipDataType DEVICE_R_16BF = HIP_R_16BF
 
static const hipDataType DEVICE_C_64F = HIP_C_64F
 
static const hipDataType DEVICE_C_32F = HIP_C_32F
 
static const hipDataType DEVICE_C_16F = HIP_C_16F
 
static const hipDataType DEVICE_C_16BF = HIP_C_16BF
 
static hipStream_t defaultStream = 0
 
static std::error_code deviceSuccess = make_error_code(sycl::errc::success)
 
static const sycl::info::event_command_status deviceBlasSuccess
 
static const oneapi::mkl::transpose DEVICEBLAS_OP_N
 
static const oneapi::mkl::transpose DEVICEBLAS_OP_T
 
static const oneapi::mkl::transpose DEVICEBLAS_OP_C
 
static const oneapi::mkl::blas::compute_mode DEVICEBLAS_COMPUTE_32F
 
static const oneapi::mkl::blas::compute_mode DEVICEBLAS_COMPUTE_32F_FAST_TF32
 
static const oneapi::mkl::blas::compute_mode DEVICEBLAS_COMPUTE_32F_FAST_16BF
 
static const oneapi::mkl::blas::compute_mode DEVICEBLAS_COMPUTE_32F_FAST_16F
 
static deviceStream_t defaultStream = 0
 
std::vector< sycl::device > allSyclGPUDevices
 
dftefe::uInt syclDeviceId = 0
 
sycl::device syclDevice = allSyclGPUDevices[syclDeviceId]
 
sycl::context syclContext {syclDevice}
 
std::map< dftefe::uInt, sycl::queue > queueRegistry
 
std::set< dftefe::uIntusedStreamIds {defaultStream}
 

Typedef Documentation

◆ __device_bfloat16

typedef sycl::ext::oneapi::bfloat16 dftefe::utils::__device_bfloat16

◆ __device_bfloat162

typedef std::complex< sycl::ext::oneapi::bfloat16 > dftefe::utils::__device_bfloat162

◆ deviceBlasComputeType_t

typedef oneapi::mkl::blas::compute_mode dftefe::utils::deviceBlasComputeType_t

◆ deviceBlasHandle_t

typedef sycl::queue dftefe::utils::deviceBlasHandle_t

◆ deviceBlasOperation_t

typedef oneapi::mkl::transpose dftefe::utils::deviceBlasOperation_t

◆ deviceBlasStatus_t

typedef sycl::info::event_command_status dftefe::utils::deviceBlasStatus_t

◆ deviceDataType_t

typedef hipDataType dftefe::utils::deviceDataType_t

◆ deviceDoubleComplex

typedef std::complex< double > dftefe::utils::deviceDoubleComplex

◆ deviceError_t

typedef std::error_code dftefe::utils::deviceError_t

◆ deviceEvent_t

typedef sycl::event dftefe::utils::deviceEvent_t

◆ deviceFloatComplex

typedef std::complex< float > dftefe::utils::deviceFloatComplex

◆ deviceStream_t

◆ DomainError

typedef std::domain_error dftefe::utils::DomainError

◆ InvalidArgument

typedef std::invalid_argument dftefe::utils::InvalidArgument

◆ LengthError

typedef std::length_error dftefe::utils::LengthError

◆ LogicError

typedef std::logic_error dftefe::utils::LogicError

◆ OutOfRangeError

typedef std::out_of_range dftefe::utils::OutOfRangeError

◆ OverflowError

typedef std::overflow_error dftefe::utils::OverflowError

◆ Point

◆ RuntimeError

typedef std::runtime_error dftefe::utils::RuntimeError

◆ ScalarSpatialFunctionComplex

◆ ScalarSpatialFunctionReal

◆ ScalarSpatialFunctionT

template<typename Q >
using dftefe::utils::ScalarSpatialFunctionT = typedef ScalarSpatialFunction<Q>

◆ UnderflowError

typedef std::underflow_error dftefe::utils::UnderflowError

Enumeration Type Documentation

◆ MemorySpace

enum class dftefe::utils::MemorySpace
strong
Enumerator
HOST 
HOST_PINNED 
DEVICE 

Function Documentation

◆ __bfloat162float()

float dftefe::utils::__bfloat162float ( __device_bfloat16  bf16)
inline
Here is the caller graph for this function:

◆ __float2bfloat16()

__device_bfloat16 dftefe::utils::__float2bfloat16 ( float  f)
inline
Here is the caller graph for this function:

◆ __sycl_bfloat16_raw()

__device_bfloat16 dftefe::utils::__sycl_bfloat16_raw ( uint16_t  a)
inline

◆ abs() [1/8]

__forceinline__ __device__ double dftefe::utils::abs ( cuDoubleComplex  a)

◆ abs() [2/8]

__forceinline__ __device__ float dftefe::utils::abs ( cuFloatComplex  a)

◆ abs() [3/8]

double dftefe::utils::abs ( double  a)
inline

◆ abs() [4/8]

float dftefe::utils::abs ( float  a)
inline

◆ abs() [5/8]

__forceinline__ __device__ double dftefe::utils::abs ( hipDoubleComplex  a)

◆ abs() [6/8]

__forceinline__ __device__ float dftefe::utils::abs ( hipFloatComplex  a)

◆ abs() [7/8]

double dftefe::utils::abs ( std::complex< double >  a)
inline

◆ abs() [8/8]

float dftefe::utils::abs ( std::complex< float >  a)
inline

◆ abs_() [1/6]

double dftefe::utils::abs_ ( double  a)
inline

◆ abs_() [2/6]

float dftefe::utils::abs_ ( float  a)
inline

◆ abs_() [3/6]

int dftefe::utils::abs_ ( int  a)
inline

◆ abs_() [4/6]

double dftefe::utils::abs_ ( std::complex< double >  a)
inline

◆ abs_() [5/6]

float dftefe::utils::abs_ ( std::complex< float >  a)
inline

◆ abs_() [6/6]

unsigned int dftefe::utils::abs_ ( unsigned int  a)
inline
Here is the caller graph for this function:

◆ absCompare()

template<typename ValueType >
bool dftefe::utils::absCompare ( ValueType  a,
ValueType  b 
)
inline
Here is the call graph for this function:

◆ absSq() [1/6]

double dftefe::utils::absSq ( double  a)
inline

◆ absSq() [2/6]

float dftefe::utils::absSq ( float  a)
inline

◆ absSq() [3/6]

int dftefe::utils::absSq ( int  a)
inline

◆ absSq() [4/6]

double dftefe::utils::absSq ( std::complex< double >  a)
inline

◆ absSq() [5/6]

float dftefe::utils::absSq ( std::complex< float >  a)
inline

◆ absSq() [6/6]

unsigned int dftefe::utils::absSq ( unsigned int  a)
inline
Here is the caller graph for this function:

◆ add() [1/19]

__forceinline__ __device__ cuDoubleComplex dftefe::utils::add ( cuDoubleComplex  a,
cuDoubleComplex  b 
)

◆ add() [2/19]

__forceinline__ __device__ cuDoubleComplex dftefe::utils::add ( cuDoubleComplex  a,
cuFloatComplex  b 
)

◆ add() [3/19]

__forceinline__ __device__ cuDoubleComplex dftefe::utils::add ( cuFloatComplex  a,
cuDoubleComplex  b 
)

◆ add() [4/19]

__forceinline__ __device__ cuFloatComplex dftefe::utils::add ( cuFloatComplex  a,
cuFloatComplex  b 
)

◆ add() [5/19]

double dftefe::utils::add ( double  a,
double  b 
)
inline

◆ add() [6/19]

double dftefe::utils::add ( double  a,
float  b 
)
inline

◆ add() [7/19]

double dftefe::utils::add ( float  a,
double  b 
)
inline

◆ add() [8/19]

float dftefe::utils::add ( float  a,
float  b 
)
inline

◆ add() [9/19]

__forceinline__ __device__ hipDoubleComplex dftefe::utils::add ( hipDoubleComplex  a,
hipDoubleComplex  b 
)

◆ add() [10/19]

__forceinline__ __device__ hipDoubleComplex dftefe::utils::add ( hipDoubleComplex  a,
hipFloatComplex  b 
)

◆ add() [11/19]

__forceinline__ __device__ hipDoubleComplex dftefe::utils::add ( hipFloatComplex  a,
hipDoubleComplex  b 
)

◆ add() [12/19]

__forceinline__ __device__ hipFloatComplex dftefe::utils::add ( hipFloatComplex  a,
hipFloatComplex  b 
)

◆ add() [13/19]

int dftefe::utils::add ( int  a,
int  b 
)
inline

◆ add() [14/19]

std::complex< double > dftefe::utils::add ( std::complex< double >  a,
std::complex< double >  b 
)
inline

◆ add() [15/19]

std::complex< double > dftefe::utils::add ( std::complex< double >  a,
std::complex< float >  b 
)
inline

◆ add() [16/19]

std::complex< double > dftefe::utils::add ( std::complex< float >  a,
std::complex< double >  b 
)
inline

◆ add() [17/19]

std::complex< float > dftefe::utils::add ( std::complex< float >  a,
std::complex< float >  b 
)
inline

◆ add() [18/19]

unsigned int dftefe::utils::add ( unsigned int  a,
unsigned int  b 
)
inline

◆ add() [19/19]

unsigned long int dftefe::utils::add ( unsigned long int  a,
unsigned long int  b 
)
inline

◆ atomicAddWrapper() [1/2]

template<typename T1 , typename T2 >
__device__ void dftefe::utils::atomicAddWrapper ( T1 *  addr,
T2  value 
)
inline

◆ atomicAddWrapper() [2/2]

template<typename T1 , typename T2 >
void dftefe::utils::atomicAddWrapper ( T1 *  addr,
T2  value 
)
inline

◆ conj() [1/11]

__forceinline__ __device__ cuDoubleComplex dftefe::utils::conj ( cuDoubleComplex  a)

◆ conj() [2/11]

__forceinline__ __device__ cuFloatComplex dftefe::utils::conj ( cuFloatComplex  a)

◆ conj() [3/11]

double dftefe::utils::conj ( double  a)
inline

◆ conj() [4/11]

float dftefe::utils::conj ( float  a)
inline

◆ conj() [5/11]

__forceinline__ __device__ hipDoubleComplex dftefe::utils::conj ( hipDoubleComplex  a)

◆ conj() [6/11]

__forceinline__ __device__ hipFloatComplex dftefe::utils::conj ( hipFloatComplex  a)

◆ conj() [7/11]

int dftefe::utils::conj ( int  a)
inline

◆ conj() [8/11]

std::complex< double > dftefe::utils::conj ( std::complex< double >  a)
inline

◆ conj() [9/11]

std::complex< float > dftefe::utils::conj ( std::complex< float >  a)
inline

◆ conj() [10/11]

unsigned int dftefe::utils::conj ( unsigned int  a)
inline

◆ conj() [11/11]

unsigned long int dftefe::utils::conj ( unsigned long int  a)
inline

◆ conjugate() [1/5]

template<>
double dftefe::utils::conjugate ( const double &  x)
inline

◆ conjugate() [2/5]

template<>
float dftefe::utils::conjugate ( const float &  x)
inline

◆ conjugate() [3/5]

template<>
std::complex< double > dftefe::utils::conjugate ( const std::complex< double > &  x)
inline

◆ conjugate() [4/5]

template<>
std::complex< float > dftefe::utils::conjugate ( const std::complex< float > &  x)
inline

◆ conjugate() [5/5]

template<typename T >
T dftefe::utils::conjugate ( const T &  x)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ copyValue() [1/46]

void dftefe::utils::copyValue ( __device_bfloat16 a,
const double  b 
)
inline
Here is the call graph for this function:

◆ copyValue() [2/46]

void dftefe::utils::copyValue ( __device_bfloat16 a,
const float  b 
)
inline
Here is the call graph for this function:

◆ copyValue() [3/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( __device_bfloat162 a,
const cuDoubleComplex  b 
)
Here is the call graph for this function:

◆ copyValue() [4/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( __device_bfloat162 a,
const cuFloatComplex  b 
)
Here is the call graph for this function:

◆ copyValue() [5/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( __device_bfloat162 a,
const hipDoubleComplex  b 
)
Here is the call graph for this function:

◆ copyValue() [6/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( __device_bfloat162 a,
const hipFloatComplex  b 
)
Here is the call graph for this function:

◆ copyValue() [7/46]

void dftefe::utils::copyValue ( __device_bfloat162 a,
const std::complex< double > &  b 
)
inline
Here is the call graph for this function:

◆ copyValue() [8/46]

void dftefe::utils::copyValue ( __device_bfloat162 a,
const std::complex< float > &  b 
)
inline
Here is the call graph for this function:

◆ copyValue() [9/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( cuDoubleComplex *  a,
const __device_bfloat162  b 
)
Here is the call graph for this function:

◆ copyValue() [10/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( cuDoubleComplex *  a,
const cuDoubleComplex  b 
)

◆ copyValue() [11/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( cuDoubleComplex *  a,
const cuFloatComplex  b 
)

◆ copyValue() [12/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( cuDoubleComplex *  a,
const double  b 
)

◆ copyValue() [13/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( cuDoubleComplex *  a,
const float  b 
)

◆ copyValue() [14/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( cuFloatComplex *  a,
const __device_bfloat162  b 
)
Here is the call graph for this function:

◆ copyValue() [15/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( cuFloatComplex *  a,
const cuDoubleComplex  b 
)

◆ copyValue() [16/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( cuFloatComplex *  a,
const cuFloatComplex  b 
)

◆ copyValue() [17/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( cuFloatComplex *  a,
const double  b 
)

◆ copyValue() [18/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( cuFloatComplex *  a,
const float  b 
)

◆ copyValue() [19/46]

void dftefe::utils::copyValue ( double *  a,
const __device_bfloat16 b 
)
inline
Here is the call graph for this function:

◆ copyValue() [20/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( double *  a,
const __device_bfloat16  b 
)
Here is the call graph for this function:

◆ copyValue() [21/46]

void dftefe::utils::copyValue ( double *  a,
const double  b 
)
inline

◆ copyValue() [22/46]

void dftefe::utils::copyValue ( double *  a,
const float  b 
)
inline

◆ copyValue() [23/46]

void dftefe::utils::copyValue ( float *  a,
const __device_bfloat16 b 
)
inline
Here is the call graph for this function:

◆ copyValue() [24/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( float *  a,
const __device_bfloat16  b 
)
Here is the call graph for this function:

◆ copyValue() [25/46]

void dftefe::utils::copyValue ( float *  a,
const double  b 
)
inline

◆ copyValue() [26/46]

void dftefe::utils::copyValue ( float *  a,
const float  b 
)
inline

◆ copyValue() [27/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( hipDoubleComplex *  a,
const __device_bfloat162  b 
)
Here is the call graph for this function:

◆ copyValue() [28/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( hipDoubleComplex *  a,
const double  b 
)

◆ copyValue() [29/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( hipDoubleComplex *  a,
const float  b 
)

◆ copyValue() [30/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( hipDoubleComplex *  a,
const hipDoubleComplex  b 
)

◆ copyValue() [31/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( hipDoubleComplex *  a,
const hipFloatComplex  b 
)

◆ copyValue() [32/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( hipFloatComplex *  a,
const __device_bfloat162  b 
)
Here is the call graph for this function:

◆ copyValue() [33/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( hipFloatComplex *  a,
const double  b 
)

◆ copyValue() [34/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( hipFloatComplex *  a,
const float  b 
)

◆ copyValue() [35/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( hipFloatComplex *  a,
const hipDoubleComplex  b 
)

◆ copyValue() [36/46]

__forceinline__ __device__ void dftefe::utils::copyValue ( hipFloatComplex *  a,
const hipFloatComplex  b 
)

◆ copyValue() [37/46]

void dftefe::utils::copyValue ( std::complex< double > *  a,
const __device_bfloat162 b 
)
inline
Here is the call graph for this function:

◆ copyValue() [38/46]

void dftefe::utils::copyValue ( std::complex< double > *  a,
const double  b 
)
inline

◆ copyValue() [39/46]

void dftefe::utils::copyValue ( std::complex< double > *  a,
const float  b 
)
inline

◆ copyValue() [40/46]

void dftefe::utils::copyValue ( std::complex< double > *  a,
const std::complex< double >  b 
)
inline

◆ copyValue() [41/46]

void dftefe::utils::copyValue ( std::complex< double > *  a,
const std::complex< float >  b 
)
inline

◆ copyValue() [42/46]

void dftefe::utils::copyValue ( std::complex< float > *  a,
const __device_bfloat162 b 
)
inline
Here is the call graph for this function:

◆ copyValue() [43/46]

void dftefe::utils::copyValue ( std::complex< float > *  a,
const double  b 
)
inline

◆ copyValue() [44/46]

void dftefe::utils::copyValue ( std::complex< float > *  a,
const float  b 
)
inline

◆ copyValue() [45/46]

void dftefe::utils::copyValue ( std::complex< float > *  a,
const std::complex< double >  b 
)
inline

◆ copyValue() [46/46]

void dftefe::utils::copyValue ( std::complex< float > *  a,
const std::complex< float >  b 
)
inline

◆ div() [1/37]

__forceinline__ __device__ cuDoubleComplex dftefe::utils::div ( cuDoubleComplex  a,
cuDoubleComplex  b 
)

◆ div() [2/37]

__forceinline__ __device__ cuDoubleComplex dftefe::utils::div ( cuDoubleComplex  a,
cuFloatComplex  b 
)

◆ div() [3/37]

__forceinline__ __device__ cuDoubleComplex dftefe::utils::div ( cuDoubleComplex  a,
double  b 
)

◆ div() [4/37]

__forceinline__ __device__ cuDoubleComplex dftefe::utils::div ( cuFloatComplex  a,
cuDoubleComplex  b 
)

◆ div() [5/37]

__forceinline__ __device__ cuFloatComplex dftefe::utils::div ( cuFloatComplex  a,
cuFloatComplex  b 
)

◆ div() [6/37]

__forceinline__ __device__ cuDoubleComplex dftefe::utils::div ( cuFloatComplex  a,
double  b 
)

◆ div() [7/37]

__forceinline__ __device__ cuFloatComplex dftefe::utils::div ( cuFloatComplex  a,
float  b 
)

◆ div() [8/37]

__forceinline__ __device__ cuDoubleComplex dftefe::utils::div ( double  a,
cuDoubleComplex  b 
)

◆ div() [9/37]

__forceinline__ __device__ cuDoubleComplex dftefe::utils::div ( double  a,
cuFloatComplex  b 
)

◆ div() [10/37]

double dftefe::utils::div ( double  a,
double  b 
)
inline

◆ div() [11/37]

double dftefe::utils::div ( double  a,
float  b 
)
inline

◆ div() [12/37]

__forceinline__ __device__ hipDoubleComplex dftefe::utils::div ( double  a,
hipDoubleComplex  b 
)

◆ div() [13/37]

__forceinline__ __device__ hipDoubleComplex dftefe::utils::div ( double  a,
hipFloatComplex  b 
)

◆ div() [14/37]

std::complex< double > dftefe::utils::div ( double  a,
std::complex< double >  b 
)
inline

◆ div() [15/37]

std::complex< double > dftefe::utils::div ( double  a,
std::complex< float >  b 
)
inline

◆ div() [16/37]

__forceinline__ __device__ cuFloatComplex dftefe::utils::div ( float  a,
cuFloatComplex  b 
)

◆ div() [17/37]

double dftefe::utils::div ( float  a,
double  b 
)
inline

◆ div() [18/37]

float dftefe::utils::div ( float  a,
float  b 
)
inline

◆ div() [19/37]

__forceinline__ __device__ hipFloatComplex dftefe::utils::div ( float  a,
hipFloatComplex  b 
)

◆ div() [20/37]

std::complex< float > dftefe::utils::div ( float  a,
std::complex< float >  b 
)
inline

◆ div() [21/37]

__forceinline__ __device__ hipDoubleComplex dftefe::utils::div ( hipDoubleComplex  a,
double  b 
)

◆ div() [22/37]

__forceinline__ __device__ hipDoubleComplex dftefe::utils::div ( hipDoubleComplex  a,
hipDoubleComplex  b 
)

◆ div() [23/37]

__forceinline__ __device__ hipDoubleComplex dftefe::utils::div ( hipDoubleComplex  a,
hipFloatComplex  b 
)

◆ div() [24/37]

__forceinline__ __device__ hipDoubleComplex dftefe::utils::div ( hipFloatComplex  a,
double  b 
)

◆ div() [25/37]

__forceinline__ __device__ hipFloatComplex dftefe::utils::div ( hipFloatComplex  a,
float  b 
)

◆ div() [26/37]

__forceinline__ __device__ hipDoubleComplex dftefe::utils::div ( hipFloatComplex  a,
hipDoubleComplex  b 
)

◆ div() [27/37]

__forceinline__ __device__ hipFloatComplex dftefe::utils::div ( hipFloatComplex  a,
hipFloatComplex  b 
)

◆ div() [28/37]

int dftefe::utils::div ( int  a,
int  b 
)
inline

◆ div() [29/37]

std::complex< double > dftefe::utils::div ( std::complex< double >  a,
double  b 
)
inline

◆ div() [30/37]

std::complex< double > dftefe::utils::div ( std::complex< double >  a,
std::complex< double >  b 
)
inline

◆ div() [31/37]

std::complex< double > dftefe::utils::div ( std::complex< double >  a,
std::complex< float >  b 
)
inline

◆ div() [32/37]

std::complex< double > dftefe::utils::div ( std::complex< float >  a,
double  b 
)
inline

◆ div() [33/37]

std::complex< float > dftefe::utils::div ( std::complex< float >  a,
float  b 
)
inline

◆ div() [34/37]

std::complex< double > dftefe::utils::div ( std::complex< float >  a,
std::complex< double >  b 
)
inline

◆ div() [35/37]

std::complex< float > dftefe::utils::div ( std::complex< float >  a,
std::complex< float >  b 
)
inline

◆ div() [36/37]

unsigned int dftefe::utils::div ( unsigned int  a,
unsigned int  b 
)
inline

◆ div() [37/37]

unsigned long int dftefe::utils::div ( unsigned long int  a,
unsigned long int  b 
)
inline

◆ flatten()

template<typename T >
std::vector< T > dftefe::utils::flatten ( const std::vector< PointImpl< T > > &  pts)
inline

Flatten a vector of points into a contiguous coordinate array. Output layout: [x0,y0,z0, x1,y1,z1, ...] of size pts.size()*dim.

Here is the caller graph for this function:

◆ getAbs()

template<typename T >
double dftefe::utils::getAbs ( const T &  t)

◆ getImagPart() [1/3]

template<>
double dftefe::utils::getImagPart ( const std::complex< double > &  t)

◆ getImagPart() [2/3]

template<>
double dftefe::utils::getImagPart ( const std::complex< float > &  t)

◆ getImagPart() [3/3]

template<typename T >
double dftefe::utils::getImagPart ( const T &  t)

◆ getRealPart() [1/3]

template<>
double dftefe::utils::getRealPart ( const std::complex< double > &  t)

◆ getRealPart() [2/3]

template<>
double dftefe::utils::getRealPart ( const std::complex< float > &  t)
Here is the caller graph for this function:

◆ getRealPart() [3/3]

template<typename T >
double dftefe::utils::getRealPart ( const T &  t)

◆ imagPart() [1/5]

template<>
RealType< double >::Type dftefe::utils::imagPart ( const double &  x)
inline

◆ imagPart() [2/5]

template<>
RealType< float >::Type dftefe::utils::imagPart ( const float &  x)
inline

◆ imagPart() [3/5]

template<>
RealType< std::complex< double > >::Type dftefe::utils::imagPart ( const std::complex< double > &  x)
inline

◆ imagPart() [4/5]

template<>
RealType< std::complex< float > >::Type dftefe::utils::imagPart ( const std::complex< float > &  x)
inline

◆ imagPart() [5/5]

template<typename T >
RealType< T >::Type dftefe::utils::imagPart ( const T &  x)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ imagPartDevice() [1/9]

float dftefe::utils::imagPartDevice ( const __device_bfloat162  a)
inline

◆ imagPartDevice() [2/9]

__forceinline__ __device__ double dftefe::utils::imagPartDevice ( cuDoubleComplex  a)

◆ imagPartDevice() [3/9]

__forceinline__ __device__ float dftefe::utils::imagPartDevice ( cuFloatComplex  a)

◆ imagPartDevice() [4/9]

double dftefe::utils::imagPartDevice ( double  a)
inline

◆ imagPartDevice() [5/9]

float dftefe::utils::imagPartDevice ( float  a)
inline

◆ imagPartDevice() [6/9]

__forceinline__ __device__ double dftefe::utils::imagPartDevice ( hipDoubleComplex  a)

◆ imagPartDevice() [7/9]

__forceinline__ __device__ float dftefe::utils::imagPartDevice ( hipFloatComplex  a)

◆ imagPartDevice() [8/9]

double dftefe::utils::imagPartDevice ( std::complex< double >  a)
inline

◆ imagPartDevice() [9/9]

float dftefe::utils::imagPartDevice ( std::complex< float >  a)
inline

◆ makeComplex() [1/2]

std::complex< double > dftefe::utils::makeComplex ( double  realPart,
double  imagPart 
)
inline
Here is the call graph for this function:

◆ makeComplex() [2/2]

std::complex< float > dftefe::utils::makeComplex ( float  realPart,
float  imagPart 
)
inline
Here is the call graph for this function:

◆ makeDataTypeDeviceCompatible() [1/36]

bool * dftefe::utils::makeDataTypeDeviceCompatible ( bool *  a)
inline

◆ makeDataTypeDeviceCompatible() [2/36]

bool dftefe::utils::makeDataTypeDeviceCompatible ( bool  a)
inline

◆ makeDataTypeDeviceCompatible() [3/36]

const double * dftefe::utils::makeDataTypeDeviceCompatible ( const double *  a)
inline

◆ makeDataTypeDeviceCompatible() [4/36]

const float * dftefe::utils::makeDataTypeDeviceCompatible ( const float *  a)
inline

◆ makeDataTypeDeviceCompatible() [5/36]

const int * dftefe::utils::makeDataTypeDeviceCompatible ( const int *  a)
inline

◆ makeDataTypeDeviceCompatible() [6/36]

const long int * dftefe::utils::makeDataTypeDeviceCompatible ( const long int *  a)
inline

◆ makeDataTypeDeviceCompatible() [7/36]

const long long int * dftefe::utils::makeDataTypeDeviceCompatible ( const long long int *  a)
inline

◆ makeDataTypeDeviceCompatible() [8/36]

const std::complex< double > * dftefe::utils::makeDataTypeDeviceCompatible ( const std::complex< double > *  a)
inline

◆ makeDataTypeDeviceCompatible() [9/36]

const std::complex< float > * dftefe::utils::makeDataTypeDeviceCompatible ( const std::complex< float > *  a)
inline

◆ makeDataTypeDeviceCompatible() [10/36]

const __device_bfloat162 * dftefe::utils::makeDataTypeDeviceCompatible ( const std::complex< uint16_t > *  a)
inline

◆ makeDataTypeDeviceCompatible() [11/36]

const __device_bfloat16 * dftefe::utils::makeDataTypeDeviceCompatible ( const uint16_t *  a)
inline

◆ makeDataTypeDeviceCompatible() [12/36]

const unsigned int * dftefe::utils::makeDataTypeDeviceCompatible ( const unsigned int *  a)
inline

◆ makeDataTypeDeviceCompatible() [13/36]

const unsigned long int * dftefe::utils::makeDataTypeDeviceCompatible ( const unsigned long int *  a)
inline

◆ makeDataTypeDeviceCompatible() [14/36]

const unsigned long long int * dftefe::utils::makeDataTypeDeviceCompatible ( const unsigned long long int *  a)
inline

◆ makeDataTypeDeviceCompatible() [15/36]

double * dftefe::utils::makeDataTypeDeviceCompatible ( double *  a)
inline

◆ makeDataTypeDeviceCompatible() [16/36]

double dftefe::utils::makeDataTypeDeviceCompatible ( double  a)
inline

◆ makeDataTypeDeviceCompatible() [17/36]

float * dftefe::utils::makeDataTypeDeviceCompatible ( float *  a)
inline

◆ makeDataTypeDeviceCompatible() [18/36]

float dftefe::utils::makeDataTypeDeviceCompatible ( float  a)
inline

◆ makeDataTypeDeviceCompatible() [19/36]

int * dftefe::utils::makeDataTypeDeviceCompatible ( int *  a)
inline

◆ makeDataTypeDeviceCompatible() [20/36]

int dftefe::utils::makeDataTypeDeviceCompatible ( int  a)
inline

◆ makeDataTypeDeviceCompatible() [21/36]

long int * dftefe::utils::makeDataTypeDeviceCompatible ( long int *  a)
inline

◆ makeDataTypeDeviceCompatible() [22/36]

long int dftefe::utils::makeDataTypeDeviceCompatible ( long int  a)
inline

◆ makeDataTypeDeviceCompatible() [23/36]

long long int * dftefe::utils::makeDataTypeDeviceCompatible ( long long int *  a)
inline

◆ makeDataTypeDeviceCompatible() [24/36]

std::complex< double > * dftefe::utils::makeDataTypeDeviceCompatible ( std::complex< double > *  a)
inline

◆ makeDataTypeDeviceCompatible() [25/36]

std::complex< double > dftefe::utils::makeDataTypeDeviceCompatible ( std::complex< double >  a)
inline

◆ makeDataTypeDeviceCompatible() [26/36]

std::complex< float > * dftefe::utils::makeDataTypeDeviceCompatible ( std::complex< float > *  a)
inline

◆ makeDataTypeDeviceCompatible() [27/36]

std::complex< float > dftefe::utils::makeDataTypeDeviceCompatible ( std::complex< float >  a)
inline

◆ makeDataTypeDeviceCompatible() [28/36]

__device_bfloat162 * dftefe::utils::makeDataTypeDeviceCompatible ( std::complex< uint16_t > *  a)
inline

◆ makeDataTypeDeviceCompatible() [29/36]

__device_bfloat162 dftefe::utils::makeDataTypeDeviceCompatible ( std::complex< uint16_t >  a)
inline

◆ makeDataTypeDeviceCompatible() [30/36]

__device_bfloat16 * dftefe::utils::makeDataTypeDeviceCompatible ( uint16_t *  a)
inline

◆ makeDataTypeDeviceCompatible() [31/36]

__device_bfloat16 dftefe::utils::makeDataTypeDeviceCompatible ( uint16_t  a)
inline

◆ makeDataTypeDeviceCompatible() [32/36]

unsigned int * dftefe::utils::makeDataTypeDeviceCompatible ( unsigned int *  a)
inline

◆ makeDataTypeDeviceCompatible() [33/36]

unsigned int dftefe::utils::makeDataTypeDeviceCompatible ( unsigned int  a)
inline

◆ makeDataTypeDeviceCompatible() [34/36]

unsigned long int * dftefe::utils::makeDataTypeDeviceCompatible ( unsigned long int *  a)
inline

◆ makeDataTypeDeviceCompatible() [35/36]

unsigned long int dftefe::utils::makeDataTypeDeviceCompatible ( unsigned long int  a)
inline

◆ makeDataTypeDeviceCompatible() [36/36]

unsigned long long int * dftefe::utils::makeDataTypeDeviceCompatible ( unsigned long long int *  a)
inline

◆ memoryStorageFromSTL()

template<typename ValueType , utils::MemorySpace memorySpaceDst>
MemoryStorage< ValueType, memorySpaceDst > dftefe::utils::memoryStorageFromSTL ( const std::vector< ValueType > &  src)

Create a MemoryStorage object from an input C++ STL vector.

Parameters
[in]srcInput C++ STL vector from which the MemoryStorage object is to be created
Returns
A MemoryStorage object containing the data in the input C++ STL vector
Template Parameters
ValueTypeDatatype of the underlying data in MemoryStorage as well as C++ STL vector (e.g., int, double, float, complex<double>, etc)
memorySpaceDstMemorySpace (e.g. HOST, DEVICE, HOST_PINNED, etc) where the output MemoryStorage object should reside
Here is the call graph for this function:

◆ mult() [1/37]

__forceinline__ __device__ cuDoubleComplex dftefe::utils::mult ( cuDoubleComplex  a,
cuDoubleComplex  b 
)

◆ mult() [2/37]

__forceinline__ __device__ cuDoubleComplex dftefe::utils::mult ( cuDoubleComplex  a,
cuFloatComplex  b 
)

◆ mult() [3/37]

__forceinline__ __device__ cuDoubleComplex dftefe::utils::mult ( cuDoubleComplex  a,
double  b 
)

◆ mult() [4/37]

__forceinline__ __device__ cuDoubleComplex dftefe::utils::mult ( cuFloatComplex  a,
cuDoubleComplex  b 
)

◆ mult() [5/37]

__forceinline__ __device__ cuFloatComplex dftefe::utils::mult ( cuFloatComplex  a,
cuFloatComplex  b 
)

◆ mult() [6/37]

__forceinline__ __device__ cuDoubleComplex dftefe::utils::mult ( cuFloatComplex  a,
double  b 
)

◆ mult() [7/37]

__forceinline__ __device__ cuFloatComplex dftefe::utils::mult ( cuFloatComplex  a,
float  b 
)

◆ mult() [8/37]

__forceinline__ __device__ cuDoubleComplex dftefe::utils::mult ( double  a,
cuDoubleComplex  b 
)

◆ mult() [9/37]

__forceinline__ __device__ cuDoubleComplex dftefe::utils::mult ( double  a,
cuFloatComplex  b 
)

◆ mult() [10/37]

double dftefe::utils::mult ( double  a,
double  b 
)
inline

◆ mult() [11/37]

double dftefe::utils::mult ( double  a,
float  b 
)
inline

◆ mult() [12/37]

__forceinline__ __device__ hipDoubleComplex dftefe::utils::mult ( double  a,
hipDoubleComplex  b 
)

◆ mult() [13/37]

__forceinline__ __device__ hipDoubleComplex dftefe::utils::mult ( double  a,
hipFloatComplex  b 
)

◆ mult() [14/37]

std::complex< double > dftefe::utils::mult ( double  a,
std::complex< double >  b 
)
inline

◆ mult() [15/37]

std::complex< double > dftefe::utils::mult ( double  a,
std::complex< float >  b 
)
inline

◆ mult() [16/37]

__forceinline__ __device__ cuFloatComplex dftefe::utils::mult ( float  a,
cuFloatComplex  b 
)

◆ mult() [17/37]

double dftefe::utils::mult ( float  a,
double  b 
)
inline

◆ mult() [18/37]

float dftefe::utils::mult ( float  a,
float  b 
)
inline

◆ mult() [19/37]

__forceinline__ __device__ hipFloatComplex dftefe::utils::mult ( float  a,
hipFloatComplex  b 
)

◆ mult() [20/37]

std::complex< float > dftefe::utils::mult ( float  a,
std::complex< float >  b 
)
inline

◆ mult() [21/37]

__forceinline__ __device__ hipDoubleComplex dftefe::utils::mult ( hipDoubleComplex  a,
double  b 
)

◆ mult() [22/37]

__forceinline__ __device__ hipDoubleComplex dftefe::utils::mult ( hipDoubleComplex  a,
hipDoubleComplex  b 
)

◆ mult() [23/37]

__forceinline__ __device__ hipDoubleComplex dftefe::utils::mult ( hipDoubleComplex  a,
hipFloatComplex  b 
)

◆ mult() [24/37]

__forceinline__ __device__ hipDoubleComplex dftefe::utils::mult ( hipFloatComplex  a,
double  b 
)

◆ mult() [25/37]

__forceinline__ __device__ hipFloatComplex dftefe::utils::mult ( hipFloatComplex  a,
float  b 
)

◆ mult() [26/37]

__forceinline__ __device__ hipDoubleComplex dftefe::utils::mult ( hipFloatComplex  a,
hipDoubleComplex  b 
)

◆ mult() [27/37]

__forceinline__ __device__ hipFloatComplex dftefe::utils::mult ( hipFloatComplex  a,
hipFloatComplex  b 
)

◆ mult() [28/37]

int dftefe::utils::mult ( int  a,
int  b 
)
inline

◆ mult() [29/37]

std::complex< double > dftefe::utils::mult ( std::complex< double >  a,
double  b 
)
inline

◆ mult() [30/37]

std::complex< double > dftefe::utils::mult ( std::complex< double >  a,
std::complex< double >  b 
)
inline

◆ mult() [31/37]

std::complex< double > dftefe::utils::mult ( std::complex< double >  a,
std::complex< float >  b 
)
inline

◆ mult() [32/37]

std::complex< double > dftefe::utils::mult ( std::complex< float >  a,
double  b 
)
inline

◆ mult() [33/37]

std::complex< float > dftefe::utils::mult ( std::complex< float >  a,
float  b 
)
inline

◆ mult() [34/37]

std::complex< double > dftefe::utils::mult ( std::complex< float >  a,
std::complex< double >  b 
)
inline

◆ mult() [35/37]

std::complex< float > dftefe::utils::mult ( std::complex< float >  a,
std::complex< float >  b 
)
inline

◆ mult() [36/37]

unsigned int dftefe::utils::mult ( unsigned int  a,
unsigned int  b 
)
inline

◆ mult() [37/37]

unsigned long int dftefe::utils::mult ( unsigned long int  a,
unsigned long int  b 
)
inline

◆ operator*() [1/2]

template<typename T >
PointImpl< T > dftefe::utils::operator* ( const PointImpl< T > &  p,
a 
)
inline

Multiplication by a scalar q = p*a.

Template Parameters
valuetype for the point (int, float, double, ...)
Parameters
[in]pthe point to be scaled
[in]athe scalar value
Returns
a new point containing the scaled coordinates

◆ operator*() [2/2]

template<typename T >
PointImpl< T > dftefe::utils::operator* ( a,
const PointImpl< T > &  p 
)
inline

Multiplication by a scalar q = p*a.

Template Parameters
valuetype for the point (int, float, double, ...)
Parameters
[in]athe scalar value
[in]pthe point to be scaled
Returns
a new point containing the scaled coordinates

◆ operator*=()

template<typename T >
PointImpl< T > & dftefe::utils::operator*= ( PointImpl< T > &  p,
a 
)
inline

In-plance multiplication of the point by a scalar p->p*a.

Template Parameters
valuetype for the point (int, float, double, ...)
Parameters
[in]pthe point to be scaled
[in]athe scalar value
Returns
reference to updated point p.
Here is the call graph for this function:

◆ operator+()

template<typename T >
PointImpl< T > dftefe::utils::operator+ ( const PointImpl< T > &  v,
const PointImpl< T > &  u 
)
inline

Addition of two points r = p + q.

Template Parameters
valuetype for the point (int, float, double, ...)
Parameters
[in]pthe first point
[in]qthe second point
Returns
Object containing p + q.
Exceptions
exceptionif the two points have different dimensions

◆ operator+=()

template<typename T >
PointImpl< T > & dftefe::utils::operator+= ( PointImpl< T > &  p,
const PointImpl< T > &  q 
)
inline

In-place addition of two pointts p-> p + q.

Template Parameters
valuetype for the point (int, float, double, ...)
Parameters
[in]pthe first point (will be modified)
[in]qthe second point
Returns
Reference to updated point p.
Exceptions
exceptionif the two points have different dimensions
Here is the call graph for this function:

◆ operator-()

template<typename T >
PointImpl< T > dftefe::utils::operator- ( const PointImpl< T > &  p,
const PointImpl< T > &  q 
)
inline

Subtraction of two points = p - q.

Template Parameters
valuetype for the point (int, float, double, ...)
Parameters
[in]pthe first point
[in]qthe second point
Returns
Object containing p - q.
Exceptions
exceptionif the two points have different dimensions

◆ operator-=()

template<typename T >
PointImpl< T > & dftefe::utils::operator-= ( PointImpl< T > &  p,
const PointImpl< T > &  q 
)
inline

In-place subtraction of two points p -> p - q;.

Template Parameters
valuetype for the point (int, float, double, ...)
Parameters
[in]pthe first point
[in]qthe second point
Returns
reference to updated point p.
Exceptions
exceptionif the two points have different dimensions
Here is the call graph for this function:

◆ operator<<()

template<typename T >
std::ostream & dftefe::utils::operator<< ( std::ostream &  outputStream,
const PointImpl< T > &  p 
)
inline

Output perator.

Template Parameters
valuetype for the point (int, float, double, ...)
Parameters
outputStreamOutput stream to use for output.
pPointImpl object.
Returns
Updated output stream.
Here is the call graph for this function:

◆ printCurrentMemoryUsage()

template<dftefe::utils::MemorySpace memorySpace>
static void dftefe::utils::printCurrentMemoryUsage ( const utils::mpi::MPIComm mpiComm,
const std::string  message 
)
inlinestatic
Here is the call graph for this function:

◆ realPart() [1/5]

template<>
RealType< double >::Type dftefe::utils::realPart ( const double &  x)
inline

◆ realPart() [2/5]

template<>
RealType< float >::Type dftefe::utils::realPart ( const float &  x)
inline

◆ realPart() [3/5]

template<>
RealType< std::complex< double > >::Type dftefe::utils::realPart ( const std::complex< double > &  x)
inline

◆ realPart() [4/5]

template<>
RealType< std::complex< float > >::Type dftefe::utils::realPart ( const std::complex< float > &  x)
inline

◆ realPart() [5/5]

template<typename T >
RealType< T >::Type dftefe::utils::realPart ( const T &  x)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ realPartDevice() [1/9]

float dftefe::utils::realPartDevice ( const __device_bfloat162  a)
inline

◆ realPartDevice() [2/9]

__forceinline__ __device__ double dftefe::utils::realPartDevice ( cuDoubleComplex  a)

◆ realPartDevice() [3/9]

__forceinline__ __device__ float dftefe::utils::realPartDevice ( cuFloatComplex  a)

◆ realPartDevice() [4/9]

double dftefe::utils::realPartDevice ( double  a)
inline

◆ realPartDevice() [5/9]

float dftefe::utils::realPartDevice ( float  a)
inline

◆ realPartDevice() [6/9]

__forceinline__ __device__ double dftefe::utils::realPartDevice ( hipDoubleComplex  a)

◆ realPartDevice() [7/9]

__forceinline__ __device__ float dftefe::utils::realPartDevice ( hipFloatComplex  a)

◆ realPartDevice() [8/9]

double dftefe::utils::realPartDevice ( std::complex< double >  a)
inline

◆ realPartDevice() [9/9]

float dftefe::utils::realPartDevice ( std::complex< float >  a)
inline

◆ Spline::derivAll< utils::MemorySpace::HOST >()

template<>
void dftefe::utils::Spline::derivAll< utils::MemorySpace::HOST > ( size_type  n,
int  order,
const double *  x,
double *  y,
utils::deviceStream_t  streamId 
) const

◆ Spline::evalAll< utils::MemorySpace::HOST >()

template<>
void dftefe::utils::Spline::evalAll< utils::MemorySpace::HOST > ( size_type  n,
const double *  x,
double *  y,
utils::deviceStream_t  streamId 
) const

◆ Spline::getFunc< utils::MemorySpace::HOST >()

◆ sub() [1/11]

__forceinline__ __device__ cuDoubleComplex dftefe::utils::sub ( cuDoubleComplex  a,
cuDoubleComplex  b 
)

◆ sub() [2/11]

__forceinline__ __device__ cuFloatComplex dftefe::utils::sub ( cuFloatComplex  a,
cuFloatComplex  b 
)

◆ sub() [3/11]

double dftefe::utils::sub ( double  a,
double  b 
)
inline

◆ sub() [4/11]

float dftefe::utils::sub ( float  a,
float  b 
)
inline

◆ sub() [5/11]

__forceinline__ __device__ hipDoubleComplex dftefe::utils::sub ( hipDoubleComplex  a,
hipDoubleComplex  b 
)

◆ sub() [6/11]

__forceinline__ __device__ hipFloatComplex dftefe::utils::sub ( hipFloatComplex  a,
hipFloatComplex  b 
)

◆ sub() [7/11]

int dftefe::utils::sub ( int  a,
int  b 
)
inline

◆ sub() [8/11]

std::complex< double > dftefe::utils::sub ( std::complex< double >  a,
std::complex< double >  b 
)
inline

◆ sub() [9/11]

std::complex< float > dftefe::utils::sub ( std::complex< float >  a,
std::complex< float >  b 
)
inline

◆ sub() [10/11]

unsigned int dftefe::utils::sub ( unsigned int  a,
unsigned int  b 
)
inline

◆ sub() [11/11]

unsigned long int dftefe::utils::sub ( unsigned long int  a,
unsigned long int  b 
)
inline

◆ swap()

template<typename ValueType , dftefe::utils::MemorySpace memorySpace>
void dftefe::utils::swap ( MemoryStorage< ValueType, memorySpace > &  X,
MemoryStorage< ValueType, memorySpace > &  Y 
)
Here is the caller graph for this function:

◆ throwException() [1/2]

void dftefe::utils::throwException ( bool  condition,
std::string  msg 
)

◆ throwException() [2/2]

template<class T >
void dftefe::utils::throwException ( bool  condition,
std::string  msg = "" 
)

Variable Documentation

◆ allSyclGPUDevices

std::vector<sycl::device> dftefe::utils::allSyclGPUDevices
inline
Initial value:
=
sycl::device::get_devices(sycl::info::device_type::gpu)

◆ defaultStream [1/4]

cudaStream_t dftefe::utils::defaultStream = 0
static

◆ defaultStream [2/4]

deviceStream_t dftefe::utils::defaultStream = 0
static

◆ defaultStream [3/4]

hipStream_t dftefe::utils::defaultStream = 0
static

◆ defaultStream [4/4]

deviceStream_t dftefe::utils::defaultStream = 0
static

◆ DEVICE_C_16BF [1/2]

const cudaDataType dftefe::utils::DEVICE_C_16BF = CUDA_C_16BF
static

◆ DEVICE_C_16BF [2/2]

const hipDataType dftefe::utils::DEVICE_C_16BF = HIP_C_16BF
static

◆ DEVICE_C_16F [1/2]

const cudaDataType dftefe::utils::DEVICE_C_16F = CUDA_C_16F
static

◆ DEVICE_C_16F [2/2]

const hipDataType dftefe::utils::DEVICE_C_16F = HIP_C_16F
static

◆ DEVICE_C_32F [1/2]

const cudaDataType dftefe::utils::DEVICE_C_32F = CUDA_C_32F
static

◆ DEVICE_C_32F [2/2]

const hipDataType dftefe::utils::DEVICE_C_32F = HIP_C_32F
static

◆ DEVICE_C_64F [1/2]

const cudaDataType dftefe::utils::DEVICE_C_64F = CUDA_C_64F
static

◆ DEVICE_C_64F [2/2]

const hipDataType dftefe::utils::DEVICE_C_64F = HIP_C_64F
static

◆ DEVICE_R_16BF [1/2]

const cudaDataType dftefe::utils::DEVICE_R_16BF = CUDA_R_16BF
static

◆ DEVICE_R_16BF [2/2]

const hipDataType dftefe::utils::DEVICE_R_16BF = HIP_R_16BF
static

◆ DEVICE_R_16F [1/2]

const cudaDataType dftefe::utils::DEVICE_R_16F = CUDA_R_16F
static

◆ DEVICE_R_16F [2/2]

const hipDataType dftefe::utils::DEVICE_R_16F = HIP_R_16F
static

◆ DEVICE_R_32F [1/2]

const cudaDataType dftefe::utils::DEVICE_R_32F = CUDA_R_32F
static

◆ DEVICE_R_32F [2/2]

const hipDataType dftefe::utils::DEVICE_R_32F = HIP_R_32F
static

◆ DEVICE_R_64F [1/2]

const cudaDataType dftefe::utils::DEVICE_R_64F = CUDA_R_64F
static

◆ DEVICE_R_64F [2/2]

const hipDataType dftefe::utils::DEVICE_R_64F = HIP_R_64F
static

◆ DEVICEBLAS_COMPUTE_32F [1/3]

const cublasComputeType_t dftefe::utils::DEVICEBLAS_COMPUTE_32F
static
Initial value:
=
CUBLAS_COMPUTE_32F

◆ DEVICEBLAS_COMPUTE_32F [2/3]

const hipblasComputeType_t dftefe::utils::DEVICEBLAS_COMPUTE_32F
static
Initial value:
=
HIPBLAS_COMPUTE_32F

◆ DEVICEBLAS_COMPUTE_32F [3/3]

const oneapi::mkl::blas::compute_mode dftefe::utils::DEVICEBLAS_COMPUTE_32F
static
Initial value:
=
oneapi::mkl::blas::compute_mode::standard

◆ DEVICEBLAS_COMPUTE_32F_FAST_16BF [1/3]

const cublasComputeType_t dftefe::utils::DEVICEBLAS_COMPUTE_32F_FAST_16BF
static
Initial value:
=
CUBLAS_COMPUTE_32F_FAST_16BF

◆ DEVICEBLAS_COMPUTE_32F_FAST_16BF [2/3]

const hipblasComputeType_t dftefe::utils::DEVICEBLAS_COMPUTE_32F_FAST_16BF
static
Initial value:
=
HIPBLAS_COMPUTE_32F_FAST_16BF

◆ DEVICEBLAS_COMPUTE_32F_FAST_16BF [3/3]

const oneapi::mkl::blas::compute_mode dftefe::utils::DEVICEBLAS_COMPUTE_32F_FAST_16BF
static
Initial value:
=
oneapi::mkl::blas::compute_mode::float_to_bf16

◆ DEVICEBLAS_COMPUTE_32F_FAST_16F [1/3]

const cublasComputeType_t dftefe::utils::DEVICEBLAS_COMPUTE_32F_FAST_16F
static
Initial value:
=
CUBLAS_COMPUTE_32F_FAST_16F

◆ DEVICEBLAS_COMPUTE_32F_FAST_16F [2/3]

const hipblasComputeType_t dftefe::utils::DEVICEBLAS_COMPUTE_32F_FAST_16F
static
Initial value:
=
HIPBLAS_COMPUTE_32F_FAST_16F

◆ DEVICEBLAS_COMPUTE_32F_FAST_16F [3/3]

const oneapi::mkl::blas::compute_mode dftefe::utils::DEVICEBLAS_COMPUTE_32F_FAST_16F
static
Initial value:
=
oneapi::mkl::blas::compute_mode::float_to_bf16x2

◆ DEVICEBLAS_COMPUTE_32F_FAST_TF32 [1/3]

const cublasComputeType_t dftefe::utils::DEVICEBLAS_COMPUTE_32F_FAST_TF32
static
Initial value:
=
CUBLAS_COMPUTE_32F_FAST_TF32

◆ DEVICEBLAS_COMPUTE_32F_FAST_TF32 [2/3]

const hipblasComputeType_t dftefe::utils::DEVICEBLAS_COMPUTE_32F_FAST_TF32
static
Initial value:
=
HIPBLAS_COMPUTE_32F_FAST_TF32

◆ DEVICEBLAS_COMPUTE_32F_FAST_TF32 [3/3]

const oneapi::mkl::blas::compute_mode dftefe::utils::DEVICEBLAS_COMPUTE_32F_FAST_TF32
static
Initial value:
=
oneapi::mkl::blas::compute_mode::float_to_tf32

◆ DEVICEBLAS_GEMM_DEFAULT [1/2]

const cublasGemmAlgo_t dftefe::utils::DEVICEBLAS_GEMM_DEFAULT = CUBLAS_GEMM_DEFAULT
static

◆ DEVICEBLAS_GEMM_DEFAULT [2/2]

const hipblasGemmAlgo_t dftefe::utils::DEVICEBLAS_GEMM_DEFAULT
static
Initial value:
=
HIPBLAS_GEMM_DEFAULT

◆ DEVICEBLAS_OP_C [1/3]

const cublasOperation_t dftefe::utils::DEVICEBLAS_OP_C = CUBLAS_OP_C
static

◆ DEVICEBLAS_OP_C [2/3]

const hipblasOperation_t dftefe::utils::DEVICEBLAS_OP_C = HIPBLAS_OP_C
static

◆ DEVICEBLAS_OP_C [3/3]

const oneapi::mkl::transpose dftefe::utils::DEVICEBLAS_OP_C
static
Initial value:
=
oneapi::mkl::transpose::conjtrans

◆ DEVICEBLAS_OP_N [1/3]

const cublasOperation_t dftefe::utils::DEVICEBLAS_OP_N = CUBLAS_OP_N
static

◆ DEVICEBLAS_OP_N [2/3]

const hipblasOperation_t dftefe::utils::DEVICEBLAS_OP_N = HIPBLAS_OP_N
static

◆ DEVICEBLAS_OP_N [3/3]

const oneapi::mkl::transpose dftefe::utils::DEVICEBLAS_OP_N
static
Initial value:
=
oneapi::mkl::transpose::nontrans

◆ DEVICEBLAS_OP_T [1/3]

const cublasOperation_t dftefe::utils::DEVICEBLAS_OP_T = CUBLAS_OP_T
static

◆ DEVICEBLAS_OP_T [2/3]

const hipblasOperation_t dftefe::utils::DEVICEBLAS_OP_T = HIPBLAS_OP_T
static

◆ DEVICEBLAS_OP_T [3/3]

const oneapi::mkl::transpose dftefe::utils::DEVICEBLAS_OP_T
static
Initial value:
=
oneapi::mkl::transpose::trans

◆ deviceBlasSuccess

const sycl::info::event_command_status dftefe::utils::deviceBlasSuccess
static
Initial value:
=
sycl::info::event_command_status::complete

◆ deviceSuccess [1/3]

const deviceError_t dftefe::utils::deviceSuccess = cudaSuccess
static

◆ deviceSuccess [2/3]

const deviceError_t dftefe::utils::deviceSuccess = hipSuccess
static

◆ deviceSuccess [3/3]

std::error_code dftefe::utils::deviceSuccess = make_error_code(sycl::errc::success)
static

◆ queueRegistry

std::map<dftefe::uInt, sycl::queue> dftefe::utils::queueRegistry
inline
Initial value:
{
sycl::queue(syclContext,
syclDevice,
sycl::property::queue::in_order{})}}
static deviceStream_t defaultStream
Definition: DeviceTypeConfig.sycl.h:65

◆ syclContext

sycl::context dftefe::utils::syclContext {syclDevice}
inline

◆ syclDevice

sycl::device dftefe::utils::syclDevice = allSyclGPUDevices[syclDeviceId]
inline

◆ syclDeviceId

dftefe::uInt dftefe::utils::syclDeviceId = 0
inline

◆ usedStreamIds

std::set<dftefe::uInt> dftefe::utils::usedStreamIds {defaultStream}
inline