I see that the octave and python bindings are generated using SWIG. What happens if you use the -perl option instead? It might be simpler to tweak the existing interface files rather than starting from scratch.
Once you have the basic perl wrappers, you could go ahead with the PDL-specific part of the bindings. --Chris On Sun, Oct 7, 2012 at 10:27 PM, David Oswald <[email protected]> wrote: > On Sun, Oct 7, 2012 at 6:30 PM, David Mertens <[email protected]> > wrote: >> BTW, another person who has plenty of experience interfacing Perl and >> C++ is David Oswald, the current maintainer of Inline::CPP. He's done >> some fantastic work lately on Inline::CPP (dusting off a pretty old >> module and bringing it into the modern era) so he may have encountered >> some corners that you find yourself in. >> >> David > > I'm going to take a look at this, and will let you know if Inline::CPP > looks like a reasonable fit. I have no experience with PDL, but as > David mentioned, I've had a healthy dose of Inline::CPP. The best > case scenario is that the AUTO_WRAP feature will do all the dirty > work. The worst case, I wouldn't want to think about. Most likely > the reality will fall somewhere between those two points. :) > > Dave > > >> >> On Sun, Oct 7, 2012 at 8:27 PM, David Mertens <[email protected]> >> wrote: >>> Christian - >>> >>> I'm sorry nobody has responded sooner to your query, but it's a pretty >>> tough question, so I'm not terribly surprised. :-) >>> >>> For anybody else following along, the shogun project Christian refers >>> to is the Shogun Machine Learning Toolbox: >>> http://www.shogun-toolbox.org/doc/en/current/index.html. SHOGUN >>> supports multiple languages: "SHOGUN is implemented in C++ and >>> interfaces to Matlab(tm), R, Octave and Python." And Lua, btw. >>> >>> Having scanned the docs briefly (especially the developer tutorial: >>> http://www.shogun-toolbox.org/doc/en/current/developer_tutorial.html), >>> I think that the best route would be to create Perl wrappers for the >>> Shogun classes. The Wx folks have extensive experience doing this. You >>> should start by looking at http://p3rl.org/ExtUtils::XSpp, and then >>> possibly hopping on the Wx and/or Padre mailing lists or IRC channels. >>> >>> Then, you would want some way to interface PDL data with SHOGUN >>> SGMatrix objects. There are a few options here. (1) Create a function >>> that copies from one to the other and back. (2) Create a handful of >>> PDL wrappers of SGMatrix classes, which requires a little bit of PDL >>> (black?) magic, but not much. I could probably point you to useful >>> code in this respect. (3) Create a set of C++ classes that know how to >>> wrap PDL data in a form derived from SGMatrix. The main drawback here >>> is that you would then have to properly handle slices, which is why I >>> would prefer the second idea to this third one. >>> >>> A bystander might ask: why not just wrap SHOGUN's methods into PDL >>> routines? Well, SHOGUN uses C++'s object orientation pretty >>> extensively, so trying to wrap the SHOGUN methods into PDL methods >>> would be very difficult, and very much exploratory. There's a lot of >>> meta-information that you'd have to slog around, and keeping track of >>> it all---while doable using the header hash, maybe---would likely be a >>> suboptimal solution. >>> >>> So, I propose you aim to create a Perl wrapper for project. Talk to >>> the Wx people and get their advice. Once that's working, you can >>> quickly hack together a means to copy data between PDL and SHOGUN, and >>> then aim for a PDL-side wrapper of the SHOGUN data types. >>> >>> David >>> >>> On Fri, Oct 5, 2012 at 4:41 AM, Christian Montanari >>> <[email protected]> wrote: >>>> Hi, >>>> I am attempting to tie the "shogun" package to PDL. >>>> "shogun" has already many classes used in PDL, mainly of course, data >>>> formats, but also IO classes, so those packages are a tat similare. >>>> however PDL is for data parsing, while "shogun" is more for developing >>>> algorithms using data. >>>> >>>> so far I managed a rough interface (it links!), but I am still not >>>> very confident in the inner guts of the wrappers. >>>> >>>> I am looking for advices or support from a PDL experts but >>>> particularely nice source code examples for specific usage. >>>> >>>> I found somewhat the pdl-api is missing a few goodies and I would not >>>> mind any expert in the art of PDL show some example of use of...: >>>> >>>> - affine functions used for parsing PDL structures? >>>> >>>> - pdl-api for inline operations >>>> >>>> - strings , storage or RV referenced perl-objects in pdl ? >>>> >>>> - pdl-api for slices ? >>>> >>>> - best use of the "threading" >>>> >>>> - relations beetween pdl data, datasv , sv, hdrsv. >>>> >>>> - sparse format (sparse vector, matrix, n-gram...) (ie: map/hash (or tie) >>>> of arrays index/ranges >>>> to pdl.data ) >>>> >>>> - sub - pdl organisation ? >>>> >>>> I have somewhat partial answers to a few of those, but might not be >>>> the best and the pretiest! >>>> >>>> also I have two ways to embed te packages: do I wrap PDL into "shogun" or >>>> vice versa? (the first I am using a "swig - perl" wrapper, but for the >>>> other I suppose one has to use the wonderfull .PL mechanisme!) >>>> >>>> please, if you are interrested to develop a wrapper likewise, I am >>>> happy to send you my 'git' project, or please share your examples.... >>>> >>>> Thanks for your time. >>>> >>>> -- >>>> ------------------------------------------------------- >>>> Dr. Christian Montanari, Consulting Engineer, Hillebrand Consulting >>>> Engineers GmbH >>>> skype: cp.montanari >>>> >>>> >>>> >>>> _______________________________________________ >>>> Perldl mailing list >>>> [email protected] >>>> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl >>> >>> >>> >>> -- >>> "Debugging is twice as hard as writing the code in the first place. >>> Therefore, if you write the code as cleverly as possible, you are, >>> by definition, not smart enough to debug it." -- Brian Kernighan >> >> >> >> -- >> "Debugging is twice as hard as writing the code in the first place. >> Therefore, if you write the code as cleverly as possible, you are, >> by definition, not smart enough to debug it." -- Brian Kernighan > > > > -- > > David Oswald > [email protected] > > _______________________________________________ > Perldl mailing list > [email protected] > http://mailman.jach.hawaii.edu/mailman/listinfo/perldl _______________________________________________ Perldl mailing list [email protected] http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
