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
cgetmi.c File Reference
#include <stdlib.h>
#include <sys/types.h>
#include "common.h"
Include dependency graph for cgetmi.c:

Go to the source code of this file.

Functions

int PLASMA_cgetmi (int m, int n, PLASMA_Complex32_t *A, PLASMA_enum f_in, int imb, int inb)
int PLASMA_cgetmi_Async (int m, int n, PLASMA_Complex32_t *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

c 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

c Tue Nov 22 14:35:37 2011

Definition in file cgetmi.c.


Function Documentation

int PLASMA_cgetmi ( int  m,
int  n,
PLASMA_Complex32_t A,
PLASMA_enum  f_in,
int  imb,
int  inb 
)

PLASMA_cgetmi 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_cgetmi_Async

Definition at line 59 of file cgetmi.c.

References PLASMA_cgetmi_Async(), plasma_context_self(), 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_cgetmi_Async ( int  m,
int  n,
PLASMA_Complex32_t A,
PLASMA_enum  f_in,
int  mb,
int  nb,
PLASMA_sequence sequence,
PLASMA_request request 
)

PLASMA_cgetmi_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_cgetmi

Definition at line 125 of file cgetmi.c.

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

{
/* convert */
switch ( f_in ) {
case PlasmaCM :
PLASMA_cgecfi_Async(m, n, A, PlasmaCM, mb, nb, PlasmaRM, nb, mb, sequence, request);
break;
case PlasmaCCRB :
PLASMA_cgecfi_Async(m, n, A, PlasmaCCRB, mb, nb, PlasmaRRRB, nb, mb, sequence, request);
break;
case PlasmaCRRB :
PLASMA_cgecfi_Async(m, n, A, PlasmaCRRB, mb, nb, PlasmaRCRB, nb, mb, sequence, request);
break;
case PlasmaRCRB :
PLASMA_cgecfi_Async(m, n, A, PlasmaRCRB, mb, nb, PlasmaCRRB, nb, mb, sequence, request);
break;
case PlasmaRRRB :
PLASMA_cgecfi_Async(m, n, A, PlasmaRRRB, mb, nb, PlasmaCCRB, nb, mb, sequence, request);
break;
case PlasmaRM :
PLASMA_cgecfi_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: