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
tile.c File Reference
#include "common.h"
#include "auxiliary.h"
#include "tile.h"
Include dependency graph for tile.c:

Go to the source code of this file.

Functions

int PLASMA_Lapack_to_Tile (void *Af77, int LDA, PLASMA_desc *A)
int PLASMA_Tile_to_Lapack (PLASMA_desc *A, void *Af77, int LDA)

Detailed Description

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

Version:
2.4.5
Author:
Jakub Kurzak
Date:
2010-11-15

Definition in file tile.c.


Function Documentation

int PLASMA_Lapack_to_Tile ( void *  Af77,
int  LDA,
PLASMA_desc A 
)

PLASMA_Lapack_to_Tile - Conversion from LAPACK layout to tile layout.

Parameters:
[in]Af77LAPACK matrix.
[in]LDAThe leading dimension of the matrix Af77.
[out]ADescriptor of the PLASMA matrix in tile layout.
Returns:
Return values:
PLASMA_SUCCESSsuccessful exit

Definition at line 41 of file tile.c.

References A, plasma_desc_t::dtyp, plasma_context_self(), plasma_desc_check(), plasma_dynamic_sync, PLASMA_ERR_ILLEGAL_VALUE, PLASMA_ERR_NOT_INITIALIZED, plasma_error(), plasma_fatal_error(), plasma_parallel_call_5, plasma_pclapack_to_tile(), plasma_pdlapack_to_tile(), plasma_pslapack_to_tile(), plasma_pzlapack_to_tile(), plasma_sequence_create(), plasma_sequence_destroy(), PLASMA_SUCCESS, PlasmaComplexDouble, PlasmaComplexFloat, PlasmaRealDouble, PlasmaRealFloat, and plasma_sequence_t::status.

{
PLASMA_desc descA = *A;
PLASMA_sequence *sequence = NULL;
PLASMA_request request;
int status;
plasma = plasma_context_self();
if (plasma == NULL) {
plasma_fatal_error("PLASMA_Lapack_to_Tile", "PLASMA not initialized");
}
/* Check descriptor for correctness */
plasma_error("PLASMA_Lapack_to_Tile", "invalid descriptor");
}
plasma_sequence_create(plasma, &sequence);
switch( A->dtyp ) {
float*, Af77,
int, LDA,
PLASMA_desc, descA,
PLASMA_sequence*, sequence,
PLASMA_request*, &request);
break;
double*, Af77,
int, LDA,
PLASMA_desc, descA,
PLASMA_sequence*, sequence,
PLASMA_request*, &request);
break;
int, LDA,
PLASMA_desc, descA,
PLASMA_sequence*, sequence,
PLASMA_request*, &request);
break;
int, LDA,
PLASMA_desc, descA,
PLASMA_sequence*, sequence,
PLASMA_request*, &request);
break;
default:
plasma_error("PLASMA_Lapack_to_Tile", "Type unknown");
}
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_Tile_to_Lapack ( PLASMA_desc A,
void *  Af77,
int  LDA 
)

PLASMA_Tile_to_Lapack - Conversion from tile layout to LAPACK layout.

Parameters:
[out]ADescriptor of the PLASMA matrix in tile layout.
[in]Af77LAPACK matrix.
[in]LDAThe leading dimension of the matrix Af77.
Returns:
Return values:
PLASMA_SUCCESSsuccessful exit

Definition at line 129 of file tile.c.

References A, plasma_desc_t::dtyp, plasma_context_self(), plasma_desc_check(), plasma_dynamic_sync, PLASMA_ERR_ILLEGAL_VALUE, PLASMA_ERR_NOT_INITIALIZED, plasma_error(), plasma_fatal_error(), plasma_parallel_call_5, plasma_pctile_to_lapack(), plasma_pdtile_to_lapack(), plasma_pstile_to_lapack(), plasma_pztile_to_lapack(), plasma_sequence_create(), plasma_sequence_destroy(), PLASMA_SUCCESS, PlasmaComplexDouble, PlasmaComplexFloat, PlasmaRealDouble, PlasmaRealFloat, and plasma_sequence_t::status.

{
PLASMA_desc descA = *A;
PLASMA_sequence *sequence = NULL;
PLASMA_request request;
int status;
plasma = plasma_context_self();
if (plasma == NULL) {
plasma_fatal_error("PLASMA_Tile_to_Lapack", "PLASMA not initialized");
}
/* Check descriptor for correctness */
plasma_error("PLASMA_Tile_to_Lapack", "invalid descriptor");
}
plasma_sequence_create(plasma, &sequence);
switch( A->dtyp ) {
PLASMA_desc, descA,
float*, Af77,
int, LDA,
PLASMA_sequence*, sequence,
PLASMA_request*, &request);
break;
PLASMA_desc, descA,
double*, Af77,
int, LDA,
PLASMA_sequence*, sequence,
PLASMA_request*, &request);
break;
PLASMA_desc, descA,
int, LDA,
PLASMA_sequence*, sequence,
PLASMA_request*, &request);
break;
PLASMA_desc, descA,
int, LDA,
PLASMA_sequence*, sequence,
PLASMA_request*, &request);
break;
default:
plasma_error("PLASMA_Tile_to_Lapack", "Type unknown");
}
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: