src/kernels/gaussian.rs

branch
dev
changeset 38
0f59c0d02e13
parent 35
b087e3eab191
equal deleted inserted replaced
37:c5d8bd1a7728 38:0f59c0d02e13
1 //! Implementation of the gaussian kernel. 1 //! Implementation of the gaussian kernel.
2 2
3 use float_extras::f64::erf; 3 use float_extras::f64::erf;
4 use numeric_literals::replace_float_literals; 4 use numeric_literals::replace_float_literals;
5 use serde::Serialize; 5 use serde::{Serialize, Deserialize};
6 use alg_tools::types::*; 6 use alg_tools::types::*;
7 use alg_tools::euclidean::Euclidean; 7 use alg_tools::euclidean::Euclidean;
8 use alg_tools::norms::*; 8 use alg_tools::norms::*;
9 use alg_tools::loc::Loc; 9 use alg_tools::loc::Loc;
10 use alg_tools::sets::Cube; 10 use alg_tools::sets::Cube;
32 32
33 /// Storage presentation of the the anisotropic gaussian kernel of `variance` $σ^2$. 33 /// Storage presentation of the the anisotropic gaussian kernel of `variance` $σ^2$.
34 /// 34 ///
35 /// This is the function $f(x) = C e^{-\\|x\\|\_2^2/(2σ^2)}$ for $x ∈ ℝ^N$ 35 /// This is the function $f(x) = C e^{-\\|x\\|\_2^2/(2σ^2)}$ for $x ∈ ℝ^N$
36 /// with $C=1/(2πσ^2)^{N/2}$. 36 /// with $C=1/(2πσ^2)^{N/2}$.
37 #[derive(Copy,Clone,Debug,Serialize,Eq)] 37 #[derive(Copy,Clone,Debug,Serialize,Deserialize,Eq)]
38 pub struct Gaussian<S : Constant, const N : usize> { 38 pub struct Gaussian<S : Constant, const N : usize> {
39 /// The variance $σ^2$. 39 /// The variance $σ^2$.
40 pub variance : S, 40 pub variance : S,
41 } 41 }
42 42

mercurial