@@ -41,6 +41,7 @@ cdef extern from "<set>" namespace "std":
41
41
bint operator!= (iterator) nogil
42
42
iterator begin() nogil
43
43
iterator end() nogil
44
+ iterator insert(T& ) nogil
44
45
45
46
cdef cppclass multiset[T, U]:
46
47
cppclass iterator:
@@ -156,6 +157,8 @@ cdef extern from "<symengine/symengine_rcp.h>" namespace "SymEngine":
156
157
RCP[const BooleanAtom] rcp_static_cast_BooleanAtom " SymEngine::rcp_static_cast<const SymEngine::BooleanAtom>" (RCP[const Basic] & b) nogil
157
158
RCP[const PyNumber] rcp_static_cast_PyNumber " SymEngine::rcp_static_cast<const SymEngine::PyNumber>" (RCP[const Basic] & b) nogil
158
159
RCP[const PyFunction] rcp_static_cast_PyFunction " SymEngine::rcp_static_cast<const SymEngine::PyFunction>" (RCP[const Basic] & b) nogil
160
+ RCP[const Boolean] rcp_static_cast_Boolean " SymEngine::rcp_static_cast<const SymEngine::Boolean>" (RCP[const Basic] & b) nogil
161
+ RCP[const Set] rcp_static_cast_Set " SymEngine::rcp_static_cast<const SymEngine::Set>" (RCP[const Basic] & b) nogil
159
162
Ptr[RCP[Basic]] outArg(RCP[const Basic] & arg) nogil
160
163
Ptr[RCP[Integer]] outArg_Integer " SymEngine::outArg<SymEngine::RCP<const SymEngine::Integer>>" (RCP[const Integer] & arg) nogil
161
164
@@ -292,7 +295,21 @@ cdef extern from "<symengine/basic.h>" namespace "SymEngine":
292
295
bool is_a_Floor " SymEngine::is_a<SymEngine::Floor>" (const Basic & b) nogil
293
296
bool is_a_Ceiling " SymEngine::is_a<SymEngine::Ceiling>" (const Basic & b) nogil
294
297
bool is_a_Conjugate " SymEngine::is_a<SymEngine::Conjugate>" (const Basic & b) nogil
295
-
298
+ bool is_a_Interval " SymEngine::is_a<SymEngine::Interval>" (const Basic & b) nogil
299
+ bool is_a_EmptySet " SymEngine::is_a<SymEngine::EmptySet>" (const Basic & b) nogil
300
+ bool is_a_UniversalSet " SymEngine::is_a<SymEngine::UniversalSet>" (const Basic & b) nogil
301
+ 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
306
+
307
+ bool is_a_Piecewise " SymEngine::is_a<SymEngine::Piecewise>" (const Basic & b) nogil
308
+ bool is_a_Contains " SymEngine::is_a<SymEngine::Contains>" (const Basic & b) nogil
309
+ bool is_a_And " SymEngine::is_a<SymEngine::And>" (const Basic & b) nogil
310
+ bool is_a_Not " SymEngine::is_a<SymEngine::Not>" (const Basic & b) nogil
311
+ bool is_a_Or " SymEngine::is_a<SymEngine::Or>" (const Basic & b) nogil
312
+ bool is_a_Xor " SymEngine::is_a<SymEngine::Xor>" (const Basic & b) nogil
296
313
RCP[const Basic] expand(RCP[const Basic] & o) nogil except +
297
314
298
315
cdef extern from " <symengine/subs.h>" namespace " SymEngine" :
@@ -385,7 +402,7 @@ cdef extern from "<symengine/constants.h>" namespace "SymEngine":
385
402
RCP[const Basic] Inf
386
403
RCP[const Basic] ComplexInf
387
404
RCP[const Basic] Nan
388
-
405
+
389
406
cdef extern from " <symengine/infinity.h>" namespace " SymEngine" :
390
407
cdef cppclass Infty(Number):
391
408
pass
@@ -870,7 +887,7 @@ cdef extern from "<symengine/visitor.h>" namespace "SymEngine":
870
887
871
888
cdef extern from " <symengine/logic.h>" namespace " SymEngine" :
872
889
cdef cppclass Boolean(Basic):
873
- pass
890
+ RCP[const Boolean] logical_not() nogil except +
874
891
cdef cppclass BooleanAtom(Boolean):
875
892
bool get_val() nogil
876
893
cdef cppclass Relational(Boolean):
@@ -883,6 +900,18 @@ cdef extern from "<symengine/logic.h>" namespace "SymEngine":
883
900
pass
884
901
cdef cppclass StrictLessThan(Relational):
885
902
pass
903
+ cdef cppclass Piecewise(Basic):
904
+ pass
905
+ cdef cppclass Contains(Boolean):
906
+ pass
907
+ cdef cppclass And(Boolean):
908
+ pass
909
+ cdef cppclass Or(Boolean):
910
+ pass
911
+ cdef cppclass Not(Boolean):
912
+ pass
913
+ cdef cppclass Xor(Boolean):
914
+ pass
886
915
887
916
RCP[const Basic] boolTrue
888
917
RCP[const Basic] boolFalse
@@ -894,6 +923,20 @@ cdef extern from "<symengine/logic.h>" namespace "SymEngine":
894
923
cdef RCP[const Boolean] Gt(RCP[const Basic] & lhs, RCP[const Basic] & rhs) nogil except +
895
924
cdef RCP[const Boolean] Le(RCP[const Basic] & lhs, RCP[const Basic] & rhs) nogil except +
896
925
cdef RCP[const Boolean] Lt(RCP[const Basic] & lhs, RCP[const Basic] & rhs) nogil except +
926
+ ctypedef Boolean const_Boolean " const SymEngine::Boolean"
927
+ ctypedef vector[pair[RCP[const_Basic], RCP[const_Boolean]]] PiecewiseVec;
928
+ ctypedef vector[RCP[Boolean]] vec_boolean " SymEngine::vec_boolean"
929
+ ctypedef set [RCP[Boolean], RCPBasicKeyLess] set_boolean " SymEngine::set_boolean"
930
+ cdef RCP[const Boolean] logical_and(set_boolean & s) nogil except +
931
+ cdef RCP[const Boolean] logical_nand(set_boolean & s) nogil except +
932
+ cdef RCP[const Boolean] logical_or(set_boolean & s) nogil except +
933
+ cdef RCP[const Boolean] logical_not(RCP[const Boolean] & s) nogil except +
934
+ cdef RCP[const Boolean] logical_nor(set_boolean & s) nogil except +
935
+ cdef RCP[const Boolean] logical_xor(vec_boolean & s) nogil except +
936
+ cdef RCP[const Boolean] logical_xnor(vec_boolean & s) nogil except +
937
+ cdef RCP[const Basic] piecewise(PiecewiseVec vec) nogil except +
938
+ cdef RCP[const Boolean] contains(RCP[const Basic] & expr,
939
+ RCP[const Set] & set ) nogil
897
940
898
941
cdef extern from " <utility>" namespace " std" :
899
942
cdef integer_class std_move_mpz " std::move" (integer_class) nogil
@@ -902,6 +945,7 @@ cdef extern from "<utility>" namespace "std":
902
945
IF HAVE_SYMENGINE_MPC:
903
946
cdef mpc_class std_move_mpc " std::move" (mpc_class) nogil
904
947
cdef map_basic_basic std_move_map_basic_basic " std::move" (map_basic_basic) nogil
948
+ cdef PiecewiseVec std_move_PiecewiseVec " std::move" (PiecewiseVec) nogil
905
949
906
950
cdef extern from " <symengine/eval_double.h>" namespace " SymEngine" :
907
951
double eval_double(const Basic & b) nogil except +
@@ -944,3 +988,41 @@ cdef extern from "<symengine/parser.h>" namespace "SymEngine":
944
988
945
989
cdef extern from " <symengine/codegen.h>" namespace " SymEngine" :
946
990
string ccode(const Basic & x) nogil except +
991
+
992
+ cdef extern from " <symengine/sets.h>" namespace " SymEngine" :
993
+ cdef cppclass Set(Basic):
994
+ RCP[const Set] set_intersection(RCP[const Set] & o) nogil except +
995
+ RCP[const Set] set_union(RCP[const Set] & o) nogil except +
996
+ RCP[const Set] set_complement(RCP[const Set] & o) nogil except +
997
+ RCP[const Boolean] contains(RCP[const Basic] & a) nogil except +
998
+ cdef cppclass Interval(Set):
999
+ pass
1000
+ cdef cppclass EmptySet(Set):
1001
+ pass
1002
+ cdef cppclass UniversalSet(Set):
1003
+ pass
1004
+ cdef cppclass FiniteSet(Set):
1005
+ 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"
1015
+ cdef RCP[const Basic] interval(RCP[const Number] & start, RCP[const Number] & end, bool l, bool r) nogil except +
1016
+ cdef RCP[const EmptySet] emptyset() nogil except +
1017
+ cdef RCP[const UniversalSet] universalset() nogil except +
1018
+ 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 +
1025
+
1026
+ cdef extern from " <symengine/solve.h>" namespace " SymEngine" :
1027
+ cdef RCP[const Set] solve(RCP[const Basic] & f, RCP[const Symbol] & sym) nogil except +
1028
+ cdef RCP[const Set] solve(RCP[const Basic] & f, RCP[const Symbol] & sym, RCP[const Set] & domain) nogil except +
0 commit comments