/* nag_zeros_real_poly(c02agc) Example Program * * Copyright 1991 Numerical Algorithms Group. * * Mark 2, 1991. */ #include #include #include #include #include #define MAXDEG 100 int main(void) { Complex z[MAXDEG]; double a[MAXDEG+1]; Integer i, n, nroot; Boolean scale; Vprintf("c02agc Example Program Results\n"); /* Skip heading in data file */ Vscanf("%*[^\n]"); Vscanf("%ld", &n); scale = TRUE; if (n>0 && n<=MAXDEG) { for (i=0; i<=n; i++) Vscanf("%lf", &a[i]); Vprintf("\nDegree of polynomial = %4ld\n\n", n); c02agc(n, a, scale, z, NAGERR_DEFAULT); Vprintf("Roots of polynomial\n\n"); nroot = 1; while(nroot<=n) { if (z[nroot-1].im==0.0) { Vprintf("z = %12.4e\n", z[nroot-1].re); nroot += 1; } else { Vprintf("z = %12.4e +/- %14.4e\n", z[nroot-1].re, FABS(z[nroot-1].im)); nroot += 2; } } } else { Vfprintf(stderr, "Error: n is out of range: n = %3ld\n", n); return EXIT_FAILURE; } return EXIT_SUCCESS; }