<?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 Ippm: LU Decomposition fails for regular matrix in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/Ippm-LU-Decomposition-fails-for-regular-matrix/m-p/870907#M8920</link>
    <description>Hi,&lt;BR /&gt;&lt;BR /&gt;currently I have to solve numerous systems of linear equations. I'm using the LU decomposition and backward substitution algorithms provided by IPPM. &lt;BR /&gt;Sometimes my programm does not provide a solution. First I thought that the particular&lt;BR /&gt;systems are not solveable (e.g. involving a singular matrices), but by coincidence I recalculated some of these systems with Matlab, which calculated a solution as well as a valid LU decomposition. &lt;BR /&gt;My question is, what am I doing wrong? IMHO my routines should be right, because they create correct results in most cases. So maybe it is smth with ipp?&lt;BR /&gt;&lt;BR /&gt;Here is an example where Ippm does not find the LU decomposition, but Matlab does.&lt;BR /&gt;&lt;BR /&gt;
&lt;PRE&gt;[cpp]void forumQuestion()
{
  int const N = 3;

  // source matrix
  Ipp32f pMatrix[N*N] =
  {
    -0.965694,   -0.92694, -1,         // 1st row
     0.259682, 0.00108966, 0.00105857, // 2nd row
     0       ,   0.375207, 10          // 3rd row
  };

  int elementStride = sizeof(Ipp32f);
  int rowStride = N * sizeof(Ipp32f);

  Ipp32f pDecomposedMatrix[N*N];
  int pivotIndices&lt;N&gt;;

  IppStatus status = ippmLUDecomp_m_32f((const Ipp32f*)pMatrix, rowStride, elementStride,
      pivotIndices,
      pDecomposedMatrix, rowStride, elementStride, N);

  if(status != ippStsNoErr)
  {
    printf("LU decomposition failed! (error %d)n",status);
  }
  else
  {
    printf_m_Ipp32f("LUDecomp result:", pDecomposedMatrix, N, N, status);
  }
}
[/cpp]&lt;/N&gt;&lt;/PRE&gt;
&lt;BR /&gt;The status is -195 (Matrix is singular), which is not true.&lt;BR /&gt;&lt;BR /&gt;Thanks, John&lt;BR /&gt;&lt;BR /&gt;BTW: I'm using Ipp 5.0</description>
    <pubDate>Thu, 03 Dec 2009 09:47:22 GMT</pubDate>
    <dc:creator>jsmith74</dc:creator>
    <dc:date>2009-12-03T09:47:22Z</dc:date>
    <item>
      <title>Ippm: LU Decomposition fails for regular matrix</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Ippm-LU-Decomposition-fails-for-regular-matrix/m-p/870907#M8920</link>
      <description>Hi,&lt;BR /&gt;&lt;BR /&gt;currently I have to solve numerous systems of linear equations. I'm using the LU decomposition and backward substitution algorithms provided by IPPM. &lt;BR /&gt;Sometimes my programm does not provide a solution. First I thought that the particular&lt;BR /&gt;systems are not solveable (e.g. involving a singular matrices), but by coincidence I recalculated some of these systems with Matlab, which calculated a solution as well as a valid LU decomposition. &lt;BR /&gt;My question is, what am I doing wrong? IMHO my routines should be right, because they create correct results in most cases. So maybe it is smth with ipp?&lt;BR /&gt;&lt;BR /&gt;Here is an example where Ippm does not find the LU decomposition, but Matlab does.&lt;BR /&gt;&lt;BR /&gt;
&lt;PRE&gt;[cpp]void forumQuestion()
{
  int const N = 3;

  // source matrix
  Ipp32f pMatrix[N*N] =
  {
    -0.965694,   -0.92694, -1,         // 1st row
     0.259682, 0.00108966, 0.00105857, // 2nd row
     0       ,   0.375207, 10          // 3rd row
  };

  int elementStride = sizeof(Ipp32f);
  int rowStride = N * sizeof(Ipp32f);

  Ipp32f pDecomposedMatrix[N*N];
  int pivotIndices&lt;N&gt;;

  IppStatus status = ippmLUDecomp_m_32f((const Ipp32f*)pMatrix, rowStride, elementStride,
      pivotIndices,
      pDecomposedMatrix, rowStride, elementStride, N);

  if(status != ippStsNoErr)
  {
    printf("LU decomposition failed! (error %d)n",status);
  }
  else
  {
    printf_m_Ipp32f("LUDecomp result:", pDecomposedMatrix, N, N, status);
  }
}
[/cpp]&lt;/N&gt;&lt;/PRE&gt;
&lt;BR /&gt;The status is -195 (Matrix is singular), which is not true.&lt;BR /&gt;&lt;BR /&gt;Thanks, John&lt;BR /&gt;&lt;BR /&gt;BTW: I'm using Ipp 5.0</description>
      <pubDate>Thu, 03 Dec 2009 09:47:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Ippm-LU-Decomposition-fails-for-regular-matrix/m-p/870907#M8920</guid>
      <dc:creator>jsmith74</dc:creator>
      <dc:date>2009-12-03T09:47:22Z</dc:date>
    </item>
    <item>
      <title>Re: Ippm: LU Decomposition fails for regular matrix</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Ippm-LU-Decomposition-fails-for-regular-matrix/m-p/870908#M8921</link>
      <description>&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
&lt;BR /&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;Could you please try the latest version which is IPP 6.1 update ? The version IPP 5.0 is several years old. Several issues in IPP were solved since that time.&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt; Vladimir</description>
      <pubDate>Thu, 03 Dec 2009 12:01:13 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Ippm-LU-Decomposition-fails-for-regular-matrix/m-p/870908#M8921</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2009-12-03T12:01:13Z</dc:date>
    </item>
    <item>
      <title>Re: Ippm: LU Decomposition fails for regular matrix</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Ippm-LU-Decomposition-fails-for-regular-matrix/m-p/870909#M8922</link>
      <description>&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
&lt;BR /&gt;Hi Vladimir,&lt;BR /&gt;&lt;BR /&gt;I followed your suggestion and tested my program with IPP 6.1. The problem does&lt;BR /&gt;not occur in this version and the results are identical to Matlab.&lt;BR /&gt;&lt;BR /&gt;Thanks, &lt;BR /&gt;John&lt;BR /&gt;</description>
      <pubDate>Fri, 04 Dec 2009 16:46:49 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Ippm-LU-Decomposition-fails-for-regular-matrix/m-p/870909#M8922</guid>
      <dc:creator>jsmith74</dc:creator>
      <dc:date>2009-12-04T16:46:49Z</dc:date>
    </item>
    <item>
      <title>Re: Ippm: LU Decomposition fails for regular matrix</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Ippm-LU-Decomposition-fails-for-regular-matrix/m-p/870910#M8923</link>
      <description>&lt;DIV style="margin: 0px; height: auto;"&gt;&lt;/DIV&gt;
&lt;BR /&gt;Great, thanks for letting us know! At least something we do better within a time:)&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt; Vladimir</description>
      <pubDate>Fri, 04 Dec 2009 16:55:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Ippm-LU-Decomposition-fails-for-regular-matrix/m-p/870910#M8923</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2009-12-04T16:55:25Z</dc:date>
    </item>
  </channel>
</rss>

