|
|
Line 1: |
Line 1: |
| == Porting TISEAN == | | == Porting TISEAN == |
|
| |
|
| This section will focus on demonstrating how the package is to be ported and what is the current state of that process. | | This section which focuses on demonstrating how the package is to be ported and what is the current state of that process is located in [[TISEAN_package:Procedure]]. |
| | |
| === Process ===
| |
| | |
| This section describes the process employed during porting TISEAN package into an Octave Package. This project was started as part of the Google Summer of Code 2015.
| |
| | |
| To aid in understanding the task there are some charts.
| |
| | |
| The first chart depicts what to do with each function in the function table. I mainly focuses on those functions that might already implemented in Octave.
| |
| | |
| [[File:Work_flow_TISEAN.png|400px|center]]
| |
| | |
| The chart below depicts how to decide which type of port should be utilized.
| |
| | |
| [[File:Porting_Programs_TISEAN.png|400px|center]] | |
| | |
| Both of those charts can be combined into a large one that shows all of the work together.
| |
| | |
| [[File:Flow_Together_TISEAN.png|400px|center]]
| |
| === Table of functions and progress ===
| |
| In reference to the TISEAN library alphabetical order of programs which is located [http://www.mpipks-dresden.mpg.de/~tisean/Tisean_3.0.1/docs/alphabetical.html here].
| |
| | |
| The choice whether a program exist in Octave is based only on comparing package/octave documentation with the TISEAN documentation. As of now I have not compared any code, nor checked if any sample data gives the same results from both functions (the octave ones and the TISEAN ones).
| |
| | |
| The legend to understand the table is as follows:
| |
| {| class="wikitable"
| |
| |-style="background: LightGreen"
| |
| |Green means the function is ported, tested or is not needed
| |
| |-style="background: LightSalmon"
| |
| |Red means the function was thought to have been similar but isn't
| |
| |-style="background: Yellow"
| |
| |Yellow means that the correlation between the TISEAN and Octave function needs to be verified
| |
| |-
| |
| |No color means that nothing about this function has been determined
| |
| |}
| |
| | |
| {| class="wikitable"
| |
| |-
| |
| ! Program Name !! Program Description !! Corresponding Octave Function !! Lanuguage of Origin !! How to port !! Status
| |
| |-
| |
| | arima-model || Fit and possibly iterate an ARIMA model || generalizes TSA arma functions || C || wrapped in C++/mfile/octfile code ||
| |
| |-
| |
| |ar-model || Fit and possibly iterate an Autoregessive model || 'aar' in TSA; see also: aarmam, adim, amarma, mvaar from TSA || C || wrapped in C++/mfile/octfile code ||
| |
| |-
| |
| |ar-run || Iterate an Autoregessive model || Same as above || FORTRAN || wrapped in C++/mfile/octfile code ||
| |
| |-style="background: LightGreen"
| |
| |av-d2 || Simply smooth output of d2 || Can be implemented with filter in core || C || ||
| |
| |-style="background: LightGreen"
| |
| |boxcount || Renyi Entopies of Qth order || None in GNU Octave (maybe in info-theory but it is not worth the pain) || C || wrapped in C++/mfile/octfile code ||
| |
| |-style="background: LightGreen"
| |
| |c1 || Fixed mass estimation of D1 || None in GNU Octave || FORTRAN || wrapped in C++/mfile/octfile code ||
| |
| |-style="background: LightGreen"
| |
| |c2d || Get local slopes from correlation integral || None in GNU Octave || FORTRAN || wrapped in C++/mfile/octfile code ||
| |
| |-style="background: LightGreen"
| |
| |c2g || Gaussian kernel of C2 || None in GNU Octave || FORTRAN || wrapped in C++/mfile/octfile code ||
| |
| |-style="background: LightGreen"
| |
| |c2t || Takens estimator of D2 || None in GNU Octave || FORTRAN || wrapped in C++/mfile/octfile code ||
| |
| |-style="background: LightGreen"
| |
| |choose || Choose rows and/or columns from a data file || Does not need to be ported || FORTRAN || ----- || Not Needed
| |
| |-style="background: LightGreen"
| |
| |compare || Compares two data sets || Does not need to be ported || FORTRAN || ------ || Not Needed
| |
| |-style="background: LightGreen"
| |
| |corr, autocorr || Autocorrelation function || xcorr in signal || corr -C, autocorr (faster according to documentation) - FORTRAN || ------- || Different usage, same result
| |
| |-style="background: LightGreen"
| |
| |d2 || Correlation dimension d2 || None in GNU Octave || C || wrapped in C++/mfile/octfile code ||
| |
| |-style="background: LightGreen"
| |
| |delay || Creates delay embedding || None in GNU Octave (easy to implement in Octave but not worth the effort) || C || wrapped in C++/mfile/octfile code || Ported&Tested
| |
| |-style="background: LightGreen"
| |
| |endtoend || Determine end-to-end mismatch || None in GNU Octave || FORTRAN || wrapped in C++/mfile/octfile code || Ported&Tested
| |
| |-
| |
| |events || Interval/event conversion || None in GNU Octave || FORTRAN || To be reimplemented as m-file ||
| |
| |-style="background: LightSalmon"
| |
| |extrema || Determine the extrema of a time series || findpeaks in signal is *not* the same || C || ||
| |
| |-style="background: LightGreen"
| |
| |false_nearest || The false nearest neighbor algorithm || None in GNU Octave || C || wrapped in C++/mfile/octfile code || Ported&Tested
| |
| |-style="background: LightGreen"
| |
| |ghkss || Nonlinear noise reduction || None in GNU Octave || C || wrapped in C++/mfile/octfile code || Ported&Tested
| |
| |-style="background: LightGreen"
| |
| |henon || Create a Hénon time series || None in GNU Octave || FORTRAN || To be reimplemented as m-file || Ported&Checked
| |
| |-style="background: LightGreen"
| |
| |histogram || Creates histograms || hist in core || C || || Different usage, same result
| |
| |-style="background: LightGreen"
| |
| |ikeda || Create an Ikeda time series || None in GNU Octave || FORTRAN || To be reimplemented as mfile || Ported&Tested
| |
| |-
| |
| |intervals || Event/intervcal conversion || Might exist under different name || FORTRAN || To be reimplemented as mfile ||
| |
| |-style="background: LightGreen"
| |
| |lazy || Simple nonlinear noise reduction || None in GNU Octave || FORTRAN || wrapped in C++/mfile/octfile code || Ported&Tested
| |
| |-style="background: LightGreen"
| |
| |lfo-ar || Locally first order model vs. global AR model (old ll-ar) || None in GNU Octave || C || wrapped in C++/mfile/octfile code ||
| |
| |-style="background: LightGreen"
| |
| |lfo-run || Iterate a locally first order model (old nstep) || None in GNU Octave || C || wrapped in C++/mfile/octfile code ||
| |
| |-style="background: LightGreen"
| |
| |lfo-test || Test a locally first order model (old onestep) || None in GNU Octave || C || wrapped in C++/mfile/octfile code ||
| |
| |-style="background: Yellow"
| |
| |lorenz || Create a Lorenz time series || Can be implemented in GNU Octave using lsode or odepkg|| FORTRAN || mfile ||
| |
| |-
| |
| |low121 || Time domain low pass filter || There are lowpass filters in Octave: buttap, cheb1ap, cheb2ap, ellipap, sftrans, but I don't think they perform this task || C || Reimplement as mfile ||
| |
| |-style="background: LightGreen"
| |
| |lyap_k || Maximal Lyapunov exponent with the Kantz algorithm || None in GNU Octave || C || wrapped in C++/mfile/octfile code ||
| |
| |-style="background: LightGreen"
| |
| |lyap_r || Maximal Lyapunov exponent with the Rosenstein algorithm || None in GNU Octave || C || wrapped in C++/mfile/octfile code ||
| |
| |-style="background: LightGreen"
| |
| |lyap_spec || Full spectrum of Lyapunov exponents || None in GNU Octave || C || wrapped in C++/mfile/octfile code ||
| |
| |-style="background: LightGreen"
| |
| |lzo-gm || Locally zeroth order model vs. global mean || None in GNU Octave || C || wrapped in C++/mfile/octfile code || Ported&Tested
| |
| |-style="background: LightGreen"
| |
| |lzo-run || Iterate a locally zeroth order model || None in GNU Octave || C || wrapped in C++/mfile/octfile code || Ported&Tested
| |
| |-style="background: LightGreen"
| |
| |lzo-test || Test a locally zeroth order model (old zeroth) || None in GNU Octave || C || wrapped in C++/mfile/octfile code || Ported&Tested
| |
| |-
| |
| |makenoise || Produce noise || Rand exists || Should be implemented as mfile using Octave rand functions || wrapped in C++/mfile/octfile code ||
| |
| |-
| |
| |mem_spec || Power spectrum using the maximum entropy principle || None in GNU Octave || C || wrapped in C++/mfile/octfile code ||
| |
| |-style="background: LightGreen"
| |
| |mutual || Estimate the mutual information || None in GNU Octave || C || wrapped in C++/mfile/octfile code || Ported&Tested
| |
| |-style="background: Yellow"
| |
| |notch || Notch filter || pei_tseng_notch, needs to be verified || FORTRAN || wrapped in C++/mfile/octfile code ||
| |
| |-
| |
| |nstat_z || Nonstationarity testing via cross-prediction || None in GNU Octave || C ||wrapped in C++/mfile/octfile code ||
| |
| |-style="background: LightGreen"
| |
| |pca, pc || Principle component analysis || 'pcacov' if likely the equivalent; pricomp in statistics || pca - C, pc - FORTRAN || wrapped in C++/mfile/octfile code || Ported&Tested
| |
| |-style="background: LightGreen"
| |
| |poincare || Create Poincaré sections || None in GNU Octave || C || wrapped in C++/mfile/octfile code || Ported&Tested
| |
| |-style="background: LightSalmon"
| |
| |polyback || Fit a polynomial model (backward elimination) || polyfit, detrend, wpolyfit are not similar || C || wrapped in C++ || Porting needed
| |
| |-style="background: LightGreen"
| |
| |polynom || Fit a polynomial model || same as above || C || || Ported&Tested
| |
| |-style="background: LightSalmon"
| |
| |polynomp || Fit a polynomial model (reads terms to fit from file) || same as above || C || ||
| |
| |-style="background: LightSalmon"
| |
| |polypar || Creates parameter file for polynomp || same as above || C || ||
| |
| |-style="background: LightGreen"
| |
| |predict || Forecast discriminating statistics for surrogates || None in GNU Octave || FORTRAN || wrapped in C++/mfile/octfile code || Same as lzo_test; Not Needed
| |
| |-
| |
| |randomize || General constraint randomization (surrogates) || There are random function, but I don't think this one exists || FORTRAN || wrapped in C++/mfile/octfile code ||
| |
| |-
| |
| |randomize_spikeauto_exp_random || Surrogate data preserving event time autocorrelations || Same as above || FORTRAN || wrapped in C++/mfile/octfile code ||
| |
| |-
| |
| |randomize_spikespec_exp_event || Surrogate data preserving event time power spectrum || Same as above || FORTRAN || wrapped in C++/mfile/octfile code ||
| |
| |-style="background: LightGreen"
| |
| |rbf || Radial basis functions fit || None in GNU Octave || C || wrapped in C++/mfile/octfile code ||
| |
| |-
| |
| |recurr || Creates a recurrence plot || None in GNU Octave || C || wrapped in C++/mfile/octfile code ||
| |
| |-style="background: Yellow"
| |
| |resample || Resamples data || interp1 is similar but cannot specify the polynomial order except for some given || C || wrapped in C++/mfile/octfile code ||
| |
| |-style="background: LightGreen"
| |
| |rescale || Rescale data set || This is just multiplication by scalars || C || wrapped in C++/mfile/octfile code ||Not Needed
| |
| |-style="background: LightGreen"
| |
| |rms || Rescale data set and get mean, variance and data interval || This should be in Octave, cannot find... || FORTRNAN || wrapped in C++/mfile/octfile code || Not Needed
| |
| |-style="background: Yellow"
| |
| |sav_gol || Savitzky-Golay filter || sgolayfilt in signal || C || ||
| |
| |-style="background: LightGreen"
| |
| |spectrum || Power spectrum using FFT || abs (fft (;)) || FORTRAN || Rewrite as m-file || Ported&Tested
| |
| |-
| |
| |spikeauto || Autocorrelation function of event times || similar to above || FORTRAN || ||
| |
| |-
| |
| |spikespec || Power spectrum of event times || ar_psd, cpsd is the closest but I do not think they are the same || FORTRAN || ||
| |
| |-
| |
| |stp || Creates a space-time separation plot || None in GNU Octave || FORTRAN || wrapped in C++/mfile/octfile code ||
| |
| |-style="background: LightGreen"
| |
| |surrogates || Creates surrogate data || None in GNU Octave || FORTRAN || wrapped in C++/mfile/octfile code || Ported&Tested
| |
| |-style="background: LightGreen"
| |
| |timerev || Time reversal discrimating statistics for surrogates || None in GNU Octave || FORTRAN || To be reimplemented as mfile || Ported&Tested
| |
| |-style="background: LightGreen"
| |
| |upo || Finds unstable periodic orbits and estimates their stability || None in GNU Octave || FORTRAN || wrapped in C++/mfile/octfile code || Ported&Tested
| |
| |-style="background: LightGreen"
| |
| |upoembed || Takes the output of upo and create data files out of it || None in GNU Octave || FORTAN || wrapped in C++/mfile/octfile code || Ported&Tested
| |
| |-
| |
| |wiener1, wiener2 || Wiener filter || Wiener process exists, might be similar || FORTRAN || wrapped in C++/mfile/octfile code ||
| |
| |-
| |
| |xc2 || Cross-correlation integral || xcorr2 - Needs to be verified that works the same way || FORTRAN || wrapped in C++/mfile/octfile code ||
| |
| |-style="background: Yellow"
| |
| |xcor || Cross-correlations || xcorr - Needs to be verified that works same way || C|| wrapped in C++/mfile/octfile code ||
| |
| |-
| |
| |xrecur || Cross-recurrence Plot || xcorr, or xcorr2 or another function might cover this || C || wrapped in C++/mfile/octfile code ||
| |
| |-style="background: LightGreen"
| |
| |xzero || Locally zeroth order cross-prediction || None in GNU Octave || C || wrapped in C++/mfile/octfile code ||
| |
| |}
| |
|
| |
|
| == Tutorials == | | == Tutorials == |