Skip to content
A multi-precision Hari-Zimmermann complex GSVD.
Fortran Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


A multi-precision Hari-Zimmermann complex GSVD.

A part of the supplementary material for the paper arXiv:1907.08560 [math.NA].



A recent 64-bit Linux (e.g., CentOS 7.6) or macOS (e.g., Mojave) is needed.

Have the Intel MKL (Math Kernel Library) installed.

Then, clone and build JACSD in a directory parallel to this one.

Make options

Run make help to see the options:

cd src
make help

GNU Fortran 9 is not supported! Currently, only GPU Fortran 8 is fully supported.


Command line

To run the executable, say, e.g.


where T is the number of threads, C is the thread placement (e.g., CORES), FN is the file name prefix (without an extension) containing the input data, M and N are the number of rows and columns, respectively, JSTRAT is a parallel Jacobi strategy to employ (e.g., 4 for mmstep), and NSWP is the maximal number of sweeps allowed (30 should suffice in many cases).

Data format

Data should be contained in FN.Y, FN.W, and FN.J binary files. The first two are Fortran-array-order files of KIND_FILE element kind, where the first one stores the matrix F and the second one the matrix G, and both matrices are complex and expected to have M rows and N columns. The third file contains the diagonal of the matrix J as a vector of 8-byte integers.

The output comprises FN.YU, FN.WV, FN.Z, for the complex matrices U, V (both M x N), and Z (N x N); FN.SY, FN.SW, FN.SS, for the real vectors \Sigma_F, \Sigma_G, and \Sigma; and FN.EY, FN.EW, FN.E, for the real vectors \Lambda_F, \Lambda_G, and \Lambda, respectively, where all vectors are of length N.

This work has been supported in part by Croatian Science Foundation under the project IP-2014-09-3670 (MFBDA).

You can’t perform that action at this time.