数値解析2 サポートページ

幸谷 智紀

最終更新日: 2020-09-23 (Thu)


更新情報

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

参考書:「多倍長精度数値計算」森北出版

  1. 多倍長数値計算とは?
    1. 円周率表示: mpfr_pi_simple.c
    2. Web版
    3. Cプログラム: logistic.c
    4. C++プログラム: logistic_mpreal.cpp, logistic_dd.cpp, logistic_qd.cpp
  2. CプログラムとC++プログラム
    1. Linux実習環境構築1: TeraTerm
    2. 共有フォルダへのアクセス → エクスプローラから"\\172.16.xxx.xxx\mpnaXXXXX"。アクセスできない時は下記のように設定してみること。
      1. コントロールパネル→ユーザーアカウント(Win10は「ユーザーアカウントとファミリーセーフティ」)→資格情報マネージャー→Windows資格情報の管理
      2. サーバ名(172.16.xxx.xx),ユーザ名(mpnaXXXXX),パスワード(指定のもの)を下記のように記入し,「OK」ボタンをクリックして保存

        ←クリックして拡大

      3. 再度,エクスプローラから"\\172.16.xxx.xxx\mpnaXXXXX"にアクセス
    3. Linux実習環境構築2: Virtual Box + Ubuntuイメージ(学内ローカル) ID: cs-user, Password: sist#csuser2019
    4. Linuxコンパイル方法(GMP使用プログラムの場合)
      • [C] コマンドラインから "gcc Cソースファイル名1 Cソースファイル名2 ... -L/usr/local/lib -lgmp" → "./a.out"
      • [C] コマンドラインから "gcc Cソースファイル名1 Cソースファイル名2 ... -L/usr/local/lib -lgmp -o 実行ファイル名" → "./実行ファイル名"
      • [C++] コマンドラインから "g++ C++ソースファイル名1 C++ソースファイル名2 ... -L/usr/local/lib -lgmpxx -lgmp" → "./a.out"
      • [C**] コマンドラインから "g++ C++ソースファイル名1 C++ソースファイル名2 ... -L/usr/local/lib -lgmpxx -lgmp -o 実行ファイル名" → "./実行ファイル名"
  3. コンピュータにおける数値演算の基礎
    1. Cプログラム: logistic_err.c
    2. , logistic_f_err.c
  4. コンピュータの内部と演算の高速化手法
    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)
  5. GNU MP---多倍長整数演算(1/2)
    1. Cプログラム: mpn_sample_full.c, mpz_input.c,
    2. C++プログラム: mpz_test.cpp,
    3. 練習問題解答: mpz_input_gcd_lcm.c(C), mpz_input_gcd_lcm.cpp(C++), mpz_prime_factorization.c(C), mpz_prime_factorization.cpp(C++)
  6. GNU MP---多倍長整数演算(2/2)
    1. Cプログラム: mpq_input.c
    2. C++プログラム: mpq_test.cpp
  7. RSA暗号
    1. RSA暗号実装例: rsa.c
  8. 多倍長浮動小数点演算---GMPのMPF型とMPFR/GMPの機能
    1. Linuxコンパイル方法(MPFR/GMP使用プログラムの場合)
      • [C] コマンドラインから "gcc Cソースファイル名1 Cソースファイル名2 ... -L/usr/local/lib -lmpfr -lgmp" → "./a.out"
      • [C] コマンドラインから "gcc Cソースファイル名1 Cソースファイル名2 ... -L/usr/local/lib -lmpfr -lgmp -o 実行ファイル名" → "./実行ファイル名"
      • [C++] コマンドラインから "g++ C++ソースファイル名1 C++ソースファイル名2 ... -lmpfr -lgmp" → "./a.out"
      • [C++] コマンドラインから "g++ 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. MPFR C++ Wrapper演習
  10. マルチコンポーネント型ライブラリQD
    1. Linuxコンパイル方法(QD使用プログラムの場合)
      • [C++] コマンドラインから "g++ C++ソースファイル名1 C++ソースファイル名2 ... -L/usr/local/lib -lqd" → "./a.out"
      • [C++] コマンドラインから "g++ C++ソースファイル名1 C++ソースファイル名2 ... -L/usr/local/lib -lqd -o 実行ファイル名" → "./実行ファイル名"
    2. C++プログラム: dd_test.cpp, qd_test.cpp
  11. 複素数演算の使い方
  12. 基本線型計算
    1. Linuxコンパイル方法(OpenMP使用プログラムの場合)
      • [C] コマンドラインから "gcc -openmp Cソースファイル名1 ... "
    2. Cプログラム: linear_c.h,
    3. C++プログラム: template_linear.h,
  13. 連立一次方程式の解法
    1. Linuxコンパイル方法(OpenMP使用プログラムの場合)
      • [C] コマンドラインから "gcc -openmp Cソースファイル名1 ... "
    2. Cプログラム: cg_d.c, cg_mpfr.c, linear_c_omp.h, cg_double_omp.c, cg_mpfr_omp.c
    3. C++プログラム: cg_d.cpp, cg_dd.cpp, cg_qd.cpp, cg_mpreal.cpp, lu_mpreal.cpp
  14. べき乗法と逆べき乗法
    1. Linuxコンパイル方法(OpenMP使用プログラムの場合)
      • [C] コマンドラインから "gcc -openmp Cソースファイル名1 ... "
    2. Cプログラム:
    3. C++プログラム:
  15. 混合精度反復改良法
    1. C++プログラム: test_iterative_ref_dd.cpp, test_iterative_ref_qd.cpp, test_iterative_ref_mpreal.cpp

参考URL


戻る

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