14 #ifndef QMCPLUSPLUS_HDF_DATASPACE_TRAITS_H 15 #define QMCPLUSPLUS_HDF_DATASPACE_TRAITS_H 43 template<
typename T, h
size_t RANK>
47 hsize_t
dims[RANK > 0 ? RANK : 1];
49 static constexpr hsize_t
rank = RANK;
61 template<
typename T, h
size_t RANK>
67 static constexpr
int added_rank() {
return Base::added_rank() + 1; }
69 inline static auto get_address(std::complex<T>* a) {
return Base::get_address(reinterpret_cast<T*>(a)); }
70 inline static auto get_address(
const std::complex<T>* a) {
return Base::get_address(reinterpret_cast<const T*>(a)); }
75 template<
typename T, std::
size_t D, h
size_t RANK>
82 static constexpr
int added_rank() {
return Base::added_rank() + 1; }
83 inline static auto get_address(std::array<T, D>* a) {
return Base::get_address(a->data()); }
84 inline static auto get_address(
const std::array<T, D>* a) {
return Base::get_address(a->data()); }
89 template<
typename T,
unsigned D, h
size_t RANK>
96 static constexpr
int added_rank() {
return Base::added_rank() + 1; }
103 template<
typename T,
unsigned D, h
size_t RANK>
114 static constexpr
int added_rank() {
return Base::added_rank() + 2; }
static auto get_address(Tensor< T, D > *a)
static constexpr int added_rank()
static constexpr int added_rank()
default struct to define a h5 dataspace, any intrinsic type T
helper functions for EinsplineSetBuilder
static auto get_address(const TinyVector< T, D > *a)
static auto get_address(const T *a)
static auto get_address(const std::array< T, D > *a)
static auto get_address(TinyVector< T, D > *a)
static auto get_address(const std::complex< T > *a)
static auto get_address(std::complex< T > *a)
hsize_t dims[RANK > 0 ? RANK :1]
shape of the dataspace, protected for zero size array, hdf5 support scalar as rank = 0 ...
Tensor<T,D> class for D by D tensor.
static auto get_address(std::array< T, D > *a)
static constexpr int added_rank()
static auto get_address(T *a)
return the address
static constexpr hsize_t rank
rank of the multidimensional dataspace
static constexpr int added_rank()
new rank added due to T
static constexpr int added_rank()
static auto get_address(const Tensor< T, D > *a)