pub struct CpuMath<F: CpuLogpFunc> { /* private fields */ }
Implementations§
Trait Implementations§
source§impl<F: CpuLogpFunc> Math for CpuMath<F>
impl<F: CpuLogpFunc> Math for CpuMath<F>
type Vector = Mat<f64>
type EigVector = Mat<f64>
type EigMatrix = Mat<f64>
type LogpErr = <F as CpuLogpFunc>::LogpError
type Err = CpuMathError
fn new_array(&self) -> Self::Vector
fn logp( &mut self, position: &[f64], gradient: &mut [f64] ) -> Result<f64, Self::LogpErr>
source§fn logp_array(
&mut self,
position: &Self::Vector,
gradient: &mut Self::Vector
) -> Result<f64, Self::LogpErr>
fn logp_array( &mut self, position: &Self::Vector, gradient: &mut Self::Vector ) -> Result<f64, Self::LogpErr>
Compute the unnormalized log probability density of the posterior Read more
fn dim(&self) -> usize
fn scalar_prods3( &mut self, positive1: &Self::Vector, negative1: &Self::Vector, positive2: &Self::Vector, x: &Self::Vector, y: &Self::Vector ) -> (f64, f64)
fn scalar_prods2( &mut self, positive1: &Self::Vector, positive2: &Self::Vector, x: &Self::Vector, y: &Self::Vector ) -> (f64, f64)
fn read_from_slice(&mut self, dest: &mut Self::Vector, source: &[f64])
fn write_to_slice(&mut self, source: &Self::Vector, dest: &mut [f64])
fn copy_into(&mut self, array: &Self::Vector, dest: &mut Self::Vector)
fn axpy_out( &mut self, x: &Self::Vector, y: &Self::Vector, a: f64, out: &mut Self::Vector )
fn axpy(&mut self, x: &Self::Vector, y: &mut Self::Vector, a: f64)
fn fill_array(&mut self, array: &mut Self::Vector, val: f64)
fn array_all_finite(&mut self, array: &Self::Vector) -> bool
fn array_all_finite_and_nonzero(&mut self, array: &Self::Vector) -> bool
fn array_mult( &mut self, array1: &Self::Vector, array2: &Self::Vector, dest: &mut Self::Vector )
fn array_vector_dot( &mut self, array1: &Self::Vector, array2: &Self::Vector ) -> f64
fn array_gaussian<R: Rng + ?Sized>( &mut self, rng: &mut R, dest: &mut Self::Vector, stds: &Self::Vector )
fn array_update_variance( &mut self, mean: &mut Self::Vector, variance: &mut Self::Vector, value: &Self::Vector, diff_scale: f64 )
fn array_update_var_inv_std_draw_grad( &mut self, variance_out: &mut Self::Vector, inv_std: &mut Self::Vector, draw_var: &Self::Vector, grad_var: &Self::Vector, fill_invalid: Option<f64>, clamp: (f64, f64) )
fn array_update_var_inv_std_grad( &mut self, variance_out: &mut Self::Vector, inv_std: &mut Self::Vector, gradient: &Self::Vector, fill_invalid: f64, clamp: (f64, f64) )
fn array_update_var_inv_std_draw( &mut self, variance_out: &mut Self::Vector, inv_std: &mut Self::Vector, draw_var: &Self::Vector, scale: f64, fill_invalid: Option<f64>, clamp: (f64, f64) )
fn box_array(&mut self, array: &Self::Vector) -> Box<[f64]>
Auto Trait Implementations§
impl<F> Freeze for CpuMath<F>where
F: Freeze,
impl<F> RefUnwindSafe for CpuMath<F>where
F: RefUnwindSafe,
impl<F> Send for CpuMath<F>where
F: Send,
impl<F> Sync for CpuMath<F>where
F: Sync,
impl<F> Unpin for CpuMath<F>where
F: Unpin,
impl<F> UnwindSafe for CpuMath<F>where
F: UnwindSafe,
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 more