R. T. Kneusel, “Numbers and Computers”, Springer

R. T. Kneusel, “Numbers and Computers”, Springer

[ Amazon ] ISBN 978-3319505077, \8000ぐらい?

 「多倍長数値計算(仮)」という本を刊行すべく原稿は何とか仕上げたものの,果たしていつ頃完成するのかは全然見通せない今日この頃,いつになったら版下ができるんでしょうか? ・・・ま,予定より1年以上完成が遅れたワシには急かす権利はありませんな。

(追記: 今年秋頃に出るそうです。ワシがサボらなければ。Mさん,慌てさせてすいません。)

 つーことで,いわゆる多倍長計算,GNU MPとかMPFRとかQDとかで,どういうC/C++プログラムを書いたら長い桁数で計算がすいすいできるようになるのかなぁ~という方への(刊行予定の立たない立った)入門書を書いたわけだが,そーゆー本が,この世にないわけではない。日本より何十倍も読者がいる英語の本ならありそうなもんだが,これが案外ない。もちろんこの分野の専門家の書いた”Modern Computer Arithmetic” (by R.P. Brent & P. Zimmermann)とか,”Handbook of Floating-point Arithmetic” (by Muller, et. al.)なんてのがあるんだが,これはゴリゴリの専門書であって「入門書」ではないのである。

 「入門書」とは何か? それは敷居を極力低くした,底の浅い記述に満ち溢れたお手軽な本のことである。「LAPACK使う必要があるんだけど,ググったら大量の解説ページやマニュアルが出てきてゲンナリ」という向きに,お手軽な「とっかかり」を提供すること,そのためには分厚さで圧倒してはならず,古老の如きウンチクを傾けてはならず,記述は簡潔にしたペラペラな本が望ましい・・・という自虐はこの辺にしておくけど,必要以上に厚くする必要はない,つか,「ほんとにその分厚さ必要なの?」というプログラミング書籍が多くてちょっとゲンナリしているのは確かなのである。「敷居を低く,底は浅く」書く,その上で「ストーリー」があれば言うことなし。入門書との相性は,著者が提供するこの「ストーリー」と波長が合うかどうか,そこに尽きるとワシは確信しているのである。

 「ストーリー」とは何か? それはその入門書の目的を完遂するための「流れ」と言い換えることができる。本書の場合,「数とコンピュータ」というタイトルが物語る通り,整数,有理数,浮動小数点数,固定小数点数,区間演算(Pythonによる実装とMPFIの解説がある)などなど,「コンピュータ上で数をどのように取り扱うか?」ということを理解させるべく,その本質的な記述を心掛けつつ,短く適切なプログラム例を織り込んでおり,プログラミングを通じて目的を完遂しようというストーリーがあるのだ。

 これ,ワシにとっては理想的なストーリーなんである。で,ワシもそれに従って・・・といきたいところだが,いかんせん教養がなく,仕方がないので自分なりに持っているノウハウの引き出しをぶちまけた「GNU MP, MPFR, QDプログラミング入門書」になってしまったのは致し方ないところ。それなりにストーリーを作ったつもりであったが,どーもワシの悪癖である「書いてあるからプログラム読めば?」というところが随所に出てしまってかなり解説が舌足らずになってしまっている。・・・という反省ができるのも,先達である本書が優れたストーリーを見せてくれたからである。

 まさに「先達はあらまほしき」なのである。まぁバリバリプログラミングしたい向きにはちと物足りないところはあれど,現代的に「数」の扱いはどうなっているのか,俯瞰的に知りたい向きには程が良い「入門書」と言えるのである。