Porting TISEAN

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.

The chart below depicts how to decide which type of port should be utilized.

Both of those charts can be combined into a large one that shows all of the work together.

Table of functions

In reference to the TISEAN library alphabetical order of programs which is located 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:

Green means the function is ported, tested or is not needed

Red means the function was thought to have been similar but isn't

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

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

av-d2

Simply smooth output of d2

Can be implemented with filter in core

C

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

c1

Fixed mass estimation of D1

None in GNU Octave

FORTRAN

wrapped in C++/mfile/octfile code

c2d

Get local slopes from correlation integral

None in GNU Octave

FORTRAN

wrapped in C++/mfile/octfile code

c2g

Gaussian kernel of C2

None in GNU Octave

FORTRAN

wrapped in C++/mfile/octfile code

c2t

Takens estimator of D2

None in GNU Octave

FORTRAN

wrapped in C++/mfile/octfile code

choose

Choose rows and/or columns from a data file

Does not need to be ported

FORTRAN

-----

Not Needed

compare

Compares two data sets

Does not need to be ported

FORTRAN

------

Not Needed

corr, autocorr

Autocorrelation function

xcorr in signal

corr -C, autocorr (faster according to documentation) - FORTRAN

-------

Different usage, same result

d2

Correlation dimension d2

None in GNU Octave

C

wrapped in C++/mfile/octfile code

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

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

extrema

Determine the extrema of a time series

findpeaks in signal is *not* the same

C

false_nearest

The false nearest neighbor algorithm

None in GNU Octave

C

wrapped in C++/mfile/octfile code

Ported&Tested

ghkss

Nonlinear noise reduction

None in GNU Octave

C

wrapped in C++/mfile/octfile code

Ported&Tested

henon

Create a Hénon time series

None in GNU Octave

FORTRAN

To be reimplemented as m-file

Ported&Checked

histogram

Creates histograms

hist in core

C

Different usage, same result

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

lazy

Simple nonlinear noise reduction

None in GNU Octave

FORTRAN

wrapped in C++/mfile/octfile code

Ported&Tested

lfo-ar

Locally first order model vs. global AR model (old ll-ar)

None in GNU Octave

C

wrapped in C++/mfile/octfile code

lfo-run

Iterate a locally first order model (old nstep)

None in GNU Octave

C

wrapped in C++/mfile/octfile code

lfo-test

Test a locally first order model (old onestep)

None in GNU Octave

C

wrapped in C++/mfile/octfile code

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