Yazılımda radyan yerine tur kullanımı performansı ve hassasiyeti artırıyor
Öne çıkanlar
- Matematik kütüphaneleri radyan girdilerini fonksiyona girer girmez bölerek derece veya tur katlarına dönüştürüyor.
- 90 ve 180 derece gibi açılar tur cinsinden 0,25 ve 0,5 olarak ikilik kayan noktada kayıpsız temsil ediliyor.
- CUDA sincospi gibi mevcut komutlar yarım tur yaklaşımını donanım seviyesinde destekliyor.
Yazılımcılar trigonometrik hesaplamalarda yaygın olarak pi veya tau sabitlerini kullanarak açıları radyana dönüştürüyor. Casey Muratori yayımladığı teknik analizde, modern oyun motorları ve matematik kütüphanelerinin bu dönüşümleri gereksiz yere tekrarladığını ortaya koydu. Kullanıcı kodu trigonometrik fonksiyonları çağırmadan önce veriyi pi ile çarparken, kütüphaneler fonksiyon girişinde bu değeri hemen pi değerine bölerek indirgiyor.
Analize göre tam bir çemberi 0 ile 1 aralığında tanımlayan "tur" (turn) birimini kullanmak, fazladan çarpma ve bölme işlemlerini ortadan kaldırıyor. Kayan nokta aritmetiğinde radyan değerleri hassas biçimde saklanamazken; 90, 180 ve 270 derece gibi yaygın açılar tur cinsinden sırasıyla 0,25, 0,5 ve 0,75 değerleriyle ikilik sistemde tam ve kayıpsız olarak ifade ediliyor.
Nvidia CUDA kütüphanesindeki sincospi gibi mevcut çözümlerin yarım tur parametresiyle doğrudan çalıştığı belirtiliyor. Geliştiricilerin kendi matematik kütüphanelerinde radyan yerine tur temelli sinüs ve kosinüs fonksiyonlarına geçmesi, hem kod karmaşıklığını azaltıyor hem de işlemci seviyesinde ek hesaplama yükünü önlüyor.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.