@@ -3114,12 +3114,12 @@ def magma_zposv_gpu(uplo, n, nhrs, a_gpu, lda, b_gpu, ldb):
31143114
31153115# SGESV, DGESV, CGESV, ZGESV
31163116_libmagma .magma_sgesv_gpu .restype = int
3117- _libmagma .magma_sgesv_gpu .argtypes = [c_int_type ,
3118- c_int_type ,
3119- ctypes .c_void_p ,
3120- c_int_type ,
3121- ctypes .c_void_p ,
3122- ctypes .c_void_p ,
3117+ _libmagma .magma_sgesv_gpu .argtypes = [c_int_type , # n
3118+ c_int_type , # nrhs
3119+ ctypes .c_void_p , # dA
3120+ c_int_type , # lddA
3121+ ctypes .c_void_p , # ipiv
3122+ ctypes .c_void_p , # dB
31233123 c_int_type ,
31243124 ctypes .c_void_p ]
31253125def magma_sgesv_gpu (n , nhrs , A , lda , ipiv , B , ldb ):
@@ -3716,40 +3716,91 @@ def magma_zheevd_m(ngpu, jobz, uplo, n, A, lda, w, work, lwork,
37163716 lrwork , int (iwork ), liwork , ctypes .byref (info ))
37173717 magmaCheckStatus (status )
37183718
3719+ # SSYEVDX
3720+ # TO BE TESTED
3721+ _libmagma .magma_ssyevdx .restype = int
3722+ _libmagma .magma_ssyevdx .argtypes = [ c_int_type , # jobz
3723+ c_int_type , # rnge
3724+ c_int_type , # uplo
3725+ c_int_type , # n
3726+ ctypes .c_void_p , # A
3727+ c_int_type , # lda
3728+ ctypes .c_float , # vl
3729+ ctypes .c_float , # vu
3730+ c_int_type , # il
3731+ c_int_type , # iu
3732+ ctypes .c_void_p , # m
3733+ ctypes .c_void_p , # w
3734+ ctypes .c_void_p , # work
3735+ c_int_type , # lwork
3736+ ctypes .c_void_p , # iwork
3737+ c_int_type , # liwork
3738+ ctypes .c_void_p ] # info
3739+ def magma_ssyevdx (jobz , rnge , uplo , n , A , lda ,
3740+ vl , vu , il , iu , m ,
3741+ w , work , lwork , iwork , liwork ):
3742+ """
3743+ Compute eigenvalues of real symmetric matrix.
3744+ Multi-GPU, data on host
3745+ """
3746+
3747+ # _XXX_conversion[] returns integer according to magma_types.h
3748+ jobz = _vec_conversion [jobz ]
3749+ rnge = _range_conversion [rnge ]
3750+ uplo = _uplo_conversion [uplo ]
3751+
3752+ mfound = c_int_type ()
3753+ info = c_int_type ()
3754+ status = _libmagma .magma_ssyevdx (jobz , rnge , uplo , n , int (A ), lda ,
3755+ vl , vu , il , iu , ctypes .byref (mfound ),
3756+ int (w ), int (work ), lwork , int (iwork ), liwork ,
3757+ ctypes .byref (info ))
3758+ m = mfound
3759+ magmaCheckStatus (status )
37193760
37203761# SSYEVDX_M, DSYEVDX_M, CHEEVDX_M, ZHEEVDX_M
3721- _libmagma .magma_ssyevd_m .restype = int
3722- _libmagma .magma_ssyevd_m .argtypes = [c_int_type ,
3723- c_int_type ,
3724- c_int_type ,
3725- c_int_type ,
3726- c_int_type ,
3727- ctypes .c_void_p ,
3728- c_int_type ,
3729- ctypes .c_float ,
3730- ctypes .c_float ,
3731- c_int_type ,
3732- c_int_type ,
3733- ctypes .c_void_p ,
3734- ctypes .c_void_p ,
3735- ctypes .c_void_p ,
3736- c_int_type ,
3737- ctypes .c_void_p ,
3738- c_int_type ,
3739- ctypes .c_void_p ]
3762+ # TO BE TESTED
3763+ _libmagma .magma_ssyevdx_m .restype = int
3764+ _libmagma .magma_ssyevdx_m .argtypes = [c_int_type , # ngpu
3765+ c_int_type , # jobz
3766+ c_int_type , # rnge
3767+ c_int_type , # uplo
3768+ c_int_type , # n
3769+ ctypes .c_void_p , # A
3770+ c_int_type , # lda
3771+ ctypes .c_float , # vl
3772+ ctypes .c_float , # vu
3773+ c_int_type , # il
3774+ c_int_type , # iu
3775+ ctypes .c_void_p , # m
3776+ ctypes .c_void_p , # w
3777+ ctypes .c_void_p , # work
3778+ c_int_type , # lwork
3779+ ctypes .c_void_p , # iwork
3780+ c_int_type , # liwork
3781+ ctypes .c_void_p ] # info
37403782def magma_ssyevdx_m (ngpu , jobz , rnge , uplo , n , A , lda ,
37413783 vl , vu , il , iu , m ,
37423784 w , work , lwork , iwork , liwork ):
37433785 """
37443786 Compute eigenvalues of real symmetric matrix.
37453787 Multi-GPU, data on host
3788+
3789+ source: ssyedx_m.cpp
37463790 """
37473791
3792+ # _XXX_conversion[] returns integer according to magma_types.h
3793+ jobz = _vec_conversion [jobz ]
3794+ rnge = _range_conversion [rnge ]
37483795 uplo = _uplo_conversion [uplo ]
3796+
3797+ mfound = c_int_type () # output
37493798 info = c_int_type ()
3750- status = _libmagma .magma_ssyevdx_m (ngpu , jobz , uplo , n , int (A ), lda ,
3751- int (w ), int (work ),
3752- lwork , int (iwork ), liwork , ctypes .byref (info ))
3799+ status = _libmagma .magma_ssyevdx_m (ngpu , jobz , rnge , uplo , n , int (A ), lda ,
3800+ vl , vu , il , iu , ctypes .byref (mfound ),
3801+ int (w ), int (work ), lwork , int (iwork ), liwork ,
3802+ ctypes .byref (info ))
3803+ m = mfound
37533804 magmaCheckStatus (status )
37543805
37553806# SYMMETRIZE
0 commit comments