<?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: Using zgeev and complex matrices in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-zgeev-and-complex-matrices/m-p/857916#M7207</link>
    <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="width: 100%; margin-top: 5px;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/367365"&gt;tim18&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;
&lt;P&gt;According to my understanding, C99 _Complex is supported by MKL, but not C++ std::complex. I couldn't see how you were using the MKL headers or how you invoked icpc.&lt;/P&gt;
&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Sure, I didn't post that part of the program but is included... in the include section: #include &lt;MKL.H&gt;&lt;/MKL.H&gt;&lt;/P&gt;</description>
    <pubDate>Thu, 30 Oct 2008 01:36:55 GMT</pubDate>
    <dc:creator>gatts</dc:creator>
    <dc:date>2008-10-30T01:36:55Z</dc:date>
    <item>
      <title>Using zgeev and complex matrices</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-zgeev-and-complex-matrices/m-p/857914#M7205</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;Well after a "rough landing" with dsyevr, I moved to zgeev, to get the eigenvalues and eigenvectors of a matrix, for this I use the following commands...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;
&lt;PRE&gt;[cpp]&lt;BR /&gt;#include &lt;COMPLEX&gt;&lt;BR /&gt;&lt;BR /&gt;//Input values for zgeev&lt;BR /&gt;  char jobvl= 'V'; &lt;BR /&gt;  char jobvr= 'N';&lt;BR /&gt;&lt;BR /&gt;  int n = 500;&lt;BR /&gt;  int n2 = 2*n;&lt;BR /&gt;&lt;BR /&gt;  int lda = n;&lt;BR /&gt;&lt;BR /&gt;  complex&lt;DOUBLE&gt; *H = new complex&lt;DOUBLE&gt;[lda*n];&lt;BR /&gt;&lt;BR /&gt;  int ldvl = n;&lt;BR /&gt;  int ldvr = n;&lt;BR /&gt;&lt;BR /&gt;  int lwork = 2*n-1 ;&lt;BR /&gt;&lt;BR /&gt;  complex&lt;DOUBLE&gt; *work = new complex&lt;DOUBLE&gt;[lwork];&lt;BR /&gt; &lt;BR /&gt;  double *rwork = new double[n2];&lt;BR /&gt;&lt;BR /&gt;  //Output values of zgeev&lt;BR /&gt;&lt;BR /&gt; double *wr = new double&lt;N&gt;;&lt;BR /&gt; double *wi = new double&lt;N&gt;;&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt; complex&lt;DOUBLE&gt; *w = new complex&lt;DOUBLE&gt;&lt;N&gt;;&lt;BR /&gt;&lt;BR /&gt; complex&lt;DOUBLE&gt; *vl = new complex&lt;DOUBLE&gt;[ldvl*n];&lt;BR /&gt; complex&lt;DOUBLE&gt; *vr = new complex&lt;DOUBLE&gt;[ldvr*n];&lt;BR /&gt;&lt;BR /&gt; zgeev(&amp;amp;jobvl, &amp;amp;jobvr, &amp;amp;n, H, &amp;amp;lda, w, vl, &amp;amp;ldvl, vr, &amp;amp;ldvr, work, &amp;amp;lwork, rwork, &amp;amp;info);&lt;BR /&gt;[/cpp]&lt;/DOUBLE&gt;&lt;/DOUBLE&gt;&lt;/DOUBLE&gt;&lt;/DOUBLE&gt;&lt;/N&gt;&lt;/DOUBLE&gt;&lt;/DOUBLE&gt;&lt;/N&gt;&lt;/N&gt;&lt;/DOUBLE&gt;&lt;/DOUBLE&gt;&lt;/DOUBLE&gt;&lt;/DOUBLE&gt;&lt;/COMPLEX&gt;&lt;/PRE&gt;
&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;But it was strange beacuse send me this error, when compiling with the instruction "icc file.cpp -lmkl_em64t -openmp "&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; error: argument of type "std::complex&lt;DOUBLE&gt; *" is incompatible with parameter of type "MKL_Complex16 *"&lt;BR /&gt; zgeev(&amp;amp;jobvl, &amp;amp;jobvr, &amp;amp;n, H, &amp;amp;lda, w, vl, &amp;amp;ldvl, vr, &amp;amp;ldvr, work, &amp;amp;lwork, rwork, &amp;amp;info);&lt;/DOUBLE&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;For H, work, vl,vr, in summary all the arrays of the system, wich I was expecting to work smoothly... I don't know what's happening, "googled" the error but didn't find anything useful... so i wish to ask how to declare the matrix of the system... &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;thanks in advances...&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 29 Oct 2008 04:34:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-zgeev-and-complex-matrices/m-p/857914#M7205</guid>
      <dc:creator>gatts</dc:creator>
      <dc:date>2008-10-29T04:34:34Z</dc:date>
    </item>
    <item>
      <title>Re: Using zgeev and complex matrices</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-zgeev-and-complex-matrices/m-p/857915#M7206</link>
      <description>&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
&lt;P&gt;According to my understanding, C99 _Complex is supported by MKL, but not C++ std::complex. I couldn't see how you were using the MKL headers or how you invoked icpc.&lt;/P&gt;</description>
      <pubDate>Wed, 29 Oct 2008 12:48:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-zgeev-and-complex-matrices/m-p/857915#M7206</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2008-10-29T12:48:04Z</dc:date>
    </item>
    <item>
      <title>Re: Using zgeev and complex matrices</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-zgeev-and-complex-matrices/m-p/857916#M7207</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="width: 100%; margin-top: 5px;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/367365"&gt;tim18&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;
&lt;P&gt;According to my understanding, C99 _Complex is supported by MKL, but not C++ std::complex. I couldn't see how you were using the MKL headers or how you invoked icpc.&lt;/P&gt;
&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Sure, I didn't post that part of the program but is included... in the include section: #include &lt;MKL.H&gt;&lt;/MKL.H&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 30 Oct 2008 01:36:55 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-zgeev-and-complex-matrices/m-p/857916#M7207</guid>
      <dc:creator>gatts</dc:creator>
      <dc:date>2008-10-30T01:36:55Z</dc:date>
    </item>
    <item>
      <title>Re: Using zgeev and complex matrices</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-zgeev-and-complex-matrices/m-p/857917#M7208</link>
      <description>&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
&lt;P&gt;Some parameters of zgeev should be MKL_Complex* type. See below citations from the header files.&lt;/P&gt;
&lt;P&gt;void zgeev( char *jobvl, char *jobvr, MKL_INT *n, MKL_Complex16 *a, MKL_INT *lda, MKL_Complex16 *w, MKL_Complex16 *vl, MKL_INT *ldvl, MKL_Complex16 *vr, MKL_INT *ldvr, MKL_Complex16 *work, MKL_INT *lwork, double *rwork, MKL_INT *info );&lt;/P&gt;
&lt;P&gt;/* Complex type (double precision). */&lt;BR /&gt;#ifndef MKL_Complex16&lt;BR /&gt;typedef&lt;BR /&gt;struct _MKL_Complex16 {&lt;BR /&gt; double real;&lt;BR /&gt; double imag;&lt;BR /&gt;} MKL_Complex16;&lt;BR /&gt;#endif&lt;/P&gt;</description>
      <pubDate>Thu, 30 Oct 2008 09:57:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-zgeev-and-complex-matrices/m-p/857917#M7208</guid>
      <dc:creator>Andrey_Bespalov</dc:creator>
      <dc:date>2008-10-30T09:57:35Z</dc:date>
    </item>
  </channel>
</rss>

