simplified C API call in MathLink
- To: mathgroup at smc.vnet.net
- Subject: [mg55908] simplified C API call in MathLink
- From: Edward Peschko <esp5 at pge.com>
- Date: Sat, 9 Apr 2005 03:56:29 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
hey all, I was wondering if Wolfram Research had plans for a simpler API for mathlink. What I'm envisioning is something like: void *ans = math_ematic("CForm[Integrate[x^2, x]]"); where you could enter 'free form' math expressions, exactly as you would under running Mathematica itslef, and MathLink would return back the char string "Power(x,3)/3" as a result. Error handling could be done perror style, or perhaps the error could be passed back as a structure: struct math_ans { void *ans; char *err; }; or somesuch, gained by refactoring the code that is used to produce the 'math' executable itself, and abstracting out the I/O associated with that program and turning it into a function call. I think something like this would be invaluable for integrating mathematica into scripting languages, big and small, since C is everywhere, and every scripting language worth its salt has the means of embedding c programs. I've looked at Math::ematica (perl5), and the Python bindings for mathematica (python), and they both suffer from needing to mirror the C-API which is optimized for speed rather than for flexibility. Making a generic, 'meta-method' for passing any expression to the math kernel and getting a response back seems to me to be a vast timesaver. You could optimize for flexibility first, and then when the need for optimization arises, you could convert from the slower metamethod into raw C code for speed. Any thoughts on this would be greatly appreciated, especially thoughts from mathematica developers. I'd do it myself, if I had access to the code that was compiled to make 'math.exe'... ;-) Ed ( ps - thanks much for this mailing list. I just stumbled across it, and it looks like its going to be invaluable going forward. Is it available in digest mode? )