ToDo:
入ったらしいからぱらぱら読んでた。コメントが直感的にこれでいいのかな、って感じ。
b0 b1 がタグ、 b2 が sign bit 、 b63 が 1 なら exponent の先頭が 011 で 0 なら 100 、ってエンコードか。コメントに sign bit が書いてないから混乱したっぽい。
exponent の値域が +-256 くらいで、これが 10 進数だとざっくり +-77 と。
これ rotate とかやるより手で書いた方が速くね…と思ったけど速くならなかった。アセンブリ見ないとなんとも言えないけど。
見た。 rot の方が短い。 gcc ちゃんと rot を検知してくれるんだなえらい…
(08:58)
あと
t.v = RUBY_BIT_ROTR(2 - b63 | (v & ~0x03), 3);
の方が速くね? と思った。実際短くなるし、ほんの少しはやくなってるような
(09:04)
いかにも & 0x7 がいらない
bits = (int)((VALUE)(t.v >> 60)); /* bits contains 3 bits of b62..b60. */ /* bits - 3 = */ /* b011 -> b000 */ /* b100 -> b001 */
if (t.v != 0x3000000000000000 /* 1.72723e-77 */ && !((bits-3) & 6)) { return (RUBY_BIT_ROTL(t.v, 3) & ~(VALUE)0x01) | 0x02; }
どっちも動作確認してないけど…
(10:31)
via https://twitter.com/otsune/status/239359956174913537
こういうの見ると、みんな人狼やればいいよと思いますね…
ウソついて信じてもらうのがどれだけ難しいかってこと、信用される人がどういう挙動をしているかということ、真実を言ってたとしても信じられない挙動が存在すること、などなど、いろいろ学べると思うんだ…あとウソを信じられることはそれはそれでしんどいこととか、正しいことを主張する時にもウソが便利な時すらあることとか…
この件がホントかウソかは知らんですが、なんにせよ全く信じてもらえない種類の言動をしていることは間違いないと思う。
(23:42)
前 | 2012年 8月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。