もう11月終わりか. 今月は2週間以上ダウンしてたからあっという間だった.
『風のガーデン』って録画はしてたが重たそうで見てなかったけど, 見始めると意外と笑いの場面あり緩急がよくてついつい見入ってしまった.
生前葬のシーンがかなり傑作だった.
・
JANT行ってきた. 店が無くて昼御飯に困った.
なんか見たことある感じなんだけど知らない方だなあと思ったら前々職の後輩のお兄さん(弟さん?)だった. なるへそ.
・
divの存在意義
C99やC++0x(多分)以前のC/C++では負数の%が処理系依存だからdivがあるのは意味があった気がする.
・
__builtin_clz
これはVCの
_BitScanForwardのインタフェースの方がよい.
なぜなら引数0のときundefinedなので, たとえば
int func(int v)
{
if (v) {
return __builtin_ctz(v);
}
return foo();
}
みたいに必ず0でないことをチェックする必要があり, 出力コードは
func:
movl 4(%esp), %eax
testl %eax, %eax
jne .exit
jmp foo
.exit:
bsfl %eax, %eax
ret
の用にbsfを呼ぶ前にtestすることになってしまう. VCのインタフェースだと
int func(int v)
{
unsigned long d;
if (_BitScanForward(&d, val)) {
return d;
}
return foo();
}
と書けてこれは
func:
bsf eax, dword ptr [esp+4]
jne .exit
jmp _foo
.exit:
ret
と無駄の無いコードが出来上がる. これはbsfの引数が0のときZFが立つことを知ってないとできない.
p = 97の約2倍の193に挑戦. 最適化が完全なら処理時間は4~5倍だろうが, 今回は手抜きなので8倍程度に抑えたい.
レジスタ数が8個では絶対足りないので32bit版よりも64ibt on 32bit VMwareの方が速度が出そうだな.
intrinsic + templateでのVCの最適化は凄いんだけど定数ループは全て展開してほしいなあ. なんとかならんのか.
週末の発表で6月から全く進展が無いのもどうかと思って久しぶりにペアリングのコードを触る.
うーむ, 綺麗さっぱり忘れているようだ. 最近は(風邪の前は)Unicodeとかそんなんばかりやったからなあ.
しかも詰めに詰めまくって最適化したので全然いじれない. 今回は日和ってC++で行こう.
てか, 東京理科大学野田キャンパスってめっちゃ遠いやん.
久しぶりにコード書いた.
宇宙エレベータの建設費は1~2兆円らしい. 定額給付金止めて作ったら凄いな.
・ようやく治ってきた. 今回は実に酷くて長かった.
・サクシンとサクシゾン
門外漢からするとそんなに似た名前なのに全然違う薬というのはいかにも間違いやすそうだ.
実際,
過去にも同様の事故があったようだ.
サクシゾンを使わないという対策も取っていたようだが,
人間である以上うっかりミスは0にはできないのでエラーを極限まで減らす多重の対策を考えてほしい.
たとえばせっかくコンピュータを使うなら「こんな間違いやすい例があります」と確認させるようにするとか.
昨今の風潮は, 安直で分かりやすいからと一つの原因のせいにして終わりとする印象があるけど,
そんなことではまた同様の悲劇が繰り返される.
風邪が治らん. 参った.
酷い風邪を引いた. めっちゃ喉痛い.