Fortran 如何知道机器相关常数
我使用的是64位WindowsVista 我需要编译一个Fortran文件,为此我需要编辑该文件以匹配我的机器的“机器相关常量” 在该文件中,我有以下信息。 任何建议都会大有帮助。 谢谢Fortran 如何知道机器相关常数,fortran,Fortran,我使用的是64位WindowsVista 我需要编译一个Fortran文件,为此我需要编辑该文件以匹配我的机器的“机器相关常量” 在该文件中,我有以下信息。 任何建议都会大有帮助。 谢谢 C机器相关常数的解释 C C XINF=最大正机器编号 C XMAX1=beta**(p-1),其中beta是 C浮点系统,p是贝塔的基数 浮点有效位中的C位。这是一个 C非整数浮点数的上界,以及 C可接受负值下限的负值 C PSI的论点。如果需要四舍五入,请将其四舍五入 C值下降。 C XMIN1=可接受参数
C机器相关常数的解释
C
C XINF=最大正机器编号
C XMAX1=beta**(p-1),其中beta是
C浮点系统,p是贝塔的基数
浮点有效位中的C位。这是一个
C非整数浮点数的上界,以及
C可接受负值下限的负值
C PSI的论点。如果需要四舍五入,请将其四舍五入
C值下降。
C XMIN1=可接受参数的最小值。我们
C建议XMIN1=最大值(1/XINF,xmin)四舍五入,其中
C xmin是最小的正浮点数。
C XSMALL=绝对参数,在该参数下,PI*COTAN(PI*X)可能为
C用1/X表示。我们建议使用XSMALL1。
C XLARGE=参数,超过该参数,PSI(X)可表示为
C对数(X)。方程的解
C x*ln(x)=β**p
C是一个安全值。
C
C一些重要机器的近似值如下:
C
Cβp eps xmin XINF
C
CDC 7600(标准普尔)2487.11E-15 3.13E-294 1.26E+322
C克雷-1(S.P.)2487.11E-154.58E-2467 5.45E+2465
C IEEE(IBM/XT,
C SUN等)(S.P.)2241.19E-07 1.18E-38 3.40E+38
C IEEE(IBM/XT,
C太阳等)(D.P.)2531.11D-162.23E-3081.79D+308
C IBM 3033(D.P.)16141.11D-165.40D-797.23D+75
C太阳3/160(D.P.)2531.11D-162.23D-3081.79D+308
C VAX 11/780(S.P.)2245.96E-08 2.94E-39 1.70E+38
C(D.P.)2561.39D-172.94D-391.70D+38
C(G格式)(D.P.)2531.11D-165.57D-3098.98D+307
C
C XMIN1 XMAX1 XSMALL XLARGE
C
C CDC 7600(标准普尔)3.13E-294 1.40E+14 4.64E-08 9.42E+12
C克雷-1(S.P.)1.84E-2466 1.40E+14 4.64E-08 9.42E+12
C IEEE(IBM/XT,
太阳等)1.18E-38 8.38E+06 1.90E-04 1.20E+06
C IEEE(IBM/XT,
太阳等)2.23D-308 4.50D+15 5.80D-09 2.71D+14
C IBM 3033(D.P.)1.39D-76 4.50D+15 5.80D-09 2.05D+15
C太阳3/160(D.P.)2.23D-308 4.50D+15 5.80D-09 2.71D+14
C VAX 11/780(S.P.)5.89E-39 8.38E+06 1.35E-04 1.20E+06
C(D.P.)5.89D-393.60D+162.05D-092.05D+15
C(G格式)(D.P.)1.12D-308 4.50D+15 5.80D-09 2.71D+14
C
你在我睡觉前抓到了我,所以我要简短地说一下(因为在这种状态下我无法写出合理的答案)。Fortran已经引入了许多用于确定系统相关常数的函数——拿一本书,或者一个互联网教程,查找诸如SELECTED_REAL_KIND,EPSILON(以及通常从那里得到的链接)之类的函数。你在我睡觉前抓到了我,所以我将简短地说一下(因为在这种状态下我无法写出合理的答案)。Fortran已经引入了许多用于确定系统相关常数的函数——拿一本书,或者一个互联网教程,查找诸如SELECTED_REAL_KIND,EPSILON(以及通常从那里得到的链接)之类的函数。因此,我认为您应该很好地复制您显示的表中IEEE行的值。S.P.和D.P.指的是单精度和双精度,您可能需要在其他地方指定,并在表中选择相应的行。现代Intel CPU使用IEEE兼容的浮点运算-似乎所有这些机器常量都与浮点值有关,而不是整数。因此,我认为您应该很好地复制您显示的表中IEEE行的值。S.P.和D.P.指单精度和双精度,您可能需要在其他地方指定,并在表中选择相应的行。
鉴于OP表中的低精度常数,过于保守的值不太可能对程序产生任何负面影响。也就是说,接近现实的数字可能足够好了。谢谢DaveP和wallyk。考虑到OP表中的低精度常数,过于保守的值不太可能对程序产生任何负面影响。也就是说,接近现实的数字可能足够好了。谢谢DaveP和wallyk。我会试试的。谢谢你的指导,鲁克。谢谢你的指导,鲁克。C Explanation of machine-dependent constants
C
C XINF = largest positive machine number
C XMAX1 = beta ** (p-1), where beta is the radix for the
C floating-point system, and p is the number of base-beta
C digits in the floating-point significand. This is an
C upper bound on non-integral floating-point numbers, and
C the negative of the lower bound on acceptable negative
C arguments for PSI. If rounding is necessary, round this
C value down.
C XMIN1 = the smallest in magnitude acceptable argument. We
C recommend XMIN1 = MAX(1/XINF,xmin) rounded up, where
C xmin is the smallest positive floating-point number.
C XSMALL = absolute argument below which PI*COTAN(PI*X) may be
C represented by 1/X. We recommend XSMALL < sqrt(3 eps)/pi,
C where eps is the smallest positive number such that
C 1+eps > 1.
C XLARGE = argument beyond which PSI(X) may be represented by
C LOG(X). The solution to the equation
C x*ln(x) = beta ** p
C is a safe value.
C
C Approximate values for some important machines are
C
C beta p eps xmin XINF
C
C CDC 7600 (S.P.) 2 48 7.11E-15 3.13E-294 1.26E+322
C CRAY-1 (S.P.) 2 48 7.11E-15 4.58E-2467 5.45E+2465
C IEEE (IBM/XT,
C SUN, etc.) (S.P.) 2 24 1.19E-07 1.18E-38 3.40E+38
C IEEE (IBM/XT,
C SUN, etc.) (D.P.) 2 53 1.11D-16 2.23E-308 1.79D+308
C IBM 3033 (D.P.) 16 14 1.11D-16 5.40D-79 7.23D+75
C SUN 3/160 (D.P.) 2 53 1.11D-16 2.23D-308 1.79D+308
C VAX 11/780 (S.P.) 2 24 5.96E-08 2.94E-39 1.70E+38
C (D.P.) 2 56 1.39D-17 2.94D-39 1.70D+38
C (G Format) (D.P.) 2 53 1.11D-16 5.57D-309 8.98D+307
C
C XMIN1 XMAX1 XSMALL XLARGE
C
C CDC 7600 (S.P.) 3.13E-294 1.40E+14 4.64E-08 9.42E+12
C CRAY-1 (S.P.) 1.84E-2466 1.40E+14 4.64E-08 9.42E+12
C IEEE (IBM/XT,
C SUN, etc.) (S.P.) 1.18E-38 8.38E+06 1.90E-04 1.20E+06
C IEEE (IBM/XT,
C SUN, etc.) (D.P.) 2.23D-308 4.50D+15 5.80D-09 2.71D+14
C IBM 3033 (D.P.) 1.39D-76 4.50D+15 5.80D-09 2.05D+15
C SUN 3/160 (D.P.) 2.23D-308 4.50D+15 5.80D-09 2.71D+14
C VAX 11/780 (S.P.) 5.89E-39 8.38E+06 1.35E-04 1.20E+06
C (D.P.) 5.89D-39 3.60D+16 2.05D-09 2.05D+15
C (G Format) (D.P.) 1.12D-308 4.50D+15 5.80D-09 2.71D+14
C