7#include "HDF5CFProj1D.h"
10#include <libdap/debug.h>
12#include <libdap/InternalErr.h>
17bool HDF5CFProj1D::read()
21 vector<int64_t> offset;
23 vector<int64_t> count;
30 nelms = format_constraint(offset.data(), step.data(), count.data());
45 double step_v = (evalue - svalue)/tnumelm;
47 for(int64_t i = 1;i<tnumelm; i++)
48 val[i] = val[i-1] + step_v;
51 set_value_ll((dods_float64 *) val.data(), nelms);
53 vector<double>val_subset;
54 val_subset.resize(nelms);
55 for (int64_t i = 0; i < count[0]; i++)
56 val_subset[i] = val[offset[0] + step[0] * i];
57 set_value_ll((dods_float64 *) val_subset.data(), nelms);
64HDF5CFProj1D::format_constraint (int64_t *offset, int64_t *step, int64_t *count)
69 Dim_iter p = dim_begin ();
71 while (p != dim_end ()) {
73 int64_t start = dimension_start_ll (p,
true);
74 int64_t stride = dimension_stride_ll (p,
true);
75 int64_t stop = dimension_stop_ll (p,
true);
80 oss <<
"Array/Grid hyperslab start point "<< start <<
81 " is greater than stop point " << stop <<
".";
82 throw Error(malformed_expr, oss.str());
87 count[id] = ((stop - start) / stride) + 1;
91 "=format_constraint():"
92 <<
"id=" <<
id <<
" offset=" << offset[
id]
93 <<
" step=" << step[
id]
94 <<
" count=" << count[
id]