0

有没有办法从 GNU Fortran 调用 expm1 的快速实现?理想情况下,最好有一个函数来直接计算 (exp(x)-1)/x 以避免额外检查零参数。expm1 的基本版本将特别有用。

4

1 回答 1

2

这是从 libm 调用它的方式:

  use, intrinsic :: iso_c_binding, only: c_double

  implicit none

  interface
     real(c_double) function expm1(x) bind(c, name='expm1')
       import c_double
       real(c_double), intent(in), value :: x
     end function expm1
  end interface

  print*, expm1(3.4d0)

end program

如果函数的 glibc 源代码看起来不太令人沮丧,那么您可能希望将其翻译成 Fortran 以使其成为元素(如果元素是指 Fortran 关键字)。

于 2015-05-22T12:24:25.257 回答