Skip to main content

Sobol

Struct Sobol 

Source
pub struct Sobol {
    pub seed: u64,
}
Expand description

Cover the space evenly, one binary bisection per knob.

The same promise as Halton — uniform by construction for every prefix — paid for elsewhere: Halton reads knob d in base the d-th prime, so its cover thins as the primes grow, while this reads every knob in base two and separates them with a set of direction numbers each.

Chosen, and that is the price: a Sobol sequence built on the wrong numbers does not fail, it covers worse and nobody finds out. These are Joe and Kuo’s (2008), and a test walks the first dimensions against published values, because reading a table is not a way of checking it. Past KNOBS dimensions ask answers None from the first trial rather than quietly in the middle. Its point is a function of the seed and the index.

Fields§

§seed: u64

The seed, which here shifts the digits rather than drawing them: without it a Sobol sequence is one fixed sequence and two studies of the same space would walk it in exactly the same order.

Implementations§

Source§

impl Sobol

Source

pub fn ask( &self, space: &Space, trial: usize, _seen: &[(Point, Option<f64>)], ) -> Option<Point>

The trial-th point, or None when there are more knobs than the table has. It never runs out, and it never looks at what the finished trials did.

Trait Implementations§

Source§

impl Clone for Sobol

Source§

fn clone(&self) -> Sobol

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Sobol

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<Sobol> for Sampler

Source§

fn from(how: Sobol) -> Self

Converts to this type from the input type.
Source§

impl Hash for Sobol

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Sobol

Source§

fn eq(&self, other: &Sobol) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for Sobol

Source§

impl StructuralPartialEq for Sobol

Auto Trait Implementations§

§

impl Freeze for Sobol

§

impl RefUnwindSafe for Sobol

§

impl Send for Sobol

§

impl Sync for Sobol

§

impl Unpin for Sobol

§

impl UnsafeUnpin for Sobol

§

impl UnwindSafe for Sobol

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.