Çeşitli Gerçek Sayı Aritmetik İşlevleri
Önceki Aritmetik İşlevleri Sonraki
Çeşitli Gerçek Sayı Aritmetik İşlevleri
Bu bölümdeki işlevler C işleçleriyle yapıldığında kullanışsız olan bazı işlemleri yaparlar. Bazı işlemcilerde bu işlevlerin yaptığı işlemleri eşdeğer C kodundan daha hızlı yapan özel makine komutları vardır ve bu işlevler onları kullanabilmektedir.
double fmin
(double x,
 double y)
float fminf
(float x,
 float y)
long double fminl
(long double x,
 long double y)
işlev
fmin işlevi x ve y değerlerinden daha küçük olanla döner.
    ((x) < (y) ? (x) : (y))
ifadesine benzer bir işlem yapar ama x ve y sadece bir kere işleme sokulur.
Eğer argümanlardan biri bir sayı değilse, diğer argüman döner. Her iki argüman da NaN ise NaN döner.
double fmax
(double x,
 double y)
float fmaxf
(float x,
 float y)
long double fmaxl
(long double x,
 long double y)
işlev
fmax işlevi x ve y değerlerinden daha büyük olanla döner.
Eğer argümanlardan biri bir sayı değilse, diğer argüman döner. Her iki argüman da NaN ise NaN döner.
double fdim
(double x,
 double y)
float fdimf
(float x,
 float y)
long double fdiml
(long double x,
 long double y)
işlev
fdim işlevi x ve y arasındaki pozitif farkla döner. x - y işleminde x > y ise işlemin sonucu olan pozitif fark döner, değilse 0 döner.
Eğer argümanlardan biri ya da her ikisi de NaN ise NaN döner.
double fma
(double x,
 double y,
 double z)
float fmaf
(float x,
 float y,
 float z)
long double fmal
(long double x,
 long double y,
 long double z)
işlev
fma işlevi gerçek sayılarla çarpıp toplama işlemi yapar. İşlev, (x * y) + z işlemini yapar ama ara sonuç hedef türe yuvarlanmaz.
Bazı işlemciler bu işlemi gerçekleştiren özel komutlara sahip olduğundan bu işlev tasarlanmıştır. C derleyicisi bu işlemi bir defada yapamaz, çünkü x*y + z ifadesinde ara sonuç yuvarlanır. İşlemin bir defada ve hassasiyet kaybı olmadan yapılmasını istiyorsanız fma işlevini seçin.
Çarpıp toplama işleminin donanımda gerçeklenmediği işlemcilerde, fma işlevi ara sonuç yuvarlamasından kaçınmak zorunda olduğundan çok yavaş çalışacaktır. math.h dosyasında x*y + z ifadesinden daha yavaş olmayan fma işlevinin sonuç türüne bağlı olarak FP_FAST_FMA, FP_FAST_FMAF ve FP_FAST_FMAL sembolleri tanımlanmıştır. GNU C kütüphanesinde bu, işlemin daima donanımda gerçeklendiği anlamına gelir.
Önceki Üst Ana Başlık Sonraki
Gerçek Sayı Karşılaştırma İşlevleri Başlangıç Karmaşık Sayılar
Bir Linux Kitaplığı Sayfası