<?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 one update: in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/help-Data-type-in-zheev-c-example/m-p/1136630#M26055</link>
    <description>&lt;P&gt;one update:&lt;/P&gt;

&lt;P&gt;I have replace the initialization part with&lt;BR /&gt;
	a[0]={9.14,0.00};&lt;BR /&gt;
	a[1]={-4.37,9.22};&lt;BR /&gt;
	...&lt;BR /&gt;
	The code is appended.&lt;BR /&gt;
	&lt;BR /&gt;
	The error persists for each declearation.&lt;BR /&gt;
	icc zheev_test00.cpp -mkl -o test&lt;BR /&gt;
	zheev_test00.cpp(93): error: expected an expression&lt;BR /&gt;
	a[0]={ 9.14, 0.00};&lt;BR /&gt;
	^&lt;BR /&gt;
	&lt;BR /&gt;
	zheev_test00.cpp(94): error: expected an expression&lt;BR /&gt;
	a[1]={-4.37, 9.22};&lt;BR /&gt;
	^&lt;BR /&gt;
	&lt;BR /&gt;
	zheev_test00.cpp(95): error: expected an expression&lt;BR /&gt;
	a[2]={-1.98, 1.72};&lt;BR /&gt;
	^&lt;BR /&gt;
	&lt;BR /&gt;
	Thanks,&lt;BR /&gt;
	Yue&lt;BR /&gt;
	&lt;BR /&gt;
	&lt;BR /&gt;
	{\code}&lt;BR /&gt;
	#include &amp;lt;stdlib.h&amp;gt;&lt;BR /&gt;
	#include &amp;lt;stdio.h&amp;gt;&lt;BR /&gt;
	&lt;BR /&gt;
	/* Complex datatype */&lt;BR /&gt;
	struct _dcomplex { double re, im; };&lt;BR /&gt;
	typedef struct _dcomplex dcomplex;&lt;BR /&gt;
	&lt;BR /&gt;
	/* ZHEEV prototype */&lt;BR /&gt;
	extern "C" {&lt;BR /&gt;
	void zheev( char* jobz, char* uplo, int* n, dcomplex* a, int* lda,&lt;BR /&gt;
	double* w, dcomplex* work, int* lwork, double* rwork, int* info );&lt;BR /&gt;
	}&lt;BR /&gt;
	/* Auxiliary routines prototypes */&lt;BR /&gt;
	extern void print_matrix( char* desc, int m, int n, dcomplex* a, int lda );&lt;BR /&gt;
	extern void print_rmatrix( char* desc, int m, int n, double* a, int lda );&lt;BR /&gt;
	&lt;BR /&gt;
	/* Parameters */&lt;BR /&gt;
	#define N 4&lt;BR /&gt;
	#define LDA N&lt;BR /&gt;
	&lt;BR /&gt;
	/* Main program */&lt;BR /&gt;
	int main() {&lt;BR /&gt;
	/* Locals */&lt;BR /&gt;
	int n = N, lda = LDA, info, lwork;&lt;BR /&gt;
	dcomplex wkopt;&lt;BR /&gt;
	dcomplex* work;&lt;BR /&gt;
	/* Local arrays */&lt;BR /&gt;
	/* rwork dimension should be at least max(1,3*n-2) */&lt;BR /&gt;
	double w&lt;N&gt;, rwork[3*N-2];&lt;BR /&gt;
	/*&lt;BR /&gt;
	dcomplex a[LDA*N] = {&lt;BR /&gt;
	{ 9.14, 0.00}, {-4.37, 9.22}, {-1.98, 1.72}, {-8.96, 9.50},&lt;BR /&gt;
	{ 0.00, 0.00}, {-3.35, 0.00}, { 2.25, 9.51}, { 2.57, -2.40},&lt;BR /&gt;
	{ 0.00, 0.00}, { 0.00, 0.00}, {-4.82, 0.00}, {-3.24, -2.04},&lt;BR /&gt;
	{ 0.00, 0.00}, { 0.00, 0.00}, { 0.00, 0.00}, { 8.44, 0.00}&lt;BR /&gt;
	};&lt;BR /&gt;
	*/&lt;BR /&gt;
	dcomplex a[LDA*N];&lt;BR /&gt;
	a[0]={ 9.14, 0.00};&lt;BR /&gt;
	a[1]={-4.37, 9.22};&lt;BR /&gt;
	a[2]={-1.98, 1.72};&lt;BR /&gt;
	a[3]={-8.96, 9.50};&lt;BR /&gt;
	a[4]={ 0.00, 0.00};&lt;BR /&gt;
	a[5]={-3.35, 0.00};&lt;BR /&gt;
	a[6]={ 2.25, 9.51};&lt;BR /&gt;
	a[7]={ 2.57, -2.40};&lt;BR /&gt;
	a[8]={ 0.00, 0.00};&lt;BR /&gt;
	a[9]={ 0.00, 0.00};&lt;BR /&gt;
	a[10]={-4.82, 0.00};&lt;BR /&gt;
	a[11]={-3.24, -2.04};&lt;BR /&gt;
	a[12]={ 0.00, 0.00};&lt;BR /&gt;
	a[13]={ 0.00, 0.00};&lt;BR /&gt;
	a[14]={ 0.00, 0.00};&lt;BR /&gt;
	a[15]={ 8.44, 0.00};&lt;BR /&gt;
	/* Executable statements */&lt;BR /&gt;
	printf( " ZHEEV Example Program Results\n" );&lt;BR /&gt;
	/* Query and allocate the optimal workspace */&lt;BR /&gt;
	lwork = -1;&lt;BR /&gt;
	zheev( "Vectors", "Lower", &amp;amp;n, a, &amp;amp;lda, w, &amp;amp;wkopt, &amp;amp;lwork, rwork, &amp;amp;info );&lt;BR /&gt;
	lwork = (int)wkopt.re;&lt;BR /&gt;
	work = (dcomplex*)malloc( lwork*sizeof(dcomplex) );&lt;BR /&gt;
	/* Solve eigenproblem */&lt;BR /&gt;
	zheev( "Vectors", "Lower", &amp;amp;n, a, &amp;amp;lda, w, work, &amp;amp;lwork, rwork, &amp;amp;info );&lt;BR /&gt;
	/* Check for convergence */&lt;BR /&gt;
	if( info &amp;gt; 0 ) {&lt;BR /&gt;
	printf( "The algorithm failed to compute eigenvalues.\n" );&lt;BR /&gt;
	exit( 1 );&lt;BR /&gt;
	}&lt;BR /&gt;
	/* Print eigenvalues */&lt;BR /&gt;
	print_rmatrix( "Eigenvalues", 1, n, w, 1 );&lt;BR /&gt;
	/* Print eigenvectors */&lt;BR /&gt;
	print_matrix( "Eigenvectors (stored columnwise)", n, n, a, lda );&lt;BR /&gt;
	/* Free workspace */&lt;BR /&gt;
	free( (void*)work );&lt;BR /&gt;
	exit( 0 );&lt;BR /&gt;
	} /* End of ZHEEV Example */&lt;BR /&gt;
	&lt;BR /&gt;
	/* Auxiliary routine: printing a matrix */&lt;BR /&gt;
	void print_matrix( char* desc, int m, int n, dcomplex* a, int lda ) {&lt;BR /&gt;
	int i, j;&lt;BR /&gt;
	printf( "\n %s\n", desc );&lt;BR /&gt;
	for( i = 0; i &amp;lt; m; i++ ) {&lt;BR /&gt;
	for( j = 0; j &amp;lt; n; j++ )&lt;BR /&gt;
	printf( " (%6.2f,%6.2f)", a[i+j*lda].re, a[i+j*lda].im );&lt;BR /&gt;
	printf( "\n" );&lt;BR /&gt;
	}&lt;BR /&gt;
	}&lt;BR /&gt;
	&lt;BR /&gt;
	/* Auxiliary routine: printing a real matrix */&lt;BR /&gt;
	void print_rmatrix( char* desc, int m, int n, double* a, int lda ) {&lt;BR /&gt;
	int i, j;&lt;BR /&gt;
	printf( "\n %s\n", desc );&lt;BR /&gt;
	for( i = 0; i &amp;lt; m; i++ ) {&lt;BR /&gt;
	for( j = 0; j &amp;lt; n; j++ ) printf( " %6.2f", a[i+j*lda] );&lt;BR /&gt;
	printf( "\n" );&lt;BR /&gt;
	}&lt;BR /&gt;
	}&lt;BR /&gt;
	{\code} &lt;SPAN class="dbtn" id="CH_btn1042128"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/N&gt;&lt;/P&gt;</description>
    <pubDate>Fri, 09 Feb 2018 10:29:29 GMT</pubDate>
    <dc:creator>Shi__Yue</dc:creator>
    <dc:date>2018-02-09T10:29:29Z</dc:date>
    <item>
      <title>[help]Data type in zheev.c example.</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/help-Data-type-in-zheev-c-example/m-p/1136629#M26054</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;In the example of&lt;/P&gt;

&lt;P&gt;&lt;A href="https://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/mkl_lapack_examples/zheev_ex.c.htm" target="_blank"&gt;https://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/mkl_lapack_examples/zheev_ex.c.htm&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;The to-be-diagonalized matrix is declared to be a dcomplex type&lt;/P&gt;

&lt;P&gt;(&lt;FONT style="font-family: monospace;" face="monospace"&gt;&lt;FONT color="#008000"&gt;struct&lt;/FONT&gt;&amp;nbsp;_dcomplex { &lt;FONT color="#008000"&gt;double&lt;/FONT&gt;&amp;nbsp;re, im; };&lt;BR /&gt;
	&lt;FONT color="#008000"&gt;typedef&lt;/FONT&gt;&amp;nbsp;&lt;FONT color="#008000"&gt;struct&lt;/FONT&gt;&amp;nbsp;_dcomplex dcomplex;&lt;/FONT&gt;)&lt;/P&gt;

&lt;P&gt;and initialized using:&lt;/P&gt;

&lt;P&gt;&lt;FONT style="font-family: monospace;" face="monospace"&gt;dcomplex a[LDA*N] = {&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;{ &lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;9.14&lt;/FONT&gt;&lt;/SPAN&gt;,&amp;nbsp;&amp;nbsp;&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;0.00&lt;/FONT&gt;&lt;/SPAN&gt;}, {-&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;4.37&lt;/FONT&gt;&lt;/SPAN&gt;,&amp;nbsp;&amp;nbsp;&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;9.22&lt;/FONT&gt;&lt;/SPAN&gt;}, {-&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;1.98&lt;/FONT&gt;&lt;/SPAN&gt;,&amp;nbsp;&amp;nbsp;&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;1.72&lt;/FONT&gt;&lt;/SPAN&gt;}, {-&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;8.96&lt;/FONT&gt;&lt;/SPAN&gt;,&amp;nbsp;&amp;nbsp;&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;9.50&lt;/FONT&gt;&lt;/SPAN&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;{ &lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;0.00&lt;/FONT&gt;&lt;/SPAN&gt;,&amp;nbsp;&amp;nbsp;&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;0.00&lt;/FONT&gt;&lt;/SPAN&gt;}, {-&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;3.35&lt;/FONT&gt;&lt;/SPAN&gt;,&amp;nbsp;&amp;nbsp;&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;0.00&lt;/FONT&gt;&lt;/SPAN&gt;}, { &lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;2.25&lt;/FONT&gt;&lt;/SPAN&gt;,&amp;nbsp;&amp;nbsp;&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;9.51&lt;/FONT&gt;&lt;/SPAN&gt;}, { &lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;2.57&lt;/FONT&gt;&lt;/SPAN&gt;, -&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;2.40&lt;/FONT&gt;&lt;/SPAN&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;{ &lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;0.00&lt;/FONT&gt;&lt;/SPAN&gt;,&amp;nbsp;&amp;nbsp;&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;0.00&lt;/FONT&gt;&lt;/SPAN&gt;}, { &lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;0.00&lt;/FONT&gt;&lt;/SPAN&gt;,&amp;nbsp;&amp;nbsp;&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;0.00&lt;/FONT&gt;&lt;/SPAN&gt;}, {-&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;4.82&lt;/FONT&gt;&lt;/SPAN&gt;,&amp;nbsp;&amp;nbsp;&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;0.00&lt;/FONT&gt;&lt;/SPAN&gt;}, {-&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;3.24&lt;/FONT&gt;&lt;/SPAN&gt;, -&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;2.04&lt;/FONT&gt;&lt;/SPAN&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;{ &lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;0.00&lt;/FONT&gt;&lt;/SPAN&gt;,&amp;nbsp;&amp;nbsp;&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;0.00&lt;/FONT&gt;&lt;/SPAN&gt;}, { &lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;0.00&lt;/FONT&gt;&lt;/SPAN&gt;,&amp;nbsp;&amp;nbsp;&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;0.00&lt;/FONT&gt;&lt;/SPAN&gt;}, { &lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;0.00&lt;/FONT&gt;&lt;/SPAN&gt;,&amp;nbsp;&amp;nbsp;&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;0.00&lt;/FONT&gt;&lt;/SPAN&gt;}, { &lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;8.44&lt;/FONT&gt;&lt;/SPAN&gt;,&amp;nbsp;&amp;nbsp;&lt;SPAN class="hcp1"&gt;&lt;FONT color="#8080FF"&gt;0.00&lt;/FONT&gt;&lt;/SPAN&gt;}&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;/FONT&gt;&lt;/P&gt;

&lt;P&gt;When I try to supply my own matrix elements to a[LDA*N] using&lt;/P&gt;

&lt;P&gt;dcomplex a[LDA*N];&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i=0;i&amp;lt;N;i++) {&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int j=0;j&amp;lt;LDA;j++) {&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int k=j+i*4*N;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&lt;K&gt; = {std::real(hamiltonian&lt;I&gt;&lt;J&gt;),std::imag(hamiltonian&lt;I&gt;&lt;J&gt;)};&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }//j&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }//i&lt;/J&gt;&lt;/I&gt;&lt;/J&gt;&lt;/I&gt;&lt;/K&gt;&lt;/P&gt;

&lt;P&gt;It complains:&lt;/P&gt;

&lt;P&gt;error: expected an expression&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&lt;K&gt; = {std::real(hamiltonian&lt;I&gt;&lt;J&gt;),std::imag(hamiltonian&lt;I&gt;&lt;J&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ^&lt;/J&gt;&lt;/I&gt;&lt;/J&gt;&lt;/I&gt;&lt;/K&gt;&lt;/P&gt;

&lt;P&gt;&lt;BR /&gt;
	when I tried to icc the code using mkl link.&lt;/P&gt;

&lt;P&gt;I guess the question is: how to initialize/access members in a[LDA*N] in a more free way.&lt;/P&gt;

&lt;P&gt;As you see I mostly use vectors to store my data. So I am not familiar with other data types.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Thanks a lot,&lt;/P&gt;

&lt;P&gt;Yue&lt;/P&gt;</description>
      <pubDate>Fri, 09 Feb 2018 08:58:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/help-Data-type-in-zheev-c-example/m-p/1136629#M26054</guid>
      <dc:creator>Shi__Yue</dc:creator>
      <dc:date>2018-02-09T08:58:58Z</dc:date>
    </item>
    <item>
      <title>one update:</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/help-Data-type-in-zheev-c-example/m-p/1136630#M26055</link>
      <description>&lt;P&gt;one update:&lt;/P&gt;

&lt;P&gt;I have replace the initialization part with&lt;BR /&gt;
	a[0]={9.14,0.00};&lt;BR /&gt;
	a[1]={-4.37,9.22};&lt;BR /&gt;
	...&lt;BR /&gt;
	The code is appended.&lt;BR /&gt;
	&lt;BR /&gt;
	The error persists for each declearation.&lt;BR /&gt;
	icc zheev_test00.cpp -mkl -o test&lt;BR /&gt;
	zheev_test00.cpp(93): error: expected an expression&lt;BR /&gt;
	a[0]={ 9.14, 0.00};&lt;BR /&gt;
	^&lt;BR /&gt;
	&lt;BR /&gt;
	zheev_test00.cpp(94): error: expected an expression&lt;BR /&gt;
	a[1]={-4.37, 9.22};&lt;BR /&gt;
	^&lt;BR /&gt;
	&lt;BR /&gt;
	zheev_test00.cpp(95): error: expected an expression&lt;BR /&gt;
	a[2]={-1.98, 1.72};&lt;BR /&gt;
	^&lt;BR /&gt;
	&lt;BR /&gt;
	Thanks,&lt;BR /&gt;
	Yue&lt;BR /&gt;
	&lt;BR /&gt;
	&lt;BR /&gt;
	{\code}&lt;BR /&gt;
	#include &amp;lt;stdlib.h&amp;gt;&lt;BR /&gt;
	#include &amp;lt;stdio.h&amp;gt;&lt;BR /&gt;
	&lt;BR /&gt;
	/* Complex datatype */&lt;BR /&gt;
	struct _dcomplex { double re, im; };&lt;BR /&gt;
	typedef struct _dcomplex dcomplex;&lt;BR /&gt;
	&lt;BR /&gt;
	/* ZHEEV prototype */&lt;BR /&gt;
	extern "C" {&lt;BR /&gt;
	void zheev( char* jobz, char* uplo, int* n, dcomplex* a, int* lda,&lt;BR /&gt;
	double* w, dcomplex* work, int* lwork, double* rwork, int* info );&lt;BR /&gt;
	}&lt;BR /&gt;
	/* Auxiliary routines prototypes */&lt;BR /&gt;
	extern void print_matrix( char* desc, int m, int n, dcomplex* a, int lda );&lt;BR /&gt;
	extern void print_rmatrix( char* desc, int m, int n, double* a, int lda );&lt;BR /&gt;
	&lt;BR /&gt;
	/* Parameters */&lt;BR /&gt;
	#define N 4&lt;BR /&gt;
	#define LDA N&lt;BR /&gt;
	&lt;BR /&gt;
	/* Main program */&lt;BR /&gt;
	int main() {&lt;BR /&gt;
	/* Locals */&lt;BR /&gt;
	int n = N, lda = LDA, info, lwork;&lt;BR /&gt;
	dcomplex wkopt;&lt;BR /&gt;
	dcomplex* work;&lt;BR /&gt;
	/* Local arrays */&lt;BR /&gt;
	/* rwork dimension should be at least max(1,3*n-2) */&lt;BR /&gt;
	double w&lt;N&gt;, rwork[3*N-2];&lt;BR /&gt;
	/*&lt;BR /&gt;
	dcomplex a[LDA*N] = {&lt;BR /&gt;
	{ 9.14, 0.00}, {-4.37, 9.22}, {-1.98, 1.72}, {-8.96, 9.50},&lt;BR /&gt;
	{ 0.00, 0.00}, {-3.35, 0.00}, { 2.25, 9.51}, { 2.57, -2.40},&lt;BR /&gt;
	{ 0.00, 0.00}, { 0.00, 0.00}, {-4.82, 0.00}, {-3.24, -2.04},&lt;BR /&gt;
	{ 0.00, 0.00}, { 0.00, 0.00}, { 0.00, 0.00}, { 8.44, 0.00}&lt;BR /&gt;
	};&lt;BR /&gt;
	*/&lt;BR /&gt;
	dcomplex a[LDA*N];&lt;BR /&gt;
	a[0]={ 9.14, 0.00};&lt;BR /&gt;
	a[1]={-4.37, 9.22};&lt;BR /&gt;
	a[2]={-1.98, 1.72};&lt;BR /&gt;
	a[3]={-8.96, 9.50};&lt;BR /&gt;
	a[4]={ 0.00, 0.00};&lt;BR /&gt;
	a[5]={-3.35, 0.00};&lt;BR /&gt;
	a[6]={ 2.25, 9.51};&lt;BR /&gt;
	a[7]={ 2.57, -2.40};&lt;BR /&gt;
	a[8]={ 0.00, 0.00};&lt;BR /&gt;
	a[9]={ 0.00, 0.00};&lt;BR /&gt;
	a[10]={-4.82, 0.00};&lt;BR /&gt;
	a[11]={-3.24, -2.04};&lt;BR /&gt;
	a[12]={ 0.00, 0.00};&lt;BR /&gt;
	a[13]={ 0.00, 0.00};&lt;BR /&gt;
	a[14]={ 0.00, 0.00};&lt;BR /&gt;
	a[15]={ 8.44, 0.00};&lt;BR /&gt;
	/* Executable statements */&lt;BR /&gt;
	printf( " ZHEEV Example Program Results\n" );&lt;BR /&gt;
	/* Query and allocate the optimal workspace */&lt;BR /&gt;
	lwork = -1;&lt;BR /&gt;
	zheev( "Vectors", "Lower", &amp;amp;n, a, &amp;amp;lda, w, &amp;amp;wkopt, &amp;amp;lwork, rwork, &amp;amp;info );&lt;BR /&gt;
	lwork = (int)wkopt.re;&lt;BR /&gt;
	work = (dcomplex*)malloc( lwork*sizeof(dcomplex) );&lt;BR /&gt;
	/* Solve eigenproblem */&lt;BR /&gt;
	zheev( "Vectors", "Lower", &amp;amp;n, a, &amp;amp;lda, w, work, &amp;amp;lwork, rwork, &amp;amp;info );&lt;BR /&gt;
	/* Check for convergence */&lt;BR /&gt;
	if( info &amp;gt; 0 ) {&lt;BR /&gt;
	printf( "The algorithm failed to compute eigenvalues.\n" );&lt;BR /&gt;
	exit( 1 );&lt;BR /&gt;
	}&lt;BR /&gt;
	/* Print eigenvalues */&lt;BR /&gt;
	print_rmatrix( "Eigenvalues", 1, n, w, 1 );&lt;BR /&gt;
	/* Print eigenvectors */&lt;BR /&gt;
	print_matrix( "Eigenvectors (stored columnwise)", n, n, a, lda );&lt;BR /&gt;
	/* Free workspace */&lt;BR /&gt;
	free( (void*)work );&lt;BR /&gt;
	exit( 0 );&lt;BR /&gt;
	} /* End of ZHEEV Example */&lt;BR /&gt;
	&lt;BR /&gt;
	/* Auxiliary routine: printing a matrix */&lt;BR /&gt;
	void print_matrix( char* desc, int m, int n, dcomplex* a, int lda ) {&lt;BR /&gt;
	int i, j;&lt;BR /&gt;
	printf( "\n %s\n", desc );&lt;BR /&gt;
	for( i = 0; i &amp;lt; m; i++ ) {&lt;BR /&gt;
	for( j = 0; j &amp;lt; n; j++ )&lt;BR /&gt;
	printf( " (%6.2f,%6.2f)", a[i+j*lda].re, a[i+j*lda].im );&lt;BR /&gt;
	printf( "\n" );&lt;BR /&gt;
	}&lt;BR /&gt;
	}&lt;BR /&gt;
	&lt;BR /&gt;
	/* Auxiliary routine: printing a real matrix */&lt;BR /&gt;
	void print_rmatrix( char* desc, int m, int n, double* a, int lda ) {&lt;BR /&gt;
	int i, j;&lt;BR /&gt;
	printf( "\n %s\n", desc );&lt;BR /&gt;
	for( i = 0; i &amp;lt; m; i++ ) {&lt;BR /&gt;
	for( j = 0; j &amp;lt; n; j++ ) printf( " %6.2f", a[i+j*lda] );&lt;BR /&gt;
	printf( "\n" );&lt;BR /&gt;
	}&lt;BR /&gt;
	}&lt;BR /&gt;
	{\code} &lt;SPAN class="dbtn" id="CH_btn1042128"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/N&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 09 Feb 2018 10:29:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/help-Data-type-in-zheev-c-example/m-p/1136630#M26055</guid>
      <dc:creator>Shi__Yue</dc:creator>
      <dc:date>2018-02-09T10:29:29Z</dc:date>
    </item>
    <item>
      <title>I am not sure what you are</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/help-Data-type-in-zheev-c-example/m-p/1136631#M26056</link>
      <description>&lt;P&gt;I am not sure what you are trying to do, and you have not stated which C++ standard you/your compiler is following. Perhaps, what you need is the "brace init" of C++11, as described in&amp;nbsp;&lt;SPAN style="font-size: 16.26px;"&gt;&lt;A href="http://www.informit.com/articles/article.aspx?p=1852519" target="_blank"&gt;http://www.informit.com/articles/article.aspx?p=1852519&lt;/A&gt; . Try the following code for the array initialization:&lt;/SPAN&gt;&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;dcomplex a[LDA*N] { 
{ 9.14, 0.00}, {-4.37, 9.22}, {-1.98, 1.72}, {-8.96, 9.50},
{ 0.00, 0.00}, {-3.35, 0.00}, { 2.25, 9.51}, { 2.57, -2.40},
{ 0.00, 0.00}, { 0.00, 0.00}, {-4.82, 0.00}, {-3.24, -2.04},
{ 0.00, 0.00}, { 0.00, 0.00}, { 0.00, 0.00}, { 8.44, 0.00}
};
&lt;/PRE&gt;

&lt;P&gt;Note that there is no '=' between the variable and the initialization expression.&lt;/P&gt;</description>
      <pubDate>Fri, 09 Feb 2018 13:04:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/help-Data-type-in-zheev-c-example/m-p/1136631#M26056</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2018-02-09T13:04:29Z</dc:date>
    </item>
  </channel>
</rss>

