次年度の後期に担当することになった「数値解析2」のためのテキストして下記のシラバス案を作ってこれに沿ったテキスト「多倍長数値計算入門(仮)」を書いてみることにした。
- 多倍長数値計算とは?
- コンピュータの内部と演算の高速化手法
- 多倍長自然数演算
- 多倍長整数演算とその応用
- 多倍長浮動小数点演算
- 多倍長精度浮動小数点演算ライブラリの比較
- 並列化手法
- 初等関数の計算
- 円周率の計算
- 基本線型計算と並列化
- 連立一次方程式の求解
- StrassenのアルゴリズムとLU分解への応用
- 非線型方程式の求解
- Remez法による最良関数近似多項式の導出
- 補外法による常微分方程式の初期値問題の求解
学部の講義だから「スタンダード」なものを講義する必要があるので,今までは多倍長計算については多少触れる程度にとどめていたのだけれど,QDもMPFR/GMPもすっかり定着したし,GMPに至ってはこれがないとLinuxのセキュリティも確保できないほど深くシステムに食い込んじゃっているので,こんだけスタンダードになっちゃったものを逆に講義しない方がおかしいという状況だからもう遠慮は要らんわな。一応整数演算とその応用についても触れるべく1章分ぐらいは雑多なものを入れる予定だが,そのほかの部分は数値計算の話題になる。
こういう知識詰め込み型講義ってのは,漆塗り型の基礎教養的講義に比べて嫌われるらしい。受講生に言わせると,毎回講義内容もトーンもガラリと変わっちゃうので目まぐるしくて戸惑うとのこと。まぁこちらとしては「うるせぇガタガタぬかすな一度ぐらい目を回す経験ぐらいしておけ!」というつもりでやるのでアンケートはズタボロになりそうだし,ひょっとしたら受講生ゼロかなぁとも思うんだが(それはそれで一面ラッキーではある),こちらとしてはせっかく担当するのだから準備するのも「楽しみ」がないとツマランのよねぇ。
演習はC++を主軸としつつ,ほとんどANSI Cでプログラミングという感じ。環境をWindows向けに整えるのがちと骨であるが,MPIRはあるし,QDは多分ネイティブVisual C++でも問題なくコンパイルできるだろうし,まぁ何とかなるのかなと楽観している。ダメならLinuxのCUI環境提供かCygwin使えばいいしね。
つーことで今後LAPACK入門(仮)の校正作業と並行して準備を進めていく予定。さっさとこれ書いてワシのアカデミックキャリアの半分以上は終わったなぁという感慨を持ちたいのであります。〆切は来年8月上旬。さてどーなりますなら。