Build an Iterator[A] from an Interval[A] and a (step: A) parameter.
Build an Iterator[A] from an Interval[A] and a (step: A) parameter.
A positive 'step' means we are proceeding from the lower bound up, and a negative 'step' means we are proceeding from the upper bound down. In each case, the interval must be bounded on the side we are starting with (though it may be unbound on the opposite side). A zero 'step' is not allowed.
The step is repeatedly added to the starting parameter as long as the sum remains within the interval. This means that arithmetic error can accumulate (e.g. with doubles). However, this method does overflow checking to ensure that Intervals parameterized on integer types will behave correctly.
Users who want to avoid using arithmetic error should consider starting with an Interval[Rational], calling iterator with the exact step desired, then mapping to the original type (e.g. Double). For example:
val ns = Interval.closed(Rational(0), Rational(5)) val it = ns.iterator(Rational(1, 7)).map(_.toDouble)
This method provides some of the same functionality as Scala's NumericRange class.
Apply the given polynomial to the interval.
Apply the given polynomial to the interval.
For every point contained in the interval, this method maps that point through the given polynomial. The resulting interval is the set of all the translated points. I.e.
result = { p(x) | x ∈ interval }