Hacker'ın Keyfi -Hacker's Delight
Hacker's Delight , Henry S. Warren, Jr. tarafından yazılan bir yazılım algoritma kitabıdır. Bitleri sayma veya çarpma kullanarak bölme hızını artırmagibi yaygın görevler içinhızlı bit düzeyinde ve düşük düzeyli aritmetik algoritmalar sunar .
Arka plan
Yazar, değişen sistemler üzerinde bir IBM araştırmacısı çalışma IBM 704 için PowerPC , kariyerinin boyunca "hileler programlama" dediği topladı. Bu hileler, bit dizilerinin ve sayıların verimli düşük seviyeli manipülasyonu ile ilgilidir. Guy L. Steele'in kitabın önsözüne göre , hedef kitle derleyici yazarları ve yüksek performanslı kod yazan kişilerdir.
Özet
Programlama örnekleri, PowerPC'ye benzer, ancak aynı olmayan bir RISC mimarisi için C ve assembler ile yazılmıştır . Algoritmalar herhangi bir sayıda bit için formüller olarak verilir, örnekler genellikle 32 bit içindir.
Giriş dışında, her biri belirli bir konuya odaklanan birbirinden bağımsız bölümler. Kitaptaki birçok algoritma, ikinin tümleyen tamsayılarına bağlıdır .
Kitabın ikinci baskısının konusu, aşağıdakiler için algoritmalar içerir:
- Tek tek bitleri işlemek için temel algoritmalar, kimlikler için formüller, eşitsizlikler, aritmetik işlemler ve kaymalar için taşma tespiti
- Bilinen 2 kuvvetinin, sonraki 2 kuvvetinin katlarına yukarı ve aşağı yuvarlama ve bir işlemin 2 kuvveti sınırını geçip geçmediğini tespit etmek için
- Sınırları kontrol etme
- Sayma toplam , gelen ve arka sıfır
- Bit dizileri aranıyor
- Bir kelimedeki bit ve bayt permütasyonları
- Çarpma için yazılım algoritmaları
- tamsayı bölümü
- Bölen bilindiğinde verimli tamsayı bölme ve kalanın hesaplanması
- Tamsayı kare ve küp kökleri
- -2 tabanı dahil olağandışı sayı sistemleri
- Kayan nokta ve tamsayı arasında değer aktarımı
- Döngüsel artıklık kontrolleri , Hata düzeltme kodları ve Gray Kodları
- Uygulamaların bir tartışmasını içeren Hilbert eğrileri
stil
Stil, resmi olmayan bir matematik ders kitabının stilidir. Formüller yaygın olarak kullanılmaktadır. Bazı açık olmayan algoritmalar için matematiksel kanıtlar verilmiştir, ancak kitabın odak noktası değildir.
Resepsiyon
Genel resepsiyon genel olarak olumlu olmuştur.
yayın geçmişi
Kitap Addison-Wesley Professional tarafından yayınlandı . İlk baskı 2002'de, ikincisi 2013'te yayınlandı.
Ayrıca bakınız
Referanslar
daha fazla okuma
- Beeler, Michael; Gosper, Ralph William ; Schroeppel, Richard C. (Nisan 1995) [1972-02-29]. "Yapay Zeka Notu No. 239" . Gelen Baker, Jr. Henry Givens (ed.). HAKMEM (yeniden yazılmış ve dönüştürülmüş ed.). Cambridge, Massachusetts, ABD: Yapay Zeka Laboratuvarı , Massachusetts Teknoloji Enstitüsü (MIT). 2019-10-08 tarihinde kaynağından arşivlendi . 2016-01-02 alındı .
- Jones, Douglas W. (2014-09-10) [1999]. "Aritmetik Öğreticiler" . Iowa City, Iowa, ABD: Iowa Üniversitesi, Bilgisayar Bilimleri Bölümü. 2019-07-10 tarihinde kaynağından arşivlendi . 2016-01-03 alındı .
- Cowlishaw, Mike F. (2015) [1981,2008]. "Genel Ondalık Aritmetik" . 2019-11-02 tarihinde kaynağından arşivlendi . 2016-01-02 alındı .
- Ingenoso, Tony (1999-02-03) [1998]. "Bölüm 11 - C ve Assembler kodunda daha fazla numara". Kodun Daha İyi Çalışmasını Sağlama - 80x86 kodunun boyutu nasıl en aza indirilir ve bazen daha hızlı hale getirilir (e-kitap). 2019-11-18 tarihinde kaynağından arşivlendi . 2019-11-18 alındı .
- Anderson, Sean Eron, ed. (2009-11-26) [1997]. "Bit Twiddling Hacks" . Stanford Üniversitesi . 2020-06-01 tarihinde kaynağından arşivlendi . 2020-06-01 alındı .