SYMENGINE_ENUM(SYMENGINE_INTEGER, Integer)
SYMENGINE_ENUM(SYMENGINE_RATIONAL, Rational)
SYMENGINE_ENUM(SYMENGINE_COMPLEX, Complex)
SYMENGINE_ENUM(SYMENGINE_COMPLEX_DOUBLE, ComplexDouble)
#if defined(HAVE_SYMENGINE_MPFR) || defined(SYMENGINE_INCLUDE_ALL)
SYMENGINE_ENUM(SYMENGINE_REAL_MPFR, RealMPFR)
#endif
#if defined(HAVE_SYMENGINE_MPC) || defined(SYMENGINE_INCLUDE_ALL)
SYMENGINE_ENUM(SYMENGINE_COMPLEX_MPC, ComplexMPC)
#endif
SYMENGINE_ENUM(SYMENGINE_REAL_DOUBLE, RealDouble)
SYMENGINE_ENUM(SYMENGINE_INFTY, Infty)
SYMENGINE_ENUM(SYMENGINE_NOT_A_NUMBER, NaN)
#if defined(HAVE_SYMENGINE_PIRANHA) || defined(SYMENGINE_INCLUDE_ALL)
SYMENGINE_ENUM(SYMENGINE_URATPSERIESPIRANHA, URatPSeriesPiranha)
SYMENGINE_ENUM(SYMENGINE_UPSERIESPIRANHA, UPSeriesPiranha)
#endif
#if defined(HAVE_SYMENGINE_FLINT) || defined(SYMENGINE_INCLUDE_ALL)
SYMENGINE_ENUM(SYMENGINE_URATPSERIESFLINT, URatPSeriesFlint)
#endif
SYMENGINE_ENUM(SYMENGINE_NUMBER_WRAPPER, NumberWrapper)
// 'NUMBER_WRAPPER' returns the number of subclasses of Number.
// All subclasses of Number must be added before it. Do not assign
// non subclasses of Number before it.
SYMENGINE_ENUM(SYMENGINE_SYMBOL, Symbol)
SYMENGINE_ENUM(SYMENGINE_DUMMY, Dummy)
SYMENGINE_ENUM(SYMENGINE_MUL, Mul)
SYMENGINE_ENUM(SYMENGINE_ADD, Add)
SYMENGINE_ENUM(SYMENGINE_POW, Pow)
SYMENGINE_ENUM(SYMENGINE_UINTPOLY, UIntPoly)
SYMENGINE_ENUM(SYMENGINE_MINTPOLY, MIntPoly)
SYMENGINE_ENUM(SYMENGINE_URATPOLY, URatPoly)
SYMENGINE_ENUM(SYMENGINE_UEXPRPOLY, UExprPoly)
SYMENGINE_ENUM(SYMENGINE_MEXPRPOLY, MExprPoly)
#if defined(HAVE_SYMENGINE_PIRANHA) || defined(SYMENGINE_INCLUDE_ALL)
SYMENGINE_ENUM(SYMENGINE_UINTPOLYPIRANHA, UIntPolyPiranha)
SYMENGINE_ENUM(SYMENGINE_URATPOLYPIRANHA, URatPolyPiranha)
#endif
#if defined(HAVE_SYMENGINE_FLINT) || defined(SYMENGINE_INCLUDE_ALL)
SYMENGINE_ENUM(SYMENGINE_UINTPOLYFLINT, UIntPolyFlint)
SYMENGINE_ENUM(SYMENGINE_URATPOLYFLINT, URatPolyFlint)
#endif
SYMENGINE_ENUM(SYMENGINE_GALOISFIELD, GaloisField)
SYMENGINE_ENUM(SYMENGINE_UNIVARIATESERIES, UnivariateSeries)
SYMENGINE_ENUM(SYMENGINE_LOG, Log)
SYMENGINE_ENUM(SYMENGINE_CONJUGATE, Conjugate)
SYMENGINE_ENUM(SYMENGINE_CONSTANT, Constant)
SYMENGINE_ENUM(SYMENGINE_SIGN, Sign)
SYMENGINE_ENUM(SYMENGINE_FLOOR, Floor)
SYMENGINE_ENUM(SYMENGINE_CEILING, Ceiling)
SYMENGINE_ENUM(SYMENGINE_SIN, Sin)
SYMENGINE_ENUM(SYMENGINE_COS, Cos)
SYMENGINE_ENUM(SYMENGINE_TAN, Tan)
SYMENGINE_ENUM(SYMENGINE_COT, Cot)
SYMENGINE_ENUM(SYMENGINE_CSC, Csc)
SYMENGINE_ENUM(SYMENGINE_SEC, Sec)
SYMENGINE_ENUM(SYMENGINE_ASIN, ASin)
SYMENGINE_ENUM(SYMENGINE_ACOS, ACos)
SYMENGINE_ENUM(SYMENGINE_ASEC, ASec)
SYMENGINE_ENUM(SYMENGINE_ACSC, ACsc)
SYMENGINE_ENUM(SYMENGINE_ATAN, ATan)
SYMENGINE_ENUM(SYMENGINE_ACOT, ACot)
SYMENGINE_ENUM(SYMENGINE_ATAN2, ATan2)
SYMENGINE_ENUM(SYMENGINE_SINH, Sinh)
SYMENGINE_ENUM(SYMENGINE_CSCH, Csch)
SYMENGINE_ENUM(SYMENGINE_COSH, Cosh)
SYMENGINE_ENUM(SYMENGINE_SECH, Sech)
SYMENGINE_ENUM(SYMENGINE_TANH, Tanh)
SYMENGINE_ENUM(SYMENGINE_COTH, Coth)
SYMENGINE_ENUM(SYMENGINE_ASINH, ASinh)
SYMENGINE_ENUM(SYMENGINE_ACSCH, ACsch)
SYMENGINE_ENUM(SYMENGINE_ACOSH, ACosh)
SYMENGINE_ENUM(SYMENGINE_ATANH, ATanh)
SYMENGINE_ENUM(SYMENGINE_ACOTH, ACoth)
SYMENGINE_ENUM(SYMENGINE_ASECH, ASech)
SYMENGINE_ENUM(SYMENGINE_LAMBERTW, LambertW)
SYMENGINE_ENUM(SYMENGINE_ZETA, Zeta)
SYMENGINE_ENUM(SYMENGINE_DIRICHLET_ETA, Dirichlet_eta)
SYMENGINE_ENUM(SYMENGINE_KRONECKERDELTA, KroneckerDelta)
SYMENGINE_ENUM(SYMENGINE_LEVICIVITA, LeviCivita)
SYMENGINE_ENUM(SYMENGINE_ERF, Erf)
SYMENGINE_ENUM(SYMENGINE_ERFC, Erfc)
SYMENGINE_ENUM(SYMENGINE_GAMMA, Gamma)
SYMENGINE_ENUM(SYMENGINE_POLYGAMMA, PolyGamma)
SYMENGINE_ENUM(SYMENGINE_LOWERGAMMA, LowerGamma)
SYMENGINE_ENUM(SYMENGINE_UPPERGAMMA, UpperGamma)
SYMENGINE_ENUM(SYMENGINE_LOGGAMMA, LogGamma)
SYMENGINE_ENUM(SYMENGINE_BETA, Beta)
SYMENGINE_ENUM(SYMENGINE_FUNCTIONSYMBOL, FunctionSymbol)
SYMENGINE_ENUM(SYMENGINE_FUNCTIONWRAPPER, FunctionWrapper)
SYMENGINE_ENUM(SYMENGINE_DERIVATIVE, Derivative)
SYMENGINE_ENUM(SYMENGINE_SUBS, Subs)
SYMENGINE_ENUM(SYMENGINE_ABS, Abs)
SYMENGINE_ENUM(SYMENGINE_MAX, Max)
SYMENGINE_ENUM(SYMENGINE_MIN, Min)
SYMENGINE_ENUM(SYMENGINE_EMPTYSET, EmptySet)
SYMENGINE_ENUM(SYMENGINE_FINITESET, FiniteSet)
SYMENGINE_ENUM(SYMENGINE_INTERVAL, Interval)
SYMENGINE_ENUM(SYMENGINE_COMPLEXES, Complexes)
SYMENGINE_ENUM(SYMENGINE_REALS, Reals)
SYMENGINE_ENUM(SYMENGINE_RATIONALS, Rationals)
SYMENGINE_ENUM(SYMENGINE_INTEGERS, Integers)
SYMENGINE_ENUM(SYMENGINE_NATURALS, Naturals)
SYMENGINE_ENUM(SYMENGINE_NATURALS0, Naturals0)
SYMENGINE_ENUM(SYMENGINE_CONDITIONSET, ConditionSet)
SYMENGINE_ENUM(SYMENGINE_UNION, Union)
SYMENGINE_ENUM(SYMENGINE_INTERSECTION, Intersection)
SYMENGINE_ENUM(SYMENGINE_COMPLEMENT, Complement)
SYMENGINE_ENUM(SYMENGINE_IMAGESET, ImageSet)
SYMENGINE_ENUM(SYMENGINE_PIECEWISE, Piecewise)
SYMENGINE_ENUM(SYMENGINE_UNIVERSALSET, UniversalSet)
SYMENGINE_ENUM(SYMENGINE_CONTAINS, Contains)
SYMENGINE_ENUM(SYMENGINE_BOOLEAN_ATOM, BooleanAtom)
SYMENGINE_ENUM(SYMENGINE_NOT, Not)
SYMENGINE_ENUM(SYMENGINE_AND, And)
SYMENGINE_ENUM(SYMENGINE_OR, Or)
SYMENGINE_ENUM(SYMENGINE_XOR, Xor)
SYMENGINE_ENUM(SYMENGINE_EQUALITY, Equality)
SYMENGINE_ENUM(SYMENGINE_UNEQUALITY, Unequality)
SYMENGINE_ENUM(SYMENGINE_LESSTHAN, LessThan)
SYMENGINE_ENUM(SYMENGINE_STRICTLESSTHAN, StrictLessThan)
SYMENGINE_ENUM(SYMENGINE_TRUNCATE, Truncate)
SYMENGINE_ENUM(SYMENGINE_PRIMEPI, PrimePi)
SYMENGINE_ENUM(SYMENGINE_PRIMORIAL, Primorial)
SYMENGINE_ENUM(SYMENGINE_TUPLE, Tuple)
// IdentityMatrix must be the first MatrixExpr
SYMENGINE_ENUM(SYMENGINE_IDENTITYMATRIX, IdentityMatrix)
SYMENGINE_ENUM(SYMENGINE_ZEROMATRIX, ZeroMatrix)
SYMENGINE_ENUM(SYMENGINE_MATRIXSYMBOL, MatrixSymbol)
SYMENGINE_ENUM(SYMENGINE_DIAGONALMATRIX, DiagonalMatrix)
SYMENGINE_ENUM(SYMENGINE_IMMUTABLEDENSEMATRIX, ImmutableDenseMatrix)
SYMENGINE_ENUM(SYMENGINE_MATRIXADD, MatrixAdd)
SYMENGINE_ENUM(SYMENGINE_MATRIXMUL, MatrixMul)
SYMENGINE_ENUM(SYMENGINE_HADAMARDPRODUCT, HadamardProduct)
SYMENGINE_ENUM(SYMENGINE_TRACE, Trace)
SYMENGINE_ENUM(SYMENGINE_CONJUGATEMATRIX, ConjugateMatrix)
SYMENGINE_ENUM(SYMENGINE_TRANSPOSE, Transpose)
// Transpose must be the last MatrixExpr
SYMENGINE_ENUM(SYMENGINE_UNEVALUATED_EXPR, UnevaluatedExpr)
