@@ -45,6 +45,8 @@ cdef c2py(RCP[const symengine.Basic] o):
45
45
r = FunctionSymbol.__new__ (FunctionSymbol)
46
46
elif (symengine.is_a_Abs(deref(o))):
47
47
r = Abs.__new__ (Abs)
48
+ elif (symengine.is_a_Max(deref(o))):
49
+ r = Max.__new__ (Max)
48
50
elif (symengine.is_a_Gamma(deref(o))):
49
51
r = Gamma.__new__ (Gamma)
50
52
elif (symengine.is_a_Derivative(deref(o))):
@@ -208,6 +210,8 @@ def sympy2symengine(a, raise_error=False):
208
210
return log(a.args[0 ])
209
211
elif isinstance (a, sympy.Abs):
210
212
return abs (sympy2symengine(a.args[0 ], raise_error))
213
+ elif isinstance (a, sympy.Max):
214
+ return max (* a.args)
211
215
elif isinstance (a, sympy.gamma):
212
216
return gamma(a.args[0 ])
213
217
elif isinstance (a, sympy.Derivative):
@@ -1392,6 +1396,27 @@ cdef class Abs(Function):
1392
1396
arg = c2py(deref(X).get_arg())._sage_()
1393
1397
return abs (arg)
1394
1398
1399
+ cdef class Max(Function):
1400
+
1401
+ def _sympy_ (self ):
1402
+ cdef RCP[const symengine.Max] X = \
1403
+ symengine.rcp_static_cast_Max(self .thisptr)
1404
+ cdef symengine.vec_basic Y = deref(X).get_args()
1405
+ s = []
1406
+ for i in range (Y.size()):
1407
+ s.append(c2py(< RCP[const symengine.Basic]> (Y[i]))._sympy_())
1408
+ import sympy
1409
+ return sympy.Max(* s)
1410
+
1411
+ def _sage_ (self ):
1412
+ import sage.all as sage
1413
+ cdef RCP[const symengine.Max] X = \
1414
+ symengine.rcp_static_cast_Max(self .thisptr)
1415
+ cdef symengine.vec_basic Y = deref(X).get_args()
1416
+ s = []
1417
+ for i in range (Y.size()):
1418
+ s.append(c2py(< RCP[const symengine.Basic]> (Y[i]))._sage_())
1419
+ return sage.max(* s)
1395
1420
1396
1421
cdef class Derivative(Basic):
1397
1422
@@ -2304,6 +2329,14 @@ def log(x, y = None):
2304
2329
cdef Basic Y = _sympify(y)
2305
2330
return c2py(symengine.log(X.thisptr, Y.thisptr))
2306
2331
2332
+ def max (*args ):
2333
+ cdef symengine.vec_basic v
2334
+ cdef Basic e_
2335
+ for e in args:
2336
+ e_ = sympify(e)
2337
+ v.push_back(e_.thisptr)
2338
+ return c2py(symengine.max(v))
2339
+
2307
2340
def gamma (x ):
2308
2341
cdef Basic X = _sympify(x)
2309
2342
return c2py(symengine.gamma(X.thisptr))
0 commit comments