It looks like they are assuming constants used in MAGMA 1.4 and earlier. The constants MagmaLower, MagmaUpper, etc. were changed from chars to enums in 1.5. The quickest fix is to change instances of *trans, *uplo, *job, *diag, etc. to, respectively:
Code: Select all
magma_trans_const( *trans )
magma_uplo_const( *uplo )
magma_job_const( *job )
magma_diag_const( *diag )
etc.
Here are instances that I could find using grep.
Code: Select all
src/HiPLARb> grep -R 'magma.*\* *(trans|job|uplo|side|diag)' .
./src/magma_matprod.c: //magmablas_dgemm(*transa, *transb, nrx, ncy, ncx,
./src/magma_matprod.c: magmablas_zgemm(*transa, *transb, nrx, ncy, ncx,
./src/magma_matprod.c: magma_dsyrk(*uplo, *trans, nc, nr, one, d_A, nr, zero, d_C, nc);
./src/magma_matprod.c: //magmablas_dgemm(*transa, *transb, ncx, ncy, nrx,
./src/magma_matprod.c: magmablas_zgemm(*transa, *transb, ncx, ncy, nrx,
./src/magma_matprod.c: magma_dsyrk(*uplo, *trans, nr, nc, one, d_A, nr, zero, d_C, nr);
./src/magma_matprod.c: //magmablas_dgemm(*transa, *transb, nrx, nry, ncx,
./src/magma_matprod.c: magmablas_zgemm(*transa, *transb, nrx, nry, ncx,
./src/magma_wrapper.c: magmablas_dtrsm(*side, *uplo, *transa, *diag, *n, *nb, one, dA, *ldt, dB, *ldb);
./src/magma_wrapper.c: magma_dgeev_m(*jobVL, *jobVR, n, xvals, n, wR, wI, left, n, right, n, &tmp, lwork, &info);
./src/magma_wrapper.c: magma_dgeev(*jobVL, *jobVR, n, xvals, n, wR, wI,
./src/magma_wrapper.c: magma_dgeev_m(*jobVL, *jobVR, n, xvals, n, wR, wI,
./src/magma_wrapper.c: magma_dgeev(*jobVL, *jobVR, n, xvals, n, wR, wI,
./src/magma_wrapper.c: magma_zgeev(*jobVL, *jobVR, n, (cuDoubleComplex *)xvals, n,
./src/magma_wrapper.c: magma_zgeev(*jobVL, *jobVR, n, (cuDoubleComplex *)xvals, n,
Attached is an UNTESTED patch that should fix this. I don't have all the software dependencies installed to compile HiPLARb, nor know how to use it. Apply using patch, e.g.,
src/HiPLARb> patch -p1 < ../HiPLARb.patch
patching file src/magma_matprod.c
patching file src/magma_wrapper.c
Let us know how it goes. If that works, ideally it should be submitted to HiPLARb.
Other packages may need similar updates.
A cleaner fix would be to use magma_uplo_t, magma_trans_t, etc. types instead of char*, and MagmaLower, MagmaUpper, etc. constants instead of "L", "U", etc. These are documented here:
http://icl.cs.utk.edu/projectsfiles/mag ... tants.html
-mark