Рейтинг
12.57
голосов: 10

О блоге

Алгоритмические хитрости, типовые решения и заумные трюки. Все то, что можно воплотить программно на любом микроконтроллере или на компе (но применимо к электронике)

Администраторы (1)

Модераторы (0)

Модераторов здесь не замечено

Читатели (155)

dcoder Krieger Tabke XANDER marvin_yorke kest Vga Alatar mzw kalvenolt Reverb mist grand1987 Gornist Rom kvm labor neiver Leopoldius rumkin

Все читатели блога

Считаем синус быстро и точно: ч.3 - Практика

Наконец-то переходим к самой важной части — как это вот всё использовать. Здесь я расскажу, как выбрать подходящую комбинацию длины таблицы и степени полинома, как создать эти таблицы и приведу примеры, как посчитать быстро (ну или относительно быстро).
Картинки не будет, не нашёл подходящей…


Читать дальше
  • +6
  • 08 октября 2021, 14:49
  • vix

Считаем синус быстро и точно: ч.2 - Точность вычислений

В этой части наглядно будет показано, как на точность вычислений влияет длина таблицы и размер полинома, а так же будет небольшое сравнение аппроксимаций синуса Полиномами Чебышёва и рядами Маклорена.




Читать дальше
  • +8
  • 08 октября 2021, 14:43
  • vix

Считаем синус быстро и точно: ч.1 - Теория

Хочу поделиться своей статьёй с хабра здесь, думаю пригодится. На хабре всё было одним большим куском, здесь же разобью на несколько статеек.
Поехали!

Если нужно найти синус, или другую тригонометрическую функцию на ПК, это делается просто — в большинство современных процессоров встроен блок для работы с числами с плавающей точкой, который довольно шустро (что совсем не факт) это посчитает.
Если это надо сделать это на МК без плавающей точки — то возникают проблемы. Можно использовать функцию из поставляемой вместе с компилятором библиотеки, будет точно, но очень медленно. Если надо быстрее — то первое, что приходит в голову, заранее посчитать таблицу со значениями, но точность при этом сильно упадёт, и будет зависеть от шага аргумента между смежными значениями. Следующий интуитивно понятный шаг — использовать кусочно-линейную аппроксимацию. Это поможет поднять точность, но несильно. Иногда для достижения нужной точности размер таблицы всё равно превосходит разумные пределы.
Что же тогда делать? Увеличивать степень аппроксимации. Это позволит увеличить точность вычислений и (или) уменьшить размер таблиц. И сделать это совсем несложно.


Читать дальше
  • +2
  • 08 октября 2021, 14:39
  • vix

SVG для C++ Builder на FireMonkey


Хочу поделится возможно секретом Полишинеля, наверное многие знают конечно-же, но молчат :), как вывести SVG файл на канву С++ Builder в FireMonkey без привлечения многотонных библиотек и т.п.

Читать дальше

Делаем float из строки

Сегодня мы продолжим наши упражнения с плавающей точкой, и попробуем сделать её из текстовой строки. Как мы будем это делать?


Читать дальше

Избранные места из библиотеки float

Как-то вот потребовалось кое-что сделать с использованием FLOAT, начал я рыть интернет. И тут со всей своей кристалльной ясностью вскрылся факт, что хороших руководств относительно FLOAT и ASSEMBLER для AVR нет.

Читать дальше

Частный случай конвертера IEEE754 в строку.

Частный случай — потому что вывод немного нестандартный. Вместо классического 1.23E5 эта процедура отдаёт числа вида 123456.789, соответственно диапазон сжат до (скажем так) употребимых значений. Сверху вывод ограничен числом 16777215, а снизу числом 0.0001.

Читать дальше

Delphi. Определение разрешения видеофайлов форматов AVI и MKV прямым парсингом без использования кодеков. Часть II.

  Решение данной задачи потребовалось для автоматизированной сортировки файлов указанных форматов при пакетной обработке. При разработке применялись версии Delphi 7 и Windows 7.
  Эта статья в какой-то мере является продолжением предыдущей статьи, а вернее ее расширением. В прошлый раз методом научного тыка удалось собрать парсер получения разрешения видеофайла медиаконтейнера MP4. В этот раз я добавлю в этот парсер обработку медиаконтейнеров AVI и MKV. Т.к. новый парсер базируется на описанном в предыдущей статье, обработку медиаконтейнера MP4 я здесь затрагивать не буду, нового пока ничего не появилось. Так разные косметические мелочи, вроде переименования функций с указанием типа контейнера для которого предназначены.


Читать дальше
  • 0
  • 09 декабря 2019, 18:18
  • anakost
  • 1

Delphi. Определение разрешения видеофайла формата MP4 прямым парсингом без использования кодеков.

  Решение данной задачи потребовалось для автоматизированной пакетной обработки файлов формата MP4. Не указал сначала версии Delphi и Windows, исправляюсь. Обе семерки, Delphi 7 и Windows 7.
  Попытки решить задачу «в лоб», т.е. поиском в инете подходящего кода, у меня к положительному результату не привели. Наиболее адекватный код советовал грузить консольный декодек FFMPEG и у него запрашивать требуемое разрешение видеофайла. Это мне не понравилось — загрузи сторонний кодек, перенаправь ввод/вывод консоли, запроси требуемое, распарси вывод консоли для получения требуемого. Как то сложновато выглядит простое получение разрешения видеофайла MP4.
  Я был уверен что получить разрешение видеофайла MP4 можно гораздо быстрее и проще, надо только знать как. Пришлось полдня гуглить с промежуточными экспериментами и я нашел способ. Не знаю насколько он универсален, возможно на некоторых файлах MP4 работать не будет, у меня сработал на всех.


Читать дальше

Реверс-инжиниринг протокола обмена в оборудовании EOS

Сразу скажу, заголовок, возможно, несколько громковат. Мне реально потребовалось выдернуть из протокола всего одну команду для управления диммером. О том, как это было сделано и что получилось в итоге, читайте дальше в статье.


Читать дальше
  • +5
  • 29 мая 2019, 09:20
  • FDA