[bugfix] fix elusive bug in quo, rem,...
authorRichard Kreckel <kreckel@ginac.de>
Fri, 5 Feb 2016 23:47:08 +0000 (00:47 +0100)
committerRichard Kreckel <kreckel@ginac.de>
Sat, 6 Feb 2016 00:00:55 +0000 (01:00 +0100)
commit054495cd8a0bb3f71e898a290bfdc026fc0fc5bb
tree8e4765da1696071857e9238c76fde0d3bf38ca12
parentec3f0adc471cd6205e81115111070421c8477c6e
[bugfix] fix elusive bug in quo, rem,...

The power of two rational numeric objects needs not be rational. As a
result, some care is required when transforming (b^e)*l -> (b*l^(1/e))^e
for some rational e and l. This is a common transformation in order to
convert a polynomial over Q into a polynomial over Z when computing
their quotient, remainder, etc. Failure to be careful can potentially
introduce spurious non-rational numbers into rational polynomials and
make those operations fail. This patch avoids this transformation when
l^(1/e) is not a rational number.
ginac/normal.cpp