>>>>> "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