[][src]Crate halton

A module for generating Halton sequences, a deterministic low discrepancy sequence that appears to be random. The uniform distribution and repeatability makes the sequence ideal for choosing sample points or placing objects in 2D or 3D space.

Examples

use halton::Sequence;

let mut grid = [["."; 10]; 10];
let alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("").skip(1).take(26);
let seq = Sequence::new(2).zip(Sequence::new(3)).zip(alpha);
for ((x, y), c) in seq {
    grid[(y * 10.0) as usize][(x * 10.0) as usize] = c;
}
for row in grid.iter() {
    println!("{}", row.join(" "));
}

Outputs:

. . R . . I . . . .
. L . . . . U C . .
X . . F . . . . . O
. . . J . A . . . .
. D . . . . M S . .
P . . . V . . . G .
. . B . . Y . . . .
. T . . . . E . K .
H . . . N . . . . W
. . . Z . Q . . . .

Structs

Sequence

An iterator implementing the fast generation of Halton sequences. The method of generation is adapted from Fast, portable, and reliable algorithm for the calculation of Halton numbers by Miroslav Kolar and Seamus O'Shea.

Functions

number

Returns the number at index of the Halton sequence for base. The number returned will be > 0 and < 1, assuming index > 1.