[C++-sig] Status of Numpy support in boost python - II

Neal Becker ndbecker2 at gmail.com
Tue Jan 4 14:34:01 CET 2011


I'm interested in the ndarray http://code.google.com/p/ndarray package.

I still need to figure out how to get it to compile against my customized boost 
installation in a non-standard location.

Unfortunately, trying to build the 'test' results in ICE in 
gcc-4.5.1-4.fc14.x86_64 (reported upstream)

g++ -o boost.python/ndarray/libs/python/ndarray/test/ndarray_mod.os -c -O2 -fno-
strict-aliasing -g -pipe -Wall -fexceptions -fstack-protector --param=ssp-
buffer-size=4 -m64 -mtune=generic -fPIC -fwrapv -fPIC -Wp,-D_FORTIFY_SOURCE=2 -
DNDEBUG -D_GNU_SOURCE -Iinclude -I/usr/include/python2.7 -
I/usr/lib64/python2.7/site-packages/numpy/core/include -I/usr/include/eigen2 
boost.python/ndarray/libs/python/ndarray/test/ndarray_mod.cpp -I include
In file included from include/ndarray/ArrayTraits.hpp:11:0,
                 from include/ndarray/Array.hpp:11,
                 from include/ndarray.hpp:9,
                 from include/boost/python/ndarray/Array.hpp:5,
                 from include/boost/python/ndarray/ndarray.hpp:4,
                 from 
boost.python/ndarray/libs/python/ndarray/test/ndarray_mod.cpp:1:
include/ndarray/ExpressionTraits.hpp: In instantiation of 
‘ndarray::ExpressionTraits<ndarray::detail::BinaryOpExpression<ndarray::Array<double, 
1, 1>, ndarray::Array<double, 1, 1>, 
ndarray::detail::EqualToTag::ScalarFunction<double, double>, 1> >’:
include/ndarray/ExpressionBase.hpp:33:57:   instantiated from 
‘ndarray::ExpressionBase<ndarray::detail::BinaryOpExpression<ndarray::Array<double, 
1, 1>, ndarray::Array<double, 1, 1>, 
ndarray::detail::EqualToTag::ScalarFunction<double, double>, 1> >’
include/ndarray/detail/BinaryOp.hpp:81:108:   instantiated from 
‘ndarray::detail::BinaryOpExpression<ndarray::Array<double, 1, 1>, 
ndarray::Array<double, 1, 1>, 
ndarray::detail::EqualToTag::ScalarFunction<double, double>, 1>’
boost.python/ndarray/libs/python/ndarray/test/ndarray_mod.cpp:44:36:   
instantiated from ‘bool acceptArray(const ndarray::Array<T, N, C>&) [with T = 
double, int N = 1, int C = 1]’
boost.python/ndarray/libs/python/ndarray/test/ndarray_mod.cpp:125:66:   
instantiated from here
include/ndarray/ExpressionTraits.hpp:88:165: internal compiler error: 
Segmentation fault

Jim Bosch wrote:

> On 01/03/2011 01:44 PM, Ralf W. Grosse-Kunstleve wrote:
>> ----- Original Message ----
>>
>>> From: Neal Becker<ndbecker2 at gmail.com>
>>> To: cplusplus-sig at python.org
>>> Sent: Mon, January 3, 2011 12:31:36 PM
>>> Subject: [C++-sig] Status of Numpy support in boost python - II
>>>
>>> I was just re-reading these posts: Status of Numpy support in boost  python
>>> http://web.archiveorange.com/archive/v/YJlerznoeRShLhlurQzC
>>>
>>> I  wonder if there are any updates?
> 
> My low-level numpy library (basically a Boost.Python wrapper for the
> Numpy C-API) has received slow but steady updates.  This is similar to
> the built-in Boost.Python numpy support, with a few extra features:
>   - Raw-pointer access to Numpy arrays.
>   - Constructing Numpy arrays from raw C++ pointers.
>   - A C++ dtype object.
>   - Tools to wrap C++ functors to behave like broadcasting numpy
> universal functions.
> 
> This can be found in the boost sandbox:
> 
> https://svn.boost.org/svn/boost/sandbox/numpy
> 
> 
> 
> I have also built Boost.Python converters for my own ndarray library
> (see below) and Eigen 2.  Right now the build system (scons-based) is
> tailored to my own needs, but it should be pretty easy for others to
> tweak as needed.  Feel free to email me if you need help.
> 
> I've included all of those in the ndarray package, though it should be
> possible to separate out the eigen bits and not use ndarray if you'd
> like.  All that's here:
> 
> http://code.google.com/p/ndarray/
> 
>>>
>>> Is ndarray working with current (1.45.0)  boost?
> 
> Probably.  I haven't tested 1.45, I compiled recently on 1.44.  I have
> been doing most of my work using 1.40, but I don't think anything has
> changed in Boost.Python since then that would affect ndarray.
> 
>>
>> Boost.Python's existing numpy array support has been working all the time. It
>> sounds like you are expecting new functionality. Could you be more specific?
>>
> 
> <what Stefan Seefeld said>
> 
> I think the low-level API I have in the sandbox fits this need, or at
> least provides some of the basics.  I'd love to see that morph into
> something that we can all use to connect numpy to the C++ template
> library of our choice, since we'll all never agreed on those.
> 
> Jim




More information about the Cplusplus-sig mailing list