Fast Function Approximation Library
 All Classes Files Functions Typedefs Macros
Fast Function Approximation Library Documentation

The Fast Function Approximation Library provides class and functions in C, C++, Java, Python and Matlab for approximation of datasets (e.g. time-series) using several approaches on growing and sliding windows.

GrowingWindow

This class provides algorithms for up- and downdating least squares polynomial fits to discrete data with orthogonal polynomials using (hyper-) rotations and for evaluating the resulting polynomials.

Fuchs, E.; Gruber, T.; Nitschke, J.; Sick, B., "Online Segmentation of Time Series Based on Polynomial Least-Squares Approximations," Pattern Analysis and Machine Intelligence, IEEE Transactions on , vol.32, no.12, pp.2232,2245, Dec. 2010

OrthogonalPolynomialSlidingWindow

This class implements an updatable sliding window least squares polynomial approximation using discrete Legendre polynomials.

"Erich Fuchs, 'Schnelle Quadratmittelapproximation in gleitenden Zeitfenstern mit diskreten orthogonalen Polynomen', Ph.D. thesis, Universitaet Passau, Fakultaet fuer Mathematik und Informatik, 1999"

TrigonometricPolynomialSlidingWindow

This class implements an updatable sliding window least squares polynomial approximation using trigonometric polynomials.

"Erich Fuchs, Tobias Hanning and Oliver Schwarz, 'An Update Algorithm for Fourier Coefficients', 12th European Signal Processing Conference, pp. 1509-1512, Vienna, Austria, 2004"

Build & Installation

Installable components are the C++ library, the C wrappers, the Java archive and the corresponding examples.

For succesfull installation cmake minimum required version is 2.8.6. Start by unzipping the downloaded archive file.

If you want to build the python bindings you will also require boost-python. Make sure you have installed before building, otherwise disable BUILD_PYTHON build option.

cd path/to/ffal/
mkdir build
cd build
cmake ..
make
sudo make install

In addition to build the C/C++ doxygen documentation:

make doc

Note: Library is provided as source, feel free to use your own IDE for building it.

Basic usage

  1. Create instances of desired approximation function windows.
  2. Update instances with your data.
  3. Evaluate polynomial or check window coefficients till they fit and segment data for example.
  4. Restart instances on demand.

Examples

Examples for each programming language are provided in "examples"-folder.

Disclaimer

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Copyright

Intelligent Embedded Systems, University of Kassel, 2013. All rights reserved.

License

This library is released under LGPLv3.