Всем привет! У кого какие мысли по поводу перехода Apple на собственные ARM процессоры? Что будет со старыми Мак на Интел и не произойдет ли то, что произошло с Майкросовт с их Серфейс буками на арм архитектуре.
произошло исключительно по вине самих Microsoft. И это был далеко не единственный продукт, который они сами же загубили.то, что произошло с Майкросовт с их Серфейс буками на арм архитектуре
а что произошло с их буками, я ваще не в курсе? Гуглится что-то весьма полярное, дайте линк плз, почитаю!произойдет ли то, что произошло с Майкросовт с их Серфейс буками
Происходило и не раз, никто пока, не пострадал сильно.и не произойдет ли то, что произошло
у арма и рядом нет
сравнили попу с пальцем, пардон муа.Ну для тех, кто не может сам написать, например, fft - есть CMSIS DSP, правда, его еще не допилили под v8-A (64 бита), только есть под v8-M (32 бита).
Вы имеете в виду быстрое преобразование Фурье?Ну для тех, кто не может сам написать, например, fft - есть CMSIS DSP, правда, его еще не допилили под v8-A (64 бита), только есть под v8-M (32 бита).
у вас вообще очень свой подход к жизни, и вероятно вы на столько энциклопеически развиты что нам обычным людям за вами не угнаться =)Ну для тех, кто не может сам написать, например, fft - есть CMSIS DSP, правда, его еще не допилили под v8-A (64 бита), только есть под v8-M (32 бита).
у вас вообще очень свой подход к жизни
и написан на си.
#if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE)
...
static void _arm_radix4_butterfly_f32_mve(const arm_cfft_instance_f32 * S,float32_t * pSrc, uint32_t fftLen)
{
...
vecA = vldrwq_f32(inA);
vecC = vldrwq_f32(inC);
...
vecB = vldrwq_f32(inB);
vecD = vldrwq_f32(inD);
..
vst1q(inA, vecTmp0);
..
vecW = vld1q(pW2);
...
vst1q(inB, vecTmp1);
}
static inline __m128i add_saturated(__m128i a, __m128i b) {
__m128i sum = _mm_add_epi32(a, b); // a + b
__m128i axb = _mm_xor_si128(a, b); // check if a and b have different sign
__m128i axs = _mm_xor_si128(a, sum); // check if a and sum have different sign
__m128i overf1 = _mm_andnot_si128(axb, axs); // check if sum has wrong sign
__m128i overf2 = _mm_srai_epi32(overf1, 31); // -1 if overflow
__m128i asign = _mm_srli_epi32(a, 31); // 1 if a < 0
__m128i sat1 = _mm_srli_epi32(overf2, 1); // 7FFFFFFF if overflow
__m128i sat2 = _mm_add_epi32(sat1, asign); // 7FFFFFFF if positive overflow 80000000 if negative overflow
return _mm_blendv_epi8(sum, sat2, overf2); // sum if not overflow, else sat2
}