<?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 Re: Default REAL and DOUBLE PRECISION - Results in Incorrectnes in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Default-REAL-and-DOUBLE-PRECISION-Results-in-Incorrectness-of/m-p/839835#M57804</link>
    <description>&lt;P&gt;Yeah, there's one "critical" area accessed every "n" iterations (configurable, starts as user input and then later determines for itself) in which the "quad" precision would be useful for error esitmates on calculations carried out in "double" precision.&lt;/P&gt;
&lt;P&gt;I'll find my way around this (need/desire for precise error estimates of "double" precision calcs).&lt;/P&gt;
&lt;P&gt;Thanks for the clarifications.&lt;/P&gt;
&lt;P&gt;Brian Lamm&lt;/P&gt;</description>
    <pubDate>Thu, 05 Jul 2007 16:32:03 GMT</pubDate>
    <dc:creator>brianlamm</dc:creator>
    <dc:date>2007-07-05T16:32:03Z</dc:date>
    <item>
      <title>Default REAL and DOUBLE PRECISION - Results in Incorrectness of Results</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Default-REAL-and-DOUBLE-PRECISION-Results-in-Incorrectness-of/m-p/839826#M57795</link>
      <description>I will most likely have to file a problem report, but want to see if anyone else has experienced this: where building in "debug", I set "Default Real KIND" to 8 and "Default Double Precision KIND" to 16. I link to Intel MKL as well. &lt;BR /&gt;&lt;BR /&gt;The results of the application built with above settings yields significantly incorrect results. Changing those two above settings back to "&lt;INHERIT from="" project="" defaults=""&gt;" (which sets the above to 4 and 8, respectively), the built application delivers as expected.&lt;BR /&gt;&lt;BR /&gt;Those builds are for x64, host machine is x64 Windows.&lt;BR /&gt;&lt;BR /&gt;I have not yet experimented with "release" for x64, and have not experimented with "release" or "debug" building for ia32.&lt;BR /&gt;&lt;BR /&gt;I know that's high level (read vague), but I'm interested in finding out if anyone else has experienced that resulting incorrectness of results.&lt;BR /&gt;&lt;BR /&gt;Brian Lamm&lt;BR /&gt;&lt;/INHERIT&gt;</description>
      <pubDate>Sun, 01 Jul 2007 21:54:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Default-REAL-and-DOUBLE-PRECISION-Results-in-Incorrectness-of/m-p/839826#M57795</guid>
      <dc:creator>brianlamm</dc:creator>
      <dc:date>2007-07-01T21:54:42Z</dc:date>
    </item>
    <item>
      <title>Re: Default REAL and DOUBLE PRECISION - Results in Incorrectnes</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Default-REAL-and-DOUBLE-PRECISION-Results-in-Incorrectness-of/m-p/839827#M57796</link>
      <description>You say you link to Intel MKL - how do you select the proper MKL routine to call for the data kind?&lt;BR /&gt;</description>
      <pubDate>Sun, 01 Jul 2007 22:38:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Default-REAL-and-DOUBLE-PRECISION-Results-in-Incorrectness-of/m-p/839827#M57796</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2007-07-01T22:38:39Z</dc:date>
    </item>
    <item>
      <title>Re: Default REAL and DOUBLE PRECISION - Results in Incorrectnes</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Default-REAL-and-DOUBLE-PRECISION-Results-in-Incorrectness-of/m-p/839828#M57797</link>
      <description>Oh, that's absolutely simple, robust, and portable across any f95-compliant compiler. I use f95 interfaces to MKL, which call out the real kind as WP = KIND(1.0D0) for double precison routines (WP is declared as a parameter).&lt;BR /&gt;&lt;BR /&gt;In my code, I do the same simple, robust, completely portable implementation: I declare a parameter DP = KIND(1.0D0) for the kind type parameter for double precision reals.&lt;BR /&gt;&lt;BR /&gt;Therefore the default KIND is taken from whatever default is in place for single and double precision reals at the time of the build.&lt;BR /&gt;&lt;BR /&gt;Nowhere in any of my or any of MKL interfaces are explicit numerical values referenced, it's always WP = KIND(1.0E0) for single precision and WP = KIND(1.0D0) for double precision, so that the default kind numbers in affect at the time of build are used.&lt;BR /&gt;&lt;BR /&gt;I do what Intel MKL documentation calls what an "advanced user" does: I do not use MKL capability to pre-build f95 interfaces, I do it directly by INCLUDE'ing the correct source files. So when IVF builder gets to the MKL definitions, they are included as source and the "WP" parameters get set to what IVF has defined as "default".&lt;BR /&gt;&lt;BR /&gt;Simple.&lt;BR /&gt;&lt;BR /&gt;Brian Lamm&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Sun, 01 Jul 2007 23:38:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Default-REAL-and-DOUBLE-PRECISION-Results-in-Incorrectness-of/m-p/839828#M57797</guid>
      <dc:creator>brianlamm</dc:creator>
      <dc:date>2007-07-01T23:38:33Z</dc:date>
    </item>
    <item>
      <title>Re: Default REAL and DOUBLE PRECISION - Results in Incorrectnes</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Default-REAL-and-DOUBLE-PRECISION-Results-in-Incorrectness-of/m-p/839829#M57798</link>
      <description>&lt;DIV align="left"&gt;Here's the relevant code from my app:&lt;BR /&gt;&lt;/DIV&gt;!########################################################################################################&lt;BR /&gt;!&lt;BR /&gt; MODULE mod_ircl_intrinsic_types&lt;BR /&gt; PUBLIC&lt;BR /&gt; INTEGER, PARAMETER :: I4B = SELECTED_INT_KIND(9)&lt;BR /&gt; INTEGER, PARAMETER :: I2B = SELECTED_INT_KIND(4)&lt;BR /&gt; INTEGER, PARAMETER :: I1B = SELECTED_INT_KIND(2)&lt;BR /&gt; INTEGER, PARAMETER :: SP = KIND(1.0)&lt;BR /&gt; INTEGER, PARAMETER :: DP = KIND(1.0D0)&lt;BR /&gt; INTEGER, PARAMETER :: SPC = KIND((1.0,1.0))&lt;BR /&gt; INTEGER, PARAMETER :: DPC = KIND((1.0D0,1.0D0))&lt;BR /&gt; INTEGER, PARAMETER :: LGL = KIND(.TRUE.)&lt;BR /&gt; REAL(SP), PARAMETER :: PI = 3.141592653589793238462643383279502884197_sp&lt;BR /&gt; REAL(SP), PARAMETER :: PIO2 = 1.57079632679489661923132169163975144209858_sp&lt;BR /&gt; REAL(SP), PARAMETER :: TWOPI = 6.283185307179586476925286766559005768394_sp&lt;BR /&gt; REAL(DP), PARAMETER :: PI_D = 3.141592653589793238462643383279502884197_dp&lt;BR /&gt; REAL(DP), PARAMETER :: PIO2_D = 1.57079632679489661923132169163975144209858_dp&lt;BR /&gt; REAL(DP), PARAMETER :: TWOPI_D = 6.283185307179586476925286766559005768394_dp&lt;BR /&gt; END MODULE mod_ircl_intrinsic_types&lt;BR /&gt;!&lt;BR /&gt;!########################################################################################################&lt;BR /&gt;!&lt;BR /&gt;! The following is Intel-MKL-specific: the file INCLUDEd below houses in a MODULE&lt;BR /&gt;! the INTEFACEs of the Fortran-77 "versions" of Intel-MKL, and are USEd by the&lt;BR /&gt;! Fortran-95 interface versions, the source codes of which are INCLUDEd in&lt;BR /&gt;! MODULE mod_BLAS_realcplx_int.&lt;BR /&gt;!&lt;BR /&gt;! NOTE: The following INCLUDE must be placed before MODULE mod_BLAS_realcmplx_int&lt;BR /&gt;! since the MODULE PROCEDUREs called out in MODULE mod_BLAS_realcmplx_int&lt;BR /&gt;! in the generic INTERFACEs have source files (in the INCLUDEs) that reference&lt;BR /&gt;! the MODULE MKL77_BLAS found in 'mkl_blas_protos.f90'&lt;BR /&gt;!&lt;BR /&gt; INCLUDE 'mkl_blas_protos.f90' !* ( one MODULE (interfaces only) : to date (100406) interfaces&lt;BR /&gt; !* do not explicitly appear in Lotek
-code )&lt;BR /&gt;!&lt;BR /&gt;!&lt;BR /&gt;!########################################################################################################&lt;BR /&gt;!&lt;BR /&gt; MODULE mod_BLAS_realcplx_int&lt;BR /&gt;!&lt;BR /&gt; PUBLIC&lt;BR /&gt;!&lt;BR /&gt;! import BLAS through Intel MKL ( MKL-specific )&lt;BR /&gt;! NOTE: updated to MKL Fortran 95 interfaces 12/05/2005&lt;BR /&gt;!&lt;BR /&gt; INTERFACE DOT&lt;BR /&gt; MODULE PROCEDURE SDOT_MKL95, DDOT_MKL95&lt;BR /&gt; END INTERFACE DOT&lt;BR /&gt;!&lt;BR /&gt; INTERFACE GEMV&lt;BR /&gt; MODULE PROCEDURE SGEMV_MKL95, DGEMV_MKL95, &amp;amp;&lt;BR /&gt; CGEMV_MKL95, ZGEMV_MKL95&lt;BR /&gt; END INTERFACE GEMV&lt;BR /&gt;&lt;BR /&gt; INTERFACE NRM2&lt;BR /&gt; MODULE PROCEDURE SNRM2_MKL95, DNRM2_MKL95, &amp;amp;&lt;BR /&gt; SCNRM2_MKL95, DZNRM2_MKL95&lt;BR /&gt; END INTERFACE NRM2&lt;BR /&gt;!&lt;BR /&gt; CONTAINS&lt;BR /&gt;!&lt;BR /&gt; INCLUDE 'sdot.f90'&lt;BR /&gt; INCLUDE 'ddot.f90'&lt;BR /&gt;!&lt;BR /&gt; INCLUDE 'sgemv.f90'&lt;BR /&gt; INCLUDE 'dgemv.f90'&lt;BR /&gt; INCLUDE 'cgemv.f90'&lt;BR /&gt; INCLUDE 'zgemv.f90'&lt;BR /&gt;!&lt;BR /&gt; INCLUDE 'snrm2.f90'&lt;BR /&gt; INCLUDE 'dnrm2.f90'&lt;BR /&gt; INCLUDE 'scnrm2.f90'&lt;BR /&gt; INCLUDE 'dznrm2.f90'&lt;BR /&gt;!&lt;BR /&gt;!-------------------------------------------------------------------------------------------------------&lt;BR /&gt;!&lt;BR /&gt; END MODULE mod_BLAS_realcplx_int&lt;BR /&gt;!&lt;BR /&gt;!########################################################################################################&lt;BR /&gt;&lt;BR /&gt;so the correct real kinds are used because I have defined generics which disambiguate based on KIND alone.&lt;BR /&gt;&lt;BR /&gt;A snippet of the module "MODULE MKL77_BLAS" (MKL-provided) housed in file "mkl_blas_protos.f90" (MKL-provided) for the "dot" function is&lt;BR /&gt;&lt;BR /&gt;MODULE MKL77_BLAS&lt;BR /&gt;.&lt;BR /&gt;.&lt;BR /&gt;INTERFACE MKL77_DOT&lt;BR /&gt; PURE FUNCTION SDOT(N,X,INCX,Y,INCY)&lt;BR /&gt; INTEGER, PARAMETER :: WP = KIND(1.0E0)&lt;BR /&gt; REAL(WP) :: SDOT&lt;BR /&gt; REAL(WP), INTENT(IN) :: X(*)&lt;BR /&gt; REAL(WP), INTENT(IN) :: Y(*)&lt;BR /&gt; INTEGER, INTENT(IN) :: INCX&lt;BR /&gt; INTEGER, INTENT(IN) :: INCY&lt;BR /&gt; INTEGER, INTENT(IN) :: N&lt;BR /&gt; END FUNCTION SDOT&lt;BR /&gt; PURE FUNCTION DDOT(N,X,INCX,Y,INCY)&lt;BR /&gt; INTEGER, PARAMETER :: WP = KIND(1.0D0)&lt;BR /&gt; REAL(WP) :: DDOT&lt;BR /&gt; REAL(WP), INTENT(IN) :: X(*)&lt;BR /&gt; REAL(WP), INTENT(IN) :: Y(*)&lt;BR /&gt; INTEGER, INTENT(IN) :: INCX&lt;BR /&gt; INTEGER, INTENT(IN) :: INCY&lt;BR /&gt; INTEGER, INTENT(
IN) :: N&lt;BR /&gt; END FUNCTION DDOT&lt;BR /&gt;END INTERFACE MKL77_DOT&lt;BR /&gt;.&lt;BR /&gt;.&lt;BR /&gt;&lt;BR /&gt;The source code in sdot.f90 (MKL-provided) is as&lt;BR /&gt;&lt;BR /&gt;PURE FUNCTION SDOT_MKL95(X,Y)&lt;BR /&gt; ! MKL Fortran77 call:&lt;BR /&gt; ! SDOT(N,X,INCX,Y,INCY)&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Use statements &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; USE MKL77_BLAS, ONLY: MKL77_DOT&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Implicit statement &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; IMPLICIT NONE&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Kind parameter &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; INTEGER, PARAMETER :: WP = KIND(1.0E0)&lt;BR /&gt; REAL(WP) :: SDOT_MKL95&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Array arguments &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; REAL(WP), INTENT(IN) :: X(:)&lt;BR /&gt; REAL(WP), INTENT(IN) :: Y(:)&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Local declarations &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Parameters &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; CHARACTER(LEN=3), PARAMETER :: SRNAME = 'DOT'&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Local scalars &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; INTEGER :: INCX&lt;BR /&gt; INTEGER :: INCY&lt;BR /&gt; INTEGER :: N&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Intrinsic functions &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; INTRINSIC SIZE&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Executable statements &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Init optional and skipped scalars &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; INCX = 1&lt;BR /&gt; INCY = 1&lt;BR /&gt; N = SIZE(X)&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Call blas77 routine &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; SDOT_MKL95 = MKL77_DOT(N,X,INCX,Y,INCY)&lt;BR /&gt;END FUNCTION SDOT_MKL95&lt;BR /&gt;&lt;BR /&gt;and the source code in "ddot.f90" (MKL-provided) is as&lt;BR /&gt;&lt;BR /&gt;PURE FUNCTION DDOT_MKL95(X,Y)&lt;BR /&gt; ! MKL Fortran77 call:&lt;BR /&gt; ! DDOT(N,X,INCX,Y,INCY)&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Use statements &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; USE MKL77_BLAS, ONLY: MKL77_DOT&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Implicit statement &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; IMPLICIT NONE&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Kind parameter &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; INTEGER, PARAMETER :: WP = KIND(1.0D0)&lt;BR /&gt; REAL(WP) :: DDOT_MKL95&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Array arguments &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; REAL(WP), INTENT(IN) :: X(:)&lt;BR /&gt; REAL(WP), INTENT(IN) :: Y(:)&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Local declarations &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Parameters &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; CHARACTER(LEN=3), PARAMETER :: SRNAME = 'DOT'&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Local scalars &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; INTEGER :: INCX&lt;BR /&gt; INTEGER :: INCY&lt;BR /&gt; INTEGER :: N&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Intrinsic functions &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; INTRINSIC SIZE&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Executable statements &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Init optional and skipped scalars &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; INCX = 1&lt;BR /&gt; INCY = 1&lt;BR /&gt; N = SIZE(X)&lt;BR /&gt; ! &amp;lt;&amp;lt;&amp;lt; Call blas77 routine &amp;gt;&amp;gt;&amp;gt;&lt;BR /&gt; DDOT_MKL95 = MKL77_DOT(N,X,INCX,Y,INCY)&lt;BR /&gt;END FUNCTION DDOT_MKL95&lt;BR /&gt;&lt;BR /&gt;so, as you can see, the "working precision" is set at *build* time, which, as I wrote above, where IVF encounters those definitions, IVF ha
s been set to make the default kind type parameters for real single and double precision to whatever I "told" IVF to set them to, in the "incorrect results scenario", they have been respectively set to 8 and 16.&lt;BR /&gt;&lt;BR /&gt;When I "tell" IVF to set default single and double precision reals to 4 and 8, expected (correct) results are obtained.&lt;BR /&gt;&lt;BR /&gt;Brian Lamm&lt;BR /&gt;&lt;BR /&gt;edit: and, besides, I do *not* get the incorrect results when I set IVF to make default INTEGER kind 8, and there sure are integers used in the MKL routines I reference.&lt;BR /&gt;</description>
      <pubDate>Mon, 02 Jul 2007 00:01:07 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Default-REAL-and-DOUBLE-PRECISION-Results-in-Incorrectness-of/m-p/839829#M57798</guid>
      <dc:creator>brianlamm</dc:creator>
      <dc:date>2007-07-02T00:01:07Z</dc:date>
    </item>
    <item>
      <title>Re: Default REAL and DOUBLE PRECISION - Results in Incorrectnes</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Default-REAL-and-DOUBLE-PRECISION-Results-in-Incorrectness-of/m-p/839830#M57799</link>
      <description>Thanks for the detail. I suggest you find out where in the computations the results start to diverge.&lt;BR /&gt;</description>
      <pubDate>Mon, 02 Jul 2007 01:00:57 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Default-REAL-and-DOUBLE-PRECISION-Results-in-Incorrectness-of/m-p/839830#M57799</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2007-07-02T01:00:57Z</dc:date>
    </item>
    <item>
      <title>Re: Default REAL and DOUBLE PRECISION - Results in Incorrectnes</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Default-REAL-and-DOUBLE-PRECISION-Results-in-Incorrectness-of/m-p/839831#M57800</link>
      <description>&lt;P&gt;Well, the verdict is in. MKL has no support for 16-byte anything. It cannot support single precision defaulting to 64-bit, and it cannot support double precision defaulting to 128-bit. MKL can accommodate 64-bit integers, but the ILP64 version of MKL would have to be used.&lt;/P&gt;
&lt;P&gt;That's per MKL moderator Tim.&lt;/P&gt;
&lt;P&gt;Seems like a needless roadblock, however. Why not compile "double" versions (64-bit single and 128-bit double precision) and make them available?&lt;/P&gt;
&lt;P&gt;Brian Lamm&lt;/P&gt;</description>
      <pubDate>Thu, 05 Jul 2007 13:07:07 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Default-REAL-and-DOUBLE-PRECISION-Results-in-Incorrectness-of/m-p/839831#M57800</guid>
      <dc:creator>brianlamm</dc:creator>
      <dc:date>2007-07-05T13:07:07Z</dc:date>
    </item>
    <item>
      <title>Re: Default REAL and DOUBLE PRECISION - Results in Incorrectnes</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Default-REAL-and-DOUBLE-PRECISION-Results-in-Incorrectness-of/m-p/839832#M57801</link>
      <description>I suspect that part of the problem is that MKL's history is as a performance library and 128-bit floating is emulated in software AND is Fortran-only (so far in our implementations). It would be largely pointless to try to optimize REAL(16) versions of MKL routines, though I can understand that having something available at all would be a convenience.&lt;BR /&gt;&lt;BR /&gt;Please file a feature request with Intel Premier Support (MKL product) requesting REAL(16) versions of MKL routines and explain your reasons for wanting it. In the meantime, you might do well by finding Netlib versions in Fortran and compiling them for REAL(16).&lt;BR /&gt;</description>
      <pubDate>Thu, 05 Jul 2007 15:10:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Default-REAL-and-DOUBLE-PRECISION-Results-in-Incorrectness-of/m-p/839832#M57801</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2007-07-05T15:10:03Z</dc:date>
    </item>
    <item>
      <title>Re: Default REAL and DOUBLE PRECISION - Results in Incorrectnes</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Default-REAL-and-DOUBLE-PRECISION-Results-in-Incorrectness-of/m-p/839833#M57802</link>
      <description>&lt;P&gt;Hi Steve,&lt;/P&gt;
&lt;P&gt;"largely pointless" ... ? Why would it be pointless?&lt;/P&gt;
&lt;P&gt;Thanks for the advice on compiling Netlib versions for REAL(16).&lt;/P&gt;
&lt;P&gt;Unfortunately, however, MKL pervades the application I'm developing,apart of which I exposed above, and I use Pardiso and the "dss" routines.&lt;/P&gt;
&lt;P&gt;I'll check to see if there's a PARDISO available in source. But even if I could find such, I am somewhat dubious I and IVF would do as excellent a job of optimization as what's found in MKL.&lt;/P&gt;
&lt;P&gt;Brian Lamm&lt;/P&gt;</description>
      <pubDate>Thu, 05 Jul 2007 15:32:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Default-REAL-and-DOUBLE-PRECISION-Results-in-Incorrectness-of/m-p/839833#M57802</guid>
      <dc:creator>brianlamm</dc:creator>
      <dc:date>2007-07-05T15:32:08Z</dc:date>
    </item>
    <item>
      <title>Re: Default REAL and DOUBLE PRECISION - Results in Incorrectnes</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Default-REAL-and-DOUBLE-PRECISION-Results-in-Incorrectness-of/m-p/839834#M57803</link>
      <description>I say it's pointless because any optimization done in the algorithm by the MKL programmers would be swamped by the time taken to do the REAL(16) operations in the software library. It would also mean having to write special versions of the MKL routines that look very different from the single/double versions, with limited payback and increased support cost.&lt;BR /&gt;&lt;BR /&gt;Do you really need REAL(16) for this part of the application? Performance of REAL(16) operations can be 20-50 times slower than double-precision.&lt;BR /&gt;</description>
      <pubDate>Thu, 05 Jul 2007 16:11:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Default-REAL-and-DOUBLE-PRECISION-Results-in-Incorrectness-of/m-p/839834#M57803</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2007-07-05T16:11:37Z</dc:date>
    </item>
    <item>
      <title>Re: Default REAL and DOUBLE PRECISION - Results in Incorrectnes</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Default-REAL-and-DOUBLE-PRECISION-Results-in-Incorrectness-of/m-p/839835#M57804</link>
      <description>&lt;P&gt;Yeah, there's one "critical" area accessed every "n" iterations (configurable, starts as user input and then later determines for itself) in which the "quad" precision would be useful for error esitmates on calculations carried out in "double" precision.&lt;/P&gt;
&lt;P&gt;I'll find my way around this (need/desire for precise error estimates of "double" precision calcs).&lt;/P&gt;
&lt;P&gt;Thanks for the clarifications.&lt;/P&gt;
&lt;P&gt;Brian Lamm&lt;/P&gt;</description>
      <pubDate>Thu, 05 Jul 2007 16:32:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Default-REAL-and-DOUBLE-PRECISION-Results-in-Incorrectness-of/m-p/839835#M57804</guid>
      <dc:creator>brianlamm</dc:creator>
      <dc:date>2007-07-05T16:32:03Z</dc:date>
    </item>
  </channel>
</rss>

