<?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 unresolved external symbol _pardiso in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/unresolved-external-symbol-pardiso/m-p/769150#M469</link>
    <description>Hello Sunil&lt;DIV&gt;please look at the &lt;A href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/"&gt;Linker Adviser&lt;/A&gt; to define the list of recommended libraries for linking this example.&lt;DIV&gt;it should be noted also that for this case you need to use LP64 interfaces instead of ILP64.&lt;/DIV&gt;&lt;DIV&gt;and also it may be useful for you to see &lt;A href="http://software.intel.com/en-us/articles/configuring-intel-mklin-microsoft-visual-studio/"&gt;this article&lt;/A&gt; how configuiring MKL in Visual Studio.&lt;/DIV&gt;&lt;DIV&gt;regards, Gennady&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Sun, 22 Apr 2012 04:39:46 GMT</pubDate>
    <dc:creator>Gennady_F_Intel</dc:creator>
    <dc:date>2012-04-22T04:39:46Z</dc:date>
    <item>
      <title>unresolved external symbol _pardiso</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/unresolved-external-symbol-pardiso/m-p/769148#M467</link>
      <description>Hi,&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I'm trying to run an example of a symmetric system using the pardiso solver that I found online and the examples provided by Intel but I keep getting the 'unresolved external symbol _pardiso' repeatedly. I've added the additional directories (mkl\\include\\intel64\\ilp64, mkl\\lib\\intel64, mkl\\include\\intel64\\lp64). My program is as follows (it's an example from Univ. of Basel). I get unresolved externals for all occurences of pardiso (5 in all). My program is as follows:&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV id="_mcePaste"&gt;#include &lt;STDIO.H&gt;&lt;/STDIO.H&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;#include &lt;STDLIB.H&gt;&lt;/STDLIB.H&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;#include &lt;MATH.H&gt;&lt;/MATH.H&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;using namespace std;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* PARDISO prototype. */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;extern "C" void pardisoinit (void  *, int  *,  int *, int *, double *, int *);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;extern "C" void pardiso   (void  *, int  *,  int *, int *,  int *, int *,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;         double *, int  *,  int *, int *,  int *, int *,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;          int *, double *, double *, int *, double *);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;extern "C" void pardiso_chkmatrix (int *, int *, double *, int *, int *, int *);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;extern "C" void pardiso_chkvec   (int *, int *, double *, int *);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;extern "C" void pardiso_printstats (int *, int *, double *, int *, int *, int *,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;             double *, int *);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;int main( void )&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;{&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  /* Matrix data. */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  int  n = 8;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  int  ia[ 9] = { 0, 4, 7, 9, 11, 14, 16, 17, 18 };&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  int  ja[18] = { 0,  2,    5, 6,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;            1, 2,  4,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;              2,       7,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;               3,    6,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;                 4, 5, 6,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;                  5,  7,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;                    6,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;                     7 };&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  double a[18] = { 7.0,   1.0,      2.0, 7.0,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;             -4.0, 8.0,      2.0,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;                1.0,           5.0,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;                  7.0,      9.0,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;                     5.0, 1.0, 5.0,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;                       0.0,   5.0,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;                         11.0,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;                            5.0 };&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  int   nnz = ia&lt;N&gt;;&lt;/N&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  int   mtype = -2;    /* Real symmetric matrix */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  /* RHS and solution vectors. */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  double  b[8], x[8];&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  int   nrhs = 1;     /* Number of right hand sides. */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  /* Internal solver memory pointer pt,         */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  /* 32-bit: int pt[64]; 64-bit: long int pt[64]     */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  /* or void *pt[64] should be OK on both architectures */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  void  *pt[64];&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  /* Pardiso control parameters. */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  int   iparm[64];&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  double  dparm[64];&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  int   maxfct, mnum, phase, error, msglvl, solver;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  /* Number of processors. */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  int   num_procs;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  /* Auxiliary variables. */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  char  *var;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  int   i;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  double  ddum;       /* Double dummy */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  int   idum;       /* Integer dummy. */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt; &lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* -------------------------------------------------------------------- */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* .. Setup Pardiso control parameters.                */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* -------------------------------------------------------------------- */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  error = 0;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  solver = 0; /* use sparse direct solver */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  pardisoinit (pt, &amp;amp;mtype, &amp;amp;solver, iparm, dparm, &amp;amp;error);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  if (error != 0)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  {&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    if (error == -10 )&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;     printf("No license file found \\n");&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    if (error == -11 )&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;     printf("License is expired \\n");&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    if (error == -12 )&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;     printf("Wrong username or hostname \\n");&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    return 1;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  }&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  else&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    printf("[PARDISO]: License check was successful ... \\n");&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt; &lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  /* Numbers of processors, value of OMP_NUM_THREADS */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  var = getenv("OMP_NUM_THREADS");&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  if(var != NULL)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    sscanf( var, "%d", &amp;amp;num_procs );&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  else {&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    printf("Set environment OMP_NUM_THREADS to 1");&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    exit(1);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  }&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  iparm[2] = num_procs;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  maxfct = 1;		/* Maximum number of numerical factorizations. */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  mnum  = 1;     /* Which factorization to use. */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt; &lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  msglvl = 1;     /* Print statistical information */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  error = 0;     /* Initialize error flag */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* -------------------------------------------------------------------- */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* .. Convert matrix from 0-based C-notation to Fortran 1-based    */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/*   notation.                            */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* -------------------------------------------------------------------- */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  for (i = 0; i &amp;lt; n+1; i++) {&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    ia&lt;I&gt; += 1;&lt;/I&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  }&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  for (i = 0; i &amp;lt; nnz; i++) {&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    ja&lt;I&gt; += 1;&lt;/I&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  }&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  /* Set right hand side to one. */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  for (i = 0; i &amp;lt; n; i++) {&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    b&lt;I&gt; = i;&lt;/I&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  }&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* -------------------------------------------------------------------- */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* .. pardiso_chk_matrix(...)                     */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/*   Checks the consistency of the given matrix.           */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/*   Use this functionality only for debugging purposes        */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* -------------------------------------------------------------------- */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt; &lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  pardiso_chkmatrix (&amp;amp;mtype, &amp;amp;n, a, ia, ja, &amp;amp;error);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  if (error != 0) {&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    printf("\\nERROR in consistency of matrix: %d", error);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    exit(1);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  }&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* -------------------------------------------------------------------- */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* .. pardiso_chkvec(...)                       */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/*   Checks the given vectors for infinite and NaN values       */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/*   Input parameters (see PARDISO user manual for a description):  */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/*   Use this functionality only for debugging purposes        */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* -------------------------------------------------------------------- */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  pardiso_chkvec (&amp;amp;n, &amp;amp;nrhs, b, &amp;amp;error);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  if (error != 0) {&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    printf("\\nERROR in right hand side: %d", error);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    exit(1);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  }&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* -------------------------------------------------------------------- */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* .. pardiso_printstats(...)                      */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/*  prints information on the matrix to STDOUT.            */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/*  Use this functionality only for debugging purposes        */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* -------------------------------------------------------------------- */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  pardiso_printstats (&amp;amp;mtype, &amp;amp;n, a, ia, ja, &amp;amp;nrhs, b, &amp;amp;error);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  if (error != 0) {&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    printf("\\nERROR right hand side: %d", error);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    exit(1);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  }&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* -------------------------------------------------------------------- */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* .. Reordering and Symbolic Factorization. This step also allocates */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/*   all memory that is necessary for the factorization.       */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* -------------------------------------------------------------------- */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  phase = 11;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  pardiso (pt, &amp;amp;maxfct, &amp;amp;mnum, &amp;amp;mtype, &amp;amp;phase,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	   &amp;amp;n, a, ia, ja, &amp;amp;idum, &amp;amp;nrhs,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;      iparm, &amp;amp;msglvl, &amp;amp;ddum, &amp;amp;ddum, &amp;amp;error, dparm);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt; &lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  if (error != 0) {&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    printf("\\nERROR during symbolic factorization: %d", error);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    exit(1);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  }&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  printf("\\nReordering completed ... ");&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  printf("\\nNumber of nonzeros in factors = %d", iparm[17]);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  printf("\\nNumber of factorization MFLOPS = %d", iparm[18]);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt; &lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* -------------------------------------------------------------------- */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* .. Numerical factorization.                     */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* -------------------------------------------------------------------- */  &lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  phase = 22;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  iparm[32] = 1; /* compute determinant */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  pardiso (pt, &amp;amp;maxfct, &amp;amp;mnum, &amp;amp;mtype, &amp;amp;phase,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;      &amp;amp;n, a, ia, ja, &amp;amp;idum, &amp;amp;nrhs,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;      iparm, &amp;amp;msglvl, &amp;amp;ddum, &amp;amp;ddum, &amp;amp;error, dparm);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt; &lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  if (error != 0) {&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    printf("\\nERROR during numerical factorization: %d", error);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    exit(2);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  }&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  printf("\\nFactorization completed ...\\n ");&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* -------------------------------------------------------------------- */  &lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* .. Back substitution and iterative refinement.           */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* -------------------------------------------------------------------- */  &lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  phase = 33;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  iparm[7] = 1;    /* Max numbers of iterative refinement steps. */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt; &lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  pardiso (pt, &amp;amp;maxfct, &amp;amp;mnum, &amp;amp;mtype, &amp;amp;phase,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;      &amp;amp;n, a, ia, ja, &amp;amp;idum, &amp;amp;nrhs,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;      iparm, &amp;amp;msglvl, b, x, &amp;amp;error, dparm);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt; &lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  if (error != 0) {&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    printf("\\nERROR during solution: %d", error);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    exit(3);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  }&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  printf("\\nSolve completed ... ");&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  printf("\\nThe solution of the system is: ");&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  for (i = 0; i &amp;lt; n; i++) {&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    printf("\\n x [%d] = % f", i, x&lt;I&gt; );&lt;/I&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  }&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  printf ("\\n");&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* -------------------------------------------------------------------- */  &lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* .. Convert matrix back to 0-based C-notation.            */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* -------------------------------------------------------------------- */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  for (i = 0; i &amp;lt; n+1; i++) {&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    ia&lt;I&gt; -= 1;&lt;/I&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  }&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  for (i = 0; i &amp;lt; nnz; i++) {&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    ja&lt;I&gt; -= 1;&lt;/I&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  }&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* -------------------------------------------------------------------- */  &lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* .. Termination and release of memory.                */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/* -------------------------------------------------------------------- */  &lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  phase = -1;         /* Release internal memory. */&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt; &lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  pardiso (pt, &amp;amp;maxfct, &amp;amp;mnum, &amp;amp;mtype, &amp;amp;phase,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;      &amp;amp;n, &amp;amp;ddum, ia, ja, &amp;amp;idum, &amp;amp;nrhs,&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;      iparm, &amp;amp;msglvl, &amp;amp;ddum, &amp;amp;ddum, &amp;amp;error, dparm);&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  return 0;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;}&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I don't think there is an error in the code. I read online in another thread that I will have to add the mkl_solver_ilp64.lib among others but when I add them in Project -&amp;gt; Properties -&amp;gt; Linker -&amp;gt; Input and then try to execute, it says that mkl_solver_ipl64.lib not found. Can anyone here help me out on this? I'm an electrical guy who's been asked to program a bit. I read through chapter 5 of the manual and I didn't understand much. If I need to add these libraries, please tell me where they should go in. I've been stuck with this for quite some time.&lt;/DIV&gt;&lt;DIV&gt;I use MS Visual Studio 2010 Professional and the Intel Parallel Studio XE compiler.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Thanks,&lt;/DIV&gt;&lt;DIV&gt;Sunil&lt;/DIV&gt;</description>
      <pubDate>Sat, 21 Apr 2012 23:52:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/unresolved-external-symbol-pardiso/m-p/769148#M467</guid>
      <dc:creator>ucsunil</dc:creator>
      <dc:date>2012-04-21T23:52:20Z</dc:date>
    </item>
    <item>
      <title>unresolved external symbol _pardiso</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/unresolved-external-symbol-pardiso/m-p/769149#M468</link>
      <description>Hello Sunil&lt;DIV&gt;please look at the &lt;A href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/"&gt;Linker Adviser&lt;/A&gt; to define the list of recommended libraries for linking this example.&lt;DIV&gt;it should be noted also that for this case you need to use LP64 interfaces instead of ILP64.&lt;/DIV&gt;&lt;DIV&gt;and also it may be useful for you to see &lt;A href="http://software.intel.com/en-us/articles/configuring-intel-mklin-microsoft-visual-studio/"&gt;this article&lt;/A&gt; how configuiring MKL in Visual Studio.&lt;/DIV&gt;&lt;DIV&gt;regards, Gennady&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Sun, 22 Apr 2012 04:39:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/unresolved-external-symbol-pardiso/m-p/769149#M468</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2012-04-22T04:39:39Z</dc:date>
    </item>
    <item>
      <title>unresolved external symbol _pardiso</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/unresolved-external-symbol-pardiso/m-p/769150#M469</link>
      <description>Hello Sunil&lt;DIV&gt;please look at the &lt;A href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/"&gt;Linker Adviser&lt;/A&gt; to define the list of recommended libraries for linking this example.&lt;DIV&gt;it should be noted also that for this case you need to use LP64 interfaces instead of ILP64.&lt;/DIV&gt;&lt;DIV&gt;and also it may be useful for you to see &lt;A href="http://software.intel.com/en-us/articles/configuring-intel-mklin-microsoft-visual-studio/"&gt;this article&lt;/A&gt; how configuiring MKL in Visual Studio.&lt;/DIV&gt;&lt;DIV&gt;regards, Gennady&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Sun, 22 Apr 2012 04:39:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/unresolved-external-symbol-pardiso/m-p/769150#M469</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2012-04-22T04:39:46Z</dc:date>
    </item>
    <item>
      <title>unresolved external symbol _pardiso</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/unresolved-external-symbol-pardiso/m-p/769151#M470</link>
      <description>Hello Sunil&lt;DIV&gt;please look at the &lt;A href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/"&gt;Linker Adviser&lt;/A&gt; to define the list of recommended libraries for linking this example.&lt;DIV&gt;it should be noted also that for this case you need to use LP64 interfaces instead of ILP64.&lt;/DIV&gt;&lt;DIV&gt;and also it may be useful for you to see &lt;A href="http://software.intel.com/en-us/articles/configuring-intel-mklin-microsoft-visual-studio/"&gt;this article&lt;/A&gt; how configuiring MKL in Visual Studio.&lt;/DIV&gt;&lt;DIV&gt;regards, Gennady&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Sun, 22 Apr 2012 04:39:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/unresolved-external-symbol-pardiso/m-p/769151#M470</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2012-04-22T04:39:47Z</dc:date>
    </item>
    <item>
      <title>unresolved external symbol _pardiso</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/unresolved-external-symbol-pardiso/m-p/769152#M471</link>
      <description>Hi Gennady,&lt;BR /&gt;&lt;BR /&gt;Thanks for your response. I got it running. But just FYI, I had trial versions of MS VS 2010 Pro amd Intel Parallel Studio XE 2011 installed on my home system and I did not see the Intel Performance Libraries option under Configuration properties as shown in the user's guide. But when I got to my office system (which has the full license, it showed up and everything worked well after that). But I encountered a different problem this time. I was asked to evaluate the PARDISO solver. We have input matrices in the coordinate format and I need to convert them to csr format. I used the mkl_dcsrcoo routine but I get a access violation writing locationerror (hexadecimal address). I'm trying to read input from an external text file which has a 5x5 sparse matrix. I'm using a program that reads a matrix in coordinate formatfrom an external input file for a different purpose and I commented out the section of code that I do not need below. The additional include files simply help with the reading. Without the mkl_dcsrcoo routine alone, and removing the comments - the program works just fine. (Also on a side note, for nowI have explicitly given the number of nonzeros and the size but it is supposed to get them from the external file. Also, when I try to simply print the acsr matrix, the first three values are correct and the rest are huge negative values). the program is as follows:&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;P&gt;// TestLUSolver.cpp : Defines the entry point for the console application.&lt;/P&gt;&lt;P&gt;//&lt;/P&gt;&lt;P&gt;#include &lt;IOSTREAM&gt;&lt;/IOSTREAM&gt;&lt;/P&gt;&lt;P&gt;# include &lt;CMATH&gt;&lt;/CMATH&gt;&lt;/P&gt;&lt;P&gt;#include &lt;CTIME&gt;&lt;/CTIME&gt;&lt;/P&gt;&lt;P&gt;#include &lt;ISTREAM&gt;&lt;/ISTREAM&gt;&lt;/P&gt;&lt;P&gt;#include "mkl_spblas.h"&lt;/P&gt;&lt;P&gt;#include "mkl_types.h"&lt;/P&gt;&lt;P&gt;#include "SolveLinear.h"&lt;/P&gt;&lt;P&gt;#include "../Utility/Utility.h"&lt;/P&gt;&lt;P&gt;#include "../IOFiles/DataFile.h"&lt;/P&gt;&lt;P&gt;using namespace std;&lt;/P&gt;&lt;P&gt;int main( int argc, char* argv[] )&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;// Write the header&lt;/P&gt;&lt;P&gt;cout &amp;lt;&amp;lt; endl;&lt;/P&gt;&lt;P&gt;cout &amp;lt;&amp;lt; "--------------------------------------------------------------------------" &amp;lt;&amp;lt; endl;&lt;/P&gt;&lt;P&gt;cout &amp;lt;&amp;lt; " " &amp;lt;&amp;lt; endl;&lt;/P&gt;&lt;P&gt;cout &amp;lt;&amp;lt; " Nexant (C) 2012 " &amp;lt;&amp;lt; endl;&lt;/P&gt;&lt;P&gt;cout &amp;lt;&amp;lt; " " &amp;lt;&amp;lt; endl;&lt;/P&gt;&lt;P&gt;cout &amp;lt;&amp;lt; " Linear Solver Test " &amp;lt;&amp;lt; endl;&lt;/P&gt;&lt;P&gt;cout &amp;lt;&amp;lt; " " &amp;lt;&amp;lt; endl;&lt;/P&gt;&lt;P&gt;cout &amp;lt;&amp;lt; " " &amp;lt;&amp;lt; endl;&lt;/P&gt;&lt;P&gt;cout &amp;lt;&amp;lt; "--------------------------------------------------------------------------" &amp;lt;&amp;lt; endl;&lt;/P&gt;&lt;P&gt;cout &amp;lt;&amp;lt; endl;&lt;/P&gt;&lt;P&gt;MKL_INT info, nnz, m = 5;&lt;/P&gt;&lt;P&gt;nnz = 13;&lt;/P&gt;&lt;P&gt;MKL_INT job [8] = { 1, 1, 1, 0, 1, 0, 0, 0 };&lt;/P&gt;&lt;P&gt;MKL_INT *ia = new int [m+1];&lt;/P&gt;&lt;P&gt;MKL_INT *ja = new int [nnz];&lt;/P&gt;&lt;P&gt;MKL_INT *ir = new int [nnz];&lt;/P&gt;&lt;P&gt;MKL_INT *jc = new int [nnz];&lt;/P&gt;&lt;P&gt;double *acoo = new double [nnz];&lt;/P&gt;&lt;P&gt;double *acsr = new double [nnz];&lt;/P&gt;&lt;P&gt;//string m_DataFileName; // Input file name&lt;/P&gt;&lt;P&gt;// Assign the file name&lt;/P&gt;&lt;P&gt;//m_DataFileName = Utility::SetFileName( "G2_circuit.mtx", "C:\\TestLUSolver" );&lt;/P&gt;&lt;P&gt;const char *m_DataFileName = "C:\\TestLUSolver\\smalltest.mtx";&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cout &amp;lt;&amp;lt; " Start reading matrix A " &amp;lt;&amp;lt; endl;&lt;/P&gt;&lt;P&gt;double start_read = time(0);&lt;/P&gt;&lt;P&gt;//Read the data&lt;/P&gt;&lt;P&gt;DataFile *m_DataFile;&lt;/P&gt;&lt;P&gt;// Create an object to handle the input file&lt;/P&gt;&lt;P&gt;m_DataFile = new DataFile( m_DataFileName );&lt;/P&gt;&lt;P&gt;// Read the file into a buffer and break it into records&lt;/P&gt;&lt;P&gt;string *srec = 0;&lt;/P&gt;&lt;P&gt;string *ssrec;&lt;/P&gt;&lt;P&gt;string *sfield;&lt;/P&gt;&lt;P&gt;long retcode = m_DataFile-&amp;gt;Read();&lt;/P&gt;&lt;P&gt;if ( retcode == -1 )&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;delete m_DataFile;&lt;/P&gt;&lt;P&gt;m_DataFile = 0;&lt;/P&gt;&lt;P&gt;return( 0 );&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Get the first record&lt;/P&gt;&lt;P&gt;srec = m_DataFile-&amp;gt;MoveToNextLine( );&lt;/P&gt;&lt;P&gt;// Break the current record into sub-records&lt;/P&gt;&lt;P&gt;retcode = m_DataFile-&amp;gt;BreakCurrentLine( );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Get the next sub-record&lt;/P&gt;&lt;P&gt;ssrec = m_DataFile-&amp;gt;MoveToNextSubRecord( );&lt;/P&gt;&lt;P&gt;// Break the current sub-record into fields&lt;/P&gt;&lt;P&gt;retcode = m_DataFile-&amp;gt;BreakCurrentSubRecord( );&lt;/P&gt;&lt;P&gt;//Read Number of Rows&lt;/P&gt;&lt;P&gt;sfield = m_DataFile-&amp;gt;MoveToNextField( );&lt;/P&gt;&lt;P&gt;long m_NRows = Utility::string2long(*sfield);&lt;/P&gt;&lt;P&gt;// long m_NumberEquation = Utility::string2long(*sfield);&lt;/P&gt;&lt;P&gt;//Read Number of Columns&lt;/P&gt;&lt;P&gt;sfield = m_DataFile-&amp;gt;MoveToNextField( );&lt;/P&gt;&lt;P&gt;long m_NColumns = Utility::string2long(*sfield);&lt;/P&gt;&lt;P&gt;//Read Number of nonzeros&lt;/P&gt;&lt;P&gt;sfield = m_DataFile-&amp;gt;MoveToNextField( );&lt;/P&gt;&lt;P&gt;long offDiagElements = Utility::string2long(*sfield);&lt;/P&gt;&lt;P&gt;/*&lt;/P&gt;&lt;P&gt;long offDiagFactors = 20*offDiagElements;&lt;/P&gt;&lt;P&gt;long sparseOverlayIndex = 130;&lt;/P&gt;&lt;P&gt;long maxBuses = m_NRows + m_NColumns;&lt;/P&gt;&lt;P&gt;long maxNumEquation = maxBuses;*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*&lt;/P&gt;&lt;P&gt;// Definition of size elements needed by the sparse Linear solver&lt;/P&gt;&lt;P&gt;long maxBranches = maxLines + maxTrafos + maxZeroImpBranches + maxSeriesReact; &lt;/P&gt;&lt;P&gt;long offDiagElements = maxBranches + 2*maxTrafos + maxGenerators + maxRegBusVolt + maxStatVars;&lt;/P&gt;&lt;P&gt;long maxNumEquation = maxBuses + maxTrafos + maxGenerators + maxStatVars;&lt;/P&gt;&lt;P&gt;// Definition of Network Elements dimensions&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;long maxGenerators = 2500;&lt;/P&gt;&lt;P&gt;long maxLines = 7000;&lt;/P&gt;&lt;P&gt;long maxTrafos = 2100;&lt;/P&gt;&lt;P&gt;long maxRegBusVolt = 4400;&lt;/P&gt;&lt;P&gt;long maxStatVars = 100;&lt;/P&gt;&lt;P&gt;long maxSeriesReact = 100;&lt;/P&gt;&lt;P&gt;long maxZeroImpBranches = 250; */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*// Definition of Linear Equation parameters&lt;/P&gt;&lt;P&gt;long * m_Row;&lt;/P&gt;&lt;P&gt;long * m_Column;&lt;/P&gt;&lt;P&gt;double * m_DiagonalValues;&lt;/P&gt;&lt;P&gt;double * m_UpperDiagValues;&lt;/P&gt;&lt;P&gt;double * m_LowerDiagValues;&lt;/P&gt;&lt;P&gt;double * m_RightHandSide;&lt;/P&gt;&lt;P&gt;double * m_SolutionVector;&lt;/P&gt;&lt;P&gt;long m_NumberOffDiagonal;*/&lt;/P&gt;&lt;P&gt;// Definition of an example: number of Equations can not be larger than maxNumEquation and number of off diagonal elements&lt;/P&gt;&lt;P&gt;// can not be greater than offDiagFactors&lt;/P&gt;&lt;P&gt;/* &lt;/P&gt;&lt;P&gt;m_NumberOffDiagonal = offDiagElements;&lt;/P&gt;&lt;P&gt;m_Row = new long [ offDiagFactors ];&lt;/P&gt;&lt;P&gt;m_Column = new long [ offDiagFactors ];&lt;/P&gt;&lt;P&gt;m_DiagonalValues = new double [ m_NRows ]; // or we can use m_DiagonalValues = new double&lt;/P&gt;&lt;P&gt;m_LowerDiagValues = new double [ offDiagFactors ];&lt;/P&gt;&lt;P&gt;m_UpperDiagValues = new double [ offDiagFactors ];*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;long k = 0;&lt;/P&gt;&lt;P&gt;do&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;// Get the first recodr record&lt;/P&gt;&lt;P&gt;srec = m_DataFile-&amp;gt;MoveToNextLine( );&lt;/P&gt;&lt;P&gt;if ( *srec == "#" )&lt;/P&gt;&lt;P&gt;break;&lt;/P&gt;&lt;P&gt;// Break the current record into sub-records&lt;/P&gt;&lt;P&gt;retcode = m_DataFile-&amp;gt;BreakCurrentLine( );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Get the next sub-record&lt;/P&gt;&lt;P&gt;ssrec = m_DataFile-&amp;gt;MoveToNextSubRecord( );&lt;/P&gt;&lt;P&gt;// Break the current sub-record into fields&lt;/P&gt;&lt;P&gt;retcode = m_DataFile-&amp;gt;BreakCurrentSubRecord( );&lt;/P&gt;&lt;P&gt;//Read the row index&lt;/P&gt;&lt;P&gt;sfield = m_DataFile-&amp;gt;MoveToNextField( );&lt;/P&gt;&lt;P&gt;long row = Utility::string2long(*sfield);&lt;/P&gt;&lt;P&gt;//Read the column index&lt;/P&gt;&lt;P&gt;sfield = m_DataFile-&amp;gt;MoveToNextField( );&lt;/P&gt;&lt;P&gt;long column = Utility::string2long(*sfield);&lt;/P&gt;&lt;P&gt;//Read the value&lt;/P&gt;&lt;P&gt;sfield = m_DataFile-&amp;gt;MoveToNextField( );&lt;/P&gt;&lt;P&gt;double value = Utility::string2double(*sfield);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Adding dummy values for use in format conversion&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if ( row == column )&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;// m_DiagonalValues[row-1] = value;&lt;/P&gt;&lt;P&gt;acoo &lt;K&gt; = value;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;acsr &lt;K&gt; = value;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;ir &lt;K&gt; = row;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;jc &lt;K&gt; = column;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;ja &lt;K&gt; = column;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;else if (row &amp;lt; column)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;// m_LowerDiagValues&lt;K&gt; = value;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;// m_UpperDiagValues&lt;K&gt; = value;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;acoo &lt;K&gt; = value;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;acsr &lt;K&gt; = value;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;//m_Row&lt;K&gt; = row;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;// m_Column&lt;K&gt; = column;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;ir &lt;K&gt; = row;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;jc &lt;K&gt; = column;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;ja &lt;K&gt; = column;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;k = k + 1;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;/* else&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;m_LowerDiagValues&lt;K&gt; = value;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;m_UpperDiagValues&lt;K&gt; = value;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;m_Row&lt;K&gt; = column;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;//acoo &lt;K&gt; = value;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;m_Column&lt;K&gt; = row;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;//ir &lt;K&gt; = column;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;//jc &lt;K&gt; = row;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;//ja &lt;K&gt; = column;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;k = k + 1;&lt;/P&gt;&lt;P&gt;} */&lt;/P&gt;&lt;P&gt;} while ( true );&lt;/P&gt;&lt;P&gt;for (int z = 0; z &amp;lt;13; z++)&lt;/P&gt;&lt;P&gt;cout &amp;lt;&amp;lt; acoo&lt;Z&gt; &amp;lt;&amp;lt; endl;&lt;/Z&gt;&lt;/P&gt;&lt;P&gt;mkl_dcsrcoo (job, &amp;amp;m, acsr, ja, ia, &amp;amp;nnz, acoo, ir, jc, &amp;amp;info); &lt;/P&gt;&lt;P&gt;/*&lt;/P&gt;&lt;P&gt;m_RightHandSide = new double [ m_NRows ];&lt;/P&gt;&lt;P&gt;for ( long i=0;i&lt;M_NROWS&gt;&lt;/M_NROWS&gt;&lt;/P&gt;&lt;P&gt;m_RightHandSide&lt;I&gt; = 1;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;m_NumberOffDiagonal = k;&lt;/P&gt;&lt;P&gt;cout &amp;lt;&amp;lt; " Finish reading matrix A " &amp;lt;&amp;lt; endl;&lt;/P&gt;&lt;P&gt;double end_read = time (0);&lt;/P&gt;&lt;P&gt;double elapsed_read = end_read - start_read;&lt;/P&gt;&lt;P&gt;cout &amp;lt;&amp;lt; "Time taken to read was " &amp;lt;&amp;lt; elapsed_read &amp;lt;&amp;lt; "seconds" &amp;lt;&amp;lt; endl;&lt;/P&gt;&lt;P&gt;cout &amp;lt;&amp;lt; " Start x = A/b calculation " &amp;lt;&amp;lt; endl;&lt;/P&gt;&lt;P&gt;double start_solve = time (0);&lt;/P&gt;&lt;P&gt;// Construction and Calling method to the Linear solver Wrapper, it retrieves the solution vector&lt;/P&gt;&lt;P&gt;SolveLinear *m_SolveLinear = new SolveLinear();&lt;/P&gt;&lt;P&gt;m_SolutionVector = m_SolveLinear -&amp;gt; Calculate( m_Row, m_Column, m_NRows, m_NumberOffDiagonal, &lt;/P&gt;&lt;P&gt;m_DiagonalValues, m_LowerDiagValues, m_UpperDiagValues, m_RightHandSide , &lt;/P&gt;&lt;P&gt;maxNumEquation, maxBuses, offDiagFactors, sparseOverlayIndex );&lt;/P&gt;&lt;P&gt;cout &amp;lt;&amp;lt; " Finish x = A/b calculation " &amp;lt;&amp;lt; endl;&lt;/P&gt;&lt;P&gt;double end_solve = time (0);&lt;/P&gt;&lt;P&gt;double elapsed_solve = end_solve - start_solve;&lt;/P&gt;&lt;P&gt;cout &amp;lt;&amp;lt; "Time taken to solve was " &amp;lt;&amp;lt; elapsed_solve &amp;lt;&amp;lt; "seconds" &amp;lt;&amp;lt; endl;&lt;/P&gt;&lt;P&gt;cout &amp;lt;&amp;lt; " Start saving the solution " &amp;lt;&amp;lt; endl;&lt;/P&gt;&lt;P&gt;double start_output = time (0);&lt;/P&gt;&lt;P&gt;// Open the output file&lt;/P&gt;&lt;P&gt;fstream output;&lt;/P&gt;&lt;P&gt;string outFilename = "solution.dat";&lt;/P&gt;&lt;P&gt;string outPath ="C:\\Users\\smonsingh\\Desktop";&lt;/P&gt;&lt;P&gt;bool outStat = Utility::OpenFile( outFilename,&lt;/P&gt;&lt;P&gt;outPath,&lt;/P&gt;&lt;P&gt;output,&lt;/P&gt;&lt;P&gt;IOS::out );&lt;/P&gt;&lt;P&gt;// Check if the debug file can be opened&lt;/P&gt;&lt;P&gt;if ( outStat )&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;for (long i=0; i&lt;M_NCOLUMNS&gt;&lt;/M_NCOLUMNS&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;// Write to the file&lt;/P&gt;&lt;P&gt;output &amp;lt;&amp;lt; m_SolutionVector&lt;I&gt; &amp;lt;&amp;lt; endl;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;// Close the file&lt;/P&gt;&lt;P&gt;output.close();&lt;/P&gt;&lt;P&gt;} &lt;/P&gt;&lt;P&gt;cout &amp;lt;&amp;lt; " Finish saving the solution " &amp;lt;&amp;lt; endl;&lt;/P&gt;&lt;P&gt;double end_output = time (0);&lt;/P&gt;&lt;P&gt;double elapsed_output = end_output - start_output;&lt;/P&gt;&lt;P&gt;cout &amp;lt;&amp;lt; "Time taken to print the solution was " &amp;lt;&amp;lt; elapsed_output &amp;lt;&amp;lt; "seconds" &amp;lt;&amp;lt; endl;&lt;/P&gt;&lt;P&gt;// Delete the dynamic vectors&lt;/P&gt;&lt;P&gt;if ( m_Row )&lt;/P&gt;&lt;P&gt;delete [] m_Row;&lt;/P&gt;&lt;P&gt;if ( m_Column )&lt;/P&gt;&lt;P&gt;delete [] m_Column;&lt;/P&gt;&lt;P&gt;if ( m_DiagonalValues )&lt;/P&gt;&lt;P&gt;delete [] m_DiagonalValues;&lt;/P&gt;&lt;P&gt;if ( m_UpperDiagValues )&lt;/P&gt;&lt;P&gt;delete [] m_UpperDiagValues;&lt;/P&gt;&lt;P&gt;if ( m_LowerDiagValues )&lt;/P&gt;&lt;P&gt;delete [] m_LowerDiagValues;&lt;/P&gt;&lt;P&gt;if ( m_RightHandSide )&lt;/P&gt;&lt;P&gt;delete [] m_RightHandSide;&lt;/P&gt;&lt;P&gt;if ( m_SolutionVector )&lt;/P&gt;&lt;P&gt;delete [] m_SolutionVector;&lt;/P&gt;&lt;P&gt;if ( m_DataFile )&lt;/P&gt;&lt;P&gt;delete m_DataFile;&lt;/P&gt;&lt;P&gt;delete m_SolveLinear;*/&lt;/P&gt;&lt;P&gt;system ("PAUSE");&lt;/P&gt;&lt;P&gt;return 0;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;// SolveLinear *m_SolveLinear = new SolveLinear();&lt;/P&gt;&lt;P&gt;//&lt;/P&gt;&lt;P&gt;// m_SolveLinear -&amp;gt;Populate();&lt;/P&gt;&lt;P&gt;// m_SolveLinear -&amp;gt;Calculate();&lt;/P&gt;&lt;P&gt;// delete m_SolveLinear;&lt;/P&gt;&lt;P&gt;// return 0;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;I inserted the commented section as well just to show you the exact program I'm trying to run. Could you please help me out with this? I know I have sufficient memory and access priveleges.&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;Sunil&lt;/P&gt;</description>
      <pubDate>Tue, 24 Apr 2012 16:43:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/unresolved-external-symbol-pardiso/m-p/769152#M471</guid>
      <dc:creator>ucsunil</dc:creator>
      <dc:date>2012-04-24T16:43:34Z</dc:date>
    </item>
  </channel>
</rss>

