gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 23:29:06 32 4
gpt4 key购买 nike

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

1 - 我刚刚读到 DEXP()EXP() 的古老形式.这是否意味着不应再使用它?我一直以为DEXP()是等效于 EXP() 的 double .

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

在此先感谢您的帮助!

最好的事物,
雷梅克

最佳答案

问题 1:

如前所述,最好使用泛型函数,例如 EXP(),而不是过时的特定于类型的等价函数,例如 DEXP()。

在旧的(非常旧的)FORTRAN 版本(在 FORTRAN 77 之前)中,每种数据类型都需要不同的函数。因此,如果您想要指数函数,则需要:EXP() 用于单精度数,DEXP() 用于 double 数,或 CEXP() 用于复数。 FORTAN 现在具有函数重载,因此单个函数适用于任何标准类型。

问题编号 2。

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

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

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

INTEGER, PARAMETER :: mytype = SELECTED_REAL_KIND(10, 100)
REAL(KIND=mytype) :: x

更多信息: SELECTED_REAL_KIND

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

关于fortran - fortran中指数函数的DEXP或EXP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2047922/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com