Complex matrix eigendecomposition

fiji
imagej
imagej-matlab

#1

I am interested in using doing eigenvalue decomposition on complex matrices for use in an imagej plugin. This seems to unsupported in apache-commons math and netlib-java.

I can see a potential way of accessing LAPACK routines to do this either through MATLAB or through Jython/JyNI/scipy or py4j (similar question here: Deploy & run CPython algorithms within ImageJ )

  1. Are there any Java libraries available that do eigen decomposition on complex matrices?
  2. Are there any ImageJ plugins that use the MATLAB Compiler Runtime?
  3. Are there any successful integration stories between scipy/numpy and ImageJ?

#2

Good day,

although your question should be posed to a Java-Forum, did you really search the Web?

Here is one of very many results I get:
http://fem.um.es/Javadoc/OSP_EJS/org/opensourcephysics/numerics/ComplexEigenvalueDecomposition.html

Good Luck

Herbie


#3

There are a few, e.g.:

  • ojAlgo
  • JOML
  • JAMA

The SciJava javadoc page links to their respective Javadocs.

At a hackathon last year, the core ImageJ and ImgLib2 developers agreed on using ojAlgo for n-dimensional matrices (as it is used e.g. in imglib2-algorithm's linalg package).


I don’t know of any plugins using the Compiler Runtime, but did you see ImageJ-MATLAB?


Have a look at pyimagej:

that’s built on scyjava and imglyb:


#4

Thank you @Herbie and @imagejan, these references are very useful. My initial web searches only turned up solutions that only apply to real matrices as seems to be the case for JAMA, ojAlgo, and also thus imglib2 for the moment.

The Open Source Physics ComplexEigenvalueDecomposition class appears to do exactly what I was looking for.