LAPACK  3.5.0
LAPACK: Linear Algebra PACKage
 All Classes Files Functions Variables Typedefs Macros
lapacke_dtf_trans.c File Reference
#include "lapacke_utils.h"
Include dependency graph for lapacke_dtf_trans.c:

Go to the source code of this file.

Functions/Subroutines

void LAPACKE_dtf_trans (int matrix_order, char transr, char uplo, char diag, lapack_int n, const double *in, double *out)

Function/Subroutine Documentation

void LAPACKE_dtf_trans ( int  matrix_order,
char  transr,
char  uplo,
char  diag,
lapack_int  n,
const double *  in,
double *  out 
)

Definition at line 41 of file lapacke_dtf_trans.c.

{
lapack_int row, col;
lapack_logical rowmaj, ntr, lower, unit;
if( in == NULL || out == NULL ) return ;
rowmaj = (matrix_order == LAPACK_ROW_MAJOR);
ntr = LAPACKE_lsame( transr, 'n' );
lower = LAPACKE_lsame( uplo, 'l' );
unit = LAPACKE_lsame( diag, 'u' );
if( ( !rowmaj && ( matrix_order != LAPACK_COL_MAJOR ) ) ||
( !ntr && !LAPACKE_lsame( transr, 't' ) &&
!LAPACKE_lsame( transr, 'c' ) ) ||
( !lower && !LAPACKE_lsame( uplo, 'u' ) ) ||
( !unit && !LAPACKE_lsame( diag, 'n' ) ) ) {
/* Just exit if input parameters are wrong */
return;
}
/* Determine parameters of array representing RFP */
if( ntr ) {
if( n%2 == 0 ) {
row = n + 1;
col = n / 2;
} else {
row = n;
col = (n + 1) / 2;
}
} else {
if( n%2 == 0 ) {
row = n / 2;
col = n + 1;
} else {
row = (n + 1) / 2;
col = n;
}
}
/* Perform conversion: */
if( rowmaj ) {
LAPACKE_dge_trans( LAPACK_ROW_MAJOR, row, col, in, col, out, row );
} else {
LAPACKE_dge_trans( LAPACK_COL_MAJOR, row, col, in, row, out, col );
}
}

Here is the call graph for this function:

Here is the caller graph for this function: