Robert Bradshaw wrote:

> On Thu, Jul 15, 2010 at 10:22 AM, Neal Becker
> <[email protected]> wrote:
>> Robert Bradshaw wrote:
>>
>>> On Thu, Jul 15, 2010 at 7:24 AM, Neal Becker
>>> <[email protected]> wrote:
>>>> What is the current state of using cython to expose numpy arrays to c++
>>>> code?
>>>>
>>>> I have the (typical) setup of python for high-level code, c++ for
>>>> specialized algorithms.  I'm using numpy as the containers.
>>>>
>>>> My c++ algorithms are usually written to a generic c++
>>>> (boost::range-based) interface.
>>>>
>>>> Currently, the best solution I know of is to use boost::python and
>>>> pyublas to interface.
>>>>
>>>> Are there any cython examples?  Has any of the recent cython work made
>>>> cython more attractive for this use?
>>>
>>> Are you trying to create C++ wrappers for NumPy arrays? In this case
>>> Cython is almost certainly the wrong tool. The new C++ features allow
>>> you to more easily use C++ libraries,  not write arbitrary C++ code.
>>>
>>> - Robert
>>
>> No, I already have lots of algorithms written in c++ for a generic range-
>> based interface (templated).  These can be instantiated to use with any
>> container types that fit the range concept.
>>
>> Right now I'm instantiating them using pyublas::numpy_vector as the
>> containers, which allows me to use them from python with numpy.
>>
>> For example, consider this c++ algorithm:
>>
>> template<typename out_t, typename in_t>
>> inline out_t repeat (in_t const& in, int cnt) {
>> out_t out (boost::size (in)*cnt);
>> typename boost::range_const_iterator<in_t>::type i = boost::begin (in);
>> typename boost::range_iterator<out_t>::type o = boost::begin (out);
>>
>> for (; i != boost::end (in); ++i, o+=cnt) {
>> std::fill (o, (o+cnt), *i);
>> }
>>
>> return out;
>> }
>>
>> This could be used on a numpy vector, instantiated as:
>>
>> repeat<pyublas::numpy_vector<double>,pyublas::numpy_vector<double> >
>>
>> Could cython be used to instantiate and call this function, which takes
>> a numpy vector<double> as input/output?
> 
> Sorry I completely misunderstood your question. Yes, this is something
> you could do.
> 
> - Robert

Any pointers to (current) examples and/or docs?

_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to