Floating Point Nedir? Nerede kullanılır ?

Başlatan baran123, 17 Kasım 2016, 19:58:41

muhendisbey

Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

muhittin_kaplan

Alıntı yapılan: Zoroaster - 18 Kasım 2016, 00:20:09
No FPU ile soft FPU aynı anlama gelmiyormu?
neden öyle bir ayrım var hocam ozaman

baran123

Hocam noFPU fpu yok anlamında softFPU yazılımsal olarak yaptığı olabilir mi ?

muhittin_kaplan

float a=0.0;
    float b=0.0;
    float c=0.0   
   
    a=3.14;
    b=5.12;
   
    c=a*b;

yeterlimi ölçüm için

baran123

Benim paylaştığım sitedeki gibi get time yapabilirsiniz hocam. Kod yeterli bence
Oradan Dt hesaplanabilir.

muhittin_kaplan

-mfloat-abi=softfp

bir türlü derleyemedim. sanrıım bir yerde hata yapıyorum. (embitz)

muhittin_kaplan

Alıntı yapılan: baran123 - 18 Kasım 2016, 00:56:01
Benim paylaştığım sitedeki gibi get time yapabilirsiniz hocam. Kod yeterli bence
Oradan Dt hesaplanabilir.
gettime yok Baran, sadece bildiğim 32768 khz sayıcı :)

engerex

Bu şekilde ölçülmez. İşlemin sonucu belli olduğu için derlendikten sonra c=16.0768 sonucu kullanılır. Herhangi bir işlem yapılmaz. Belki optimizasyon seviyesi seçilerek bunun önüne geçilir. Bu seferde gerçek şartlarda test edilmemiş olacak.
Döngüye sokarak bu aşılır.

muhittin_kaplan

ne yaptıysam derleyemedim Embitz de FPUsoft ve FPUhard
for(counter = 0; counter < 1000; counter = counter + 1)
     {
      result = asinf(num1)*180.0/PI; //result = 60
      result = result/2.0; //result = 30
      result = result * PI /180.0; //result = 0.5235987 radians (30 degrees0
      result = tanf(result); //result = sqrt(3)/3
      result = result / sqrt(3); //result = 1/3
      result = result * 6.0 + 9.9; //result = 11.9
     }


muhittin_kaplan

Değerli Bilgiler Hocam. Teşekkür ederim.

embitz de default açık geliyor, ve kapatamadım. hep bir derleme hatasıyla karşılaştım.

berat23

Alıntı yapılan: F493 - 17 Kasım 2016, 20:41:27
Selam,

Floating Point demek noktalı yani noktadan sonra onlar, yüzler, binler vs olan sayı demektir.

örneğin, 123.8545


floating point demek kayar nokta demek, yani noktadan öncesi ya da sonrası ne kadar uzun belirsiz. float standartı verilmiş, ieee754. bu standarta göre single'da üs 8, mantis ise 23 bit oluyordu yanlış hatırlamıyorsam. bu limitler dahilinde sayılar üretilebilir, elbette bu aralıkta lineer değil, değişken bir hassasiyette.

float'ın asıl sorunu aslında karşılaştırmadan ziyade çok büyük ve küçük sayılarla işlem yapmaktır. mesela atıyorum 10^8 mertebesinde bir sayı ile 0.001 toplanamaz. o yüzden matematikli bir kod yazarsanız kesinlikle tüm range içinde unit test yapılmalıdır.

kenan_re

Bununla ilgili PSoC5 işlemciyle denemem oldu, buna benzer bir yapısı var yada aynısı ayrımı yapacak kadar bilgim yok. Yaklaşık 5ms bir işlemi 1ms altına indirmişti fakat bu kısmı kullanabilmek için kendine has ayrı bir kodlama bilmek gerekiyordu çok zordu çoookkkk.