<?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 Re: FFT examples wrong? in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FFT-examples-wrong/m-p/908179#M11890</link>
    <description>&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
&lt;BR /&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;In this real-to-complex transform the resulting data, which is32/2+1=17 complex-valued items, is laid out to 34 real-valued items of array Y_out, according to the default layout for the conjugate-even domain (which is DFTI_COMPLEX_REALwith CCS packing). The complex values are stored as &lt;R&gt;,&lt;I&gt;,&lt;R&gt;,&lt;I&gt;,... and adding a stride will separate real and imaginary part of each complex number.&lt;BR /&gt;&lt;BR /&gt;The result may really be stored as complex numbers, [RI],[RI],... so that adding a stride will keep the complex numbers. For this one should use CCE storage for conjugate-even domain, by calling &lt;BR /&gt;DftiSetValue(hand,DFTI_CONJUGATE_EVEN_STORAGE,DFTI_COMPLEX_COMPLEX) and using complex Y_out(17).&lt;BR /&gt;&lt;BR /&gt;In the case stride is 1 the two abovementioned layouts, i.e. CCS andCCE, are equivalent.&lt;BR /&gt;&lt;BR /&gt;Internally the actual type of the data arguments in DftiComputeForward is disregarded (starting with MKL 10.1 Update 1) and the data is laid out according to the configuration of the descriptor, so it should make no difference whether Y_out is declared ascomplex orreal array.&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;Dima&lt;BR /&gt;&lt;/I&gt;&lt;/R&gt;&lt;/I&gt;&lt;/R&gt;</description>
    <pubDate>Fri, 08 May 2009 03:24:42 GMT</pubDate>
    <dc:creator>Dmitry_B_Intel</dc:creator>
    <dc:date>2009-05-08T03:24:42Z</dc:date>
    <item>
      <title>FFT examples wrong?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FFT-examples-wrong/m-p/908178#M11889</link>
      <description>Is there not a problem in the Fortran FFT code examples:&lt;BR /&gt;&lt;BR /&gt;! Fortran example.&lt;BR /&gt;! 1D complex to complex, and real to conjugate-even&lt;BR /&gt;Use MKL_DFTI&lt;BR /&gt;Complex :: X_in(32)&lt;BR /&gt;Complex :: X_out(32)&lt;BR /&gt;Real :: Y_in(32)&lt;BR /&gt;&lt;STRONG&gt;Real &lt;/STRONG&gt;:: Y_out(34)&lt;BR /&gt;type(DFTI_DESCRIPTOR), POINTER :: My_Desc1_Handle, My_Desc2_Handle&lt;BR /&gt;Integer :: Status&lt;BR /&gt;...put input data into X_in(1),...,X_in(32); Y_in(1),...,Y_in(32)&lt;BR /&gt;! Perform a complex to complex transform&lt;BR /&gt;Status = DftiCreateDescriptor( My_Desc1_Handle, DFTI_SINGLE,&lt;BR /&gt;DFTI_COMPLEX, 1, 32 )&lt;BR /&gt;Status = DftiSetValue( My_Desc1_Handle, DFTI_PLACEMENT, DFTI_NOT_INPLACE)&lt;BR /&gt;Status = DftiCommitDescriptor( My_Desc1_Handle )&lt;BR /&gt;Status = DftiComputeForward( My_Desc1_Handle, X_in, X_out )&lt;BR /&gt;Status = DftiFreeDescriptor(My_Desc1_Handle)&lt;BR /&gt;! result is given by {X_out(1),X_out(2),...,X_out(32)}&lt;BR /&gt;&lt;STRONG&gt;! Perform a real to complex conjugate-even transform&lt;/STRONG&gt;&lt;BR /&gt;Status = DftiCreateDescriptor(My_Desc2_Handle, DFTI_SINGLE,&lt;BR /&gt;DFTI_REAL, 1, 32)&lt;BR /&gt;Status = DftiSetValue( My_Desc2_Handle, DFTI_PLACEMENT, DFTI_NOT_INPLACE)&lt;BR /&gt;Status = DftiCommitDescriptor(My_Desc2_Handle)&lt;BR /&gt;Status = DftiComputeForward(My_Desc2_Handle, Y_in, &lt;STRONG&gt;Y_out&lt;/STRONG&gt;)&lt;BR /&gt;Status = DftiFreeDescriptor(My_Desc2_Handle)&lt;BR /&gt;! result is given by Y_out in CCS format.&lt;BR /&gt;&lt;BR /&gt;Y_out is complex, yes?</description>
      <pubDate>Thu, 07 May 2009 22:49:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FFT-examples-wrong/m-p/908178#M11889</guid>
      <dc:creator>scrognoid</dc:creator>
      <dc:date>2009-05-07T22:49:59Z</dc:date>
    </item>
    <item>
      <title>Re: FFT examples wrong?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FFT-examples-wrong/m-p/908179#M11890</link>
      <description>&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
&lt;BR /&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;In this real-to-complex transform the resulting data, which is32/2+1=17 complex-valued items, is laid out to 34 real-valued items of array Y_out, according to the default layout for the conjugate-even domain (which is DFTI_COMPLEX_REALwith CCS packing). The complex values are stored as &lt;R&gt;,&lt;I&gt;,&lt;R&gt;,&lt;I&gt;,... and adding a stride will separate real and imaginary part of each complex number.&lt;BR /&gt;&lt;BR /&gt;The result may really be stored as complex numbers, [RI],[RI],... so that adding a stride will keep the complex numbers. For this one should use CCE storage for conjugate-even domain, by calling &lt;BR /&gt;DftiSetValue(hand,DFTI_CONJUGATE_EVEN_STORAGE,DFTI_COMPLEX_COMPLEX) and using complex Y_out(17).&lt;BR /&gt;&lt;BR /&gt;In the case stride is 1 the two abovementioned layouts, i.e. CCS andCCE, are equivalent.&lt;BR /&gt;&lt;BR /&gt;Internally the actual type of the data arguments in DftiComputeForward is disregarded (starting with MKL 10.1 Update 1) and the data is laid out according to the configuration of the descriptor, so it should make no difference whether Y_out is declared ascomplex orreal array.&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;Dima&lt;BR /&gt;&lt;/I&gt;&lt;/R&gt;&lt;/I&gt;&lt;/R&gt;</description>
      <pubDate>Fri, 08 May 2009 03:24:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FFT-examples-wrong/m-p/908179#M11890</guid>
      <dc:creator>Dmitry_B_Intel</dc:creator>
      <dc:date>2009-05-08T03:24:42Z</dc:date>
    </item>
    <item>
      <title>Re: FFT examples wrong?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FFT-examples-wrong/m-p/908180#M11891</link>
      <description>&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
So, for me, it sounds like the example will work and I can simply change Y-out to complex(17), or if I want to spell it out for clarity, I would add the line you indicate:&lt;BR /&gt;&lt;BR /&gt;! Fortran example.&lt;BR /&gt;! 1D   &lt;STRONG&gt;real to conjugate-even&lt;/STRONG&gt;&lt;BR /&gt;Use MKL_DFTI&lt;BR /&gt;Real:: Y_in(32)&lt;BR /&gt;C&lt;STRONG&gt;omplex:: Y_out(17)&lt;/STRONG&gt;&lt;BR /&gt;type(DFTI_DESCRIPTOR), POINTER :: My_Desc1_Handle, My_Desc2_Handle&lt;BR /&gt;Integer :: Status&lt;BR /&gt;! Perform a real to complex conjugate-even transform&lt;BR /&gt;Status = DftiCreateDescriptor(My_Desc2_Handle, DFTI_SINGLE,&lt;BR /&gt;DFTI_REAL, 1, 32)&lt;BR /&gt;Status = DftiSetValue( My_Desc2_Handle, DFTI_PLACEMENT, DFTI_NOT_INPLACE)&lt;BR /&gt;&lt;STRONG&gt;Status = DftiSetValue(My_Desc2_Handle,DFTI_CONJUGATE_EVEN_STORAGE,DFTI_COMPLEX_COMPLEX)&lt;/STRONG&gt;&lt;BR /&gt;Status = DftiCommitDescriptor(My_Desc2_Handle)&lt;BR /&gt;Status = DftiComputeForward(My_Desc2_Handle, Y_in, &lt;STRONG&gt;Y_out&lt;/STRONG&gt;)&lt;BR /&gt;Status = DftiFreeDescriptor(My_Desc2_Handle)&lt;BR /&gt;! result is given by Y_out in &lt;STRONG&gt;CCE &lt;/STRONG&gt;format.&lt;BR /&gt;&lt;BR /&gt;Do I have that right?&lt;BR /&gt;</description>
      <pubDate>Fri, 08 May 2009 16:02:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FFT-examples-wrong/m-p/908180#M11891</guid>
      <dc:creator>scrognoid</dc:creator>
      <dc:date>2009-05-08T16:02:21Z</dc:date>
    </item>
    <item>
      <title>Re: FFT examples wrong?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FFT-examples-wrong/m-p/908181#M11892</link>
      <description>&lt;DIV style="margin:0px;"&gt;Yes, that's right.&lt;/DIV&gt;
&lt;BR /&gt;</description>
      <pubDate>Tue, 12 May 2009 01:36:55 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FFT-examples-wrong/m-p/908181#M11892</guid>
      <dc:creator>Dmitry_B_Intel</dc:creator>
      <dc:date>2009-05-12T01:36:55Z</dc:date>
    </item>
  </channel>
</rss>

