The below article has been submitted to NA Digest (So, it would not be received …). Japanese version of that can be read here.
—-
Dear NA digest subscribers,
I am in trouble about the problem on cosine function in IEEE754 double precision.
On Fedora Core 4 or CentOS 4/5 x86_64 env, I ran the program which included the function below in 4 different rounding-modes (RN, RZ, RP, RM) in order to know amount of round-off error.
double cos_rmode(double x, int rmode)
{
int current_rmode;
double ret;
current_rmode = fegetround(); // get current rounding mode
fesetround(rmode); // change rounding mode
ret = cos(x); // cosine function
fesetround(current_rmode); // restore rounding mode
return ret;
}
As a result, very different values of cosine func at x >> 1 are obtained like:
cos( 5.04710873550435011e+01) =
RN, RZ: 9.78937668119415738e-01, 9.78937668119415627e-01
RP, RM: 5.55012195441045186e-01, 9.78937668119415627e-01
cos( 5.48598775598298900e+01) =
RN, RZ: -1.17720272477898139e-01, -3.04940663255730016e+00
RP, RM: -1.17720272477898139e-01, -3.04940663255730016e+00.
The underlined values above are incorrect.
In the RN mode, the cosine function always returns correct values, but incorrect and very different values in other 3 modes. If you want to check this phenomenon on your env, you can download my sample program from:
http://na-inet.jp/weblog/archives/test_cos.c
By trying to run the above “test_cos.c” on 32bit and 64bit Linux environments around me, this phenomenon could not be found in 32bit env such as Pentium 3/4 and Mac OS X 10.4 + Xcode + Core2Duo.
I will appreciate your sending the information about this problem if you have anything.
Sincerely yours,
—
Tomonori KOUYA
http://na-inet.jp/
2/16(土) 掛川・晴
どどどどどどわーーーーーーっ。何だこれ,何だこれは〜。全く同じ引数を与えてるのに,丸めモードによって全く違う値が出るではないかーーーーーーっ!!!!
cos( 2.15050720034533157e+02) = 1.47832900163407915e-01 (3.0e+00, 2.1e+01)
RN, RZ: 1.47832900163407915e-01, 3.17951687246473957e+00
RP, RM: 1.47832900163407915e-01, 3.17951687246473957e+00
ちなみにサンプルプログラムはこれ。この結果はFedora core 4 x86_64 + Athlon64 X2 3800+ + gcc 4.1.1でコンパイルしたプログラムが出力したものの一部である(全体はこちら・極端にでかい差が出た時のみ4モードでの値を表示)。どうもPentium D + CentOS 4 の環境でも同じ現象が発生するようだ。MacOS X 10.4 + Core2Duo + Xcodeの環境ではこの現象は再現しない(結果はこちら・エラーなしなのでcosの値のみ表示)。32bit環境だと無事で,64bit環境特有のバグとか? しかし検索してもそんな現象はどっこも報告されてないようだしなぁ・・・。
結果を眺める限り,デフォルトのRN(Round to Nearest)モードでは常に正常値であり,他の3つのモードでおかしくなるようだ。うーん・・・?
どーりでワシの代数方程式のルーチンも,GSLのルーチンも結果が変だと思ってたんだよなぁ。まあワシのミスではないことが判明したが,cos関数なんて基本的なものでこんな重大なbugがあっちゃ困るんだよなぁ。しかも計算機誕生の黎明期ならともかく,21世紀になってるってのにさぁ。
さて,誰に聞けば良いのかなぁ? GSL MLでもMPFR MLでも畑違いだし・・・とりあえず,NA-Digestに投げて聞いてみようかなぁ。
原因が分かって一安心なんだけど,暫くはワシの64bit環境ではおっそろしくて三角関数が使えないぞ〜。どうすりゃ良いんだ全く。秋田行きまでもうちっとだってのにさぁ。
頭を抱えつつ寝ます。
当たり前のこと四か条
以前,サーチエンジンの検索結果の履歴をよく観察した結果,Webページのアクセス数を増やすことができたというコラム記事を書いた。あれを書いたのは去年(2007年)だが,今年(2008年)に入ってからはさすがに一時期のSEO/SEMブームという乱痴気騒ぎも落ち着いたようで,考えてみれば社会活動のすべてをWeb上で展開している一部の企業や人ならともかく,普通の人はせいぜい一日に数回メールチェックをするか,暇つぶしにWebを眺めるかというぐらいであるから,サーチエンジンの検索結果が多少上下しようと日々の活動にはあまり影響はないのであるからして,至極当然のことである。
それでもやっぱり世界中の万人から閲覧することの出来るメディアを持っている以上,ある程度は目立ちたい,注目されたいと思うのは人情である。blogの世界でもアルファだのベータだのガンマだのと格付けされたbloggerが出てきたようだが,彼らとて,記事を書く以上は他人から全く無視してほしいなどとは思っていないだろう。ホントにそう思うなら,SNS内で閉じて遊んでいればいいわけだし。
そしてワシもアルファには遠く及ばず,せいぜいカイ(χ)bloggerってところだが,やっぱり自分の書いた記事がどう他人に読まれているかは気になるのである。とはいえ,今更track backやcommentを求めるのも面倒だし管理もしたくないし,せいぜいサーチエンジンで検索して,どのぐらいの順位にワシの記事が出るかをチェックするぐらいが関の山だ。すると,さすがにエントリが1000も超えるとチラホラとワシの記事に言及したり非難したり賞賛したりしている記事が見つかったりして嬉しかったりするのである。褒められることはもちろん嬉しいが,非難されることも同じぐらい嬉しかったりするのが不思議だが,コミュニケーションが取れているという点ではどちらも同じ,いやむしろちゃんと読んでくれているからこそ非難できる訳だから,後者の方がありがたかったりする場合もあるのである。
そんな訳で,暇にあかせて,あるいは現実逃避(こっちの方がずっと多い)の一環として,チマチマと検索しては喜んでいるワシなのであるが,そういうことを繰り返していると,経験からしか学べない下位じゃないχブロガー(どっちにしろ同じことだが)も,少しは常識というものが蓄積されてくるのである。
で,書いてみたのが下の四か条であるが・・・,こうしてみると「当たり前じゃん」と言われるようなことばっかりなのだが,この世の中はいかに当たり前ののことをしっかりやるかで評価というものが全然違ってくるものなのであるからして,当たり前のことを何度も再確認しておくことは大事なのである。
つーことで,経験則から得た「当たり前のこと」をつらつらと書いてみたい。
1. blogの更新はマメにやるべし
何を今更だが,やっぱり今も昔もマメさは重要度ナンバーワン。サーチエンジンにデータをせっせと蓄えてくれるWeb robotの来訪間隔は,平均blog更新頻度で決まる。従って,毎日更新されるblogと,数年もほったらかしの静的HTMLサイトでは,更新してもそれが反映されるまでの時間は全く違う。最新情報を掲載しても,それが一月後にようやっと検索に引っかかるようでは全く役に立たない。
2. 書きたいことを書くべし
あなたが秋元康並みに流行に対する感度が高いというなら別だが,普通の市井人の知恵など,笑止千万,ましてや未来予測などできっこない。注目されたいと思うが故に好きでもない流行物に振り回されるぐらいなら,どっしり構えて書きたいことを書くべし。この世の中,いろんな趣味嗜好の人間がいるのだから,どっかに照準を合わせて・・・なんてやってられない。見えない不特定多数相手には我を通すのが一番ストレスが溜まらないやり方である。
ま,我を通したら世間から猛反発を食らうって方もいらっしゃるようだが,それはblogとは別の次元の問題である。
3. 思いついたことはなるべく早く書き残すべし
どっかの団塊親父みたいに,文章はじっくり煮詰めて万人に恥ずかしくない内容にしてから公表する・・・なんてのは,あーた,馬鹿げている。質の向上は量をこなした先に訪れるのである。論文だって文学的美文だって,まずは練習しなきゃ書けるわきゃない。ましてや森林資源の無駄遣いには直結しないblogである。書いて書いて書きまくるのである。そして,間違った!失敗した!と思ったら,後から書き直せば良いのである。書き直しはみっともない? バカモン! みっともなさこそbloggerの醍醐味である。多いに楽しむべし。
そして,書いたことをすぐに公開すると,1で述べたように,更新頻度が上がり,サーチエンジンへの登録時間が短くなり,同じような内容を書いた記事が少ないうちに人の目に触れる確率が増えるのである。χ bloggerの書いた記事など,あっという間にもっと上位のbloggerの記事に押しやられるのがオチ。どーせ流されちゃうのなら,競争率が少ないうちに書いてしまえ!検索に引っかけちまえ!
4.書いた記事はURIを変えずに長期に渡って保存すべし
1と矛盾するようだが,一度書いた記事をずーっと保ち続けるというのは,実は3と同じ効用が期待できるのだ。
Webサイトは案外URIの寿命が短い。人気というは訳の分からんもんで,ことにWebしか見ていない輩は視野狭窄になりがちであり,ちょっと気に入らないことがあると総スカンで非難したりして,あっという間に人気サイトが落ち目になったりする。ことにWeb以外の社会活動をしていないbloggerほど転落は早い。下手に人気のあった自分のサイトがそういう目に遭うと人間そう強くないもんで,早々に撤退してしまったりする。人気のないサイトならなおさらそうで,ちょっとデータは古いが,一月ぐらいで半分以上の人が更新をやめてしまうという話もある。もちろん続ける人もそれなりにはいるが,それとて一年,二年・・・と経つうちに,どんどん淘汰が進むのである。
で,最初は検索しても全然出てこなかった記事が,数年経つとあら不思議,いつの間にやら上位に出てきたりするのである。ま,所詮は古い記事であるから,眺める人の数もそれほど期待できないが,こういう古典記事の「チリ積」的効用は侮れないものがある。そして古典記事となればなるほど,そのうちどんなものが良く閲覧されるようになるかなんて,流行予測より更に分からない。だからこそ,2で述べたように,書きたいことを書いておくのがベストなのである。後悔しない上に,そーゆーものが「掘り起こされる」という喜びは何者にも代え難いものがあるのだ。
・・・とゆーことで,コミュニティ機能を果たしていないblogを長く続けるために心がけるべき「当たり前のこと」を四つ,書いてみた。結局は「人に見てもらう→嬉しい→嬉しいからまた書く→更新が頻繁になって,長く書き続けることが出来る」というモチベーション維持が出来るシステムを作り上げるってことに尽きる訳だが,それすなわち最高のSEO/SEMってことになるんじゃないのかなぁ。してみれば,SEO/SEMなんて,当たり前のことを如何にちゃんとやるかっていう,これもまた世間的な常識の範囲の話に過ぎないのであろう。乱痴気騒ぎが落ち着いたのも,結局は当たり前のことをするだけっていうことに皆が気がついたってことも一因なんだろうな,きっと。
群ようこ「音の細道」幻冬舎文庫
[ Amazon ] ISBN 978-4-344-41096-1, ¥457
まずは上の写真を見て欲しい。あなたはこれを見て,違和感を覚えるだろうか? いや,地縛霊とかそーゆー話ではない。・・・分からない?
無理もない。
確かにこの写真だけではよく分からないだろう。しかし,手にとると・・・おおっ,これは!・・・となるのである。
ワシはいつもの群ようこエッセイを読むつもりで買っただけなのに・・・。それが,一冊の文庫を巡る,ミステリーの始まりだったのです(大げさな)。
本書は幻冬舎の広報誌「星々峡」に連載されていた,音楽にテーマを絞ったいつもの群ようこエッセイ集である。大体は連載時にリアルタイムで読んでいたのだが,この度文庫化されたのを機に購入したものだが,今回は内容ではなく,本書の外観のみ語ることにしたい。内容なんて,群ようこであるから,今更ワシがあれこれいうこともないっしょ(なげやり)。いや,面白いのは確かなので,その点は誤解なきようお願いしておく。
掛川の書店の文庫新刊コーナーに平積みになっていた本書を手に取り,レジに向かう途中,ワシは違和感を覚えたのである。
違う。何かが違うぞこの文庫。
あれ・・・?
小さ・・・い?
いや,文庫だもんなぁ,そんなことないよなぁ。各社統一サイズだし,ワシの感覚が狂ったのかな?
・・・と,まあ自分を納得させて,家に戻ったのである。
しかし,枕頭に置いて寝る前に読み始めると・・・やっぱり変なのだ。明らかに・・・小さいのである。で,実際に他社の文庫と比べてみると・・・
ああっ,何ということだ! 文庫が,文庫が・・・・
まずは,論より証拠。これをご覧あれ。比較対象に使ったのは集英社文庫の森まゆみ「寺暮らし」である。これも面白いちゃぶ台エッセイなので是非お勧め・・・ってそれはそれ,これはこれ。話を戻す。
高さはご覧の通り,同じである。

しかし,正面から見ると・・・

あ,ずれてる。
更に拡大してみると・・・

やっぱり,横幅が5mm程足りないのである。うーむ,伊達に十数年間に渡って文庫を読んでいなかったのだな。持っただけで違和感を覚えたワシの感性は鋭い。褒めて欲しい。
しかし謎だ。単に造本が間違っているという話ではない。平積みになっていたこの文庫は皆同じサイズだったように記憶している。幻冬舎文庫はあまり買う機会がないのだが,皆このように横幅が狭くなっているのだろうか? 今度本屋で試してみよう(迷惑な奴)。
しかし謎である。あの見城徹のことだから,コレも何かの仕掛けなのかな,という気もするが,意図がさっぱり分からない。どなたか事情をご存じの方に,是非教えて欲しいものである。
2/10(日) 掛川・快晴
ピーカン晴れ。最高気温は10℃まで上がるんだそうで,ここんとこフル稼働状態が続いていた灯油ストーブもつかの間のお休みを楽しんでいる。当方としても財布が助かるのでありがたい。そーいや石油価格は高値安定が定着しましたな。本来ならもう灯油とは縁の切れた生活を送っているはずなのだが,どっかの×××××××のせいで延び延びになっているのであった。そこんとこを見透かしたように,某マンション営業の方から連絡,是非見てくれと勧誘を受けてしまう。うーん,見に行ったら最後のような気もするし,しかしいつ出来るのかも分からんところをいつまでも待つのもイヤ。心千々に乱れる三連休の中日なのでありました。
・・・何書こうかと思ったんだっけ。ああそうだ,いっぱいあったんだ。どーも近頃健忘症でいけません。それもこれも全ては団塊親父どもの策略に悩まされているからである。そのうちまとめて返り討ちして差し上げるので,首洗って待ってろよ>該当の方々
えーと,第37回数値解析シンポジウムの開催告知が出ました。事情があって,生憎SACSIC2008とぶつかっておりますが,数値計算・数値解析寄りの研究発表を考えておられる院生さんなどおられましたら,こちらへのご参加をご検討いただけると幸いです。ポスターセッションも予定してるので,夜のシンポジウムに加えて更なる深い議論が交わせると思います。是非とも周囲の方々にも告知して下さいませ。
・・・っと,営業トーク終了。
で,ですね,何で幸谷なんぞが実行委員に名前を連ねているのかということは聞かないで欲しいものである。いーじゃん,小間使いは多い方がいいのっ!
あ,そうそう,連絡先のメールアドレスですが,実行委員全員へのエイリアスになってますので,ここにメールを送られる際にはお気を付け下さい。いや,色々読めて楽しんですが,内容次第ではワシのblogネタになりますので,そこんとこよろしく。
あと何だっけ。そうそう,OpenIDに有力者が次々加入ということのようだ(Internet Watch)。まー,CAなんて所詮空手形に過ぎないってな事例も出てきちゃったし(/.J),結局認証の分野もサーチエンジン同様,有力者による制度の寡占化が進むってことか。
ふーん,Ubuntuが伸びてるって感じはあったけど,そーゆー理由があったのか(やじうまWatch)。ハードウェアはともかく,OSに新味もTuningの進展も見られないMacよか,安定性さえ確保できるならLinuxの方がいいかも。
さていい加減,秋田行きのお仕事をしっかりやらねば。つーことで仕事しま〜す。