OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cblas_zhbmv.c File Reference
#include "cblas.h"
#include "cblas_f77.h"
#include <stdio.h>
#include <stdlib.h>

Go to the source code of this file.

Macros

#define F77_UL   &UL
#define F77_N   N
#define F77_K   K
#define F77_lda   lda
#define F77_incX   incx
#define F77_incY   incY

Functions

void cblas_zhbmv (const CBLAS_LAYOUT layout, const CBLAS_UPLO Uplo, const CBLAS_INT N, const CBLAS_INT K, const void *alpha, const void *A, const CBLAS_INT lda, const void *X, const CBLAS_INT incX, const void *beta, void *Y, const CBLAS_INT incY)

Macro Definition Documentation

◆ F77_incX

#define F77_incX   incx

◆ F77_incY

#define F77_incY   incY

◆ F77_K

#define F77_K   K

◆ F77_lda

#define F77_lda   lda

◆ F77_N

#define F77_N   N

◆ F77_UL

#define F77_UL   &UL

Function Documentation

◆ cblas_zhbmv()

void cblas_zhbmv ( const CBLAS_LAYOUT layout,
const CBLAS_UPLO Uplo,
const CBLAS_INT N,
const CBLAS_INT K,
const void * alpha,
const void * A,
const CBLAS_INT lda,
const void * X,
const CBLAS_INT incX,
const void * beta,
void * Y,
const CBLAS_INT incY )

Definition at line 12 of file cblas_zhbmv.c.

17{
18 char UL;
19#ifdef F77_CHAR
20 F77_CHAR F77_UL;
21#else
22 #define F77_UL &UL
23#endif
24#ifdef F77_INT
25 F77_INT F77_N=N, F77_K=K, F77_lda=lda, F77_incX=incX, F77_incY=incY;
26#else
27 #define F77_N N
28 #define F77_K K
29 #define F77_lda lda
30 #define F77_incX incx
31 #define F77_incY incY
32#endif
33 CBLAS_INT n, i=0, incx=incX;
34 const double *xx= (double *)X, *alp= (double *)alpha, *bet = (double *)beta;
35 double ALPHA[2],BETA[2];
36 CBLAS_INT tincY, tincx;
37 double *x=(double *)X, *y=(double *)Y, *st=0, *tx;
38 extern int CBLAS_CallFromC;
39 extern int RowMajorStrg;
40 RowMajorStrg = 0;
41
43 if (layout == CblasColMajor)
44 {
45 if (Uplo == CblasLower) UL = 'L';
46 else if (Uplo == CblasUpper) UL = 'U';
47 else
48 {
49 cblas_xerbla(2, "cblas_zhbmv","Illegal Uplo setting, %d\n",Uplo );
51 RowMajorStrg = 0;
52 return;
53 }
54 #ifdef F77_CHAR
55 F77_UL = C2F_CHAR(&UL);
56 #endif
58 &F77_incX, beta, Y, &F77_incY);
59 }
60 else if (layout == CblasRowMajor)
61 {
62 RowMajorStrg = 1;
63 ALPHA[0]= *alp;
64 ALPHA[1]= -alp[1];
65 BETA[0]= *bet;
66 BETA[1]= -bet[1];
67
68 if (N > 0)
69 {
70 n = N << 1;
71 x = malloc(n*sizeof(double));
72
73 tx = x;
74 if( incX > 0 ) {
75 i = incX << 1 ;
76 tincx = 2;
77 st= x+n;
78 } else {
79 i = incX *(-2);
80 tincx = -2;
81 st = x-2;
82 x +=(n-2);
83 }
84
85 do
86 {
87 *x = *xx;
88 x[1] = -xx[1];
89 x += tincx ;
90 xx += i;
91 }
92 while (x != st);
93 x=tx;
94
95
96 #ifdef F77_INT
97 F77_incX = 1;
98 #else
99 incx = 1;
100 #endif
101
102 if(incY > 0)
103 tincY = incY;
104 else
105 tincY = -incY;
106 y++;
107
108 i = tincY << 1;
109 n = i * N ;
110 st = y + n;
111 do {
112 *y = -(*y);
113 y += i;
114 } while(y != st);
115 y -= n;
116 } else
117 x = (double *) X;
118
119 if (Uplo == CblasUpper) UL = 'L';
120 else if (Uplo == CblasLower) UL = 'U';
121 else
122 {
123 cblas_xerbla(2, "cblas_zhbmv","Illegal Uplo setting, %d\n", Uplo);
124 CBLAS_CallFromC = 0;
125 RowMajorStrg = 0;
126 return;
127 }
128 #ifdef F77_CHAR
129 F77_UL = C2F_CHAR(&UL);
130 #endif
131 F77_zhbmv(F77_UL, &F77_N, &F77_K, ALPHA,
132 A ,&F77_lda, x,&F77_incX, BETA, Y, &F77_incY);
133 }
134 else
135 {
136 cblas_xerbla(1, "cblas_zhbmv","Illegal layout setting, %d\n", layout);
137 CBLAS_CallFromC = 0;
138 RowMajorStrg = 0;
139 return;
140 }
141 if ( layout == CblasRowMajor )
142 {
143 RowMajorStrg = 1;
144 if(X!=x)
145 free(x);
146 if (N > 0)
147 {
148 do
149 {
150 *y = -(*y);
151 y += i;
152 }
153 while (y != st);
154 }
155 }
156 CBLAS_CallFromC = 0;
157 RowMajorStrg = 0;
158 return;
159}
#define C2F_CHAR(a)
Definition pblas.h:125
@ CblasLower
Definition cblas.h:29
@ CblasUpper
Definition cblas.h:29
void cblas_xerbla(CBLAS_INT p, const char *rout, const char *form,...)
@ CblasColMajor
Definition cblas.h:27
@ CblasRowMajor
Definition cblas.h:27
#define CBLAS_INT
Definition cblas.h:23
#define F77_incX
#define F77_incY
#define F77_N
#define F77_lda
#define F77_K
#define F77_UL
#define F77_INT
Definition cblas_f77.h:32
#define F77_zhbmv(...)
Definition cblas_f77.h:340
int CBLAS_CallFromC
int RowMajorStrg
#define alpha
Definition eval.h:35
#define N
n