William J.Cody, Jr & William Waite, “Software Manual for the Elementary Functions”, Prentice Hall

[ Amazon ] ISBN 0-13-822064-6, \?
cody_waite_elementary_functions.jpg
 ワシの手元にあるものは1992年に御茶ノ水の丸善で購入したもので,当時でも14790円だった。Amazonを検索してみると,古本でも万単位の値が付いているから,結構貴重なものなのかも知れない。もちろん,購入当時は「珍しい本があるもんだ」ぐらいにしか思ってなかった。本書のFirst authorが数値計算ソフトウェアの大御所であるとはこの度の訃報を見るまでは殆ど知らずに過ごしてきたのである。詳細はC.Molerの記事中にあるインタビュー記事を参照されたい。以下,この記事中にある情報はそれを斜め読みして得た知識が殆どである。
 オープンソースの源流というのを辿っていくと,これは殆ど誰も言及していないようなのだが,数値計算ソフトウェアの配布という「習慣」に行き着くことが多い。1990年代までは,日本でも数値解析シンポジウムとかでソフトを配布するということが普通に行われていた。その大本を辿っていくと,どうやらこのCodyが行ってきた研究活動に行き着くようなのである。
 朝鮮戦争から戻ってきたCodyはオクラホマ大学の数学科で修士号を,ノースウェスタン大学でPh.Dを取得して,原水爆の研究で有名なロス・アラモス研究所で仕事をした後,1991年に引退するまでアルゴンヌの国立研究所で研究者として過ごした。1960年代から,シュレジンガー方程式の計算をするうちに既存の初等関数に問題が多いことを知り,1964年に論文「CDC-3600向け倍精度平方根計算」(“Double Precision Square Root for the CDC-3600″, ACM Vol.7, 1964, pp.715-718)を掲載,ここから初等関数・特殊関数の計算法の研究を本格的に開始することになる。CDCやIBMのマシンを使いつつサポートもする必要があったため,互換性を重視しつつ性能を落とすことがないよう,マシンごとの特性を事前にチェックするサブルーチン”MACHAR” (Machine Characteristicの略?)を作成したりと,地味だが重要な仕事をしてきた。後にEISPACK(行列固有値計算サブルーチン集)の開発も手伝い(というよりコードはかなり書いたみたい),これが連立一次方程式解法ライブラリLINPACKと統合されてLAPACKとなる。で,今もMACHARはBLASに残ってたりする。
 Cody自身の仕事として誇れるものは,このMACHARと特殊関数ライブラリSPECFUN,実数関数ライブラリELEFUNT, 複素関数テスト用プログラムCELEFUNTということだそうだ。IEEE754-1985や854の規格制定では議長として場を仕切っているが,W.Kahanの発想を生かしただけと控えめな感想を述べている。
 話が横道に逸れてしまったが,SPECFUN, CELEFUNTは論文のページからソースコードが今でも無料でダウンロードできるし,LAPACKは言わずもがな。この源泉は,Codyが計算センターでサポート業務の一環としてプログラムを配布していたことにあるようだ。本人曰く,「税金で造ったものはpublic domainにすべき」というポリシーだそうな。これは本人の性格もさることながら,Abramowitz & Stegunの”Handbook of Mathematical Functions“がそうであるように,アメリカ合衆国の理念に通じるところがあるように思える。国家が造ったものはpublic domainにすべきって考え方,USA発祥・・・なんでしょうか? この辺になるとワシもよく分らないが,どうも本人の意志によるというよりごく当たり前の常識ということなんじゃないかと思える。もちろん,数学理論には特許が降りないためにビジネスとしては成り立たなかったから,という事情も手伝っているとは思うんだけど,どーもソフトウェアは望む人にタダで配るという伝統はこのあたりから始まっているんじゃないのかなーと思えるのだ。山形浩生さんとか八田真之さんあたりが調べてくれないかしらん?
 で,本書である。あの気むずかしなKahan先生もテキストとしてご愛用したという本書は,ELEFUNTの解説本という位置づけになっている。初等関数の計算法は様々なものがあるが,本書で述べられているのは最良近似多項式に基づくものが殆どである。最新の研究結果はMullerの本にコンパクトにまとめられているが,そこでomitした近似多項式の係数表はCodyの本とかに譲るとしている。本書では平方根から始まって,log, exp, power, sin/cos/tan, asin/acos/atan/atan2, sinh/cosh/tanhの計算法が章ごとにフローチャート付きで解説されている。最良近似多項式は固定小数点数,浮動小数点数,10進,10進以外の場合と細かく分類されて提示されており,もー細かい細かいノウハウがぎっちり書き込まれていて,とうてい自分で造ろうという気分にはさせてくれない代物である。使用する固定・浮動小数点数の桁数に応じて近似多項式の係数も2~3パターンで提示されていて,全てHorner法を使って最小の計算量で済むよう計算せよと書いてある。・・・お見それしましたとしか言いようがない。和書でも山下真一郎によるものとか浜田穂積によるものもあって,まー,細かい細かい。その細かさの源泉はCodyにあるんだなとよく分ろうというものである。
 何でこんなに厳密かつ多項式計算一つにもこだわんなきゃいかんのかというと,プログラムによる計算の正確さと計算速度が初等関数のそれに大きく依存しているからである。角度計算一つとっても逆三角関数が不正確ではどうしようもない。呼び出し回数も多いから高速であることが重要。現在のCPUではハードウェア内部でマイクロコードによって初等関数は計算されるが,Intel CPUですら普通の四則演算より数十倍の計算時間がかかるのが普通である。高速性と精度維持が必須の機能を担っている初等関数の計算とCodyが格闘せざるを得なかったのは,コンピュータ黎明期においては必然だったのかもしれない。本書では関数のチェック方法についても細かく記述があり,これは類書では見あたらない貴重なものである。カシオさんとこのチップはちゃんとこのテストはクリアしているのかしらん? 10進ベースの係数表はホント,貴重ですから揃えておいた方が良いですぜ。
 墓石には「Family man」と刻んで欲しい,と言い残して世を去った穏和な研究者に,哀悼の意味を込めてこのぷちめれを東洋の片隅からお送りしたい。

7/2(木) 掛川・雨

 朝から雨。そろそろ梅雨末期だと思うんだが,まだ本格的に梅雨前線が北上を始めたわけではないらしい。ジメジメな天候はまだ続きそう。暑いよりは過ごしやすくていいけどね。
 MPIRの中核,Bill Hartさんが書いているFAQの下書きから。

Q. MPIRが”Developper Friendly”とはどういう意味ですか?

A. 私たちは,MPIRに関心を持ってくれそうな開発者やユーザに無礼な(rude)振る舞いをすることを許さないという方針を取っています。回答できる質問には全て礼儀正しく回答します。ソフトウェアを開発すべきでないユーザというのも存在しますが,そういう人たちが最終的には協力的なファンになってくれたり,あなたにとって一番価値のある貢献をしてくれたりすることもよくあることです。人々がMPIRに貢献をしやすくすること,これを最優先事項としています。

 「タコを大事にしよう」というおごちゃんの標語を思い出してしまった。同じことを穏当に言っているだけである。ま,”rude”だったのを改めようってことで。

Q. GMPのWebサイトにはMPIRを”怒りの分岐ソフト(angry fork)”としており,”アンチGMP的対抗心(anti-GMP sentiments)”を持った”不満を抱えた開発者(frustrated developers)”による分派だと書いてありますが,どういうことでしょうか?
A. 彼らに聞いて下さい。 大体,我々がアンチGMPだったら,MPIRの土台のコードにGMPを使うなんてねぇ・・・あり得ないでしょ?

 まぁねぇ・・・。徹底して理性的に書くって方が良かったかも。
 では行ってきます。

7/1(水) 掛川・曇

 九州の方は土砂降りのようだが,東海地方は曇り空どまり。太平洋高気圧の勢力も徐々に大きくなっているようだが,まだ梅雨前線を本州縦断するところまで押し上げるまでには至らず。今年の夏は冷夏かな? だと嬉しいが,景気のことを考えると暑いに越したことはないしなぁ。
 T君の卒研,結構良い線行ってるので9月に喋ってみては?とそそのかすも,本人は現状に不満のようである。まぁ,確かにPentium IVマシンでは負荷が集中してしまうとDead lock状態になるようだから,これでベンチマークの結果ですとか言っても説得力には欠く。ワシはそこんとこも含めて良い結果だと思っているんだが。エエ加減な教員と完璧主義の学生さんとのマッチングというのも面白いなぁと無責任に楽しんでる今日この頃である。
 PHP5とActionScript3とScilabを毎週のようにいじくっていると頭が混乱してくる。色々勉強できるのは楽しいが,最近の言語は皆似たようなものになっていてつまらん所もある。一番触ってて面白いのがScilabなんだが,機能面では大分MatlabやMathematicaに劣るような感じ。せめて,日本語フォルダのサポートぐらいできんもんか。おフランスなお国では2バイト文字は不要ってことかと文句も言いたくなるが,立場上(そのうち分ります)余り腐すわけにもいかず,何とかだまくらかして非斉次線型ODEには何とか対応したけどな。7月中にはGSLプログラムも完成させて,倍精度計算でのベンチマークぐらいはやらにゃぁ。いや,でもLAPACKとQUADPACKの組み合わせの方が良いのか。こんだけ定評ある歴史の長いソフトウェアが溢れていると,その選択の指針ぐらいは欲しいところである。
 そーいや,Mathworks日本法人ができた模様。MuPADも吸収したんだし,ちゃんとMathematicaに互して競争して欲しいものである。
 さて,昨年のマンションに続いて,今年も一桁違うものの,でかい買い物をすることになりそうだ。今月末には納車(あっ言っちゃった)っつーことだが,スムーズに買えるのかなぁ。さすがに15年目のパル子だけあって,とうとうエアコンのファンが狂ってきたのである。これからcrazy hotな夏が来るというのに。それで慌ててハイブリッド車を出さずに次年度以降EVをアメリカで販売するとゴーンさんが宣言した国産メーカーに見積もりを頼んだという次第。補助金だの減税だの販売値引きだので思ってた以上に安く済みそう。民主党が政権を取って補正予算を凍結する前に頂くものは頂こうというさもしい根性な私なのである。さてどーなりますやら。
 本日はあぶく銭にて福満しげゆきの新刊を買った。ブログを持ってたら何か書けとあとがきにネチネチと愚痴っておられたが,まぁ講談社の方では感想を書いて「福満しげゆき 妻」とググると結構上位に出てますので,それでご満足していただけませんでしょうか?>福満先生
 最近益々ふくよかになられた奥様と今日も仲むつまじいようで,小生,大変に妬ましく思っております。・・・ダメか?
 ボチボチやって寝ます。あーもー,今年も半分過ぎちゃった~。もういくつ寝るとお正月カウントダウンなのである。寝ます。

6/28(日) 掛川・雨

 梅雨らしい天候。昨日は今年初めてのクーラー全開日となったほどの気温だったが,今日はさほどでもない。リビングのクーラーを流すだけでワシんち全体(つーても68m^2しかないけど)が快適な気温となる。年と共に冷房に対する抵抗力がなくなってきているようで,特に足下の冷えが気になるようになってきた。だもんで,あんまし強力な冷房が効いている場所には居たくないし,家でも厚いほど長ズボンが必須という矛盾した行動を取らねばならぬ。つーまーり何が言いたいかというと,年は取りたくないということなんだな。
 久々のぷちめれ祭り,ミーちゃん28歳で打ち止めにしておこうと思ってたらマイケルが死んじゃったので,思い出しついでによしながふみのBLマンガにて打ち止めっつーことに相成りました。あとはポツポツと。しかしワシ,こんなにマンガばっかり読んでて良いのか?
 Firefoxが3.0.1xになってからか,やたらに落ちるは遅くなるわでどうしようもなくなってきたので,困った時のGoogle頼みっつーことでChromeを突っ込んでみた。
google_crome_2017233.png
 むぅ・・・確かに高速だわ。これでWeb engineがApple kitでなければもっと良いのに。まぁ,高速にするために軽いエンジンを選んだ(&カスタマイズした?)んだろうけど。暫くこれで頑張ってみようか。
 UNIXならぬWebアプリケーション実習っつーことで,先週からPHPプログラミングに突入。つーても適当なつまみ食い知識でプログラミングしているから,時々(いつも?)躓いてしまう。

echo $a . ” + ” . $b . ” = ” . $a + $b . “\n”;

引っかかったのはこれ。$a, $bには数値データを入れているんだが,これだと数値が一個しか出力されない。最初は$a + $bの結果だけ出ているのかと思ってたらそれとも違う。これは多分,文字列演算子+として解釈されちゃってるんじゃないのかな-と思ってたら案の定。
http://www.php.net/manual/ja/language.operators.string.php
 これの一番最後の説明で納得。

echo $a . ” + ” . $b . ” = ” . $a + $b . “\n”;

では$a, $b, $a + $bそれぞれ文字列として最初に解釈されてしまうので,数値データの加法になっていないのだ。だから

echo ($a) . ” + ” . ($b) . ” = ” . ($a + $b) . “\n”;

と括弧書きにしておくと,括弧内の解釈がなされて数値データとして処理がされる(和も)ので,期待したとおり

3 + 5 = 8

と出力される。うーん・・・型指定がないのがいいのかどうか,ちょっと微妙。めんどくさいよね。そもそもこの手の出力をするのにechoを使うなという話もあるけど,この後SQL文を繋げて生成してqueryするっていう実習もするので,その練習も兼ねてこれ使ってたりするからねぇ。まあ今週チャンとフォローしておこうっと。すまんこってす>受講生の方々
 今日はやり残した家事をやって静岡空港見学してから明日の予習をして寝ます。あ,遅ればせながらTwitter始めました。・・・どーせ続かんって。

よしながふみ「それを言ったらおしまいよ」太田出版

[ Amazon ] ISBN 4-87233-798-0, \650
you_dont_say_such_a_thing_fumi_yosinaga.jpg
 マイケル・ジャクソンが突然の心不全で亡くなった(2009-06-26)。享年50歳。ワシは別段マイケルの熱心なファンというわけではないが,80年代にUSAヒットチャートを聞きまくって育った人間の一人として,耳馴染んだあの声の主がこの世から去ったことに対して,皆と同じような感傷を抱いてしまう。死因については薬物の影響も言われているようだが,何はともあれ,哀悼の意を表しておきたい。
 マイケルに限らず,音楽家にしろ物書きにしろ,常に他人からの歓声と批判と無視に晒されつつ,安定しない収入に依存して生活するというのは,誰しもできることではないようだ。第三者からの「評価」に対して超然としていればいいかというと,客商売ということを考えるとある程度は聞き入れた方が良い場合もある。では依存しまくっていればいいかというと,結果でしか評価されない商売である以上,いい作品を生み出すための「雑音」となってしまうようでは意味がない。どちらにしても,悩みは常に商売のネタである向こう側から間断なく押し寄せてくる訳で,ことに一時爆発的な人気を誇ったアーティストが早死にしがちというのは無理からぬことと言える。マイケル・ジャクソンについては90年代に入ってからの「奇行」が世間を騒がしていたが,ワシら常人には理解できないストレスを抱え込んでいたのだろう。そう考えると,近年の彼はどうにも痛々しい印象を与え続けていたことが納得できる。
 で,思い出したのがこの2003年に刊行された作品集に収められている「ピアニスト」という短編である。2009年度の手塚治虫文化賞を獲ったよしながふみの素晴らしさを今更語るのも面はゆいが,ま,良い機会なので,マイケルの追悼にこと寄せてまとめておきたい。
 本書はいわゆるBL(boys love)作品集ということになっているし,実際登場人物は一作品を除いて全員ホモだったりするので,その手の描写に免疫のない方々には読めないかも知れない。しかし,それではあまりにもったいない。男×男をの片方を女に置き換えても,本書に収められている作品は十分成立する内容だからである。つーか,BLはあくまでよしながの装飾趣味みたいなモンで,作品の構造は普通のマンガと変わらず,しかもかなり骨太,そして中年以降の人間にも読み応えのあるものになっているのである。
 さて,「ピアニスト」である。帯にある書き下ろし32ページ作品というのがこれ。主人公は,かつて世界的なコンクールで入賞したピアニストであったが,今は作曲した歌謡曲の印税で食いつなぐ落ちぶれた境遇にある45歳の中年男である。ピアノに対する情熱を失ったわけではなく,毎日8時間の練習は欠かしていない。しかし,「才能」という点では,体を許したピアノの師匠からも見切られてしまっており,自分でもそれは十分自覚している。・・・という境遇,ワシは絶妙だと思っているのである。
 よしながは「プロの矜持」というものを大事にしている作家だと感じる。「ピアニスト」の主人公が世界的に認められる技量を持ちながらも,実は才能がない分を人並み以上の努力でカバーしてきただけ,という設定はすごい。そして主人公の独白。

「自分をみっともない努力家だと
認めるぐらいなら
怠けて落ちぶれた天才のふりをして
忘れ去られた方がましじゃないか」(P.183)

 いやぁ~,これは40歳過ぎて,自分の才能という奴を自覚した段階になるとよく理解できる台詞ですね。更に言うと,一度は悩んだこの「みっともない努力家」という立場が,「みっともない努力」と同じことを「楽しみながらの試行錯誤」に反転することで,実はとても魅力的なものになり得るのだということも,よく分っているわけだ。もっともワシの場合は天才という立場にいたことがないので,「落ちぶれた」という境遇については理解が及ばないのが残念である。
 この短編の結末がどうなるかということは読んで確認していただくのがよろしかろうが,よしながは決して斜に構えた投げ出し方をしていないということだけは断言しておこう。
 手塚治虫文化賞を獲った「大奥」も含めて,よしなが作品の最大の魅力は,洗練された絵によって,SEXと愛情と常識的な社会人感覚が,解け合うのではなく固まりのままゴツゴツとぶつかり合っている様が描かれているという所にある。そしてぶつかり合う状態が大河ドラマを構成する重要な要素なのだと,自覚しているのだ。それを楽しんで描くためのツールが,BLという様式なのだろう。ホントに色気のある男を描くのが好きそうだもんなぁ~。きっと,「みっともない努力家」に陥らないための,仕事を楽しむためのツールとしてBL風味は欠かせないものなのだろう。
 そう,お客様あっての偉大なエンターテナーに必要なのは,まず,自分が楽しんでいること,なのである。マイケル・ジャクソンも相当額の印税が入る立場だったのだから,せいぜいうまく「落ちぶれ」つつ,うまく人生楽しむことができていれば,晩年を痛々しく感じさせることもなく長逝していたかもしれない。