Hataların Matematiksel İşlevlerce Raporlanması
Önceki Gerçek Sayı Hesaplamalarında Hatalar Sonraki
Hataların Matematiksel İşlevlerce Raporlanması
Matematiksel işlevlerin çoğu sadece gerçek ya da karmaşık sayıların bir alt kümesi ile ilgilidir. Matematiksel olarak tanımlı olsalar bile, sonuçları dönüş türleri ile gösterilebilen aralıktan daha büyük ya da daha küçük olabilir. Bunlar sırasıyla saha hataları, üstten taşmalar ve alttan taşmalar olarak bilinir. Bu hatalardan biri oluştuğunda matematiksel işlevler çeşitli şeyler yaparlar. Bu kılavuzda bu yanıtların hepsine birden bir saha hatasının, üstten ya da alttan taşmanın sinyallenmesi olarak bakacağız.
Bir matematiksel işlev bir saha hatasına maruz kaldığında, geçersizlik olağandışılığı oluşturur ve NaN ile döner. Ayrıca, errno değişkenine EDOM hata durumunu atar; bu, IEEE 754 olağandışılıklarından nasibini almamış eski sistemlerle uyumluluk adına böyledir. Benzer şekilde üstten taşma oluştuğunda matematiksel işlevler üstten taşma olağandışılığı oluşturur ve duruma göre oo ya da -oo döndürür. Ayrıca, errno değişkenine ERANGE hata durumunu atar. Alttan taşma oluştuğunda matematiksel işlevler alttan taşma olağandışılığı oluşturur ve sıfırla (işaretli olabilir) dönerler. errno değişkenine ERANGE hata durumu atanmış olabilir, ama bu garanti değildir.
Bazı matematiksel işlevler matematiksel olarak bir karmaşık değerle sonuçlanacak şekilde tanımlanmıştır. Çok bilinen bir örnek, negatif bir sayının karekökünün alınmasıdır. csqrt gibi karmaşık sayılarla ilgili matematiksel işlevler böyle bir durumda uygun bir değerle dönecektir. sqrt gibi gerçek sayılarla ilgili işlevler ise böyle bir durumda bir saha hatasını sinyalleyecektir.
Bazı eski donanımlar sonsuzlukları desteklemez. Böyle bir donanımda üstten taşmalar gösterilebilen en büyük sayı ile ya da belli bir çok büyük sayı ile döner. math.h dosyasında tanımlanan makroları üstten taşmaları hem eski hem de yeni donanımlarda sınamak için kullanabilirsiniz.
double HUGE_VAL
float HUGE_VALF
long double HUGE_VALL
makro
Belli bir çok büyük sayıyı gösteren bir ifade. IEEE 754 kayan nokta biçimi kullanılan yeni donanımlarda makronun değeri sonsuzdur. Diğer makinelerde, genellikle gösterilebilen en büyük pozitif sayıdır.
Matematiksel işlevler sonucun gösterilebilenden çok büyük olması durumunda HUGE_VAL veya -HUGE_VAL makrolarının uygun türdeki sürümlerini döndürür.
Önceki Üst Ana Başlık Sonraki
Kayan Nokta Birimi Durum Sözcüğünün İncelenmesi Başlangıç Yuvarlama Kipleri
Bir Linux Kitaplığı Sayfası