csvorbis.Lpc.lpc_from_curve C# (CSharp) Method

lpc_from_curve() private method

private lpc_from_curve ( float curve, float lpc ) : float
curve float
lpc float
return float
        float lpc_from_curve(float[] curve, float[] lpc)
        {
            int n=ln;
            float[] work=new float[n+n];
            float fscale=(float)(.5/n);
            int i,j;

            // input is a real curve. make it complex-real
            // This mixes phase, but the LPC generation doesn't care.
            for(i=0;i<n;i++)
            {
                work[i*2]=curve[i]*fscale;
                work[i*2+1]=0;
            }
            work[n*2-1]=curve[n-1]*fscale;

            n*=2;
            fft.backward(work);

            // The autocorrelation will not be circular.  Shift, else we lose
            // most of the power in the edges.

            for(i=0,j=n/2;i<n/2;)
            {
                float temp=work[i];
                work[i++]=work[j];
                work[j++]=temp;
            }

            return(lpc_from_data(work,lpc,n,m));
        }