Browse code

fix behaviour when locals contains numpy array values

Dániel Varjas authored on 29/11/2019 13:09:52
Showing 1 changed files
... ...
@@ -180,7 +180,11 @@ def sympify(expr, locals=None):
180 180
                 "identifiers and may not be keywords".format(repr(k)))
181 181
 
182 182
     # sympify values of locals before updating it with extra_ns
183
-    locals = {k: sympify(v) for k, v in locals.items()}
183
+    # Cast numpy array values in locals to sympy matrices to make sure they have
184
+    # correct format
185
+    locals = {k: (sympy.Matrix(v) if isinstance(v, np.ndarray) else sympify(v))
186
+              for k, v in locals.items()}
187
+
184 188
     for k, v in extra_ns.items():
185 189
         locals.setdefault(k, v)
186 190
     try: