pub struct PT<T, N, D>where
T: FloatNum + RealField + Send + Sync + Sum,
N: Dim + Send + Sync,
D: Dim + Send + Sync + DimSub<Const<1>>,
OVector<T, D>: Send + Sync,
OVector<T, N>: Send + Sync,
OVector<bool, N>: Send + Sync,
OMatrix<T, N, D>: Send + Sync,
OMatrix<T, D, D>: Send + Sync,
DefaultAllocator: Allocator<D> + Allocator<N, D> + Allocator<N> + Allocator<D, D> + Allocator<U1, D> + Allocator<<D as DimSub<Const<1>>>::Output>,{
pub conf: PTConf,
pub metropolis_hastings: MetropolisHastings<T, D>,
pub swap_check: SwapCheck,
pub temperature_manager: PowerLawScheduler<T>,
pub swap_manager: SwapManager<T, N, D>,
pub replicas: Vec<ReplicaState<T, N, D>>,
pub opt_prob: OptProb<T, D>,
pub best_individual: OVector<T, D>,
pub best_fitness: T,
pub preconditioner: Box<dyn Preconditioner<T, N, D> + Send + Sync>,
pub covariance_matrices: Vec<OMatrix<T, D, D>>,
pub st: State<T, N, D>,
/* private fields */
}
Fields§
§conf: PTConf
§metropolis_hastings: MetropolisHastings<T, D>
§swap_check: SwapCheck
§temperature_manager: PowerLawScheduler<T>
§swap_manager: SwapManager<T, N, D>
§replicas: Vec<ReplicaState<T, N, D>>
§opt_prob: OptProb<T, D>
§best_individual: OVector<T, D>
§best_fitness: T
§preconditioner: Box<dyn Preconditioner<T, N, D> + Send + Sync>
§covariance_matrices: Vec<OMatrix<T, D, D>>
§st: State<T, N, D>
Implementations§
Source§impl<T, N, D> PT<T, N, D>where
T: FloatNum + RealField + Send + Sync + Sum,
N: Dim + Send + Sync,
D: Dim + Send + Sync + DimSub<Const<1>>,
OVector<T, D>: Send + Sync,
OVector<T, N>: Send + Sync,
OVector<bool, N>: Send + Sync,
OMatrix<T, N, D>: Send + Sync,
OMatrix<T, D, D>: Send + Sync,
DefaultAllocator: Allocator<D> + Allocator<N, D> + Allocator<N> + Allocator<D, D> + Allocator<U1, D> + Allocator<<D as DimSub<Const<1>>>::Output>,
impl<T, N, D> PT<T, N, D>where
T: FloatNum + RealField + Send + Sync + Sum,
N: Dim + Send + Sync,
D: Dim + Send + Sync + DimSub<Const<1>>,
OVector<T, D>: Send + Sync,
OVector<T, N>: Send + Sync,
OVector<bool, N>: Send + Sync,
OMatrix<T, N, D>: Send + Sync,
OMatrix<T, D, D>: Send + Sync,
DefaultAllocator: Allocator<D> + Allocator<N, D> + Allocator<N> + Allocator<D, D> + Allocator<U1, D> + Allocator<<D as DimSub<Const<1>>>::Output>,
pub fn new( conf: PTConf, init_pop: OMatrix<T, N, D>, opt_prob: OptProb<T, D>, max_iter: usize, seed: u64, ) -> Self
pub fn swap(&mut self)
pub fn get_replica_population( &self, replica_idx: usize, ) -> Option<&OMatrix<T, N, D>>
pub fn get_all_replica_populations(&self) -> Vec<OMatrix<T, N, D>> ⓘ
pub fn get_num_replicas(&self) -> usize
pub fn set_preconditioner( &mut self, preconditioner: Box<dyn Preconditioner<T, N, D> + Send + Sync>, )
pub fn update_covariance_matrices(&mut self)
pub fn get_acceptance_rates(&self) -> Vec<f64>
pub fn get_swap_acceptance_rates(&self) -> &[f64]
pub fn compute_effective_sample_size(&self) -> Vec<f64>
pub fn compute_population_diversity(&self) -> f64
Trait Implementations§
Source§impl<T, N, D> OptimizationAlgorithm<T, N, D> for PT<T, N, D>where
T: FloatNum + RealField + Send + Sync + Sum,
N: Dim + Send + Sync,
D: Dim + Send + Sync + DimSub<Const<1>>,
OVector<T, D>: Send + Sync,
OVector<T, N>: Send + Sync,
OVector<bool, N>: Send + Sync,
OMatrix<T, N, D>: Send + Sync,
OMatrix<T, D, D>: Send + Sync,
DefaultAllocator: Allocator<D> + Allocator<N, D> + Allocator<N> + Allocator<D, D> + Allocator<U1, D> + Allocator<<D as DimSub<Const<1>>>::Output>,
impl<T, N, D> OptimizationAlgorithm<T, N, D> for PT<T, N, D>where
T: FloatNum + RealField + Send + Sync + Sum,
N: Dim + Send + Sync,
D: Dim + Send + Sync + DimSub<Const<1>>,
OVector<T, D>: Send + Sync,
OVector<T, N>: Send + Sync,
OVector<bool, N>: Send + Sync,
OMatrix<T, N, D>: Send + Sync,
OMatrix<T, D, D>: Send + Sync,
DefaultAllocator: Allocator<D> + Allocator<N, D> + Allocator<N> + Allocator<D, D> + Allocator<U1, D> + Allocator<<D as DimSub<Const<1>>>::Output>,
Auto Trait Implementations§
impl<T, N, D> !Freeze for PT<T, N, D>
impl<T, N, D> !RefUnwindSafe for PT<T, N, D>
impl<T, N, D> Send for PT<T, N, D>where
DefaultAllocator: Sized,
impl<T, N, D> Sync for PT<T, N, D>where
DefaultAllocator: Sized,
impl<T, N, D> !Unpin for PT<T, N, D>
impl<T, N, D> !UnwindSafe for PT<T, N, D>
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.