a and d are atomic, b^2 and c^3 are not: GDLTree[a + b^2 + c^2 + d] HornerForm[] creates an expression that has two nesting levels per order of the polynomial (minus 1). GDLTree[HornerForm[1 + x + x^2 + x^3, x]]