Re: Setting up external functions to be called from Mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg82393] Re: Setting up external functions to be called from Mathematica
- From: David Bailey <dave at Remove_Thisdbailey.co.uk>
- Date: Fri, 19 Oct 2007 04:58:37 -0400 (EDT)
- References: <ff781v$nod$1@smc.vnet.net>
pinksheep415 wrote:
> Hi,
>
> I'm trying to figure out how to call an external function from
> Mathematica. Examples I've found so far doesn't give enough
> informations for a newbie like myself.
>
> The following is content of an example MathLink template file, f.tm:
>
> :Begin:
> :Function: f
> :Pattern: f[x_Integer, y_Integer]
> :Arguments: {x, y}
> :ArgumentTypes: {Integer, Integer}
> :ReturnType: Integer
> :End:
>
> 1. How do I create a MathLink template? Can I just use text editor
> and save it with .tm extension? Where should the file be saved?
>
> Following is the content of an example c code, I named it f.c:
> #include "mathlink.h"
>
> int main(int argc, char *argv[]) {
> return MLMain(argc, argv);
> }
>
> int f(int x, int y) {
> return x+y;
> }
>
> 2. Although I copied "mathlink.h" file into INCLUDE folder for C
> compiler (I'm temporarily using Dev-C++), the compiler doesn't
> recognize MLMain(argc, argv); Can anyone tell why? Does this have to
> do w/ the kind of compiler I'm using? Does this c file need to be in
> the same folder as the above .tm file?
>
> 3. After I get these files saved in the right folders, how do I use
> them?
> Any help would be greatly appreciated!!!
>
> -selim50 at gmail.com
>
>
I am sure others will help you to link with C. I would just like to
point out that if you can use Java instead, the whole process of linking
to Mathematica is vastly easier because the interface (J/Link) is
already built in.
Remember that Java implementations use Just In Time (JIT) technology,
and thus execute at approximately the same speed as C. They also have a
vast built-in library, and can themselves link to C/C++.
David Bailey
http://www.dbaileyconsultancy.co.uk