PLASMA  2.4.5
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
dgetmi.c File Reference
#include <stdlib.h>
#include <sys/types.h>
#include "common.h"
Include dependency graph for dgetmi.c:

Go to the source code of this file.

Functions

int PLASMA_dgetmi (int m, int n, double *A, PLASMA_enum f_in, int imb, int inb)
int PLASMA_dgetmi_Async (int m, int n, double *A, PLASMA_enum f_in, int mb, int nb, PLASMA_sequence *sequence, PLASMA_request *request)

Detailed Description

PLASMA InPlaceTransformation module PLASMA is a software package provided by Univ. of Tennessee, Univ. of California Berkeley and Univ. of Colorado Denver

This work is the implementation of an inplace transformation based on the GKK algorithm by Gustavson, Karlsson, Kagstrom and its fortran implementation.

Version:
2.4.5
Author:
Mathieu Faverge
Date:
2010-11-15

d Tue Nov 22 14:35:44 2011

PLASMA InPlaceTransformation module PLASMA is a software package provided by Univ. of Tennessee, Univ. of California Berkeley and Univ. of Colorado Denver

This work is the implementation of an inplace transformation based on the GKK algorithm by Gustavson, Karlsson, Kagstrom and its fortran implementation.

Version:
2.4.5
Author:
Mathieu Faverge
Date:
2010-11-15

d Tue Nov 22 14:35:37 2011

Definition in file dgetmi.c.


Function Documentation

int PLASMA_dgetmi ( int  m,
int  n,
double *  A,
PLASMA_enum  f_in,
int  imb,
int  inb 
)

PLASMA_dgetmi Implementation of inplace transposition based on the GKK algorithm by Gustavson, Karlsson, Kagstrom. This algorithm shift some cycles to transpose the matrix.

Parameters:
[in]mNumber of rows of matrix A
[in]nNumber of columns of matrix A
[in,out]AMatrix of size L*m*n.
[in]f_inOriginal format of the matrix A. Must be part of (PlasmaCM, PlasmaRM, PlasmaCCRB, PlasmaCRRB, PlasmaRCRB, PlasmaRRRB)
[in]imbNumber of rows of the problem
[in]inbNumber of columns in the problem
See also:
PLASMA_dgetmi_Async

Definition at line 59 of file dgetmi.c.

References plasma_context_self(), PLASMA_dgetmi_Async(), plasma_dynamic_sync, PLASMA_ERR_NOT_INITIALIZED, plasma_fatal_error(), PLASMA_REQUEST_INITIALIZER, plasma_sequence_create(), plasma_sequence_destroy(), and plasma_sequence_t::status.

{
PLASMA_sequence *sequence = NULL;
int status;
plasma = plasma_context_self();
if (plasma == NULL) {
plasma_fatal_error(__func__, "PLASMA not initialized");
}
plasma_sequence_create(plasma, &sequence);
f_in, imb, inb,
sequence, &request);
status = sequence->status;
plasma_sequence_destroy(plasma, sequence);
return status;
}

Here is the call graph for this function:

Here is the caller graph for this function:

int PLASMA_dgetmi_Async ( int  m,
int  n,
double *  A,
PLASMA_enum  f_in,
int  mb,
int  nb,
PLASMA_sequence sequence,
PLASMA_request request 
)

PLASMA_dgetmi_Async Implementation of inplace transposition based on the GKK algorithm by Gustavson, Karlsson, Kagstrom. This algorithm shift some cycles to transpose the matrix.

Parameters:
[in]mNumber of rows of matrix A
[in]nNumber of columns of matrix A
[in,out]AMatrix of size L*m*n.
[in]f_inOriginal format of the matrix A. Must be part of (PlasmaCM, PlasmaRM, PlasmaCCRB, PlasmaCRRB, PlasmaRCRB, PlasmaRRRB)
[in]mbNumber of rows of the problem
[in]nbNumber of columns in the problem
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes).
[out]requestIdentifies this function call (for exception handling purposes).
See also:
PLASMA_dgetmi

Definition at line 125 of file dgetmi.c.

References PLASMA_dgecfi_Async(), plasma_error(), PLASMA_SUCCESS, PlasmaCCRB, PlasmaCM, PlasmaCRRB, PlasmaRCRB, PlasmaRM, and PlasmaRRRB.

{
/* convert */
switch ( f_in ) {
case PlasmaCM :
PLASMA_dgecfi_Async(m, n, A, PlasmaCM, mb, nb, PlasmaRM, nb, mb, sequence, request);
break;
case PlasmaCCRB :
PLASMA_dgecfi_Async(m, n, A, PlasmaCCRB, mb, nb, PlasmaRRRB, nb, mb, sequence, request);
break;
case PlasmaCRRB :
PLASMA_dgecfi_Async(m, n, A, PlasmaCRRB, mb, nb, PlasmaRCRB, nb, mb, sequence, request);
break;
case PlasmaRCRB :
PLASMA_dgecfi_Async(m, n, A, PlasmaRCRB, mb, nb, PlasmaCRRB, nb, mb, sequence, request);
break;
case PlasmaRRRB :
PLASMA_dgecfi_Async(m, n, A, PlasmaRRRB, mb, nb, PlasmaCCRB, nb, mb, sequence, request);
break;
case PlasmaRM :
PLASMA_dgecfi_Async(m, n, A, PlasmaRM, mb, nb, PlasmaCM, nb, mb, sequence, request);
break;
default:
plasma_error(__func__, "unknown format");
}
}

Here is the call graph for this function:

Here is the caller graph for this function: