RootReduce[expr]
attempts to reduce expr to a single Root object.
RootReduce
RootReduce[expr]
attempts to reduce expr to a single Root object.
Details and Options
- If expr consists only of integers and Root and AlgebraicNumber objects combined using algebraic operations, then the result from RootReduce[expr] will always be a single Root object.
- Simple Root objects may in turn automatically evaluate to rational expressions or combinations of radicals.
- RootReduce automatically threads over lists, as well as equations, inequalities, and logic functions.
Examples
open all close allBasic Examples (1)
Reduce to a single Root object:
RootReduce[Sqrt[2] + Sqrt[3]]Scope (2)
Combinations of radical expressions:
RootReduce[2 ^ (1 / 3) + Sqrt[5]]Combinations of Root objects:
RootReduce[Root[# ^ 5 + 11# + 1&, 1]Root[# ^ 3 + # + 17&, 1]]Reduce any algebraic combination of radicals, Root, and AlgebraicNumber objects:
RootReduce[Sqrt[Root[# ^ 3 - 7# - 2&, 1] + 1] / AlgebraicNumber[3 ^ (1 / 3), {1, 2, 3}]]The result is always a Root object, a quadratic radical expression, or a rational number:
RootReduce[Sqrt[7] / Sqrt[5 + 2Sqrt[6]]]RootReduce[(Sqrt[2] + Sqrt[3] + Sqrt[6] + 3) / Sqrt[5 + 2Sqrt[6]]]RootReduce[(Sqrt[18] + Sqrt[27]) / Sqrt[5 + 2Sqrt[6]]]Options (1)
Method (1)
By default, RootReduce heuristically selects the method to use:
a = 2 2 ^ (1 / 3) + 3 3 ^ (1 / 7) + 5 2 ^ (1 / 3)3 ^ (1 / 7);
RootReduce[a]//TimingIn this case conversion to AlgebraicNumber objects in a common number field is used:
RootReduce[a, Method -> "NumberField"]//TimingThe other available method recursively performs arithmetic operations:
RootReduce[a, Method -> "Recursive"]//TimingHere the "Recursive" method is faster:
b = RootReduce[2 ^ (1 / 3) + 3 ^ (1 / 3) + 1];
c = b - 2 ^ (1 / 3) - 3 ^ (1 / 3);
RootReduce[c]//TimingRootReduce[c, Method -> "NumberField"]//TimingRootReduce[c, Method -> "Recursive"]//TimingApplications (1)
The numeric test used by Equal cannot prove the equality:
Sqrt[2] + Sqrt[3] + Sqrt[5] == Sqrt[10 + 2Sqrt[15] + 4Sqrt[4 + Sqrt[15]]]RootReduce proves that the two algebraic numbers are equal:
RootReduce[%]FullSimplify will use RootReduce:
FullSimplify[%%]Properties & Relations (3)
The results given by RootReduce are canonical:
algs = {Sqrt[2] + Sqrt[3] + Sqrt[5], Sqrt[10 + 2Sqrt[15] + 4Sqrt[4 + Sqrt[15]]], Sqrt[25 + 4Sqrt[15] + 2Sqrt[46 + 8Sqrt[15]]] - Sqrt[5]}RootReduce /@ algsIn general the degree of the reduced polynomial will be the product of the degrees:
a = RootReduce[Root[# ^ 3 + # + 11&, 1] + Root[# ^ 3 + # + 17&, 1]]MinimalPolynomial[a, x]In exceptional cases the result can have a lower degree:
b = RootReduce[a - Root[# ^ 3 + # + 11&, 1]]MinimalPolynomial[b, x]Root objects can be converted to AlgebraicNumber objects:
ToNumberField[Root[# ^ 5 + # + 11&, 1]]RootReduce converts from AlgebraicNumber objects:
RootReduce[%]Tech Notes
Related Guides
History
Introduced in 1996 (3.0) | Updated in 2007 (6.0)
Text
Wolfram Research (1996), RootReduce, Wolfram Language function, https://reference.wolfram.com/language/ref/RootReduce.html (updated 2007).
CMS
Wolfram Language. 1996. "RootReduce." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2007. https://reference.wolfram.com/language/ref/RootReduce.html.
APA
Wolfram Language. (1996). RootReduce. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/RootReduce.html
BibTeX
@misc{reference.wolfram_2026_rootreduce, author="Wolfram Research", title="{RootReduce}", year="2007", howpublished="\url{https://reference.wolfram.com/language/ref/RootReduce.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_rootreduce, organization={Wolfram Research}, title={RootReduce}, year={2007}, url={https://reference.wolfram.com/language/ref/RootReduce.html}, note=[Accessed: 13-June-2026]}