<?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 Quote:venugopal, vishnu wrote in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-choose-tolerance-parameters-in-lamch/m-p/1132232#M25696</link>
    <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;venugopal, vishnu wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;According to the documentation of syevr, the tolerance does not determine the accuracy/precision of the eigenvalue, but that of how orthogonal eigenvectors are to each other.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I had only looked at the documentation for SYEVR at Netlib:&amp;nbsp;http://www.netlib.org/lapack/explore-html/d2/d8a/group__double_s_yeigen_gaeed8a131adf56eaa2a9e5b1e0cce5718.html .&lt;/P&gt;&lt;P&gt;As you have pointed out, the description of ABSTOL in the MKL documentation says something different than the Netlib version. We need clarification from the MKL team regarding this difference, since generally we may assume that the APIs for a Netlib Lapack routine and the corresponding Lapack routine in MKL are equivalent.&lt;/P&gt;</description>
    <pubDate>Wed, 26 Feb 2020 13:43:05 GMT</pubDate>
    <dc:creator>mecej4</dc:creator>
    <dc:date>2020-02-26T13:43:05Z</dc:date>
    <item>
      <title>How to choose tolerance parameters in lamch?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-choose-tolerance-parameters-in-lamch/m-p/1132227#M25691</link>
      <description>&lt;P&gt;The documentation for LAMCH has many options, with short descriptions:&lt;/P&gt;&lt;P&gt;&lt;A href="https://software.intel.com/en-us/mkl-developer-reference-c-lamch" target="_blank"&gt;https://software.intel.com/en-us/mkl-developer-reference-c-lamch&lt;/A&gt;&lt;/P&gt;&lt;P&gt;But what exactly does each of them do, and how do I decide which one I want?&lt;/P&gt;&lt;P&gt;Do I use &lt;EM&gt;eps&lt;/EM&gt;, &lt;EM&gt;sfmin&lt;/EM&gt;, or &lt;VAR&gt;&lt;EM&gt;prec&lt;/EM&gt;?&lt;/VAR&gt;&lt;/P&gt;&lt;P&gt;I tested them for my machine, and the values are:&lt;/P&gt;&lt;P&gt;&lt;EM&gt;eps&lt;/EM&gt; = 1.11022e-16&lt;/P&gt;&lt;P&gt;&lt;EM&gt;sfmin&lt;/EM&gt; = 2.22507e-308&lt;/P&gt;&lt;P&gt;&lt;VAR&gt;&lt;EM&gt;prec&lt;/EM&gt; &lt;/VAR&gt;= 2.22045e-16&lt;/P&gt;</description>
      <pubDate>Wed, 26 Feb 2020 07:52:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-choose-tolerance-parameters-in-lamch/m-p/1132227#M25691</guid>
      <dc:creator>Vishnu</dc:creator>
      <dc:date>2020-02-26T07:52:06Z</dc:date>
    </item>
    <item>
      <title>The ?lamch functions are</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-choose-tolerance-parameters-in-lamch/m-p/1132228#M25692</link>
      <description>&lt;P&gt;The ?lamch functions are service functions that are called from many Lapack routines. Unless you are writing code for a new algorithm yourself, you do not need to concern yourself with the ?lamch routines. Their functionality is now available in other ways in modern languages. For example, the intrinsic function EPSILON in Fortran 90+ has the same meaning as ?lamach('e').&lt;/P&gt;</description>
      <pubDate>Wed, 26 Feb 2020 08:27:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-choose-tolerance-parameters-in-lamch/m-p/1132228#M25692</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2020-02-26T08:27:51Z</dc:date>
    </item>
    <item>
      <title>Yes, but when I call 'dsyevr'</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-choose-tolerance-parameters-in-lamch/m-p/1132229#M25693</link>
      <description>&lt;P&gt;Yes, but when I call 'dsyevr', and when I calculate eigenvectors, I need to specify a tolerance value. What do I base my choice of tolerance on? And which amongst those values seems appropriate? I'm currently using '&lt;EM&gt;prec&lt;/EM&gt;'.&lt;/P&gt;</description>
      <pubDate>Wed, 26 Feb 2020 08:59:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-choose-tolerance-parameters-in-lamch/m-p/1132229#M25693</guid>
      <dc:creator>Vishnu</dc:creator>
      <dc:date>2020-02-26T08:59:50Z</dc:date>
    </item>
    <item>
      <title>You have to assess what</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-choose-tolerance-parameters-in-lamch/m-p/1132230#M25694</link>
      <description>&lt;P&gt;You have to assess what tolerance to use (argument ABSTOL to ?syevr) based on your intended use for the eigenvalues that you obtain from the routine. If you specify too high a value, the eigenvalues will be low in accuracy. If you specify too low a value (or zero), the Lapack routine may take longer, or fail, to deliver the demanded accuracy.&lt;/P&gt;&lt;P&gt;If you are unable to assess your accuracy needs, and you will only calculate a handful of eigenvalues once, try with a low value of ABSTOL such as 1e-8. If you are going to calculate millions of eigenvalues, you will have to strike a compromise between speed and accuracy.&lt;/P&gt;&lt;P&gt;It is a mistake to think that ABSTOL can be chosen as equal to any of the values returned by ?lamch. Those values are characteristics of the computer/compiler/library being used. For example, Epsilon is the smallest absolute number for which 1 + Epsilon is different from 1. What you need, instead, is a reasonable value for the accuracy of the result of a much more complex numerical procedure -- not a mere addition.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 26 Feb 2020 09:44:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-choose-tolerance-parameters-in-lamch/m-p/1132230#M25694</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2020-02-26T09:44:27Z</dc:date>
    </item>
    <item>
      <title>According to the</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-choose-tolerance-parameters-in-lamch/m-p/1132231#M25695</link>
      <description>&lt;P&gt;According to the documentation of syevr, the tolerance does not determine the accuracy/precision of the eigenvalue, but that of how orthogonal eigenvectors are to each other.&lt;/P&gt;&lt;P&gt;&lt;A href="https://software.intel.com/en-us/mkl-developer-reference-c-syevr"&gt;https://software.intel.com/en-us/mkl-developer-reference-c-syevr&lt;/A&gt;&lt;/P&gt;&lt;P&gt;But yeah, I get your point. I should decide based on how precise I want my data to be, based on what use I'm going to make of it after.&lt;/P&gt;</description>
      <pubDate>Wed, 26 Feb 2020 12:28:41 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-choose-tolerance-parameters-in-lamch/m-p/1132231#M25695</guid>
      <dc:creator>Vishnu</dc:creator>
      <dc:date>2020-02-26T12:28:41Z</dc:date>
    </item>
    <item>
      <title>Quote:venugopal, vishnu wrote</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-choose-tolerance-parameters-in-lamch/m-p/1132232#M25696</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;venugopal, vishnu wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;According to the documentation of syevr, the tolerance does not determine the accuracy/precision of the eigenvalue, but that of how orthogonal eigenvectors are to each other.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I had only looked at the documentation for SYEVR at Netlib:&amp;nbsp;http://www.netlib.org/lapack/explore-html/d2/d8a/group__double_s_yeigen_gaeed8a131adf56eaa2a9e5b1e0cce5718.html .&lt;/P&gt;&lt;P&gt;As you have pointed out, the description of ABSTOL in the MKL documentation says something different than the Netlib version. We need clarification from the MKL team regarding this difference, since generally we may assume that the APIs for a Netlib Lapack routine and the corresponding Lapack routine in MKL are equivalent.&lt;/P&gt;</description>
      <pubDate>Wed, 26 Feb 2020 13:43:05 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-choose-tolerance-parameters-in-lamch/m-p/1132232#M25696</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2020-02-26T13:43:05Z</dc:date>
    </item>
  </channel>
</rss>

