5 @setfilename raddenest.info
6 @settitle Package raddenest
14 @dircategory Mathematics/Maxima
16 * raddenest: (maxima/raddenest). Maxima share package raddenest for de-nesting radicals.
19 @node Top, Functions and variables for package raddenest, (dir), (dir)
22 * Functions and variables for package raddenest::
23 * Function and variable index::
25 @chapter Package raddenest
27 @node Functions and variables for package raddenest, Function and variable index, Top, Top
28 @section Functions and variables for package raddenest
31 @deffn {Function} raddenest (@var{expr})
33 Denests different classes of nested radical expressions appearing as
34 subexpressions in @var{expr}. Most of the implemented algorithms are specific
35 to square roots, but some handle higher roots.
37 @code{raddenest} is able to denest some or all of the denestable
38 expressions of the following types:
42 square roots of sums of multiple unnested square roots;
50 @math{sqrt(a + b*sqrt(r))}
52 where @var{a}, @var{b}, and @var{r} are linear
53 combinations of square roots of positive rationals;
55 expressions of the general form
62 @math{sqrt(a + b*sqrt(r))}
64 are denested numerically (using square roots or fourth roots) or, in some
65 cases, symbolically (assumptions allowing);
69 $(a+b\sqrt{r})^{1\over n}$
73 @math{(a+b*sqrt(r))^(1/n)}
75 with rational @var{a}, @var{b}, @var{r} (@var{r} positive) and integer
80 $\sqrt{a^{1\over3}+b^{1\over3}}$
84 @math{sqrt(a^(1/3)+b^(1/3))}
86 with rational @var{a} and @var{b}.
89 In particular, all expressions denested by @code{sqrtdenest} are also denested
92 Interpretation of radical expressions:
94 The results given by @code{raddenest} are consistent with Maxima's default interpretation for
95 @var{n}-th roots of a real:
107 with positive @var{a} corresponds to the positive real branch;
117 with negative @var{a} corresponds to
136 with negative @var{a} is interpreted using the real branch of
137 the cube root if @code{@var{domain}=real}; with @code{@var{domain}=complex}
138 subexpressions involving roots other than square roots are left unchanged.
145 @c sqrt(sqrt(16+2*sqrt(55-10*sqrt(29))-2*sqrt(29))-sqrt(5))$
147 @c sqrt(1+1/(7+4*sqrt(3)));
149 @c sqrt(8*sqrt(2)+2*sqrt(5)-18);
151 @c raddenest(sqrt(5^(1/3)-4^(1/3)));
152 @c raddenest((41-29*sqrt(2))^(1/5));
154 @c raddenest(sqrt(9*y+6*x^2*sqrt(y)+x^4));
155 @c a: (2-sqrt(5))^(1/3)$
157 @c raddenest(a), domain:'complex;
160 (%i1) load (raddenest)$
161 (%i2) sqrt(sqrt(16+2*sqrt(55-10*sqrt(29))-2*sqrt(29))-sqrt(5))$
165 (%o3) (11 - 2 sqrt(29))
168 (%i4) sqrt(1+1/(7+4*sqrt(3)));
170 (%o4) sqrt(------------- + 1)
175 (%o5) sqrt(6) - sqrt(2)
178 (%i6) sqrt(8*sqrt(2)+2*sqrt(5)-18);
180 (%o6) sqrt(2 sqrt(5) + 2 - 18)
184 (%o7) ((- sqrt(10)) + sqrt(5) + sqrt(2) + 1) %i
187 (%i8) raddenest(sqrt(5^(1/3)-4^(1/3)));
190 (%o8) ------------------------
194 (%i9) raddenest((41-29*sqrt(2))^(1/5));
199 (%i11) raddenest(sqrt(9*y+6*x^2*sqrt(y)+x^4));
203 (%i12) a: (2-sqrt(5))^(1/3)$
211 (%i14) raddenest(a), domain:'complex;
219 @code{raddenest} may in some cases only lower the index of a root without
220 actually decreasing the absolute nesting depth of @var{expr}:
224 @c raddenest((5*sqrt(2)+7)^(1/6));
227 (%i1) load (raddenest)$
229 (%i2) raddenest((5*sqrt(2)+7)^(1/6));
230 (%o2) sqrt(sqrt(2) + 1)
238 Allan Borodin, Ronald Fagin, John E. Hopcroft, and Martin Tompa:
239 @cite{Decreasing the Nesting Depth of Expressions Involving Square Roots}
240 J. Symbolic Computation (1985) 1, 169-188@*
241 @url{http://researcher.watson.ibm.com/researcher/files/us-fagin/symb85.pdf}
243 David J. Jeffrey and Albert D. Rich:
244 @cite{Simplifying Square Roots of Square Roots by Denesting}
245 in @cite{Computer Algebra Systems: A Practical Guide}
246 M.J. Wester, Ed., Wiley 1999@*
247 @url{http://www.cybertester.com/data/denest.pdf}
250 @cite{Cardan Polynomials and the Reduction of Radicals}
251 Mathematics Magazine 74(1), Feb. 2001@*
252 @url{http://www.rowan.edu/open/depts/math/osler/mathmag026-032.pdf}
255 @cite{Radical Extensions and Galois Groups}, Chapter 3
257 @url{http://www.math.kun.nl/~bosma/students/honsbeek/M_Honsbeek_thesis.pdf}
259 SymPy @code{sqrtdenest()} @url{http://www.sympy.org}
264 @node Function and variable index, , Functions and variables for package raddenest, Top
265 @appendix Function and variable index