#include <ginac/basic.h>
#include <ginac/expairseq.h>
+#ifndef NO_GINAC_NAMESPACE
namespace GiNaC {
+#endif // ndef NO_GINAC_NAMESPACE
/** This class holds a extended truncated power series (positive and negative
* integer powers). It consists of expression coefficients (only non-zero
extern const series some_series;
extern type_info const & typeid_series;
-// utility functions
+/** Return a reference to the series object embedded in an expression.
+ * The result is undefined if the expression does not contain a series
+ * object at its top level.
+ *
+ * @param e expression
+ * @return reference to series object
+ * @see is_ex_of_type */
inline const series &ex_to_series(const ex &e)
{
return static_cast<const series &>(*e.bp);
}
+/** Convert the series object embedded in an expression to an ordinary
+ * polynomial in the expansion variable. The result is undefined if the
+ * expression does not contain a series object at its top level.
+ *
+ * @param e expression
+ * @return polynomial expression
+ * @see is_ex_of_type
+ * @see series::convert_to_poly */
inline ex series_to_poly(const ex &e)
{
return (static_cast<const series &>(*e.bp).convert_to_poly(true));
}
+#ifndef NO_GINAC_NAMESPACE
} // namespace GiNaC
+#endif // ndef NO_GINAC_NAMESPACE
#endif // ndef __GINAC_SERIES_H__