CHOLMODを使用してトリプレット行列に要素を追加する方法の簡単な例を教えてください。
私はこのようなことを試しました:
cholmod_triplet *A;
int k;
void add_A_entry(int r, int c, double x)
{
((int*)A->i)[k] = r;
((int*)A->j)[k] = c;
((double*)A->x)[k] = x;
k++;
}
int main()
{
k = 0;
cholmod_common com;
cholmod_start(&com);
A = cholmod_allocate_triplet(202, 202, 202*202, -1, CHOLMOD_REAL, &com);
add_A_entry(2, 2, 1.);
add_A_entry(4, 1, 2.);
add_A_entry(2, 10, -1.);
cholmod_print_triplet(A, "A", &com);
cholmod_finish(&com);
return 0;
}
ただし、これによってマトリックスに要素が追加されることはありません。私は単に出力を取得します:
CHOLMOD triplet: A: 202-by-202, nz 0, lower. OK
もちろん、私は検索とCHOLMODドキュメントの両方で解決策を見つけようとしましたが、助けは見つかりませんでした。