File: poly_findroots_example.c

package info (click to toggle)
liquid-dsp 1.7.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 9,216 kB
  • sloc: ansic: 115,859; sh: 3,513; makefile: 1,350; python: 274; asm: 11
file content (28 lines) | stat: -rw-r--r-- 652 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// test polynomial root-finding algorithm
#include <stdio.h>
#include <math.h>
#include "liquid.h"

int main() {
    unsigned int n=6;   // polynomial length (order+1)
    unsigned int i;

    // generate polynomial
    float p[6] = {6,11,-33,-33,11,6};
    float complex roots[n-1];

    // print polynomial
    printf("polynomial:\n");
    for (i=0; i<n; i++)
        printf("  p[%3u] = %12.4f\n", i, p[i]);

    // compute roots of polynomial
    polyf_findroots(p,n,roots);
    printf("roots:\n");
    for (i=0; i<n-1; i++) {
        printf("  r[%3u] = %8.5f + j*%8.5f\n",
            i, crealf(roots[i]), cimagf(roots[i]));
    }

    return 0;
}