66 class grid_generator :
public itertools::iterator_facade<grid_generator, v_t const, std::forward_iterator_tag> {
67 friend struct itertools::iterator_facade<
grid_generator,
v_t const, std::forward_iterator_tag>;
68 int dim{3}, nkpts{0}, nx{0}, ny{0}, nz{0}, N_X{0}, N_Y{0}, N_Z{0}, index_{0};
69 double step_x{0.0}, step_y{0.0}, step_z{0.0};
74 N_Y = (dim > 1 ? nkpts : 1);
75 N_Z = (dim > 2 ? nkpts : 1);
76 step_x = 1.0 / double(N_X);
77 step_y = 1.0 / double(N_Y);
78 step_z = 1.0 / double(N_Z);
110 value_type dereference()
const {
return pt; }
125 bool operator==(
grid_generator const &other)
const {
return ((other.dim == dim) && (other.index_ == index_) && (other.nkpts == nkpts)); }
128 int size()
const {
return (N_X * N_Y * N_Z); }
131 int index()
const {
return index_; }
134 operator bool()
const {
return !(at_end); }