libeemd-cmake/README.md
2021-11-20 13:35:46 +08:00

113 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

libeemd a C library for performing the ensemble empirical mode decomposition
==============================================================================
libeemd is a C library for performing the ensemble empirical mode decomposition
(EEMD), its complete variant (CEEMDAN) or the regular empirical mode
decomposition (EMD). The details of what libeemd actually computes are
available as a separate [article][], which you should read if you are unsure
about what EMD, EEMD and CEEMDAN are.
[article]: https://dx.doi.org/10.1007/s00180-015-0603-9
Acquiring libeemd
-----------------
The easiest way to get up-to-date versions of libeemd is to use [Bitbucket][],
which is a site built for distributing software using the amazing version
control system [Git][]. By using libeemd's [Bitbucket site][webpage] you can see
recent changes made to the program, report and track bugs found in the program,
access user-generated documentation and even create your own versions of
libeemd.
[bitbucket]: https://bitbucket.org
[git]: http://git-scm.com
Program license
---------------
libeemd is free software: you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option) any later
version.
libeemd is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
libeemd. If not, see <http://www.gnu.org/licenses/>.
[webpage]: https://bitbucket.org/luukko/libeemd
Installation
------------
### Dependencies
To compile libeemd you need:
* A fairly recent C compiler (something that understands C99)
* GNU [Scientific Library (GSL)][GSL]
If you want to use the easy route and use the `Makefile` distributed with
libeemd, you should have:
* GNU [Make][]
* GNU [Compiler Collection (GCC)][GCC]
[Make]: http://www.gnu.org/software/make/
[GCC]: http://gcc.gnu.org/
[GSL]: http://www.gnu.org/software/gsl/
### Installation
If you have Make and GCC installed, you can simply run
make
in the top-level directory of libeemd (the one with the `Makefile`). This
command compiles libeemd into a static library `libeemd.a`, a dynamic library
`libeemd.so`, and copies the header file `eemd.h` to the top-level directory.
You can then copy these files to wherever you need them.
You can use `make install` to install the library files to your system. By
default this command installs the files under `/usr` (so you'll need root
privileges), but you can specify another installation location like this:
PREFIX=$HOME/usr make install
If you set a `PREFIX` you need to make sure other programs will find libeemd
in this location. For example, if you set `PREFIX` to `$HOME/usr`, the
directory `$HOME/usr/lib` should be in `LIBRARY_PATH` and `LD_LIBRARY_PATH`.
Using the C interface
------------
To use libeemd in your program include `eemd.h` in your header file and link
your program against `libeemd.a` or `libeemd.so` and [GSL][]. The routines
exported by libeemd are documented in the header file `eemd.h`.
To see a short example of libeemd in action, please see the `examples`
subdirectory.
pyeemd, the Python interface to libeemd
-------------------------
The official Python interface to libeemd is called [pyeemd][]. You should
definitely try it, since data analysis with Python is much more fun than with
C. More documentation about [pyeemd][] can be found at [Read the Docs](http://pyeemd.readthedocs.org/).
[pyeemd]: https://bitbucket.org/luukko/pyeemd
Rlibeemd, the R interface to libeemd
----------------------------------------
There is also a R interface to libeemd. It is available separately at
<https://github.com/helske/Rlibeemd>.
Developing libeemd
------------------
Please report any issues using the Bitbucket issue tracker. If submitting pull
requests, please use `develop` as a target branch.