pub struct PiecewiseComplexScalar { /* private fields */ }Expand description
A piecewise complex-valued Amplitude which just contains two parameters representing its real and
imaginary parts.
Implementations§
Source§impl PiecewiseComplexScalar
impl PiecewiseComplexScalar
Sourcepub fn new<V>(
name: &str,
variable: &V,
bins: usize,
range: (f64, f64),
re_ims: Vec<(ParameterLike, ParameterLike)>,
) -> Box<PiecewiseComplexScalar>where
V: Variable + 'static,
pub fn new<V>(
name: &str,
variable: &V,
bins: usize,
range: (f64, f64),
re_ims: Vec<(ParameterLike, ParameterLike)>,
) -> Box<PiecewiseComplexScalar>where
V: Variable + 'static,
Create a new PiecewiseComplexScalar with the given name and parameter value.
Trait Implementations§
Source§impl Amplitude for PiecewiseComplexScalar
impl Amplitude for PiecewiseComplexScalar
Source§fn register(
&mut self,
resources: &mut Resources,
) -> Result<AmplitudeID, LadduError>
fn register( &mut self, resources: &mut Resources, ) -> Result<AmplitudeID, LadduError>
This method should be used to tell the
Resources manager about all of
the free parameters and cached values used by this Amplitude. It should end by
returning an AmplitudeID, which can be obtained from the
Resources::register_amplitude method.Source§fn precompute(&self, event: &Event, cache: &mut Cache)
fn precompute(&self, event: &Event, cache: &mut Cache)
Source§fn compute(
&self,
parameters: &Parameters<'_>,
_event: &Event,
cache: &Cache,
) -> Complex<f64>
fn compute( &self, parameters: &Parameters<'_>, _event: &Event, cache: &Cache, ) -> Complex<f64>
This method constitutes the main machinery of an
Amplitude, returning the actual
calculated value for a particular Event and set of Parameters. See those
structs, as well as Cache, for documentation on their available methods. For the
most part, Events can be interacted with via
Variables, while Parameters and the
Cache are more like key-value storage accessed by
ParameterIDs and several different types of cache
IDs.Source§fn compute_gradient(
&self,
_parameters: &Parameters<'_>,
_event: &Event,
cache: &Cache,
gradient: &mut Matrix<Complex<f64>, Dyn, Const<1>, VecStorage<Complex<f64>, Dyn, Const<1>>>,
)
fn compute_gradient( &self, _parameters: &Parameters<'_>, _event: &Event, cache: &Cache, gradient: &mut Matrix<Complex<f64>, Dyn, Const<1>, VecStorage<Complex<f64>, Dyn, Const<1>>>, )
This method yields the gradient of a particular
Amplitude at a point specified
by a particular Event and set of Parameters. See those structs, as well as
Cache, for documentation on their available methods. For the most part,
Events can be interacted with via Variables,
while Parameters and the Cache are more like key-value storage accessed by
ParameterIDs and several different types of cache
IDs. If the analytic version of the gradient is known, this method can be overwritten to
improve performance for some derivative-using methods of minimization. The default
implementation calculates a central finite difference across all parameters, regardless of
whether or not they are used in the Amplitude. Read moreSource§fn precompute_all(&self, dataset: &Dataset, resources: &mut Resources)
fn precompute_all(&self, dataset: &Dataset, resources: &mut Resources)
Source§fn central_difference_with_indices(
&self,
indices: &[usize],
parameters: &Parameters<'_>,
event: &Event,
cache: &Cache,
gradient: &mut Matrix<Complex<f64>, Dyn, Const<1>, VecStorage<Complex<f64>, Dyn, Const<1>>>,
)
fn central_difference_with_indices( &self, indices: &[usize], parameters: &Parameters<'_>, event: &Event, cache: &Cache, gradient: &mut Matrix<Complex<f64>, Dyn, Const<1>, VecStorage<Complex<f64>, Dyn, Const<1>>>, )
A helper function to implement a central difference only on indices which correspond to
free parameters in the
Amplitude. For example, if an Amplitude contains free
parameters registered to indices 1, 3, and 5 of the its internal parameters array, then
running this with those indices will compute a central finite difference derivative for
those coordinates only, since the rest can be safely assumed to be zero.Source§impl Clone for PiecewiseComplexScalar
impl Clone for PiecewiseComplexScalar
Source§fn clone(&self) -> PiecewiseComplexScalar
fn clone(&self) -> PiecewiseComplexScalar
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<'de> Deserialize<'de> for PiecewiseComplexScalar
impl<'de> Deserialize<'de> for PiecewiseComplexScalar
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<PiecewiseComplexScalar, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<PiecewiseComplexScalar, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Serialize for PiecewiseComplexScalar
impl Serialize for PiecewiseComplexScalar
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl Freeze for PiecewiseComplexScalar
impl !RefUnwindSafe for PiecewiseComplexScalar
impl Send for PiecewiseComplexScalar
impl Sync for PiecewiseComplexScalar
impl Unpin for PiecewiseComplexScalar
impl !UnwindSafe for PiecewiseComplexScalar
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>
fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>
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.