zlarfx.c

来自「算断裂的」· C语言 代码 · 共 1,690 行 · 第 1/5 页

C
1,690
字号
		+ tau->i * z__2.r;
	t4.r = z__1.r, t4.i = z__1.i;
	d_cnjg(&z__1, &V(5));
	v5.r = z__1.r, v5.i = z__1.i;
	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;
	i__1 = *n;
	for (j = 1; j <= *n; ++j) {
	    i__2 = j * c_dim1 + 1;
	    z__5.r = v1.r * C(1,j).r - v1.i * C(1,j).i, z__5.i = v1.r * C(1,j).i + v1.i * C(1,j).r;
	    i__3 = j * c_dim1 + 2;
	    z__6.r = v2.r * C(2,j).r - v2.i * C(2,j).i, z__6.i = v2.r * C(2,j).i + v2.i * C(2,j).r;
	    z__4.r = z__5.r + z__6.r, z__4.i = z__5.i + z__6.i;
	    i__4 = j * c_dim1 + 3;
	    z__7.r = v3.r * C(3,j).r - v3.i * C(3,j).i, z__7.i = v3.r * C(3,j).i + v3.i * C(3,j).r;
	    z__3.r = z__4.r + z__7.r, z__3.i = z__4.i + z__7.i;
	    i__5 = j * c_dim1 + 4;
	    z__8.r = v4.r * C(4,j).r - v4.i * C(4,j).i, z__8.i = v4.r * C(4,j).i + v4.i * C(4,j).r;
	    z__2.r = z__3.r + z__8.r, z__2.i = z__3.i + z__8.i;
	    i__6 = j * c_dim1 + 5;
	    z__9.r = v5.r * C(5,j).r - v5.i * C(5,j).i, z__9.i = v5.r * C(5,j).i + v5.i * C(5,j).r;
	    z__1.r = z__2.r + z__9.r, z__1.i = z__2.i + z__9.i;
	    sum.r = z__1.r, sum.i = z__1.i;
	    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(1,j).r - z__2.r, z__1.i = C(1,j).i - z__2.i;
	    C(1,j).r = z__1.r, C(1,j).i = z__1.i;
	    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(2,j).r - z__2.r, z__1.i = C(2,j).i - z__2.i;
	    C(2,j).r = z__1.r, C(2,j).i = z__1.i;
	    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(3,j).r - z__2.r, z__1.i = C(3,j).i - z__2.i;
	    C(3,j).r = z__1.r, C(3,j).i = z__1.i;
	    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(4,j).r - z__2.r, z__1.i = C(4,j).i - z__2.i;
	    C(4,j).r = z__1.r, C(4,j).i = z__1.i;
	    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(5,j).r - z__2.r, z__1.i = C(5,j).i - z__2.i;
	    C(5,j).r = z__1.r, C(5,j).i = z__1.i;
/* L100: */
	}
	goto L410;
L110:

/*        Special code for 6 x 6 Householder */

	d_cnjg(&z__1, &V(1));
	v1.r = z__1.r, v1.i = z__1.i;
	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;
	d_cnjg(&z__1, &V(2));
	v2.r = z__1.r, v2.i = z__1.i;
	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;
	d_cnjg(&z__1, &V(3));
	v3.r = z__1.r, v3.i = z__1.i;
	d_cnjg(&z__2, &v3);
	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;
	t3.r = z__1.r, t3.i = z__1.i;
	d_cnjg(&z__1, &V(4));
	v4.r = z__1.r, v4.i = z__1.i;
	d_cnjg(&z__2, &v4);
	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;
	t4.r = z__1.r, t4.i = z__1.i;
	d_cnjg(&z__1, &V(5));
	v5.r = z__1.r, v5.i = z__1.i;
	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;
	d_cnjg(&z__1, &V(6));
	v6.r = z__1.r, v6.i = z__1.i;
	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;
	i__1 = *n;
	for (j = 1; j <= *n; ++j) {
	    i__2 = j * c_dim1 + 1;
	    z__6.r = v1.r * C(1,j).r - v1.i * C(1,j).i, z__6.i = v1.r * C(1,j).i + v1.i * C(1,j).r;
	    i__3 = j * c_dim1 + 2;
	    z__7.r = v2.r * C(2,j).r - v2.i * C(2,j).i, z__7.i = v2.r * C(2,j).i + v2.i * C(2,j).r;
	    z__5.r = z__6.r + z__7.r, z__5.i = z__6.i + z__7.i;
	    i__4 = j * c_dim1 + 3;
	    z__8.r = v3.r * C(3,j).r - v3.i * C(3,j).i, z__8.i = v3.r * C(3,j).i + v3.i * C(3,j).r;
	    z__4.r = z__5.r + z__8.r, z__4.i = z__5.i + z__8.i;
	    i__5 = j * c_dim1 + 4;
	    z__9.r = v4.r * C(4,j).r - v4.i * C(4,j).i, z__9.i = v4.r * C(4,j).i + v4.i * C(4,j).r;
	    z__3.r = z__4.r + z__9.r, z__3.i = z__4.i + z__9.i;
	    i__6 = j * c_dim1 + 5;
	    z__10.r = v5.r * C(5,j).r - v5.i * C(5,j).i, z__10.i = v5.r * C(5,j).i + v5.i * C(5,j).r;
	    z__2.r = z__3.r + z__10.r, z__2.i = z__3.i + z__10.i;
	    i__7 = j * c_dim1 + 6;
	    z__11.r = v6.r * C(6,j).r - v6.i * C(6,j).i, z__11.i = v6.r * C(6,j).i + v6.i * C(6,j).r;
	    z__1.r = z__2.r + z__11.r, z__1.i = z__2.i + z__11.i;
	    sum.r = z__1.r, sum.i = z__1.i;
	    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(1,j).r - z__2.r, z__1.i = C(1,j).i - z__2.i;
	    C(1,j).r = z__1.r, C(1,j).i = z__1.i;
	    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(2,j).r - z__2.r, z__1.i = C(2,j).i - z__2.i;
	    C(2,j).r = z__1.r, C(2,j).i = z__1.i;
	    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(3,j).r - z__2.r, z__1.i = C(3,j).i - z__2.i;
	    C(3,j).r = z__1.r, C(3,j).i = z__1.i;
	    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(4,j).r - z__2.r, z__1.i = C(4,j).i - z__2.i;
	    C(4,j).r = z__1.r, C(4,j).i = z__1.i;
	    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(5,j).r - z__2.r, z__1.i = C(5,j).i - z__2.i;
	    C(5,j).r = z__1.r, C(5,j).i = z__1.i;
	    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(6,j).r - z__2.r, z__1.i = C(6,j).i - z__2.i;
	    C(6,j).r = z__1.r, C(6,j).i = z__1.i;
/* L120: */
	}
	goto L410;
L130:

/*        Special code for 7 x 7 Householder */

	d_cnjg(&z__1, &V(1));
	v1.r = z__1.r, v1.i = z__1.i;
	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;
	d_cnjg(&z__1, &V(2));
	v2.r = z__1.r, v2.i = z__1.i;
	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;
	d_cnjg(&z__1, &V(3));
	v3.r = z__1.r, v3.i = z__1.i;
	d_cnjg(&z__2, &v3);
	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;
	t3.r = z__1.r, t3.i = z__1.i;
	d_cnjg(&z__1, &V(4));
	v4.r = z__1.r, v4.i = z__1.i;
	d_cnjg(&z__2, &v4);
	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;
	t4.r = z__1.r, t4.i = z__1.i;
	d_cnjg(&z__1, &V(5));
	v5.r = z__1.r, v5.i = z__1.i;
	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;
	d_cnjg(&z__1, &V(6));
	v6.r = z__1.r, v6.i = z__1.i;
	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;
	d_cnjg(&z__1, &V(7));
	v7.r = z__1.r, v7.i = z__1.i;
	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;
	i__1 = *n;
	for (j = 1; j <= *n; ++j) {
	    i__2 = j * c_dim1 + 1;
	    z__7.r = v1.r * C(1,j).r - v1.i * C(1,j).i, z__7.i = v1.r * C(1,j).i + v1.i * C(1,j).r;
	    i__3 = j * c_dim1 + 2;
	    z__8.r = v2.r * C(2,j).r - v2.i * C(2,j).i, z__8.i = v2.r * C(2,j).i + v2.i * C(2,j).r;
	    z__6.r = z__7.r + z__8.r, z__6.i = z__7.i + z__8.i;
	    i__4 = j * c_dim1 + 3;
	    z__9.r = v3.r * C(3,j).r - v3.i * C(3,j).i, z__9.i = v3.r * C(3,j).i + v3.i * C(3,j).r;
	    z__5.r = z__6.r + z__9.r, z__5.i = z__6.i + z__9.i;
	    i__5 = j * c_dim1 + 4;
	    z__10.r = v4.r * C(4,j).r - v4.i * C(4,j).i, z__10.i = v4.r * C(4,j).i + v4.i * C(4,j).r;
	    z__4.r = z__5.r + z__10.r, z__4.i = z__5.i + z__10.i;
	    i__6 = j * c_dim1 + 5;
	    z__11.r = v5.r * C(5,j).r - v5.i * C(5,j).i, z__11.i = v5.r * C(5,j).i + v5.i * C(5,j).r;
	    z__3.r = z__4.r + z__11.r, z__3.i = z__4.i + z__11.i;
	    i__7 = j * c_dim1 + 6;
	    z__12.r = v6.r * C(6,j).r - v6.i * C(6,j).i, z__12.i = v6.r * C(6,j).i + v6.i * C(6,j).r;
	    z__2.r = z__3.r + z__12.r, z__2.i = z__3.i + z__12.i;
	    i__8 = j * c_dim1 + 7;
	    z__13.r = v7.r * C(7,j).r - v7.i * C(7,j).i, z__13.i = v7.r * C(7,j).i + v7.i * C(7,j).r;
	    z__1.r = z__2.r + z__13.r, z__1.i = z__2.i + z__13.i;
	    sum.r = z__1.r, sum.i = z__1.i;
	    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(1,j).r - z__2.r, z__1.i = C(1,j).i - z__2.i;
	    C(1,j).r = z__1.r, C(1,j).i = z__1.i;
	    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(2,j).r - z__2.r, z__1.i = C(2,j).i - z__2.i;
	    C(2,j).r = z__1.r, C(2,j).i = z__1.i;
	    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(3,j).r - z__2.r, z__1.i = C(3,j).i - z__2.i;
	    C(3,j).r = z__1.r, C(3,j).i = z__1.i;
	    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(4,j).r - z__2.r, z__1.i = C(4,j).i - z__2.i;
	    C(4,j).r = z__1.r, C(4,j).i = z__1.i;
	    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(5,j).r - z__2.r, z__1.i = C(5,j).i - z__2.i;
	    C(5,j).r = z__1.r, C(5,j).i = z__1.i;
	    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(6,j).r - z__2.r, z__1.i = C(6,j).i - z__2.i;
	    C(6,j).r = z__1.r, C(6,j).i = z__1.i;
	    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(7,j).r - z__2.r, z__1.i = C(7,j).i - z__2.i;
	    C(7,j).r = z__1.r, C(7,j).i = z__1.i;
/* L140: */
	}
	goto L410;
L150:

/*        Special code for 8 x 8 Householder */

	d_cnjg(&z__1, &V(1));
	v1.r = z__1.r, v1.i = z__1.i;
	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;
	d_cnjg(&z__1, &V(2));
	v2.r = z__1.r, v2.i = z__1.i;
	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;
	d_cnjg(&z__1, &V(3));
	v3.r = z__1.r, v3.i = z__1.i;
	d_cnjg(&z__2, &v3);
	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;
	t3.r = z__1.r, t3.i = z__1.i;
	d_cnjg(&z__1, &V(4));
	v4.r = z__1.r, v4.i = z__1.i;
	d_cnjg(&z__2, &v4);
	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;
	t4.r = z__1.r, t4.i = z__1.i;
	d_cnjg(&z__1, &V(5));
	v5.r = z__1.r, v5.i = z__1.i;
	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;
	d_cnjg(&z__1, &V(6));
	v6.r = z__1.r, v6.i = z__1.i;
	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;
	d_cnjg(&z__1, &V(7));
	v7.r = z__1.r, v7.i = z__1.i;
	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;
	d_cnjg(&z__1, &V(8));
	v8.r = z__1.r, v8.i = z__1.i;
	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;
	i__1 = *n;
	for (j = 1; j <= *n; ++j) {
	    i__2 = j * c_dim1 + 1;
	    z__8.r = v1.r * C(1,j).r - v1.i * C(1,j).i, z__8.i = v1.r * C(1,j).i + v1.i * C(1,j).r;
	    i__3 = j * c_dim1 + 2;
	    z__9.r = v2.r * C(2,j).r - v2.i * C(2,j).i, z__9.i = v2.r * C(2,j).i + v2.i * C(2,j).r;
	    z__7.r = z__8.r + z__9.r, z__7.i = z__8.i + z__9.i;
	    i__4 = j * c_dim1 + 3;
	    z__10.r = v3.r * C(3,j).r - v3.i * C(3,j).i, z__10.i = v3.r * C(3,j).i + v3.i * C(3,j).r;
	    z__6.r = z__7.r + z__10.r, z__6.i = z__7.i + z__10.i;
	    i__5 = j * c_dim1 + 4;
	    z__11.r = v4.r * C(4,j).r - v4.i * C(4,j).i, z__11.i = v4.r * C(4,j).i + v4.i * C(4,j).r;
	    z__5.r = z__6.r + z__11.r, z__5.i = z__6.i + z__11.i;
	    i__6 = j * c_dim1 + 5;
	    z__12.r = v5.r * C(5,j).r - v5.i * C(5,j).i, z__12.i = v5.r * C(5,j).i + v5.i * C(5,j).r;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?