>>>>> "VY" == yazicivo  <[EMAIL PROTECTED]> writes:
[...]
    VY> Bitleri sayı kümesi ile eşleştirmek gerçekten süper bir fikir! 
    VY> Böylece, biraz çaba ile, işlemcinin bitwise operatörlerdeki
    VY> yeteneğinden de yararlanabiliriz. 

Evet, gerci P4 familyasinda hatirladigim kadariyla 'barrel shifter' yok, 
o yuzden bu tip seyler beklendigi kadar hizli olamiyor o makinelerde. 
Herneyse, Common Lisp'te hem benim yaptigim gibi sayilar hem bit 
vektorleri uzerinde calisan operator cok.  Disassemble gibi bir kolaylik
da var, mikro-optimizasyon pesindeyseniz derleyici ne yapiyor diye 
bakmaniz mumkun.  Sbcl icin bir yerde bir 'vop' yazma kilavuzu olmasi 
lazim cok ilgilenirseniz derleyiciyi de kurcalamaniz mumkun.  

O kodda bir de closure kullanmak yerine o lambdayi icinde o anki degerler 
icin uygun deklerasyon gomerek program calisirken derliyorum bir de.  
Kurcalayip bakmadim ne kazanc getiriyor diye ama boyle seylere 
merakliysaniz ona da bakabilirsiniz.  Boyle kombinasyon filan gibi O(2^n) 
karmasikligidaki problemlerde temelde pek birsey farketmiyor tabii, ama 
sinirlarda dolasan problem buyukluklerinde sabit terimleri %30-%40 indirmek 
normalde mesela 10 saat calisan bir programi makul mesai saatleri icinde 
iki-uc kere calistirma sansini kazandiriyor size.  (Aramizdaki numerik
analizci bu program calistirip bekleme islerini benden daha iyi bilir 
tabii.)

Genelde mikro-benchmark filanla ilgilenenler icin sunu da tavsiye 
ediyorum:

http://shootout.alioth.debian.org/

Orada sbcl icin eksiklikler var, bunun orjinaliyle ugrasmistim ben bir 
ara derleyici ile yakinen tanismanizda faydali olabilecegini dusunuyorum.
Aslinda op benchmarklar komik biraz, ama 'hizli yapicam' diye kurcalarken 
hakikaten derleyicinin veya dilin eksigi gedigi nedir ortaya cikiyor. 

[...]
    VY> Bu arada bu yöntemin genel bir adı var mı? Hani wikipedia'da
    VY> daha ayrıntılı bir şeyler bulabileceğimiz şekilde...

Bilmiyorum.  Bit vectordan set yapmak herhalde en genel adi.  Ben
bunu zamaninda Pascal'deki 'set' veri tipinden ogrenmistim galiba.
Tabii Pascal'de bignum olmadigi icin makine 'word' olarak ne verdiyse
onunla kisitliydi yanlis hatirlamiyorsam.  Lispte boyle bir kisitlama
yok.

Herneyse google'dan soyle birsey cikarttim:

http://www.cs.sunysb.edu/~algorith/files/set-data-structures.shtml

BM


_______________________________________________
cs-lisp mailing list
[email protected]
http://church.cs.bilgi.edu.tr/lcg
http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp

Cevap