📄 s10_8pf.c
字号:
move16 (); move16 (); move16 (); for (i5 = ipos[5]; i5 < L_CODE; i5 += step) { ps2 = add (ps1, dn[i5]); alp2 = L_mac (alp1, rrv[i5], _1_4); alp2 = L_mac (alp2, rr[i4][i5], _1_16); sq2 = mult (ps2, ps2); alp_16 = round (alp2); s = L_msu (L_mult (alp, sq2), sq, alp_16); test (); if (s > 0) { sq = sq2; move16 (); ps = ps2; move16 (); alp = alp_16; move16 (); ia = i4; move16 (); ib = i5; move16 (); } } } i4 = ia; move16 (); i5 = ib; move16 (); /*----------------------------------------------------------------* * i6 and i7 loop: * *----------------------------------------------------------------*/ ps0 = ps; move16 (); alp0 = L_mult (alp, _1_2); /* initialize 8 indices for next loop (see i2-i3 loop) */ move16 (); move16 (); move16 (); move16 (); move16 (); move16 (); move16 (); move16 (); for (i7 = ipos[7]; i7 < L_CODE; i7 += step) { s = L_mult (rr[i7][i7], _1_16); s = L_mac (s, rr[i0][i7], _1_8); s = L_mac (s, rr[i1][i7], _1_8); s = L_mac (s, rr[i2][i7], _1_8); s = L_mac (s, rr[i3][i7], _1_8); s = L_mac (s, rr[i4][i7], _1_8); s = L_mac (s, rr[i5][i7], _1_8); rrv[i7] = round (s); move16 (); } /* Default value */ sq = -1; move16 (); alp = 1; move16 (); ps = 0; move16 (); ia = ipos[6]; move16 (); ib = ipos[7]; move16 (); /* initialize 8 indices for i6 loop (see i2-i3 loop) */ move16 (); move16 (); move16 (); move16 (); move16 (); move16 (); move16 (); move16 (); for (i6 = ipos[6]; i6 < L_CODE; i6 += step) { ps1 = add (ps0, dn[i6]); alp1 = L_mac (alp0, rr[i6][i6], _1_64); alp1 = L_mac (alp1, rr[i0][i6], _1_32); alp1 = L_mac (alp1, rr[i1][i6], _1_32); alp1 = L_mac (alp1, rr[i2][i6], _1_32); alp1 = L_mac (alp1, rr[i3][i6], _1_32); alp1 = L_mac (alp1, rr[i4][i6], _1_32); alp1 = L_mac (alp1, rr[i5][i6], _1_32); /* initialize 3 indices for i7 inner loop (see i2-i3 loop) */ move16 (); move16 (); move16 (); for (i7 = ipos[7]; i7 < L_CODE; i7 += step) { ps2 = add (ps1, dn[i7]); alp2 = L_mac (alp1, rrv[i7], _1_4); alp2 = L_mac (alp2, rr[i6][i7], _1_32); sq2 = mult (ps2, ps2); alp_16 = round (alp2); s = L_msu (L_mult (alp, sq2), sq, alp_16); test (); if (s > 0) { sq = sq2; move16 (); ps = ps2; move16 (); alp = alp_16; move16 (); ia = i6; move16 (); ib = i7; move16 (); } } } i6 = ia; move16 (); i7 = ib; move16 (); /* now finished searching a set of 8 pulses */ test(); if(gsmefrFlag != 0){ /* go on with the two last pulses for GSMEFR */ /*----------------------------------------------------------------* * i8 and i9 loop: * *----------------------------------------------------------------*/ ps0 = ps; move16 (); alp0 = L_mult (alp, _1_2); /* initialize 10 indices for next loop (see i2-i3 loop) */ move16 (); move16 (); move16 (); move16 (); move16 (); move16 (); move16 (); move16 (); move16 (); move16 (); for (i9 = ipos[9]; i9 < L_CODE; i9 += step) { s = L_mult (rr[i9][i9], _1_16); s = L_mac (s, rr[i0][i9], _1_8); s = L_mac (s, rr[i1][i9], _1_8); s = L_mac (s, rr[i2][i9], _1_8); s = L_mac (s, rr[i3][i9], _1_8); s = L_mac (s, rr[i4][i9], _1_8); s = L_mac (s, rr[i5][i9], _1_8); s = L_mac (s, rr[i6][i9], _1_8); s = L_mac (s, rr[i7][i9], _1_8); rrv[i9] = round (s); move16 (); } /* Default value */ sq = -1; move16 (); alp = 1; move16 (); ps = 0; move16 (); ia = ipos[8]; move16 (); ib = ipos[9]; move16 (); /* initialize 10 indices for i8 loop (see i2-i3 loop) */ move16 (); move16 (); move16 (); move16 (); move16 (); move16 (); move16 (); move16 (); move16 (); move16 (); for (i8 = ipos[8]; i8 < L_CODE; i8 += step) { ps1 = add (ps0, dn[i8]); alp1 = L_mac (alp0, rr[i8][i8], _1_128); alp1 = L_mac (alp1, rr[i0][i8], _1_64); alp1 = L_mac (alp1, rr[i1][i8], _1_64); alp1 = L_mac (alp1, rr[i2][i8], _1_64); alp1 = L_mac (alp1, rr[i3][i8], _1_64); alp1 = L_mac (alp1, rr[i4][i8], _1_64); alp1 = L_mac (alp1, rr[i5][i8], _1_64); alp1 = L_mac (alp1, rr[i6][i8], _1_64); alp1 = L_mac (alp1, rr[i7][i8], _1_64); /* initialize 3 indices for i9 inner loop (see i2-i3 loop) */ move16 (); move16 (); move16 (); for (i9 = ipos[9]; i9 < L_CODE; i9 += step) { ps2 = add (ps1, dn[i9]); alp2 = L_mac (alp1, rrv[i9], _1_8); alp2 = L_mac (alp2, rr[i8][i9], _1_64); sq2 = mult (ps2, ps2); alp_16 = round (alp2); s = L_msu (L_mult (alp, sq2), sq, alp_16); test (); if (s > 0) { sq = sq2; move16 (); ps = ps2; move16 (); alp = alp_16; move16 (); ia = i8; move16 (); ib = i9; move16 (); } } } }/* end gsmefrFlag */ /*---------------------------------------------------------------- * * test and memorise if this combination is better than the last one.* *----------------------------------------------------------------*/ s = L_msu (L_mult (alpk, sq), psk, alp); test (); if (s > 0) { psk = sq; move16 (); alpk = alp; move16 (); codvec[0] = i0; move16 (); codvec[1] = i1; move16 (); codvec[2] = i2; move16 (); codvec[3] = i3; move16 (); codvec[4] = i4; move16 (); codvec[5] = i5; move16 (); codvec[6] = i6; move16 (); codvec[7] = i7; move16 (); test(); if (gsmefrFlag != 0) { codvec[8] = ia; move16 (); codvec[9] = ib; move16 (); } } /*----------------------------------------------------------------* * Cyclic permutation of i1,i2,i3,i4,i5,i6,i7,(i8 and i9). * *----------------------------------------------------------------*/ pos = ipos[1]; move16 (); for (j = 1, k = 2; k < nbPulse; j++, k++) { ipos[j] = ipos[k]; move16 (); } ipos[sub(nbPulse,1)] = pos; move16 (); } /* end 1..nbTracks loop*/}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -