0

Macports 経由でインストールされた SuiteSparse @4.2.1_3 を使用しており、cholmod_dense 構造を割り当てたいと考えています。次のコードを検討してください。

/* start CHOLMOD */
cholmod_common c;
cholmod_dense* myv;
cholmod_dense* myv2;

cholmod_start (&c);
myv  = cholmod_l_allocate_dense( 4,1,4,CHOLMOD_REAL,&c);
myv2 = cholmod_allocate_dense(4,1,4,CHOLMOD_REAL,&c);
printf("myv=%p\n",myv);
printf("myv2=%p\n",myv2);

/* finish CHOLMOD */
cholmod_finish (&c) ; 

次の出力が得られます。

myv=0x0
myv2=0x7fb86ac0c060

つまりcholmod_dense、長いバージョンの構造体の割り当ては機能しませんが、整数バージョンはうまく機能します。これが起こる理由を知っている人はいますか?

4

1 に答える 1

0

cholmod_common構造体に正しい itype を設定する必要がありますc

c.itype=CHOLMOD_LONG;

/* Common->itype and Common->dtype are used to define the types of all
 * sparse matrices, triplet matrices, dense matrices, and factors
 * created using this Common struct.  The itypes and dtypes of all
 * parameters to all CHOLMOD routines must match.  */
于 2014-07-12T10:29:37.073 に答える