Нужно вычислить функцию при помощи рекуррентного соотношения членов ряда.

Вот моя рекуррентная формула:

Код программы:
#include <cmath>
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
	const double pi = 3.14159265358979323846;
	double x = pi / 2;
	double s = 0,
		eps = 1e-06;
	int k = 1;
	double elem = x * x;
	s = elem;
	while(fabs(elem) >= eps) {
		cout << k << " : " << elem << " : " << s << endl;
		++k;
		elem *= (-4 * x * x) / ((2 * k + 1) * (2 * k + 2));
		s += elem;
	}
	cout << "S: " << s << endl;
	cout << "MATH: " << sin(x) * sin(x);
	_getch();
    return 0;
}
Собственно проблема в том, что результат моей формулы бешено разнится с результатом функций из библиотеки. Есть подозрения, что формула не верна, но несколько раз переписывал.
