<?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 You are right, c.f. http:/ in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/sparse-matrix-dense-matrix-multiplication/m-p/777567#M1176</link>
    <description>&lt;P&gt;You are right, c.f.&amp;nbsp;http://software.intel.com/en-us/forums/topic/365430#comment-1724980 from an answer from an Intel employee.&lt;/P&gt;</description>
    <pubDate>Fri, 30 Aug 2013 08:24:37 GMT</pubDate>
    <dc:creator>asd__asdqwe</dc:creator>
    <dc:date>2013-08-30T08:24:37Z</dc:date>
    <item>
      <title>sparse matrix dense matrix multiplication</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/sparse-matrix-dense-matrix-multiplication/m-p/777564#M1173</link>
      <description>&lt;P&gt;Dear all,&lt;BR /&gt;&lt;BR /&gt;For my Krylov subspace basis build up, I am doing some sparse matrix - dense matrix multiplications. That is fine. I use mkl_dcsrmm for this. But the question now is I am keeping my Krylov vectors in a &lt;BR /&gt;&lt;BR /&gt;std::vector &lt;BR /&gt;&lt;BR /&gt;conceptually, the vectors are the columns of my dense matrix. However, the above interface is considering all the matrices in row major order, is there a way to change this. Since I keep my basis in an array of arrays, I should somehow make it interpreted colum-wise. Is there a work around for this? Or both matrix ordering should be the same when using the routine so one could not be row major(the sparse matrix) and the dense matrix, column major? This is far more efficient and easy to use if there is a work-around for this task.&lt;BR /&gt;&lt;BR /&gt;For instance for the below simple code, I would like b to be interpreted column wise not row-wise while a is still row-wise.&lt;BR /&gt;&lt;BR /&gt;int main()&lt;BR /&gt;{&lt;BR /&gt; double a[] = {1.e0,2.e0,3.e0};&lt;BR /&gt; int ia[] = {0,1,2,3};&lt;BR /&gt; int ja[] = {0,1,2};&lt;BR /&gt; double b[] = {1.e0,4.e0,2.e0,5.e0,3.e0,6.e0};&lt;BR /&gt; double c[] = {0,0,0,0,0,0};&lt;BR /&gt; MKL_INT m = 3;&lt;BR /&gt; MKL_INT k= 3;&lt;BR /&gt; MKL_INT n = 2;&lt;BR /&gt; double alpha = 1.0;&lt;BR /&gt; double beta = 0.0;&lt;BR /&gt; //&lt;BR /&gt; char matdescra[6];&lt;BR /&gt; matdescra[0]= 'g';&lt;BR /&gt; matdescra[1]= 'l';&lt;BR /&gt; matdescra[2]= 'u';&lt;BR /&gt; matdescra[3]= 'c';&lt;BR /&gt; char transa = 'N';&lt;BR /&gt; mkl_dcsrmm(&amp;amp;transa,&lt;BR /&gt; &amp;amp;m, &amp;amp;n, &amp;amp;k,&lt;BR /&gt; &amp;amp;alpha,&lt;BR /&gt; matdescra,&lt;BR /&gt; a, ja, ia,&lt;BR /&gt; ia+1, b,&lt;BR /&gt; &amp;amp;n, &amp;amp;beta, c, &amp;amp;n);&lt;BR /&gt; //&lt;BR /&gt; for(int z=0;z&amp;lt;6;z++)&lt;BR /&gt; std::cout &amp;lt;&amp;lt; c&lt;Z&gt; &amp;lt;&amp;lt; std::endl;&lt;BR /&gt; return 0;&lt;BR /&gt;}&lt;/Z&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 27 Jul 2012 11:20:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/sparse-matrix-dense-matrix-multiplication/m-p/777564#M1173</guid>
      <dc:creator>utab</dc:creator>
      <dc:date>2012-07-27T11:20:51Z</dc:date>
    </item>
    <item>
      <title>sparse matrix dense matrix multiplication</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/sparse-matrix-dense-matrix-multiplication/m-p/777565#M1174</link>
      <description>Before I make a similar thread (Let me know if I should), I ran into the opposite problem: I wanted to scale a dense matrix by a diagonal matrix, and use mkl_ddiamm for this. However my dense matrix is in rowmajor order, and mkl_ddiamm does not have a parameter to transpose the dense matrix (to make it appear row major), not a parameter to set the column ordering information. Is there a better way to calculate diag(scalingVector) * matrix other than implementing it by hand?&lt;BR /&gt;</description>
      <pubDate>Tue, 31 Jul 2012 09:54:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/sparse-matrix-dense-matrix-multiplication/m-p/777565#M1174</guid>
      <dc:creator>Henrik_A_</dc:creator>
      <dc:date>2012-07-31T09:54:24Z</dc:date>
    </item>
    <item>
      <title>It appears that there's an</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/sparse-matrix-dense-matrix-multiplication/m-p/777566#M1175</link>
      <description>&lt;P&gt;It appears that there's an undocumented "feature" in the&amp;nbsp;mkl_dcsrmm and&amp;nbsp;mkl_scsrmm family of functions. If the sparse matrix uses zero-based indexing, MKL treates the dense matrices as row-major. If the sparse matrix uses one-based indexing MKL treats the desnce matrices as column-major. If you wish to use column-major dense matrices you must use one-based indexing for the CSR matrix.&lt;/P&gt;
&lt;P&gt;See&amp;nbsp;http://software.intel.com/en-us/forums/topic/456104#comment-1749818&lt;/P&gt;</description>
      <pubDate>Thu, 29 Aug 2013 12:56:16 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/sparse-matrix-dense-matrix-multiplication/m-p/777566#M1175</guid>
      <dc:creator>Peter_B_9</dc:creator>
      <dc:date>2013-08-29T12:56:16Z</dc:date>
    </item>
    <item>
      <title>You are right, c.f. http:/</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/sparse-matrix-dense-matrix-multiplication/m-p/777567#M1176</link>
      <description>&lt;P&gt;You are right, c.f.&amp;nbsp;http://software.intel.com/en-us/forums/topic/365430#comment-1724980 from an answer from an Intel employee.&lt;/P&gt;</description>
      <pubDate>Fri, 30 Aug 2013 08:24:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/sparse-matrix-dense-matrix-multiplication/m-p/777567#M1176</guid>
      <dc:creator>asd__asdqwe</dc:creator>
      <dc:date>2013-08-30T08:24:37Z</dc:date>
    </item>
  </channel>
</rss>

