Сб июн 30, 2018 11:37:50
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]
Сб июн 30, 2018 11:41:00
Сб июн 30, 2018 11:47:51
И не на математическом сопроцессоре, а "стандартным арсеналом" типового 8-разрядного МК.
Сб июн 30, 2018 11:54:24
Вы же просили.BOB51 писал(а):И не на математическом сопроцессоре, а "стандартным арсеналом" типового 8-разрядного МК.
Что попросили, то и дали. В STM32F4 и не только есть математический сопроцессор, для чисел с плавающей точкой.BOB51 писал(а):Пример исходника на чистом ассемблере для АРМ
Сб июн 30, 2018 12:02:09
Сб июн 30, 2018 12:09:57
Сб июн 30, 2018 12:33:43
Reflector писал(а):Спойлер
- Код:
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;
}
Reflector писал(а):Чем спрашивающему листинг на ассме не угодил учитывая, что под ARM с FPU он все равно ничего писать не будет?
Сб июн 30, 2018 12:55:36
Почему сунули? Ведь написали же.BOB51 писал(а):Ясненько - сунули команды математического сопроцессора и рады.
FPU.Reflector писал(а):6 сложений, 7 умножений, на STM32 с FPU синус тактов за 30 считает с неплохой точностью.
Это все равно что в начале 90-тых, имея Радио-86РК писать "Ох уже эта реклама Pentium 1".BOB51 писал(а):Ох уж та реклама АРМов.
Для тех МК под которые вы пишите, может быть, а для современных есть другие варианты.BOB51 писал(а):Таки проще табличного варианта похоже и не предвидится.
Сб июн 30, 2018 13:03:48
Сб июн 30, 2018 13:17:40
Сб июн 30, 2018 13:19:17
Сб июн 30, 2018 13:49:51
Сб июн 30, 2018 13:56:29
Сб июн 30, 2018 14:10:17
Сб июн 30, 2018 14:20:53
Сб июн 30, 2018 15:01:56
Сб июн 30, 2018 15:49:59
Сб июн 30, 2018 17:55:10
Сб июн 30, 2018 18:59:16