<?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 pardiso for complex number matrices in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-pardiso-for-complex-number-matrices/m-p/890124#M10359</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/154464"&gt;Vipin Kumar E K (Intel)&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;BR /&gt;If you are calling PARDISO from C/C++ program, please take a look at file mkl_dss.h to learn which complex types you can use for complex arrays. For example you can describe the array of non-zeros as follows:&lt;BR /&gt;&lt;BR /&gt;_DOUBLE_COMPLEX_t cValues[your size];&lt;BR /&gt;&lt;BR /&gt;--Vipin&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;T.T i still got the same error messages.&lt;BR /&gt;&lt;BR /&gt;1&amp;gt;NewtonComplex.obj : error LNK2019: unresolved external symbol "int __cdecl PARDISO(void *,int *,int *,int *,int *,int *,struct _DOUBLE_COMPLEX_t *,int *,int *,int *,int *,int *,int *,struct _DOUBLE_COMPLEX_t *,struct _DOUBLE_COMPLEX_t *,int *)" (?PARDISO@@$FYAHPAXPAH1111PAU_DOUBLE_COMPLEX_t@@111111221@Z) referenced in function "public: cli::array&lt;CLASS complex=""&gt;^" (?LinearSolver@NewtonComplex@@$FQ$AAMP$01AP$AAVComplex@@XZ)&lt;BR /&gt;&lt;BR /&gt;My code looks like this&lt;BR /&gt;&lt;BR /&gt;#include "stdafx.h"&lt;BR /&gt;#include "NewtonComplex.h"&lt;BR /&gt;#include "math.h"&lt;BR /&gt;#include "stdlib.h"&lt;BR /&gt;#include "stdio.h"&lt;BR /&gt;#include "mkl_pardiso.h" &lt;BR /&gt;#include "mkl_dss.h"&lt;BR /&gt;&lt;BR /&gt;/* PARDISO prototype. */&lt;BR /&gt;#if defined(_WIN32) || defined(_WIN64)&lt;BR /&gt;#define pardiso_ PARDISO&lt;BR /&gt;#else&lt;BR /&gt;#define PARDISO pardiso_&lt;BR /&gt;#endif&lt;BR /&gt;#if defined(MKL_ILP64)&lt;BR /&gt;#define MKL_INT long long&lt;BR /&gt;#else&lt;BR /&gt;#define MKL_INT int&lt;BR /&gt;#endif&lt;BR /&gt;&lt;BR /&gt;typedef struct _doublecomplex{&lt;BR /&gt; double re; &lt;BR /&gt; double i;}&lt;BR /&gt;doublecomplex;&lt;BR /&gt;&lt;BR /&gt;extern MKL_INT PARDISO(void *, MKL_INT *, MKL_INT *, MKL_INT *, MKL_INT *, MKL_INT *,DOUBLE_COMPLEX_t *, MKL_INT *, MKL_INT *, MKL_INT *, MKL_INT *, MKL_INT *, MKL_INT *, _DOUBLE_COMPLEX_t *, _DOUBLE_COMPLEX_t *, MKL_INT *);&lt;BR /&gt;&lt;BR /&gt;------Input parameters and matrix data look something like -----&amp;gt;&amp;gt;&lt;BR /&gt;&lt;BR /&gt;_DOUBLE_COMPLEX_t* a = new _DOUBLE_COMPLEX_t[nonZeros];&lt;BR /&gt; for (int i = 0; i&lt;NONZEROS&gt;&lt;/NONZEROS&gt; {&lt;BR /&gt; a&lt;I&gt;.r = JArray&lt;I&gt;-&amp;gt;real;&lt;BR /&gt; a&lt;I&gt;.i = JArray&lt;I&gt;-&amp;gt;imag;&lt;BR /&gt; }&lt;BR /&gt;&lt;BR /&gt;MKL_INT mtype = 13; /* Complex unsymmetric matrix */&lt;BR /&gt;_DOUBLE_COMPLEX_t* b = new _DOUBLE_COMPLEX_t[numVar];&lt;BR /&gt;_DOUBLE_COMPLEX_t* x = new _DOUBLE_COMPLEX_t[numVar];&lt;BR /&gt;&lt;BR /&gt;-------Then to call Pardiso ------&amp;gt;&amp;gt;&lt;BR /&gt;phase = 11;&lt;BR /&gt;PARDISO (pt, &amp;amp;maxfct, &amp;amp;mnum, &amp;amp;mtype, &amp;amp;phase, &amp;amp;n, a, ia, ja, &amp;amp;idum, &amp;amp;nrhs,iparm, &amp;amp;msglvl, &amp;amp;ddum, &amp;amp;ddum, &amp;amp;error);&lt;BR /&gt;&lt;BR /&gt;This is where I got the error. without the PARDISO(.....) line, the code compiled no problem.&lt;BR /&gt;&lt;BR /&gt;Thank you.&lt;BR /&gt;&lt;BR /&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/CLASS&gt;</description>
    <pubDate>Thu, 20 Aug 2009 13:59:19 GMT</pubDate>
    <dc:creator>worakanok</dc:creator>
    <dc:date>2009-08-20T13:59:19Z</dc:date>
    <item>
      <title>Using pardiso for complex number matrices</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-pardiso-for-complex-number-matrices/m-p/890121#M10356</link>
      <description>Hi, &lt;BR /&gt;&lt;BR /&gt;I am writing a linear solving routing in visual studio (C++) 2008. When I used pardiso to solve real number matrices, it worked just fine. Then I wanted to use it for complex number matrices. I got the errors below. &lt;BR /&gt;&lt;BR /&gt;error LNK2028: unresolved token (0A000037) "int __cdecl PARDISO(void *,int *,int *,int *,int *,int *,struct _doublecomplex *,int *,int *,int *,int *,int *,int *,struct _doublecomplex *,struct _doublecomplex *,int *)" (?PARDISO@@$FYAHPAXPAH1111PAU_doublecomplex@@111111221@Z) referenced in function "public: cli::array&lt;CLASS complex=""&gt;^" (?LinearSolver@NewtonComplex@@$FQ$AAMP$01AP$AAVComplex@@XZ)&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;error LNK2019: unresolved external symbol "int __cdecl PARDISO(void *,int *,int *,int *,int *,int *,struct _doublecomplex *,int *,int *,int *,int *,int *,int *,struct _doublecomplex *,struct _doublecomplex *,int *)" (?PARDISO@@$FYAHPAXPAH1111PAU_doublecomplex@@111111221@Z) referenced in function "public: cli::array&lt;CLASS complex=""&gt;^" (?LinearSolver@NewtonComplex@@$FQ$AAMP$01AP$AAVComplex@@XZ)&lt;BR /&gt;&lt;BR /&gt;I used to get the exact same error messages when i forgot to #include"mkl_pardiso.h" in real number cases so I'm thinking maybe I need to include additional header files.&lt;BR /&gt;&lt;BR /&gt;Is there any difference in linking pardiso between complex- and real-number systems? Pls helppp :(&lt;BR /&gt;&lt;/CLASS&gt;&lt;/CLASS&gt;</description>
      <pubDate>Thu, 20 Aug 2009 04:27:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-pardiso-for-complex-number-matrices/m-p/890121#M10356</guid>
      <dc:creator>worakanok</dc:creator>
      <dc:date>2009-08-20T04:27:31Z</dc:date>
    </item>
    <item>
      <title>Re: Using pardiso for complex number matrices</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-pardiso-for-complex-number-matrices/m-p/890122#M10357</link>
      <description>&lt;BR /&gt;If you are calling PARDISO from C/C++ program, please take a look at file mkl_dss.h to learn which complex types you can use for complex arrays. For example you can describe the array of non-zeros as follows:&lt;BR /&gt;&lt;BR /&gt;_DOUBLE_COMPLEX_t cValues[your size];&lt;BR /&gt;&lt;BR /&gt;--Vipin</description>
      <pubDate>Thu, 20 Aug 2009 10:56:05 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-pardiso-for-complex-number-matrices/m-p/890122#M10357</guid>
      <dc:creator>VipinKumar_E_Intel</dc:creator>
      <dc:date>2009-08-20T10:56:05Z</dc:date>
    </item>
    <item>
      <title>Re: Using pardiso for complex number matrices</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-pardiso-for-complex-number-matrices/m-p/890123#M10358</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/154464"&gt;Vipin Kumar E K (Intel)&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;BR /&gt;If you are calling PARDISO from C/C++ program, please take a look at file mkl_dss.h to learn which complex types you can use for complex arrays. For example you can describe the array of non-zeros as follows:&lt;BR /&gt;&lt;BR /&gt;_DOUBLE_COMPLEX_t cValues[your size];&lt;BR /&gt;&lt;BR /&gt;--Vipin&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;My input array of non-zeros is&lt;BR /&gt;&lt;BR /&gt;doublecomplex* a = new doublecomplex[nonZeros];&lt;BR /&gt;&lt;BR /&gt;I kinda copied the structure from pardiso_unsym_complex_c.c from the example folder.&lt;BR /&gt;&lt;BR /&gt;I'll try changing it to _DOUBLE_COMPLEX_t cValues[your size]; and let me know if it works. Thanks.&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 20 Aug 2009 13:19:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-pardiso-for-complex-number-matrices/m-p/890123#M10358</guid>
      <dc:creator>worakanok</dc:creator>
      <dc:date>2009-08-20T13:19:08Z</dc:date>
    </item>
    <item>
      <title>Re: Using pardiso for complex number matrices</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-pardiso-for-complex-number-matrices/m-p/890124#M10359</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/154464"&gt;Vipin Kumar E K (Intel)&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;BR /&gt;If you are calling PARDISO from C/C++ program, please take a look at file mkl_dss.h to learn which complex types you can use for complex arrays. For example you can describe the array of non-zeros as follows:&lt;BR /&gt;&lt;BR /&gt;_DOUBLE_COMPLEX_t cValues[your size];&lt;BR /&gt;&lt;BR /&gt;--Vipin&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;T.T i still got the same error messages.&lt;BR /&gt;&lt;BR /&gt;1&amp;gt;NewtonComplex.obj : error LNK2019: unresolved external symbol "int __cdecl PARDISO(void *,int *,int *,int *,int *,int *,struct _DOUBLE_COMPLEX_t *,int *,int *,int *,int *,int *,int *,struct _DOUBLE_COMPLEX_t *,struct _DOUBLE_COMPLEX_t *,int *)" (?PARDISO@@$FYAHPAXPAH1111PAU_DOUBLE_COMPLEX_t@@111111221@Z) referenced in function "public: cli::array&lt;CLASS complex=""&gt;^" (?LinearSolver@NewtonComplex@@$FQ$AAMP$01AP$AAVComplex@@XZ)&lt;BR /&gt;&lt;BR /&gt;My code looks like this&lt;BR /&gt;&lt;BR /&gt;#include "stdafx.h"&lt;BR /&gt;#include "NewtonComplex.h"&lt;BR /&gt;#include "math.h"&lt;BR /&gt;#include "stdlib.h"&lt;BR /&gt;#include "stdio.h"&lt;BR /&gt;#include "mkl_pardiso.h" &lt;BR /&gt;#include "mkl_dss.h"&lt;BR /&gt;&lt;BR /&gt;/* PARDISO prototype. */&lt;BR /&gt;#if defined(_WIN32) || defined(_WIN64)&lt;BR /&gt;#define pardiso_ PARDISO&lt;BR /&gt;#else&lt;BR /&gt;#define PARDISO pardiso_&lt;BR /&gt;#endif&lt;BR /&gt;#if defined(MKL_ILP64)&lt;BR /&gt;#define MKL_INT long long&lt;BR /&gt;#else&lt;BR /&gt;#define MKL_INT int&lt;BR /&gt;#endif&lt;BR /&gt;&lt;BR /&gt;typedef struct _doublecomplex{&lt;BR /&gt; double re; &lt;BR /&gt; double i;}&lt;BR /&gt;doublecomplex;&lt;BR /&gt;&lt;BR /&gt;extern MKL_INT PARDISO(void *, MKL_INT *, MKL_INT *, MKL_INT *, MKL_INT *, MKL_INT *,DOUBLE_COMPLEX_t *, MKL_INT *, MKL_INT *, MKL_INT *, MKL_INT *, MKL_INT *, MKL_INT *, _DOUBLE_COMPLEX_t *, _DOUBLE_COMPLEX_t *, MKL_INT *);&lt;BR /&gt;&lt;BR /&gt;------Input parameters and matrix data look something like -----&amp;gt;&amp;gt;&lt;BR /&gt;&lt;BR /&gt;_DOUBLE_COMPLEX_t* a = new _DOUBLE_COMPLEX_t[nonZeros];&lt;BR /&gt; for (int i = 0; i&lt;NONZEROS&gt;&lt;/NONZEROS&gt; {&lt;BR /&gt; a&lt;I&gt;.r = JArray&lt;I&gt;-&amp;gt;real;&lt;BR /&gt; a&lt;I&gt;.i = JArray&lt;I&gt;-&amp;gt;imag;&lt;BR /&gt; }&lt;BR /&gt;&lt;BR /&gt;MKL_INT mtype = 13; /* Complex unsymmetric matrix */&lt;BR /&gt;_DOUBLE_COMPLEX_t* b = new _DOUBLE_COMPLEX_t[numVar];&lt;BR /&gt;_DOUBLE_COMPLEX_t* x = new _DOUBLE_COMPLEX_t[numVar];&lt;BR /&gt;&lt;BR /&gt;-------Then to call Pardiso ------&amp;gt;&amp;gt;&lt;BR /&gt;phase = 11;&lt;BR /&gt;PARDISO (pt, &amp;amp;maxfct, &amp;amp;mnum, &amp;amp;mtype, &amp;amp;phase, &amp;amp;n, a, ia, ja, &amp;amp;idum, &amp;amp;nrhs,iparm, &amp;amp;msglvl, &amp;amp;ddum, &amp;amp;ddum, &amp;amp;error);&lt;BR /&gt;&lt;BR /&gt;This is where I got the error. without the PARDISO(.....) line, the code compiled no problem.&lt;BR /&gt;&lt;BR /&gt;Thank you.&lt;BR /&gt;&lt;BR /&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/CLASS&gt;</description>
      <pubDate>Thu, 20 Aug 2009 13:59:19 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-pardiso-for-complex-number-matrices/m-p/890124#M10359</guid>
      <dc:creator>worakanok</dc:creator>
      <dc:date>2009-08-20T13:59:19Z</dc:date>
    </item>
    <item>
      <title>Re: Using pardiso for complex number matrices</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-pardiso-for-complex-number-matrices/m-p/890125#M10360</link>
      <description>&lt;DIV style="margin: 0px; height: auto;"&gt;&lt;/DIV&gt;
When I tried to run the pardiso_unsym_complex_c.c (from the MKL's examples folder) by copied the whole code into a new class called Test, I got these error messages:&lt;BR /&gt;&lt;BR /&gt;1&amp;gt;test.obj : error LNK2028: unresolved token (0A00003C) "int __cdecl PARDISO(void *,int *,int *,int *,int *,int *,struct doublecomplex *,int *,int *,int *,int *,int *,int *,struct doublecomplex *,struct doublecomplex *,int *)" (?PARDISO@@$FYAHPAXPAH1111PAUdoublecomplex@@111111221@Z) referenced in function "public: __clrcall Test::Test(void)" (??0Test@@$FQ$AAM@XZ)&lt;BR /&gt;&lt;BR /&gt;1&amp;gt;test.obj : error LNK2019: unresolved external symbol "int __cdecl PARDISO(void *,int *,int *,int *,int *,int *,struct doublecomplex *,int *,int *,int *,int *,int *,int *,struct doublecomplex *,struct doublecomplex *,int *)" (?PARDISO@@$FYAHPAXPAH1111PAUdoublecomplex@@111111221@Z) referenced in function "public: __clrcall Test::Test(void)" (??0Test@@$FQ$AAM@XZ)&lt;BR /&gt;&lt;BR /&gt;I hope you can understant when I explained about the problem. I am not really a programmer so I don't know much about programming or tech terms.&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 20 Aug 2009 18:11:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-pardiso-for-complex-number-matrices/m-p/890125#M10360</guid>
      <dc:creator>worakanok</dc:creator>
      <dc:date>2009-08-20T18:11:12Z</dc:date>
    </item>
    <item>
      <title>Re: Using pardiso for complex number matrices</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-pardiso-for-complex-number-matrices/m-p/890126#M10361</link>
      <description>As long as I know and found it in documentation for real matrices:&lt;BR /&gt;&lt;BR /&gt;double precission (type &lt;B&gt;double&lt;/B&gt;) and single precission (type &lt;B&gt;float&lt;/B&gt;) is available for PARDISO.&lt;BR /&gt;&lt;BR /&gt;but for complex matrices I am able to use only double precission (structure &lt;B&gt;doublecomplex)&lt;/B&gt;...and my question is:&lt;BR /&gt;&lt;SPAN style="text-decoration: underline;"&gt;is it possible to use single precision for complex matrices in PARDISO ?&lt;/SPAN&gt; &lt;BR /&gt;&lt;BR /&gt;(I tried something like structure &lt;B&gt;complex&lt;/B&gt;,but it did not work)&lt;BR /&gt;&lt;BR /&gt;Please, help me!&lt;BR /&gt;&lt;BR /&gt;Pogrammer&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Sat, 08 May 2010 10:59:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-pardiso-for-complex-number-matrices/m-p/890126#M10361</guid>
      <dc:creator>programmer85</dc:creator>
      <dc:date>2010-05-08T10:59:08Z</dc:date>
    </item>
  </channel>
</rss>

