2008-01-01から1ヶ月間の記事一覧
1日経って、膝に違和感があるが、そんなに疲れていない。 筋肉痛はない。明日出ないよね。 昨日書かなかった運営面などを思いつきで。
http://www.asahi.com/sports/update/0127/TKY200801270108.html やめさせるべきだったね。 危険だった可能性もある。 テレビ中継は最後のほうしか見られなかったが、 いちおうランナーからすると、 こういう見世物のような放送はよくない。 箱根駅伝もそう。
何を書いても言い訳にしかならないが。 一色の海をなめんなよということだろう。 このレースは、コースは平坦だから風だけが問題。 今朝、出かけると風がない。ラッキーと思った。 現着してもそんなに風はない。 しかし、体育館で着替えなどして、 ウォーミ…
71、701、7001、…、700000001という自然数をよく見ると、 11までの素数で割り切れないことがすぐにわかる。 元々この形の自然数は素数になりやすい。 雑な議論をすると、 2で割り切れない確率は1/2、3で割り切れない確率は、2/3、 11までの素数で割り切れな…
http://blog.mf-davinci.com/mori_log/archives/2008/01/post_1613.php71、701、7001、…、700000001という自然数が素数かどうか調べると、 8つ中6つが素数なのだという。 多倍長整数はPerlで簡単に扱えるので(遅いが)、調べてみた。 use bigint;for my $i(…
走行距離 5km 走行時間 21分2秒 平均速度 14.3km/h 5kmってうまく走れたことがない。
(いろいろ修正)ここ3日くらいは、GPGPUをやっていた。 GPGPUはGeneral Purpose GPUの略で、 GPUは本来グラフィックの処理をやらせるものを、 それ以外のことでも使おうということ。 なぜなら、GPUのほうがCPUより圧倒的に速いから。 多くのデータを並べて…
前回のは[-π/2,π/2]で成り立っていたが、 実数全域でも成り立つようにしよう。 素直に書くと、 double sin2(double x) { int i = (int)(x * (1 / M_PI) + 0.5); if(x i--; if(i & 1) x = i * M_PI - x; else x = x - i * M_PI; double x2 = x * x; return x …
sin logのときと同様に最適な有理関数を[0, π/2]で求めよう。 ソースを少しいじるだけなので簡単に求まる。 n = 3とすると、 誤差は、 0 : error = 0.00665545 1 : error = 0.000283412 2 : error = 0.000102882 3 : error = 0.000156899 1e-5ほしいとすると…
トランプを正確にシャッフルすると8回で元に戻る、 この仕組みをできるだけ分析してみよう。 カードの並びを順に、0〜51とする。 一度シャッフルすると、 0→0、1→2、2→4、26→1、27→3 のようになる。 この規則性を式で表すと、 この記号で、常に an+8 = an と…
名前は知らないが、 トランプの山を半分に分けて、両手に持って、 テーブルにカードを押し付けて親指ではじいて交互に混ぜる方法、 これは、プラスチックのカードだと、テクニックがあって、 正確に1枚ずつ順に混ぜる方法があった。 子供のころよくやってて…
前回の場合分けの部分も並列処理をする。 SSEに分岐などないので、そこは工夫が必要である。 方針としては、 xy平面を象限に分けて考える。 第4象限は3π/4回転して、x >= y && x + y >= 0の領域に持ってくる。 同様に他の象限も回転する。 そこで素のatan2の…
走行距離 19.508km 実時間 1時間34分32秒 走行時間 1時間31分27秒 平均速度 12.8km/h ハーフ換算で、1時間39分を切った。 3週間後の本番では1時間38分を切りたいところだ。
SSEで速度がアップすることがわかったので、さっそくatan2の計算に適用してみよう。 一つの関数で4つのatan2の計算を一度に行う。 場合わけの部分はそのまま残しておいて、有理関数の計算をSSEで行う(コードは下)。 環境が今までとちがっていて、PCが少し…