Belirli noktalarda sabit nokta aritmetiği kullanımı uygun olabilir. Genellikle bilimsel bilgi işlem için (en azından çoğu insanın düşündüğü anlamda) karşılaşılan geniş dinamik aralıkların ifade edilmesi gereği uygun değildir. Bir örnek olarak özdeğer problemlerinden bahsediyorsunuz, ancak çoğu zaman bilimde, bir matrisin en küçük özdeğerleriyle ilgileniyorsunuz (örneğin, bir kuantum sisteminin temel durumunu hesaplamada). Eğer sabit noktayı kullanırsanız, küçük özdeğerlerin doğruluğu büyük öz değerlere göre genel olarak oldukça bozulur. Matrisiniz büyük oranlara göre değişen girişler içeriyorsa, küçük özdeğerler çalışma hassasiyetinde tamamen ifade edilemez olabilir. Bu sayıların temsiliyle ilgili bir sorundur; bu argümanlar ara hesaplamaları nasıl yaptığınızdan bağımsız olarak geçerlidir. Hesaplanan sonuçlara uygulamak için muhtemelen bir ölçeklendirme çalıştırabilirsiniz, ancak şimdi kayan noktayı icat ettiniz. Elemanları iyi davranan, ancak özdeğerleri son derece zayıf davranan (gibi) matrisler oluşturmak kolaydır.Wilkinson matrisleri , hatta tamamen tamsayı girişleri olan matrisler ). Bu örnekler göründükleri kadar patolojik değildir ve bilimin son noktasında birçok sorun çok kötü davranılmış matrisleri içerir, bu nedenle bu bağlamda sabit nokta kullanmak bir Kötü Fikirdir (TM).
Sonuçların büyüklüğünü bildiğinizi ve üs üzerindeki bitleri boşa harcamak istemediğinizi iddia edebilirsiniz, bu yüzden ara maddeler hakkında konuşalım. Sabit nokta kullanmak, daha yüksek hassasiyetle çalışmak için gerçekten büyük acılar geçmedikçe, felaket iptalleri ve yuvarlama etkilerini daha da kötüleştirecektir. Performans cezası çok büyük olurdu ve aynı mantis bit genişliği ile bir kayan nokta gösteriminin kullanılmasının daha hızlı ve daha doğru olacağını tahmin ediyorum.
Sabit noktanın parlayabileceği bir alan, geometrik hesaplamanın belirli alanlarındadır. Özellikle tam aritmetiğe ihtiyacınız varsa veya önceden tüm sayıların dinamik aralığını biliyorsanız, sabit nokta, temsilinizdeki tüm bitlerden yararlanmanızı sağlar. Örneğin, iki çizginin kesişimini hesaplamak istediğinizi ve bir şekilde iki çizginin uç noktalarının birim karede oturacak şekilde normalize edildiğini varsayalım. Bu durumda, kesişme noktası, eşdeğer bir kayan nokta numarası (üssü üzerindeki bitleri boşa harcayacaktır) kullanmaktan daha fazla hassasiyetle gösterilebilir. Şimdi, bu hesaplamada gerekli olan ara sayıların daha yüksek hassasiyetle hesaplanması veya en azından çok dikkatli bir şekilde yapılması gerektiği neredeyse kesindir (iki sayının ürününü başka bir sayıya böldüğünüzde, bu konuda çok dikkatli olmanız gerekir ). Bu açıdan, sabit nokta, hesaplama açısından değil, temsil açısından daha avantajlıdır ve algoritma çıktılarınızın dinamik aralığı üzerinde kesin üst ve alt sınırlar kurabildiğinizde bunun genellikle doğru olduğunu söyleyecek kadar ileri giderim . . Bu nadiren olur.
Kayan nokta temsillerinin kaba ya da yanlış olduğunu düşünürdüm (neden bir üs üzerindeki atık bitleri ?!). Ama zamanla bunun gerçek sayılar için mümkün olan en iyi temsillerden biri olduğunu fark ettim. Doğadaki şeyler kütük ölçeklerinde ortaya çıkar, bu nedenle gerçek veriler çok çeşitli üsleri kapsar. Ayrıca mümkün olan en yüksek göreceli doğruluğu elde etmek için kütük ölçeklerinde çalışmayı gerektirir, bu da bir üsün izlenmesini daha doğal hale getirir. "Doğal" bir temsil için diğer tek rakip simetrik seviye endeksidir . Bununla birlikte, toplama ve çıkarma, bu sunumda çok daha yavaştır ve IEEE 754'ün donanım desteğinden yoksundur . Kayan nokta standartlarına muazzam miktarda düşünce konulmuştur., sayısal doğrusal cebirin bir sütunu ile. Sayıların "doğru" gösteriminin ne olduğunu bildiğini düşünürdüm.