Top
Back: Depth
Forward: Primary decomposition
FastBack: Computing Groebner and Standard Bases
FastForward: Singularity Theory
Up: Commutative Algebra
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

A.3.8 Factorization

The factorization of polynomials is implemented in the C++ libraries Factory (written mainly by Ruediger Stobbe) and libfac (written by Michael Messollen) which are part of the SINGULAR system. For the factorization of univariate polynomials these libraries make use of the library NTL written by Victor Shoup.

 
  ring r = 0,(x,y),dp;
  poly f = 9x16-18x13y2-9x12y3+9x10y4-18x11y2+36x8y4
         +18x7y5-18x5y6+9x6y4-18x3y6-9x2y7+9y8;
  // = 9 * (x5-1y2)^2 * (x6-2x3y2-1x2y3+y4)
  factorize(f);
==> [1]:
==>    _[1]=9
==>    _[2]=x6-2x3y2-x2y3+y4
==>    _[3]=-x5+y2
==> [2]:
==>    1,1,2
  // returns factors and multiplicities,
  // first factor is a constant.
  poly g = (y4+x8)*(x2+y2);
  factorize(g);
==> [1]:
==>    _[1]=1
==>    _[2]=x8+y4
==>    _[3]=x2+y2
==> [2]:
==>    1,1,1
  // The same in characteristic 2:
  ring s = 2,(x,y),dp;
  poly g = (y4+x8)*(x2+y2);
  factorize(g);
==> [1]:
==>    _[1]=1
==>    _[2]=x+y
==>    _[3]=x2+y
==> [2]:
==>    1,2,4
  // factorization over algebraic extension fields
  ring rext = (0,i),(x,y),dp;
  minpoly = i2+1;
  poly g = (y4+x8)*(x2+y2);
  factorize(g);
==> [1]:
==>    _[1]=1
==>    _[2]=x4+(-i)*y2
==>    _[3]=x4+(i)*y2
==>    _[4]=x+(i)*y
==>    _[5]=x+(-i)*y
==> [2]:
==>    1,1,1,1,1


Top Back: Depth Forward: Primary decomposition FastBack: Computing Groebner and Standard Bases FastForward: Singularity Theory Up: Commutative Algebra Top: Singular Manual Contents: Table of Contents Index: Index About: About this document
            User manual for Singular version 4-0-3, 2016, generated by texi2html.