by mgates3 » Wed Apr 06, 2016 7:50 am
What particular points are causing confusion?
A is a symmetric, N x N matrix embedded in an LDA x N array (with LDA >= N). LAPACK and MAGMA store all matrices column-wise.
Per UPLO, only the upper or lower portion needs to be set; the other side is known by symmetry and therefore ignored.
For magma_ssyevd, A is in CPU host memory. For magma_ssyevd_gpu, dA is already in GPU memory (LDA renamed LDDA).
Eigenvalues are returned in the w array, of size N.
There are several workspaces:
work, of size lwork, with formulas in documentation, or query for size by calling with lwork = -1.
iwork, of size liwork, with formulas in documentation, or query for size by calling with liwork = -1.
For magma_ssyevd_gpu takes an additional CPU workspace:
wA is LDWA x N, with LDWA >= N.
-mark