/** **************************************************************************** * * @ingroup InPlaceTransformation * * plasma_pzgetmi2 - realises nprob independant transpositions. Each * subproblem is a tile of mb-by-nb elements. * This function use an extra space of PLASMA_SIZE*(mb*nb). * ******************************************************************************* * * @param[in] plasma * Plasma context to which this call belong to. * ******************************************************************************* * * @sa plasma_pzgetmi2_quark * ******************************************************************************/ void plasma_pzgetmi2(plasma_context_t *plasma) { PLASMA_sequence *sequence; PLASMA_request *request; PLASMA_Complex64_t *A, *Al, *work; PLASMA_enum storev, idep, odep; int i, m, n, mb, nb, nprob; int size, bsiz; plasma_unpack_args_10(idep, odep, storev, m, n, mb, nb, A, sequence, request); if (sequence->status != PLASMA_SUCCESS) return; /* quick return */ if( (mb < 2) || (nb < 2) ) { return ; } size = PLASMA_SIZE; bsiz = mb*nb; nprob = ( m / mb ) * ( n / nb ); work = (PLASMA_Complex64_t*)plasma_private_alloc(plasma, mb*nb, PlasmaComplexDouble); for (i=PLASMA_RANK; i<nprob; i+=size) { Al = &(A[ i * bsiz]); CORE_zgetrip(mb, nb, Al, work); } plasma_private_free(plasma, work); }
void CORE_zgetrip_quark(Quark *quark) { int m; int n; PLASMA_Complex64_t *A; PLASMA_Complex64_t *W; quark_unpack_args_4(quark, m, n, A, W); CORE_zgetrip(m, n, A, W); }
void CORE_zgetrip_f1_quark(Quark *quark) { int m; int n; PLASMA_Complex64_t *A; PLASMA_Complex64_t *W; PLASMA_Complex64_t *fake; quark_unpack_args_5(quark, m, n, A, W, fake); CORE_zgetrip(m, n, A, W); }
void CORE_zgetrip_f2_quark(Quark *quark) { int m; int n; PLASMA_Complex64_t *A; PLASMA_Complex64_t *W; PLASMA_Complex64_t *fake1; PLASMA_Complex64_t *fake2; quark_unpack_args_6(quark, m, n, A, W, fake1, fake2); CORE_zgetrip(m, n, A, W); }