多倍長精度数値計算入門 サポートページ

幸谷 智紀

最終更新日: 2019-10-07 (Mon)


更新情報

サンプルプログラム@Github : https://github.com/tkouya/mpna/

  1. 表紙
  2. 初めに
    1. 円周率表示: mpfr_pi_simple.c
    2. Web版
  3. 目次
  4. 第1章 多倍長数値計算とは?
    1. 1.1 そもそも「多倍長」ってどういう意味?
    2. Cプログラム: logistic.c
    3. C++プログラム: logistic_mpreal.cpp, logistic_dd.cpp, logistic_qd.cpp
  5. 第2章 コンピュータにおける数値演算の基礎
    1. Cプログラム: logistic_err.c
    2. , logistic_f_err.c
  6. 第3章 コンピュータの内部と演算の高速化手法
    1. 時間計測用: get_secv.h, get_sec.cpp
    2. 単純行列積に基づく行列乗算: matmul_simple_omp.cpp
    3. ブロック化アルゴリズム・Strassenのアルゴリズム適用の行列乗算: matmul_block.h, matmul_block.cpp, matmul_winograd.cpp
    4. 分割統治法の例: クイックソート(YouTube)
  7. 第4章 多倍長整数演算と多倍長有理数演算
    1. Linux実習環境構築1: TeraTerm
    2. 共有フォルダへのアクセス → エクスプローラから"\\172.16.113.10\mpnaXXXXX"。アクセスできない時は下記のように設定してみること。
      1. コントロールパネル→ユーザーアカウント(Win10は「ユーザーアカウントとファミリーセーフティ」)→資格情報マネージャー→Windows資格情報の管理
      2. サーバ名(172.16.113.10),ユーザ名(mpnaXXXXX),パスワード(指定のもの)を下記のように記入し,「OK」ボタンをクリックして保存

        ←クリックして拡大

      3. 再度,エクスプローラから"\\172.16.xxx.xxx\mpnaXXXXX"にアクセス
    3. Linux実習環境構築2: Virtual Box + Ubuntuイメージ(学内ローカル) ID: cs-user, Password: sist#csuser2019
    4. Linuxコンパイル方法(GMP使用プログラムの場合)
      • [C] コマンドラインから "icc Cソースファイル名1 Cソースファイル名2 ... -L/usr/local/lib -lgmp" → "./a.out"
      • [C] コマンドラインから "icc Cソースファイル名1 Cソースファイル名2 ... -L/usr/local/lib -lgmp -o 実行ファイル名" → "./実行ファイル名"
      • [C++] コマンドラインから "icpc C++ソースファイル名1 C++ソースファイル名2 ... -L/usr/local/lib -lgmpxx -lgmp" → "./a.out"
      • [C**] コマンドラインから "icpc C++ソースファイル名1 C++ソースファイル名2 ... -L/usr/local/lib -lgmpxx -lgmp -o 実行ファイル名" → "./実行ファイル名"
    5. Cプログラム: mpn_sample_full.c, mpz_input.c, mpq_input.c
    6. C++プログラム: mpz_test.cpp, mpq_test.cpp
    7. 練習問題解答: mpz_input_gcd_lcm.c(C), mpz_input_gcd_lcm.cpp(C++), mpz_prime_factorization.c(C), mpz_prime_factorization.cpp(C++)
    8. MPIR and MPFR for Visual C++: lib_mpir_mpfr.zip
    9. RSA暗号実装例: rsa.c
  8. 第5章 多倍長浮動小数点演算---GMPのMPF型とMPFR/GMPの機能
    1. Linuxコンパイル方法(MPFR/GMP使用プログラムの場合)
      • [C] コマンドラインから "icc Cソースファイル名1 Cソースファイル名2 ... -L/usr/local/lib -lmpfr -lgmp" → "./a.out"
      • [C] コマンドラインから "icc Cソースファイル名1 Cソースファイル名2 ... -L/usr/local/lib -lmpfr -lgmp -o 実行ファイル名" → "./実行ファイル名"
      • [C++] コマンドラインから "icpc -std=c++11 C++ソースファイル名1 C++ソースファイル名2 ... -lmpfr -lgmp" → "./a.out"
      • [C++] コマンドラインから "icpc -std=c++11 C++ソースファイル名1 C++ソースファイル名2 ... -lmpfr -lgmp -o 実行ファイル名" → "./実行ファイル名"
    2. Cプログラム: mpf_template.c, mpf_relerr.c, mpfr_relerr.c, test_mpc.c, logistic_mpfi.c, logistic_arb.c
    3. C++プログラム: mpf_templete.cpp, mpf_relerr.cpp, mpfr_relerr.cpp, complex_mpreal.cpp
  9. 第6章 マルチコンポーネント型ライブラリQD
    1. Linuxコンパイル方法(QD使用プログラムの場合)
      • [C++] コマンドラインから "icpc -std=c++11 -fp-model precise C++ソースファイル名1 C++ソースファイル名2 ... -L/usr/local/lib -lqd" → "./a.out"
      • [C++] コマンドラインから "icpc -std=c++11 -fp-model precise C++ソースファイル名1 C++ソースファイル名2 ... -L/usr/local/lib -lqd -o 実行ファイル名" → "./実行ファイル名"
    2. C++プログラム: dd_test.cpp, qd_test.cpp
  10. 第7章 基本線型計算と連立一次方程式
    1. Linuxコンパイル方法(OpenMP使用プログラムの場合)
      • [C] コマンドラインから "icc -openmp Cソースファイル名1 ... "
    2. Cプログラム: linear_c.h, cg_d.c, cg_mpfr.c, linear_c_omp.h, cg_double_omp.c, cg_mpfr_omp.c
    3. C++プログラム: template_linear.h, cg_d.cpp, cg_dd.cpp, cg_qd.cpp, cg_mpreal.cpp, power_mpreal_hilbert.cpp, lu_mpreal.cpp
  11. 第8章 混合精度反復改良法
    1. Cプログラム: mpfr_newton.c, mpfr_newton_sqrt.c, mpfr_newton_inverse.c
    2. C++プログラム: test_iterative_ref_dd.cpp, test_iterative_ref_qd.cpp, test_iterative_ref_mpreal.cpp
  12. 第9章 高速化技法拾遺
  13. 問題略解
  14. GNU MP簡易リファレンス
  15. MPFRリファレンス
  16. __float128リファレンス
    1. Cプログラム: float128.c, complex128.c
  17. 索引

参考URL


戻る

Copyright (c) 2016-2019 Tomonori Kouya, All rights reserved.