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

Reply via email to