Hi, On Mon, Jul 29, 2013 at 10:41:01PM +0100, Vladimir V. Kisil wrote:
Subject: [PATCH 3/3] Add an expansion law in power::expand(). The expansion (x*p)^c -> x^c*p^c is done for a positive expression p and a real exponent c. The corresponding check is added to exam_powerlaws.
diff --git a/ginac/flags.h b/ginac/flags.h index 8f8f25d..f4f0f6b 100644 --- a/ginac/flags.h +++ b/ginac/flags.h @@ -197,6 +197,9 @@ public: not_shareable = 0x0010, ///< don't share instances of this object between different expressions unless explicitly asked to (used by ex::compare()) has_indices = 0x0020, has_no_indices = 0x0040 // ! (has_indices || has_no_indices) means "don't know" + is_positive = 0x0080, + is_negative = 0x0100, + purely_indefinite = 0x0200, // If set in a mul, then it does not contains any terms with determined signs, used in power::expand() }; };
The `purely_idefinite' flag is redundant (that is !(is_positive || is_negative) is equivalent to purely_indefinite). Also status_flags is quite a scarce resource (there are only 32 of them). Could you please skip that flag? Best regards, Alexei