- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

[cpp]#includeHi,#include using namespace std; void mkl_ddnscsr_test() { const size_t nNon0s = 6 ; MKL_INT job[8] ; job[0] = 0; // ge->csr job[1] = 0; // ge is 0-based job[2] = 1; // csr is 1-based job[3] = 2; // general matrix job[4] = nNon0s; // general matrix job[5] = 1; // all csr arrays are generated MKL_INT info; MKL_INT nRows = 5 ; MKL_INT nCols = 5 ; MKL_INT lda = 5; double values[ nNon0s ] ; MKL_INT columns[ nNon0s ] ; MKL_INT rowIndex[ 5 + 1 ] ; double pdata[25]; for ( size_t i = 0; i != 25 ; ++i ) pdata = 0L; for ( size_t i = 0; i != nRows ; ++i ) pdata[i + 5*i] = double(i+1); pdata[ 2 + 5*3 ] = 3.14L; mkl_ddnscsr( job, &nRows, &nCols, pdata, &lda, values, columns, rowIndex, &info ); if ( info != 0 ) throw; cout << "values :" << endl; for ( size_t i = 0; i !=nNon0s; ++i ) cout << values<< endl; cout << "rowIdx :" << endl; for ( size_t i = 0; i != ( nRows + 1 ); ++i ) cout << rowIndex<< endl; cout << "columns :" << endl; for ( size_t i = 0; i !=nNon0s; ++i ) cout << columns<< endl; } int main(){ cout << "mkl_ddnscsr_test()" << endl; mkl_ddnscsr_test(); return 1; }[/cpp]

The follwing code shows a problem with the above function to convert between a (column-major) general matrix and a csr (3 variation).

It is a 5x5 matrix, with all diagonal elements being the corresponding incremental (1-based) row and the element

(2,3) being 3.14.

The result I get is for the rowIndex vector seems wrong since:

it should be:

1

2

3

5

6

7

and is, instead :

1

2

3

4

6

7

i.e. 4 shoulld be 5, snce the 5th element in values corresponds to the beginning of the 4th row.

Can you please help?

TIA

Petros

ps: using msvc10, win7, mkl10.2.4.032

UPDATE: by setting job[1]=1 I get the right order. Apparently mkl assumes that the dense matrix is 1-based ??

This is rather confusing !

Link Copied

2 Replies

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Petros, please check this problem with the latest 10.3 update8 (Evaluation Version valid for 30 days). Since version 10.2 we have fixed several similar issues.

--Gennady

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Thank you Gennady. Will do, P-

Topic Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page