gpfa5f.c

来自「InsightToolkit-1.4.0(有大量的优化算法程序)」· C语言 代码 · 共 911 行 · 第 1/3 页

C
911
字号
                                    a[jv + j] = ajj;
                                    t5 = t1 + t2;
                                    t6 = c1 * (t1 - t2);
                                    aju = a[ju + j];
                                    t7 = aju - t5 * .25f;
                                    ax = aju + t5;
                                    t8 = t7 + t6;
                                    t9 = t7 - t6;
                                    a[ju + j] = aje;
                                    t10 = c3 * t3 - c2 * t4;
                                    t11 = c2 * t3 + c3 * t4;
                                    a[je + j] = ax;
                                    bjv = b[jv + j];
                                    bjy = b[jy + j];
                                    u1 = bjv + bjy;
                                    u2 = bjo + bjt;
                                    u3 = bjv - bjy;
                                    u4 = bjo - bjt;
                                    b[jv + j] = bjj;
                                    u5 = u1 + u2;
                                    u6 = c1 * (u1 - u2);
                                    bju = b[ju + j];
                                    u7 = bju - u5 * .25f;
                                    bx = bju + u5;
                                    u8 = u7 + u6;
                                    u9 = u7 - u6;
                                    b[ju + j] = bje;
                                    u10 = c3 * u3 - c2 * u4;
                                    u11 = c2 * u3 + c3 * u4;
                                    b[je + j] = bx;
                                    a[jj + j] = t8 - u11;
                                    b[jj + j] = u8 + t11;
                                    a[jy + j] = t8 + u11;
                                    b[jy + j] = u8 - t11;
                                    a[jo + j] = t9 - u10;
                                    b[jo + j] = u9 + t10;
                                    a[jt + j] = t9 + u10;
                                    b[jt + j] = u9 - t10;
                                    j += *jump;
                                }

                            } else {

/* dir$ ivdep, shortloop */
                                for (l = 1; l <= nvex; ++l) {
                                    ajb = a[jb + j];
                                    aje = a[je + j];
                                    t1 = ajb + aje;
                                    ajc = a[jc + j];
                                    ajd = a[jd + j];
                                    t2 = ajc + ajd;
                                    t3 = ajb - aje;
                                    t4 = ajc - ajd;
                                    ajf = a[jf + j];
                                    ajb = ajf;
                                    t5 = t1 + t2;
                                    t6 = c1 * (t1 - t2);
                                    aja = a[ja + j];
                                    t7 = aja - t5 * .25f;
                                    a[ja + j] = aja + t5;
                                    t8 = t7 + t6;
                                    t9 = t7 - t6;
                                    ajk = a[jk + j];
                                    ajc = ajk;
                                    t10 = c3 * t3 - c2 * t4;
                                    t11 = c2 * t3 + c3 * t4;
                                    bjb = b[jb + j];
                                    bje = b[je + j];
                                    u1 = bjb + bje;
                                    bjc = b[jc + j];
                                    bjd = b[jd + j];
                                    u2 = bjc + bjd;
                                    u3 = bjb - bje;
                                    u4 = bjc - bjd;
                                    bjf = b[jf + j];
                                    bjb = bjf;
                                    u5 = u1 + u2;
                                    u6 = c1 * (u1 - u2);
                                    bja = b[ja + j];
                                    u7 = bja - u5 * .25f;
                                    b[ja + j] = bja + u5;
                                    u8 = u7 + u6;
                                    u9 = u7 - u6;
                                    bjk = b[jk + j];
                                    bjc = bjk;
                                    u10 = c3 * u3 - c2 * u4;
                                    u11 = c2 * u3 + c3 * u4;
                                    a[jf + j] = co1 * (t8 - u11) - si1 * (u8 + t11);
                                    b[jf + j] = si1 * (t8 - u11) + co1 * (u8 + t11);
                                    aje = co4 * (t8 + u11) - si4 * (u8 - t11);
                                    bje = si4 * (t8 + u11) + co4 * (u8 - t11);
                                    a[jk + j] = co2 * (t9 - u10) - si2 * (u9 + t10);
                                    b[jk + j] = si2 * (t9 - u10) + co2 * (u9 + t10);
                                    ajd = co3 * (t9 + u10) - si3 * (u9 - t10);
                                    bjd = si3 * (t9 + u10) + co3 * (u9 - t10);
/* ---------------------- */
                                    ajg = a[jg + j];
                                    ajj = a[jj + j];
                                    t1 = ajg + ajj;
                                    ajh = a[jh + j];
                                    aji = a[ji + j];
                                    t2 = ajh + aji;
                                    t3 = ajg - ajj;
                                    t4 = ajh - aji;
                                    ajl = a[jl + j];
                                    ajh = ajl;
                                    t5 = t1 + t2;
                                    t6 = c1 * (t1 - t2);
                                    t7 = ajb - t5 * .25f;
                                    a[jb + j] = ajb + t5;
                                    t8 = t7 + t6;
                                    t9 = t7 - t6;
                                    ajq = a[jq + j];
                                    aji = ajq;
                                    t10 = c3 * t3 - c2 * t4;
                                    t11 = c2 * t3 + c3 * t4;
                                    bjg = b[jg + j];
                                    bjj = b[jj + j];
                                    u1 = bjg + bjj;
                                    bjh = b[jh + j];
                                    bji = b[ji + j];
                                    u2 = bjh + bji;
                                    u3 = bjg - bjj;
                                    u4 = bjh - bji;
                                    bjl = b[jl + j];
                                    bjh = bjl;
                                    u5 = u1 + u2;
                                    u6 = c1 * (u1 - u2);
                                    u7 = bjb - u5 * .25f;
                                    b[jb + j] = bjb + u5;
                                    u8 = u7 + u6;
                                    u9 = u7 - u6;
                                    bjq = b[jq + j];
                                    bji = bjq;
                                    u10 = c3 * u3 - c2 * u4;
                                    u11 = c2 * u3 + c3 * u4;
                                    a[jg + j] = co1 * (t8 - u11) - si1 * (u8 + t11);
                                    b[jg + j] = si1 * (t8 - u11) + co1 * (u8 + t11);
                                    ajj       = co4 * (t8 + u11) - si4 * (u8 - t11);
                                    bjj       = si4 * (t8 + u11) + co4 * (u8 - t11);
                                    a[jl + j] = co2 * (t9 - u10) - si2 * (u9 + t10);
                                    b[jl + j] = si2 * (t9 - u10) + co2 * (u9 + t10);
                                    a[jq + j] = co3 * (t9 + u10) - si3 * (u9 - t10);
                                    b[jq + j] = si3 * (t9 + u10) + co3 * (u9 - t10);
/* ---------------------- */
                                    ajo = a[jo + j];
                                    t1 = ajh + ajo;
                                    ajm = a[jm + j];
                                    ajn = a[jn + j];
                                    t2 = ajm + ajn;
                                    t3 = ajh - ajo;
                                    t4 = ajm - ajn;
                                    ajr = a[jr + j];
                                    ajn = ajr;
                                    t5 = t1 + t2;
                                    t6 = c1 * (t1 - t2);
                                    t7 = ajc - t5 * .25f;
                                    a[jc + j] = ajc + t5;
                                    t8 = t7 + t6;
                                    t9 = t7 - t6;
                                    ajw = a[jw + j];
                                    ajo = ajw;
                                    t10 = c3 * t3 - c2 * t4;
                                    t11 = c2 * t3 + c3 * t4;
                                    bjo = b[jo + j];
                                    u1 = bjh + bjo;
                                    bjm = b[jm + j];
                                    bjn = b[jn + j];
                                    u2 = bjm + bjn;
                                    u3 = bjh - bjo;
                                    u4 = bjm - bjn;
                                    bjr = b[jr + j];
                                    bjn = bjr;
                                    u5 = u1 + u2;
                                    u6 = c1 * (u1 - u2);
                                    u7 = bjc - u5 * .25f;
                                    b[jc + j] = bjc + u5;
                                    u8 = u7 + u6;
                                    u9 = u7 - u6;
                                    bjw = b[jw + j];
                                    bjo = bjw;
                                    u10 = c3 * u3 - c2 * u4;
                                    u11 = c2 * u3 + c3 * u4;
                                    a[jh + j] = co1 * (t8 - u11) - si1 * (u8 + t11);
                                    b[jh + j] = si1 * (t8 - u11) + co1 * (u8 + t11);
                                    a[jw + j] = co4 * (t8 + u11) - si4 * (u8 - t11);
                                    b[jw + j] = si4 * (t8 + u11) + co4 * (u8 - t11);
                                    a[jm + j] = co2 * (t9 - u10) - si2 * (u9 + t10);
                                    b[jm + j] = si2 * (t9 - u10) + co2 * (u9 + t10);
                                    a[jr + j] = co3 * (t9 + u10) - si3 * (u9 - t10);
                                    b[jr + j] = si3 * (t9 + u10) + co3 * (u9 - t10);
/* ---------------------- */
                                    ajt = a[jt + j];
                                    t1 = aji + ajt;
                                    ajs = a[js + j];
                                    t2 = ajn + ajs;
                                    t3 = aji - ajt;
                                    t4 = ajn - ajs;
                                    ajx = a[jx + j];
                                    ajt = ajx;
                                    t5 = t1 + t2;
                                    t6 = c1 * (t1 - t2);
                                    ajp = a[jp + j];
                                    t7 = ajp - t5 * .25f;
                                    ax = ajp + t5;
                                    t8 = t7 + t6;
                                    t9 = t7 - t6;
                                    a[jp + j] = ajd;
                                    t10 = c3 * t3 - c2 * t4;
                                    t11 = c2 * t3 + c3 * t4;
                                    a[jd + j] = ax;
                                    bjt = b[jt + j];
                                    u1 = bji + bjt;
                                    bjs = b[js + j];
                                    u2 = bjn + bjs;
                                    u3 = bji - bjt;
                                    u4 = bjn - bjs;
                                    bjx = b[jx + j];
                                    bjt = bjx;
                                    u5 = u1 + u2;
                                    u6 = c1 * (u1 - u2);
                                    bjp = b[jp + j];
                                    u7 = bjp - u5 * .25f;
                                    bx = bjp + u5;
                                    u8 = u7 + u6;
                                    u9 = u7 - u6;
                                    b[jp + j] = bjd;
                                    u10 = c3 * u3 - c2 * u4;
                                    u11 = c2 * u3 + c3 * u4;
                                    b[jd + j] = bx;
                                    a[ji + j] = co1 * (t8 - u11) - si1 * (u8 + t11);
                                    b[ji + j] = si1 * (t8 - u11) + co1 * (u8 + t11);
                                    a[jx + j] = co4 * (t8 + u11) - si4 * (u8 - t11);
                                    b[jx + j] = si4 * (t8 + u11) + co4 * (u8 - t11);
                                    a[jn + j] = co2 * (t9 - u10) - si2 * (u9 + t10);
                                    b[jn + j] = si2 * (t9 - u10) + co2 * (u9 + t10);
                                    a[js + j] = co3 * (t9 + u10) - si3 * (u9 - t10);
                                    b[js + j] = si3 * (t9 + u10) + co3 * (u9 - t10);
/* ---------------------- */
                                    ajv = a[jv + j];
                                    ajy = a[jy + j];
                                    t1 = ajv + ajy;
                                    t2 = ajo + ajt;
                                    t3 = ajv - ajy;
                                    t4 = ajo - ajt;
                                    a[jv + j] = ajj;
                                    t5 = t1 + t2;
                                    t6 = c1 * (t1 - t2);
                                    aju = a[ju + j];
                                    t7 = aju - t5 * .25f;
                                    ax = aju + t5;
                                    t8 = t7 + t6;
                                    t9 = t7 - t6;
                                    a[ju + j] = aje;
                                    t10 = c3 * t3 - c2 * t4;
                                    t11 = c2 * t3 + c3 * t4;
                                    a[je + j] = ax;
                                    bjv = b[jv + j];
                                    bjy = b[jy + j];
                                    u1 = bjv + bjy;
                                    u2 = bjo + bjt;
                                    u3 = bjv - bjy;
                                    u4 = bjo - bjt;
                                    b[jv + j] = bjj;
                                    u5 = u1 + u2;
                                    u6 = c1 * (u1 - u2);
                                    bju = b[ju + j];
                                    u7 = bju - u5 * .25f;
                                    bx = bju + u5;
                                    u8 = u7 + u6;
                                    u9 = u7 - u6;
                                    b[ju + j] = bje;
                                    u10 = c3 * u3 - c2 * u4;
                                    u11 = c2 * u3 + c3 * u4;
                                    b[je + j] = bx;
                                    a[jj + j] = co1 * (t8 - u11) - si1 * (u8 + t11);
                                    b[jj + j] = si1 * (t8 - u11) + co1 * (u8 + t11);
                                    a[jy + j] = co4 * (t8 + u11) - si4 * (u8 - t11);
                                    b[jy + j] = si4 * (t8 + u11) + co4 * (u8 - t11);
                                    a[jo + j] = co2 * (t9 - u10) - si2 * (u9 + t10);
                                    b[jo + j] = si2 * (t9 - u10) + co2 * (u9 + t10);
                                    a[jt + j] = co3 * (t9 + u10) - si3 * (u9 - t10);
                                    b[jt + j] = si3 * (t9 + u10) + co3 * (u9 - t10);
                                    j += *jump;
                                }
                            }

                            ja += jstepx;
                            if (ja < istart) {
                                ja += ninc;
                            }
                        }
                    }
                }
                kk += la << 1;
            }
            la *= 5;
        }
L490:
        istart += nvex * *jump;
    }
} /* gpfa5f_ */

⌨️ 快捷键说明

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