3 unstable releases
0.2.1 | Mar 8, 2023 |
---|---|
0.2.0 | Aug 30, 2022 |
0.1.0 | Aug 30, 2022 |
#1228 in Math
9KB
100 lines
iter-rationals
This crate implements an iterator over the rational numbers which:
- yields each number once-and-only-once,
- requires only a fixed amount of memory, and
- yields successive values with a fixed amount of arithmetic operations.
The algorithm is described in Functional Pearl: Enumerating the Rationals by Gibbons, Lester, and Bird; see the paper for an explanation of how it works.
Usage
use iter_rationals::Rationals;
fn main() {
let rs = Rationals::<u32>::new();
for r in rs.take(20) {
println!("{r}");
}
}
Installation
Add this dependency to your Cargo.toml
:
iter-rationals = "0.1"
or on the command line:
cargo add iter-rationals
License
Dependencies
~590KB
~13K SLoC