[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
5.4.4 The option algebraic
Both has()
and subs()
take an optional argument to pass them
extra options. This section describes what happens if you give the former
the option has_options::algebraic
or the latter
subs_options::algebraic
. In that case the matching condition for
powers and multiplications is changed in such a way that they become
more intuitive. Intuition says that x*y
is a part of x*y*z
.
If you use these options you will find that
(x*y*z).has(x*y, has_options::algebraic)
indeed returns true.
Besides matching some of the factors of a product also powers match as
often as is possible without getting negative exponents. For example
(x^5*y^2*z).subs(x^2*y^2==c, subs_options::algebraic)
will return
x*c^2*z
. This also works with negative powers:
(x^(-3)*y^(-2)*z).subs(1/(x*y)==c, subs_options::algebraic)
will
return x^(-1)*c^2*z
.
Note: this only works for multiplications
and not for locating x+y
within x+y+z
.