@@ -43,6 +43,8 @@ cdef c2py(RCP[const symengine.Basic] o):
4343 r = FunctionSymbol.__new__ (FunctionSymbol)
4444 elif (symengine.is_a_Abs(deref(o))):
4545 r = Abs.__new__ (Abs)
46+ elif (symengine.is_a_Max(deref(o))):
47+ r = Max.__new__ (Max)
4648 elif (symengine.is_a_Gamma(deref(o))):
4749 r = Gamma.__new__ (Gamma)
4850 elif (symengine.is_a_Derivative(deref(o))):
@@ -194,6 +196,8 @@ def sympy2symengine(a, raise_error=False):
194196 return log(a.args[0 ])
195197 elif isinstance (a, sympy.Abs):
196198 return abs (sympy2symengine(a.args[0 ], raise_error))
199+ elif isinstance (a, sympy.Max):
200+ return max (* a.args)
197201 elif isinstance (a, sympy.gamma):
198202 return gamma(a.args[0 ])
199203 elif isinstance (a, sympy.Derivative):
@@ -1327,6 +1331,27 @@ cdef class Abs(Function):
13271331 arg = c2py(deref(X).get_arg())._sage_()
13281332 return abs (arg)
13291333
1334+ cdef class Max(Function):
1335+
1336+ def _sympy_ (self ):
1337+ cdef RCP[const symengine.Max] X = \
1338+ symengine.rcp_static_cast_Max(self .thisptr)
1339+ cdef symengine.vec_basic Y = deref(X).get_args()
1340+ s = []
1341+ for i in range (Y.size()):
1342+ s.append(c2py(< RCP[const symengine.Basic]> (Y[i]))._sympy_())
1343+ import sympy
1344+ return sympy.Max(* s)
1345+
1346+ def _sage_ (self ):
1347+ import sage.all as sage
1348+ cdef RCP[const symengine.Max] X = \
1349+ symengine.rcp_static_cast_Max(self .thisptr)
1350+ cdef symengine.vec_basic Y = deref(X).get_args()
1351+ s = []
1352+ for i in range (Y.size()):
1353+ s.append(c2py(< RCP[const symengine.Basic]> (Y[i]))._sage_())
1354+ return sage.max(* s)
13301355
13311356cdef class Derivative(Basic):
13321357
@@ -2216,6 +2241,14 @@ def log(x, y = None):
22162241 cdef Basic Y = sympify(y)
22172242 return c2py(symengine.log(X.thisptr, Y.thisptr))
22182243
2244+ def max (*args ):
2245+ cdef symengine.vec_basic v
2246+ cdef Basic e_
2247+ for e in args:
2248+ e_ = sympify(e)
2249+ v.push_back(e_.thisptr)
2250+ return c2py(symengine.max(v))
2251+
22192252def gamma (x ):
22202253 cdef Basic X = sympify(x)
22212254 return c2py(symengine.gamma(X.thisptr))
0 commit comments