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

Go to the source code of this file.

Functions

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

Function Documentation

◆ 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 40 of file lapacke_stf_trans.c.

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