Skip to content

Commit 07f7342

Browse files
committed
use is_a template function
1 parent 1d63ae4 commit 07f7342

File tree

2 files changed

+96
-182
lines changed

2 files changed

+96
-182
lines changed

symengine/lib/symengine.pxd

Lines changed: 6 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ cdef extern from "<symengine/basic.h>" namespace "SymEngine":
110110
cdef struct RCPBasicKeyLess
111111
ctypedef set[rcp_const_basic] set_basic "SymEngine::set_basic"
112112
ctypedef multiset[rcp_const_basic] multiset_basic "SymEngine::multiset_basic"
113+
113114
cdef cppclass Basic:
114115
string __str__() except+ nogil
115116
unsigned int hash() except+ nogil
@@ -159,96 +160,8 @@ cdef extern from "<symengine/basic.h>" namespace "SymEngine":
159160
Ptr[RCP[Basic]] outArg(rcp_const_basic &arg) nogil
160161
Ptr[RCP[Integer]] outArg_Integer "SymEngine::outArg<SymEngine::RCP<const SymEngine::Integer>>"(RCP[const Integer] &arg) nogil
161162

162-
bool is_a_Add "SymEngine::is_a<SymEngine::Add>"(const Basic &b) nogil
163-
bool is_a_Mul "SymEngine::is_a<SymEngine::Mul>"(const Basic &b) nogil
164-
bool is_a_Pow "SymEngine::is_a<SymEngine::Pow>"(const Basic &b) nogil
165-
bool is_a_Integer "SymEngine::is_a<SymEngine::Integer>"(const Basic &b) nogil
166-
bool is_a_Rational "SymEngine::is_a<SymEngine::Rational>"(const Basic &b) nogil
167-
bool is_a_Complex "SymEngine::is_a<SymEngine::Complex>"(const Basic &b) nogil
168-
bool is_a_Symbol "SymEngine::is_a<SymEngine::Symbol>"(const Basic &b) nogil
169-
bool is_a_Dummy "SymEngine::is_a<SymEngine::Dummy>"(const Basic &b) nogil
170-
bool is_a_Constant "SymEngine::is_a<SymEngine::Constant>"(const Basic &b) nogil
171-
bool is_a_Infty "SymEngine::is_a<SymEngine::Infty>"(const Basic &b) nogil
172-
bool is_a_NaN "SymEngine::is_a<SymEngine::NaN>"(const Basic &b) nogil
173-
bool is_a_Sin "SymEngine::is_a<SymEngine::Sin>"(const Basic &b) nogil
174-
bool is_a_Cos "SymEngine::is_a<SymEngine::Cos>"(const Basic &b) nogil
175-
bool is_a_Tan "SymEngine::is_a<SymEngine::Tan>"(const Basic &b) nogil
176-
bool is_a_Cot "SymEngine::is_a<SymEngine::Cot>"(const Basic &b) nogil
177-
bool is_a_Csc "SymEngine::is_a<SymEngine::Csc>"(const Basic &b) nogil
178-
bool is_a_Sec "SymEngine::is_a<SymEngine::Sec>"(const Basic &b) nogil
179-
bool is_a_ASin "SymEngine::is_a<SymEngine::ASin>"(const Basic &b) nogil
180-
bool is_a_ACos "SymEngine::is_a<SymEngine::ACos>"(const Basic &b) nogil
181-
bool is_a_ATan "SymEngine::is_a<SymEngine::ATan>"(const Basic &b) nogil
182-
bool is_a_ACot "SymEngine::is_a<SymEngine::ACot>"(const Basic &b) nogil
183-
bool is_a_ACsc "SymEngine::is_a<SymEngine::ACsc>"(const Basic &b) nogil
184-
bool is_a_ASec "SymEngine::is_a<SymEngine::ASec>"(const Basic &b) nogil
185-
bool is_a_Sinh "SymEngine::is_a<SymEngine::Sinh>"(const Basic &b) nogil
186-
bool is_a_Cosh "SymEngine::is_a<SymEngine::Cosh>"(const Basic &b) nogil
187-
bool is_a_Tanh "SymEngine::is_a<SymEngine::Tanh>"(const Basic &b) nogil
188-
bool is_a_Coth "SymEngine::is_a<SymEngine::Coth>"(const Basic &b) nogil
189-
bool is_a_Csch "SymEngine::is_a<SymEngine::Csch>"(const Basic &b) nogil
190-
bool is_a_Sech "SymEngine::is_a<SymEngine::Sech>"(const Basic &b) nogil
191-
bool is_a_ASinh "SymEngine::is_a<SymEngine::ASinh>"(const Basic &b) nogil
192-
bool is_a_ACosh "SymEngine::is_a<SymEngine::ACosh>"(const Basic &b) nogil
193-
bool is_a_ATanh "SymEngine::is_a<SymEngine::ATanh>"(const Basic &b) nogil
194-
bool is_a_ACoth "SymEngine::is_a<SymEngine::ACoth>"(const Basic &b) nogil
195-
bool is_a_ACsch "SymEngine::is_a<SymEngine::ACsch>"(const Basic &b) nogil
196-
bool is_a_ASech "SymEngine::is_a<SymEngine::ASech>"(const Basic &b) nogil
197-
bool is_a_FunctionSymbol "SymEngine::is_a<SymEngine::FunctionSymbol>"(const Basic &b) nogil
198-
bool is_a_Abs "SymEngine::is_a<SymEngine::Abs>"(const Basic &b) nogil
199-
bool is_a_Max "SymEngine::is_a<SymEngine::Max>"(const Basic &b) nogil
200-
bool is_a_Min "SymEngine::is_a<SymEngine::Min>"(const Basic &b) nogil
201-
bool is_a_Gamma "SymEngine::is_a<SymEngine::Gamma>"(const Basic &b) nogil
202-
bool is_a_Derivative "SymEngine::is_a<SymEngine::Derivative>"(const Basic &b) nogil
203-
bool is_a_Subs "SymEngine::is_a<SymEngine::Subs>"(const Basic &b) nogil
204-
bool is_a_PyFunction "SymEngine::is_a<SymEngine::FunctionWrapper>"(const Basic &b) nogil
205-
bool is_a_RealDouble "SymEngine::is_a<SymEngine::RealDouble>"(const Basic &b) nogil
206-
bool is_a_ComplexDouble "SymEngine::is_a<SymEngine::ComplexDouble>"(const Basic &b) nogil
207-
bool is_a_RealMPFR "SymEngine::is_a<SymEngine::RealMPFR>"(const Basic &b) nogil
208-
bool is_a_ComplexMPC "SymEngine::is_a<SymEngine::ComplexMPC>"(const Basic &b) nogil
209-
bool is_a_Log "SymEngine::is_a<SymEngine::Log>"(const Basic &b) nogil
210-
bool is_a_BooleanAtom "SymEngine::is_a<SymEngine::BooleanAtom>"(const Basic &b) nogil
211-
bool is_a_Equality "SymEngine::is_a<SymEngine::Equality>"(const Basic &b) nogil
212-
bool is_a_Unequality "SymEngine::is_a<SymEngine::Unequality>"(const Basic &b) nogil
213-
bool is_a_LessThan "SymEngine::is_a<SymEngine::LessThan>"(const Basic &b) nogil
214-
bool is_a_StrictLessThan "SymEngine::is_a<SymEngine::StrictLessThan>"(const Basic &b) nogil
215-
bool is_a_PyNumber "SymEngine::is_a<SymEngine::PyNumber>"(const Basic &b) nogil
216-
bool is_a_ATan2 "SymEngine::is_a<SymEngine::ATan2>"(const Basic &b) nogil
217-
bool is_a_LambertW "SymEngine::is_a<SymEngine::LambertW>"(const Basic &b) nogil
218-
bool is_a_Zeta "SymEngine::is_a<SymEngine::Zeta>"(const Basic &b) nogil
219-
bool is_a_DirichletEta "SymEngine::is_a<SymEngine::Dirichlet_eta>"(const Basic &b) nogil
220-
bool is_a_KroneckerDelta "SymEngine::is_a<SymEngine::KroneckerDelta>"(const Basic &b) nogil
221-
bool is_a_LeviCivita "SymEngine::is_a<SymEngine::LeviCivita>"(const Basic &b) nogil
222-
bool is_a_Erf "SymEngine::is_a<SymEngine::Erf>"(const Basic &b) nogil
223-
bool is_a_Erfc "SymEngine::is_a<SymEngine::Erfc>"(const Basic &b) nogil
224-
bool is_a_LowerGamma "SymEngine::is_a<SymEngine::LowerGamma>"(const Basic &b) nogil
225-
bool is_a_UpperGamma "SymEngine::is_a<SymEngine::UpperGamma>"(const Basic &b) nogil
226-
bool is_a_LogGamma "SymEngine::is_a<SymEngine::LogGamma>"(const Basic &b) nogil
227-
bool is_a_Beta "SymEngine::is_a<SymEngine::Beta>"(const Basic &b) nogil
228-
bool is_a_PolyGamma "SymEngine::is_a<SymEngine::PolyGamma>"(const Basic &b) nogil
229-
bool is_a_PySymbol "SymEngine::is_a_sub<SymEngine::PySymbol>"(const Basic &b) nogil
230-
bool is_a_Sign "SymEngine::is_a<SymEngine::Sign>"(const Basic &b) nogil
231-
bool is_a_Floor "SymEngine::is_a<SymEngine::Floor>"(const Basic &b) nogil
232-
bool is_a_Ceiling "SymEngine::is_a<SymEngine::Ceiling>"(const Basic &b) nogil
233-
bool is_a_Conjugate "SymEngine::is_a<SymEngine::Conjugate>"(const Basic &b) nogil
234-
bool is_a_Interval "SymEngine::is_a<SymEngine::Interval>"(const Basic &b) nogil
235-
bool is_a_EmptySet "SymEngine::is_a<SymEngine::EmptySet>"(const Basic &b) nogil
236-
bool is_a_Reals "SymEngine::is_a<SymEngine::Reals>"(const Basic &b) nogil
237-
bool is_a_Rationals "SymEngine::is_a<SymEngine::Rationals>"(const Basic &b) nogil
238-
bool is_a_Integers "SymEngine::is_a<SymEngine::Integers>"(const Basic &b) nogil
239-
bool is_a_UniversalSet "SymEngine::is_a<SymEngine::UniversalSet>"(const Basic &b) nogil
240-
bool is_a_FiniteSet "SymEngine::is_a<SymEngine::FiniteSet>"(const Basic &b) nogil
241-
bool is_a_Union "SymEngine::is_a<SymEngine::Union>"(const Basic &b) nogil
242-
bool is_a_Complement "SymEngine::is_a<SymEngine::Complement>"(const Basic &b) nogil
243-
bool is_a_ConditionSet "SymEngine::is_a<SymEngine::ConditionSet>"(const Basic &b) nogil
244-
bool is_a_ImageSet "SymEngine::is_a<SymEngine::ImageSet>"(const Basic &b) nogil
245-
bool is_a_UnevaluatedExpr "SymEngine::is_a<SymEngine::UnevaluatedExpr>"(const Basic &b) nogil
246-
bool is_a_Piecewise "SymEngine::is_a<SymEngine::Piecewise>"(const Basic &b) nogil
247-
bool is_a_Contains "SymEngine::is_a<SymEngine::Contains>"(const Basic &b) nogil
248-
bool is_a_And "SymEngine::is_a<SymEngine::And>"(const Basic &b) nogil
249-
bool is_a_Not "SymEngine::is_a<SymEngine::Not>"(const Basic &b) nogil
250-
bool is_a_Or "SymEngine::is_a<SymEngine::Or>"(const Basic &b) nogil
251-
bool is_a_Xor "SymEngine::is_a<SymEngine::Xor>"(const Basic &b) nogil
163+
bool is_a[T] (const Basic &b) nogil
164+
bool is_a_sub[T] (const Basic &b) nogil
252165
rcp_const_basic expand(rcp_const_basic &o, bool deep) except+ nogil
253166
void as_numer_denom(rcp_const_basic &x, const Ptr[RCP[Basic]] &numer, const Ptr[RCP[Basic]] &denom) nogil
254167
void as_real_imag(rcp_const_basic &x, const Ptr[RCP[Basic]] &real, const Ptr[RCP[Basic]] &imag) nogil
@@ -650,6 +563,9 @@ cdef extern from "<symengine/functions.h>" namespace "SymEngine":
650563
cdef cppclass Conjugate(OneArgFunction):
651564
pass
652565

566+
cdef cppclass UnevaluatedExpr(OneArgFunction):
567+
pass
568+
653569
cdef cppclass Log(Function):
654570
pass
655571

@@ -763,7 +679,6 @@ cdef extern from "<symengine/matrix.h>" namespace "SymEngine":
763679
tribool is_positive_definite() nogil
764680
tribool is_negative_definite() nogil
765681

766-
bool is_a_DenseMatrix "SymEngine::is_a<SymEngine::DenseMatrix>"(const MatrixBase &b) nogil
767682
DenseMatrix* static_cast_DenseMatrix "static_cast<SymEngine::DenseMatrix*>"(const MatrixBase *a)
768683
void inverse_FFLU "SymEngine::inverse_fraction_free_LU"(const DenseMatrix &A,
769684
DenseMatrix &B) except+ nogil
@@ -890,7 +805,6 @@ cdef extern from "<symengine/logic.h>" namespace "SymEngine":
890805

891806
rcp_const_basic boolTrue
892807
rcp_const_basic boolFalse
893-
bool is_a_Relational(const Basic &b) nogil
894808
cdef RCP[const Boolean] Eq(rcp_const_basic &lhs) except+ nogil
895809
cdef RCP[const Boolean] Eq(rcp_const_basic &lhs, rcp_const_basic &rhs) except+ nogil
896810
cdef RCP[const Boolean] Ne(rcp_const_basic &lhs, rcp_const_basic &rhs) except+ nogil

0 commit comments

Comments
 (0)