X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?a=blobdiff_plain;f=ginac%2Fmul.h;h=d9023c2f30755d2374e621d24f2f3a03864ecce8;hb=690cd58cc13ad5052eb5851c573984965d0c40c1;hp=b94c8fda607a844f9088e1a8e7df229167077341;hpb=da64e515abf7243bc4c84ca3631470931c4e6691;p=ginac.git diff --git a/ginac/mul.h b/ginac/mul.h index b94c8fda..d9023c2f 100644 --- a/ginac/mul.h +++ b/ginac/mul.h @@ -3,7 +3,7 @@ * Interface to GiNaC's products of expressions. */ /* - * GiNaC Copyright (C) 1999-2005 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2006 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 @@ -52,8 +52,11 @@ public: int degree(const ex & s) const; int ldegree(const ex & s) const; ex coeff(const ex & s, int n = 1) const; + bool has(const ex & other, unsigned options = 0) const; ex eval(int level=0) const; ex evalf(int level=0) const; + ex real_part() const; + ex imag_part() const; ex evalm() const; ex series(const relational & s, int order, unsigned options = 0) const; ex normal(exmap & repl, exmap & rev_lookup, int level = 0) const; @@ -65,7 +68,7 @@ protected: ex derivative(const symbol & s) const; ex eval_ncmul(const exvector & v) const; unsigned return_type() const; - unsigned return_type_tinfo() const; + tinfo_t return_type_tinfo() const; ex thisexpairseq(const epvector & v, const ex & oc) const; ex thisexpairseq(std::auto_ptr vp, const ex & oc) const; expair split_ex_to_pair(const ex & e) const; @@ -78,6 +81,7 @@ protected: void combine_overall_coeff(const ex & c1, const ex & c2); bool can_make_flat(const expair & p) const; ex expand(unsigned options=0) const; + void find_real_imag(ex&, ex&) const; // new virtual functions which can be overridden by derived classes // none @@ -95,14 +99,6 @@ protected: std::auto_ptr expandchildren(unsigned options) const; }; -// utility functions - -/** Specialization of is_exactly_a(obj) for mul objects. */ -template<> inline bool is_exactly_a(const basic & obj) -{ - return obj.tinfo()==TINFO_mul; -} - } // namespace GiNaC #endif // ndef __GINAC_MUL_H__