/*
** compute a[0] + a[1]*x + a[2]*x*x + a[3]*x*x*x
** ... a[degree]*x^degree
*/
int poly1(int *a, int degree, int x) {
int i, j, xp, ret;
ret = 0;
for (i=0; i<=degree; i++) {
xp = 1;
for (j=0; j<i; j++) {
xp *= x;
}
ret += a[i]*xp;
}
return ret;
}
/*
** compute a[0] + a[1]*x + a[2]*x*x + a[3]*x*x*x
** ... a[degree]*x^degree
*/
int poly2(int *a, int degree, int x) {
int i, j, ret;
ret = a[degree];
for (i=degree-1; i>=0; i--) {
ret = a[i] + x*ret;
}
return ret;
}