14 Grid1D(Scalar lower, Scalar
upper,
int nodes) : lower_(lower), upper_(upper), edges_(nodes - 2) {
15 stepinv_ = (nodes - 1) / (upper - lower);
18 Scalar
step()
const {
return 1. / stepinv_; }
19 Scalar
lower()
const {
return lower_; }
20 Scalar
upper()
const {
return upper_; }
21 int nodes()
const {
return edges_ + 2; }
22 int cells()
const {
return edges_ + 1; }
24 Scalar
node(
int i)
const {
return i *
step() + lower(); }
26 bool inRange(
int i)
const {
return i >= 0 && i <= edges_; }
31 f = modff((a - lower()) * stepinv_, &b);
40 }
else if (ind > edges_) {
47 Scalar
b = (a - lower()) /
step();
50 return tmp *
step() + lower();
55 int ind =
static_cast<int>((a - lower()) /
step());
int index(Scalar a) const
returns valid index, or -1 if the value is outside range +/- one cell.
bool inRange(int i) const
Scalar closestNode(Scalar a) const
void normalize(int &ind, Scalar &f) const
Grid1D(Scalar lower, Scalar upper, int nodes)
int index(Scalar a, Scalar &f) const