]> www.ginac.de Git - ginac.git/blobdiff - ginac/add.cpp
Add mul::info() and add::info() support for numeric info_flags.
[ginac.git] / ginac / add.cpp
index 4c857044d5df509892cce89bfbafe8bd99b45c79..5f714fef36b4a393ae00d34c12cd0df7db8c5f45 100644 (file)
@@ -224,6 +224,16 @@ bool add::info(unsigned inf) const
                case info_flags::integer_polynomial:
                case info_flags::cinteger_polynomial:
                case info_flags::rational_polynomial:
+               case info_flags::real:
+               case info_flags::rational:
+               case info_flags::integer:
+               case info_flags::crational:
+               case info_flags::cinteger:
+               case info_flags::positive:
+               case info_flags::nonnegative:
+               case info_flags::posint:
+               case info_flags::nonnegint:
+               case info_flags::even:
                case info_flags::crational_polynomial:
                case info_flags::rational_function: {
                        epvector::const_iterator i = seq.begin(), end = seq.end();
@@ -232,6 +242,8 @@ bool add::info(unsigned inf) const
                                        return false;
                                ++i;
                        }
+                       if (overall_coeff.is_zero() && (inf == info_flags::positive || inf == info_flags::posint))
+                               return true;
                        return overall_coeff.info(inf);
                }
                case info_flags::algebraic: {