Skip to content
Snippets Groups Projects
Commit 98f4131c authored by Simon Praetorius's avatar Simon Praetorius
Browse files

Merge branch 'fix/bvectorPybind' into 'master'

fix bvector += bindings

See merge request core/dune-istl!565
parents f37f90ae 306c25e9
No related branches found
No related tags found
No related merge requests found
......@@ -156,24 +156,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; } );
......
......@@ -132,3 +132,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