csvorbis.Drft.dradbg C# (CSharp) Method

dradbg() static private method

static private dradbg ( int ido, int ip, int l1, int idl1, float cc, float c1, float c2, float ch, float ch2, float wa, int index ) : void
ido int
ip int
l1 int
idl1 int
cc float
c1 float
c2 float
ch float
ch2 float
wa float
index int
return void
        static void dradbg(int ido,int ip,int l1,int idl1,float[] cc,float[] c1,
			float[] c2,float[] ch,float[] ch2,float[] wa, int index )
        {
            int idij,ipph=0,i,j,k,l,ik,iis,t0=0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10=0,
                t11,t12;
            float dc2,ai1,ai2,ar1,ar2,ds2;
            int nbd=0;
            float dcp=0,arg,dsp=0,ar1h,ar2h;
            int ipp2=0;

            t10=ip*ido;
            t0=l1*ido;
            arg=tpi/(float)ip;
            dcp=(float)Math.Cos(arg);
            dsp=(float)Math.Sin(arg);
            nbd=(int)((uint)(ido-1)>>1);
            ipp2=ip;
            ipph=(int)((uint)(ip+1)>>1);
            if(ido<l1) goto L103;

            t1=0;
            t2=0;
            for(k=0;k<l1;k++)
            {
                t3=t1;
                t4=t2;
                for(i=0;i<ido;i++)
                {
                    ch[t3]=cc[t4];
                    t3++;
                    t4++;
                }
                t1+=ido;
                t2+=t10;
            }
            goto L106;

            L103: t1=0;
            for(i=0;i<ido;i++)
            {
                t2=t1;
                t3=t1;
                for(k=0;k<l1;k++)
                {
                    ch[t2]=cc[t3];
                    t2+=ido;
                    t3+=t10;
                }
                t1++;
            }
            L106: t1=0;
            t2=ipp2*t0;
            t7=(t5=ido<<1);
            for(j=1;j<ipph;j++)
            {
                t1+=t0;
                t2-=t0;
                t3=t1;
                t4=t2;
                t6=t5;
                for(k=0;k<l1;k++)
                {
                    ch[t3]=cc[t6-1]+cc[t6-1];
                    ch[t4]=cc[t6]+cc[t6];
                    t3+=ido;
                    t4+=ido;
                    t6+=t10;
                }
                t5+=t7;
            }
            if (ido == 1) goto L116;
            if(nbd<l1) goto L112;

            t1=0;
            t2=ipp2*t0;
            t7=0;
            for(j=1;j<ipph;j++)
            {
                t1+=t0;
                t2-=t0;
                t3=t1;
                t4=t2;

                t7+=(ido<<1);
                t8=t7;
                for(k=0;k<l1;k++)
                {
                    t5=t3;
                    t6=t4;
                    t9=t8;
                    t11=t8;
                    for(i=2;i<ido;i+=2)
                    {
                        t5+=2;
                        t6+=2;
                        t9+=2;
                        t11-=2;
                        ch[t5-1]=cc[t9-1]+cc[t11-1];
                        ch[t6-1]=cc[t9-1]-cc[t11-1];
                        ch[t5]=cc[t9]-cc[t11];
                        ch[t6]=cc[t9]+cc[t11];
                    }
                    t3+=ido;
                    t4+=ido;
                    t8+=t10;
                }
            }
            goto L116;

            L112: t1=0;
            t2=ipp2*t0;
            t7=0;
            for(j=1;j<ipph;j++)
            {
                t1+=t0;
                t2-=t0;
                t3=t1;
                t4=t2;
                t7+=(ido<<1);
                t8=t7;
                t9=t7;
                for(i=2;i<ido;i+=2)
                {
                    t3+=2;
                    t4+=2;
                    t8+=2;
                    t9-=2;
                    t5=t3;
                    t6=t4;
                    t11=t8;
                    t12=t9;
                    for(k=0;k<l1;k++)
                    {
                        ch[t5-1]=cc[t11-1]+cc[t12-1];
                        ch[t6-1]=cc[t11-1]-cc[t12-1];
                        ch[t5]=cc[t11]-cc[t12];
                        ch[t6]=cc[t11]+cc[t12];
                        t5+=ido;
                        t6+=ido;
                        t11+=t10;
                        t12+=t10;
                    }
                }
            }
            L116: ar1=1.0f;
            ai1=0.0f;
            t1=0;
            t9=(t2=ipp2*idl1);
            t3=(ip-1)*idl1;
            for(l=1;l<ipph;l++)
            {
                t1+=idl1;
                t2-=idl1;

                ar1h=dcp*ar1-dsp*ai1;
                ai1=dcp*ai1+dsp*ar1;
                ar1=ar1h;
                t4=t1;
                t5=t2;
                t6=0;
                t7=idl1;
                t8=t3;
                for(ik=0;ik<idl1;ik++)
                {
                    c2[t4++]=ch2[t6++]+ar1*ch2[t7++];
                    c2[t5++]=ai1*ch2[t8++];
                }
                dc2=ar1;
                ds2=ai1;
                ar2=ar1;
                ai2=ai1;

                t6=idl1;
                t7=t9-idl1;
                for(j=2;j<ipph;j++)
                {
                    t6+=idl1;
                    t7-=idl1;
                    ar2h=dc2*ar2-ds2*ai2;
                    ai2=dc2*ai2+ds2*ar2;
                    ar2=ar2h;
                    t4=t1;
                    t5=t2;
                    t11=t6;
                    t12=t7;
                    for(ik=0;ik<idl1;ik++)
                    {
                        c2[t4]+=ar2*ch2[t11++];
                        t4++;
                        c2[t5]+=ai2*ch2[t12++];
                        t5++;
                    }
                }
            }

            t1=0;
            for(j=1;j<ipph;j++)
            {
                t1+=idl1;
                t2=t1;
                for(ik=0;ik<idl1;ik++)ch2[ik]+=ch2[t2++];
            }

            t1=0;
            t2=ipp2*t0;
            for(j=1;j<ipph;j++)
            {
                t1+=t0;
                t2-=t0;
                t3=t1;
                t4=t2;
                for(k=0;k<l1;k++)
                {
                    ch[t3]=c1[t3]-c1[t4];
                    ch[t4]=c1[t3]+c1[t4];
                    t3+=ido;
                    t4+=ido;
                }
            }

            if(ido==1) goto L132;
            if(nbd<l1) goto L128;

            t1=0;
            t2=ipp2*t0;
            for(j=1;j<ipph;j++)
            {
                t1+=t0;
                t2-=t0;
                t3=t1;
                t4=t2;
                for(k=0;k<l1;k++)
                {
                    t5=t3;
                    t6=t4;
                    for(i=2;i<ido;i+=2)
                    {
                        t5+=2;
                        t6+=2;
                        ch[t5-1]=c1[t5-1]-c1[t6];
                        ch[t6-1]=c1[t5-1]+c1[t6];
                        ch[t5]=c1[t5]+c1[t6-1];
                        ch[t6]=c1[t5]-c1[t6-1];
                    }
                    t3+=ido;
                    t4+=ido;
                }
            }
            goto L132;
            L128: t1=0;
            t2=ipp2*t0;
            for(j=1;j<ipph;j++)
            {
                t1+=t0;
                t2-=t0;
                t3=t1;
                t4=t2;
                for(i=2;i<ido;i+=2)
                {
                    t3+=2;
                    t4+=2;
                    t5=t3;
                    t6=t4;
                    for(k=0;k<l1;k++)
                    {
                        ch[t5-1]=c1[t5-1]-c1[t6];
                        ch[t6-1]=c1[t5-1]+c1[t6];
                        ch[t5]=c1[t5]+c1[t6-1];
                        ch[t6]=c1[t5]-c1[t6-1];
                        t5+=ido;
                        t6+=ido;
                    }
                }
            }

            L132: if(ido==1)return;

            for(ik=0;ik<idl1;ik++)c2[ik]=ch2[ik];

            t1=0;
            for(j=1;j<ip;j++)
            {
                t2=(t1+=t0);
                for(k=0;k<l1;k++)
                {
                    c1[t2]=ch[t2];
                    t2+=ido;
                }
            }

            if(nbd>l1) goto L139;

            iis= -ido-1;
            t1=0;
            for(j=1;j<ip;j++)
            {
                iis+=ido;
                t1+=t0;
                idij=iis;
                t2=t1;
                for(i=2;i<ido;i+=2)
                {
                    t2+=2;
                    idij+=2;
                    t3=t2;
                    for(k=0;k<l1;k++)
                    {
                        c1[t3-1]=wa[index+idij-1]*ch[t3-1]-wa[index+idij]*ch[t3];
                        c1[t3]=wa[index+idij-1]*ch[t3]+wa[index+idij]*ch[t3-1];
                        t3+=ido;
                    }
                }
            }
            return;

            L139: iis= -ido-1;
            t1=0;
            for(j=1;j<ip;j++)
            {
                iis+=ido;
                t1+=t0;
                t2=t1;
                for(k=0;k<l1;k++)
                {
                    idij=iis;
                    t3=t2;
                    for(i=2;i<ido;i+=2)
                    {
                        idij+=2;
                        t3+=2;
                        c1[t3-1]=wa[index+idij-1]*ch[t3-1]-wa[index+idij]*ch[t3];
                        c1[t3]=wa[index+idij-1]*ch[t3]+wa[index+idij]*ch[t3-1];
                    }
                    t2+=ido;
                }
            }
        }