lapack_int LAPACKE_zlaset( int matrix_layout, char uplo, lapack_int m, lapack_int n, lapack_complex_double alpha, lapack_complex_double beta, lapack_complex_double* a, lapack_int lda ) { if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) { LAPACKE_xerbla( "LAPACKE_zlaset", -1 ); return -1; } /***************************************************************************** * Note: we do not check NaNs in A since the goal of this subroutine is to * initialized A. It is OK if A has NaNs in input. *****************************************************************************/ #ifndef LAPACK_DISABLE_NAN_CHECK /* Optionally check input matrices for NaNs */ if( LAPACKE_z_nancheck( 1, &alpha, 1 ) ) { return -5; } if( LAPACKE_z_nancheck( 1, &beta, 1 ) ) { return -6; } #endif return LAPACKE_zlaset_work( matrix_layout, uplo, m, n, alpha, beta, a, lda ); }
void CORE_zlaset2(PLASMA_enum uplo, int M, int N, PLASMA_Complex64_t alpha, PLASMA_Complex64_t *A, int LDA) { if (uplo == PlasmaUpper) { LAPACKE_zlaset_work( LAPACK_COL_MAJOR, lapack_const(uplo), M, N-1, alpha, alpha, A+LDA, LDA); } else if (uplo == PlasmaLower) { LAPACKE_zlaset_work( LAPACK_COL_MAJOR, lapack_const(uplo), M-1, N, alpha, alpha, A+1, LDA); } else { LAPACKE_zlaset_work( LAPACK_COL_MAJOR, lapack_const(uplo), M, N, alpha, alpha, A, LDA); } }
static int RunTest(int *iparam, double *dparam, real_Double_t *t_) { PASTE_CODE_IPARAM_LOCALS( iparam ); PLASMA_desc *descT; int jobu = PlasmaNoVec; int jobvt = PlasmaNoVec; int INFO; /* Allocate Data */ PASTE_CODE_ALLOCATE_MATRIX_TILE( descA, 1, PLASMA_Complex64_t, PlasmaComplexDouble, LDA, M, N ); PASTE_CODE_ALLOCATE_MATRIX( VT, (jobvt == PlasmaVec), PLASMA_Complex64_t, N, N ); PASTE_CODE_ALLOCATE_MATRIX( U, (jobu == PlasmaVec), PLASMA_Complex64_t, M, M ); PASTE_CODE_ALLOCATE_MATRIX( S, 1, double, N, 1 ); /* Initialiaze Data */ PLASMA_zplrnt_Tile(descA, 51 ); /* Save AT and bT in lapack layout for check */ if ( check ) { } /* Allocate Workspace */ PLASMA_Alloc_Workspace_zgesvd(N, N, &descT); if ( jobu == PlasmaVec ) { LAPACKE_zlaset_work(LAPACK_COL_MAJOR, 'A', M, M, 0., 1., U, M); } if ( jobvt == PlasmaVec ) { LAPACKE_zlaset_work(LAPACK_COL_MAJOR, 'A', N, N, 0., 1., VT, N); } START_TIMING(); INFO = PLASMA_zgesvd_Tile(jobu, jobvt, descA, S, descT, U, M, VT, N); STOP_TIMING(); if(INFO!=0){ printf(" ERROR OCCURED INFO %d\n",INFO); } /* Check the solution */ if ( check ) { } /* DeAllocate Workspace */ PLASMA_Dealloc_Handle_Tile(&descT); if (jobu == PlasmaVec) { free( U ); } if (jobvt == PlasmaVec) { free( VT ); } PASTE_CODE_FREE_MATRIX( descA ); free( S ); return 0; }