Skip to content

Commit 6deb3b1

Browse files
authored
Merge pull request #159 from ShikharJ/Relationals
Relationals and BooleanAtom
2 parents b409536 + 516b3ca commit 6deb3b1

File tree

9 files changed

+289
-25
lines changed

9 files changed

+289
-25
lines changed

symengine/__init__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
MatrixBase, Basic, DictBasic, symarray, series, diff, zeros,
88
eye, diag, ones, Derivative, Subs, add, expand, has_symbol,
99
UndefFunction, Function, FunctionSymbol as AppliedUndef,
10-
have_numpy)
10+
have_numpy, true, false, Equality, Unequality, GreaterThan,
11+
LessThan, StrictGreaterThan, StrictLessThan, Eq, Ne, Ge, Le,
12+
Gt, Lt)
1113
from .utilities import var, symbols
1214
from .functions import *
1315

symengine/lib/symengine.pxd

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ cdef extern from "<symengine/symengine_rcp.h>" namespace "SymEngine":
153153
RCP[const RealMPFR] rcp_static_cast_RealMPFR "SymEngine::rcp_static_cast<const SymEngine::RealMPFR>"(RCP[const Basic] &b) nogil
154154
RCP[const ComplexMPC] rcp_static_cast_ComplexMPC "SymEngine::rcp_static_cast<const SymEngine::ComplexMPC>"(RCP[const Basic] &b) nogil
155155
RCP[const Log] rcp_static_cast_Log "SymEngine::rcp_static_cast<const SymEngine::Log>"(RCP[const Basic] &b) nogil
156+
RCP[const BooleanAtom] rcp_static_cast_BooleanAtom "SymEngine::rcp_static_cast<const SymEngine::BooleanAtom>"(RCP[const Basic] &b) nogil
156157
RCP[const PyNumber] rcp_static_cast_PyNumber "SymEngine::rcp_static_cast<const SymEngine::PyNumber>"(RCP[const Basic] &b) nogil
157158
RCP[const PyFunction] rcp_static_cast_PyFunction "SymEngine::rcp_static_cast<const SymEngine::PyFunction>"(RCP[const Basic] &b) nogil
158159
Ptr[RCP[Basic]] outArg(RCP[const Basic] &arg) nogil
@@ -266,6 +267,11 @@ cdef extern from "<symengine/basic.h>" namespace "SymEngine":
266267
bool is_a_RealMPFR "SymEngine::is_a<SymEngine::RealMPFR>"(const Basic &b) nogil
267268
bool is_a_ComplexMPC "SymEngine::is_a<SymEngine::ComplexMPC>"(const Basic &b) nogil
268269
bool is_a_Log "SymEngine::is_a<SymEngine::Log>"(const Basic &b) nogil
270+
bool is_a_BooleanAtom "SymEngine::is_a<SymEngine::BooleanAtom>"(const Basic &b) nogil
271+
bool is_a_Equality "SymEngine::is_a<SymEngine::Equality>"(const Basic &b) nogil
272+
bool is_a_Unequality "SymEngine::is_a<SymEngine::Unequality>"(const Basic &b) nogil
273+
bool is_a_LessThan "SymEngine::is_a<SymEngine::LessThan>"(const Basic &b) nogil
274+
bool is_a_StrictLessThan "SymEngine::is_a<SymEngine::StrictLessThan>"(const Basic &b) nogil
269275
bool is_a_PyNumber "SymEngine::is_a<SymEngine::PyNumber>"(const Basic &b) nogil
270276
bool is_a_ATan2 "SymEngine::is_a<SymEngine::ATan2>"(const Basic &b) nogil
271277
bool is_a_PySymbol "SymEngine::is_a_sub<SymEngine::PySymbol>"(const Basic &b) nogil
@@ -756,6 +762,33 @@ cdef extern from "<symengine/visitor.h>" namespace "SymEngine":
756762
RCP[const Basic] coeff(const Basic &b, const Basic &x, const Basic &n) nogil except +
757763
set_basic free_symbols(const Basic &b) nogil except +
758764

765+
cdef extern from "<symengine/logic.h>" namespace "SymEngine":
766+
cdef cppclass Boolean(Basic):
767+
pass
768+
cdef cppclass BooleanAtom(Boolean):
769+
bool get_val() nogil
770+
cdef cppclass Relational(Boolean):
771+
pass
772+
cdef cppclass Equality(Relational):
773+
pass
774+
cdef cppclass Unequality(Relational):
775+
pass
776+
cdef cppclass LessThan(Relational):
777+
pass
778+
cdef cppclass StrictLessThan(Relational):
779+
pass
780+
781+
RCP[const Basic] boolTrue
782+
RCP[const Basic] boolFalse
783+
bool is_a_Relational(const Basic &b) nogil
784+
cdef RCP[const Boolean] Eq(RCP[const Basic] &lhs) nogil except+
785+
cdef RCP[const Boolean] Eq(RCP[const Basic] &lhs, RCP[const Basic] &rhs) nogil except+
786+
cdef RCP[const Boolean] Ne(RCP[const Basic] &lhs, RCP[const Basic] &rhs) nogil except+
787+
cdef RCP[const Boolean] Ge(RCP[const Basic] &lhs, RCP[const Basic] &rhs) nogil except+
788+
cdef RCP[const Boolean] Gt(RCP[const Basic] &lhs, RCP[const Basic] &rhs) nogil except+
789+
cdef RCP[const Boolean] Le(RCP[const Basic] &lhs, RCP[const Basic] &rhs) nogil except+
790+
cdef RCP[const Boolean] Lt(RCP[const Basic] &lhs, RCP[const Basic] &rhs) nogil except+
791+
759792
cdef extern from "<utility>" namespace "std":
760793
cdef integer_class std_move_mpz "std::move" (integer_class) nogil
761794
IF HAVE_SYMENGINE_MPFR:

0 commit comments

Comments
 (0)