// --------------------
    magma_err_t
magma_ztrsm(
        magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag,
        magma_int_t m, magma_int_t n,
        magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dA, size_t dA_offset, magma_int_t lda,
        magmaDoubleComplex_ptr       dB, size_t dB_offset, magma_int_t ldb,
        magma_queue_t queue )
{
/*    
    magmaDoubleComplex *hA, *hB;
    if(side==MagmaRight){
        hA = (magmaDoubleComplex*)malloc(lda*n*sizeof(magmaDoubleComplex));
        hB = (magmaDoubleComplex*)malloc(ldb*n*sizeof(magmaDoubleComplex));
        magma_zgetmatrix(n, n, dA, dA_offset, lda, hA, 0, lda, queue);
        magma_zgetmatrix(m, n, dB, dB_offset, ldb, hB, 0, ldb, queue);
#if defined(PRECISION_z) || defined(PRECISION_c)
        cblas_ztrsm(CblasColMajor, (CBLAS_SIDE)side, (CBLAS_UPLO)uplo, (CBLAS_TRANSPOSE)trans, (CBLAS_DIAG)diag,
                m, n,
                &alpha, hA, lda, hB, ldb);
#else
        cblas_ztrsm(CblasColMajor, (CBLAS_SIDE)side, (CBLAS_UPLO)uplo, (CBLAS_TRANSPOSE)trans, (CBLAS_DIAG)diag,
                m, n,
                alpha, hA, lda, hB, ldb);
#endif
        magma_zsetmatrix(m, n, hB, 0, ldb, dB, dB_offset, ldb, queue);
        free(hB);
        free(hA);
    }else{
        hA = (magmaDoubleComplex*)malloc(lda*m*sizeof(magmaDoubleComplex));
        hB = (magmaDoubleComplex*)malloc(ldb*n*sizeof(magmaDoubleComplex));
        magma_zgetmatrix(m, m, dA, dA_offset, lda, hA, 0, lda, queue);
        magma_zgetmatrix(m, n, dB, dB_offset, ldb, hB, 0, ldb, queue);
#if defined(PRECISION_z) || defined(PRECISION_c)
        cblas_ztrsm(CblasColMajor, (CBLAS_SIDE)side, (CBLAS_UPLO)uplo, (CBLAS_TRANSPOSE)trans, (CBLAS_DIAG)diag, 
                m, n,
                &alpha, hA, lda, hB, ldb);
#else
        cblas_ztrsm(CblasColMajor, (CBLAS_SIDE)side, (CBLAS_UPLO)uplo, (CBLAS_TRANSPOSE)trans, (CBLAS_DIAG)diag, 
                m, n,
                alpha, hA, lda, hB, ldb);
#endif
        magma_zsetmatrix(m, n, hB, 0, ldb, dB, dB_offset, ldb, queue);
        free(hB);
        free(hA);
    }
    return CL_SUCCESS;
*/
       cl_int err = clAmdBlasZtrsmEx(
       clAmdBlasColumnMajor,
       amdblas_side_const( side ),
       amdblas_uplo_const( uplo ),
       amdblas_trans_const( trans ),
       amdblas_diag_const( diag ),
       m, n,
       alpha, dA, dA_offset, lda,
       dB, dB_offset, ldb,
       1, &queue, 0, NULL, NULL );
       clFlush(queue);
       return err;
}
// --------------------
    magma_err_t
magma_ztrsv(
        magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag,
        magma_int_t n, 
        magmaDoubleComplex_const_ptr dA, size_t dA_offset, magma_int_t lda,
        magmaDoubleComplex_ptr dx, size_t dx_offset, magma_int_t incx,
        magma_queue_t queue )
{
    cl_int err = clAmdBlasZtrsv(
            clAmdBlasColumnMajor,
            amdblas_uplo_const( uplo ),
            amdblas_trans_const( trans ),
            amdblas_diag_const( diag ),
            n,
            dA, dA_offset, lda,
            dx, dx_offset, incx,
            1, &queue, 0, NULL, NULL );
    return err;
}
Example #3
0
//
//// --------------------
//magma_err_t
//magma_strsm(
//    magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag,
//    magma_int_t m, magma_int_t n,
//    float alpha, magmaFloat_const_ptr dA, size_t dA_offset, magma_int_t lda,
//                              magmaFloat_ptr       dB, size_t dB_offset, magma_int_t ldb,
//    magma_queue_t queue )
//{
//    cl_int err = clAmdBlasStrsmEx(
//        clAmdBlasColumnMajor,
//        amdblas_side_const( side ),
//        amdblas_uplo_const( uplo ),
//        amdblas_trans_const( trans ),
//        amdblas_diag_const( diag ),
//        m, n,
//        alpha, dA, dA_offset, lda,
//               dB, dB_offset, ldb,
//        1, &queue, 0, NULL, NULL );
//    return err;
//}
//
//// --------------------
//magma_err_t
//magma_strsv(
//	magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag,
//	magma_int_t n, 
//	magmaFloat_const_ptr dA, size_t dA_offset, magma_int_t lda,
//	magmaFloat_ptr dx, size_t dx_offset, magma_int_t incx,
//	magma_queue_t queue )
//{
//	cl_int err = clAmdBlasStrsv(
//		clAmdBlasColumnMajor,
//		amdblas_uplo_const( uplo ),
//		amdblas_trans_const( trans ),
//		amdblas_diag_const( diag ),
//		n,
//		dA, dA_offset, lda,
//		dx, dx_offset, incx,
//		1, &queue, 0, NULL, NULL );
//	return err;
//}
//
//// --------------------
magma_err_t
magma_strmm(
    magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag,
    magma_int_t m, magma_int_t n,
    float alpha, magmaFloat_const_ptr dA, size_t dA_offset, magma_int_t lda,
                              magmaFloat_ptr       dB, size_t dB_offset, magma_int_t ldb,
    magma_queue_t queue )
{
    cl_int err = clAmdBlasStrmmEx(
        clAmdBlasColumnMajor,
        amdblas_side_const( side ),
        amdblas_uplo_const( uplo ),
        amdblas_trans_const( trans ),
        amdblas_diag_const( diag ),
        m, n,
        alpha, dA, dA_offset, lda,
               dB, dB_offset, ldb,
        1, &queue, 0, NULL, NULL );
    return err;
}
    magma_err_t
magma_ztrsm_trace(
        magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag,
        magma_int_t m, magma_int_t n,
        magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dA, size_t dA_offset, magma_int_t lda,
        magmaDoubleComplex_ptr       dB, size_t dB_offset, magma_int_t ldb,
        magma_queue_t queue, magma_event_t* event )
{
    cl_int err = clAmdBlasZtrsmEx(
            clAmdBlasColumnMajor,
            amdblas_side_const( side ),
            amdblas_uplo_const( uplo ),
            amdblas_trans_const( trans ),
            amdblas_diag_const( diag ),
            m, n,
            alpha, dA, dA_offset, lda,
            dB, dB_offset, ldb,
            1, &queue, 0, NULL, event );
    clFlush(queue);
    return err;
}