순수 Rust로 IEEE 754 binary128을 libquadmath와 bit-exact 재현하기 — 불가능하다는 단정이 틀렸던 이유

C++ 코드에 __float128(GCC 쿼드 정밀도)을 쓰는 부분을 Rust로 옮길 일이 있었다. 128비트 부동소수점, IEEE 754로는 binary128이다. f32/f64처럼 Rust 표준에 f128이 있긴 한데, 막상 손대보니 “이건 순수 Rust로는 못 한다"는 결론이 먼저 나왔다. 그런데 그 단정이 틀렸다. 정확히는 반은 맞고 반은 틀렸다. 며칠을 들여 직접 순수 Rust 파서를 만들고 6만 건 넘는 차등 퍼징으로 검증하고 나서야, “왜 안 된다고 생각했는지"와 “왜 사실은 되는지"가 둘 다 명확해졌다. 그 기록이다. 이 글에 서비스나 도메인 얘기는 없다. 순수하게 binary128, libquadmath, IEEE 754, Rust FFI 이야기만 한다. ...

2026-06-27 20:59 · 8분 소요 · Seunghan
개인정보처리방침 이용약관 면책조항 문의