# libICA - ICA library

fastICA C implementation

Martin Tùma

## Description

libICA is an C library that implements the FastICA [1]
algorithm for Independent Component Analysis (ICA). It is based on the CRAN
fastICA [2] package for R.

## Synopsis

#include <libICA.h>
void **fastICA**(double** X, int rows, int cols,
int compc, double** K, double** W,
double** A, double** S);

Parametes:

- X
- pre-processed data matrix [
**rows**, **cols**]
- compc
- number of components to be extracted
- K
- pre-whitening matrix that projects data onto the first
*compc* principal components
- W
- estimated un-mixing matrix
- A
- estimated mixing matrix
- S
- estimated source matrix

## Details

libICA uses the parallel scheme in which the components are estimated
simultaneously and the logcosh() function with alpha = 1 for the approximation
to neg-entropy. See the CRAN fastICA manual [3] for
details.

Doxygen documentation

## Example

The sources contain an simple example program named `fastICA`

which uses the library as well as sample data, which are equivalent to the
CRAN fastICA example #2.

## License

libICA is distributed under the GPL v.2 license.

## References

[1]
http://www.cis.hut.fi/projects/ica/fastica/

[2]
http://cran.r-project.org/src/contrib/Descriptions/fastICA.html

[3]
http://cran.r-project.org/doc/packages/fastICA.pdf

## Source codes

libICA.tar.bz2 - libICA library