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

Go to the source code of this file.

Functions/Subroutines

void LAPACKE_ztb_trans (int matrix_order, char uplo, char diag, lapack_int n, lapack_int kd, const lapack_complex_double *in, lapack_int ldin, lapack_complex_double *out, lapack_int ldout)

Function/Subroutine Documentation

void LAPACKE_ztb_trans ( int  matrix_order,
char  uplo,
char  diag,
lapack_int  n,
lapack_int  kd,
const lapack_complex_double in,
lapack_int  ldin,
lapack_complex_double out,
lapack_int  ldout 
)

Definition at line 40 of file lapacke_ztb_trans.c.

{
lapack_logical colmaj, upper, unit;
if( in == NULL || out == NULL ) return;
colmaj = ( matrix_order == LAPACK_COL_MAJOR );
upper = LAPACKE_lsame( uplo, 'u' );
unit = LAPACKE_lsame( diag, 'u' );
if( ( !colmaj && ( matrix_order != LAPACK_ROW_MAJOR ) ) ||
( !upper && !LAPACKE_lsame( uplo, 'l' ) ) ||
( !unit && !LAPACKE_lsame( diag, 'n' ) ) ) {
/* Just exit if any of input parameters are wrong */
return;
}
if( unit ) {
/* Unit case, diagonal excluded from transposition */
if( colmaj ) {
if( upper ) {
LAPACKE_zgb_trans( matrix_order, n-1, n-1, 0, kd-1,
&in[ldin], ldin, &out[1], ldout );
} else {
LAPACKE_zgb_trans( matrix_order, n-1, n-1, kd-1, 0,
&in[1], ldin, &out[ldout], ldout );
}
} else {
if( upper ) {
LAPACKE_zgb_trans( matrix_order, n-1, n-1, 0, kd-1,
&in[1], ldin, &out[ldout], ldout );
} else {
LAPACKE_zgb_trans( matrix_order, n-1, n-1, kd-1, 0,
&in[ldin], ldin, &out[1], ldout );
}
}
} else {
/* Non-unit case */
if( upper ) {
LAPACKE_zgb_trans( matrix_order, n, n, 0, kd, in, ldin, out,
ldout );
} else {
LAPACKE_zgb_trans( matrix_order, n, n, kd, 0, in, ldin, out,
ldout );
}
}
}

Here is the call graph for this function:

Here is the caller graph for this function: