Re[6]: Fixed-point to string
От: cppguard  
Дата: 01.10.23 09:58
Оценка:
Здравствуйте, fk0, Вы писали:

fk0> Но компилятор же небось инлайнит как (a*(2^8) + b) * (c*(2^8) + d) = a*c*(2^16) + (b*c + a*d)*(2^8) + b*d

fk0>(4 умножения, два сдвига и три сложения). Или по крайней мере вызывает встроенную функцию.
fk0>Последнее кстати плохо (т.к. регистровый аллокатор уже не понимает какие регистры испортятся и вынужден
fk0>что попало заталкивать в стек).
fk0> А какой смысл в "фиксированной точке" и 8-битных числах??? Любые практические данные
fk0>которые потребуется обрабатывать едва ли влезут в 16 бит. Хорошо бы иметь 24. А 32 может быть даже много.
fk0>Звук например. Сам-то прекрасно в 12 бит влезает, но какая-то обработка в два раза больше потребует.
fk0>Например, цифровой фильтр который выделяет узкую полосу частот. Помню сигнал с акселерометра обсчитывал.
fk0>Там и 8 бит на входе более чем, но нужно же считать векторные произведения, потом тригонометрические функции,
fk0>в итоге 16 не хватает для получения приемлемой точности. Вот 24 в самый раз.
Странные вопросы, потому что Я вроде уже несколько раз писал слово "AVR". Иногда полезно проветривать комнату и открывать окно, чтобы увидеть что-то кроме x86-64.

fk0> Просто нужно нормально писать код. Что на C, что на C++. Со временем пишешь сам так, что компилятор

fk0>варнингов даже не даёт. Обычный набор варнингов для GCC/Clang: -Wall -Wextra -Wcast-align -fstrict-aliasing,
fk0>ещё -Wconversion, но не все, от проекта зависит. И полезно прогонять с -fsanitize=undefined.
Это позиция вчерашнего студента. Сходи в большие корпорации, и посмотри, сколько там предупреждений компилятора, и какие проверки отключены.

fk0> Нет, это попахивает полезными практиками промышленного программирования.

fk0>Потому, что когда ты будешь вбивать число пи руками в код, то можешь на одну циферку
fk0>где-то недалеко от точки ошибиться. И никто не заметит даже. А потом Луна-25 улетает
fk0>на полной скорости в Луну. И ошмётков не соберёшь. Потому, что орбиту с неправильным пи
fk0>посчитало тоже неправильно.
Ты предлагаешь "5" вынести в константу, а потом эту константу использовать в шаблоне? Если так, то это шиза.

fk0> Число пи, кстати, в стандартной C/C++-библиотеке существует как константа M_PI.

Непереносимо, читай стандарт.

fk0> Мне как потенциальному код-ревьюверу, например, совершенно непонятно, почему 5, а не 6 или не 4.

Если бы ты проверял код Кармака с быстрым обратным корнем, то столкнулся бы с такой же проблемой. Это математика, в ней немножечко есть константы.

Я понимаю, что у тебя подгорает, что где-то кто-то что-то делает не так, как пишут в умных книжках. Я именно из-за этой проблемы и ушёл из программирования — надоели офисные крысы, которые знают много умных слов, но работающую программу с начала до конца никогда не напишут, потому что привыкли протирать штаны в корпорациях, где всего-то и нужно что подкрутить винтик тут, открутить там. Так что предлагаю прекратить дискуссию.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.