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
