Macaulay2 » Documentation
Packages » ForeignFunctions :: ForeignFunctions
next | previous | forward | backward | up | index | toc

ForeignFunctions -- foreign function interface

Description

This package provides the ability to load and call "foreign" functions from shared libraries and to convert back and forth between Macaulay2 things and the foreign objects used by these functions. It is powered by libffi.

As a simple example, we call the cos function from the C standard library, which sends a double (a real number represented as a double-precision floating point number) to another double, the cosine of the input.

i1 : mycos = foreignFunction("cos", double, double)

o1 = cos

o1 : ForeignFunction
i2 : mycos pi

o2 = -1

o2 : ForeignObject of type double
i3 : value oo

o3 = -1

o3 : RR (of precision 53)

In this example, we created a ForeignFunction object using the foreignFunction constructor method and specified that both its output and input were instances of the double type, which is one of several ForeignType objects that are available.

See also the following additional examples:

Author

Version

This documentation describes version 0.4 of ForeignFunctions.

Source code

The source code from which this documentation is derived is in the file ForeignFunctions.m2.

Exports

For the programmer

The object ForeignFunctions is a package.

Menu

Examples

Types