<?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 Sorry, I have modified the in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/unexpected-potrf-subroutine-failure/m-p/1046065#M20983</link>
    <description>&lt;P&gt;Sorry, I have modified the code. It should work now. Initially, it is just a subroutine in a big project, I extract the related code so it looks like this. Sorry for the trouble.&lt;/P&gt;</description>
    <pubDate>Fri, 25 Sep 2015 00:12:29 GMT</pubDate>
    <dc:creator>Yuna_D_</dc:creator>
    <dc:date>2015-09-25T00:12:29Z</dc:date>
    <item>
      <title>unexpected ?potrf subroutine failure</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/unexpected-potrf-subroutine-failure/m-p/1046063#M20981</link>
      <description>&lt;P&gt;AHi,&lt;/P&gt;

&lt;P&gt;I need to generate a gaussian correlated noise based on a covariance matrix with fortran. I am using spotrf subroutine to do the cholesky decomposition. However, the decomposition is always failed at a specific row of input matrix. As the reference indicates, it means the leading minors of that row is not positive definite. But previous work with the same data in matlab &lt;STRONG&gt;chol &lt;/STRONG&gt;function shows that the matrix is positive definite.&lt;/P&gt;

&lt;P&gt;This problem is killing me now. Can anyone help me get out of the swap ? Or just if there is a better way to generate correlated noise without getting involved in the covariance matrix.The code for generate the covariance matrix and cholesky decomposition is listed below. Thanks a lot!!&lt;/P&gt;

&lt;P&gt;-------------------------------------------------------------------------------------------&lt;/P&gt;

&lt;P class="p1"&gt;&lt;SPAN class="s1"&gt;Program&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; DensityRealization&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p3"&gt;&lt;SPAN class="s2"&gt;Implicit&lt;/SPAN&gt;&lt;SPAN class="s3"&gt; &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;None&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p3"&gt;&lt;SPAN class="s2"&gt;Real&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;::lc&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p1"&gt;&lt;SPAN class="s1"&gt;Integer&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;::std,cases,Layer_Num,&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.008px; line-height: 19.512px;"&gt;i,j,CholFlag&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p1"&gt;&lt;SPAN style="font-size: 13.008px; line-height: 19.512px;"&gt;Real,Allocatable,Dimension(:,:)::c,sigma,rhostd&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p1"&gt;&lt;SPAN style="font-size: 13.008px; line-height: 19.512px;"&gt;Real,Allocatable,Dimension(:)::z,Rnd&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p4"&gt;&lt;SPAN class="s1"&gt;REAL&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;,&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;Parameter&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;::p&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;3&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;=&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;38.2273&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P class="p2"&gt;Layer_Num=13827&lt;/P&gt;

&lt;P class="p2"&gt;std=20&lt;/P&gt;

&lt;P class="p2"&gt;cases=500&lt;/P&gt;

&lt;P class="p2"&gt;Allocate(z(Layer_Num),c(Layer_Num,Layer_Num),sigma(Layer_Num,Layer_Num),rhostd(Layer_Num,1),Rnd(cases*Layer_Num))&lt;/P&gt;

&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P class="p2"&gt;&lt;SPAN class="s1" style="font-size: 1em; line-height: 1.5;"&gt;DO&lt;/SPAN&gt;&lt;SPAN class="s2" style="font-size: 1em; line-height: 1.5;"&gt; i=&lt;/SPAN&gt;&lt;SPAN class="s3" style="font-size: 1em; line-height: 1.5;"&gt;1&lt;/SPAN&gt;&lt;SPAN class="s2" style="font-size: 1em; line-height: 1.5;"&gt;,&lt;/SPAN&gt;&lt;SPAN class="s3" style="font-size: 1em; line-height: 1.5;"&gt;10000&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p2"&gt;&lt;SPAN class="s3"&gt;&amp;nbsp; &amp;nbsp; z(i)=(i&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;-1&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;)*&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;0.01&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p3"&gt;&lt;SPAN class="s2"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;END&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;DO&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p1"&gt;&lt;SPAN class="s2"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;DO&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; i=&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;10001&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;,&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;11799&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p2"&gt;&lt;SPAN class="s3"&gt;&amp;nbsp; &amp;nbsp; z(i)=&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;100&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;+(i&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;-10000-1&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;)*&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;0.5&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p3"&gt;&lt;SPAN class="s2"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;END&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;DO&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p2"&gt;&lt;SPAN class="s3"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;DO&lt;/SPAN&gt;&lt;SPAN class="s3"&gt; i=&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;11800&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;,Layer_Num&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p2"&gt;&lt;SPAN class="s3"&gt;&amp;nbsp; &amp;nbsp; z(i)=&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;1000&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;+(i&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;-11799-1&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;)&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p3"&gt;&lt;SPAN class="s2"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;END&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;DO&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p3"&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;! coveriance matrix&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p1"&gt;&lt;SPAN class="s1"&gt;Do&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; i=&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;1&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;,Layer_Num&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p1"&gt;&lt;SPAN class="s2"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;Do&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; j=&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;1&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;,i&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p1"&gt;&lt;SPAN class="s2"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; c(i,j)=abs(z(i)-z(j))&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p1"&gt;&lt;SPAN class="s2"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; c(j,i)=c(i,j)&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p3"&gt;&lt;SPAN class="s3"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;End&lt;/SPAN&gt;&lt;SPAN class="s3"&gt; &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;DO&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p3"&gt;&lt;SPAN class="s2"&gt;End&lt;/SPAN&gt;&lt;SPAN class="s3"&gt; &lt;/SPAN&gt;&lt;SPAN class="s2"&gt;DO&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p4"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P class="p1"&gt;&lt;SPAN class="s2"&gt;c=-c/lc&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p1"&gt;&lt;SPAN class="s2"&gt;c=exp(c)&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p1"&gt;&lt;SPAN class="s2"&gt;rhostd(:,&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;1&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;)=std*exp(-z/p&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;3&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;)&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p1"&gt;&lt;SPAN class="s2"&gt;sigma=matmul(rhostd,TRANSPOSE(rhostd))&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p1"&gt;&lt;SPAN class="s2"&gt;sigma=sigma*c&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p1"&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;!cholesky decomposition&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p1"&gt;&lt;SPAN class="s1"&gt;CALL&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; SPOTRF(&lt;/SPAN&gt;&lt;SPAN class="s5"&gt;'U'&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;,Layer_Num,sigma,Layer_Num,CholFlag)&lt;/SPAN&gt;&lt;/P&gt;

&lt;P class="p1"&gt;print*,CholFlag&lt;/P&gt;

&lt;P class="p1"&gt;End&lt;/P&gt;</description>
      <pubDate>Thu, 24 Sep 2015 23:03:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/unexpected-potrf-subroutine-failure/m-p/1046063#M20981</guid>
      <dc:creator>Yuna_D_</dc:creator>
      <dc:date>2015-09-24T23:03:44Z</dc:date>
    </item>
    <item>
      <title>Please post the actual code.</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/unexpected-potrf-subroutine-failure/m-p/1046064#M20982</link>
      <description>&lt;P&gt;Please post the actual code. You cannot use the integer variable "Layer_Num" to dimension arrays, so your code gets rejected by the compiler. It is of little use to discuss the running behavior of code that cannot even be compiled.&lt;/P&gt;

&lt;P&gt;It would be better if you attached the source file or pasted the code using the {code} button.&lt;/P&gt;</description>
      <pubDate>Thu, 24 Sep 2015 23:26:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/unexpected-potrf-subroutine-failure/m-p/1046064#M20982</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2015-09-24T23:26:00Z</dc:date>
    </item>
    <item>
      <title>Sorry, I have modified the</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/unexpected-potrf-subroutine-failure/m-p/1046065#M20983</link>
      <description>&lt;P&gt;Sorry, I have modified the code. It should work now. Initially, it is just a subroutine in a big project, I extract the related code so it looks like this. Sorry for the trouble.&lt;/P&gt;</description>
      <pubDate>Fri, 25 Sep 2015 00:12:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/unexpected-potrf-subroutine-failure/m-p/1046065#M20983</guid>
      <dc:creator>Yuna_D_</dc:creator>
      <dc:date>2015-09-25T00:12:29Z</dc:date>
    </item>
  </channel>
</rss>

