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