トップQs
タイムライン
チャット
視点
Lis (線形代数ライブラリ)
ウィキペディアから
Remove ads
Lis (Library of Iterative Solvers for linear systems、発音は[lis]) は、離散化された線形方程式および固有値問題を反復法により解くための並列線形計算ライブラリ[1]。実数または複素数を成分とする行列を扱う。並列コンピュータを主な対象としているが、並列処理を意識することなくライブラリを利用することができる。C言語で実装されているが、C++、Fortranからも利用できる。修正BSDライセンスで提供されるオープンソースソフトウェア。
Remove ads
特徴
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;
}
Remove ads
Lisを使用する主なソフトウェア
- Gerris(流体計算ソフトウェア)
- OpenModelica(物理モデリング言語Modelicaのオープンソース実装)
関連項目
出典
外部リンク
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads