zsyr2k.c
Go to the documentation of this file.
00001 /* zsyr2k.f -- translated by f2c (version 20061008).
00002    You must link the resulting object file with libf2c:
00003         on Microsoft Windows system, link with libf2c.lib;
00004         on Linux or Unix systems, link with .../path/to/libf2c.a -lm
00005         or, if you install libf2c.a in a standard place, with -lf2c -lm
00006         -- in that order, at the end of the command line, as in
00007                 cc *.o -lf2c -lm
00008         Source for libf2c is in /netlib/f2c/libf2c.zip, e.g.,
00009 
00010                 http://www.netlib.org/f2c/libf2c.zip
00011 */
00012 
00013 #include "f2c.h"
00014 #include "blaswrap.h"
00015 
00016 /* Subroutine */ int zsyr2k_(char *uplo, char *trans, integer *n, integer *k, 
00017         doublecomplex *alpha, doublecomplex *a, integer *lda, doublecomplex *
00018         b, integer *ldb, doublecomplex *beta, doublecomplex *c__, integer *
00019         ldc)
00020 {
00021     /* System generated locals */
00022     integer a_dim1, a_offset, b_dim1, b_offset, c_dim1, c_offset, i__1, i__2, 
00023             i__3, i__4, i__5, i__6, i__7;
00024     doublecomplex z__1, z__2, z__3, z__4, z__5;
00025 
00026     /* Local variables */
00027     integer i__, j, l, info;
00028     doublecomplex temp1, temp2;
00029     extern logical lsame_(char *, char *);
00030     integer nrowa;
00031     logical upper;
00032     extern /* Subroutine */ int xerbla_(char *, integer *);
00033 
00034 /*     .. Scalar Arguments .. */
00035 /*     .. */
00036 /*     .. Array Arguments .. */
00037 /*     .. */
00038 
00039 /*  Purpose */
00040 /*  ======= */
00041 
00042 /*  ZSYR2K  performs one of the symmetric rank 2k operations */
00043 
00044 /*     C := alpha*A*B' + alpha*B*A' + beta*C, */
00045 
00046 /*  or */
00047 
00048 /*     C := alpha*A'*B + alpha*B'*A + beta*C, */
00049 
00050 /*  where  alpha and beta  are scalars,  C is an  n by n symmetric matrix */
00051 /*  and  A and B  are  n by k  matrices  in the  first  case  and  k by n */
00052 /*  matrices in the second case. */
00053 
00054 /*  Arguments */
00055 /*  ========== */
00056 
00057 /*  UPLO   - CHARACTER*1. */
00058 /*           On  entry,   UPLO  specifies  whether  the  upper  or  lower */
00059 /*           triangular  part  of the  array  C  is to be  referenced  as */
00060 /*           follows: */
00061 
00062 /*              UPLO = 'U' or 'u'   Only the  upper triangular part of  C */
00063 /*                                  is to be referenced. */
00064 
00065 /*              UPLO = 'L' or 'l'   Only the  lower triangular part of  C */
00066 /*                                  is to be referenced. */
00067 
00068 /*           Unchanged on exit. */
00069 
00070 /*  TRANS  - CHARACTER*1. */
00071 /*           On entry,  TRANS  specifies the operation to be performed as */
00072 /*           follows: */
00073 
00074 /*              TRANS = 'N' or 'n'    C := alpha*A*B' + alpha*B*A' + */
00075 /*                                         beta*C. */
00076 
00077 /*              TRANS = 'T' or 't'    C := alpha*A'*B + alpha*B'*A + */
00078 /*                                         beta*C. */
00079 
00080 /*           Unchanged on exit. */
00081 
00082 /*  N      - INTEGER. */
00083 /*           On entry,  N specifies the order of the matrix C.  N must be */
00084 /*           at least zero. */
00085 /*           Unchanged on exit. */
00086 
00087 /*  K      - INTEGER. */
00088 /*           On entry with  TRANS = 'N' or 'n',  K  specifies  the number */
00089 /*           of  columns  of the  matrices  A and B,  and on  entry  with */
00090 /*           TRANS = 'T' or 't',  K  specifies  the number of rows of the */
00091 /*           matrices  A and B.  K must be at least zero. */
00092 /*           Unchanged on exit. */
00093 
00094 /*  ALPHA  - COMPLEX*16      . */
00095 /*           On entry, ALPHA specifies the scalar alpha. */
00096 /*           Unchanged on exit. */
00097 
00098 /*  A      - COMPLEX*16       array of DIMENSION ( LDA, ka ), where ka is */
00099 /*           k  when  TRANS = 'N' or 'n',  and is  n  otherwise. */
00100 /*           Before entry with  TRANS = 'N' or 'n',  the  leading  n by k */
00101 /*           part of the array  A  must contain the matrix  A,  otherwise */
00102 /*           the leading  k by n  part of the array  A  must contain  the */
00103 /*           matrix A. */
00104 /*           Unchanged on exit. */
00105 
00106 /*  LDA    - INTEGER. */
00107 /*           On entry, LDA specifies the first dimension of A as declared */
00108 /*           in  the  calling  (sub)  program.   When  TRANS = 'N' or 'n' */
00109 /*           then  LDA must be at least  max( 1, n ), otherwise  LDA must */
00110 /*           be at least  max( 1, k ). */
00111 /*           Unchanged on exit. */
00112 
00113 /*  B      - COMPLEX*16       array of DIMENSION ( LDB, kb ), where kb is */
00114 /*           k  when  TRANS = 'N' or 'n',  and is  n  otherwise. */
00115 /*           Before entry with  TRANS = 'N' or 'n',  the  leading  n by k */
00116 /*           part of the array  B  must contain the matrix  B,  otherwise */
00117 /*           the leading  k by n  part of the array  B  must contain  the */
00118 /*           matrix B. */
00119 /*           Unchanged on exit. */
00120 
00121 /*  LDB    - INTEGER. */
00122 /*           On entry, LDB specifies the first dimension of B as declared */
00123 /*           in  the  calling  (sub)  program.   When  TRANS = 'N' or 'n' */
00124 /*           then  LDB must be at least  max( 1, n ), otherwise  LDB must */
00125 /*           be at least  max( 1, k ). */
00126 /*           Unchanged on exit. */
00127 
00128 /*  BETA   - COMPLEX*16      . */
00129 /*           On entry, BETA specifies the scalar beta. */
00130 /*           Unchanged on exit. */
00131 
00132 /*  C      - COMPLEX*16       array of DIMENSION ( LDC, n ). */
00133 /*           Before entry  with  UPLO = 'U' or 'u',  the leading  n by n */
00134 /*           upper triangular part of the array C must contain the upper */
00135 /*           triangular part  of the  symmetric matrix  and the strictly */
00136 /*           lower triangular part of C is not referenced.  On exit, the */
00137 /*           upper triangular part of the array  C is overwritten by the */
00138 /*           upper triangular part of the updated matrix. */
00139 /*           Before entry  with  UPLO = 'L' or 'l',  the leading  n by n */
00140 /*           lower triangular part of the array C must contain the lower */
00141 /*           triangular part  of the  symmetric matrix  and the strictly */
00142 /*           upper triangular part of C is not referenced.  On exit, the */
00143 /*           lower triangular part of the array  C is overwritten by the */
00144 /*           lower triangular part of the updated matrix. */
00145 
00146 /*  LDC    - INTEGER. */
00147 /*           On entry, LDC specifies the first dimension of C as declared */
00148 /*           in  the  calling  (sub)  program.   LDC  must  be  at  least */
00149 /*           max( 1, n ). */
00150 /*           Unchanged on exit. */
00151 
00152 
00153 /*  Level 3 Blas routine. */
00154 
00155 /*  -- Written on 8-February-1989. */
00156 /*     Jack Dongarra, Argonne National Laboratory. */
00157 /*     Iain Duff, AERE Harwell. */
00158 /*     Jeremy Du Croz, Numerical Algorithms Group Ltd. */
00159 /*     Sven Hammarling, Numerical Algorithms Group Ltd. */
00160 
00161 
00162 /*     .. External Functions .. */
00163 /*     .. */
00164 /*     .. External Subroutines .. */
00165 /*     .. */
00166 /*     .. Intrinsic Functions .. */
00167 /*     .. */
00168 /*     .. Local Scalars .. */
00169 /*     .. */
00170 /*     .. Parameters .. */
00171 /*     .. */
00172 
00173 /*     Test the input parameters. */
00174 
00175     /* Parameter adjustments */
00176     a_dim1 = *lda;
00177     a_offset = 1 + a_dim1;
00178     a -= a_offset;
00179     b_dim1 = *ldb;
00180     b_offset = 1 + b_dim1;
00181     b -= b_offset;
00182     c_dim1 = *ldc;
00183     c_offset = 1 + c_dim1;
00184     c__ -= c_offset;
00185 
00186     /* Function Body */
00187     if (lsame_(trans, "N")) {
00188         nrowa = *n;
00189     } else {
00190         nrowa = *k;
00191     }
00192     upper = lsame_(uplo, "U");
00193 
00194     info = 0;
00195     if (! upper && ! lsame_(uplo, "L")) {
00196         info = 1;
00197     } else if (! lsame_(trans, "N") && ! lsame_(trans, 
00198             "T")) {
00199         info = 2;
00200     } else if (*n < 0) {
00201         info = 3;
00202     } else if (*k < 0) {
00203         info = 4;
00204     } else if (*lda < max(1,nrowa)) {
00205         info = 7;
00206     } else if (*ldb < max(1,nrowa)) {
00207         info = 9;
00208     } else if (*ldc < max(1,*n)) {
00209         info = 12;
00210     }
00211     if (info != 0) {
00212         xerbla_("ZSYR2K", &info);
00213         return 0;
00214     }
00215 
00216 /*     Quick return if possible. */
00217 
00218     if (*n == 0 || (alpha->r == 0. && alpha->i == 0. || *k == 0) && (beta->r 
00219             == 1. && beta->i == 0.)) {
00220         return 0;
00221     }
00222 
00223 /*     And when  alpha.eq.zero. */
00224 
00225     if (alpha->r == 0. && alpha->i == 0.) {
00226         if (upper) {
00227             if (beta->r == 0. && beta->i == 0.) {
00228                 i__1 = *n;
00229                 for (j = 1; j <= i__1; ++j) {
00230                     i__2 = j;
00231                     for (i__ = 1; i__ <= i__2; ++i__) {
00232                         i__3 = i__ + j * c_dim1;
00233                         c__[i__3].r = 0., c__[i__3].i = 0.;
00234 /* L10: */
00235                     }
00236 /* L20: */
00237                 }
00238             } else {
00239                 i__1 = *n;
00240                 for (j = 1; j <= i__1; ++j) {
00241                     i__2 = j;
00242                     for (i__ = 1; i__ <= i__2; ++i__) {
00243                         i__3 = i__ + j * c_dim1;
00244                         i__4 = i__ + j * c_dim1;
00245                         z__1.r = beta->r * c__[i__4].r - beta->i * c__[i__4]
00246                                 .i, z__1.i = beta->r * c__[i__4].i + beta->i *
00247                                  c__[i__4].r;
00248                         c__[i__3].r = z__1.r, c__[i__3].i = z__1.i;
00249 /* L30: */
00250                     }
00251 /* L40: */
00252                 }
00253             }
00254         } else {
00255             if (beta->r == 0. && beta->i == 0.) {
00256                 i__1 = *n;
00257                 for (j = 1; j <= i__1; ++j) {
00258                     i__2 = *n;
00259                     for (i__ = j; i__ <= i__2; ++i__) {
00260                         i__3 = i__ + j * c_dim1;
00261                         c__[i__3].r = 0., c__[i__3].i = 0.;
00262 /* L50: */
00263                     }
00264 /* L60: */
00265                 }
00266             } else {
00267                 i__1 = *n;
00268                 for (j = 1; j <= i__1; ++j) {
00269                     i__2 = *n;
00270                     for (i__ = j; i__ <= i__2; ++i__) {
00271                         i__3 = i__ + j * c_dim1;
00272                         i__4 = i__ + j * c_dim1;
00273                         z__1.r = beta->r * c__[i__4].r - beta->i * c__[i__4]
00274                                 .i, z__1.i = beta->r * c__[i__4].i + beta->i *
00275                                  c__[i__4].r;
00276                         c__[i__3].r = z__1.r, c__[i__3].i = z__1.i;
00277 /* L70: */
00278                     }
00279 /* L80: */
00280                 }
00281             }
00282         }
00283         return 0;
00284     }
00285 
00286 /*     Start the operations. */
00287 
00288     if (lsame_(trans, "N")) {
00289 
00290 /*        Form  C := alpha*A*B' + alpha*B*A' + C. */
00291 
00292         if (upper) {
00293             i__1 = *n;
00294             for (j = 1; j <= i__1; ++j) {
00295                 if (beta->r == 0. && beta->i == 0.) {
00296                     i__2 = j;
00297                     for (i__ = 1; i__ <= i__2; ++i__) {
00298                         i__3 = i__ + j * c_dim1;
00299                         c__[i__3].r = 0., c__[i__3].i = 0.;
00300 /* L90: */
00301                     }
00302                 } else if (beta->r != 1. || beta->i != 0.) {
00303                     i__2 = j;
00304                     for (i__ = 1; i__ <= i__2; ++i__) {
00305                         i__3 = i__ + j * c_dim1;
00306                         i__4 = i__ + j * c_dim1;
00307                         z__1.r = beta->r * c__[i__4].r - beta->i * c__[i__4]
00308                                 .i, z__1.i = beta->r * c__[i__4].i + beta->i *
00309                                  c__[i__4].r;
00310                         c__[i__3].r = z__1.r, c__[i__3].i = z__1.i;
00311 /* L100: */
00312                     }
00313                 }
00314                 i__2 = *k;
00315                 for (l = 1; l <= i__2; ++l) {
00316                     i__3 = j + l * a_dim1;
00317                     i__4 = j + l * b_dim1;
00318                     if (a[i__3].r != 0. || a[i__3].i != 0. || (b[i__4].r != 
00319                             0. || b[i__4].i != 0.)) {
00320                         i__3 = j + l * b_dim1;
00321                         z__1.r = alpha->r * b[i__3].r - alpha->i * b[i__3].i, 
00322                                 z__1.i = alpha->r * b[i__3].i + alpha->i * b[
00323                                 i__3].r;
00324                         temp1.r = z__1.r, temp1.i = z__1.i;
00325                         i__3 = j + l * a_dim1;
00326                         z__1.r = alpha->r * a[i__3].r - alpha->i * a[i__3].i, 
00327                                 z__1.i = alpha->r * a[i__3].i + alpha->i * a[
00328                                 i__3].r;
00329                         temp2.r = z__1.r, temp2.i = z__1.i;
00330                         i__3 = j;
00331                         for (i__ = 1; i__ <= i__3; ++i__) {
00332                             i__4 = i__ + j * c_dim1;
00333                             i__5 = i__ + j * c_dim1;
00334                             i__6 = i__ + l * a_dim1;
00335                             z__3.r = a[i__6].r * temp1.r - a[i__6].i * 
00336                                     temp1.i, z__3.i = a[i__6].r * temp1.i + a[
00337                                     i__6].i * temp1.r;
00338                             z__2.r = c__[i__5].r + z__3.r, z__2.i = c__[i__5]
00339                                     .i + z__3.i;
00340                             i__7 = i__ + l * b_dim1;
00341                             z__4.r = b[i__7].r * temp2.r - b[i__7].i * 
00342                                     temp2.i, z__4.i = b[i__7].r * temp2.i + b[
00343                                     i__7].i * temp2.r;
00344                             z__1.r = z__2.r + z__4.r, z__1.i = z__2.i + 
00345                                     z__4.i;
00346                             c__[i__4].r = z__1.r, c__[i__4].i = z__1.i;
00347 /* L110: */
00348                         }
00349                     }
00350 /* L120: */
00351                 }
00352 /* L130: */
00353             }
00354         } else {
00355             i__1 = *n;
00356             for (j = 1; j <= i__1; ++j) {
00357                 if (beta->r == 0. && beta->i == 0.) {
00358                     i__2 = *n;
00359                     for (i__ = j; i__ <= i__2; ++i__) {
00360                         i__3 = i__ + j * c_dim1;
00361                         c__[i__3].r = 0., c__[i__3].i = 0.;
00362 /* L140: */
00363                     }
00364                 } else if (beta->r != 1. || beta->i != 0.) {
00365                     i__2 = *n;
00366                     for (i__ = j; i__ <= i__2; ++i__) {
00367                         i__3 = i__ + j * c_dim1;
00368                         i__4 = i__ + j * c_dim1;
00369                         z__1.r = beta->r * c__[i__4].r - beta->i * c__[i__4]
00370                                 .i, z__1.i = beta->r * c__[i__4].i + beta->i *
00371                                  c__[i__4].r;
00372                         c__[i__3].r = z__1.r, c__[i__3].i = z__1.i;
00373 /* L150: */
00374                     }
00375                 }
00376                 i__2 = *k;
00377                 for (l = 1; l <= i__2; ++l) {
00378                     i__3 = j + l * a_dim1;
00379                     i__4 = j + l * b_dim1;
00380                     if (a[i__3].r != 0. || a[i__3].i != 0. || (b[i__4].r != 
00381                             0. || b[i__4].i != 0.)) {
00382                         i__3 = j + l * b_dim1;
00383                         z__1.r = alpha->r * b[i__3].r - alpha->i * b[i__3].i, 
00384                                 z__1.i = alpha->r * b[i__3].i + alpha->i * b[
00385                                 i__3].r;
00386                         temp1.r = z__1.r, temp1.i = z__1.i;
00387                         i__3 = j + l * a_dim1;
00388                         z__1.r = alpha->r * a[i__3].r - alpha->i * a[i__3].i, 
00389                                 z__1.i = alpha->r * a[i__3].i + alpha->i * a[
00390                                 i__3].r;
00391                         temp2.r = z__1.r, temp2.i = z__1.i;
00392                         i__3 = *n;
00393                         for (i__ = j; i__ <= i__3; ++i__) {
00394                             i__4 = i__ + j * c_dim1;
00395                             i__5 = i__ + j * c_dim1;
00396                             i__6 = i__ + l * a_dim1;
00397                             z__3.r = a[i__6].r * temp1.r - a[i__6].i * 
00398                                     temp1.i, z__3.i = a[i__6].r * temp1.i + a[
00399                                     i__6].i * temp1.r;
00400                             z__2.r = c__[i__5].r + z__3.r, z__2.i = c__[i__5]
00401                                     .i + z__3.i;
00402                             i__7 = i__ + l * b_dim1;
00403                             z__4.r = b[i__7].r * temp2.r - b[i__7].i * 
00404                                     temp2.i, z__4.i = b[i__7].r * temp2.i + b[
00405                                     i__7].i * temp2.r;
00406                             z__1.r = z__2.r + z__4.r, z__1.i = z__2.i + 
00407                                     z__4.i;
00408                             c__[i__4].r = z__1.r, c__[i__4].i = z__1.i;
00409 /* L160: */
00410                         }
00411                     }
00412 /* L170: */
00413                 }
00414 /* L180: */
00415             }
00416         }
00417     } else {
00418 
00419 /*        Form  C := alpha*A'*B + alpha*B'*A + C. */
00420 
00421         if (upper) {
00422             i__1 = *n;
00423             for (j = 1; j <= i__1; ++j) {
00424                 i__2 = j;
00425                 for (i__ = 1; i__ <= i__2; ++i__) {
00426                     temp1.r = 0., temp1.i = 0.;
00427                     temp2.r = 0., temp2.i = 0.;
00428                     i__3 = *k;
00429                     for (l = 1; l <= i__3; ++l) {
00430                         i__4 = l + i__ * a_dim1;
00431                         i__5 = l + j * b_dim1;
00432                         z__2.r = a[i__4].r * b[i__5].r - a[i__4].i * b[i__5]
00433                                 .i, z__2.i = a[i__4].r * b[i__5].i + a[i__4]
00434                                 .i * b[i__5].r;
00435                         z__1.r = temp1.r + z__2.r, z__1.i = temp1.i + z__2.i;
00436                         temp1.r = z__1.r, temp1.i = z__1.i;
00437                         i__4 = l + i__ * b_dim1;
00438                         i__5 = l + j * a_dim1;
00439                         z__2.r = b[i__4].r * a[i__5].r - b[i__4].i * a[i__5]
00440                                 .i, z__2.i = b[i__4].r * a[i__5].i + b[i__4]
00441                                 .i * a[i__5].r;
00442                         z__1.r = temp2.r + z__2.r, z__1.i = temp2.i + z__2.i;
00443                         temp2.r = z__1.r, temp2.i = z__1.i;
00444 /* L190: */
00445                     }
00446                     if (beta->r == 0. && beta->i == 0.) {
00447                         i__3 = i__ + j * c_dim1;
00448                         z__2.r = alpha->r * temp1.r - alpha->i * temp1.i, 
00449                                 z__2.i = alpha->r * temp1.i + alpha->i * 
00450                                 temp1.r;
00451                         z__3.r = alpha->r * temp2.r - alpha->i * temp2.i, 
00452                                 z__3.i = alpha->r * temp2.i + alpha->i * 
00453                                 temp2.r;
00454                         z__1.r = z__2.r + z__3.r, z__1.i = z__2.i + z__3.i;
00455                         c__[i__3].r = z__1.r, c__[i__3].i = z__1.i;
00456                     } else {
00457                         i__3 = i__ + j * c_dim1;
00458                         i__4 = i__ + j * c_dim1;
00459                         z__3.r = beta->r * c__[i__4].r - beta->i * c__[i__4]
00460                                 .i, z__3.i = beta->r * c__[i__4].i + beta->i *
00461                                  c__[i__4].r;
00462                         z__4.r = alpha->r * temp1.r - alpha->i * temp1.i, 
00463                                 z__4.i = alpha->r * temp1.i + alpha->i * 
00464                                 temp1.r;
00465                         z__2.r = z__3.r + z__4.r, z__2.i = z__3.i + z__4.i;
00466                         z__5.r = alpha->r * temp2.r - alpha->i * temp2.i, 
00467                                 z__5.i = alpha->r * temp2.i + alpha->i * 
00468                                 temp2.r;
00469                         z__1.r = z__2.r + z__5.r, z__1.i = z__2.i + z__5.i;
00470                         c__[i__3].r = z__1.r, c__[i__3].i = z__1.i;
00471                     }
00472 /* L200: */
00473                 }
00474 /* L210: */
00475             }
00476         } else {
00477             i__1 = *n;
00478             for (j = 1; j <= i__1; ++j) {
00479                 i__2 = *n;
00480                 for (i__ = j; i__ <= i__2; ++i__) {
00481                     temp1.r = 0., temp1.i = 0.;
00482                     temp2.r = 0., temp2.i = 0.;
00483                     i__3 = *k;
00484                     for (l = 1; l <= i__3; ++l) {
00485                         i__4 = l + i__ * a_dim1;
00486                         i__5 = l + j * b_dim1;
00487                         z__2.r = a[i__4].r * b[i__5].r - a[i__4].i * b[i__5]
00488                                 .i, z__2.i = a[i__4].r * b[i__5].i + a[i__4]
00489                                 .i * b[i__5].r;
00490                         z__1.r = temp1.r + z__2.r, z__1.i = temp1.i + z__2.i;
00491                         temp1.r = z__1.r, temp1.i = z__1.i;
00492                         i__4 = l + i__ * b_dim1;
00493                         i__5 = l + j * a_dim1;
00494                         z__2.r = b[i__4].r * a[i__5].r - b[i__4].i * a[i__5]
00495                                 .i, z__2.i = b[i__4].r * a[i__5].i + b[i__4]
00496                                 .i * a[i__5].r;
00497                         z__1.r = temp2.r + z__2.r, z__1.i = temp2.i + z__2.i;
00498                         temp2.r = z__1.r, temp2.i = z__1.i;
00499 /* L220: */
00500                     }
00501                     if (beta->r == 0. && beta->i == 0.) {
00502                         i__3 = i__ + j * c_dim1;
00503                         z__2.r = alpha->r * temp1.r - alpha->i * temp1.i, 
00504                                 z__2.i = alpha->r * temp1.i + alpha->i * 
00505                                 temp1.r;
00506                         z__3.r = alpha->r * temp2.r - alpha->i * temp2.i, 
00507                                 z__3.i = alpha->r * temp2.i + alpha->i * 
00508                                 temp2.r;
00509                         z__1.r = z__2.r + z__3.r, z__1.i = z__2.i + z__3.i;
00510                         c__[i__3].r = z__1.r, c__[i__3].i = z__1.i;
00511                     } else {
00512                         i__3 = i__ + j * c_dim1;
00513                         i__4 = i__ + j * c_dim1;
00514                         z__3.r = beta->r * c__[i__4].r - beta->i * c__[i__4]
00515                                 .i, z__3.i = beta->r * c__[i__4].i + beta->i *
00516                                  c__[i__4].r;
00517                         z__4.r = alpha->r * temp1.r - alpha->i * temp1.i, 
00518                                 z__4.i = alpha->r * temp1.i + alpha->i * 
00519                                 temp1.r;
00520                         z__2.r = z__3.r + z__4.r, z__2.i = z__3.i + z__4.i;
00521                         z__5.r = alpha->r * temp2.r - alpha->i * temp2.i, 
00522                                 z__5.i = alpha->r * temp2.i + alpha->i * 
00523                                 temp2.r;
00524                         z__1.r = z__2.r + z__5.r, z__1.i = z__2.i + z__5.i;
00525                         c__[i__3].r = z__1.r, c__[i__3].i = z__1.i;
00526                     }
00527 /* L230: */
00528                 }
00529 /* L240: */
00530             }
00531         }
00532     }
00533 
00534     return 0;
00535 
00536 /*     End of ZSYR2K. */
00537 
00538 } /* zsyr2k_ */


swiftnav
Author(s):
autogenerated on Sat Jun 8 2019 18:56:43