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

Go to the source code of this file.

Functions

void LAPACKE_cgb_trans (int matrix_order, lapack_int m, lapack_int n, lapack_int kl, lapack_int ku, const lapack_complex_float *in, lapack_int ldin, lapack_complex_float *out, lapack_int ldout)
 

Function Documentation

void LAPACKE_cgb_trans ( int  matrix_order,
lapack_int  m,
lapack_int  n,
lapack_int  kl,
lapack_int  ku,
const lapack_complex_float in,
lapack_int  ldin,
lapack_complex_float out,
lapack_int  ldout 
)

Definition at line 40 of file lapacke_cgb_trans.c.

44 {
45  lapack_int i, j;
46 
47  if( in == NULL || out == NULL ) return;
48 
49  if( matrix_order == LAPACK_COL_MAJOR ) {
50  for( j = 0; j < MIN( ldout, n ); j++ ) {
51  for( i = MAX( ku-j, 0 ); i < MIN3( ldin, m+ku-j, kl+ku+1 );
52  i++ ) {
53  out[(size_t)i*ldout+j] = in[i+(size_t)j*ldin];
54  }
55  }
56  } else if ( matrix_order == LAPACK_ROW_MAJOR ) {
57  /* TODO: interchange loops for performance.
58  * This is just reference impemeltation.
59  */
60  for( j = 0; j < MIN( n, ldin ); j++ ) {
61  for( i = MAX( ku-j, 0 ); i < MIN3( ldout, m+ku-j, kl+ku+1 );
62  i++ ) {
63  out[i+(size_t)j*ldout] = in[(size_t)i*ldin+j];
64  }
65  }
66  }
67 }
#define LAPACK_COL_MAJOR
Definition: lapacke.h:120
#define MIN3(x, y, z)
Definition: lapacke_utils.h:56
#define LAPACK_ROW_MAJOR
Definition: lapacke.h:119
#define MAX(x, y)
Definition: lapacke_utils.h:47
if("${line}"MATCHES processor) math(EXPR parallel"$
#define MIN(x, y)
Definition: lapacke_utils.h:50
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real j
Definition: xerbla-fortran:9
#define lapack_int
Definition: lapacke.h:47

Here is the caller graph for this function: