Genişletilmiş hassasiyet - Extended precision - Wikipedia

Genişletilmiş hassasiyet ifade eder kayan nokta daha büyük sayı biçimleri hassas temel kayan nokta biçimlerinden daha fazla.[1] Genişletilmiş hassas formatlar temel bir formatı destekler: yuvarlama ve taşma hatalarını en aza indirme temel biçimdeki ifadelerin ara değerlerinde. Kıyasla genişletilmiş hassasiyet, keyfi kesinlikte aritmetik özel yazılım (veya nadiren donanım) kullanan çok daha büyük sayısal türlerdeki (depolama sayısı genellikle ikinin gücü olmayan) uygulamaları ifade eder.

Genişletilmiş hassas uygulamalar

Neredeyse geçen yüzyılın ortalarına kadar uzanan genişletilmiş kayan nokta biçimlerinin uzun bir geçmişi vardır. Çeşitli üreticiler, farklı makineler için genişletilmiş hassasiyet için farklı formatlar kullanmıştır. Çoğu durumda, genişletilmiş hassasiyetin formatı, genişletmesi amaçlanan sıradan tek ve çift hassasiyetli formatların büyütülmesi ile tamamen aynı değildir. Birkaç durumda, uygulama yalnızca kayan nokta veri formatındaki yazılım tabanlı bir değişiklikti, ancak çoğu durumda, ya donanımda yerleşik olarak genişletilmiş hassasiyet uygulandı. merkezi işlemci kendisi veya daha sıklıkla, isteğe bağlı, takılı bir işlemcinin donanımına dahil edilmiştir.kayan nokta birimi "(FPU) veya" kayan noktalı işlemci "(FPP ), erişilebilir İşlemci hızlı bir giriş / çıkış cihazı olarak.

IBM genişletilmiş hassas formatlar

IBM 1130 1965'te satılan[2] iki kayan nokta biçimi sundu: 32 bit "standart hassas" biçim ve 40 bit "genişletilmiş duyarlı" biçim. Standart hassas format 24 bit içerir Ikisinin tamamlayıcısı anlam genişletilmiş hassasiyet 32 ​​bit kullanır Ikisinin tamamlayıcısı anlam. İkinci format, CPU'nun 32 bitlik tamsayı işlemlerinden tam olarak yararlanır. Her iki formattaki karakteristik, ikisinin gücünü içeren 8 bitlik bir alandır. önyargılı 128. Kayan noktalı aritmetik işlemler yazılım tarafından gerçekleştirilir ve çift ​​hassasiyet hiç desteklenmiyor. Genişletilmiş format, üç adet 16 bitlik kelimeyi kaplar ve fazladan boşluk basitçe yok sayılır.[3]

IBM System / 360 32-bit "kısa" kayan nokta formatını ve 64-bit "uzun" kayan nokta formatını destekler.[4] 360/85 ve devamı Sistem / 370 128 bit "genişletilmiş" biçim için destek ekleyin.[5] Bu formatlar halen mevcut tasarım, şimdi "onaltılık kayan nokta "(HFP) biçimleri.

Microsoft MBF genişletilmiş hassas format

Microsoft BASIC için liman 6502 Gibi uyarlamalarda olduğu gibi CPU Commodore TEMEL, AppleSoft TEMEL, KIM-1 TEMEL veya MicroTAN TEMEL, destekler genişletilmiş 40 bitlik değişken kayan nokta formatının Microsoft İkili Biçimi (MBF) 1977'den beri.[6]

IEEE 754 genişletilmiş hassas formatlar

IEEE 754 kayan nokta standardı, uygulamaların genişletilmiş hassas formatlar sağlamasını önerir. Standart, genişletilmiş bir format için minimum gereksinimleri belirtir, ancak bir kodlama belirtmez.[7] Kodlama, uygulayıcının seçimidir.[8]

IA32, x86-64, ve Itanium işlemciler, 64 bitlik bir anlama sahip 80 bitlik "çift genişletilmiş" genişletilmiş duyarlılık biçimini destekler. Intel 8087 matematik yardımcı işlemci ilk miydi x86 donanımda kayan nokta aritmetiğini destekleyen cihaz. Kayan noktalı sayıları kodlamak ve değiştirmek için 32-bit "tek duyarlıklı" biçimi ve 64-bit "çift duyarlıklı" biçimi desteklemek üzere tasarlanmıştır. Geçici gerçek (genişletilmiş) format, verileri bu şekilde daha yüksek hassasiyette depolamak için değil, daha çok, ara hesaplamalarda taşma ve yuvarlama hatalarını en aza indirerek çift sonuçların daha güvenilir ve doğru bir şekilde hesaplanmasına izin vermek için tasarlanmıştır.[a][10][11] Örneğin, birçok kayan nokta algoritması (ör. üs alma ) en doğrudan uygulamalar kullanılarak hesaplandığında önemli hassasiyet kaybına uğrar. Bu tür sorunları hafifletmek için 8087'deki dahili kayıtlar, 80 bitlik "genişletilmiş duyarlılık" biçiminde ara sonuçları tutacak şekilde tasarlanmıştır. 8087, kayan noktalı kayıtları yüklerken sayıları otomatik olarak bu biçime dönüştürür. hafıza ve ayrıca kayıtları belleğe geri depolarken sonuçları daha geleneksel formatlara dönüştürür. Ara alt ifade sonuçlarının genişletilmiş hassas sıfırlama değişkenlerinde kaydedilmesini ve programlama dili ifadelerinde devam etmesini ve aksi takdirde kesintiye uğrayan hesaplamaların kesildikleri yerden devam etmesini sağlamak için, Talimatlar Bu dahili yazmaçlar ve bellek arasında herhangi bir dönüştürme yapmadan değerleri aktaran, bu nedenle hesaplamalar için genişletilmiş biçime erişim sağlayan[b] - aynı zamanda bu tür sayıların işlevlerinin doğruluğu konusunu daha yüksek bir hassasiyetle canlandırıyor.

kayan nokta birimleri (FPU) sonraki tüm x86 işlemciler bu biçimi destekledi. Sonuç olarak, bu formatın sağladığı daha yüksek hassasiyetten yararlanan bir yazılım geliştirilebilir. William Kahan, x87 aritmetik ve ilk IEEE 754 standart teklifinin birincil tasarımcısı, x87 kayan noktasının geliştirilmesiyle ilgili şunları söylüyor: "Cesaret ettiğimiz kadar geniş (80 bit) genişletilmiş bir format, 13 ondalık dahili ile aynı destek rolüne hizmet etmek için dahil edildi biçimi, Hewlett-Packard'ın 10 ondalık hesap makinesinde hizmet verir. "[13] Dahası Kahan, 64 bitin en geniş anlam olduğunu ve 8087'de döngü süresini artırmadan taşıma yayılmasının yapılabileceğini belirtiyor.[14] ve x87 genişletilmiş hassasiyetinin gelecekteki işlemcilerde daha yüksek hassasiyete genişletilebilecek şekilde tasarlandığını: "Şimdilik 10 baytlık Genişletilmiş biçim ekstra hassas aritmetiğin değeri ile hızlı çalışması için uygulamanın fiyatı arasında tolere edilebilir bir uzlaşmadır; çok yakında iki bayt daha fazla hassasiyet tolere edilebilir hale gelecek ve sonuçta 16 bayt biçimi. ... Daha geniş hassasiyete doğru bu tür kademeli bir evrim, Kayan Nokta Aritmetiği için IEEE Standard 754 çerçevelendi. "[15]

Motorola 6888x matematik işlemciler ve Motorola 68040 ve 68060 işlemciler bu aynı 64-bit anlamlılık ve genişletilmiş hassasiyet tipini destekler (Intel formatına benzer, ancak üs ve anlamlı alanlar arasına 16 kullanılmamış bit eklenmiş 96 bit formata doldurulur.[16]). Takip Soğuk ateş işlemciler bu 96 bit genişletilmiş hassas biçimi desteklemez.[17]

Erken dönem için FPA10 matematik yardımcı işlemcisi KOL işlemciler ayrıca bu genişletilmiş hassas türü destekler (işaret ve üs alanları arasına 16 sıfır bit eklenerek 96 bitlik bir biçime doldurulmasına rağmen Intel biçimine benzer), ancak doğru yuvarlama olmadan.[18]

X87 ve Motorola 68881 80 bit biçimleri, IEEE 754 çift genişletilmiş biçimin gereksinimlerini karşılar,[19] IEEE 754 gibi 128 bit biçim.

x86 genişletilmiş hassas format

X86 genişletilmiş duyarlılık biçimi, ilk olarak içinde uygulanan 80 bitlik bir biçimdir. Intel 8087 matematik yardımcı işlemci ve temel alan tüm işlemciler tarafından desteklenir x86 tasarımı içeren kayan nokta birimi (FPU). Bu 80 bitlik format, anlam işareti için bir bit, üs alanı için 15 bit kullanır (yani 128 bit ile aynı aralık) dört kat hassas IEEE 754 formatı ) ve anlamlı için 64 bit. Üs alanı önyargılı 16383'e kadar, 2'nin gerçek gücünü hesaplamak için 16383'ün üs alanındaki değerden çıkarılması gerektiği anlamına gelir.[20] 32767'lik bir üs alan değeri (on beş bitin tümü) 1) gibi özel durumların temsilini sağlamak için ayrılmıştır. sonsuzluk ve Sayı değil. Üs alanı sıfırsa, değer a normal olmayan sayı ve 2'nin üssü -16382'dir.[21]

X86 Extended Floating Point Format.svg

Aşağıdaki tabloda "s"işaret bitinin değeridir (0 pozitif anlamına gelir, 1 negatif anlamına gelir),"e", pozitif bir tamsayı olarak yorumlanan üs alanının değeridir ve"m", ikili noktanın 63 ve 62. bitler arasında yer aldığı pozitif ikili sayı olarak yorumlanan anlamdır."m"alanı, yukarıdaki diyagramdaki tam sayı ve kesir kısımlarının birleşimidir.

Bir x86 Extended Precision değerinin alanlarının yorumlanması
ÜsAnlamlı veAnlam
Tüm SıfırlarBit 63Bit 62-0
SıfırSıfırSıfır. İşaret biti sıfırın işaretini verir.
Sıfır olmayanDenormal. Değer (−1)s × m × 2−16382
BirHerhangi bir şeySözde Denormal. 80387 ve sonrası bu değeri doğru bir şekilde yorumlar ancak üretmez. Değer (−1)s × m × 2−16382
Hepsi Bir AradaBitler 63,62Bit 61-0
00SıfırSözde Sonsuzluk. İşaret biti sonsuzluğun işaretini verir. 8087 ve 80287 bunu Infinity olarak ele alıyor. 80387 ve sonrası bunu geçersiz bir işlenen olarak ele alır.
Sıfır olmayanSözde Sayı Değil. İşaret biti anlamsızdır. 8087 ve 80287 bunu bir Sayı Değil Sinyali olarak ele alır. 80387 ve sonrası bunu geçersiz bir işlenen olarak değerlendirir.
01Herhangi bir şeySözde Sayı Değil. İşaret biti anlamsızdır. 8087 ve 80287 bunu bir Sayı Değil Sinyali olarak ele alır. 80387 ve sonrası bunu geçersiz bir işlenen olarak ele alır.
10SıfırSonsuzluk. İşaret biti sonsuzluğun işaretini verir. 8087 ve 80287 bunu bir Sayı Değil Sinyali olarak ele alır. 8087 ve 80287 yardımcı işlemcileri, sonsuzluklar için sözde sonsuzluk temsilini kullandı.
Sıfır olmayanSinyalleşme Sayı Değildir, işaret biti anlamsızdır.
11SıfırKayan nokta Belirsiz, işlemci için istisnalar oluşturmayacak şekilde yapılandırıldığında, negatif bir sayının karekökü, negatif bir sayının logaritması, 0/0, sonsuz / sonsuz, sonsuz çarpı 0 ve diğerleri gibi geçersiz hesaplamaların sonucu geçersiz işlenenler. İşaret biti anlamsızdır. Bu, Sessiz Bir Sayı'nın özel bir durumudur.
Sıfır olmayanSessiz Bir Sayı Değil, işaret biti anlamsızdır. 8087 ve 80287 bunu bir Sayı Değil Sinyali olarak ele alır.
Diğer tüm değerlerBit 63Bit 62-0
SıfırHerhangi bir şeyNormal değil. Yalnızca 8087 ve 80287'de oluşturulmuştur. 80387 ve sonrası bunu geçersiz bir işlenen olarak değerlendirir. Değer (−1)s × m × 2e−16383
BirHerhangi bir şeyNormalleştirilmiş değer. Değer (−1)s × m × 2e−16383

Aksine tek ve çift ​​kesinlik biçimler, bu biçim örtük bir /gizli parça. Aksine, bit 63, anlamın tamsayı kısmını içerir ve 62-0 bitleri, kesirli kısmı tutar. Bit 63, tüm normalleştirilmiş sayılarda 1 olacaktır. Bu tasarımın birçok avantajı vardı. 8087 geliştiriliyordu:

  • Tüm anlamlı ve bitleri kayıt defterinde mevcutsa, hesaplamalar biraz daha hızlı tamamlanabilir.
  • 64 bitlik bir anlamlılık, sonuçlar çok sayıda durumda çift duyarlıklı biçime geri dönüştürüldüğünde kesinlik kaybını önlemek için yeterli kesinlik sağlar.
  • Bu format, daha sonraki işlemlerle taşınabilen alttan taşmadan kaynaklanan hassas kaybı gösteren bir mekanizma sağlar. Örneğin, hesaplama 2×10−4930 × 3×10−10 × 4×1020 ara sonucu üretir 6×10−4940 hangisi bir normal olmayan ve ayrıca hassasiyet kaybını da içerir. Tüm terimlerin ürünü 24×10−4920 normalleştirilmiş bir sayı olarak gösterilebilir. 80287 bu hesaplamayı tamamlayabilir ve "normal olmayan" bir sonuç döndürerek hassasiyet kaybını gösterebilir (üs 0 değil, bit 63 = 0).[22][23] İşlemciler 80387 artık normal olmayanlar oluşturmaz ve işlemlere normal olmayan girdileri desteklemez. Bir alt akış meydana gelirse normal olmayan bir sonuç üretirler, ancak denormal üzerinde sonraki işlemler normalleştirilebilirse normalleştirilmiş bir sonuç oluştururlar.[24]

Kullanıma giriş

80 bitlik kayan nokta biçimi 1984 yılına kadar yaygın bir şekilde mevcuttu.[25] Başlangıçta yalnızca ortak 32 ve 64 bit kayan nokta boyutlarını sunan C, Fortran ve benzeri bilgisayar dillerinin geliştirilmesinden sonra. Üzerinde x86 tasarımı çoğu C derleyiciler artık 80-bit genişletilmiş hassasiyeti uzun çift yazın ve bu, C99 / C11 standartlar (IEC 60559 kayan nokta aritmetiği (Ek F)). Diğer diller için x86'daki derleyiciler genellikle, bazen standart olmayan uzantılar aracılığıyla da genişletilmiş hassasiyeti destekler: örneğin, Turbo Pascal teklifler Genişletilmiş tip ve birkaç Fortran derleyicilerin bir GERÇEK * 10 tip (benzer GERÇEK * 4 ve GERÇEK * 8). Bu tür derleyiciler ayrıca tipik olarak genişletilmiş hassasiyetli matematiksel alt programlar, gibi kare kök ve trigonometrik fonksiyonlar standartlarında kütüphaneler.

Çalışma aralığı

80 bitlik kayan nokta biçiminin bir aralığı vardır ( alt normaller ) yaklaşık 3,65 × 10'dan−4951 1,18 × 10'a kadar4932. Günlük olmasına rağmen10(264) ≅ 19.266, bu format genellikle yaklaşık on sekiz anlamlı hassasiyet basamağı verecek şekilde tanımlanır. İkili değerden bahsederken ondalık kullanımı talihsizdir çünkü çoğu ondalık kesir, 2/3 ün ondalık düzende olduğu gibi ikili olarak yinelenen dizilerdir. Bu nedenle, 10.15 gibi bir değer ikili olarak 10.1499996185'e eşdeğer olarak REAL * 4 için ondalık olarak ancak 10.15000000000000035527etc olarak temsil edilir. REAL * 8'de: interconversion, 0.625 gibi tam bir ikili değeri temsil eden birkaç ondalık kesir dışında, yaklaşıklığı içerecektir. REAL * 10 için, ondalık dize 10.1499999999999999996530553etc'dir. Son 9 basamak on sekizinci kesirli basamaktır ve dolayısıyla dizenin yirminci önemli basamağıdır. 80 bitlik format için ondalık ve ikili arasındaki dönüşüm sınırları şu şekilde verilebilir: en fazla 18 anlamlı basamağa sahip bir ondalık dize, 80 bitlik bir IEEE 754 ikili kayan noktalı değere doğru şekilde yuvarlanırsa (girişte olduğu gibi) o zaman aynı sayıda anlamlı ondalık basamağa dönüştürüldüğünde (çıktı için olduğu gibi), son dize orijinalle tam olarak eşleşecektir; tersine, 80 bitlik bir IEEE 754 ikili kayan nokta değeri doğru bir şekilde dönüştürülür ve (en yakın) en az 21 anlamlı ondalık basamak içeren bir ondalık dizeye yuvarlanır ve ardından ikili biçime geri dönüştürülürse, orijinalle tam olarak eşleşecektir.[19] Bu yaklaşımlar, formüllerde sabitler için en iyi değeri yüksek hassasiyete doğru belirtirken özellikle zahmetlidir. keyfi kesinlikte aritmetik.

80 bitlik formata ihtiyaç var

Dikkate değer bir örnek anlamlılıkta minimum 64 bitlik hassasiyete duyulan ihtiyaç Genişletilmiş kesinlik biçiminin en önemlisi, üzerinde üs alma gerçekleştirirken kesinlik kaybını önleme ihtiyacıdır. çift ​​kesinlik değerler.[26][27][28][c] x86 kayan noktalı birimler, doğrudan gerçekleştiren bir talimat sağlamaz üs alma. Bunun yerine, bir programın denklemi kullanarak üs alma gerçekleştirmek için sırayla kullanabileceği bir dizi talimat sağlarlar:

Hassasiyet kaybını önlemek için ara sonuçlar "günlük2(x)" ve "y· Günlük2(x)"çok daha yüksek hassasiyetle hesaplanmalıdır, çünkü etkin bir şekilde üs ve anlam alanları x ara sonucun anlamlılık alanına sığmalıdır. Daha sonra, ara sonucun anlamlılık alanı, nihai sonucun üs ve anlamlı alanları arasında bölünür. 2ara sonuç hesaplanır. Aşağıdaki tartışma bu gereksinimi daha ayrıntılı olarak açıklamaktadır.

Biraz açarak, bir IEEE 754 çift ​​kesinlik değer şu şekilde temsil edilebilir:

nerede s üssün işaretidir (0 veya 1), E 0 ile 1023 arasında değişen bir tam sayı olan tarafsız üs ve M aralıkta düşen 53 bitlik bir değer olan anlamdır 1 ≤ M < 2. Negatif sayılar ve sıfır, bu değerlerin logaritması tanımsız olduğu için göz ardı edilebilir. Bu tartışmanın amaçları için M 53 bit hassasiyete sahip değildir çünkü bire eşit veya daha büyük olması sınırlandırılmıştır, yani gizli bit kesinlik olarak sayılmaz ( M 1'den küçükse, değer aslında normal değildir ve bu nedenle zaten hassasiyet kaybına uğramış olabilir. Bu durum, bu makalenin kapsamı dışındadır).

Bu temsilinin günlüğünü almak çift ​​kesinlik sayı ve basitleştirme sonuçları aşağıdaki gibidir:

Bu sonuç, bir sayının 2 tabanındaki logaritmasını alırken, orijinal değerin üssünün işaretinin logaritmanın işareti, orijinal değerin üssünün, logaritmanın anlamının tamsayı kısmı ve anlamının orijinal değer, logaritmanın anlamının kesirli kısmına dönüştürülür.

Çünkü E 0 ile 1023 aralığında bir tamsayıdır, logaritmanın tamsayı kısmını temsil etmek için taban noktasının solunda en fazla 10 bit gereklidir. Çünkü M aralığa düşüyor 1 ≤ M < 2, değeri günlük2 M menzile düşecek 0 ≤ günlük2 M < 1 bu nedenle, logaritmanın kesirli kısmını temsil etmek için radix noktasının sağında en az 52 bit gereklidir. Radix noktasının solundaki 10 biti, radix noktasının sağındaki 52 bit ile birleştirmek, logaritmanın anlamlı ve önemli kısmının en az 62 bitlik kesinlikte hesaplanması gerektiği anlamına gelir. Pratikte değerleri M daha az radix noktasının sağında 53 bit ve değerleri M daha az kesinlik kaybını önlemek için radix noktasının sağına 54 bit gerektirir. Radix noktasının sağına ilave hassasiyet için bu gereksinimi dengelemek için 512'den küçük üsler, yalnızca radix noktasının solunda 9 bit gerektirir ve 256'dan küçük üsler, radix noktasının solunda yalnızca 8 bit gerektirir.

Son kısmı üs alma hesaplama hesaplamaktır 2ara sonuç. "Ara sonuç" bir tam sayı bölümünden oluşur "ben"kesirli bir bölüme eklendi"F". Ara sonuç negatifse, pozitif bir kesirli kısım elde etmek için hafif bir ayarlama gerekir çünkü her ikisi de"ben" ve "F"negatif sayılardır.

Olumlu ara sonuçlar için:

Negatif ara sonuçlar için:

Böylece, ara sonucun tamsayı kısmı ("ben"veya"ben−1") artı bir sapma, nihai sonucun üssü olur ve ara sonucun pozitif kesirli kısmını dönüştürür: 2F veya 21+F nihai sonucun önemi olur. Nihai sonuca 52 bitlik hassasiyet sağlamak için, pozitif kesirli kısım en az 52 bit olarak tutulmalıdır.

Sonuç olarak, ara sonucun anlamlılığında ihtiyaç duyulan kesinlik bitlerinin kesin sayısı bir şekilde verilere bağlıdır, ancak 64 bit, büyük çoğunluğunda kesinlik kaybını önlemek için yeterlidir. üs alma içeren hesaplamalar çift ​​kesinlik sayılar.

Üs için gereken bit sayısı Genişletilmiş kesinlik biçiminin, iki ürünün çarpımı çift ​​kesinlik Genişletilmiş biçim kullanılarak hesaplandığında sayılar taşmamalıdır. A'nın olası en büyük üssü çift ​​kesinlik değer 1023, dolayısıyla iki olası en büyük çarpımın üssü çift ​​kesinlik sayılar 2047'dir (11 bitlik bir değer). Negatif üsleri hesaba katmak için bir önyargı eklemek, üs alanının en az 12 bit genişliğinde olması gerektiği anlamına gelir.

Bu gereksinimleri birleştirmek: işaret için 1 bit, önyargılı üs için 12 bit ve anlamlılık için 64 bit, genişletilmiş hassas formatın en az 77 bit gerektireceği anlamına gelir. Mühendislik hususları, 80 bit formatın nihai tanımıyla sonuçlandı (özellikle IEEE 754 standardı, bir sonraki en büyüğüyle eşleşecek genişletilmiş bir hassas formatın üs aralığını gerektirir, dörtlü, 15 bit olan hassas format).[27]

Genişletilmiş kesinlikli aritmetikten yararlanan başka bir hesaplama örneği: yinelemeli iyileştirme Doğrudan çözümde biriken hataları dolaylı olarak temizlemek için kullanılan şemalar, tipik olarak sayısal doğrusal cebir için yapılan çok sayıda hesaplama sırasında.[30]

Dil desteği

  • Biraz C /C ++ uygulamalar (ör. GNU Derleyici Koleksiyonu (GCC), Clang, Intel C ++ ) uygulamak uzun çift x86 sistemlerinde 80 bit kayan noktalı sayılar kullanarak. Ancak, bu uygulama tanımlı bir davranıştır ve gerekli değildir, ancak IEEE 754 donanımında belirtildiği gibi standart tarafından izin verilir. C99 standardı "Ek F IEC 60559 kayan nokta aritmetiği". GCC ayrıca şunları sağlar: __float80 ve __float128 türleri.[31]
  • D programlama dili uygular gerçek donanımda uygulanan en büyük kayan nokta boyutunu kullanarak, x86 CPU'lar veya çift hassasiyet, hangisi daha büyükse.
  • Nesne Pascal (Delphi ) SINGLE ve DOUBLE'a ek olarak bir EXTENDED tipine sahiptir.
  • Raket çalışma zamanı sistemi, x86 sistemlerinde 80 bitlik extflonum veri türü sağlar.
  • Swift standart kitaplık, Float80 veri tipi.
  • PowerBASIC BASIC derleyici sağlar EXT veya GENİŞLETİLMİŞ 10 bayt Uzatılmış hassas kayan noktalı veri türü.

Ayrıca bakınız

Dipnotlar

  1. ^ "Bu format, esas olarak programcıların tekli ve çiftli yazılımlarının bütünlüğünü geliştirmelerine ve daha büyük boyutlarda çift matris hesaplamalarda yuvarlayarak bozulmayı hafifletmelerine yardımcı olmak için tasarlanmıştır ve genişletilmiş ihtiyaç için dörtlü ikame edecek şekilde kolayca kullanılabilir. kullanımını asla geçersiz kılmayın. " - x87 tasarımcısı W. Kahan[9]
  2. ^ "Üst düzey diller, ara alt ifadeleri değerlendirmek için genişletilmiş (görünmez) kullanır ve daha sonra, bildirilebilir bir veri türü olarak genişletilmiş sağlayabilir."[12](s70)
  3. ^ "Desteklediği temel formatın üslü alanında olduğu kadar genişletilmiş en az fazladan kesinlik bitinin varlığı, aşkın fonksiyonların, iç ürünlerin ve güç fonksiyonunun doğru hesaplanmasını büyük ölçüde basitleştirir. yx."[29](s70)

Referanslar

  1. ^ IEEE 754 (2008, ¶ 2.1.21) tanımlar genişletilmiş hassas format "Daha geniş hassasiyet ve aralık sağlayarak desteklenen bir temel biçimi genişleten bir biçim."
  2. ^ Francis, C.G. (11 Şubat 1965). "IBM, güçlü küçük bilgisayarı tanıttı". Bilgi Direktörü (Basın açıklaması). White Plains, New York: Uluslararası İş Makineleri Şirketi (IBM). Arşivlenen orijinal 2019-07-05 tarihinde.
  3. ^ Altyordam Kitaplığı (PDF). IBM 1130 (9. baskı). IBM Corporation. 1974. s. 93.
  4. ^ Çalışma Prensipleri. IBM System / 360 (9. baskı). IBM Corporation. 1970. s. 41.
  5. ^ IBM System / 370 Çalışma Prensipleri (7. baskı). IBM Corporation. 1980. s. 9-2–9-3.
  6. ^ Steil, Michael (2008-10-20). "6502 için kendi Microsoft BASIC sürümünüzü oluşturun". pagetable.com. s. 46. Arşivlendi 2016-05-30 tarihinde orjinalinden. Alındı 2016-05-30.
  7. ^ IEEE Computer Society (29 Ağustos 2008). Kayan Nokta Aritmetiği için IEEE Standardı (Bildiri). IEEE. §3.7. doi:10.1109 / IEEESTD.2008.4610935. ISBN  978-0-7381-5752-8. IEEE Std 754-2008.
  8. ^ Brewer, Kevin. "Kevin'in Raporu". IEEE-754 Referans Materyali. Alındı 2012-02-19.
  9. ^ Kahan, William (1 Ekim 1997). "İkili kayan nokta aritmetiği için IEEE standardı 754'ün durumuna ilişkin ders notları" (PDF). s. 5.
  10. ^ Einarsson, Bo (2005). Bilimsel hesaplamada doğruluk ve güvenilirlik. SIAM. s. 9ff. ISBN  978-0-89871-815-7. Alındı 3 Mayıs 2013.
  11. ^ "Intel 64 ve IA-32 Mimarileri". Yazılım Geliştiricisinin Kılavuzu. Intel Corp. Mart 2012. §8.2.
  12. ^ Coonen, Jerome T. (Ocak 1980). "Kayan nokta aritmetiği için önerilen bir standart için bir uygulama kılavuzu". IEEE Bilgisayar: 68–79.
  13. ^ Kahan, William (22 Kasım 1983). "Kumda yazılmış matematik - hp-15C, Intel 8087, vb." (PDF).
  14. ^ Goldberg, David (Mart 1991). "Her bilgisayar bilimcisinin kayan nokta aritmetiği hakkında bilmesi gerekenler" (PDF). ACM Hesaplama Anketleri. 23 (1): 192.
  15. ^ Higham Nicholas (2002). "Kararlı algoritmalar tasarlama". Sayısal Algoritmaların Doğruluğu ve Kararlılığı (2 ed.). Endüstriyel ve Uygulamalı Matematik Derneği (SIAM). s. 43.
  16. ^ Motorola MC68000 Ailesi (PDF). Programcıların Referans Kılavuzu. Freescale Semiconductor. 1992. s. 1–16.
  17. ^ ColdFire Ailesi (PDF). Programcıların Referans Kılavuzu. Freescale yarı iletken. 2005. s. 7-7.
  18. ^ "FPA10 Veri Sayfası" (PDF). chrisacorns.computinghistory.org.uk. GEC Plessey Semiconductors. 11 Haziran 1993. Alındı 26 Kasım 2020.
  19. ^ a b Kahan, William (1 Ekim 1997). "İkili kayan nokta aritmetiği için IEEE standardı 754'ün durumuna ilişkin ders notları" (PDF).
  20. ^ Intel 80C187 veri sayfası
  21. ^ Intel 64 ve IA-32 Mimarileri Geliştirici Kılavuzu: Cilt. 1. Intel Kurumu. sayfa 4-6 ila 4-9 ve 4-18 ila 4-21.
  22. ^ Palmer, John F .; Morse Stephen P. (1984). 8087 Primer. Wiley Press. pp.14. ISBN  0-471-87569-4.
  23. ^ Morse, Stephen P .; Albert, Douglas J. (1986). 80286 Mimarisi. Wiley Press. pp.91 –111. ISBN  0-471-83185-9.
  24. ^ Intel 64 ve IA-32 Mimarileri Geliştirici Kılavuzu: Cilt. 1. Intel Kurumu. sayfa 8-21 ila 8-22.
  25. ^ Charles Kıdem tazminatı (20 Şubat 1998). "Kayan Noktadaki Yaşlı Adam ile Bir Söyleşi".
  26. ^ Palmer, John F .; Morse Stephen P. (1984). 8087 Primer. Wiley Press. pp.16. ISBN  0-471-87569-4.
  27. ^ a b Morse, Stephen P .; Albert, Douglas J. (1986). 80286 Mimarisi. Wiley Press. pp.96 –98. ISBN  0-471-83185-9.
  28. ^ Hough, David (Mart 1981). "Kayan nokta aritmetiği için önerilen IEEE 754 standardının uygulamaları". IEEE Bilgisayar. 14 (3): 70–74. doi:10.1109 / C-M.1981.220381.
  29. ^ Coonen, Jerome T. (Ocak 1980). "Kayan nokta aritmetiği için önerilen bir standart için bir uygulama kılavuzu". IEEE Bilgisayar: 68–79.
  30. ^ Demmel, James; Hida, Yozo; Kahan, William; Li, Xiaoye S.; Mukherjee, Sonil; Riedy, E. Jason (Haziran 2006). "Ekstra hassas yinelemeli ayrıntılandırmadan kaynaklanan hata sınırları" (PDF). Matematiksel Yazılımda ACM İşlemleri. 32 (2): 325–351. doi:10.1145/1141885.1141894. Alındı 2014-04-18.
  31. ^ https://gcc.gnu.org/onlinedocs/gcc/Floating-Types.html