How prevent termination due to Zero Pivot?

How prevent termination due to Zero Pivot?


I use DSS interface to solve a  sparse symmetric linear system. When a matrix is singular,  the code is terminated at dss_factor_real() with a message  "MKL-DSS-DSS-Error, Zero Pivot detected".  It is inconvenient if I have to do it many times.

How do I prevent the termination  and instead check whether factorization was successful.  

Is this controlled  by option=MKL_DSS_TERM__LVL_ERROR? I tried to change it but  nothing happened.

Thank you.

4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.


It is look like you set that your matrix is positive defined that guarantee absence of pivot during factorization. Just change type of matrix on non-positive define.



Thanks,  changing matrix type to MKL_DSS_INDEFINITE it has removed the termination. However, now, even if the matrix is singular, the error of dss_factor_real  and dss_solve_real  is MKL_DSS_SUCCESS.     I guess I am getting just one of many possible solutions.

Is there a way to tell that matrix was singular and the result should be discarded? Thank you.

there are no such opportunity in Pardiso.

Leave a Comment

Please sign in to add a comment. Not a member? Join today