首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >fortran中指数函数的DEXP或EXP?

fortran中指数函数的DEXP或EXP?
EN

Stack Overflow用户
提问于 2010-01-12 09:36:17
回答 3查看 36.3K关注 0票数 15

我有两个非常简短的问题:

我刚读到DEXP()EXP()的古体。这是否意味着不应该再使用它?我一直认为DEXP()是相当于EXP()的双精度。

指数函数的范围是多少?它依赖于编译器吗?

EN

Stack Overflow用户

回答已采纳

发布于 2010-01-28 11:57:01

问题1:

在现代的Fortran中,使用泛型函数(如EXP() )总是比使用过时的类型特定的等价物(如DEXP() )更好。

在Fortran的旧版本中(在FORTRAN 77之前),每种数据类型都需要一个不同的函数。因此,如果需要指数函数,则需要:单精度数字的EXP(),双精度数字的DEXP(),复数的CEXP()。Fortran现在有了函数重载,所以一个函数可以用于任何标准类型。

问题2。

原则上,指数的可能范围可以取决于处理器和编译器。然而,大多数现代处理器和编译器将使用IEEE标准。

如果需要,可以在声明变量时指定所需的变量范围。要使用的函数是SELECTED_REAL_KIND([P,R])

例如,假设您要确保x的类型是十进制精度至少为10位,十进制指数范围至少为100。

代码语言:javascript
复制
INTEGER, PARAMETER :: mytype = SELECTED_REAL_KIND(10, 100)
REAL(KIND=mytype) :: x

有关更多信息:仁爱

在实践中,如果您正在编写一个要求给定精度的程序,并且该程序可以在异国或旧系统上运行,那么以这种方式定义您的类型是一个非常好的主意。这里显示了一些常见的定义:实精度

票数 21
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2047922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档