Function range

Source
pub fn range(x: f64, step: f64, size: usize, order: &str) -> Vec<f64>
Expand description

§range(x, step, size, order)

Generating function

The range function generates a list of up to one million elements representing a sequence of float numbers spaced by the provided step value starting at x, optionally sorted either ascending (“asc”) or descending (“desc”). Returns an empty vector if size exceeds one million, or if step is nonpositive.

§Examples

use mathlab::math::range;
// For the order argument, use "asc" for ascending order or "desc" for descending order, otherwise the function will return [].
assert_eq!(range(0.0, 0.1, 10, "abcd"), []);
assert_eq!(range(0.0, 0.1, 0, "asc"), []); // The parameter size must be from 1 to 1 million.
assert_eq!(range(0.0, 0.1, 1000000000, "asc"), []); // The parameter size must be from 1 to 1 million.
assert_eq!(range(1.0, 1.0, 10, "asc"), [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0]);
assert_eq!(range(0.0, 0.1, 10, "asc"), [0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]);
assert_eq!(range(0.0, 0.1, 10, "desc"), [0.0, -0.1, -0.2, -0.3, -0.4, -0.5, -0.6, -0.7, -0.8, -0.9]);
assert_eq!(range(0.9, 0.1, 10, "desc"), [0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 0.0]);
assert_eq!(range(0.0, 2.0, 3, "asc"), [0.0, 2.0, 4.0]);
assert_eq!(range(4.0, 2.0, 3, "desc"), [4.0, 2.0, 0.0]);

End Fun Doc