OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
lapacke_dgb_trans.c File Reference
#include "lapacke_utils.h"

Go to the source code of this file.

Functions

void LAPACKE_dgb_trans (int matrix_layout, lapack_int m, lapack_int n, lapack_int kl, lapack_int ku, const double *in, lapack_int ldin, double *out, lapack_int ldout)

Function Documentation

◆ LAPACKE_dgb_trans()

void LAPACKE_dgb_trans ( int matrix_layout,
lapack_int m,
lapack_int n,
lapack_int kl,
lapack_int ku,
const double * in,
lapack_int ldin,
double * out,
lapack_int ldout )

Definition at line 39 of file lapacke_dgb_trans.c.

43{
44 lapack_int i, j;
45
46 if( in == NULL || out == NULL ) return;
47
48 if( matrix_layout == LAPACK_COL_MAJOR ) {
49 for( j = 0; j < MIN( ldout, n ); j++ ) {
50 for( i = MAX( ku-j, 0 ); i < MIN3( ldin, m+ku-j, kl+ku+1 );
51 i++ ) {
52 out[(size_t)i*ldout+j] = in[i+(size_t)j*ldin];
53 }
54 }
55 } else if ( matrix_layout == LAPACK_ROW_MAJOR ) {
56 /* TODO: interchange loops for performance.
57 * This is just reference impemeltation.
58 */
59 for( j = 0; j < MIN( n, ldin ); j++ ) {
60 for( i = MAX( ku-j, 0 ); i < MIN3( ldout, m+ku-j, kl+ku+1 );
61 i++ ) {
62 out[i+(size_t)j*ldout] = in[(size_t)i*ldin+j];
63 }
64 }
65 }
66}
#define lapack_int
Definition lapack.h:83
#define LAPACK_COL_MAJOR
Definition lapacke.h:53
#define LAPACK_ROW_MAJOR
Definition lapacke.h:52
#define MIN(x, y)
#define MAX(x, y)
#define MIN3(x, y, z)
n