Matwrap is a tool for interfacing C++ code into matrix-oriented
scripting languages such as Matlab 5,
Octave, and
tela. It generates all
the code to convert from the scripting language's internal types into
the types that your C++ code understands (e.g., double,
char *, float *, struct abc *).
You do not need to understand any of the API details of the language to
use your C++ code; just give matwrap a .h file describing your
functions.
Brief list of features:
Available from this site:
Several examples are contained in the distribution, including the wrapper for the pgplot plotting library, and a neuron simulator written as a C++ class. I'd like to include a lot more examples of its use, so feel free to send me anything that might be appropriate.
Matwrap requires a relatively recent version of perl (it was tested with version 5.004 and 5.005) and a C++ compiler that supports alloca (such as gcc). A C++ compiler is currently needed even if you are wrapping C code. Matwrap has been developed on unix; the generation of the wrapper code itself should be more or less the same on all platforms, but the procedure for linking the code to the scripting language will probably be different.
The Mathtools web site is a good place for online information about matlab and extensions.
Another wrapper generator called SWIG exists for languages such as perl, python, and tcl. Someday, hopefully, the matrix handling features of Matwrap will be incorporated into SWIG, but for the moment they are entirely separate.