docs: protected double derivative(int i, NumberVector v) {
      final int dim = v.getDimensionality();
      if(dim == 1) {
        return 0.;
      }
      // Adjust for boundary conditions, as per the article:
      i = (i == 0) ? 1 : (i == dim - 1) ? dim - 2 : i;
      return (v.doubleValue(i) - v.doubleValue(i - 1) + (v.doubleValue(i + 1) - v.doubleValue(i - 1)) * .5) * .5;
    }