00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include "f2c.h"
00014 #include "blaswrap.h"
00015
00016
00017
00018 static complex c_b1 = {1.f,0.f};
00019 static complex c_b3 = {0.f,0.f};
00020 static complex c_b5 = {20.f,0.f};
00021
00022 int clatm5_(integer *prtype, integer *m, integer *n, complex
00023 *a, integer *lda, complex *b, integer *ldb, complex *c__, integer *
00024 ldc, complex *d__, integer *ldd, complex *e, integer *lde, complex *f,
00025 integer *ldf, complex *r__, integer *ldr, complex *l, integer *ldl,
00026 real *alpha, integer *qblcka, integer *qblckb)
00027 {
00028
00029 integer a_dim1, a_offset, b_dim1, b_offset, c_dim1, c_offset, d_dim1,
00030 d_offset, e_dim1, e_offset, f_dim1, f_offset, l_dim1, l_offset,
00031 r_dim1, r_offset, i__1, i__2, i__3, i__4;
00032 doublereal d__1;
00033 complex q__1, q__2, q__3, q__4, q__5;
00034
00035
00036 void c_sin(complex *, complex *), c_div(complex *, complex *, complex *);
00037
00038
00039 integer i__, j, k;
00040 extern int cgemm_(char *, char *, integer *, integer *,
00041 integer *, complex *, complex *, integer *, complex *, integer *,
00042 complex *, complex *, integer *);
00043 complex imeps, reeps;
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224 a_dim1 = *lda;
00225 a_offset = 1 + a_dim1;
00226 a -= a_offset;
00227 b_dim1 = *ldb;
00228 b_offset = 1 + b_dim1;
00229 b -= b_offset;
00230 c_dim1 = *ldc;
00231 c_offset = 1 + c_dim1;
00232 c__ -= c_offset;
00233 d_dim1 = *ldd;
00234 d_offset = 1 + d_dim1;
00235 d__ -= d_offset;
00236 e_dim1 = *lde;
00237 e_offset = 1 + e_dim1;
00238 e -= e_offset;
00239 f_dim1 = *ldf;
00240 f_offset = 1 + f_dim1;
00241 f -= f_offset;
00242 r_dim1 = *ldr;
00243 r_offset = 1 + r_dim1;
00244 r__ -= r_offset;
00245 l_dim1 = *ldl;
00246 l_offset = 1 + l_dim1;
00247 l -= l_offset;
00248
00249
00250 if (*prtype == 1) {
00251 i__1 = *m;
00252 for (i__ = 1; i__ <= i__1; ++i__) {
00253 i__2 = *m;
00254 for (j = 1; j <= i__2; ++j) {
00255 if (i__ == j) {
00256 i__3 = i__ + j * a_dim1;
00257 a[i__3].r = 1.f, a[i__3].i = 0.f;
00258 i__3 = i__ + j * d_dim1;
00259 d__[i__3].r = 1.f, d__[i__3].i = 0.f;
00260 } else if (i__ == j - 1) {
00261 i__3 = i__ + j * a_dim1;
00262 q__1.r = -1.f, q__1.i = -0.f;
00263 a[i__3].r = q__1.r, a[i__3].i = q__1.i;
00264 i__3 = i__ + j * d_dim1;
00265 d__[i__3].r = 0.f, d__[i__3].i = 0.f;
00266 } else {
00267 i__3 = i__ + j * a_dim1;
00268 a[i__3].r = 0.f, a[i__3].i = 0.f;
00269 i__3 = i__ + j * d_dim1;
00270 d__[i__3].r = 0.f, d__[i__3].i = 0.f;
00271 }
00272
00273 }
00274
00275 }
00276
00277 i__1 = *n;
00278 for (i__ = 1; i__ <= i__1; ++i__) {
00279 i__2 = *n;
00280 for (j = 1; j <= i__2; ++j) {
00281 if (i__ == j) {
00282 i__3 = i__ + j * b_dim1;
00283 q__1.r = 1.f - *alpha, q__1.i = 0.f;
00284 b[i__3].r = q__1.r, b[i__3].i = q__1.i;
00285 i__3 = i__ + j * e_dim1;
00286 e[i__3].r = 1.f, e[i__3].i = 0.f;
00287 } else if (i__ == j - 1) {
00288 i__3 = i__ + j * b_dim1;
00289 b[i__3].r = 1.f, b[i__3].i = 0.f;
00290 i__3 = i__ + j * e_dim1;
00291 e[i__3].r = 0.f, e[i__3].i = 0.f;
00292 } else {
00293 i__3 = i__ + j * b_dim1;
00294 b[i__3].r = 0.f, b[i__3].i = 0.f;
00295 i__3 = i__ + j * e_dim1;
00296 e[i__3].r = 0.f, e[i__3].i = 0.f;
00297 }
00298
00299 }
00300
00301 }
00302
00303 i__1 = *m;
00304 for (i__ = 1; i__ <= i__1; ++i__) {
00305 i__2 = *n;
00306 for (j = 1; j <= i__2; ++j) {
00307 i__3 = i__ + j * r_dim1;
00308 i__4 = i__ / j;
00309 q__4.r = (real) i__4, q__4.i = 0.f;
00310 c_sin(&q__3, &q__4);
00311 q__2.r = .5f - q__3.r, q__2.i = 0.f - q__3.i;
00312 q__1.r = q__2.r * 20.f - q__2.i * 0.f, q__1.i = q__2.r * 0.f
00313 + q__2.i * 20.f;
00314 r__[i__3].r = q__1.r, r__[i__3].i = q__1.i;
00315 i__3 = i__ + j * l_dim1;
00316 i__4 = i__ + j * r_dim1;
00317 l[i__3].r = r__[i__4].r, l[i__3].i = r__[i__4].i;
00318
00319 }
00320
00321 }
00322
00323 } else if (*prtype == 2 || *prtype == 3) {
00324 i__1 = *m;
00325 for (i__ = 1; i__ <= i__1; ++i__) {
00326 i__2 = *m;
00327 for (j = 1; j <= i__2; ++j) {
00328 if (i__ <= j) {
00329 i__3 = i__ + j * a_dim1;
00330 q__4.r = (real) i__, q__4.i = 0.f;
00331 c_sin(&q__3, &q__4);
00332 q__2.r = .5f - q__3.r, q__2.i = 0.f - q__3.i;
00333 q__1.r = q__2.r * 2.f - q__2.i * 0.f, q__1.i = q__2.r *
00334 0.f + q__2.i * 2.f;
00335 a[i__3].r = q__1.r, a[i__3].i = q__1.i;
00336 i__3 = i__ + j * d_dim1;
00337 i__4 = i__ * j;
00338 q__4.r = (real) i__4, q__4.i = 0.f;
00339 c_sin(&q__3, &q__4);
00340 q__2.r = .5f - q__3.r, q__2.i = 0.f - q__3.i;
00341 q__1.r = q__2.r * 2.f - q__2.i * 0.f, q__1.i = q__2.r *
00342 0.f + q__2.i * 2.f;
00343 d__[i__3].r = q__1.r, d__[i__3].i = q__1.i;
00344 } else {
00345 i__3 = i__ + j * a_dim1;
00346 a[i__3].r = 0.f, a[i__3].i = 0.f;
00347 i__3 = i__ + j * d_dim1;
00348 d__[i__3].r = 0.f, d__[i__3].i = 0.f;
00349 }
00350
00351 }
00352
00353 }
00354
00355 i__1 = *n;
00356 for (i__ = 1; i__ <= i__1; ++i__) {
00357 i__2 = *n;
00358 for (j = 1; j <= i__2; ++j) {
00359 if (i__ <= j) {
00360 i__3 = i__ + j * b_dim1;
00361 i__4 = i__ + j;
00362 q__4.r = (real) i__4, q__4.i = 0.f;
00363 c_sin(&q__3, &q__4);
00364 q__2.r = .5f - q__3.r, q__2.i = 0.f - q__3.i;
00365 q__1.r = q__2.r * 2.f - q__2.i * 0.f, q__1.i = q__2.r *
00366 0.f + q__2.i * 2.f;
00367 b[i__3].r = q__1.r, b[i__3].i = q__1.i;
00368 i__3 = i__ + j * e_dim1;
00369 q__4.r = (real) j, q__4.i = 0.f;
00370 c_sin(&q__3, &q__4);
00371 q__2.r = .5f - q__3.r, q__2.i = 0.f - q__3.i;
00372 q__1.r = q__2.r * 2.f - q__2.i * 0.f, q__1.i = q__2.r *
00373 0.f + q__2.i * 2.f;
00374 e[i__3].r = q__1.r, e[i__3].i = q__1.i;
00375 } else {
00376 i__3 = i__ + j * b_dim1;
00377 b[i__3].r = 0.f, b[i__3].i = 0.f;
00378 i__3 = i__ + j * e_dim1;
00379 e[i__3].r = 0.f, e[i__3].i = 0.f;
00380 }
00381
00382 }
00383
00384 }
00385
00386 i__1 = *m;
00387 for (i__ = 1; i__ <= i__1; ++i__) {
00388 i__2 = *n;
00389 for (j = 1; j <= i__2; ++j) {
00390 i__3 = i__ + j * r_dim1;
00391 i__4 = i__ * j;
00392 q__4.r = (real) i__4, q__4.i = 0.f;
00393 c_sin(&q__3, &q__4);
00394 q__2.r = .5f - q__3.r, q__2.i = 0.f - q__3.i;
00395 q__1.r = q__2.r * 20.f - q__2.i * 0.f, q__1.i = q__2.r * 0.f
00396 + q__2.i * 20.f;
00397 r__[i__3].r = q__1.r, r__[i__3].i = q__1.i;
00398 i__3 = i__ + j * l_dim1;
00399 i__4 = i__ + j;
00400 q__4.r = (real) i__4, q__4.i = 0.f;
00401 c_sin(&q__3, &q__4);
00402 q__2.r = .5f - q__3.r, q__2.i = 0.f - q__3.i;
00403 q__1.r = q__2.r * 20.f - q__2.i * 0.f, q__1.i = q__2.r * 0.f
00404 + q__2.i * 20.f;
00405 l[i__3].r = q__1.r, l[i__3].i = q__1.i;
00406
00407 }
00408
00409 }
00410
00411 if (*prtype == 3) {
00412 if (*qblcka <= 1) {
00413 *qblcka = 2;
00414 }
00415 i__1 = *m - 1;
00416 i__2 = *qblcka;
00417 for (k = 1; i__2 < 0 ? k >= i__1 : k <= i__1; k += i__2) {
00418 i__3 = k + 1 + (k + 1) * a_dim1;
00419 i__4 = k + k * a_dim1;
00420 a[i__3].r = a[i__4].r, a[i__3].i = a[i__4].i;
00421 i__3 = k + 1 + k * a_dim1;
00422 c_sin(&q__2, &a[k + (k + 1) * a_dim1]);
00423 q__1.r = -q__2.r, q__1.i = -q__2.i;
00424 a[i__3].r = q__1.r, a[i__3].i = q__1.i;
00425
00426 }
00427
00428 if (*qblckb <= 1) {
00429 *qblckb = 2;
00430 }
00431 i__2 = *n - 1;
00432 i__1 = *qblckb;
00433 for (k = 1; i__1 < 0 ? k >= i__2 : k <= i__2; k += i__1) {
00434 i__3 = k + 1 + (k + 1) * b_dim1;
00435 i__4 = k + k * b_dim1;
00436 b[i__3].r = b[i__4].r, b[i__3].i = b[i__4].i;
00437 i__3 = k + 1 + k * b_dim1;
00438 c_sin(&q__2, &b[k + (k + 1) * b_dim1]);
00439 q__1.r = -q__2.r, q__1.i = -q__2.i;
00440 b[i__3].r = q__1.r, b[i__3].i = q__1.i;
00441
00442 }
00443 }
00444
00445 } else if (*prtype == 4) {
00446 i__1 = *m;
00447 for (i__ = 1; i__ <= i__1; ++i__) {
00448 i__2 = *m;
00449 for (j = 1; j <= i__2; ++j) {
00450 i__3 = i__ + j * a_dim1;
00451 i__4 = i__ * j;
00452 q__4.r = (real) i__4, q__4.i = 0.f;
00453 c_sin(&q__3, &q__4);
00454 q__2.r = .5f - q__3.r, q__2.i = 0.f - q__3.i;
00455 q__1.r = q__2.r * 20.f - q__2.i * 0.f, q__1.i = q__2.r * 0.f
00456 + q__2.i * 20.f;
00457 a[i__3].r = q__1.r, a[i__3].i = q__1.i;
00458 i__3 = i__ + j * d_dim1;
00459 i__4 = i__ + j;
00460 q__4.r = (real) i__4, q__4.i = 0.f;
00461 c_sin(&q__3, &q__4);
00462 q__2.r = .5f - q__3.r, q__2.i = 0.f - q__3.i;
00463 q__1.r = q__2.r * 2.f - q__2.i * 0.f, q__1.i = q__2.r * 0.f +
00464 q__2.i * 2.f;
00465 d__[i__3].r = q__1.r, d__[i__3].i = q__1.i;
00466
00467 }
00468
00469 }
00470
00471 i__1 = *n;
00472 for (i__ = 1; i__ <= i__1; ++i__) {
00473 i__2 = *n;
00474 for (j = 1; j <= i__2; ++j) {
00475 i__3 = i__ + j * b_dim1;
00476 i__4 = i__ + j;
00477 q__4.r = (real) i__4, q__4.i = 0.f;
00478 c_sin(&q__3, &q__4);
00479 q__2.r = .5f - q__3.r, q__2.i = 0.f - q__3.i;
00480 q__1.r = q__2.r * 20.f - q__2.i * 0.f, q__1.i = q__2.r * 0.f
00481 + q__2.i * 20.f;
00482 b[i__3].r = q__1.r, b[i__3].i = q__1.i;
00483 i__3 = i__ + j * e_dim1;
00484 i__4 = i__ * j;
00485 q__4.r = (real) i__4, q__4.i = 0.f;
00486 c_sin(&q__3, &q__4);
00487 q__2.r = .5f - q__3.r, q__2.i = 0.f - q__3.i;
00488 q__1.r = q__2.r * 2.f - q__2.i * 0.f, q__1.i = q__2.r * 0.f +
00489 q__2.i * 2.f;
00490 e[i__3].r = q__1.r, e[i__3].i = q__1.i;
00491
00492 }
00493
00494 }
00495
00496 i__1 = *m;
00497 for (i__ = 1; i__ <= i__1; ++i__) {
00498 i__2 = *n;
00499 for (j = 1; j <= i__2; ++j) {
00500 i__3 = i__ + j * r_dim1;
00501 i__4 = j / i__;
00502 q__4.r = (real) i__4, q__4.i = 0.f;
00503 c_sin(&q__3, &q__4);
00504 q__2.r = .5f - q__3.r, q__2.i = 0.f - q__3.i;
00505 q__1.r = q__2.r * 20.f - q__2.i * 0.f, q__1.i = q__2.r * 0.f
00506 + q__2.i * 20.f;
00507 r__[i__3].r = q__1.r, r__[i__3].i = q__1.i;
00508 i__3 = i__ + j * l_dim1;
00509 i__4 = i__ * j;
00510 q__4.r = (real) i__4, q__4.i = 0.f;
00511 c_sin(&q__3, &q__4);
00512 q__2.r = .5f - q__3.r, q__2.i = 0.f - q__3.i;
00513 q__1.r = q__2.r * 2.f - q__2.i * 0.f, q__1.i = q__2.r * 0.f +
00514 q__2.i * 2.f;
00515 l[i__3].r = q__1.r, l[i__3].i = q__1.i;
00516
00517 }
00518
00519 }
00520
00521 } else if (*prtype >= 5) {
00522 q__3.r = 1.f, q__3.i = 0.f;
00523 q__2.r = q__3.r * 20.f - q__3.i * 0.f, q__2.i = q__3.r * 0.f + q__3.i
00524 * 20.f;
00525 q__1.r = q__2.r / *alpha, q__1.i = q__2.i / *alpha;
00526 reeps.r = q__1.r, reeps.i = q__1.i;
00527 q__2.r = -1.5f, q__2.i = 0.f;
00528 q__1.r = q__2.r / *alpha, q__1.i = q__2.i / *alpha;
00529 imeps.r = q__1.r, imeps.i = q__1.i;
00530 i__1 = *m;
00531 for (i__ = 1; i__ <= i__1; ++i__) {
00532 i__2 = *n;
00533 for (j = 1; j <= i__2; ++j) {
00534 i__3 = i__ + j * r_dim1;
00535 i__4 = i__ * j;
00536 q__5.r = (real) i__4, q__5.i = 0.f;
00537 c_sin(&q__4, &q__5);
00538 q__3.r = .5f - q__4.r, q__3.i = 0.f - q__4.i;
00539 q__2.r = *alpha * q__3.r, q__2.i = *alpha * q__3.i;
00540 c_div(&q__1, &q__2, &c_b5);
00541 r__[i__3].r = q__1.r, r__[i__3].i = q__1.i;
00542 i__3 = i__ + j * l_dim1;
00543 i__4 = i__ + j;
00544 q__5.r = (real) i__4, q__5.i = 0.f;
00545 c_sin(&q__4, &q__5);
00546 q__3.r = .5f - q__4.r, q__3.i = 0.f - q__4.i;
00547 q__2.r = *alpha * q__3.r, q__2.i = *alpha * q__3.i;
00548 c_div(&q__1, &q__2, &c_b5);
00549 l[i__3].r = q__1.r, l[i__3].i = q__1.i;
00550
00551 }
00552
00553 }
00554
00555 i__1 = *m;
00556 for (i__ = 1; i__ <= i__1; ++i__) {
00557 i__2 = i__ + i__ * d_dim1;
00558 d__[i__2].r = 1.f, d__[i__2].i = 0.f;
00559
00560 }
00561
00562 i__1 = *m;
00563 for (i__ = 1; i__ <= i__1; ++i__) {
00564 if (i__ <= 4) {
00565 i__2 = i__ + i__ * a_dim1;
00566 a[i__2].r = 1.f, a[i__2].i = 0.f;
00567 if (i__ > 2) {
00568 i__2 = i__ + i__ * a_dim1;
00569 q__1.r = reeps.r + 1.f, q__1.i = reeps.i + 0.f;
00570 a[i__2].r = q__1.r, a[i__2].i = q__1.i;
00571 }
00572 if (i__ % 2 != 0 && i__ < *m) {
00573 i__2 = i__ + (i__ + 1) * a_dim1;
00574 a[i__2].r = imeps.r, a[i__2].i = imeps.i;
00575 } else if (i__ > 1) {
00576 i__2 = i__ + (i__ - 1) * a_dim1;
00577 q__1.r = -imeps.r, q__1.i = -imeps.i;
00578 a[i__2].r = q__1.r, a[i__2].i = q__1.i;
00579 }
00580 } else if (i__ <= 8) {
00581 if (i__ <= 6) {
00582 i__2 = i__ + i__ * a_dim1;
00583 a[i__2].r = reeps.r, a[i__2].i = reeps.i;
00584 } else {
00585 i__2 = i__ + i__ * a_dim1;
00586 q__1.r = -reeps.r, q__1.i = -reeps.i;
00587 a[i__2].r = q__1.r, a[i__2].i = q__1.i;
00588 }
00589 if (i__ % 2 != 0 && i__ < *m) {
00590 i__2 = i__ + (i__ + 1) * a_dim1;
00591 a[i__2].r = 1.f, a[i__2].i = 0.f;
00592 } else if (i__ > 1) {
00593 i__2 = i__ + (i__ - 1) * a_dim1;
00594 q__1.r = -1.f, q__1.i = -0.f;
00595 a[i__2].r = q__1.r, a[i__2].i = q__1.i;
00596 }
00597 } else {
00598 i__2 = i__ + i__ * a_dim1;
00599 a[i__2].r = 1.f, a[i__2].i = 0.f;
00600 if (i__ % 2 != 0 && i__ < *m) {
00601 i__2 = i__ + (i__ + 1) * a_dim1;
00602 d__1 = 2.;
00603 q__1.r = d__1 * imeps.r, q__1.i = d__1 * imeps.i;
00604 a[i__2].r = q__1.r, a[i__2].i = q__1.i;
00605 } else if (i__ > 1) {
00606 i__2 = i__ + (i__ - 1) * a_dim1;
00607 q__2.r = -imeps.r, q__2.i = -imeps.i;
00608 d__1 = 2.;
00609 q__1.r = d__1 * q__2.r, q__1.i = d__1 * q__2.i;
00610 a[i__2].r = q__1.r, a[i__2].i = q__1.i;
00611 }
00612 }
00613
00614 }
00615
00616 i__1 = *n;
00617 for (i__ = 1; i__ <= i__1; ++i__) {
00618 i__2 = i__ + i__ * e_dim1;
00619 e[i__2].r = 1.f, e[i__2].i = 0.f;
00620 if (i__ <= 4) {
00621 i__2 = i__ + i__ * b_dim1;
00622 q__1.r = -1.f, q__1.i = -0.f;
00623 b[i__2].r = q__1.r, b[i__2].i = q__1.i;
00624 if (i__ > 2) {
00625 i__2 = i__ + i__ * b_dim1;
00626 q__1.r = 1.f - reeps.r, q__1.i = 0.f - reeps.i;
00627 b[i__2].r = q__1.r, b[i__2].i = q__1.i;
00628 }
00629 if (i__ % 2 != 0 && i__ < *n) {
00630 i__2 = i__ + (i__ + 1) * b_dim1;
00631 b[i__2].r = imeps.r, b[i__2].i = imeps.i;
00632 } else if (i__ > 1) {
00633 i__2 = i__ + (i__ - 1) * b_dim1;
00634 q__1.r = -imeps.r, q__1.i = -imeps.i;
00635 b[i__2].r = q__1.r, b[i__2].i = q__1.i;
00636 }
00637 } else if (i__ <= 8) {
00638 if (i__ <= 6) {
00639 i__2 = i__ + i__ * b_dim1;
00640 b[i__2].r = reeps.r, b[i__2].i = reeps.i;
00641 } else {
00642 i__2 = i__ + i__ * b_dim1;
00643 q__1.r = -reeps.r, q__1.i = -reeps.i;
00644 b[i__2].r = q__1.r, b[i__2].i = q__1.i;
00645 }
00646 if (i__ % 2 != 0 && i__ < *n) {
00647 i__2 = i__ + (i__ + 1) * b_dim1;
00648 q__1.r = imeps.r + 1.f, q__1.i = imeps.i + 0.f;
00649 b[i__2].r = q__1.r, b[i__2].i = q__1.i;
00650 } else if (i__ > 1) {
00651 i__2 = i__ + (i__ - 1) * b_dim1;
00652 q__2.r = -1.f, q__2.i = -0.f;
00653 q__1.r = q__2.r - imeps.r, q__1.i = q__2.i - imeps.i;
00654 b[i__2].r = q__1.r, b[i__2].i = q__1.i;
00655 }
00656 } else {
00657 i__2 = i__ + i__ * b_dim1;
00658 q__1.r = 1.f - reeps.r, q__1.i = 0.f - reeps.i;
00659 b[i__2].r = q__1.r, b[i__2].i = q__1.i;
00660 if (i__ % 2 != 0 && i__ < *n) {
00661 i__2 = i__ + (i__ + 1) * b_dim1;
00662 d__1 = 2.;
00663 q__1.r = d__1 * imeps.r, q__1.i = d__1 * imeps.i;
00664 b[i__2].r = q__1.r, b[i__2].i = q__1.i;
00665 } else if (i__ > 1) {
00666 i__2 = i__ + (i__ - 1) * b_dim1;
00667 q__2.r = -imeps.r, q__2.i = -imeps.i;
00668 d__1 = 2.;
00669 q__1.r = d__1 * q__2.r, q__1.i = d__1 * q__2.i;
00670 b[i__2].r = q__1.r, b[i__2].i = q__1.i;
00671 }
00672 }
00673
00674 }
00675 }
00676
00677
00678
00679 cgemm_("N", "N", m, n, m, &c_b1, &a[a_offset], lda, &r__[r_offset], ldr, &
00680 c_b3, &c__[c_offset], ldc);
00681 q__1.r = -1.f, q__1.i = -0.f;
00682 cgemm_("N", "N", m, n, n, &q__1, &l[l_offset], ldl, &b[b_offset], ldb, &
00683 c_b1, &c__[c_offset], ldc);
00684 cgemm_("N", "N", m, n, m, &c_b1, &d__[d_offset], ldd, &r__[r_offset], ldr,
00685 &c_b3, &f[f_offset], ldf);
00686 q__1.r = -1.f, q__1.i = -0.f;
00687 cgemm_("N", "N", m, n, n, &q__1, &l[l_offset], ldl, &e[e_offset], lde, &
00688 c_b1, &f[f_offset], ldf);
00689
00690
00691
00692 return 0;
00693 }