Ana içeriğe geç
Programlama

Kayan noktalı ondalık toplamlarındaki yuvarlama hatalarının matematiksel yapısı incelendi

Öne çıkanlar

  • Makul parasal değerlerde iki kayan noktalı sayının toplamındaki hata en fazla 1 ulp ile sınırlı kalıyor.
  • 0,1 ve 0,2 toplamının 0,30000000000000004 çıkmasında çift anlamlı basamağa yuvarlama kuralı rol oynuyor.
  • 52 bitlik kesir alanının mod 100 özellikleri hata grafiklerinde periyodik desenler oluşturuyor.
  • Kayan nokta hataları 2Sum ve Dekker çarpımı gibi algoritmalarla doğrudan donanım seviyesinde hesaplanabiliyor.

Yazılım dünyasında ondalık hesaplamalar için ikili kayan noktalı sayıların kullanılmaması kuralı bilinmesine rağmen, basit toplama işlemlerinde hataların ne zaman ve nasıl ortaya çıktığı matematiksel olarak analiz edildi. Python ve diğer birçok dilde IEEE çift duyarlıklı kayan nokta standardında gerçekleşen işlemler incelendi. Sıfır ile bir arasındaki 0,01 katlarının ikili toplamlarında ortaya çıkan sapmaların rastgele olmadığı, belirgin periyodik desenler ve dama tahtası benzeri yapılar oluşturduğu gösterildi.

Araştırmada hata fonksiyonunun sınırları türetildi ve 70 trilyon dolara kadar olan makul parasal değerlerde, iki sayının kayan nokta toplamı ile gerçek toplamın kayan nokta temsili arasındaki farkın en fazla 1 ulp (en önemsiz basamağın birimi) olabileceği kanıtlandı. Python REPL ortamında 0,1 ile 0,2 toplandığında karşılaşılan 0,30000000000000004 sonucunun, hem ikili gösterimdeki yuvarlamadan hem de Steele ve White tarafından 1990 yılında tanımlanan ondalık yazdırma algoritmasının kurallarından kaynaklandığı ayrıntılandırıldı.

Desenlerin oluşumunda 52 kesir bitinin modüler aritmetikteki rolü ele alındı ve çift duyarlıkta 2 üzeri 52 değerinin mod 100 bazında sıfıra yakın olmasının hata desenlerindeki sürekliliği sağladığı aktarıldı. Analizde ayrıca bu tip hassas hata hesaplamalarını kayan nokta sınırları dışına çıkmadan gerçekleştirebilen 2Sum, Veltkamp bölmesi ve Dekker çarpımı gibi hatasız dönüştürme algoritmalarının Python uygulamaları paylaşıldı.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.