X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Fbasic.cpp;h=fb73096fa70a4796e301ade46306d53849d25068;hp=9d621fbb2b7eda53b66f02074ccdf5c3c754fdfe;hb=aaaa74e1033fdd659b4420835b348c72f5fab536;hpb=cfea748404dec5fb2f2e3310d36eeb6640f13824 diff --git a/ginac/basic.cpp b/ginac/basic.cpp index 9d621fbb..fb73096f 100644 --- a/ginac/basic.cpp +++ b/ginac/basic.cpp @@ -3,7 +3,7 @@ * Implementation of GiNaC's ABC. */ /* - * 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 @@ -236,19 +236,22 @@ ex basic::map(map_function & f) const /** Return degree of highest power in object s. */ int basic::degree(const ex & s) const { - return 0; + return is_equal(ex_to(s)) ? 1 : 0; } /** Return degree of lowest power in object s. */ int basic::ldegree(const ex & s) const { - return 0; + return is_equal(ex_to(s)) ? 1 : 0; } /** Return coefficient of degree n in object s. */ ex basic::coeff(const ex & s, int n) const { - return n==0 ? *this : _ex0; + if (is_equal(ex_to(s))) + return n==1 ? _ex1 : _ex0; + else + return n==0 ? *this : _ex0; } /** Sort expanded expression in terms of powers of some object(s).