]> www.ginac.de Git - ginac.git/blobdiff - ginac/ex.cpp
* Streamlining by Peter Eisentraut <petere@debian.org>.
[ginac.git] / ginac / ex.cpp
index cced24e428d09d385eac0134fbcc8f9705831fc6..f1835377d2fbd9b6e0e83c289feea3c8361e36ef 100644 (file)
@@ -17,7 +17,7 @@
  *
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 #include <iostream>
@@ -240,6 +240,20 @@ ex ex::rhs() const
        return bp->op(1);
 }
 
+/** Check whether expression is a polynomial. */
+bool ex::is_polynomial(const ex & vars) const
+{
+       if (is_a<lst>(vars)) {
+               const lst & varlst = ex_to<lst>(vars);
+               for (lst::const_iterator i=varlst.begin(); i!=varlst.end(); ++i)
+                       if (!bp->is_polynomial(*i))
+                               return false;
+               return true;
+       }
+       else
+               return bp->is_polynomial(vars);
+}
+
 // private
 
 /** Make this ex writable (if more than one ex handle the same basic) by