Skip to content

Commit d243265

Browse files
committed
Wrapped Union, Complement, ConditionSet and ImageSet
1 parent 1f6e94a commit d243265

File tree

2 files changed

+145
-93
lines changed

2 files changed

+145
-93
lines changed

symengine/lib/symengine.pxd

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ cdef extern from "<set>" namespace "std":
4141
bint operator!=(iterator) nogil
4242
iterator begin() nogil
4343
iterator end() nogil
44+
iterator insert(T&) nogil
4445

4546
cdef cppclass multiset[T, U]:
4647
cppclass iterator:
@@ -205,7 +206,7 @@ cdef extern from "<symengine/basic.h>" namespace "SymEngine":
205206
ctypedef map[RCP[Integer], unsigned] map_integer_uint "SymEngine::map_integer_uint"
206207
cdef struct RCPIntegerKeyLess
207208
cdef struct RCPBasicKeyLess
208-
ctypedef set[RCP[const_Basic], RCPBasicKeyLess] set_basic "SymEngine::set_basic"
209+
ctypedef set[RCP[Basic], RCPBasicKeyLess] set_basic "SymEngine::set_basic"
209210
ctypedef multiset[RCP[const_Basic], RCPBasicKeyLess] multiset_basic "SymEngine::multiset_basic"
210211
cdef cppclass Basic:
211212
string __str__() nogil except +
@@ -298,6 +299,10 @@ cdef extern from "<symengine/basic.h>" namespace "SymEngine":
298299
bool is_a_EmptySet "SymEngine::is_a<SymEngine::EmptySet>"(const Basic &b) nogil
299300
bool is_a_UniversalSet "SymEngine::is_a<SymEngine::UniversalSet>"(const Basic &b) nogil
300301
bool is_a_FiniteSet "SymEngine::is_a<SymEngine::FiniteSet>"(const Basic &b) nogil
302+
bool is_a_Union "SymEngine::is_a<SymEngine::Union>"(const Basic &b) nogil
303+
bool is_a_Complement "SymEngine::is_a<SymEngine::Complement>"(const Basic &b) nogil
304+
bool is_a_ConditionSet "SymEngine::is_a<SymEngine::ConditionSet>"(const Basic &b) nogil
305+
bool is_a_ImageSet "SymEngine::is_a<SymEngine::ImageSet>"(const Basic &b) nogil
301306

302307
bool is_a_Piecewise "SymEngine::is_a<SymEngine::Piecewise>"(const Basic &b) nogil
303308
bool is_a_Contains "SymEngine::is_a<SymEngine::Contains>"(const Basic &b) nogil
@@ -920,8 +925,8 @@ cdef extern from "<symengine/logic.h>" namespace "SymEngine":
920925
cdef RCP[const Boolean] Lt(RCP[const Basic] &lhs, RCP[const Basic] &rhs) nogil except+
921926
ctypedef Boolean const_Boolean "const SymEngine::Boolean"
922927
ctypedef vector[pair[RCP[const_Basic], RCP[const_Boolean]]] PiecewiseVec;
923-
ctypedef vector[RCP[const_Boolean]] vec_boolean "SymEngine::vec_boolean"
924-
ctypedef set[RCP[const_Boolean], RCPBasicKeyLess] set_boolean "SymEngine::set_boolean"
928+
ctypedef vector[RCP[Boolean]] vec_boolean "SymEngine::vec_boolean"
929+
ctypedef set[RCP[Boolean], RCPBasicKeyLess] set_boolean "SymEngine::set_boolean"
925930
cdef RCP[const Boolean] logical_and(set_boolean &s) nogil except+
926931
cdef RCP[const Boolean] logical_nand(set_boolean &s) nogil except+
927932
cdef RCP[const Boolean] logical_or(set_boolean &s) nogil except+
@@ -998,7 +1003,22 @@ cdef extern from "<symengine/sets.h>" namespace "SymEngine":
9981003
pass
9991004
cdef cppclass FiniteSet(Set):
10001005
pass
1006+
cdef cppclass Union(Set):
1007+
pass
1008+
cdef cppclass Complement(Set):
1009+
pass
1010+
cdef cppclass ConditionSet(Set):
1011+
pass
1012+
cdef cppclass ImageSet(Set):
1013+
pass
1014+
ctypedef set[RCP[Set], RCPBasicKeyLess] set_set "SymEngine::set_set"
10011015
cdef RCP[const Basic] interval(RCP[const Number] &start, RCP[const Number] &end, bool l, bool r) nogil except +
10021016
cdef RCP[const EmptySet] emptyset() nogil except +
10031017
cdef RCP[const UniversalSet] universalset() nogil except +
10041018
cdef RCP[const Set] finiteset(set_basic &container) nogil except +
1019+
cdef RCP[const Set] set_union(set_set &a) nogil except +
1020+
cdef RCP[const Set] set_intersection(set_set &a) nogil except +
1021+
cdef RCP[const Set] set_complement_helper(RCP[const Set] &container, RCP[const Set] &universe) nogil except +
1022+
cdef RCP[const Set] set_complement(RCP[const Set] &universe, RCP[const Set] &container) nogil except +
1023+
cdef RCP[const Set] conditionset(RCP[const Basic] &sym, RCP[const Boolean] &condition) nogil except +
1024+
cdef RCP[const Set] imageset(RCP[const Basic] &sym, RCP[const Basic] &expr, RCP[const Set] &base) nogil except +

0 commit comments

Comments
 (0)