- Removed some redundant internal methods.
- Fixed a typo in PSD normalisation formula in documentation (#28, #29).
- Make sure
bootstrap([::AbstractRNG,] ::Integer, ::PeriodogramPlan)
methods don't modify the periodogram of the input plan.
- Restore
bootstrap(::Integer, ::PeriodogramPlan)
method that was accidentally removed in v0.5.1.
- Previously, when using the fast method the vector of the signal was padded to
a length which is a power of 2, but now you can choose the factors of the
length of the padded vector with the new keyword argument for
LombScargle.lombscargle
andLombScargle.plan
functions:padding_factors::Union{NTuple{N,<:Integer} where {N},Vector{<:Integer}}
. This defaults to[2,3,5,7]
, which is the optimal choice for FFTW and allows for smaller vectors compared to powers of 2. To reproduce the same results as with the previous default setting you need to usepadding_factors=[2]
.
- Minor reorganisation of the bootstraping code.
- Support for Julia 0.7 was dropped, now the minimum version required is Julia v1.0.
- Support for Julia 0.6 was dropped.
- Minor performance improvements
- New documentation at https://juliaastro.github.io/LombScargle.jl/stable/
- You can pre-plan a periodogram before actually performing it using
LombScargle.plan
function. This computes some quantities needed afterwards and pre-allocate the memory for the actual computation of the periodogram. The speed-up is particularly relevant for the fast method. - Add
flags
andtimelimit
optional keywords tolombscargle
function, to set the FFTW planner flags and the time limit. - Package license changed to BSD 3-clause "New" or "Revised".
- Support for Julia 0.4 and 0.5 was dropped.
- The
normalization
keyword oflombscargle
function now must be aSymbol
(instead ofAbstractString
), the default being:standard
(instead of"standard"
). The same normalizations as before are supported, the names kept the same capitalization.
This version faced several performance improvements, in particular to
lombscargle
and LombScargle.model
functions, besides the pre-planning
feature.
- The fast method of
lombscarlge
now is faster, the larger the size of input array, the larger the improvement. In addition, the fast Fourier transform computed internally with FFTW library can take advantage of multi-threading (callFFTW.set_num_threads(n)
to usen
threads) in order to speed-up computation. However, please note that the running time will not scale asn
because computation of the FFT is only a part of the algorithm. The memory footprint of this function is also considerably lower. To give you an idea of the improvement, for an input of 100000 datapoints, a pre-planned periodogram is 70% faster than a (non-planned) periodogram in previous version and requires almost 90% less memory. With 4 FFTW threads the speed-up is of 80%. - The two non-fast methods now are about 20%-30% faster, thanks to the use of
sincos
function from math library. These methods now also support Julia’s native multi-threading. Run Julia withn
threads (e.g.,JULIA_NUM_THREADS=4 julia
for 4 threads) in order to gain ann
-fold scaling. These functions also eat considerably less memory: if the periodogram is pre-planned, all operations are then performed in-place, so memory usage of the periodogram only is independent of input size. - The
LombScargle.model
function is now a bit faster and less memory-greedy than before.
- PSD normalization with heteroskedastic errors has been fixed.
- The fast method is now used when the frequency grid is evenly spaced (a
Range
object), no matter what thetimes
vector is. The previous behavior was due to a wrong interpretation of the applicability of the method.
Periodogram
type now has 4 parameters, one for the type of each field. Nowpower
,freq
, andtimes
fields need not to have all the same floating point type.- In the non-fast variant of the Generalised Lomb–Scargle method, when
fit_mean
and/orcenter_data
aretrue
, pre-center the data by subtracting from the signal the weighted average of the signal itself, instead of the arithmetic mean.
- New function for performing bootstrap resampling:
LombScargle.bootstrap
. Thefap
andfapinv
functions have now new methods to estimate false-alarm probability and its inverse from a bootstrap sample. - New utilities:
period
,periodpower
,findmaxperiod
.
- Fix power in the standard (i.e.,
fast = false
variant) generalised Lomb–Scargle algorithm withfit_mean = true
. You will find different results than before, but for the better, previous results were slightly wrong.
- New function:
LombScargl.model
. It gives the best fitting Lomb–Scargle model at a given frequency. findmaxfreq
function now can take an optional argument (interval
) to limit the search for the maximum frequency to a certain frequency range.
- The fast, but approximate, method by Press & Rybicki (1989) has been
implemented. This has complexity O[N log(N)], to be compared with the O[N^2]
of the true Lomb–Scargle periodogram. The implementation in this package is
based on the one in Astropy. Related to this method, three new keywords for
lombscargle
function has been added:fast
,oversampling
,Mfft
. - The generalised Lomb–Scargle algorithm by Zechmeister & Kürster is used also
with
fit_mean=false
, when the user provided the uncertainties.
- New functions:
findmaxpower
,prob
,probinv
,fap
,fapinv
. - New optional keyword for
lombscargle
function:noise_level
.
Initial release.