Skip to content

Commit 01baf87

Browse files
committed
Added Attributes
1 parent cf2d943 commit 01baf87

File tree

1 file changed

+153
-10
lines changed

1 file changed

+153
-10
lines changed

symengine/lib/symengine_wrapper.pyx

Lines changed: 153 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -745,6 +745,14 @@ cdef class Basic(object):
745745
def is_Symbol(self):
746746
return False
747747

748+
@property
749+
def is_symbol(self):
750+
return False
751+
752+
@property
753+
def is_Dummy(self):
754+
return False
755+
748756
@property
749757
def is_Function(self):
750758
return False
@@ -765,6 +773,10 @@ cdef class Basic(object):
765773
def is_Number(self):
766774
return False
767775

776+
@property
777+
def is_number(self):
778+
return None
779+
768780
@property
769781
def is_Float(self):
770782
return False
@@ -777,10 +789,38 @@ cdef class Basic(object):
777789
def is_Integer(self):
778790
return False
779791

792+
@property
793+
def is_integer(self):
794+
return False
795+
796+
@property
797+
def is_finite(self):
798+
return None
799+
780800
@property
781801
def is_Derivative(self):
782802
return False
783803

804+
@property
805+
def is_AlgebraicNumber(self):
806+
return False
807+
808+
@property
809+
def is_Relational(self):
810+
return False
811+
812+
@property
813+
def is_Equality(self):
814+
return False
815+
816+
@property
817+
def is_Boolean(self):
818+
return False
819+
820+
@property
821+
def is_Not(self):
822+
return False
823+
784824
@property
785825
def is_Matrix(self):
786826
return False
@@ -907,6 +947,14 @@ class Symbol(Basic):
907947
def is_Symbol(self):
908948
return True
909949

950+
@property
951+
def is_symbol(self):
952+
return True
953+
954+
@property
955+
def is_commutative(self):
956+
return True
957+
910958
@property
911959
def func(self):
912960
return self.__class__
@@ -998,7 +1046,14 @@ class Boolean(Basic):
9981046

9991047

10001048
class BooleanAtom(Boolean):
1001-
pass
1049+
1050+
@property
1051+
def is_Boolean(self):
1052+
return True
1053+
1054+
@property
1055+
def is_Atom(self):
1056+
return True
10021057

10031058

10041059
class BooleanTrue(BooleanAtom):
@@ -1022,7 +1077,10 @@ class BooleanFalse(BooleanAtom):
10221077

10231078

10241079
class Relational(Boolean):
1025-
pass
1080+
1081+
@property
1082+
def is_Relational(self):
1083+
return True
10261084

10271085
Rel = Relational
10281086

@@ -1042,6 +1100,10 @@ class Equality(Relational):
10421100
s = self.args_as_sage()
10431101
return sage.eq(*s)
10441102

1103+
@property
1104+
def is_Equality(self):
1105+
return True
1106+
10451107
func = __class__
10461108

10471109

@@ -1116,6 +1178,14 @@ cdef class Number(Basic):
11161178
def is_Number(self):
11171179
return True
11181180

1181+
@property
1182+
def is_number(self):
1183+
return True
1184+
1185+
@property
1186+
def is_commutative(self):
1187+
return True
1188+
11191189
@property
11201190
def is_positive(Basic self):
11211191
return deref(symengine.rcp_static_cast_Number(self.thisptr)).is_positive()
@@ -1154,6 +1224,22 @@ class Rational(Number):
11541224
def is_Rational(self):
11551225
return True
11561226

1227+
@property
1228+
def is_rational(self):
1229+
return True
1230+
1231+
@property
1232+
def is_real(self):
1233+
return True
1234+
1235+
@property
1236+
def is_finite(self):
1237+
return True
1238+
1239+
@property
1240+
def is_integer(self):
1241+
return False
1242+
11571243
@property
11581244
def p(self):
11591245
return self.get_num_den()[0]
@@ -1210,6 +1296,10 @@ class Integer(Rational):
12101296
def is_Integer(self):
12111297
return True
12121298

1299+
@property
1300+
def is_integer(self):
1301+
return True
1302+
12131303
def __hash__(Basic self):
12141304
return deref(self.thisptr).hash()
12151305

@@ -1298,6 +1388,22 @@ class BasicMeta(type):
12981388

12991389
class Float(Number):
13001390

1391+
@property
1392+
def is_rational(self):
1393+
return None
1394+
1395+
@property
1396+
def is_irrational(self):
1397+
return None
1398+
1399+
@property
1400+
def is_real(self):
1401+
return True
1402+
1403+
@property
1404+
def is_Float(self):
1405+
return True
1406+
13011407
def __new__(cls, num, dps=None, precision=None):
13021408
if cls is not Float:
13031409
return super(Float, cls).__new__(cls)
@@ -1328,10 +1434,6 @@ RealNumber = Float
13281434

13291435
class RealDouble(Float):
13301436

1331-
@property
1332-
def is_Float(self):
1333-
return True
1334-
13351437
def __new__(cls, i):
13361438
cdef double i_ = i
13371439
return c2py(symengine.make_rcp_RealDouble(i_))
@@ -1374,10 +1476,6 @@ cdef class ComplexDouble(Number):
13741476

13751477
class RealMPFR(Float):
13761478

1377-
@property
1378-
def is_Float(self):
1379-
return True
1380-
13811479
IF HAVE_SYMENGINE_MPFR:
13821480
def __new__(cls, i = None, long prec = 53, unsigned base = 10):
13831481
if i is None:
@@ -1458,6 +1556,10 @@ cdef class Complex(Number):
14581556

14591557
class Infinity(Number):
14601558

1559+
@property
1560+
def is_infinite(self):
1561+
return True
1562+
14611563
def __new__(cls):
14621564
return oo
14631565

@@ -1471,6 +1573,10 @@ class Infinity(Number):
14711573

14721574
class NegativeInfinity(Number):
14731575

1576+
@property
1577+
def is_infinite(self):
1578+
return True
1579+
14741580
def __new__(cls):
14751581
return -oo
14761582

@@ -1484,6 +1590,10 @@ class NegativeInfinity(Number):
14841590

14851591
class ComplexInfinity(Number):
14861592

1593+
@property
1594+
def is_infinite(self):
1595+
return True
1596+
14871597
def __new__(cls):
14881598
return zoo
14891599

@@ -1497,6 +1607,22 @@ class ComplexInfinity(Number):
14971607

14981608
class NaN(Number):
14991609

1610+
@property
1611+
def is_rational(self):
1612+
return None
1613+
1614+
@property
1615+
def is_integer(self):
1616+
return None
1617+
1618+
@property
1619+
def is_real(self):
1620+
return None
1621+
1622+
@property
1623+
def is_finite(self):
1624+
return None
1625+
15001626
def __new__(cls):
15011627
return nan
15021628

@@ -1784,6 +1910,15 @@ class polygamma(Function):
17841910
return sympy.polygamma(*self.args_as_sympy())
17851911

17861912
class sign(OneArgFunction):
1913+
1914+
@property
1915+
def is_complex(self):
1916+
return True
1917+
1918+
@property
1919+
def is_finite(self):
1920+
return True
1921+
17871922
def __new__(cls, x):
17881923
cdef Basic X = sympify(x)
17891924
return c2py(symengine.sign(X.thisptr))
@@ -1977,6 +2112,14 @@ mul = Mul
19772112

19782113
class Abs(OneArgFunction):
19792114

2115+
@property
2116+
def is_real(self):
2117+
return True
2118+
2119+
@property
2120+
def is_negative(self):
2121+
return False
2122+
19802123
def __new__(cls, x):
19812124
cdef Basic X = sympify(x)
19822125
return c2py(symengine.abs(X.thisptr))

0 commit comments

Comments
 (0)