/* cosine.c * ---------------------------------------------------------------------------- * "THE BEER-WARE LICENSE" (Revision 42): * wrote this file. As long as you retain this notice * you can do whatever you want with this stuff. If we meet some day, and you * think this stuff is worth it, you can buy me a beer in return. * Benjamin Chausse * ---------------------------------------------------------------------------- */ #include #include "format.h" #include "testData.h" const int DEBUG = FALSE; double cos(double input, int precision){ double ttl = 1; int denom = 1; double num; for (int i=2;i<=(2*precision);i+=2){ num = pow(input,i); denom *= i*(i-1); ttl += ( (i/2)%2 == 0 ) ? num/denom : -num/denom; } return ttl; } int main(){ const int precision = 20; const double threshold = 1e-9; for (int i=0; ithreshold ){ printf("ERROR: \n" "Deviation between calculated value and expected value\n" "surpasses threshold of %f for number %f\n" "Expected: %f but got: %f\n", threshold, piValues[i][0], piValues[i][2], cos(piValues[i][0],precision)); return 1; } else { if (DEBUG){ printf("%f IS ALL GOOD!\n",piValues[i][0]); } } } printf("All checks have passed!\n"); return 0; }