14 #include "../PBpblas.h"
15 #include "../PBtools.h"
16 #include "../PBblacs.h"
17 #include "../PBblas.h"
21 int IOFFD,
char * ALPHA,
char * XC,
int LDXC,
char * XR,
22 int LDXR,
char * A,
int LDA )
24 void PB_Ctzher(
TYPE, UPLO, M, N, K, IOFFD, ALPHA, XC, LDXC, XR, LDXR,
30 int IOFFD, K, LDA, LDXC, LDXR, M, N;
154 int i1, ione=1, j1, m1, mn, n1, size;
160 if( ( M <= 0 ) || ( N <= 0 ) )
return;
164 size =
TYPE->size; gerc =
TYPE->Fgerc;
165 mn =
MAX( 0, -IOFFD );
166 if( ( n1 =
MIN( mn, N ) ) > 0 )
167 gerc( &M, &n1, ALPHA, XC, &ione, XR, &LDXR, A, &LDA );
169 if( ( n1 =
MIN( n1, N ) - mn ) > 0 )
171 i1 = ( j1 = mn ) + IOFFD;
173 size ), &ione,
Mptr( A, i1, j1, LDA, size ), &LDA );
174 if( ( m1 = M - mn - n1 - IOFFD ) > 0 )
177 gerc( &m1, &n1, ALPHA,
Mptr( XC, i1, 0, LDXC, size ), &ione,
178 Mptr( XR, 0, j1, LDXR, size ), &LDXR,
Mptr( A, i1, j1, LDA,
185 size =
TYPE->size; gerc =
TYPE->Fgerc;
186 mn = M - IOFFD; mn =
MIN( mn, N );
187 if( ( n1 = mn -
MAX( 0, -IOFFD ) ) > 0 )
190 if( ( m1 =
MAX( 0, IOFFD ) ) > 0 )
191 gerc( &m1, &n1, ALPHA, XC, &ione, XR, &LDXR, A, &LDA );
193 size ), &ione,
Mptr( A, m1, j1, LDA, size ), &LDA );
195 if( ( n1 = N -
MAX( 0, mn ) ) > 0 )
198 gerc( &M, &n1, ALPHA, XC, &ione,
Mptr( XR, 0, j1, LDXR, size ), &LDXR,
199 Mptr( A, 0, j1, LDA, size ), &LDA );
204 TYPE->Fgerc( &M, &N, ALPHA, XC, &ione, XR, &LDXR, A, &LDA );