pub struct RegularizedBoseKernel { /* private fields */ }Expand description
Regularized bosonic analytical continuation kernel
Deprecated: use LogisticKernel, the default kernel for both
statistics. RegularizedBoseKernel will be removed in a future release
(https://github.com/SpM-lab/sparse-ir-rs/issues/273).
In dimensionless variables x = 2τ/β - 1, y = βω/Λ, the integral kernel is:
K(x, y) = y * exp(-Λ y (x + 1) / 2) / (1 - exp(-Λ y))This kernel is used for bosonic Green’s functions. The factor y regularizes the singularity at ω = 0, making the kernel well-behaved for numerical work.
The dimensionalized kernel is related by:
K(τ, ω) = ωmax * K(2τ/β - 1, ω/ωmax)where ωmax = Λ/β.
§Properties
- Centrosymmetric: K(x, y) = K(-x, -y)
- ypower = 1: K(x, y) carries one power of y; in physical units K(τ, ω) = ω e^{-τω} / (1 - e^{-βω}) acts on ρ(ω)/ω, i.e. G(τ) = -∫ dω K(τ, ω) ρ(ω)/ω (irbasis paper, Chikano et al., CPC 240, 181 (2019), arXiv:1807.05237, Eqs. (1)-(3))
- Bosonic only: Does not support fermionic statistics
- Regularizer: w(β, ω) = ω for bosonic statistics (see
regularizer)
§Numerical Stability
The expression v / (exp(v) - 1) is evaluated using expm1 for small |v|.
Implementations§
Source§impl RegularizedBoseKernel
impl RegularizedBoseKernel
Sourcepub fn new(lambda: f64) -> Result<RegularizedBoseKernel, Error>
👎Deprecated: use LogisticKernel, the default kernel for both statistics; RegularizedBoseKernel will be removed in a future release (https://github.com/SpM-lab/sparse-ir-rs/issues/273)
pub fn new(lambda: f64) -> Result<RegularizedBoseKernel, Error>
use LogisticKernel, the default kernel for both statistics; RegularizedBoseKernel will be removed in a future release (https://github.com/SpM-lab/sparse-ir-rs/issues/273)
Create a new RegularizedBoseKernel
§Arguments
lambda- Kernel cutoff Λ (must be positive and finite)
§Errors
Error::InvalidParameter if lambda is not positive and finite. At
Λ = 0 the kernel is infinite at y = 0 (K = 1/Λ there), so its SVE does
not exist.
Trait Implementations§
Source§impl CentrosymmKernel for RegularizedBoseKernel
impl CentrosymmKernel for RegularizedBoseKernel
Source§fn compute_reduced<T>(&self, x: T, y: T, symmetry: SymmetryType) -> T
fn compute_reduced<T>(&self, x: T, y: T, symmetry: SymmetryType) -> T
Source§impl Clone for RegularizedBoseKernel
impl Clone for RegularizedBoseKernel
Source§fn clone(&self) -> RegularizedBoseKernel
fn clone(&self) -> RegularizedBoseKernel
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for RegularizedBoseKernel
Source§impl Debug for RegularizedBoseKernel
impl Debug for RegularizedBoseKernel
Source§impl KernelProperties for RegularizedBoseKernel
impl KernelProperties for RegularizedBoseKernel
Source§type SVEHintsType<T: Copy + Debug + Send + Sync + CustomNumeric + 'static> = RegularizedBoseSVEHints<T>
type SVEHintsType<T: Copy + Debug + Send + Sync + CustomNumeric + 'static> = RegularizedBoseSVEHints<T>
Source§fn conv_radius(&self) -> f64
fn conv_radius(&self) -> f64
Source§fn regularizer<S>(&self, _beta: f64, omega: f64) -> f64where
S: StatisticsType + 'static,
fn regularizer<S>(&self, _beta: f64, omega: f64) -> f64where
S: StatisticsType + 'static,
Source§fn sve_hints<T>(
&self,
epsilon: f64,
) -> <RegularizedBoseKernel as KernelProperties>::SVEHintsType<T>
fn sve_hints<T>( &self, epsilon: f64, ) -> <RegularizedBoseKernel as KernelProperties>::SVEHintsType<T>
Source§impl PartialEq for RegularizedBoseKernel
impl PartialEq for RegularizedBoseKernel
impl StructuralPartialEq for RegularizedBoseKernel
Auto Trait Implementations§
impl Freeze for RegularizedBoseKernel
impl RefUnwindSafe for RegularizedBoseKernel
impl Send for RegularizedBoseKernel
impl Sync for RegularizedBoseKernel
impl Unpin for RegularizedBoseKernel
impl UnsafeUnpin for RegularizedBoseKernel
impl UnwindSafe for RegularizedBoseKernel
Blanket Implementations§
impl<T> Boilerplate for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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>,
impl<T, U> Imply<T> for U
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> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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 moreimpl<T> MaybeSend for Twhere
T: Send,
impl<T> MaybeSendSync for T
impl<T> MaybeSync for Twhere
T: Sync,
§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
impl<T> Scalar 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.