Re: Extracting Interpolating Function via mathlink
- To: mathgroup at smc.vnet.net
- Subject: [mg50797] Re: Extracting Interpolating Function via mathlink
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Wed, 22 Sep 2004 00:10:55 -0400 (EDT)
- Organization: Universitaet Leipzig
- References: <ciomuh$r8l$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
- Sender: owner-wri-mathgroup at wolfram.com
Hi, a) look in the AddOns`ExtraPackages`InterpolationFunctionAnatomy` it has several function to extract the data points, namely InterpolationFunctionValuesOnGrid b) send the funtion values and as a single array to the C-program as an alternative you may semple the interpolation functions on a discrete grid in Mathematica and use this table in you c-code or you should solve the differential equations totla in the c-program. Regards Jens Peter Saffrey wrote: > > I'm writing an application that interfaces with Mathematicas > differential equation solving routines via mathlink. The equations are > loaded and solved and then I need to extract the resulting > interpolating functions for use in the rest of my application. At the > moment, I have a mathematica function which dumps the data points, one > by one, which I grab and insert into C++ objects. This works, but it's > very slow on large functions - when there are 10000 data points, this > takes about 30 seconds per function. > > I suspect the reason for the poor performance is that I'm calling too > many mathlink functions - each data point is three "getpacket" calls, > one for the a list header, and one for each part of the data point. Is > there a way I can do this more quickly? How about exporting the whole > list of points as some kind of C++ structure I can then parse with > using mathlink? Does anybody know how I might do this? > > Thanks, > > Peter