Home Online Manual
Top
Back: decompose
Forward: chebyshev
FastBack:
FastForward:
Up: decomp_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

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