<?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 Thank you, Ye. It looks like in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-the-mkl-omatcopy/m-p/1150722#M27113</link>
    <description>&lt;P&gt;Thank you, Ye. It looks like the documentation is incorrect. I will verify with the MKL developers and get back to you.&lt;/P&gt;&lt;P&gt;Pamela&lt;/P&gt;</description>
    <pubDate>Tue, 08 Oct 2019 16:56:52 GMT</pubDate>
    <dc:creator>Pamela_H_Intel</dc:creator>
    <dc:date>2019-10-08T16:56:52Z</dc:date>
    <item>
      <title>Question about the mkl_?omatcopy</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-the-mkl-omatcopy/m-p/1150721#M27112</link>
      <description>&lt;P&gt;I can not understand the manual about the following parameters of the function.&lt;/P&gt;&lt;P&gt;rows&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The number of rows in matrix B (the destination matrix).&lt;/P&gt;&lt;P&gt;cols &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; The number of columns in matrix B (the destination matrix).&lt;/P&gt;&lt;P&gt;ldb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If ordering = 'R' or 'r' , ldb represents the number of elements in array&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b between adjacent rows of matrix B.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; •If trans = 'T' or 't' or 'C' or 'c' , ldb must be at least equal to rows .&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; •If trans = 'N' or 'n' or 'R' or 'r' , ldb must be at least equal to cols .&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If ordering = 'C' or 'c' , ldb represents the number of elements in array&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b between adjacent columns of matrix B.&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; •If trans = 'T' or 't' or 'C' or 'c' , ldb must be at least equal to cols .&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; •If trans = 'N' or 'n' or 'R' or 'r' , ldb must be at least equal to rows.&lt;/P&gt;&lt;P&gt;Please see the code in MKL official examples.&lt;/P&gt;&lt;P&gt;int main(int argc, char *argv[])&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; size_t n=3, m=5;&lt;BR /&gt;&amp;nbsp; double src[] = {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.,&amp;nbsp;&amp;nbsp; 2.,&amp;nbsp;&amp;nbsp; 3.,&amp;nbsp;&amp;nbsp; 4.,&amp;nbsp;&amp;nbsp; 5.,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.,&amp;nbsp;&amp;nbsp; 7.,&amp;nbsp;&amp;nbsp; 8.,&amp;nbsp;&amp;nbsp; 9.,&amp;nbsp;&amp;nbsp; 10.,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11.,&amp;nbsp; 12.,&amp;nbsp; 13.,&amp;nbsp; 14.,&amp;nbsp; 15.&lt;BR /&gt;&amp;nbsp; }; /* source matrix */&lt;BR /&gt;&amp;nbsp; double dst[8]; /* destination matrix */&lt;BR /&gt;&amp;nbsp; size_t src_stride = 5;&lt;BR /&gt;&amp;nbsp; size_t dst_stride = 2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; printf("\nThis is example of using mkl_domatcopy\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp; printf("INPUT DATA:\nSource matrix:\n");&lt;BR /&gt;&amp;nbsp; print_matrix(n, m, 'd', src);&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*&lt;BR /&gt;&amp;nbsp; **&amp;nbsp; Source submatrix(2,4) a will be transposed&lt;BR /&gt;&amp;nbsp; */&lt;BR /&gt;&amp;nbsp; mkl_domatcopy('R'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* row-major ordering */,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'T'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* A will be transposed */,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* rows */,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* cols */,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* scales the input matrix */,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; src&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* source matrix */,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; src_stride /* src_stride */,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dst&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* destination matrix */,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dst_stride /* dst_stride */);&lt;BR /&gt;&amp;nbsp; /*&amp;nbsp; New matrix: src = {&lt;BR /&gt;&amp;nbsp; **&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1,&amp;nbsp; 6,&lt;BR /&gt;&amp;nbsp; **&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2,&amp;nbsp; 7,&lt;BR /&gt;&amp;nbsp; **&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3,&amp;nbsp; 8,&lt;BR /&gt;&amp;nbsp; **&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4,&amp;nbsp; 9,&lt;BR /&gt;&amp;nbsp; **&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; */&lt;BR /&gt;&amp;nbsp; printf("OUTPUT DATA:\nDestination matrix:\n");&lt;BR /&gt;&amp;nbsp; print_matrix(4, 2, 'd', dst);&lt;/P&gt;&lt;P&gt;&amp;nbsp; return 0;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;The new matrix should be 4 rows and 2 cols, but in the code are 2 and 4.&lt;/P&gt;&lt;P&gt;If the code is correct, the rows should be explained as the rows of destination matrix without "operation".&lt;/P&gt;&lt;P&gt;Would you please look into the manual and give me some advice?&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 11 Feb 2019 12:34:07 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-the-mkl-omatcopy/m-p/1150721#M27112</guid>
      <dc:creator>Ye_C_1</dc:creator>
      <dc:date>2019-02-11T12:34:07Z</dc:date>
    </item>
    <item>
      <title>Thank you, Ye. It looks like</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-the-mkl-omatcopy/m-p/1150722#M27113</link>
      <description>&lt;P&gt;Thank you, Ye. It looks like the documentation is incorrect. I will verify with the MKL developers and get back to you.&lt;/P&gt;&lt;P&gt;Pamela&lt;/P&gt;</description>
      <pubDate>Tue, 08 Oct 2019 16:56:52 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-the-mkl-omatcopy/m-p/1150722#M27113</guid>
      <dc:creator>Pamela_H_Intel</dc:creator>
      <dc:date>2019-10-08T16:56:52Z</dc:date>
    </item>
    <item>
      <title>The similar issue has been</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-the-mkl-omatcopy/m-p/1150723#M27114</link>
      <description>&lt;P&gt;The similar issue has been already reported and we will update the documentation and will keep this thread updated accordingly.&lt;/P&gt;</description>
      <pubDate>Wed, 09 Oct 2019 04:26:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-the-mkl-omatcopy/m-p/1150723#M27114</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2019-10-09T04:26:36Z</dc:date>
    </item>
    <item>
      <title>Meanwhile - here is the</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-the-mkl-omatcopy/m-p/1150724#M27115</link>
      <description>&lt;P&gt;Meanwhile - here is the corrected version:&lt;/P&gt;&lt;P&gt;According to our examples the description of parameters should be as follows:&lt;/P&gt;&lt;P&gt;rows - the number of rows in matrix A&lt;/P&gt;&lt;P&gt;cols - the number of columns in matrix A&lt;/P&gt;&lt;P&gt;alpha - this parameter scales the input matrix by&amp;nbsp;alpha.&lt;/P&gt;&lt;P&gt;a - array of size at least lda*rows in case of Row-major ordering (ordering&amp;nbsp;=&amp;nbsp;'R'). And lda*cols in case of Column-major ordering (ordering&amp;nbsp;=&amp;nbsp;'C')&lt;/P&gt;&lt;P&gt;lda - If&amp;nbsp;ordering&amp;nbsp;=&amp;nbsp;'R'&amp;nbsp;or&amp;nbsp;'r',&amp;nbsp;lda&amp;nbsp;represents the number of elements in array&amp;nbsp;a&amp;nbsp;between adjacent rows of matrix&amp;nbsp;A;&amp;nbsp;lda&amp;nbsp;must be at least equal to cols.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; If&amp;nbsp;ordering&amp;nbsp;=&amp;nbsp;'C'&amp;nbsp;or&amp;nbsp;'c',&amp;nbsp;lda&amp;nbsp;represents the number of elements in array&amp;nbsp;a&amp;nbsp;between adjacent columns of matrix&amp;nbsp;A;&amp;nbsp;lda&amp;nbsp;must be at least equal to rows.&lt;/P&gt;&lt;P&gt;b&amp;nbsp;- If trans == 'R' or 'N' then it is array of size at least ldb*rows in case of Row-major ordering (ordering&amp;nbsp;=&amp;nbsp;'R'). And ldb*cols in case of Column-major ordering (ordering&amp;nbsp;=&amp;nbsp;'C').&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;If trans == 'T' or 'C' then it is array of size at least ldb*cols in case of Row-major ordering (ordering&amp;nbsp;=&amp;nbsp;'R'). And ldb*rows in case of Column-major ordering (ordering&amp;nbsp;=&amp;nbsp;'C').&lt;/P&gt;&lt;P&gt;ldb -&amp;nbsp;If&amp;nbsp;ordering&amp;nbsp;=&amp;nbsp;'R'&amp;nbsp;or&amp;nbsp;'r',&amp;nbsp;lda&amp;nbsp;represents the number of elements in array&amp;nbsp;a&amp;nbsp;between adjacent rows of matrix B;&amp;nbsp;ldb must be at least equal to cols if trans=='R' or 'N'. And rows if trans=='C' or 'T'&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; If&amp;nbsp;ordering&amp;nbsp;=&amp;nbsp;'C'&amp;nbsp;or&amp;nbsp;'c',&amp;nbsp;lda&amp;nbsp;represents the number of elements in array&amp;nbsp;a&amp;nbsp;between adjacent columns of matrix B; ldb&amp;nbsp;must be at least equal to rows if trans=='R' or 'N'. And cols if trans=='C' or 'T'&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The same changes should be applied to ?omatcopy2 routine + the following:&lt;/P&gt;&lt;P&gt;stridea -&amp;nbsp;If&amp;nbsp;ordering&amp;nbsp;=&amp;nbsp;'R'&amp;nbsp;or&amp;nbsp;'r',&amp;nbsp;stridea&amp;nbsp;represents the number of elements in array 'a'&amp;nbsp;between adjacent columns of matrix&amp;nbsp;A.&amp;nbsp;stridea&amp;nbsp;must be at least 1.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;If&amp;nbsp;ordering&amp;nbsp;=&amp;nbsp;'C'&amp;nbsp;or&amp;nbsp;'c',&amp;nbsp;stridea&amp;nbsp;represents the number of elements in array 'a'&amp;nbsp;between adjacent rows of matrix&amp;nbsp;A.&amp;nbsp;stridea&amp;nbsp;must be at least 1.&lt;/P&gt;&lt;P&gt;strideb -&amp;nbsp;If&amp;nbsp;ordering&amp;nbsp;=&amp;nbsp;'R'&amp;nbsp;or&amp;nbsp;'r',&amp;nbsp;strideb&amp;nbsp;represents the number of elements in array 'b'&amp;nbsp;between adjacent columns of matrix B.&amp;nbsp;strideb&amp;nbsp;must be at least 1.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;If&amp;nbsp;ordering&amp;nbsp;=&amp;nbsp;'C'&amp;nbsp;or&amp;nbsp;'c',&amp;nbsp;strideb&amp;nbsp;represents the number of elements in array 'b'&amp;nbsp;between adjacent rows of matrix B.&amp;nbsp;strideb&amp;nbsp;must be at least 1.&lt;/P&gt;</description>
      <pubDate>Fri, 25 Oct 2019 23:27:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-the-mkl-omatcopy/m-p/1150724#M27115</guid>
      <dc:creator>Pamela_H_Intel</dc:creator>
      <dc:date>2019-10-25T23:27:46Z</dc:date>
    </item>
  </channel>
</rss>

