コード例 #1
0
ファイル: pzgetmi2.c プロジェクト: gpichon/eigenproblems
/** ****************************************************************************
 *
 * @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);
}
コード例 #2
0
ファイル: core_zgetrip.c プロジェクト: joao-lima/plasma-kaapi
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);
}
コード例 #3
0
ファイル: core_zgetrip.c プロジェクト: joao-lima/plasma-kaapi
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);
}
コード例 #4
0
ファイル: core_zgetrip.c プロジェクト: joao-lima/plasma-kaapi
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);
}