icsl1d

    対称行列 \(A\) の不完全 Cholesky 分解 \(A \cong \hat{L}\hat{D}\hat{L}^T\) が求められているとき,\((\hat{L}\hat{D}\hat{L}^T)^{-1}\boldsymbol{x}\) を計算する倍精度サブルーチン.

  • サブルーチン名: icsl1d

  • 呼び出し方:
    call icsl1d(n, nzu, nzl, iu, il, uu, ul, ud, xdim, k1xdim, ksu, ksl)

  • 引 数:
    引数

    意 味

    入出力の区分

    備 考

    n行列 \(A\) のサイズ
    入力
    nzu(n)nzu(i)は\(A\) から取り出した狭義上三角行列 \(U\) の第 \(i\) 行目にある非零要素の個数を表す.
    入力
    nzl(n)nzl(i)は\(A\) から取り出した狭義下三角行列 \(L\) の第 \(i\) 行目にある非零要素の個数を表す.
    入力
    iu(n_nz)iu(k)は狭義上三角行列 \(U\) の第 \(k\) 番目の非零要素の列番号を表す.
    入力
    注意参照
    il(n_nz)il(k)は狭義下三角行列 \(L\) の第 \(k\) 番目の非零要素の列番号を表す.
    入力
    uu(n_nz)uu(k)は不完全Cholesky分解中の \(\hat{L}^T\) の狭義上三角部分の第 \(k\) 番目の非零要素を表す.
    入力
    ul(n_nz)ul(k)は不完全Cholesky分解中の \(\hat{L}\) の狭義下三角部分の第 \(k\) 番目の非零要素を表す.
    入力
    ud(n)ud(i)は不完全Cholesky分解中の \(\hat{D}\) の対角要素の逆数 \(1/\hat{a}_{ii}\)を表す.
    入力
    xdim(n) ベクトル \(\boldsymbol{x}\) の成分を格納する1次元配列
    入力
    倍精度実数型
    k1xdim(n) \((\hat{L}\hat{D}\hat{L}^T)^{-1}\boldsymbol{x}\) の成分を格納する1次元配列
    出力
    倍精度実数型
    ksu(n) ksu(i)は狭義上三角行列 \(U\) の第 \(i\) 行目よりも上にある非零要素の数を表す.
    入力
    整数型
    ksl(n) ksl(i)は狭義下三角行列 \(L\) の第 \(i\) 行目よりも上にある非零要素の数を表す.
    入力
    整数型

  • 注意
    本ルーチンを呼ぶ前には,予め1回だけサブルーチン k_ic_n を呼び出して,配列 nzl, il, uu, ul, ud, ksu, ksl を計算しておかねばならない.