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

#ifndef M_PI
#define M_PI (4*atan(1.0))
#endif

double sinus(double x);
double cosinus(double x);

double sinus(double x) {
    if(fabs(x) < 2.45E-5) { // (2.45E-5)²/6 ≈ 1E-10
        return x;
    } else {
        return 2 * sinus(x/2) * cosinus(x/2);
    }
}

double cosinus(double x) {
    if(fabs(x) < 1.4E-5) { // (1.4E-5)²/2 ≈ 1E-10
        return 1;
    } else {
        double c = cosinus(x/2), s = sinus(x/2);
        return (c + s) * (c - s);
    }
}

int main() {
    printf("sin(π/6) = %f\n", sinus(M_PI/6));
    printf("cos(π/3) = %f\n", cosinus(M_PI/3));
    return 0;
}
