29 #include "alsutils/config.hpp" 31 using std::shared_ptr;
32 using std::make_shared;
33 using std::dynamic_pointer_cast;
38 #ifdef ALSVINN_HAVE_CUDA 39 #include <cuda_runtime.h> 49 #if __cplusplus <= 199711L 52 #define static_assert(x, y) assert(x) 58 #ifdef ALSVINN_USE_QUADMATH 64 #ifndef ALSVINN_USE_FLOAT 89 return ivec3( direction == 0, direction == 1, direction == 2 );
94 return ivec3(nx > 1, ny > 1, nz > 1);
166 #ifdef ALSVINN_USE_QUADMATH 169 inline __float128 fabs(
const __float128& x) {
173 inline __float128 abs(
const __float128& x) {
177 inline bool isnan(
const __float128& x) {
181 inline bool pow(__float128 x,
int b) {
185 inline bool pow(__float128 x,
double b) {
189 inline bool isfinite(
const __float128& x) {
193 inline bool isinf(
const __float128& x) {
197 inline std::basic_ostream<char>& operator<<(std::basic_ostream<char>& os,
198 const __float128& x) {
199 return (os << (
double)x);
matrix3 matrix
Definition: types.hpp:132
vec5< int > ivec5
Definition: types.hpp:83
matrix< real, 4, 4 > matrix4
Definition: types.hpp:100
Definition: types.hpp:104
rvec3 rvec
Definition: types.hpp:128
matrix< real, 5, 5 > matrix5
Definition: types.hpp:101
matrix5 matrix
Definition: types.hpp:150
ivec1 ivec
Definition: types.hpp:111
matrix4 matrix
Definition: types.hpp:141
rvec5 rvec
Definition: types.hpp:146
#define __host__
Definition: types.hpp:46
vec4< int > ivec4
Definition: types.hpp:80
ivec2 ivec
Definition: types.hpp:120
size_t nx
Definition: VolumeFactory.cpp:87
double real
Definition: types.hpp:65
vec3< int > ivec3
Definition: types.hpp:77
ivec5 ivec
Definition: types.hpp:147
matrix< real, 1, 1 > matrix1
Definition: types.hpp:96
rvec1 rvec
Definition: types.hpp:110
size_t ny
Definition: VolumeFactory.cpp:88
Various utilities for mpi and cuda.
Definition: Factory.hpp:3
ivec3 ivec
Definition: types.hpp:129
vec4< real > rvec4
Definition: types.hpp:79
rvec2 rvec
Definition: types.hpp:119
rvec4 rvec
Definition: types.hpp:137
matrix< real, 3, 3 > matrix3
Definition: types.hpp:99
vec5< real > rvec5
Definition: types.hpp:82
vec6< real > rvec6
Definition: types.hpp:85
vec6< int > ivec6
Definition: types.hpp:86
matrix< real, 2, 2 > matrix2
Definition: types.hpp:98
#define __device__
Definition: types.hpp:45
vec2< real > rvec2
Definition: types.hpp:73
__device__ __host__ ivec3 make_space_filling_vector(int nx, int ny, int nz)
Definition: types.hpp:92
matrix1 matrix
Definition: types.hpp:114
size_t nz
Definition: VolumeFactory.cpp:89
vec3< real > rvec3
Definition: types.hpp:76
Various utility functions to implement the tecno flux.
Definition: types.hpp:30
vec1< real > rvec1
Definition: types.hpp:70
matrix2 matrix
Definition: types.hpp:123
vec1< int > ivec1
Definition: types.hpp:71
ivec4 ivec
Definition: types.hpp:138
__device__ __host__ ivec3 make_direction_vector(size_t direction)
Definition: types.hpp:88
vec2< int > ivec2
Definition: types.hpp:74
__host__ __device__ real square(const real &x)
Definition: types.hpp:159