Pull to refresh

Comments 33

Вот ещё одна интересная статья про деление, но 8-битное https://specbranch.com/posts/faster-div8/

Глянул по диагонали - да, это очень близко к теме статьи, и что то интересное про полиномы Чебышева

Может, вместо "мерим" лучше употреблять "измеряем"?

И почему зелёный цвет вдруг стал зеленным?

Можно было такое в личку кинуть :)

Можно было до публикации принять к сведению вот это:

https://habr.com/ru/articles/830040/

Спойлер: там есть раздел "Кто виноват — ясно, а делать-то что?"

Очень смешно

Можете пояснить, что хотели сказать? Что вовсе не обязательно грамотно писать статьи? Это сложно?

Вы нашли одну ошибку на статью и одно немного устаревшее слово, я вас поздравляю с этим

отличается в 4-ом разряде. В этом и причина, почему мы не храним второй байт: по сути из первого байта мы используем только старшую тетраду

Правильно пишется: в "4-м". После "по сути" не хватает запятой. В конце предложения ставится точка.

Хотя, для uint16_t он является избыточным для более широких типов uint32_t, uint64_t полная таблица дробей будет заниматься неоправданно много

После "избыточным" не хватает запятой. И чем таблица будет заниматься?

Я знаю, что Вы мне можете написать: мы не экзамене по русскому языку и т.д. Дело Ваше.

Ага, больше я это обсуждать не собираюсь - считайте, что у меня авторская пунктуация во всех предложениях

Я понял у вас развлечение - погадить в комментариях, ну что ж. Не мои проблемы. Была бы цель исправить ошибки - кинули б в личку, говорят - это просто

Исправлять ошибки должны комментаторы, а не автор?

Говорят, прогнать текст через автокорректор - это просто. Хотя бы через Microsoft Word, там можно нажать F7. Работает, начиная с MS Office 97.

Пунктуацию он вам толком не исправит

Да, это проблема.

Тут другой вопрос: если вам так всё не нравится зачем это читать, и ещё и комментировать ?

Процитируйте место, по которому Вы решили, что мне всё не нравится.

Ахах, по всем, ну ок

Не мои проблемы.

выходит уныло - предлагаю пойти поругаться куда-то исчо

Предлагаю вспомнить "больше я это обсуждать не собираюсь".

точка там есть (и была)

Очень интересно! Мы делали так - перемножали два быстрых обратных корня - тоже неплохо получалось.

типа формула

А сами множители считаются методом Ньютона?

Примерно да...
ru.wikipedia.org/wiki/Быстрый_обратный_квадратный_корень
https://habr.com/ru/articles/730872/
https://habr.com/ru/companies/infopulse/articles/336110/

Хотя, для uint16_t он является избыточным для более широких типов uint32_t, uint64_t полная таблица дробей будет заниматься неоправданно много памяти, а значит, реализация и применения метода касательных будет иметь смысл.

Если использовать этот метод для uint64_t, то как его производительность будет соотноситься со встроенной операцией деления?

Невозможно ответить на этот вопрос, не проведя экспериментов. Скорее всего результат будет неплохой - храним все значения для uit16_t , делаем два шага алгоритма , шаг коррекции

Почему нельзя использовать тот же самый метод - использовать те же самые 3 бита для приближения, но увеличить количество итераций, чтобы получить точность уже 64 бита?

Так можно - но каждая итерация же делает метод медленнее

Так в этом и был мой вопрос - насколько медленнее получится, если попробовать делить этим методом длинные числа.

Не буду повторяться с ответом, тут нужно учесть, что уже на uint32_t померить все комбинации - как я мерю в статье - будет долго, либо нужно раскидывать по потокам желательно на какой-то мощной машине, либо брать не все комбинации

Не привожу исходный код измерений для метода divide, потому что он отличается только одной строкой, средний результат: 5.8 секунды — лучше! Причём — значительно!

Удивительно, как компилятор умеет векторизовать такой код, с поиском по таблице и проверками остатка, что он оказывается быстрее стандартного деления (в SIMD ведь нет целочисленного деления? но я удивлюсь, если приведённый вами код окажется быстрее, чем реализация такого типа с делением в вещественных числах)

Это очень интересный вопрос, на который опять же невозможно дать ответа просто из теоретических соображений

Sign up to leave a comment.