This is corect.c in view mode; [Download] [Up]
#include "lpc.h" #include "complex.h" corect(r, th, framn) double r[], th[], framn[]; { int j, k, l1, n, np; static complex zero = {0.0, 0.0}; static complex one = {1.0, 0.0}; complex w[127], ww; np = NPOLE + 1; for (n=0; n < NPOLE ;++n) { if (r[n] >= (double) 1.0 ) r[n] = (double) 1.0 / r[n]; if (r[n] > (double) 0.99 ) r[n] = (double) 0.99; } for (k=0; k < NPOLE ;++k) w[k] = zero; w[NPOLE] = one; for (k=0; k < NPOLE ;++k) { ww.real = r[k] * cos(th[k]); ww.imag = r[k] * sin(th[k]); l1 = NPOLE - (k+1); for (j=l1; j < NPOLE ;++j) { w[j] = cadd(w[j+1], cmult(w[j], cneg(ww)) ); w[NPOLE] = cmult(w[NPOLE], cneg(ww)); } } for (j=0; j < NPOLE ;++j) framn[j] = w[j+1].real; return; }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.