Calling a fortran routine as a Scheme function

2019-07-24 15:15发布

Is it possible to call a Fortran routine as a Scheme function? I could find nothing by searching the web.

3条回答
Deceive 欺骗
2楼-- · 2019-07-24 15:26

It all depends on your scheme platform. There is nothing regarding FFI (foreign function interface) in the standard per se, but every actual implementation has its own FFI mechanism (if any).

If you're using racket scheme, it appears there is a solution to do so : see http://wmfarr.blogspot.fr/2007/04/linear-algebra-in-plt-scheme.html

查看更多
Viruses.
3楼-- · 2019-07-24 15:43

The answer depends on which implementation you use. Here is an example of writing bindings in Racket. The bindings are for CBLAS and LAPACK. The CBLAS library is C based and LAPACK is Fortran based. Therefore you can see both styles.

(Unfinished) Racket bindings for CBLAS and LAPACK

查看更多
地球回转人心会变
4楼-- · 2019-07-24 15:43

Is it possible? Technically, yes. Most modern Fortran compilers (e.g. ifort, gfortran) support the ISO C Interoperability feature set defined by the Fortran 2003 standard. Thus, it should be possible to write a C compatible API for the fortran libraries you need using the Fortran language. Once you have the C API in place, you should be able to use the standard C FFI provided by your scheme implementation. Of course, all of the usual caveats of calling a C function will also apply here.

查看更多
登录 后发表回答