/*       ATK IV NUMERICAL PROGRAMMING (2006)           */
/* Subroutine for Excercise 2.4 - Cosine power series  */

#include<stdio.h>
#include<math.h>
#define Pi 3.141592654

double cosine(double x, int n){
  int i;
  double step = 1.0;
  double sum = 1.0;

  x = fmod(x,2*Pi); /* Calculates x(mod 2Pi) */

  for(i=1;i<=n;i++){
    step *= -1.0*x*x/(2.0*i*(2.0*i-1.0));
    sum += step;
  }

  return sum;
}