<?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 from CSR to CSC for non-square (m x n) matrix in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/from-CSR-to-CSC-for-non-square-m-x-n-matrix/m-p/917953#M12762</link>
    <description>&lt;P&gt;Hello everyone. I need to convert a non-square sparse matrix (m x n) from CSR format to CSC. But MKL has routines only for square matrix (m x m): mkl_?csrcsc. What can I try to make to complete this my own operation which is equivalent transpose operation for dense matrix? Thanks.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 04 Sep 2013 12:06:06 GMT</pubDate>
    <dc:creator>Renat_S_</dc:creator>
    <dc:date>2013-09-04T12:06:06Z</dc:date>
    <item>
      <title>from CSR to CSC for non-square (m x n) matrix</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/from-CSR-to-CSC-for-non-square-m-x-n-matrix/m-p/917953#M12762</link>
      <description>&lt;P&gt;Hello everyone. I need to convert a non-square sparse matrix (m x n) from CSR format to CSC. But MKL has routines only for square matrix (m x m): mkl_?csrcsc. What can I try to make to complete this my own operation which is equivalent transpose operation for dense matrix? Thanks.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 04 Sep 2013 12:06:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/from-CSR-to-CSC-for-non-square-m-x-n-matrix/m-p/917953#M12762</guid>
      <dc:creator>Renat_S_</dc:creator>
      <dc:date>2013-09-04T12:06:06Z</dc:date>
    </item>
    <item>
      <title>1204 template &lt;&gt;</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/from-CSR-to-CSC-for-non-square-m-x-n-matrix/m-p/917954#M12763</link>
      <description>&lt;P&gt;To obtain transpose of non-square matrix&lt;/P&gt;

&lt;P&gt;I used "mkl_?csradd" function with trans = 'T' and zero-matrix.&lt;/P&gt;

&lt;P&gt;This is not efficient. Any other way?&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 19 Nov 2013 11:36:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/from-CSR-to-CSC-for-non-square-m-x-n-matrix/m-p/917954#M12763</guid>
      <dc:creator>Kwangjin_L_</dc:creator>
      <dc:date>2013-11-19T11:36:00Z</dc:date>
    </item>
    <item>
      <title>To convert from CSR to CSC or</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/from-CSR-to-CSC-for-non-square-m-x-n-matrix/m-p/917955#M12764</link>
      <description>&lt;P&gt;To convert from CSR to CSC or, which is equivalent, to find the CSR representation of A&lt;SUP&gt;T&lt;/SUP&gt; given the CSR representation of the sparse rectangular matrix A of size &lt;EM&gt;m&lt;/EM&gt; X &lt;EM&gt;n&lt;/EM&gt;, one simple way involves (i) conceptually padding up the matrix with additional zero entries to a square matrix of size &lt;EM&gt;N &lt;/EM&gt;X &lt;EM&gt;N&lt;/EM&gt; where &lt;EM&gt;N&lt;/EM&gt; = max (&lt;EM&gt;m&lt;/EM&gt;,&lt;EM&gt;n&lt;/EM&gt;), and (ii) calling the MKL converter.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Note that, in the 3-array&amp;nbsp;CSR representation, no changes need to be made to the &lt;STRONG&gt;values &lt;/STRONG&gt;or&amp;nbsp;&lt;STRONG&gt;columns &lt;/STRONG&gt;&amp;nbsp;arrays&amp;nbsp;(and, when &lt;EM&gt;m &amp;gt;&amp;nbsp;n, &lt;/EM&gt;to&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;STRONG&gt;rowIndex&lt;/STRONG&gt;)&amp;nbsp;as a result of the padding-up, since none of the padding elements is non-zero. If &lt;EM&gt;m &amp;lt; n,&amp;nbsp;&amp;nbsp;t&lt;/EM&gt;he &lt;STRONG&gt;rowIndex &lt;/STRONG&gt;array should be padded up by replicating the prior last value, i.e.,&amp;nbsp;&lt;EM&gt;n&lt;/EM&gt;&lt;SUB&gt;nz&lt;/SUB&gt;+1.&lt;/P&gt;

&lt;P&gt;If&amp;nbsp;&lt;EM&gt;m&lt;/EM&gt;&amp;nbsp;and&amp;nbsp;&lt;EM&gt;n&amp;nbsp;&lt;/EM&gt;differ from each other so much that you are concerned about the wasted CPU cycles devoted to processing the additional zeros used to pad the matrix, you can write your own converter routine, noting that if log&lt;SUB&gt;2&lt;/SUB&gt;&amp;nbsp;&lt;EM&gt;n&lt;/EM&gt;&lt;SUB&gt;nz&lt;/SUB&gt;&amp;nbsp;is significantly less than max&amp;nbsp;(&lt;EM&gt;m&lt;/EM&gt;,&lt;EM&gt;n&lt;/EM&gt;) &amp;nbsp;it may be worthwhile to sort the &lt;STRONG&gt;values &lt;/STRONG&gt;and &lt;STRONG&gt;columns &lt;/STRONG&gt;arrays by column indices before computing the 3-array representation of the transpose.&lt;/P&gt;</description>
      <pubDate>Thu, 21 Nov 2013 12:32:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/from-CSR-to-CSC-for-non-square-m-x-n-matrix/m-p/917955#M12764</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2013-11-21T12:32:00Z</dc:date>
    </item>
  </channel>
</rss>

