Skip to content
Snippets Groups Projects
Commit 306c25e9 authored by AMüller's avatar AMüller
Browse files

fix bvector += bindings

parent f0201559
No related branches found
No related tags found
No related merge requests found
......@@ -158,24 +158,11 @@ namespace Dune
cls.def( "__len__", [] ( const BlockVector &self ) { return self.N(); } );
cls.def( pybind11::self += pybind11::self );
// silence a warning (false positive) emitted by clang
// https://bugs.llvm.org/show_bug.cgi?id=43124
#ifdef __clang__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wself-assign-overloaded"
#endif
cls.def( pybind11::self -= pybind11::self );
#ifdef __clang__
#pragma GCC diagnostic pop
#endif
detail::registerOneTensorInterface( cls );
detail::registerISTLIterators( cls );
cls.def( "__iadd__", [] ( BlockVector &self, const BlockVector& x ) -> BlockVector & { self += x; return self; } );
cls.def( "__isub__", [] ( BlockVector &self, const BlockVector& x ) -> BlockVector & { self -= x; return self; } );
cls.def( "__imul__", [] ( BlockVector &self, field_type x ) -> BlockVector & { self *= x; return self; } );
cls.def( "__idiv__", [] ( BlockVector &self, field_type x ) -> BlockVector & { self /= x; return self; } );
cls.def( "__itruediv__", [] ( BlockVector &self, field_type x ) -> BlockVector & { self /= x; return self; } );
......
......@@ -121,3 +121,12 @@ str_x = str_x +")"
if str_x != s:
raise Exception(str(x) + " = str(x) != " + s)
q=x.copy()
q+=q
for i in range(0,5):
assert(q[i][0] == 2*x[i][0])
q-=x
for i in range(0,5):
assert(q[i][0] == x[i][0])
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment