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>where
T: Float + Clone,
impl<T> Clone for PeriodogramPowerFft<T>where T: Float + Clone,
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> 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§fn approx(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst, DefaultApprox>,
fn approx(self) -> Result<Dst, Self::Err>where Self: Sized + ApproxInto<Dst, DefaultApprox>,
Approximate the subject with the default scheme.
source§fn approx_by<Scheme>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
fn approx_by<Scheme>(self) -> Result<Dst, Self::Err>where Self: Sized + ApproxInto<Dst, Scheme>, Scheme: ApproxScheme,
Approximate the subject with a specific scheme.
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, DefaultApprox>,
fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where Self: Sized + ApproxInto<Dst, DefaultApprox>,
Approximate the subject to a given type with the default scheme.
source§fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>where Self: Sized + ApproxInto<Dst, Scheme>, Scheme: ApproxScheme,
Approximate the subject to a given type with a specific scheme.
source§fn into_as<Dst>(self) -> Dstwhere
Self: Sized + Into<Dst>,
fn into_as<Dst>(self) -> Dstwhere Self: Sized + Into<Dst>,
Convert the subject to a given type.