23 #ifndef BLITZH5TRAITS_HH 24 #define BLITZH5TRAITS_HH 31 #include <blitz/array.h> 43 static std::vector<hsize_t> h5Dims(DataT
const &);
44 static hid_t h5Type();
45 static void *data(DataT &array);
46 static void const *data(DataT
const &array);
54 static std::vector<hsize_t> h5Dims(DataT
const &);
55 static hid_t h5Type();
56 static void *data(DataT &array);
57 static void const *data(DataT
const &array);
65 static std::vector<hsize_t> h5Dims(DataT
const &);
66 static hid_t h5Type();
67 static void *data(DataT &array);
68 static void const *data(DataT
const &array);
76 static std::vector<hsize_t> h5Dims(DataT
const &);
77 static hid_t h5Type();
78 static void *data(DataT &array);
79 static void const *data(DataT
const &array);
87 static std::vector<hsize_t> h5Dims(DataT
const &);
88 static hid_t h5Type();
89 static void *data(DataT &array);
90 static void const *data(DataT
const &array);
98 static std::vector<hsize_t> h5Dims(DataT
const &);
99 static hid_t h5Type();
100 static void *data(DataT &array);
101 static void const *data(DataT
const &array);
109 static std::vector<hsize_t> h5Dims(DataT
const &);
110 static hid_t h5Type();
111 static void *data(DataT &array);
112 static void const *data(DataT
const &array);
120 static std::vector<hsize_t> h5Dims(DataT
const &);
121 static hid_t h5Type();
122 static void *data(DataT &array);
123 static void const *data(DataT
const &array);
131 static std::vector<hsize_t> h5Dims(DataT
const &);
132 static hid_t h5Type();
133 static void *data(DataT &array);
134 static void const *data(DataT
const &array);
142 static std::vector<hsize_t> h5Dims(DataT
const &);
143 static hid_t h5Type();
144 static void *data(DataT &array);
145 static void const *data(DataT
const &array);
153 static std::vector<hsize_t> h5Dims(DataT
const &);
154 static hid_t h5Type();
155 static void *data(DataT &array);
156 static void const *data(DataT
const &array);
164 static std::vector<hsize_t> h5Dims(DataT
const &);
165 static hid_t h5Type();
166 static void *data(DataT &array);
167 static void const *data(DataT
const &array);
175 static std::vector<hsize_t> h5Dims(DataT
const &);
176 static hid_t h5Type();
177 static void *data(DataT &array);
178 static void const *data(DataT
const &array);
186 static std::vector<hsize_t> h5Dims(DataT
const &);
187 static hid_t h5Type();
188 static void *data(DataT &array);
189 static void const *data(DataT
const &array);
192 template<
typename InnerT>
199 static std::vector<hsize_t>
h5Dims(DataT
const &array)
201 std::vector<hsize_t> dims(1);
202 dims[0] = array.size();
211 static void *
data(DataT &array)
213 return reinterpret_cast<void*
>(&array[0]);
216 static void const *
data(DataT
const &array)
218 return reinterpret_cast<void const*
>(&array[0]);
223 template<
typename InnerT,
int Dim>
227 typedef blitz::TinyVector<InnerT,Dim>
DataT;
230 static std::vector<hsize_t>
h5Dims(DataT
const &)
232 std::vector<hsize_t> dims(1);
242 static void *
data(DataT &array)
244 return reinterpret_cast<void*
>(array.data());
247 static void const *
data(DataT
const &array)
249 return reinterpret_cast<void const*
>(array.data());
254 template<
typename InnerT,
int NRows,
int NCols>
258 typedef blitz::TinyMatrix<InnerT,NRows,NCols>
DataT;
261 static std::vector<hsize_t>
h5Dims(DataT
const &)
263 std::vector<hsize_t> dims(2);
274 static void *
data(DataT &array)
276 return reinterpret_cast<void*
>(array.data());
279 static void const *
data(DataT
const &array)
281 return reinterpret_cast<void const*
>(array.data());
286 template<
typename InnerT>
293 static std::vector<hsize_t>
h5Dims(DataT
const &)
295 std::vector<hsize_t> dims(1);
305 static void *
data(DataT &array)
307 return reinterpret_cast<void*
>(array.data());
310 static void const *
data(DataT
const &array)
312 return reinterpret_cast<void const*
>(array.data());
317 template<
typename InnerT,
int Dim>
321 typedef blitz::Array<InnerT,Dim>
DataT;
324 static std::vector<hsize_t>
h5Dims(DataT
const &array)
326 std::vector<hsize_t> dims(Dim);
327 for (
int d = 0; d < Dim; ++d) dims[d] = array.extent(d);
336 static void *
data(DataT &array)
338 return reinterpret_cast<void*
>(array.data());
341 static void const *
data(DataT
const &array)
343 return reinterpret_cast<void const*
>(array.data());
348 template<
typename InnerT,
int Dim>
350 blitz::Array<std::complex<InnerT>,Dim> >
353 typedef blitz::Array<std::complex<InnerT>,Dim>
DataT;
356 static std::vector<hsize_t>
h5Dims(DataT
const &array)
358 std::vector<hsize_t> dims(Dim + 1);
359 for (
int d = 0; d < Dim; ++d) dims[d] = array.extent(d);
369 static void *
data(DataT &array)
371 return reinterpret_cast<void*
>(array.data());
374 static void const *
data(DataT
const &array)
376 return reinterpret_cast<void const*
>(array.data());
380 template<
typename InnerT,
int InnerDim,
int OuterDim>
382 blitz::Array<blitz::TinyVector<InnerT,InnerDim>,OuterDim> >
385 typedef blitz::Array<blitz::TinyVector<InnerT,InnerDim>,OuterDim>
DataT;
388 static std::vector<hsize_t>
h5Dims(DataT
const &array)
390 std::vector<hsize_t> dims(OuterDim + 1);
391 for (
int d = 0; d < OuterDim; ++d) dims[d] = array.extent(d);
392 dims[OuterDim] = InnerDim;
401 static void *
data(DataT &array)
403 return reinterpret_cast<void*
>(array.data());
406 static void const *
data(DataT
const &array)
408 return reinterpret_cast<void const*
>(array.data());
412 template<
typename InnerT,
int InnerDim1,
int InnerDim2,
int OuterDim>
414 blitz::Array<blitz::TinyMatrix<InnerT,InnerDim1,InnerDim2>,OuterDim> >
417 typedef blitz::Array<blitz::TinyMatrix<InnerT,InnerDim1,InnerDim2>,OuterDim>
423 std::vector<hsize_t> dims(OuterDim + 1);
424 for (
int d = 0; d < OuterDim; ++d) dims[d] = array.extent(d);
425 dims[OuterDim] = InnerDim1 * InnerDim2;
436 return reinterpret_cast<void*
>(array.data());
441 return reinterpret_cast<void const*
>(array.data());
452 static std::vector<hsize_t> h5Dims(DataT
const &array);
453 static hid_t h5Type();
454 static void *data(DataT &array);
455 static void const *data(DataT
const &array);
static std::vector< hsize_t > h5Dims(DataT const &)
static void * data(DataT &array)
static std::vector< hsize_t > h5Dims(DataT const &array)
static std::vector< hsize_t > h5Dims(DataT const &array)
static std::vector< hsize_t > h5Dims(DataT const &)
static std::vector< hsize_t > h5Dims(DataT const &array)
static void const * data(DataT const &array)
blitz::Array< blitz::TinyVector< InnerT, InnerDim >, OuterDim > DataT
static void const * data(DataT const &array)
static void * data(DataT &array)
unsigned long long BasicT
static std::vector< hsize_t > h5Dims(DataT const &array)
static std::vector< hsize_t > h5Dims(DataT const &array)
static void * data(DataT &array)
static void const * data(DataT const &array)
static void const * data(DataT const &array)
blitz::TinyMatrix< InnerT, NRows, NCols > DataT
static void * data(DataT &array)
static void * data(DataT &array)
blitz::Array< std::complex< InnerT >, Dim > DataT
static void const * data(DataT const &array)
static void const * data(DataT const &array)
static void const * data(DataT const &array)
std::complex< InnerT > DataT
static void * data(DataT &array)
static std::vector< hsize_t > h5Dims(DataT const &)
blitz::TinyVector< InnerT, Dim > DataT
blitz::Array< InnerT, Dim > DataT
static void const * data(DataT const &array)
std::vector< InnerT > DataT
blitz::Array< blitz::TinyMatrix< InnerT, InnerDim1, InnerDim2 >, OuterDim > DataT
static void * data(DataT &array)
static void * data(DataT &array)