Разложение cosec в ряд Тейлора C++?
Советую почти полностью переписать код, хорошенько его оптимизировав. Например бессмысленно находить каждый раз 2^(2n+1), зная значение 2^(2n-1). Тоже самое для факториала.
В итоге нахождение косинуса поместится в 1 цикл и для определения достижения необходимой точности не понадобится 2жды вызывать две довольно затратные функции.
UPD. И в этом условии:abs(f(n,sum)-f(n+1,sum))<epsilon
должен стоять знак больше
UPD2. для double и float лучше использовать функцию double fabs (double x);
float fabs (float x);
long double fabs (long double x);
UPD3. По поводу оптимизации, я имел в виду нечто такое:double sin(double x, double EPS) {
    double result = x;
    double delta = x;
    for (int n=1; fabs(delta)>EPS; n++) {
        delta *= x/(2*n)*x/(2*n+1);
        delta *= -1;
        result+=delta;
    }
    return result;
}
double cosec(double x, double EPS) {
    return 1.0f/sin(x, EPS);
}
@ManWithBear 
Вот что получилось:double func(double X, double epsilon)
{
    double r = 0, r1=0;
	r+=pow(X,1)/fact(1);
			r1=r + pow(-1,2.0)*pow(X,3)/fact(3);

    for(double n=0;fabs(r-r1)>epsilon;n++) 
        {
			r+=pow(-1,n)*pow(X,2*n+1)/fact(2*n+1);
			r1=r + pow(-1,n+1)*pow(X,2*n+1+1)/fact(2*n+1+1);
			
        }
	return 1/r;
}
}