Re: How to pass an input to the child MathKernel?
- To: mathgroup at smc.vnet.net
- Subject: [mg33496] Re: How to pass an input to the child MathKernel?
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Sun, 24 Mar 2002 01:43:48 -0500 (EST)
- Organization: Universitaet Leipzig
- References: <a7esml$mpm$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
- Sender: owner-wri-mathgroup at wolfram.com
Hi, the online-manual gives an example as well as THE BOOK Open the link: In[]:=link = LinkLaunch["math -mathlink"] send an expression: In[]:=LinkWrite[link, Unevaluated[EvaluatePacket[Expand[(x + 1)^3]]]] read the data the link returns: In[]:=LinkRead[link]; LinkRead[link] Out[]=ReturnPacket[1 + 3 x + 3 x^2 + x^3] In[]:=LinkClose[link] Regards Jens Vladimir Bondarenko wrote: > > Gentlemen, > > What is the simplest way to implement the step # 2 ? > > 1. From within a working MathKernel, run a new instance of the MathKernel > using the same machine > > 2. Pass an input to the child MathKernel > 3. Evaluate the passed input within the child MathKernel > 4. Return the evaluated input into the parent MathKernel > 5. Close the child MathKernel > > Vladimir Bondarenko > > P.S. > > If I try something like > > > ReadList["!MathKernel", 2 + 1, RecordLists -> True] > > ReadList::"readf": " 3 is not a valid format specification." > > ReadList["!MathKernel", 3, RecordLists -> True] > > then I probably use the parent (old) instance of the MathKernel. > > If I use > > > ReadList[Run["MathKernel.exe"], 2 + 1, RecordLists -> True] > > General::"stream": " 0 is not a string, InputStream[ ], or OutputStream[ ]." > > ReadList[0, 3, RecordLists -> True] > > then I do run the child MathKernel, but it looks like that the computation > was done, again, by the parent MathKernel 8-(