## #804 no doc for 'polydecomp':

closed
nobody
None
5
2005-11-09
2005-10-28
No

There is no user documentation for 'polydecomp':

(%i1) describe("polydecomp");
(%o1) false

There is such a function:

(%i2) polydecomp(x^2 + 2*x + 1,x);
(%o2) [x^2,x+1]

Barton

## Discussion

• Stavros Macrakis - 2005-11-09

Logged In: YES
user_id=588346

I already submitted this documentation bug to the
sourceforge bug
database in August 2002: "No describe(polydecomp)", bug
#593531, and
included documentation.

Below please find a second draft of the documentation for
polydecomp
which I included in the followup to the August 2002 bug report.

-s

---------------------------

Polydecomp(p,v) considers p as a polynomial in v and
decomposes it into
the functional composition of polynomials in v. A return
value of
[p1,p2,...,pn] denotes

lambda([v],p1) ( lambda([v],p2) ( ... v ... ) )

Degree(pi) > 1 for i<n.

Examples:

polydecomp(x^210,x) => [ x^7, x^5, x^3, x^2 ]

poly: expand( subst( x^3-x-1, x, x^2-a ))
=> x^6-2*x^4-2*x^3+x^2+2*x-a+1
polydecomp( poly , x) => [ x^2-a, x^3-x-1]

The following function composes [ex1,ex2,...] as functions
in var; it is
the inverse of polydecomp:

/* Computes the functional composition of the expressions in
exlist
as functions in var, returning an expression in var. */

compose_ex(exlist,var):=
block([r:var],
for i in exlist do r: subst(i,var,r),
r ) \$

Re-express above example using composef:

polydecomp(compose_ex( [ x^2-a, x^3-x-1 ], x), x)
=> [ x^2-a, x^3-x-1]

Note that though compose_ex(polydecomp(p,x),x) always returns p
(unexpanded), polydecomp(compose_ex([p1...],x),x) does *not*
necessarily
return [p1...]:

polydecomp(compose_ex( [x^2+2*x+3, x^2] , x), x)
=> [x^2+2, x^2+1]

polydecomp(compose_ex( [x^2+x+1, x^2+x+1], x), x)
=> [(x^2+3)/4, (x^2+5)/2, 2*x+1]

• Stavros Macrakis - 2005-11-09
• status: open --> closed

• Robert Dodier - 2005-11-16

Logged In: YES
user_id=501686

Description given by Stavros adapted into r1.18 of
doc/info/Polynomials.texi.