MathGroup Archive 1997

[Date Index] [Thread Index] [Author Index]

Search the Archive

MathLink Question

  • To: mathgroup at smc.vnet.net
  • Subject: [mg8386] MathLink Question
  • From: Kashif Rasul <kras2 at mfs01.cc.monash.edu.au>
  • Date: Tue, 26 Aug 1997 20:41:23 -0400
  • Organization: Monash Uni
  • Sender: owner-wri-mathgroup at wolfram.com

Hi,
	How can I export a function to a C program and then evaluate it for a 
specific value inside the C program by sending it back to Mathematica? 
For example:

CalcAt[0.5, 1-0.5#&]

I have tried using the following

double calcat(double x)
{
	char* fname;
	long nargs;
	double result;

	MLGetFunction(stdlink, &fname, &nargs);
	MLPutFunction(stdlink, fname, nargs);
	MLPutDouble(stdlink, x);
	MLEndPacket(stdlink);
	while (MLNextPacket(stdlink) != RETURNPKT) MLNewPacket(stdlink);
	MLGetDouble(stdlink, &result);
	MLDisownSymbol(stdlink, fname);
	return result;
}

but it does not work. The program gets stuck in an infinite loop or 
something. Also I'm not even sure if one sends pure functions to C 
programs or if there is another way of doing this. 

Thank you in advance.

Kashif Rasul


  • Prev by Date: RE: Floor problems
  • Next by Date: Re: Compiling a Module
  • Previous by thread: Re: Partition List
  • Next by thread: Mma Package Style Question