📄 zlarfx.c
字号:
/*< V5 = DCONJG( V( 5 ) ) >*/
d_cnjg(&z__1, &v[5]);
v5.r = z__1.r, v5.i = z__1.i;
/*< T5 = TAU*DCONJG( V5 ) >*/
d_cnjg(&z__2, &v5);
z__1.r = tau->r * z__2.r - tau->i * z__2.i, z__1.i = tau->r * z__2.i
+ tau->i * z__2.r;
t5.r = z__1.r, t5.i = z__1.i;
/*< V6 = DCONJG( V( 6 ) ) >*/
d_cnjg(&z__1, &v[6]);
v6.r = z__1.r, v6.i = z__1.i;
/*< T6 = TAU*DCONJG( V6 ) >*/
d_cnjg(&z__2, &v6);
z__1.r = tau->r * z__2.r - tau->i * z__2.i, z__1.i = tau->r * z__2.i
+ tau->i * z__2.r;
t6.r = z__1.r, t6.i = z__1.i;
/*< V7 = DCONJG( V( 7 ) ) >*/
d_cnjg(&z__1, &v[7]);
v7.r = z__1.r, v7.i = z__1.i;
/*< T7 = TAU*DCONJG( V7 ) >*/
d_cnjg(&z__2, &v7);
z__1.r = tau->r * z__2.r - tau->i * z__2.i, z__1.i = tau->r * z__2.i
+ tau->i * z__2.r;
t7.r = z__1.r, t7.i = z__1.i;
/*< V8 = DCONJG( V( 8 ) ) >*/
d_cnjg(&z__1, &v[8]);
v8.r = z__1.r, v8.i = z__1.i;
/*< T8 = TAU*DCONJG( V8 ) >*/
d_cnjg(&z__2, &v8);
z__1.r = tau->r * z__2.r - tau->i * z__2.i, z__1.i = tau->r * z__2.i
+ tau->i * z__2.r;
t8.r = z__1.r, t8.i = z__1.i;
/*< V9 = DCONJG( V( 9 ) ) >*/
d_cnjg(&z__1, &v[9]);
v9.r = z__1.r, v9.i = z__1.i;
/*< T9 = TAU*DCONJG( V9 ) >*/
d_cnjg(&z__2, &v9);
z__1.r = tau->r * z__2.r - tau->i * z__2.i, z__1.i = tau->r * z__2.i
+ tau->i * z__2.r;
t9.r = z__1.r, t9.i = z__1.i;
/*< V10 = DCONJG( V( 10 ) ) >*/
d_cnjg(&z__1, &v[10]);
v10.r = z__1.r, v10.i = z__1.i;
/*< T10 = TAU*DCONJG( V10 ) >*/
d_cnjg(&z__2, &v10);
z__1.r = tau->r * z__2.r - tau->i * z__2.i, z__1.i = tau->r * z__2.i
+ tau->i * z__2.r;
t10.r = z__1.r, t10.i = z__1.i;
/*< DO 200 J = 1, N >*/
i__1 = *n;
for (j = 1; j <= i__1; ++j) {
/*< >*/
i__2 = j * c_dim1 + 1;
z__10.r = v1.r * c__[i__2].r - v1.i * c__[i__2].i, z__10.i = v1.r
* c__[i__2].i + v1.i * c__[i__2].r;
i__3 = j * c_dim1 + 2;
z__11.r = v2.r * c__[i__3].r - v2.i * c__[i__3].i, z__11.i = v2.r
* c__[i__3].i + v2.i * c__[i__3].r;
z__9.r = z__10.r + z__11.r, z__9.i = z__10.i + z__11.i;
i__4 = j * c_dim1 + 3;
z__12.r = v3.r * c__[i__4].r - v3.i * c__[i__4].i, z__12.i = v3.r
* c__[i__4].i + v3.i * c__[i__4].r;
z__8.r = z__9.r + z__12.r, z__8.i = z__9.i + z__12.i;
i__5 = j * c_dim1 + 4;
z__13.r = v4.r * c__[i__5].r - v4.i * c__[i__5].i, z__13.i = v4.r
* c__[i__5].i + v4.i * c__[i__5].r;
z__7.r = z__8.r + z__13.r, z__7.i = z__8.i + z__13.i;
i__6 = j * c_dim1 + 5;
z__14.r = v5.r * c__[i__6].r - v5.i * c__[i__6].i, z__14.i = v5.r
* c__[i__6].i + v5.i * c__[i__6].r;
z__6.r = z__7.r + z__14.r, z__6.i = z__7.i + z__14.i;
i__7 = j * c_dim1 + 6;
z__15.r = v6.r * c__[i__7].r - v6.i * c__[i__7].i, z__15.i = v6.r
* c__[i__7].i + v6.i * c__[i__7].r;
z__5.r = z__6.r + z__15.r, z__5.i = z__6.i + z__15.i;
i__8 = j * c_dim1 + 7;
z__16.r = v7.r * c__[i__8].r - v7.i * c__[i__8].i, z__16.i = v7.r
* c__[i__8].i + v7.i * c__[i__8].r;
z__4.r = z__5.r + z__16.r, z__4.i = z__5.i + z__16.i;
i__9 = j * c_dim1 + 8;
z__17.r = v8.r * c__[i__9].r - v8.i * c__[i__9].i, z__17.i = v8.r
* c__[i__9].i + v8.i * c__[i__9].r;
z__3.r = z__4.r + z__17.r, z__3.i = z__4.i + z__17.i;
i__10 = j * c_dim1 + 9;
z__18.r = v9.r * c__[i__10].r - v9.i * c__[i__10].i, z__18.i =
v9.r * c__[i__10].i + v9.i * c__[i__10].r;
z__2.r = z__3.r + z__18.r, z__2.i = z__3.i + z__18.i;
i__11 = j * c_dim1 + 10;
z__19.r = v10.r * c__[i__11].r - v10.i * c__[i__11].i, z__19.i =
v10.r * c__[i__11].i + v10.i * c__[i__11].r;
z__1.r = z__2.r + z__19.r, z__1.i = z__2.i + z__19.i;
sum.r = z__1.r, sum.i = z__1.i;
/*< C( 1, J ) = C( 1, J ) - SUM*T1 >*/
i__2 = j * c_dim1 + 1;
i__3 = j * c_dim1 + 1;
z__2.r = sum.r * t1.r - sum.i * t1.i, z__2.i = sum.r * t1.i +
sum.i * t1.r;
z__1.r = c__[i__3].r - z__2.r, z__1.i = c__[i__3].i - z__2.i;
c__[i__2].r = z__1.r, c__[i__2].i = z__1.i;
/*< C( 2, J ) = C( 2, J ) - SUM*T2 >*/
i__2 = j * c_dim1 + 2;
i__3 = j * c_dim1 + 2;
z__2.r = sum.r * t2.r - sum.i * t2.i, z__2.i = sum.r * t2.i +
sum.i * t2.r;
z__1.r = c__[i__3].r - z__2.r, z__1.i = c__[i__3].i - z__2.i;
c__[i__2].r = z__1.r, c__[i__2].i = z__1.i;
/*< C( 3, J ) = C( 3, J ) - SUM*T3 >*/
i__2 = j * c_dim1 + 3;
i__3 = j * c_dim1 + 3;
z__2.r = sum.r * t3.r - sum.i * t3.i, z__2.i = sum.r * t3.i +
sum.i * t3.r;
z__1.r = c__[i__3].r - z__2.r, z__1.i = c__[i__3].i - z__2.i;
c__[i__2].r = z__1.r, c__[i__2].i = z__1.i;
/*< C( 4, J ) = C( 4, J ) - SUM*T4 >*/
i__2 = j * c_dim1 + 4;
i__3 = j * c_dim1 + 4;
z__2.r = sum.r * t4.r - sum.i * t4.i, z__2.i = sum.r * t4.i +
sum.i * t4.r;
z__1.r = c__[i__3].r - z__2.r, z__1.i = c__[i__3].i - z__2.i;
c__[i__2].r = z__1.r, c__[i__2].i = z__1.i;
/*< C( 5, J ) = C( 5, J ) - SUM*T5 >*/
i__2 = j * c_dim1 + 5;
i__3 = j * c_dim1 + 5;
z__2.r = sum.r * t5.r - sum.i * t5.i, z__2.i = sum.r * t5.i +
sum.i * t5.r;
z__1.r = c__[i__3].r - z__2.r, z__1.i = c__[i__3].i - z__2.i;
c__[i__2].r = z__1.r, c__[i__2].i = z__1.i;
/*< C( 6, J ) = C( 6, J ) - SUM*T6 >*/
i__2 = j * c_dim1 + 6;
i__3 = j * c_dim1 + 6;
z__2.r = sum.r * t6.r - sum.i * t6.i, z__2.i = sum.r * t6.i +
sum.i * t6.r;
z__1.r = c__[i__3].r - z__2.r, z__1.i = c__[i__3].i - z__2.i;
c__[i__2].r = z__1.r, c__[i__2].i = z__1.i;
/*< C( 7, J ) = C( 7, J ) - SUM*T7 >*/
i__2 = j * c_dim1 + 7;
i__3 = j * c_dim1 + 7;
z__2.r = sum.r * t7.r - sum.i * t7.i, z__2.i = sum.r * t7.i +
sum.i * t7.r;
z__1.r = c__[i__3].r - z__2.r, z__1.i = c__[i__3].i - z__2.i;
c__[i__2].r = z__1.r, c__[i__2].i = z__1.i;
/*< C( 8, J ) = C( 8, J ) - SUM*T8 >*/
i__2 = j * c_dim1 + 8;
i__3 = j * c_dim1 + 8;
z__2.r = sum.r * t8.r - sum.i * t8.i, z__2.i = sum.r * t8.i +
sum.i * t8.r;
z__1.r = c__[i__3].r - z__2.r, z__1.i = c__[i__3].i - z__2.i;
c__[i__2].r = z__1.r, c__[i__2].i = z__1.i;
/*< C( 9, J ) = C( 9, J ) - SUM*T9 >*/
i__2 = j * c_dim1 + 9;
i__3 = j * c_dim1 + 9;
z__2.r = sum.r * t9.r - sum.i * t9.i, z__2.i = sum.r * t9.i +
sum.i * t9.r;
z__1.r = c__[i__3].r - z__2.r, z__1.i = c__[i__3].i - z__2.i;
c__[i__2].r = z__1.r, c__[i__2].i = z__1.i;
/*< C( 10, J ) = C( 10, J ) - SUM*T10 >*/
i__2 = j * c_dim1 + 10;
i__3 = j * c_dim1 + 10;
z__2.r = sum.r * t10.r - sum.i * t10.i, z__2.i = sum.r * t10.i +
sum.i * t10.r;
z__1.r = c__[i__3].r - z__2.r, z__1.i = c__[i__3].i - z__2.i;
c__[i__2].r = z__1.r, c__[i__2].i = z__1.i;
/*< 200 CONTINUE >*/
/* L200: */
}
/*< GO TO 410 >*/
goto L410;
/*< ELSE >*/
} else {
/* Form C * H, where H has order n. */
/*< >*/
switch (*n) {
case 1: goto L210;
case 2: goto L230;
case 3: goto L250;
case 4: goto L270;
case 5: goto L290;
case 6: goto L310;
case 7: goto L330;
case 8: goto L350;
case 9: goto L370;
case 10: goto L390;
}
/* Code for general N */
/* w := C * v */
/*< >*/
zgemv_("No transpose", m, n, &c_b2, &c__[c_offset], ldc, &v[1], &c__1,
&c_b1, &work[1], &c__1, (ftnlen)12);
/* C := C - tau * w * v' */
/*< CALL ZGERC( M, N, -TAU, WORK, 1, V, 1, C, LDC ) >*/
z__1.r = -tau->r, z__1.i = -tau->i;
zgerc_(m, n, &z__1, &work[1], &c__1, &v[1], &c__1, &c__[c_offset],
ldc);
/*< GO TO 410 >*/
goto L410;
/*< 210 CONTINUE >*/
L210:
/* Special code for 1 x 1 Householder */
/*< T1 = ONE - TAU*V( 1 )*DCONJG( V( 1 ) ) >*/
z__3.r = tau->r * v[1].r - tau->i * v[1].i, z__3.i = tau->r * v[1].i
+ tau->i * v[1].r;
d_cnjg(&z__4, &v[1]);
z__2.r = z__3.r * z__4.r - z__3.i * z__4.i, z__2.i = z__3.r * z__4.i
+ z__3.i * z__4.r;
z__1.r = 1. - z__2.r, z__1.i = 0. - z__2.i;
t1.r = z__1.r, t1.i = z__1.i;
/*< DO 220 J = 1, M >*/
i__1 = *m;
for (j = 1; j <= i__1; ++j) {
/*< C( J, 1 ) = T1*C( J, 1 ) >*/
i__2 = j + c_dim1;
i__3 = j + c_dim1;
z__1.r = t1.r * c__[i__3].r - t1.i * c__[i__3].i, z__1.i = t1.r *
c__[i__3].i + t1.i * c__[i__3].r;
c__[i__2].r = z__1.r, c__[i__2].i = z__1.i;
/*< 220 CONTINUE >*/
/* L220: */
}
/*< GO TO 410 >*/
goto L410;
/*< 230 CONTINUE >*/
L230:
/* Special code for 2 x 2 Householder */
/*< V1 = V( 1 ) >*/
v1.r = v[1].r, v1.i = v[1].i;
/*< T1 = TAU*DCONJG( V1 ) >*/
d_cnjg(&z__2, &v1);
z__1.r = tau->r * z__2.r - tau->i * z__2.i, z__1.i = tau->r * z__2.i
+ tau->i * z__2.r;
t1.r = z__1.r, t1.i = z__1.i;
/*< V2 = V( 2 ) >*/
v2.r = v[2].r, v2.i = v[2].i;
/*< T2 = TAU*DCONJG( V2 ) >*/
d_cnjg(&z__2, &v2);
z__1.r = tau->r * z__2.r - tau->i * z__2.i, z__1.i = tau->r * z__2.i
+ tau->i * z__2.r;
t2.r = z__1.r, t2.i = z__1.i;
/*< DO 240 J = 1, M >*/
i__1 = *m;
for (j = 1; j <= i__1; ++j) {
/*< SUM = V1*C( J, 1 ) + V2*C( J, 2 ) >*/
i__2 = j + c_dim1;
z__2.r = v1.r * c__[i__2].r - v1.i * c__[i__2].i, z__2.i = v1.r *
c__[i__2].i + v1.i * c__[i__2].r;
i__3 = j + (c_dim1 << 1);
z__3.r = v2.r * c__[i__3].r - v2.i * c__[i__3].i, z__3.i = v2.r *
c__[i__3].i + v2.i * c__[i__3].r;
z__1.r = z__2.r + z__3.r, z__1.i = z__2.i + z__3.i;
sum.r = z__1.r, sum.i = z__1.i;
/*< C( J, 1 ) = C( J, 1 ) - SUM*T1 >*/
i__2 = j + c_dim1;
i__3 = j + c_dim1;
z__2.r = sum.r * t1.r - sum.i * t1.i, z__2.i = sum.r * t1.i +
sum.i * t1.r;
z__1.r = c__[i__3].r - z__2.r, z__1.i = c__[i__3].i - z__2.i;
c__[i__2].r = z__1.r, c__[i__2].i = z__1.i;
/*< C( J, 2 ) = C( J, 2 ) - SUM*T2 >*/
i__2 = j + (c_dim1 << 1);
i__3 = j + (c_dim1 << 1);
z__2.r = sum.r * t2.r - sum.i * t2.i, z__2.i = sum.r * t2.i +
sum.i * t2.r;
z__1.r = c__[i__3].r - z__2.r, z__1.i = c__[i__3].i - z__2.i;
c__[i__2].r = z__1.r, c__[i__2].i = z__1.i;
/*< 240 CONTINUE >*/
/* L240: */
}
/*< GO TO 410 >*/
goto L410;
/*< 250 CONTINUE >*/
L250:
/* Special code for 3 x 3 Householder */
/*< V1 = V( 1 ) >*/
v1.r = v[1].r, v1.i = v[1].i;
/*< T1 = TAU*DCONJG( V1 ) >*/
d_cnjg(&z__2, &v1);
z__1.r = tau->r * z__2.r - tau->i * z__2.i, z__1.i = tau->r * z__2.i
+ tau->i * z__2.r;
t1.r = z__1.r, t1.i = z__1.i;
/*< V2 = V( 2 ) >*/
v2.r = v[2].r, v2.i = v[2].i;
/*< T2 = TAU*DCONJG( V2 ) >*/
d_cnjg(&z__2, &v2);
z__1.r = tau->r * z__2.r - tau->i * z__2.i, z__1.i = tau->r * z__2.i
+ tau->i * z__2.r;
t2.r = z__1.r, t2.i = z__1.i;
/*< V3 = V( 3 ) >*/
v3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -