/* ATK IV - Numerical Programming (2006) */
/*   Excercise 3.2 - Horner's Method     */

#include<stdio.h>
#include<math.h>

void horner(double x, double a[], int n, double *y, double *dy){
  
  int i;

  *y = a[1];
  *dy = 0.0;
 
  for(i=2;i<=n;i++){
    *dy = *y + *dy*x;
    *y = a[i] + *y*x;
  }

}