Routines for the diagonalization of complex matrices
This site hosts a set of routines for the eigenvalue decomposition,
singular value decomposition, and Takagi factorization of a complex
matrix. Unlike many other implementations, the current ones are all
based on the Jacobi algorithm, which makes the code very compact but
suitable only for small to medium-sized problems.
Although distributed as a library, the routines are self-contained
and can easily be taken out of the library and included in own code,
removing yet another installation prerequisite. Owing to the small size
of the routines it is possible, in fact quite straightforward, to adapt
the diagonalization routine to one's own conventions rather than vice
The following routines are included:
These are implemented as compact (some 3 kB each) Fortran 77 or C
subroutines in a freely available library. Free does not just
mean you don't have to pay, it means in particular that you are free to
distribute the routines with your own code, modify it, etc., within the
limits of the LGPL.
The routines have been published in
You can download the following files:
- Diag-1.5.tar.gz [126 kB, MD5: c361e6e7dfb73d37e7866790546b5448] of 3 Nov 15
- fixed problem with static compile on MacOS.
- Diag-1.4.tar.gz [121 kB, MD5: d20ebc389cf4abdb7ba8c4cc4ac27d36] of 9 Aug 2011
- Diag-1.3.tar.gz [113 kB, MD5: 85efc876e00c9adb84ec5fe238436b9f] of 6 Jun 2011
- Diag-1.2.tar.gz [110 kB, MD5: 645e3d5b8814c486de6f9292e3666729] of 17 Feb 2010
- Diag-1.1.tar.gz [99 kB, MD5: 605d902e2bee3244b0486e61cce78dbf] of 26 Jan 2007
- Diag-1.0.tar.gz [72 kB, MD5: 654a1db84b30b7c0d5ef6195fb494543] of 11 Jul 2006
To install the package:
See also the README file for more detailed instructions.
- unpack the Diag-n.m.tar.gz archive,
- change into the Diag-n.m directory,
- run "./configure",
- run "make",
- run "make install".
A PDF file with the manual is contained in the distribution. It can
also be downloaded directly: manual.pdf [117 kB, MD5: d935d2ef9528abd72b02eab52a8dcb08].
Thanks for looking in.
Please send bug reports, suggestions, fan mail, etc. to
This site and the programs offered here are not commercial. The Diag
package is and will stay an open-source package and free of charge. If
you want to use these routines in a commercial application, make sure
you understand the
GNU Lesser General Public License under which Diag is distributed.
Diag is being developed at the
Max-Planck-Institute for Physics
Data protection statement and Imprint
Last update: 25 May 18