<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Hi mecej4, in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/conversion-from-COO-format-to-CSR/m-p/1005481#M18866</link>
    <description>&lt;P&gt;Hi mecej4,&lt;/P&gt;

&lt;P&gt;Thanks very much for your comment. I tested different datatypes (real, complex and double complex). I found that my code works fine for real and complex, but not for double complex. Below are two codes I testes, using mkl_ccsrcoo and mkl_zcsrcoo, respectively. I kept everything the same in both codes, except the datatype.&lt;/P&gt;

&lt;P&gt;Test 1:&lt;/P&gt;

&lt;P&gt;!=====================================&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROGRAM test&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer, dimension(:), allocatable :: irn, jcn&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer, dimension(:), allocatable :: colindex, rowindex&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; complex, dimension(:), allocatable :: aval, amtrx&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer job(8), nnz, n, info&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nnz=7&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=4&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(irn(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(jcn(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(aval(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(colindex(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(amtrx(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(rowindex(n+1))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(1)=2&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(2)=1&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(3)=1&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(5)=nnz&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(6)=0&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; irn=(/1,2,2,3,3,4,4/)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; jcn=(/1,4,2,3,1,1,4/)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(1)=cmplx(1,8)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(2)=cmplx(6,0)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(3)=cmplx(2,7)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(4)=cmplx(4,4)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(5)=cmplx(3,2)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(6)=cmplx(0,1)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(7)=cmplx(5,3)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; call mkl_ccsrcoo(job, n, amtrx, colindex, rowindex, nnz, aval, irn, jcn, info)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; if(info.ne.0)&amp;nbsp; print *, 'conversion from COO to CSR failed'&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; deallocate(irn)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(jcn)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(aval)&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(colindex)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(amtrx)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(rowindex)&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STOP&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/P&gt;

&lt;P&gt;!============================================&lt;/P&gt;

&lt;P&gt;The results are&lt;/P&gt;

&lt;P&gt;amtrx=(/(1,8), (2,7), (6,0), (3,2), (4,4), (0,1), (5,3)/)&lt;/P&gt;

&lt;P&gt;colindex=(/1,2,4,1,3,1,4/)&lt;/P&gt;

&lt;P&gt;rowlindex=(/1,2,4,6,8/)&lt;/P&gt;

&lt;P&gt;which are in CSR form.&lt;/P&gt;

&lt;P&gt;Test 2:&lt;/P&gt;

&lt;P&gt;!=====================================&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROGRAM test&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer, dimension(:), allocatable :: irn, jcn&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer, dimension(:), allocatable :: colindex, rowindex&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double complex, dimension(:), allocatable :: aval, amtrx&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer job(8), nnz, n, info&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nnz=7&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=4&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(irn(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(jcn(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(aval(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(colindex(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(amtrx(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(rowindex(n+1))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(1)=2&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(2)=1&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(3)=1&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(5)=nnz&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(6)=0&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; irn=(/1,2,2,3,3,4,4/)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; jcn=(/1,4,2,3,1,1,4/)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(1)=dcmplx(1,8)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(2)=dcmplx(6,0)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(3)=dcmplx(2,7)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(4)=dcmplx(4,4)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(5)=dcmplx(3,2)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(6)=dcmplx(0,1)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(7)=dcmplx(5,3)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; call mkl_zcsrcoo(job, n, amtrx, colindex, rowindex, nnz, aval, irn, jcn, info)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; if(info.ne.0)&amp;nbsp; print *, 'conversion from COO to CSR failed'&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; deallocate(irn)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(jcn)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(aval)&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(colindex)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(amtrx)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(rowindex)&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STOP&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/P&gt;

&lt;P&gt;!============================================&lt;/P&gt;

&lt;P&gt;The results are&lt;/P&gt;

&lt;P&gt;amtrx=(/(1,6), (8,2), (0,7), (4,4), (3,2), (0,1), (5,3)/)&lt;/P&gt;

&lt;P&gt;colindex=(/1,2,4,1,3,1,4/)&lt;/P&gt;

&lt;P&gt;rowlindex=(/1,2,4,6,8/)&lt;/P&gt;

&lt;P&gt;which are not correct.&lt;/P&gt;

&lt;P&gt;It seems my definition of 'double complex' is problematic, but I did not see the reason. I would very much appreciate your help. Thanks.&lt;/P&gt;

&lt;P&gt;Likun&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 03 Apr 2015 00:37:43 GMT</pubDate>
    <dc:creator>Likun_T_</dc:creator>
    <dc:date>2015-04-03T00:37:43Z</dc:date>
    <item>
      <title>conversion from COO format to CSR</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/conversion-from-COO-format-to-CSR/m-p/1005475#M18860</link>
      <description>&lt;P&gt;Dear all,&lt;/P&gt;

&lt;P&gt;I am using Intel MKL subroutine mkl_zcoocsr to convert a sparse matrix in COO form to CSR, but the results do not seem right. Here is my subroutine:&lt;/P&gt;

&lt;P&gt;!ooooooooooooooooooooooooooooooooooooooooooooooooooooo&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; subroutine testcoocsr&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer, dimension(:), allocatable :: irn, jcn, aval&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer, dimension(:), allocatable :: colindex, rowindex, amtrx&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer job(8), nnz, n, info&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nnz=6&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=4&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(irn(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(jcn(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(aval(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(colindex(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(amtrx(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(rowindex(n+1))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(1)=2&amp;nbsp; !from COO to CSR, column indices in CSRare sorted in increasing order within each row.&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(2)=1&amp;nbsp; !one-based indexing for the matrix in CSR format is used.&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(3)=1&amp;nbsp; !one-based indexing for the matrix in coordinate format is used.&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(5)=nnz !sets number of the non-zero elements of the matrix A if job(1)=1.&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(6)=0 !all arrays acsr, ja, ia are filled in for the output storage.&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; irn(1)=1&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; irn(2)=2&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; irn(3)=3&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; irn(4)=3&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; irn(5)=4&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; irn(6)=2&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; jcn(1)=1&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; jcn(2)=2&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; jcn(3)=1&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; jcn(4)=3&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; jcn(5)=4&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; jcn(6)=4&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(1)=1&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(2)=2&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(3)=3&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(4)=4&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(5)=5&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(6)=6&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; call mkl_zcsrcoo(job, n, amtrx, colindex, rowindex, nnz, aval, irn, jcn, info)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; deallocate(irn)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(jcn)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(aval)&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(colindex)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(amtrx)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(rowindex)&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; end subroutine testcoocsr&lt;BR /&gt;
	!ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo&lt;/P&gt;

&lt;P&gt;After calling the above subroutine, I got&lt;/P&gt;

&lt;P&gt;amtrx=(0, 0, 0, 0,&amp;nbsp; 0, 1)&lt;/P&gt;

&lt;P&gt;colindex=(1, 1, 2, 0, 0, 0)&lt;/P&gt;

&lt;P&gt;rowindex=(3, 3, 4, 4, 4)&lt;/P&gt;

&lt;P&gt;I would very much appreciate your help. Thanks.&lt;/P&gt;

&lt;P&gt;Likun&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 01 Apr 2015 18:43:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/conversion-from-COO-format-to-CSR/m-p/1005475#M18860</guid>
      <dc:creator>Likun_T_</dc:creator>
      <dc:date>2015-04-01T18:43:20Z</dc:date>
    </item>
    <item>
      <title>You have the wrong type for</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/conversion-from-COO-format-to-CSR/m-p/1005476#M18861</link>
      <description>&lt;P&gt;You have the wrong type for the matrix value arrayss amtrx and aval. They have to be REAL or COMPLEX. Likewise, the name of the routine has to match the type of the matrix -- real(4), real(8), complex(4) or complex(8). Read the MKL documentation before you write the code.&lt;/P&gt;</description>
      <pubDate>Wed, 01 Apr 2015 23:04:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/conversion-from-COO-format-to-CSR/m-p/1005476#M18861</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2015-04-01T23:04:28Z</dc:date>
    </item>
    <item>
      <title>Hi mecej4,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/conversion-from-COO-format-to-CSR/m-p/1005477#M18862</link>
      <description>&lt;P&gt;Hi mecej4,&lt;/P&gt;

&lt;P&gt;Thanks very much. I've changed the datatype to be consistent with mkl_zcsrcoo. However, I still got problems. Here is my code:&lt;/P&gt;

&lt;P&gt;!========================================================&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer, dimension(:), allocatable :: irn, jcn&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer, dimension(:), allocatable :: colindex, rowindex&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; complex*16, dimension(:), allocatable :: aval, amtrx&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer job(8), nnz, n, info&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nnz=7&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=4&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(1)=2&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(2)=1&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(3)=1&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(5)=nnz&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(6)=0&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; irn=(/1,2,3,3,4,2,4/)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; jcn=(/1,2,1,3,4,4,1/)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(1)=dcmplx(1.d0, 0.d0)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(2)=dcmplx(2.d0, 0.d0)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(3)=dcmplx(3.d0, 0.d0)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(4)=dcmplx(4.d0, 0.d0)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(5)=dcmplx(5.d0, 0.d0)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(6)=dcmplx(6.d0, 0.d0)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(7)=dcmplx(7.d0, 0.d0)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; call mkl_zcsrcoo(job, n, amtrx, colindex, rowindex, nnz, aval, irn, jcn, info)&lt;/P&gt;

&lt;P&gt;!==============================================================&lt;/P&gt;

&lt;P&gt;The results are not correct. (amtrx has a zero-element, and non-zero imaginary part). Please see below:&lt;/P&gt;

&lt;P&gt;amtrx=(dcmplx(1.d0, 0.d0), dcmplx(2.d0, 0.d0), dcmplx(6.d0, 3.d0),&amp;nbsp; dcmplx(0.d0, 0.d0), dcmplx(4.d0, 0.d0), dcmplx(5.d0, 0.d0), dcmplx(7.d0, 0.d0))&lt;/P&gt;

&lt;P&gt;colindex=(1,2,4,1,3,1,4)&lt;/P&gt;

&lt;P&gt;rowindex=(1,2,4,6,8)&lt;/P&gt;

&lt;P&gt;However, if remove the 7-th entry (delete irn(7), jcn(7), aval(7) and set nnz=6), then everything works fine.&amp;nbsp; Your comment is well appreciated.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Thanks,&lt;/P&gt;

&lt;P&gt;Likun&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 01 Apr 2015 23:59:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/conversion-from-COO-format-to-CSR/m-p/1005477#M18862</guid>
      <dc:creator>Likun_T_</dc:creator>
      <dc:date>2015-04-01T23:59:42Z</dc:date>
    </item>
    <item>
      <title>The second code that you</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/conversion-from-COO-format-to-CSR/m-p/1005478#M18863</link>
      <description>&lt;P&gt;The second code that you posted is incomplete (the allocate statements and the output statements are missing, in particular), so I cannot tell why/if you obtained the incorrect results that you reported.&lt;/P&gt;</description>
      <pubDate>Thu, 02 Apr 2015 01:00:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/conversion-from-COO-format-to-CSR/m-p/1005478#M18863</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2015-04-02T01:00:34Z</dc:date>
    </item>
    <item>
      <title>I am sorry about that. Below</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/conversion-from-COO-format-to-CSR/m-p/1005479#M18864</link>
      <description>&lt;P&gt;I am sorry about that. Below is the complete code:&lt;/P&gt;

&lt;P&gt;!===================================================&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROGRAM test&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer, dimension(:), allocatable :: irn, jcn&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer, dimension(:), allocatable :: colindex, rowindex&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; complex*16, dimension(:), allocatable :: aval, amtrx&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer job(8), nnz, n, info&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nnz=7&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=4&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(irn(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(jcn(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(aval(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(colindex(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(amtrx(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(rowindex(n+1))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !1 0 0 0&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !0 2 0 6&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !3 0 4 0&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !7 0 0 5&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(1)=2&amp;nbsp; !from COO to CSR, column indices in CSRare sorted in increasing order within each row.&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(2)=1&amp;nbsp; !one-based indexing for the matrix in CSR format is used.&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(3)=1&amp;nbsp; !one-based indexing for the matrix in coordinate format is used.&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(5)=nnz !sets number of the non-zero elements of the matrix A if job(1)=1.&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(6)=0 !all arrays acsr, ja, ia are filled in for the output storage.&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; irn=(/1,2,2,3,3,4,4/)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; jcn=(/1,4,2,3,1,1,4/)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(1)=dcmplx(1.d0, 0.d0)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(2)=dcmplx(6.d0, 0.d0)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(3)=dcmplx(2.d0, 0.d0)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(4)=dcmplx(4.d0, 0.d0)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(5)=dcmplx(3.d0, 0.d0)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(6)=dcmplx(0.d0, -1e-10)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(7)=dcmplx(5.d0, 0.d0)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; call mkl_zcsrcoo(job, n, amtrx, colindex, rowindex, nnz, aval, irn, jcn, info)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; if(info.ne.0)&amp;nbsp; print *, 'conversion from COO to CSR failed'&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; deallocate(irn)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(jcn)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(aval)&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(colindex)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(amtrx)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(rowindex)&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STOP&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/P&gt;

&lt;P&gt;!=========================================&lt;/P&gt;

&lt;P&gt;I tested several other cases, where i found that if irn is sorted in increasing order and jcn is also sorted in increasing order within each row, then the results are correct. However, if jcn is not sorted (as the above code), the results are not correct. I am not sure if there is any restriction for COO form.&lt;/P&gt;

&lt;P&gt;Thanks very much for your help.&lt;/P&gt;

&lt;P&gt;Likun&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 02 Apr 2015 01:16:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/conversion-from-COO-format-to-CSR/m-p/1005479#M18864</guid>
      <dc:creator>Likun_T_</dc:creator>
      <dc:date>2015-04-02T01:16:51Z</dc:date>
    </item>
    <item>
      <title>The matrices in #3 and #5 are</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/conversion-from-COO-format-to-CSR/m-p/1005480#M18865</link>
      <description>&lt;P&gt;The matrices in #3 and #5 are slightly different. You did not state what results you obtained and what you expected for the matrix in #5. Better focus on one test problem where you think MKL is giving wrong results.&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;I have used these COO/CSR conversion routines (with real matrices) for a number of years and have never seen an error. COO format data do not need to be in any specific order, but CSR format data do.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 02 Apr 2015 01:53:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/conversion-from-COO-format-to-CSR/m-p/1005480#M18865</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2015-04-02T01:53:34Z</dc:date>
    </item>
    <item>
      <title>Hi mecej4,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/conversion-from-COO-format-to-CSR/m-p/1005481#M18866</link>
      <description>&lt;P&gt;Hi mecej4,&lt;/P&gt;

&lt;P&gt;Thanks very much for your comment. I tested different datatypes (real, complex and double complex). I found that my code works fine for real and complex, but not for double complex. Below are two codes I testes, using mkl_ccsrcoo and mkl_zcsrcoo, respectively. I kept everything the same in both codes, except the datatype.&lt;/P&gt;

&lt;P&gt;Test 1:&lt;/P&gt;

&lt;P&gt;!=====================================&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROGRAM test&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer, dimension(:), allocatable :: irn, jcn&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer, dimension(:), allocatable :: colindex, rowindex&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; complex, dimension(:), allocatable :: aval, amtrx&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer job(8), nnz, n, info&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nnz=7&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=4&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(irn(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(jcn(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(aval(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(colindex(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(amtrx(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(rowindex(n+1))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(1)=2&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(2)=1&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(3)=1&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(5)=nnz&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(6)=0&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; irn=(/1,2,2,3,3,4,4/)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; jcn=(/1,4,2,3,1,1,4/)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(1)=cmplx(1,8)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(2)=cmplx(6,0)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(3)=cmplx(2,7)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(4)=cmplx(4,4)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(5)=cmplx(3,2)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(6)=cmplx(0,1)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(7)=cmplx(5,3)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; call mkl_ccsrcoo(job, n, amtrx, colindex, rowindex, nnz, aval, irn, jcn, info)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; if(info.ne.0)&amp;nbsp; print *, 'conversion from COO to CSR failed'&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; deallocate(irn)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(jcn)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(aval)&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(colindex)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(amtrx)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(rowindex)&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STOP&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/P&gt;

&lt;P&gt;!============================================&lt;/P&gt;

&lt;P&gt;The results are&lt;/P&gt;

&lt;P&gt;amtrx=(/(1,8), (2,7), (6,0), (3,2), (4,4), (0,1), (5,3)/)&lt;/P&gt;

&lt;P&gt;colindex=(/1,2,4,1,3,1,4/)&lt;/P&gt;

&lt;P&gt;rowlindex=(/1,2,4,6,8/)&lt;/P&gt;

&lt;P&gt;which are in CSR form.&lt;/P&gt;

&lt;P&gt;Test 2:&lt;/P&gt;

&lt;P&gt;!=====================================&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROGRAM test&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer, dimension(:), allocatable :: irn, jcn&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer, dimension(:), allocatable :: colindex, rowindex&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double complex, dimension(:), allocatable :: aval, amtrx&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer job(8), nnz, n, info&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nnz=7&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n=4&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(irn(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(jcn(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(aval(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(colindex(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(amtrx(nnz))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(rowindex(n+1))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(1)=2&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(2)=1&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(3)=1&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(5)=nnz&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; job(6)=0&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; irn=(/1,2,2,3,3,4,4/)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; jcn=(/1,4,2,3,1,1,4/)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(1)=dcmplx(1,8)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(2)=dcmplx(6,0)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(3)=dcmplx(2,7)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(4)=dcmplx(4,4)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(5)=dcmplx(3,2)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(6)=dcmplx(0,1)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; aval(7)=dcmplx(5,3)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; call mkl_zcsrcoo(job, n, amtrx, colindex, rowindex, nnz, aval, irn, jcn, info)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; if(info.ne.0)&amp;nbsp; print *, 'conversion from COO to CSR failed'&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; deallocate(irn)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(jcn)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(aval)&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(colindex)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(amtrx)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deallocate(rowindex)&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STOP&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/P&gt;

&lt;P&gt;!============================================&lt;/P&gt;

&lt;P&gt;The results are&lt;/P&gt;

&lt;P&gt;amtrx=(/(1,6), (8,2), (0,7), (4,4), (3,2), (0,1), (5,3)/)&lt;/P&gt;

&lt;P&gt;colindex=(/1,2,4,1,3,1,4/)&lt;/P&gt;

&lt;P&gt;rowlindex=(/1,2,4,6,8/)&lt;/P&gt;

&lt;P&gt;which are not correct.&lt;/P&gt;

&lt;P&gt;It seems my definition of 'double complex' is problematic, but I did not see the reason. I would very much appreciate your help. Thanks.&lt;/P&gt;

&lt;P&gt;Likun&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 03 Apr 2015 00:37:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/conversion-from-COO-format-to-CSR/m-p/1005481#M18866</guid>
      <dc:creator>Likun_T_</dc:creator>
      <dc:date>2015-04-03T00:37:43Z</dc:date>
    </item>
    <item>
      <title>You changed the matrix again,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/conversion-from-COO-format-to-CSR/m-p/1005482#M18867</link>
      <description>&lt;P&gt;You changed the matrix again, without any apparent reason. You have no WRITE statements for the results, so I do not know how you obtained the incorrect results that you reported. Nor have you specified which compiler and MKL versions you used and the compiler options in effect. It is not possible to help you with this problem if you fail to provide clear and complete reports and instructions regarding how to reproduce the problem.&lt;/P&gt;

&lt;P&gt;I ran both the codes in #7, after adding WRITE statements to output the CSR representation, and obtained correct results with both the&amp;nbsp;14.0.4.237 and&amp;nbsp;15.0.2.179 compilers in 32-bit mode, using the MKL versions that came with those compilers.&lt;/P&gt;</description>
      <pubDate>Fri, 03 Apr 2015 03:35:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/conversion-from-COO-format-to-CSR/m-p/1005482#M18867</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2015-04-03T03:35:48Z</dc:date>
    </item>
    <item>
      <title>I have found that mkl_zcsrcoo</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/conversion-from-COO-format-to-CSR/m-p/1005483#M18868</link>
      <description>&lt;P&gt;I have found that mkl_zcsrcoo&amp;nbsp;behaves identically as mkl.ccsrcoo.&amp;nbsp;&amp;nbsp;If you feed&amp;nbsp;either one&amp;nbsp;complex*8 input arrays, they produce the same output,&amp;nbsp;which is correct.&amp;nbsp; If you feed complex*16 arrays to the z routine, you get wrong output.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 14 Sep 2015 19:01:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/conversion-from-COO-format-to-CSR/m-p/1005483#M18868</guid>
      <dc:creator>Brian_Murphy</dc:creator>
      <dc:date>2015-09-14T19:01:31Z</dc:date>
    </item>
  </channel>
</rss>

