About linear solver dgetrs

About linear solver dgetrs

Dear MKL developers and users,

I am learning and coding with MKL linear solver. I went to some tutorials online such as the tutorials for eigensolvers. I am using MSVS 2010 and intel cluster studio. So I think using MKL linear solver dgetrs in a c++ program would like this:

#include <mkl.h>

	#include <iostream>
int _tmain(int argc, _TCHAR* argv[])


	    char trans='N';

	    int n = 3, nrhs = 1, lda = 3, info = 0, ldb = 3;

	    int *ipiv = new int[3]();

	    double a[] = {1.,0.,0.,0.,1.,0.,0.,0.,1.};

	    double b[] = {3.,4.,5.};

	    dgetrs( &trans, &n, &nrhs, a, &lda, ipiv, b, &ldb, &info );

	    std::cout << b[0] << " " << b[1] << " " << b[2] << " " << b[3] << std::endl;

But the linear solver doesn't work correctly. Since matrix "a" is Identity matrix (row/column major doesn't matter here), I should be able to get 3, 4, 5 as the solution. However, I got two errors:

1. After executed, the numbers in b are

        [0]    -9.2559631349317831e+061    double
        [1]    3.0000000000000000    double
        [2]    4.0000000000000000    double

2. On exit, there is a run-time error: Run-Time Check Failure #2 - Stack around the variable 'b' was corrupted.


How do I fix these errors?



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


dgetrs solver the  LU-factored square matrix. It needs first call dgetrf to factor the matrix, then call the function. 


Hi Chao,

Thanks for the response, dgetrs solved both of them.

Two more questions: 1. does dsytry and dsytrs work in the same way (dsytry goes before dsytrs.)? Does dsytrs take an upper/lower triangle matrix as input or a full matrix? (I tried a bit. But I still cannot make it right.)



dsytrf and dsytrs work in the same way: dsytrf goes before dsytrs.

dsytrf/dsytrs take ither the upper or the lower triangular part of the matrix A, depends on the 'uplo' settings, not the full matrix.


Thanks Chao. I'll try it.

Leave a Comment

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