Struct light_curve_feature::PeriodogramPowerFft
source · pub struct PeriodogramPowerFft<T>where
T: Float,{ /* private fields */ }
Expand description
“Fast” (FFT-based) periodogram executor
This algorithm spreads observer time series into uniform time grid using linear interpolation
and then uses FFT to obtain periodogram sums. This implementation returns estimation of
Lomb-Scargle periodogram that derives to the exact values while max_freq_factor
grows.
Asymptotic time is $O(N \log N)$, it is faster then
PeriodogramPowerDirect even for $N \gtrsim 10$.
Note that current implementation uses two-powered time grids and requires to estimate the best
FFT algorithm for each pair of grid size and working thread that can take several seconds,
especially for large grids.
The implementation is inspired by Numerical Recipes, Press et al., 1997, Section 13.8
Implementations§
Trait Implementations§
source§impl<T> Clone for PeriodogramPowerFft<T>
impl<T> Clone for PeriodogramPowerFft<T>
source§fn clone(&self) -> PeriodogramPowerFft<T>
fn clone(&self) -> PeriodogramPowerFft<T>
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<T> Debug for PeriodogramPowerFft<T>where
T: Float,
impl<T> Debug for PeriodogramPowerFft<T>where
T: Float,
source§impl<T> Default for PeriodogramPowerFft<T>where
T: Float,
impl<T> Default for PeriodogramPowerFft<T>where
T: Float,
source§impl<'de, T> Deserialize<'de> for PeriodogramPowerFft<T>where
T: Float,
impl<'de, T> Deserialize<'de> for PeriodogramPowerFft<T>where
T: Float,
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl<T> From<PeriodogramPowerFft<T>> for PeriodogramPower<T>where
T: Float,
impl<T> From<PeriodogramPowerFft<T>> for PeriodogramPower<T>where
T: Float,
source§fn from(v: PeriodogramPowerFft<T>) -> PeriodogramPower<T>
fn from(v: PeriodogramPowerFft<T>) -> PeriodogramPower<T>
Converts to this type from the input type.
source§impl<T> JsonSchema for PeriodogramPowerFft<T>where
T: Float,
impl<T> JsonSchema for PeriodogramPowerFft<T>where
T: Float,
source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
Whether JSON Schemas generated for this type should be re-used where possible using the
$ref
keyword. Read moresource§fn schema_name() -> String
fn schema_name() -> String
The name of the generated JSON Schema. Read more
source§fn json_schema(gen: &mut SchemaGenerator) -> Schema
fn json_schema(gen: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
source§impl<T> Serialize for PeriodogramPowerFft<T>where
T: Float,
impl<T> Serialize for PeriodogramPowerFft<T>where
T: Float,
source§impl<T> TryInto<PeriodogramPowerFft<T>> for PeriodogramPower<T>where
T: Float,
impl<T> TryInto<PeriodogramPowerFft<T>> for PeriodogramPower<T>where
T: Float,
Auto Trait Implementations§
impl<T> Freeze for PeriodogramPowerFft<T>
impl<T> RefUnwindSafe for PeriodogramPowerFft<T>
impl<T> Send for PeriodogramPowerFft<T>
impl<T> Sync for PeriodogramPowerFft<T>
impl<T> Unpin for PeriodogramPowerFft<T>
impl<T> UnwindSafe for PeriodogramPowerFft<T>
Blanket Implementations§
source§impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
source§fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
Convert the given value into an approximately equivalent representation.
source§impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
§type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
The error type produced by a failed conversion.
source§fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
Convert the subject into an approximately equivalent representation.
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, Dst> ConvAsUtil<Dst> for T
impl<T, Dst> ConvAsUtil<Dst> for T
source§impl<T> ConvUtil for T
impl<T> ConvUtil for T
source§fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
Approximate the subject to a given type with the default scheme.
source§fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
Approximate the subject to a given type with a specific scheme.
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