この質問があいまいすぎたり、素朴すぎる場合は申し訳ありません
最適化に基づいていくつかのメッシュ変形アルゴリズムを実装しています 最適化の最後のステップは、疎ソルバーによって大きな疎行列を解決することです
このタスクには cholmod を使用します。しかし、場合によっては、cholmod_factorize で segfault を受け取ります
cholmod_sparse *A = composeASparseCholmodMatrix(........);//Creating my matrix.
cholmod_factor *L = cholmod_analyze(A, commonCholmodPtr);
cholmod_factorize(A, L, commonCholmodPtr);//receive Segmentation fault on some cases
cholmod_free_sparse(&A, commonCholmodPtr);
//L are used for solving
だから私の質問は、cholmod_factorize が segfault を発生させることができるのはどのような場合ですか? そして、どうすれば問題の原因を見つけることができますか?
ここで A マトリックスを提供することはできません。このマトリックスは非常に大きいためです (9000 以上の行と列、45000 個の非ゼロ項目)。A マトリックスの構成は多くの場合 (8000 以上の行/列) で問題なく、アルゴリズムは正常に機能します。cholmod_common から error_handler を使用しようとしましたが、何も受信しませんでした
PS私の英語でごめんなさい
UPDプログラムが失敗したようで、L-> is_superがtrueです