The three operator-level traits the algorithms consume, plus the single trait users implement to add a new optimizer (`Optimizer<P>`). All take `&mut Rng` directly rather than being generic over the RNG (spec §7.8).
The three operator-level traits the algorithms consume, plus the single trait users implement to add a new optimizer (`Optimizer<P>`). All take `&mut Rng` directly rather than being generic over the RNG (spec §7.8).