113 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			113 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|  | 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. |