| 
 | 
 D.4.6.3 is_composite 
Procedure from library decomp.lib (see  decomp_lib).
 
- Usage:
 - is_composite(f); f poly
  - Return:
 - int 
 
1, if f is decomposable  
0, if f is not decomposable  
-1, if char(basering)>0 and deg(f) is divisible by char(basering) but no
decomposition has been found.
  - Note:
 - The last case means that it could exist a decomposition f=g o h with
char(basering)|deg(g), but this wild case cannot be decided by the algorithm.
 
Some additional information will be displayed when called by the user.
   
Example:
|   | LIB "decomp.lib";
ring r0 = 0,x,dp;
is_composite(x4+5x2+6);    // biquadratic polynomial
==> 1
is_composite(2x2+x+1);     // prime degree
==>  The degree is prime.
==> 0
// -----------------------------------------------------------------------
// polynomial ring with several variables
ring R = 0,(x,y),dp;
// -----------------------------------------------------------------------
// single-variable multivariate polynomials
is_composite(2x+1);
==> 1
is_composite(2x2+x+1);
==> 1
// -----------------------------------------------------------------------
// prime characteristic
ring r7 = 7,x,dp;
is_composite(compose(ideal(x2+x,x14)));     // is_composite(x14+x7);
==> 1
is_composite(compose(ideal(x14+x,x2)));     // is_composite(x14+x2);
==> // -- Warning: wild case, cannot decide whether the polynomial has a
==> // -- decomposition goh with deg(g) divisible by char(basering) = 7.
==> -1
  |  
 
  |