Если сделать PI = 2.0, то будет ещё проще и быстрее, есно при наличии аппаратной математики.
Код: Выделить всё
/// value = +4.0 ~ -4.0
/// error 0.025%
float sin_f2(float value)///35
{
float rev, res, nc;
if (value < 0.0f){
value = 0.0f - value;
nc = -1.0f;
}else nc = 1.0f;
if (value > 3.0f) value -= 4.0f;
else if (value > -1.0f) value = 2.0f - value;
res = value * value;
rev = 283.0f * value - (77.0f * res * value);
res *= 26.0f;
res += 180.0f;
rev /= res;
rev *= nc;
return rev;
};https://www.desmos.com/calculator/jlyultpmyt
Кстати в целых числах точность выше, но команд больше.



