Lis (線形代数ライブラリ)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Lis
初版 2005年 (2005)
プログラミング
言語
CFortran
対応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を使用する主なソフトウェア[編集]

関連項目[編集]

出典[編集]

  1. ^ 反復解法ライブラリLis”. 2017年3月12日閲覧。

外部リンク[編集]