home *** CD-ROM | disk | FTP | other *** search
/ Education Sampler 1992 [NeXTSTEP] / Education_1992_Sampler.iso / SoundAndMusic / cmix / lpc / stabilization / newroottest.c < prev    next >
C/C++ Source or Header  |  1990-02-03  |  1KB  |  55 lines

  1. /* newroottest.f -- translated by f2c (version of 26 January 1990  18:57:16).
  2.    You must link the resulting object file with the libraries:
  3.     -lF77 -lI77 -lm -lc   (in that order)
  4. */
  5.  
  6. #include "f2c.h"
  7.  
  8. /* Subroutine */ int stabletest_(frame, n, flag_)
  9. real *frame;
  10. integer *n;
  11. integer *flag_;
  12. {
  13.     /* System generated locals */
  14.     integer i_1, i_2;
  15.     real r_1;
  16.  
  17.     /* Local variables */
  18.     static real a[22500]    /* was [150][150] */;
  19.     static integer i, m, mm;
  20.     static real rk[249];
  21.     /* Parameter adjustments */
  22.     --frame;
  23.  
  24.     /* Function Body */
  25.     *flag_ = 1;
  26.     a[(*n + 1) * 150 - 150] = (float)1.;
  27.     i_1 = *n;
  28.     for (i = 1; i <= i_1; ++i) {
  29. /* L10: */
  30.     a[i + 1 + (*n + 1) * 150 - 151] = frame[i];
  31.     }
  32.     i_1 = *n;
  33.     for (mm = 1; mm <= i_1; ++mm) {
  34.     m = *n - mm + 1;
  35.     rk[m - 1] = a[m + 1 + (m + 1) * 150 - 151];
  36.     if ((r_1 = rk[m - 1], dabs(r_1)) < (float)1.) {
  37.         goto L20;
  38.     }
  39.     *flag_ = 0;
  40.     return 0;
  41. L20:
  42.     i_2 = m;
  43.     for (i = 1; i <= i_2; ++i) {
  44. /* L25: */
  45. /* Computing 2nd power */
  46.         r_1 = rk[m - 1];
  47.         a[i + m * 150 - 151] = (a[i + (m + 1) * 150 - 151] - rk[m - 1] * 
  48.             a[m - i + 2 + (m + 1) * 150 - 151]) / ((float)1. - r_1 * 
  49.             r_1);
  50.     }
  51.     }
  52.     return 0;
  53. } /* stable_ */
  54.  
  55.