rendered paste body#include <cmath>
#include <iostream>
template <double& R> struct Sine
{
static inline double sin()
{
double Rsqr = R * R;
return R * ( 1.0 - Rsqr / 2.0 / 3.0
* ( 1.0 - Rsqr / 4.0 / 5.0
* ( 1.0 - Rsqr / 6.0 / 7.0
* ( 1.0 - Rsqr / 8.0 / 9.0
* ( 1.0 - Rsqr / 10.0 / 11.0
* ( 1.0 - Rsqr / 12.0 / 13.0
* ( 1.0 - Rsqr / 14.0 / 15.0
* ( 1.0 - Rsqr / 16.0 / 17.0
* ( 1.0 - Rsqr / 18.0 / 19.0
* ( 1.0 - Rsqr / 20.0 / 21.0
) ) ) ) ) ) ) ) ) );
}
};
#define SineT(r) Sine<r>::sin()
int main(void)
{
std::cout << sin(10.5) << std::endl;
std::cout << SineT(10.5) << std::endl;
}