<?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 mkl_?bsrmm documentation FOLLOW-UP questions in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-bsrmm-documentation-question/m-p/792737#M2365</link>
    <description>&lt;DIV&gt;Sergey says:&lt;/DIV&gt;"More precisely ldb specifies the leading dimension of b for one-based indexing, and the second dimension of b for zero-based indexing, as declared in the calling (sub)program.&lt;B&gt;ldb must be &amp;gt;= m*lb for the non-transposed case and &amp;gt;=kb*lb otherwise in the case of 1-based indexing.&lt;/B&gt; If we choose 0-based indexing ldb &amp;gt;= k*lb for non-transposed A, and ldb &amp;gt;= m*lb for transposed."&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I understand what you are saying for the case of 0-based indexing, but not for 1-based indexing (&lt;B&gt;bold&lt;/B&gt;):&lt;/DIV&gt;&lt;DIV&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN style="line-height: normal;"&gt;When performing &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;A&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;*&lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;B&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;, when &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;A&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt; is &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;m&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;-by-&lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;k&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;, why would either dimension of &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;B&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt; be constrained by&lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;m&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;?&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="line-height: normal;"&gt;Likewise, when performing &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;A&lt;/I&gt;&lt;SUP style="line-height: normal;"&gt;T&lt;/SUP&gt;&lt;SPAN style="line-height: normal;"&gt;*&lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;B&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;, why would either parameter of &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;B&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt; depend on &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;k&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;?&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;It seems to me that it would be&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;UL&gt;&lt;LI&gt;&lt;I style="line-height: normal;"&gt;transa&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;='n' ==&amp;gt; &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;ldb&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt; &amp;gt;= &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;k&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;*&lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;lb&lt;/I&gt;&lt;/LI&gt;&lt;LI&gt;&lt;I style="line-height: normal;"&gt;transa&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;='y' ==&amp;gt; &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;ldb&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt; &amp;gt;= &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;m&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;*&lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;lb&lt;/I&gt;&lt;/LI&gt;&lt;/UL&gt;for both 0-based and 1-based indexing... Sorry for my confusion; thanks for your help! Best, --Nick&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Sun, 27 Nov 2011 00:11:33 GMT</pubDate>
    <dc:creator>Nicholas_K_2</dc:creator>
    <dc:date>2011-11-27T00:11:33Z</dc:date>
    <item>
      <title>mkl_?bsrmm documentation question</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-bsrmm-documentation-question/m-p/792733#M2361</link>
      <description>&lt;DL&gt;&lt;DT class="dlterm"&gt;mkl_?bsrmm is:&lt;I&gt;C&lt;/I&gt; := &lt;I&gt;alpha&lt;/I&gt; op(&lt;I&gt;A&lt;/I&gt;) * &lt;I&gt;B&lt;/I&gt; + &lt;I&gt;beta&lt;/I&gt; * &lt;I&gt;C&lt;/I&gt;, in bsr format)&lt;/DT&gt;&lt;DT class="dlterm"&gt;&lt;BR /&gt;&lt;/DT&gt;&lt;DT class="dlterm"&gt;For the dense matrix &lt;I&gt;B&lt;/I&gt; (often tall and skinny, eg block Krylov methods), the &lt;A title="documentation" href="http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/cpp/win/mkl/refman/bla/functn_mkl_dbsrmm.html"&gt;documentation&lt;/A&gt; specifies:&lt;/DT&gt;&lt;DT class="dlterm"&gt;&lt;BR /&gt;&lt;/DT&gt;&lt;DT style="padding-left: 20pt;" class="dlterm"&gt;&lt;I&gt;b&lt;/I&gt;: [...types...] &lt;SPAN style="line-height: 16px;"&gt;Array,DIMENSION&lt;/SPAN&gt;&lt;SAMP style="line-height: 16px;" class="codeph"&gt;(&lt;VAR class="varname"&gt;ldb&lt;/VAR&gt;,&lt;VAR class="varname"&gt;n&lt;/VAR&gt;)&lt;/SAMP&gt;&lt;SPAN style="line-height: 16px;"&gt;for one-based indexing,&lt;B&gt;DIMENSION&lt;/B&gt;&lt;/SPAN&gt;&lt;SAMP style="line-height: 16px;" class="codeph"&gt;&lt;B&gt;(&lt;VAR class="varname"&gt;m&lt;/VAR&gt;,&lt;VAR class="varname"&gt;ldb&lt;/VAR&gt;)&lt;/B&gt;&lt;/SAMP&gt;&lt;SPAN style="line-height: 16px;"&gt;for zero-based indexing.&lt;/SPAN&gt;&lt;/DT&gt;&lt;DD style="padding-left: 20pt;"&gt;&lt;P&gt;On entry with&lt;SAMP class="codeph"&gt;&lt;VAR class="varname"&gt;transa=&lt;/VAR&gt;'N'&lt;/SAMP&gt;or'n', the &lt;B&gt;leading&lt;VAR class="varname"&gt;n&lt;/VAR&gt;-by-&lt;VAR class="varname"&gt;k&lt;/VAR&gt;block part&lt;/B&gt; of the array&lt;VAR class="varname"&gt;b&lt;/VAR&gt;must contain the matrix&lt;VAR class="bi"&gt;B&lt;/VAR&gt;, otherwise the leading&lt;VAR class="varname"&gt;m&lt;/VAR&gt;-by-&lt;VAR class="varname"&gt;n&lt;/VAR&gt;block part of the array&lt;VAR class="varname"&gt;b&lt;/VAR&gt;must contain the matrix&lt;VAR class="bi"&gt;B&lt;/VAR&gt;.&lt;/P&gt;&lt;/DD&gt;&lt;DT style="padding-left: 20pt;" class="dlterm"&gt;&lt;I&gt;ldb&lt;/I&gt;:&lt;SPAN style="line-height: 16px;"&gt;INTEGER. Specifies the &lt;B&gt;first dimension &lt;/B&gt;(in blocks) of&lt;/SPAN&gt;&lt;VAR style="line-height: 16px;" class="varname"&gt;b&lt;/VAR&gt;&lt;SPAN style="line-height: 16px;"&gt;as declared in the calling (sub)program.&lt;/SPAN&gt;&lt;/DT&gt;&lt;DT class="dlterm"&gt;&lt;SPAN style="line-height: 16px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DT&gt;&lt;DT class="dlterm"&gt;&lt;SPAN style="line-height: 16px;"&gt;A few questions.My use case: &lt;I&gt;transa&lt;/I&gt;='n', &lt;I&gt;beta&lt;/I&gt;=0, zero-based indexing.&lt;/SPAN&gt;&lt;/DT&gt;&lt;DT class="dlterm"&gt;&lt;SPAN style="line-height: 16px;"&gt;1) Since &lt;I&gt;A&lt;/I&gt; is &lt;I&gt;m&lt;/I&gt;-by-&lt;I&gt;k&lt;/I&gt; and &lt;I&gt;C&lt;/I&gt; is &lt;I&gt;m&lt;/I&gt;-by-&lt;I&gt;n&lt;/I&gt; then &lt;I&gt;B&lt;/I&gt; must be&lt;I&gt;k&lt;/I&gt;-by-&lt;I&gt;n&lt;/I&gt;... right?&lt;/SPAN&gt;&lt;/DT&gt;&lt;DT class="dlterm"&gt;&lt;SPAN style="line-height: 16px;"&gt;2) Assuming this, what does it mean for &lt;I&gt;b&lt;/I&gt; to have DIMENSION(&lt;I&gt;m&lt;/I&gt;, &lt;I&gt;ldb&lt;/I&gt;)? Often in my program &lt;I&gt;m&lt;/I&gt; &amp;lt; &lt;I&gt;k&lt;/I&gt;, and I cannot satisfy this constraint. Yet, the documentation does not explicitly exclude "short fat" matrices (&lt;I&gt;m&lt;/I&gt; &amp;lt; &lt;I&gt;k&lt;/I&gt;).&lt;/SPAN&gt;&lt;/DT&gt;&lt;DT class="dlterm"&gt;&lt;SPAN style="line-height: 16px;"&gt;3) Is &lt;I&gt;ldb&lt;/I&gt; the first or second dimension of &lt;I&gt;b&lt;/I&gt;?&lt;/SPAN&gt;&lt;/DT&gt;&lt;DT class="dlterm"&gt;&lt;SPAN style="line-height: 16px;"&gt;4)&lt;/SPAN&gt;&lt;SPAN style="line-height: 16px;"&gt;In my use case, &lt;I&gt;B&lt;/I&gt; and &lt;I&gt;C&lt;/I&gt;are submatrices of larger, row-major matrices. Do I need to repack in order to use this routine?&lt;/SPAN&gt;&lt;/DT&gt;&lt;DT class="dlterm"&gt;&lt;SPAN style="line-height: 16px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DT&gt;&lt;DT class="dlterm"&gt;&lt;SPAN style="line-height: 16px;"&gt;Thanks for your help!&lt;/SPAN&gt;&lt;/DT&gt;&lt;DT class="dlterm"&gt;&lt;SPAN style="line-height: 16px;"&gt;--Nick&lt;/SPAN&gt;&lt;/DT&gt;&lt;/DL&gt;</description>
      <pubDate>Tue, 15 Nov 2011 21:25:19 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-bsrmm-documentation-question/m-p/792733#M2361</guid>
      <dc:creator>Nicholas_K_2</dc:creator>
      <dc:date>2011-11-15T21:25:19Z</dc:date>
    </item>
    <item>
      <title>mkl_?bsrmm documentation question</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-bsrmm-documentation-question/m-p/792734#M2362</link>
      <description>&lt;P&gt;1&amp;gt;Since A is m-by-k and C is m-by-n then B must be k-by-n ... right? &lt;/P&gt;&lt;P&gt;Yes, It looks the document error in the manual &lt;/P&gt;&lt;P&gt;4&amp;gt;B and C are submatrices of larger, row-major matrices. Do I need to repack in order to use this routine? &lt;/P&gt;&lt;P&gt;The functions support row-major function. Check the matdescra parameter setting, and some description on the parameter: &lt;BR /&gt;&lt;A href="http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/GUID-34C8DB79-0139-46E0-8B53-99F3BEE7B2D4.htm#TBL2-6"&gt;http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/GUID-34C8DB79-0139-46E0-8B53-99F3BEE7B2D4.htm#TBL2-6&lt;/A&gt;&lt;/P&gt;&lt;P&gt;You needs set it as zero-based indexing&lt;/P&gt;&lt;P&gt;2) Assuming this, what does it mean for b to have DIMENSION(m, ldb)? Often in my program m &amp;lt; k, and I cannot satisfy this constraint. Yet, the documentation does not explicitly exclude "short fat" matrices (m &amp;lt; k).&lt;BR /&gt;For zero-based, it is (k, ldb) actually.&lt;/P&gt;&lt;P&gt;3) Is ldb the first or second dimension of b? &lt;BR /&gt;For zero-based, it is the first dimension.&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;Chao&lt;/P&gt;</description>
      <pubDate>Wed, 16 Nov 2011 06:22:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-bsrmm-documentation-question/m-p/792734#M2362</guid>
      <dc:creator>Chao_Y_Intel</dc:creator>
      <dc:date>2011-11-16T06:22:11Z</dc:date>
    </item>
    <item>
      <title>mkl_?bsrmm documentation FOLLOW-UP questions</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-bsrmm-documentation-question/m-p/792735#M2363</link>
      <description>Chao - thanks for your reply! I'm excited to hear that this routine will work for me.&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Two clarifications and two more questions:&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;1)In the &lt;I&gt;matdescra&lt;/I&gt; documentation you linked, the only line I can find that supports your statement is&lt;/DIV&gt;&lt;BLOCKQUOTE&gt;&lt;DIV&gt;In Fortran the column-major order is used, and in C - row-major order.&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;DIV&gt;Does this meanI must use the C Sparse BLAS interface in order for MKL to interpret my dense arrays as row-major, or canI&lt;I&gt;also&lt;/I&gt; use the Fortran interface with 0-based indexing?&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;2) You said:&lt;/DIV&gt;&lt;BLOCKQUOTE&gt;&lt;DIV&gt;3) Is ldb the first or second dimension of b?&lt;/DIV&gt;&lt;DIV&gt;&lt;P&gt;For zero-based, it is the first dimension.&lt;/P&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;This means that &lt;I&gt;ldb&lt;/I&gt; is the leading dimension of &lt;I&gt;b&lt;/I&gt;, and since &lt;I&gt;b&lt;/I&gt; is stored row-major, &lt;I&gt;ldb&lt;/I&gt; gives the number of columns in &lt;I&gt;b&lt;/I&gt;, correct?&lt;/P&gt;&lt;P&gt;3) Are all the dimension parameters (&lt;I&gt;m,n,k,ldb,ldc&lt;/I&gt;) in units of the block size &lt;I&gt;lb&lt;/I&gt;? The documentation says&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;DL&gt;&lt;DT class="dlterm"&gt;&lt;I&gt;n&lt;/I&gt;:&lt;SPAN style="line-height: 16px;"&gt;INTEGER. Number of columns of the matrix&lt;/SPAN&gt;&lt;VAR class="bi" style="line-height: 16px;"&gt;C&lt;/VAR&gt;&lt;SPAN style="line-height: 16px;"&gt;.&lt;/SPAN&gt;&lt;/DT&gt;&lt;DT class="dlterm"&gt;&lt;SPAN style="line-height: 16px;"&gt;but the other parameters (&lt;I&gt;m,k,ldb,ldc&lt;/I&gt;) all specify &lt;I&gt;block&lt;/I&gt; rows/columns.&lt;/SPAN&gt;&lt;/DT&gt;&lt;DT class="dlterm"&gt;&lt;SPAN style="line-height: 16px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DT&gt;&lt;DT class="dlterm"&gt;&lt;SPAN style="line-height: 16px;"&gt;4) In the BSR format with 0-based indexing, the &lt;I&gt;indx&lt;/I&gt; and &lt;I&gt;val&lt;/I&gt; arrays are stored (sparse) block-row-major with (dense) row-major blocks. Does this mean that &lt;I&gt;b&lt;/I&gt; and &lt;I&gt;c&lt;/I&gt;must be stored (dense) block-row-major with (dense) row-major blocks? Or can they be stored in (unblocked, dense) row-major layout, but zero-padded to a multiple of &lt;I&gt;lb&lt;/I&gt;?&lt;/SPAN&gt;&lt;/DT&gt;&lt;DT class="dlterm"&gt;&lt;SPAN style="line-height: 16px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DT&gt;&lt;DT class="dlterm"&gt;&lt;SPAN style="line-height: 16px;"&gt;Thanks again for your help.&lt;/SPAN&gt;&lt;/DT&gt;&lt;DT class="dlterm"&gt;&lt;SPAN style="line-height: 16px;"&gt;--Nick&lt;/SPAN&gt;&lt;/DT&gt;&lt;/DL&gt;&lt;/BLOCKQUOTE&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 16 Nov 2011 22:01:07 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-bsrmm-documentation-question/m-p/792735#M2363</guid>
      <dc:creator>Nicholas_K_2</dc:creator>
      <dc:date>2011-11-16T22:01:07Z</dc:date>
    </item>
    <item>
      <title>mkl_?bsrmm documentation FOLLOW-UP questions</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-bsrmm-documentation-question/m-p/792736#M2364</link>
      <description>Dear Nick,&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;1. Does this meanI must use the C Sparse BLAS interface in order for MKL to interpret my dense arrays as row-major, or canI&lt;I&gt;also&lt;/I&gt; use the Fortran interface with 0-based indexing?&lt;/DIV&gt;&lt;BR /&gt;Ifb and c in your Fortran program are stored in row-major fashion,you can also use the 0-based switch from Fortran. &lt;BR /&gt;&lt;BR /&gt;2. This means that &lt;I&gt;ldb&lt;/I&gt; is the leading dimension of &lt;I&gt;b&lt;/I&gt;, and since &lt;I&gt;b&lt;/I&gt; is stored row-major, &lt;I&gt;ldb&lt;/I&gt; gives the number of columns in &lt;I&gt;b&lt;/I&gt;, correct?&lt;BR /&gt;&lt;BR /&gt;More precisely ldb specifies the leading dimension of b for one-based indexing, and the second dimension of b for zero-based indexing, as declared in the calling (sub)program.ldb must be &amp;gt;= m*lb for the non-transposed case and &amp;gt;=kb*lb otherwise in the case of 1-based indexing. If we choose 0-based indexing ldb &amp;gt;= k*lb for non-transposed A, and ldb &amp;gt;= m*lb for transposed. &lt;BR /&gt;&lt;BR /&gt;3.Are all the dimension parameters (&lt;I&gt;m,n,k,ldb,ldc&lt;/I&gt;) in units of the block size &lt;I&gt;lb&lt;/I&gt;?&lt;BR /&gt;&lt;BR /&gt;m and k are onlyblock dimensions. The rest of parameters are just unblocked dimensions. &lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;4) In the BSR format with 0-based indexing, the &lt;I&gt;indx&lt;/I&gt; and &lt;I&gt;val&lt;/I&gt; arrays are stored (sparse) block-row-major with (dense) row-major blocks. Does this mean that &lt;I&gt;b&lt;/I&gt; and &lt;I&gt;c&lt;/I&gt;must be stored (dense) block-row-major with (dense) row-major blocks? Or can they be stored in (unblocked, dense) row-major layout, but zero-padded to a multiple of &lt;I&gt;lb&lt;/I&gt;?&lt;DL&gt;&lt;DT class="dlterm"&gt;&lt;BR /&gt;b and c must be stored in regular unblocked denseway as for the rest MKL Sparse ordenseBLAS . If youchoose 1-based indexing, B and Care strored in column-major fashion and row-major otherwise. &lt;BR /&gt;&lt;BR /&gt;As concerns matrix A, blocks are always listed in row-major fashion but elements in blocks are stored in row-major layout for 0-based indexing and column-major for 1-based indexing. Please see Appendix Ain MKL Reference Manual for more detailsabout the BSR storage.&lt;BR /&gt;&lt;BR /&gt;All the best&lt;BR /&gt;Sergey&lt;/DT&gt;&lt;P&gt;&lt;BR /&gt; &lt;/P&gt;&lt;/DL&gt;</description>
      <pubDate>Mon, 21 Nov 2011 05:38:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-bsrmm-documentation-question/m-p/792736#M2364</guid>
      <dc:creator>Sergey_K_Intel1</dc:creator>
      <dc:date>2011-11-21T05:38:51Z</dc:date>
    </item>
    <item>
      <title>mkl_?bsrmm documentation FOLLOW-UP questions</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-bsrmm-documentation-question/m-p/792737#M2365</link>
      <description>&lt;DIV&gt;Sergey says:&lt;/DIV&gt;"More precisely ldb specifies the leading dimension of b for one-based indexing, and the second dimension of b for zero-based indexing, as declared in the calling (sub)program.&lt;B&gt;ldb must be &amp;gt;= m*lb for the non-transposed case and &amp;gt;=kb*lb otherwise in the case of 1-based indexing.&lt;/B&gt; If we choose 0-based indexing ldb &amp;gt;= k*lb for non-transposed A, and ldb &amp;gt;= m*lb for transposed."&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I understand what you are saying for the case of 0-based indexing, but not for 1-based indexing (&lt;B&gt;bold&lt;/B&gt;):&lt;/DIV&gt;&lt;DIV&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN style="line-height: normal;"&gt;When performing &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;A&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;*&lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;B&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;, when &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;A&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt; is &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;m&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;-by-&lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;k&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;, why would either dimension of &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;B&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt; be constrained by&lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;m&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;?&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="line-height: normal;"&gt;Likewise, when performing &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;A&lt;/I&gt;&lt;SUP style="line-height: normal;"&gt;T&lt;/SUP&gt;&lt;SPAN style="line-height: normal;"&gt;*&lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;B&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;, why would either parameter of &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;B&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt; depend on &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;k&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;?&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;It seems to me that it would be&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;UL&gt;&lt;LI&gt;&lt;I style="line-height: normal;"&gt;transa&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;='n' ==&amp;gt; &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;ldb&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt; &amp;gt;= &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;k&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;*&lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;lb&lt;/I&gt;&lt;/LI&gt;&lt;LI&gt;&lt;I style="line-height: normal;"&gt;transa&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;='y' ==&amp;gt; &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;ldb&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt; &amp;gt;= &lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;m&lt;/I&gt;&lt;SPAN style="line-height: normal;"&gt;*&lt;/SPAN&gt;&lt;I style="line-height: normal;"&gt;lb&lt;/I&gt;&lt;/LI&gt;&lt;/UL&gt;for both 0-based and 1-based indexing... Sorry for my confusion; thanks for your help! Best, --Nick&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Sun, 27 Nov 2011 00:11:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-bsrmm-documentation-question/m-p/792737#M2365</guid>
      <dc:creator>Nicholas_K_2</dc:creator>
      <dc:date>2011-11-27T00:11:33Z</dc:date>
    </item>
    <item>
      <title>mkl_?bsrmm documentation FOLLOW-UP questions</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-bsrmm-documentation-question/m-p/792738#M2366</link>
      <description>When a transpose is to be used, that is taken into account &lt;I&gt;after&lt;/I&gt; entering the MKL routine(s). &lt;BR /&gt;&lt;BR /&gt;Since the declared sizes of the array arguments passed may be larger than the actual sizes, the information concerning the declared size needs to available to MKL regardless of whether the transpose is specified for one or more arguments.&lt;BR /&gt;&lt;BR /&gt;In order to compute the effective 1-D array index for a 2-D array, in Fortran one needs the leading dimension, i.e., the first dimension in the declaration of the array. In C, one needs the trailing dimension. &lt;BR /&gt;&lt;BR /&gt;Whether the arrays are zero-based or one-based, or even start with a negative or positive base, is merely a distraction. After all, matrix operations are defined in mathematics with the convention of rows and columns being numbered starting from 1. Think of the additional argument as indicating the number of rows or columns, rather than the sequence number of the last row or column. The former is invariant with respect to changing from 1-base to 0-base numbering; the latter is not.&lt;BR /&gt;</description>
      <pubDate>Tue, 29 Nov 2011 01:40:14 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-bsrmm-documentation-question/m-p/792738#M2366</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2011-11-29T01:40:14Z</dc:date>
    </item>
  </channel>
</rss>

