Struct ParameterSampler
pub struct ParameterSampler { /* private fields */ }Description
Bounded sampler in one admitted Program’s exact ordered Parameter coordinates.
Bounds use coherent SI values in that existing typed input order. This is a deterministic finite-grid sampler, not evidence of statistical independence or a time-indexed stochastic process. No draw happens inside evaluation.
Implementations§
§impl ParameterSampler
impl ParameterSampler
pub const GENERATOR: &'static str = "eqiora.parameter-uniform.sha256.v1"
pub const GENERATOR: &'static str = "eqiora.parameter-uniform.sha256.v1"
Exact supported SHA-256 stream derivation and binary64 conversion contract.
pub fn new(
program: Arc<DifferentiableProgram>,
master: [u8; 32],
fixed: &DifferentiableValues,
bounds: &[[f64; 2]],
) -> Result<ParameterSampler, Diagnostic>
pub fn new( program: Arc<DifferentiableProgram>, master: [u8; 32], fixed: &DifferentiableValues, bounds: &[[f64; 2]], ) -> Result<ParameterSampler, Diagnostic>
Freeze selected typed inputs and admit 1..=256 finite sampling intervals.
Bounds cover only the remaining Program coordinates, in their original order. A draw retains its absolute Program coordinate index, so fixing another input does not shift its stream. An empty fixed product samples every input. Changing fixed values makes a new explicit sampling request; execution and differentiation never resample.
§Errors
Rejects shape/type-input disagreement and invalid intervals before sampling.
pub const fn master_stream(&self) -> &[u8; 32]
pub const fn master_stream(&self) -> &[u8; 32]
Full master stream identity; no ambient seed is consulted.
pub fn fixed_values(&self) -> &DifferentiableValues
pub fn fixed_values(&self) -> &DifferentiableValues
Frozen typed values excluded from random draws, in their selected leaf order.
pub fn bounds(&self) -> &[[f64; 2]]
pub fn bounds(&self) -> &[[f64; 2]]
Ordered coherent-SI half-open intervals for the remaining input coordinates.
pub fn sample(
&self,
identity: &SamplingIdentity,
) -> Result<SampledParameterPoint, Diagnostic>
pub fn sample( &self, identity: &SamplingIdentity, ) -> Result<SampledParameterPoint, Diagnostic>
Freeze one complete typed point. Repeated identities deliberately replay.
Call in any order, partition, worker or retry schedule. The generated
values are passed explicitly to DifferentiableProgram::evaluate or
EvaluationMapPlan::new; those owners retain numerical admission.
§Errors
Returns the existing typed input admission diagnostic if conversion fails.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ParameterSampler
impl RefUnwindSafe for ParameterSampler
impl Send for ParameterSampler
impl Sync for ParameterSampler
impl Unpin for ParameterSampler
impl UnsafeUnpin for ParameterSampler
impl UnwindSafe for ParameterSampler
Blanket Implementations§
Source§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
§fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
§impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
§type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
§fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
Source§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, Dst> ConvAsUtil<Dst> for T
impl<T, Dst> ConvAsUtil<Dst> for T
§fn approx(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
§impl<T> ConvUtil for T
impl<T> ConvUtil for T
§fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
§fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
§fn into_as<Dst>(self) -> Dstwhere
Self: Sized + Into<Dst>,
fn into_as<Dst>(self) -> Dstwhere
Self: Sized + Into<Dst>,
§fn try_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + TryInto<Dst>,
fn try_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + TryInto<Dst>,
§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> Twhere
Self: Distribution<T>,
Source§impl<T> From<T> for T
impl<T> From<T> for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>where
F: FnOnce(&Self) -> bool,
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>where
F: FnOnce(&Self) -> bool,
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> Same for T
impl<T> Same for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.