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 help to see the options:
cd src make help
GNU Fortran 9 is not supported! Currently, only GPU Fortran 8 is fully supported.
To run the executable, say, e.g.
OMP_NUM_THREADS=T OMP_PLACES=C /path/to/hzl1sa.exe FN M N JSTRAT NSWP
T is the number of threads,
C is the thread placement (e.g.,
FN is the file name prefix (without an extension) containing the input data,
N are the number of rows and columns, respectively,
JSTRAT is a parallel Jacobi strategy to employ (e.g.,
NSWP is the maximal number of sweeps allowed (
30 should suffice in many cases).
Data should be contained in
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
The third file contains the diagonal of the matrix
J as a vector of 8-byte integers.
The output comprises
FN.Z, for the complex matrices
M x N), and
N x N);
FN.SS, for the real vectors
FN.E, for the real vectors
\Lambda, respectively, where all vectors are of length
This work has been supported in part by Croatian Science Foundation under the project IP-2014-09-3670 (MFBDA).