Re: Mathlink: How do I pass arbitrary data from Mathematica to C?
- To: mathgroup at smc.vnet.net
- Subject: [mg86946] Re: Mathlink: How do I pass arbitrary data from Mathematica to C?
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Thu, 27 Mar 2008 08:16:09 -0500 (EST)
- References: <fs4rmb$p3s$1@smc.vnet.net> <fs7ilu$gll$1@smc.vnet.net> <fsd6e6$98p$1@smc.vnet.net>
Hi,
> Do you have an example of this, where the format of the data is not
> known in advance?
Do you think this is a Mathematica problem ?
It is up to *you* to set up your data structure.
But
typedef struct Atom {
int what;
union {
long int N;
double D;
struct Symbol *S;
} Entry;
} Atom;
may do that. And your data structure may be
typedef struct Expression {
int what;
union {
Atom *atm;
struct {
struct Expression *First;
struct Expression *Rest;
} List;
} Entry;
} Expression;
clearly you need a symbol table and more data types than
long int and double, rationals and complex may be added.
It *must* be considered just a collection of bytes
> of data. The data can be any length from one byte to about a MB. It
> might be binary data, but will probably be text.
> The data will be passed to some hardware. The format of the data
> depends on the hardware. Hence I just want to pass what is a
> collection of bytes. I cant assume they will be integers (they might
> be), I cant assume they will be floating point values (they might
> be).
>
Regards
Jens