16 Feb
2014
16 Feb
'14

12:45 a.m.

Peter17 <peter017(a)gmail.com> writes:

Dear Andreas,
I encounter an error when using Hedge with numpy-1.8.0.
I switch between numpy-1.6.2 and numpy-1.8.0 by doing:
pip uninstall numpy
pip install -Iv numpy==1.6.2
and (1.8.0):
pip uninstall numpy
pip install numpy
With numpy-1.6.2, everything works fine, but with numpy-1.8.0, when I do:
cd hedge/test
python test_jit_discretization.py
I get:
test_jit_discretization.py FFFFF....FFFFFFFF
(a lot of lines)
def diff_rst(self, op, field):
result = self.discr.volume_zeros(dtype=field.dtype)
from hedge._internal import perform_elwise_operator
for eg in self.discr.element_groups:
perform_elwise_operator(op.preimage_ranges(eg), eg.ranges,
op.matrices(eg)[op.rst_axis].astype(field.dtype),

Fixed in git.
Andreas
field, result)

E
ArgumentError: Python argument types in
E
hedge._internal.perform_elwise_operator(UniformElementRanges,
UniformElementRanges, numpy.ndarray, numpy.ndarray, numpy.ndarray)
E did not match C++ signature:
E perform_elwise_operator(hedge::uniform_element_ranges,
hedge::uniform_element_ranges,
boost::numeric::ublas::matrix<std::complex<double>,
boost::numeric::ublas::basic_row_major<unsigned long, long>,
boost::numeric::ublas::unbounded_array<std::complex<double>,
std::allocator<std::complex<double> > > >,
pyublas::numpy_vector<std::complex<double> >,
pyublas::numpy_vector<std::complex<double> >)
E perform_elwise_operator(hedge::uniform_element_ranges,
hedge::uniform_element_ranges,
boost::numeric::ublas::matrix<std::complex<float>,
boost::numeric::ublas::basic_row_major<unsigned long, long>,
boost::numeric::ublas::unbounded_array<std::complex<float>,
std::allocator<std::complex<float> > > >,
pyublas::numpy_vector<std::complex<float> >,
pyublas::numpy_vector<std::complex<float> >)
E perform_elwise_operator(hedge::uniform_element_ranges,
hedge::uniform_element_ranges, boost::numeric::ublas::matrix<double,
boost::numeric::ublas::basic_row_major<unsigned long, long>,
boost::numeric::ublas::unbounded_array<double, std::allocator<double>
>, pyublas::numpy_vector<double>,
pyublas::numpy_vector<double>)

E
perform_elwise_operator(hedge::uniform_element_ranges,
hedge::uniform_element_ranges, boost::numeric::ublas::matrix<float,
boost::numeric::ublas::basic_row_major<unsigned long, long>,
boost::numeric::ublas::unbounded_array<float, std::allocator<float> >
, pyublas::numpy_vector<float>,
pyublas::numpy_vector<float>)

../hedge/backends/jit/__init__.py:489: ArgumentError
I have the same error when running the example wave.py (I don't have
much time to test the other examples). However, this example works
well in CUDA. The error seems to be due to pyublas.
Do you have an idea on how I can have Hedge work with numpy-1.8.0?
Thanks in advance. Best regards.