TGViewer
Типичный программист Типичный программист @tproger · 78.3K subscribers
Post #14784 7.29K
Разработчик писал свою математику, а нашёл одинаковый баг в Rust и musl

Shnatsel реализовывал fused multiply-add, операцию a*b+c с одним округлением, и обнаружил, что на субнормальных числах результат округляется не туда. Проверил стандартную библиотеку Rust: f32::mul_add ошибается так же. Проверил std::simd: то же. Проверил fmaf() в musl, libc, на которой собран Alpine: то же самое. Контрпример к первой версии его собственного патча нашла языковая модель, которую он попросил поискать ошибки.

Разница в один младший бит, около 15 частей на миллион, и только там, где FMA эмулируется программно: старые Intel без AVX2, Hygon, 32-битный ARM. Сам автор честно пишет: важно ли это на практике, он не знает, но называет риск для детерминированных симуляций, которые обязаны давать одинаковые биты на разных машинах.

Проверка занимает три hex-числа и одну строку на C; какие исправления уже влиты, а какие висят на ревью, на сайте.
  • 👍 24
  • 🔥 3
  • ⚡ 2
  • ❤ 2
  • 👏 1
  • 😍 1
  • 💯 1
  • 🆒 1
More from @tproger
  1. Sep 20, 2026Как повторное использование ReverseProxy ускорило прокси на Go в 3,8 раза Автор нагрузил с…
  2. Sep 20, 2026Мы вернулись из Суздаля с новым взглядом на магазин у дома Были на tech-туре MAGNIT TECH «…
  3. Sep 19, 2026Вопрос на разогрев: что из этого появилось раньше — ICQ, MySpace или Nokia 3310? Если заду…
  4. Sep 19, 2026Почему тип указателя не гарантирует безопасность памяти Указатель сохраняет тип, даже когд…
  5. Sep 19, 2026В Суздаль за DevOps Недавно мы съездили на «Без предела: Исходный код ритейла» от MAGNIT T…
  6. Sep 18, 2026Как Cloudflare освободила 100 ТБ памяти в DNS-кеше 1.1.1.1 Big Pineapple за сервисом 1.1.1…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →