GSLのgsl matrix subrowとgsl matrix subcolumnにバグ

出典: Wikimura

GSLで行列から行または列の一部を取り出す「gsl_matrix_subrow」「gsl_matrix_subcolumn」で挙動がおかしい。

2行9列の行列で(1,1)-(1,3)の部分列を取り出そうとしたのだが、以下のようなエラーが出た。 行列の範囲からはみ出したと言っている。

gsl: (ライブラリへのパス)\matrix\rowcol_so
urce.c:151: ERROR: dimension n overflows matrix
Default GSL error handler invoked.


「gsl_matrix_subrow」で検索したところ、3件目に「 Possible bug(s) in rowcol_source.c (gsl_matrix_subrow and gsl_matrix_subcolumn)」という記事があった。 これによると、範囲チェックが間違っているらしい。


現行の1.13では修正されていると思われる。 仕方が無いのでビルドすることにした。

個人用ツール