<?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 Ok, the problem size is not in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155898#M27533</link>
    <description>&lt;P&gt;Ok, the problem size is not too big. We expect to see the performance would be better with large problem sizes. You may try to check.&amp;nbsp;From our side, we never tried this lib in the past and will be useful to know the results.&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 21 Feb 2019 15:50:06 GMT</pubDate>
    <dc:creator>Gennady_F_Intel</dc:creator>
    <dc:date>2019-02-21T15:50:06Z</dc:date>
    <item>
      <title>Question about matrix inverse</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155892#M27527</link>
      <description>&lt;P&gt;Recetnly, i was trying to replace the function for matrix inverse by that of MKL. However, after making it, i found that the time used for computing was not improved and be slower. I don't know the real reason.It could be appreciated that anyone can help me.&lt;/P&gt;&lt;P&gt;The original subroutine was syminvg.&lt;/P&gt;&lt;P&gt;SUBROUTINE syminvg(n,q,norm,nsing,parflg,sbrName,bigajj_limit,utest)&lt;/P&gt;&lt;P&gt;! -------------------------------------------------------------------------&lt;BR /&gt;! Purpose: &amp;nbsp; &amp;nbsp;Inversion symm. matrix with pivot search on the diagonal.&lt;BR /&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Algorithm acm 150, H. Rutishauser 1963&lt;BR /&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Change: upper triangle of matrix in vektor q(n*(n+1)/2)&lt;BR /&gt;!&lt;BR /&gt;! Author: &amp;nbsp; &amp;nbsp; H. Rutishauser, C. Urschl&lt;BR /&gt;!&lt;BR /&gt;! Created: &amp;nbsp; &amp;nbsp;24-Jan-2003&lt;BR /&gt;!&lt;BR /&gt;! Changes: &amp;nbsp; &amp;nbsp;09-Aug-2010 RD: Generic use, only one version for all purposes&lt;BR /&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 27-Oct-2010 SL: use m_bern with ONLY&lt;BR /&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 23-May-2011 RD: Special handling for diagonal elements with NaN&lt;BR /&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30-Jul-2012 RD: Evaluate the inversion (only for GRP_AIUB)&lt;BR /&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 22-Sep-2012 RD: Change variable name "unit" to "utest"&lt;BR /&gt;!&lt;BR /&gt;! Copyright: &amp;nbsp;Astronomical Institute&lt;BR /&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; University of Bern&lt;BR /&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Switzerland&lt;BR /&gt;! -------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I used two subroutines of intel mkl:&amp;nbsp;&lt;/P&gt;&lt;P&gt;CALL DPPTRF('U',n,q0,INFO)&amp;nbsp; &amp;nbsp;CALL DPPTRI('U',n,q0,INFO)&lt;/P&gt;</description>
      <pubDate>Wed, 20 Feb 2019 08:20:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155892#M27527</guid>
      <dc:creator>kong__yao</dc:creator>
      <dc:date>2019-02-20T08:20:12Z</dc:date>
    </item>
    <item>
      <title>This is not too frequently</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155893#M27528</link>
      <description>&lt;P&gt;This is not too frequently used routines from mkl. What&amp;nbsp;performance difference do you see?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 21 Feb 2019 03:45:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155893#M27528</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2019-02-21T03:45:11Z</dc:date>
    </item>
    <item>
      <title>The performance of Intel MKL</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155894#M27529</link>
      <description>&lt;P&gt;The performance of Intel MKL is not better than original code. Could you tell me which routines is frequently used for matrix inversion?&lt;/P&gt;</description>
      <pubDate>Thu, 21 Feb 2019 07:01:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155894#M27529</guid>
      <dc:creator>kong__yao</dc:creator>
      <dc:date>2019-02-21T07:01:22Z</dc:date>
    </item>
    <item>
      <title>The code using intel mkl was</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155895#M27530</link>
      <description>&lt;P&gt;The code using intel mkl was as follows:&lt;/P&gt;&lt;P&gt;MODULE s_SYMINVMKL&lt;BR /&gt;CONTAINS&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;! -------------------------------------------------------------------------&lt;BR /&gt;! Bernese GPS Software Version 5.1&lt;BR /&gt;! -------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;SUBROUTINE syminvmkl(n,q,norm,nsing,parflg,sbrName,bigajj_limit,utest)&lt;/P&gt;&lt;P&gt;! -------------------------------------------------------------------------&lt;BR /&gt;! Purpose: &amp;nbsp; &amp;nbsp;Inversion symm. matrix using subroutine using Intel MKL&lt;BR /&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Change: upper triangle of matrix in vektor q(n*(n+1)/2)&lt;BR /&gt;!&lt;BR /&gt;! Author: &amp;nbsp; &amp;nbsp; Yao Kong, Baoqi Sun&lt;BR /&gt;!&lt;BR /&gt;! Created: &amp;nbsp; &amp;nbsp;24-Jan-2019&lt;BR /&gt;!&lt;BR /&gt;! Changes: &amp;nbsp; &amp;nbsp;09-Aug-2010 RD: Generic use, only one version for all purposes&lt;BR /&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 27-Oct-2010 SL: use m_bern with ONLY&lt;BR /&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 23-May-2011 RD: Special handling for diagonal elements with NaN&lt;BR /&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 30-Jul-2012 RD: Evaluate the inversion (only for GRP_AIUB)&lt;BR /&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 22-Sep-2012 RD: Change variable name "unit" to "utest"&lt;BR /&gt;!&lt;BR /&gt;! Copyright: &amp;nbsp;Astronomical Institute&lt;BR /&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; University of Bern&lt;BR /&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Switzerland&lt;BR /&gt;! -------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp; USE m_bern, &amp;nbsp; ONLY: i4b, r8b, lfnErr&lt;/P&gt;&lt;P&gt;&amp;nbsp; USE s_matcop&lt;BR /&gt;&amp;nbsp; USE s_statis&lt;BR /&gt;&amp;nbsp; USE f_ikf&lt;/P&gt;&lt;P&gt;&amp;nbsp; IMPLICIT NONE&lt;/P&gt;&lt;P&gt;! List of Parameters&lt;BR /&gt;! ------------------&lt;BR /&gt;&amp;nbsp; INTEGER(i4b),INTENT(IN) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: n &amp;nbsp; &amp;nbsp; &amp;nbsp; ! Number of parameters&lt;BR /&gt;&amp;nbsp; REAL(r8b),DIMENSION(n*(n+1)/2) :: q &amp;nbsp; &amp;nbsp; &amp;nbsp; ! Upper trianle, columnwise&lt;BR /&gt;&amp;nbsp; INTEGER(i4b) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; :: norm &amp;nbsp; &amp;nbsp;! 1: normalize the diagonale of q&lt;BR /&gt;&amp;nbsp; INTEGER(i4b),INTENT(OUT) &amp;nbsp; &amp;nbsp; &amp;nbsp; :: nsing &amp;nbsp; ! Number of singular parameters&lt;BR /&gt;&amp;nbsp; INTEGER(i4b),DIMENSION(n), &amp;amp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OPTIONAL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: parflg &amp;nbsp;! Flag for singular parameters&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! =0: parameter not singular&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! =1: parameter singular&lt;BR /&gt;&amp;nbsp; CHARACTER(LEN=*), OPTIONAL &amp;nbsp; &amp;nbsp; :: sbrName ! Name of calling routine to enable&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! reporting of singularities&lt;BR /&gt;&amp;nbsp; REAL(r8b), &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OPTIONAL &amp;nbsp; &amp;nbsp; :: bigajj_limit &amp;nbsp;! limit for singulatiy detection&lt;BR /&gt;&amp;nbsp; CHARACTER(LEN=*), OPTIONAL &amp;nbsp; &amp;nbsp; :: utest &amp;nbsp; &amp;nbsp;! Name of calling routine to check&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! the numerical performance&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;! Local Variables&lt;BR /&gt;! ---------------&lt;BR /&gt;&amp;nbsp; CHARACTER(LEN=1), DIMENSION(n) :: ls1&lt;/P&gt;&lt;P&gt;&amp;nbsp; REAL(r8b), &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DIMENSION(n) :: hs1&lt;BR /&gt;&amp;nbsp; REAL(r8b), &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DIMENSION(n) :: hs2&lt;BR /&gt;&amp;nbsp; REAL(r8b), &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DIMENSION(n) :: scl_tot&lt;BR /&gt;&amp;nbsp; REAL(r8b) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: xRms1,xRms0&lt;BR /&gt;&amp;nbsp; REAL(r8b) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: xMin1,xMin0&lt;BR /&gt;&amp;nbsp; REAL(r8b) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: xMax1,xMax0&lt;BR /&gt;&amp;nbsp; REAL(r8b), &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;POINTER, &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;amp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DIMENSION(:) :: q0&lt;BR /&gt;&amp;nbsp; REAL(r8b) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: ajj&lt;BR /&gt;&amp;nbsp; REAL(r8b) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: bigajj&lt;BR /&gt;&amp;nbsp; REAL(r8b) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: limit = 1.0d-10 ! limit to detect a singular&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! parameter&lt;/P&gt;&lt;P&gt;&amp;nbsp; INTEGER(i4b) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; :: i, j, k&lt;BR /&gt;&amp;nbsp; INTEGER(i4b) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; :: ij, jj, jk, kj, kk&lt;BR /&gt;&amp;nbsp; INTEGER(i4b) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; :: kp1, km1&lt;BR /&gt;&amp;nbsp; INTEGER(i4b) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; :: jkmax&lt;BR /&gt;&amp;nbsp; INTEGER(i4b) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; :: ising&lt;BR /&gt;&amp;nbsp; INTEGER(i4b) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; :: INFO&lt;BR /&gt;&amp;nbsp; INTEGER(i4b), DIMENSION(n) :: IPIV&lt;BR /&gt;&amp;nbsp; REAL(r8b), DIMENSION(n) &amp;nbsp; &amp;nbsp;:: WORK&lt;/P&gt;&lt;P&gt;&amp;nbsp; LOGICAL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: prtFlg&lt;BR /&gt;&amp;nbsp; LOGICAL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: isSing&lt;BR /&gt;&amp;nbsp; LOGICAL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: doNorm = .TRUE.&lt;/P&gt;&lt;P&gt;! Overwrite the limitation of singular parameters&lt;BR /&gt;! if the optional parameter is set&lt;BR /&gt;&amp;nbsp; IF (PRESENT(bigajj_limit)) THEN&lt;BR /&gt;&amp;nbsp; &amp;nbsp; limit = bigajj_limit&lt;BR /&gt;&amp;nbsp; ENDIF&lt;/P&gt;&lt;P&gt;! Write or not write warning message&lt;BR /&gt;&amp;nbsp; prtFlg = (PRESENT(sbrName))&lt;/P&gt;&lt;P&gt;! Make a copy of the input matrix&lt;BR /&gt;! -------------------------------&lt;BR /&gt;&amp;nbsp; NULLIFY(q0)&lt;BR /&gt;#ifdef GRP_AIUB&lt;BR /&gt;&amp;nbsp; IF (PRESENT(utest)) THEN&lt;BR /&gt;!! Print matrix "q" to screen formatted for MATLBA&lt;BR /&gt;!! &amp;nbsp; &amp;nbsp;write(*,'(A)') '&amp;gt;&amp;gt;q0&amp;lt;&amp;lt; q = &amp;nbsp;[ ...'&lt;BR /&gt;!! &amp;nbsp; &amp;nbsp;DO i = 1,n&lt;BR /&gt;!! &amp;nbsp; &amp;nbsp; &amp;nbsp;DO j = 1,n-1&lt;BR /&gt;!! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WRITE(*,'(A,E30.20,A)') '&amp;gt;&amp;gt;q0&amp;lt;&amp;lt; ',q(IKF(i,j)),' ...'&lt;BR /&gt;!! &amp;nbsp; &amp;nbsp; &amp;nbsp;ENDDO&lt;BR /&gt;!! &amp;nbsp; &amp;nbsp; &amp;nbsp;IF ( i &amp;lt; n ) THEN&lt;BR /&gt;!! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WRITE(*,'(A,E30.20)') '&amp;gt;&amp;gt;q0&amp;lt;&amp;lt; ',q(IKF(i,j))&lt;BR /&gt;!! &amp;nbsp; &amp;nbsp; &amp;nbsp;ELSE&lt;BR /&gt;!! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WRITE(*,'(A,E30.20,A)') '&amp;gt;&amp;gt;q0&amp;lt;&amp;lt; ',q(IKF(i,j)),' ]'&lt;BR /&gt;!! &amp;nbsp; &amp;nbsp; &amp;nbsp;ENDIF&lt;BR /&gt;!! &amp;nbsp; &amp;nbsp;ENDDO&lt;BR /&gt;!! End of printing section&lt;BR /&gt;&amp;nbsp; &amp;nbsp; CALL matcop(1,IKF(n,n),q,q0)&lt;BR /&gt;&amp;nbsp; ENDIF&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; CALL matcop(1,IKF(n,n),q,q0)&lt;BR /&gt;&amp;nbsp; &amp;nbsp; CALL DPPTRF('U',n,q0,INFO)&lt;BR /&gt;&amp;nbsp; &amp;nbsp;IF (INFO.EQ.0)THEN&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CALL DPPTRI('U',n,q0,INFO)&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;q=q0&lt;BR /&gt;&amp;nbsp; &amp;nbsp;ELSE&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;!WRITE(*,*)"Matrix is not positive-definite"&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CALL DSPTRF('U',n,q,IPIV,INFO)&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CALL DSPTRI('U',n,q,IPIV,WORK,INFO)&lt;BR /&gt;&amp;nbsp; &amp;nbsp;END IF&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 21 Feb 2019 07:07:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155895#M27530</guid>
      <dc:creator>kong__yao</dc:creator>
      <dc:date>2019-02-21T07:07:31Z</dc:date>
    </item>
    <item>
      <title>I don't understand why you</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155896#M27531</link>
      <description>&lt;P&gt;I don't understand why you attached and added the the same code to this thread at the same time. Attachment will be enough, but it is not still clear what is the performance differences do you see between mkl's and&amp;nbsp;syminvg?&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 21 Feb 2019 09:41:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155896#M27531</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2019-02-21T09:41:43Z</dc:date>
    </item>
    <item>
      <title>I am sorry for adding the</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155897#M27532</link>
      <description>&lt;P&gt;I am sorry for adding the same code. The performance difference is nearly zero. For a matrix A(753,753), to get the inverse of A, the time used by two function is nealy the same.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 21 Feb 2019 12:21:52 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155897#M27532</guid>
      <dc:creator>kong__yao</dc:creator>
      <dc:date>2019-02-21T12:21:52Z</dc:date>
    </item>
    <item>
      <title>Ok, the problem size is not</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155898#M27533</link>
      <description>&lt;P&gt;Ok, the problem size is not too big. We expect to see the performance would be better with large problem sizes. You may try to check.&amp;nbsp;From our side, we never tried this lib in the past and will be useful to know the results.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 21 Feb 2019 15:50:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155898#M27533</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2019-02-21T15:50:06Z</dc:date>
    </item>
    <item>
      <title>I want to know which function</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155899#M27534</link>
      <description>&lt;P&gt;I want to know which function is frequently used!&lt;/P&gt;</description>
      <pubDate>Fri, 22 Feb 2019 09:35:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155899#M27534</guid>
      <dc:creator>kong__yao</dc:creator>
      <dc:date>2019-02-22T09:35:25Z</dc:date>
    </item>
    <item>
      <title>?getri+?getrf</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155900#M27535</link>
      <description>&lt;P&gt;?getri+?getrf&lt;/P&gt;</description>
      <pubDate>Fri, 22 Feb 2019 11:02:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155900#M27535</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2019-02-22T11:02:37Z</dc:date>
    </item>
    <item>
      <title>To elaborate on what Gennady</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155901#M27536</link>
      <description>&lt;P&gt;To elaborate on what Gennady has pointed out.&amp;nbsp; It is very rare (but not unheard of) to have an application that truly needs the full inverse of a matrix.&amp;nbsp; This is actually a rather unstable problem.&amp;nbsp; However, factoring the matrix in some manner like Cholesky (A = LL^T) or the LU factorization (A=LU) is a much more stable problem.&amp;nbsp; Then it is just a couple of applications of forward or backward solve to get the action of A inverse without actually computing the inverse.&amp;nbsp; From, a numerical standpoint, this is much more efficient and stable.&amp;nbsp; Now there are some cases where having the actual inverse is actually important and without knowing your actual problem statement, we cannot advise on whether the ?getri/?getrf functions are sufficient, but with fairly high probability they are the right tools for the job.&lt;/P&gt;</description>
      <pubDate>Fri, 22 Feb 2019 16:06:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155901#M27536</guid>
      <dc:creator>Spencer_P_Intel</dc:creator>
      <dc:date>2019-02-22T16:06:43Z</dc:date>
    </item>
    <item>
      <title>I used dgetri and dgetrif</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155902#M27537</link>
      <description>&lt;P&gt;I used dgetri and dgetrif functions，however the performance is stiil not improved!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 07 Mar 2019 07:14:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-matrix-inverse/m-p/1155902#M27537</guid>
      <dc:creator>kong__yao</dc:creator>
      <dc:date>2019-03-07T07:14:51Z</dc:date>
    </item>
  </channel>
</rss>

