14 #include "../PBpblas.h"
15 #include "../PBtools.h"
16 #include "../PBblacs.h"
17 #include "../PBblas.h"
21 int K,
int IOFFD,
char * ALPHA,
char * A,
int LDA,
22 char * XC,
int LDXC,
char * XR,
int LDXR,
char * YC,
23 int LDYC,
char * YR,
int LDYR )
25 void PB_Ctzasymv(
TYPE, SIDE, UPLO, M, N, K, IOFFD, ALPHA, A, LDA, XC,
26 LDXC, XR, LDXR, YC, LDYC, YR, LDYR )
31 int IOFFD, K, LDA, LDXC, LDXR, LDYC, LDYR, M, N;
37 char * A, * XC, * XR, * YC, * YR;
175 int i1, ione=1, j1, m1, mn, n1, size, usiz;
181 if( ( M <= 0 ) || ( N <= 0 ) )
return;
185 size =
TYPE->size; usiz =
TYPE->usiz;
186 one =
TYPE->one; agemv =
TYPE->Fagemv;
187 mn =
MAX( 0, -IOFFD );
188 if( ( n1 =
MIN( mn, N ) ) > 0 )
190 agemv(
C2F_CHAR(
NOTRAN ), &M, &n1, ALPHA, A, &LDA, XR, &LDXR, one, YC,
192 agemv(
C2F_CHAR(
TRAN ), &M, &n1, ALPHA, A, &LDA, XC, &ione, one, YR,
196 if( ( n1 =
MIN( n1, N ) - mn ) > 0 )
198 i1 = ( j1 = mn ) + IOFFD;
200 size ), &LDA,
Mptr( XC, i1, 0, LDXC, size ), &ione, one,
201 Mptr( YC, i1, 0, LDYC, usiz ), &ione );
202 if( ( m1 = M - mn - n1 - IOFFD ) > 0 )
206 size ), &LDA,
Mptr( XR, 0, j1, LDXR, size ), &LDXR, one,
207 Mptr( YC, i1, 0, LDYC, usiz ), &ione );
209 size ), &LDA,
Mptr( XC, i1, 0, LDXC, size ), &ione, one,
210 Mptr( YR, 0, j1, LDYR, usiz ), &LDYR );
216 size =
TYPE->size; usiz =
TYPE->usiz;
217 one =
TYPE->one; agemv =
TYPE->Fagemv;
218 mn = M - IOFFD; mn =
MIN( mn, N );
219 if( ( n1 = mn -
MAX( 0, -IOFFD ) ) > 0 )
222 if( ( m1 =
MAX( 0, IOFFD ) ) > 0 )
224 agemv(
C2F_CHAR(
NOTRAN ), &m1, &n1, ALPHA, A, &LDA, XR, &LDXR, one,
226 agemv(
C2F_CHAR(
TRAN ), &m1, &n1, ALPHA, A, &LDA, XC, &ione, one,
230 size ), &LDA,
Mptr( XC, m1, 0, LDXC, size ), &ione, one,
231 Mptr( YC, m1, 0, LDYC, usiz ), &ione );
233 if( ( n1 = N -
MAX( 0, mn ) ) > 0 )
237 &LDA,
Mptr( XR, 0, j1, LDXR, size ), &LDXR, one, YC, &ione );
239 &LDA, XC, &ione, one,
Mptr( YR, 0, j1, LDYR, usiz ), &LDYR );
244 one =
TYPE->one; agemv =
TYPE->Fagemv;
245 agemv(
C2F_CHAR(
NOTRAN ), &M, &N, ALPHA, A, &LDA, XR, &LDXR, one, YC,
247 agemv(
C2F_CHAR(
TRAN ), &M, &N, ALPHA, A, &LDA, XC, &ione, one, YR,