<?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 in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-do-a-2d-Fourier-tranformation-stored-in-column-major/m-p/1062234#M21774</link>
    <description>&lt;P&gt;Hi&lt;/P&gt;

&lt;P&gt;It seems bring some confusion here.&amp;nbsp; I will check&amp;nbsp;internally.&lt;/P&gt;

&lt;P&gt;but the key is&amp;nbsp; how the x(k1, K2) are gotten.&lt;/P&gt;

&lt;P&gt;The memory address of the&lt;BR /&gt;
	element X(k1, k2 , ..., kd) is expressed by the formula&lt;BR /&gt;
	address of X(k1, k2, ..., kd) = address of X(0, 0, ..., 0) + offset&lt;BR /&gt;
	= address of X(0, 0, ..., 0) + s0 + k1*s1 + k2*s2 + ...+ kd*sd,&lt;BR /&gt;
	where s0 is the displacement and s1, ..., sd are generalized strides.&lt;/P&gt;

&lt;P&gt;So for 2d data,&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp; &amp;nbsp;column-major storage,&amp;nbsp; X(k1,k2)= x(0,0)+K1*1 + K2* row-number, the strides looks be&amp;nbsp;{0, 1, row-number}&lt;/P&gt;

&lt;P&gt;You may refer to some sample coded under MKL install directory. for example, mkl_example\examples_core_c\dftc\source\config_placement.c to understand the stride and the compress format if real.&lt;/P&gt;

&lt;P&gt;Regards&lt;/P&gt;

&lt;P&gt;Ying&lt;/P&gt;</description>
    <pubDate>Tue, 29 Mar 2016 06:01:45 GMT</pubDate>
    <dc:creator>Ying_H_Intel</dc:creator>
    <dc:date>2016-03-29T06:01:45Z</dc:date>
    <item>
      <title>How to do a 2d Fourier tranformation stored in column-major?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-do-a-2d-Fourier-tranformation-stored-in-column-major/m-p/1062233#M21773</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;I have read the MKL manual but I can hardly understand the explanation below:&lt;/SPAN&gt;&lt;/P&gt;

&lt;PRE style="box-sizing: border-box; margin-top: 1.6em; margin-bottom: 1.6em; font-family: 'Courier New', Courier, monospace; font-size: 13px; line-height: 1.6em; white-space: pre-wrap; background-color: rgb(245, 245, 245); clear: both; color: rgb(102, 102, 102);"&gt;MKL_LONG dims[] = { nd, …, n2, n1 };
DftiCreateDescriptor( &amp;amp;hand, precision, domain, d, dims );
// The above call assumes data declaration:  type X[nd]…[n2][n1]
// Default strides are { 0, nd*…*n2*n1, …,  n2*n1, n1, 1 }&lt;/PRE&gt;

&lt;P&gt;It is obvious that there are nd+2 elements in the strides configurations, i.e., for 2d data, the default strides are {0, n2*n1, n1, 1},&amp;nbsp;&lt;/P&gt;

&lt;P&gt;the first element 0 is the default value for s0, except which there are still 3 elements.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;I don't know how to under the configuration of strides.&lt;/P&gt;

&lt;P&gt;By now, I have a 2d data stored in column-major, how to set the strides for the column-major storage?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 28 Mar 2016 10:39:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-do-a-2d-Fourier-tranformation-stored-in-column-major/m-p/1062233#M21773</guid>
      <dc:creator>Ye_C_</dc:creator>
      <dc:date>2016-03-28T10:39:32Z</dc:date>
    </item>
    <item>
      <title>Hi</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-do-a-2d-Fourier-tranformation-stored-in-column-major/m-p/1062234#M21774</link>
      <description>&lt;P&gt;Hi&lt;/P&gt;

&lt;P&gt;It seems bring some confusion here.&amp;nbsp; I will check&amp;nbsp;internally.&lt;/P&gt;

&lt;P&gt;but the key is&amp;nbsp; how the x(k1, K2) are gotten.&lt;/P&gt;

&lt;P&gt;The memory address of the&lt;BR /&gt;
	element X(k1, k2 , ..., kd) is expressed by the formula&lt;BR /&gt;
	address of X(k1, k2, ..., kd) = address of X(0, 0, ..., 0) + offset&lt;BR /&gt;
	= address of X(0, 0, ..., 0) + s0 + k1*s1 + k2*s2 + ...+ kd*sd,&lt;BR /&gt;
	where s0 is the displacement and s1, ..., sd are generalized strides.&lt;/P&gt;

&lt;P&gt;So for 2d data,&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp; &amp;nbsp;column-major storage,&amp;nbsp; X(k1,k2)= x(0,0)+K1*1 + K2* row-number, the strides looks be&amp;nbsp;{0, 1, row-number}&lt;/P&gt;

&lt;P&gt;You may refer to some sample coded under MKL install directory. for example, mkl_example\examples_core_c\dftc\source\config_placement.c to understand the stride and the compress format if real.&lt;/P&gt;

&lt;P&gt;Regards&lt;/P&gt;

&lt;P&gt;Ying&lt;/P&gt;</description>
      <pubDate>Tue, 29 Mar 2016 06:01:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-do-a-2d-Fourier-tranformation-stored-in-column-major/m-p/1062234#M21774</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2016-03-29T06:01:45Z</dc:date>
    </item>
    <item>
      <title>Thanks！</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-do-a-2d-Fourier-tranformation-stored-in-column-major/m-p/1062235#M21775</link>
      <description>&lt;P&gt;Thanks！&lt;/P&gt;

&lt;P&gt;I have guessed the solution.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Grateful for your clear answer!&lt;/P&gt;

&lt;P&gt;Yours,&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Ying H (Intel) wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Hi&lt;/P&gt;

&lt;P&gt;It seems bring some confusion here.&amp;nbsp; I will check&amp;nbsp;internally.&lt;/P&gt;

&lt;P&gt;but the key is&amp;nbsp; how the x(k1, K2) are gotten.&lt;/P&gt;

&lt;P&gt;The memory address of the&lt;BR /&gt;
	element X(k1, k2 , ..., kd) is expressed by the formula&lt;BR /&gt;
	address of X(k1, k2, ..., kd) = address of X(0, 0, ..., 0) + offset&lt;BR /&gt;
	= address of X(0, 0, ..., 0) + s0 + k1*s1 + k2*s2 + ...+ kd*sd,&lt;BR /&gt;
	where s0 is the displacement and s1, ..., sd are generalized strides.&lt;/P&gt;

&lt;P&gt;So for 2d data,&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp; &amp;nbsp;column-major storage,&amp;nbsp; X(k1,k2)= x(0,0)+K1*1 + K2* row-number, the strides looks be&amp;nbsp;{0, 1, row-number}&lt;/P&gt;

&lt;P&gt;You may refer to some sample coded under MKL install directory. for example, mkl_example\examples_core_c\dftc\source\config_placement.c to understand the stride and the compress format if real.&lt;/P&gt;

&lt;P&gt;Regards&lt;/P&gt;

&lt;P&gt;Ying&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 29 Mar 2016 06:47:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-do-a-2d-Fourier-tranformation-stored-in-column-major/m-p/1062235#M21775</guid>
      <dc:creator>Ye_C_</dc:creator>
      <dc:date>2016-03-29T06:47:02Z</dc:date>
    </item>
  </channel>
</rss>

