Я понимаю, что под Си это не вопрос в принципе.[/uquote]
Код: Выделить всё
float sin(float x) // -Pi..Pi
{
float x2 = x * x;
float p7 = -0.00000002f * x2 + 0.000002522f;
float p5 = p7 * x2 - 0.000173505f;
float p3 = p5 * x2 + 0.006620879f;
float p1 = p3 * x2 - 0.101321180f;
return (x - Pi) * (x + Pi) * p1 * x;
}Спойлер
Код: Выделить всё
vldr s14, [sp, #28]
vldr s7, [pc, #636]
vldr s8, [pc, #636]
vldr s9, [pc, #636]
vldr s12, [pc, #636]
vldr s10, [pc, #636]
vldr s15, [pc, #636]
vmul.f32 s13, s14, s14
vsub.f32 s11, s14, s12
vfma.f32 s8, s13, s7
vadd.f32 s12, s14, s12
vfma.f32 s9, s13, s8
vmul.f32 s12, s11, s12
vmov.f32 s11, s10
vfma.f32 s11, s13, s9
vfma.f32 s15, s13, s11
vmul.f32 s15, s15, s12
vmul.f32 s15, s15, s14
vstr s15, [sp, #24]Конкретно в моем примере используются многочлены Чебышева, объясняют пусть математики, ты ведь хотел понять как это реализовать в железе, следовательно нужно понять лишь как в нем реализовать несколько математических операций.
