internal void lpc_to_curve(float[] curve, float[] lpc, float amp)
{
//memset(curve,0,sizeof(float)*l->ln*2);
for(int i=0; i<ln*2; i++)curve[i]=0.0f;
if(amp==0)return;
for(int i=0;i<m;i++)
{
curve[i*2+1]=lpc[i]/(4*amp);
curve[i*2+2]=-lpc[i]/(4*amp);
}
fft.backward(curve); // reappropriated ;-)
int l2=ln*2;
float unit=(float)(1.0/amp);
curve[0]=(float)(1.0/(curve[0]*2+unit));
for(int i=1;i<ln;i++)
{
float real=(curve[i]+curve[l2-i]);
float imag=(curve[i]-curve[l2-i]);
float a = real + unit;
curve[i] = (float)(1.0 / FAST_HYPOT(a, imag));
}
}