* Interface to GiNaC's symbolic objects. */
/*
- * GiNaC Copyright (C) 1999-2001 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
// member functions
- // default ctor, dtor, copy ctor assignment operator and helpers
+ // default ctor, dtor, copy ctor, assignment operator and helpers
public:
symbol();
- ~symbol()
- {
- /*debugmsg("symbol dtor", LOGLEVEL_DESTRUCT);*/
- destroy(false);
- }
+ ~symbol() { destroy(false); }
symbol(const symbol & other);
protected:
void copy(const symbol & other);
basic * duplicate() const;
void print(const print_context & c, unsigned level = 0) const;
bool info(unsigned inf) const;
- ex expand(unsigned options = 0) const;
- bool has(const ex & other) const;
- int degree(const ex & s) const;
- int ldegree(const ex & s) const;
- ex coeff(const ex & s, int n = 1) const;
ex eval(int level = 0) const;
+ ex evalf(int level = 0) const { return *this; } // overwrites basic::evalf() for performance reasons
ex series(const relational & s, int order, unsigned options = 0) const;
ex normal(lst &sym_lst, lst &repl_lst, int level = 0) const;
ex to_rational(lst &repl_lst) const;
ex derivative(const symbol & s) const;
int compare_same_type(const basic & other) const;
bool is_equal_same_type(const basic & other) const;
- unsigned return_type(void) const;
- unsigned return_type_tinfo(void) const;
unsigned calchash(void) const;
// non-virtual functions in this class
// utility functions
-/** Return the symbol object handled by an ex. Deprecated: use ex_to<symbol>().
- * This is unsafe: you need to check the type first. */
-inline const symbol &ex_to_symbol(const ex &e)
-{
- return static_cast<const symbol &>(*e.bp);
-}
-
/** Specialization of is_exactly_a<symbol>(obj) for symbol objects. */
template<> inline bool is_exactly_a<symbol>(const basic & obj)
{