LAPACK  3.8.0
LAPACK: Linear Algebra PACKage

◆ LAPACKE_stf_trans()

void LAPACKE_stf_trans ( int  matrix_layout,
char  transr,
char  uplo,
char  diag,
lapack_int  n,
const float *  in,
float *  out 
)

Definition at line 41 of file lapacke_stf_trans.c.

44 {
45  lapack_int row, col;
46  lapack_logical rowmaj, ntr, lower, unit;
47 
48  if( in == NULL || out == NULL ) return ;
49 
50  rowmaj = (matrix_layout == LAPACK_ROW_MAJOR);
51  ntr = LAPACKE_lsame( transr, 'n' );
52  lower = LAPACKE_lsame( uplo, 'l' );
53  unit = LAPACKE_lsame( diag, 'u' );
54 
55  if( ( !rowmaj && ( matrix_layout != LAPACK_COL_MAJOR ) ) ||
56  ( !ntr && !LAPACKE_lsame( transr, 't' ) &&
57  !LAPACKE_lsame( transr, 'c' ) ) ||
58  ( !lower && !LAPACKE_lsame( uplo, 'u' ) ) ||
59  ( !unit && !LAPACKE_lsame( diag, 'n' ) ) ) {
60  /* Just exit if input parameters are wrong */
61  return;
62  }
63 
64  /* Determine parameters of array representing RFP */
65  if( ntr ) {
66  if( n%2 == 0 ) {
67  row = n + 1;
68  col = n / 2;
69  } else {
70  row = n;
71  col = (n + 1) / 2;
72  }
73  } else {
74  if( n%2 == 0 ) {
75  row = n / 2;
76  col = n + 1;
77  } else {
78  row = (n + 1) / 2;
79  col = n;
80  }
81  }
82 
83  /* Perform conversion: */
84  if( rowmaj ) {
85  LAPACKE_sge_trans( LAPACK_ROW_MAJOR, row, col, in, col, out, row );
86  } else {
87  LAPACKE_sge_trans( LAPACK_COL_MAJOR, row, col, in, row, out, col );
88  }
89 }
#define lapack_logical
Definition: lapacke.h:51
#define LAPACK_ROW_MAJOR
Definition: lapacke.h:119
void LAPACKE_sge_trans(int matrix_layout, lapack_int m, lapack_int n, const float *in, lapack_int ldin, float *out, lapack_int ldout)
lapack_logical LAPACKE_lsame(char ca, char cb)
Definition: lapacke_lsame.c:36
#define LAPACK_COL_MAJOR
Definition: lapacke.h:120
#define lapack_int
Definition: lapacke.h:47
Here is the call graph for this function:
Here is the caller graph for this function: