Lis (線形代数ライブラリ)
表示
初版 | 2005年 |
---|---|
プログラミング 言語 | C、Fortran |
対応OS | クロスプラットフォーム |
種別 | 数値解析ソフトウェア |
ライセンス | 修正BSDライセンス |
公式サイト | www.ssisc.org/lis/ |
Lis (Library of Iterative Solvers for linear systems、発音は[lis]) は、離散化された線形方程式および固有値問題を反復法により解くための並列線形計算ライブラリ[1]。実数または複素数を成分とする行列を扱う。並列コンピュータを主な対象としているが、並列処理を意識することなくライブラリを利用することができる。C言語で実装されているが、C++、Fortranからも利用できる。修正BSDライセンスで提供されるオープンソースソフトウェア。
特徴
[編集]Lisの主な特徴は以下の通り。
例
[編集]線形方程式 を解くためのプログラム例(C言語版)を示す。
#include <stdio.h>
#include "lis_config.h"
#include "lis.h"
LIS_INT main(LIS_INT argc, char* argv[])
{
LIS_MATRIX A;
LIS_VECTOR b, x;
LIS_SOLVER solver;
LIS_INT iter;
double time;
lis_initialize(&argc, &argv);
lis_matrix_create(LIS_COMM_WORLD, &A);
lis_vector_create(LIS_COMM_WORLD, &b);
lis_vector_create(LIS_COMM_WORLD, &x);
lis_input_matrix(A, argv[1]);
lis_input_vector(b, argv[2]);
lis_vector_duplicate(A, &x);
lis_solver_create(&solver);
lis_solver_set_optionC(solver);
lis_solve(A, b, x, solver);
lis_solver_get_iter(solver, &iter);
lis_solver_get_time(solver, &time);
printf("number of iterations = %d\n", iter);
printf("elapsed time = %e\n", time);
lis_output_vector(x, LIS_FMT_MM, argv[3]);
lis_solver_destroy(solver);
lis_matrix_destroy(A);
lis_vector_destroy(b);
lis_vector_destroy(x);
lis_finalize();
return 0;
}
Lisを使用する主なソフトウェア
[編集]- Gerris(流体計算ソフトウェア)
- OpenModelica(物理モデリング言語Modelicaのオープンソース実装)
関連項目
[編集]出典
[編集]- ^ “反復解法ライブラリLis”. 公式Webサイト. 2017年3月12日閲覧。
外部リンク
[編集]- 公式ホームページ
- ミラーサイト(Netlibプロジェクトによる)
- Freely Available Software for Linear Algebra(テネシー大学ジャック・ドンガラ教授による)
- Fedora Linux版パッケージ(Fedoraプロジェクトによる)
- Gentoo Linux版パッケージ(Gentoo Linuxプロジェクトによる)
- Arch Linux版パッケージ(Arch Linuxコミュニティによる)
- FreeBSD版パッケージ(FreeBSDプロジェクトによる)
- macOS(Homebrew)版パッケージ(Homebrewプロジェクトによる)
- macOS(MacPorts)版パッケージ(MacPortsプロジェクトによる)
- Windows版パッケージ(WHPCプロジェクトによる)
- Mingw-w64版パッケージ(Mingw-w64プロジェクトによる)
- Spack版パッケージ (ローレンス・リバモア国立研究所による)