(1) -> rootPower atan(2*(x^(1/6))^3)

              6+-+3
   (1)  atan(2\|x  )

After patch:

(2) -> rootPower atan(2*(x^(1/6))^3)

               +-+
   (2)  atan(2\|x )

Similar to previous rootSimp, rootPower doesn't handle
nested roots correctly: it overlooked the case when
root appears at argument.

diff --git a/src/algebra/manip.spad b/src/algebra/manip.spad
index 13ce3fe2..1fa3a97c 100644
--- a/src/algebra/manip.spad
+++ b/src/algebra/manip.spad
@@ -376,8 +376,13 @@
         x

       rootPower x ==
-        for k in rootkernels tower x repeat
-          x := radeval(numer x, k) / radeval(denom x, k)
+        for k in tower x repeat
+          if is?(operator k, 'nthRoot) then
+              x := radeval(numer x, k) / radeval(denom x, k)
+          else
+              nargs := map((e : F) : F +-> rootPower(e), argument k)
+              nk : K := kernel(operator k, nargs, height k)
+              x := eval(x, k, nk::F)
         x

 -- replaces (a^(1/n))^m in p by a power of a simpler radical of a if

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to fricas-devel+unsubscr...@googlegroups.com.
To post to this group, send email to fricas-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to