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

Go to the source code of this file.

Functions

int PLASMA_zgetmi (int m, int n, PLASMA_Complex64_t *A, PLASMA_enum f_in, int imb, int inb)
int PLASMA_zgetmi_Async (int m, int n, PLASMA_Complex64_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

normal z -> c d s

Definition in file zgetmi.c.


Function Documentation

int PLASMA_zgetmi ( int  m,
int  n,
PLASMA_Complex64_t A,
PLASMA_enum  f_in,
int  imb,
int  inb 
)

PLASMA_zgetmi 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_zgetmi_Async

Definition at line 59 of file zgetmi.c.

References plasma_context_self(), plasma_dynamic_sync, PLASMA_ERR_NOT_INITIALIZED, plasma_fatal_error(), PLASMA_REQUEST_INITIALIZER, plasma_sequence_create(), plasma_sequence_destroy(), PLASMA_zgetmi_Async(), 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_zgetmi_Async ( int  m,
int  n,
PLASMA_Complex64_t A,
PLASMA_enum  f_in,
int  mb,
int  nb,
PLASMA_sequence sequence,
PLASMA_request request 
)

PLASMA_zgetmi_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_zgetmi

Definition at line 125 of file zgetmi.c.

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

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