(* ---------------------------------------------------------------------------- * $Id: SACMUFAC.md,v 1.2 1992/02/12 17:34:58 pesch Exp $ * ---------------------------------------------------------------------------- * This file is part of MAS. * ---------------------------------------------------------------------------- * Copyright (c) 1989 - 1992 Universitaet Passau * ---------------------------------------------------------------------------- * $Log: SACMUFAC.md,v $ * Revision 1.2 1992/02/12 17:34:58 pesch * Moved CONST definition to the right place * * Revision 1.1 1992/01/22 15:15:39 kredel * Initial revision * * ---------------------------------------------------------------------------- *) DEFINITION MODULE SACMUFAC; (* SAC Modular Univariate Polynomial Factorization Definition Module. *) FROM MASSTOR IMPORT LIST; CONST rcsid = "$Id: SACMUFAC.md,v 1.2 1992/02/12 17:34:58 pesch Exp $"; CONST copyright = "Copyright (c) 1989 - 1992 Universitaet Passau"; PROCEDURE MCPMV(NL,L: LIST): LIST; (*Matrix of coefficients of polynomials, with respect to main variable. L is a list (L(1), ...,L(k)) of k, ge 1, non-zero polynomials with degrees less than n. n is a positive beta-integer. M is the matrix with m(1,il)+m(2,i)*x+ ...+m(n,i)*x**(n-1)=L(i) for 1 le i le k.*) PROCEDURE MIUPSE(M,A,B,S,T,C: LIST; VAR U,V: LIST); (*Modular integral univariate polynomial, solution of equation. M is a positive integer. A,B,S,T and C belong to Z sub M (x) with ldcf(A) a unit, deg(T) lt deg(A) and A*S+B*T=1. U and V are the unique elements of Z sub M (x) such that A*U+B*V=C, with deg(V) lt deg(A).*) PROCEDURE MUPBQP(PL,A: LIST): LIST; (*Modular univariate polynomial Berlekamp q polynomials construction. p is a prime beta-integer. A is a univariate polynomial over Z sub p with deg(A) ge 2. Q is the list (Q(0), ...,Q(n-1)), where Q(i)(x)= rem(x**(p*i),A(x)) and n=deg(A).*) PROCEDURE MUPDDF(PL,A: LIST): LIST; (*Modular univariate polynomial distinct degree factorization. p is a prime beta-integer. A is a monic squarefree univariate polynomial over Z sub p, with deg(A) ge 2. L is a list ((n(1),A(1)), ... ,(n(k),A(k))) where each n(i) is a positive integer, n(1) lt n(2) lt ...lt n(k), and A(i) is the product of all irreducible monic factors of A of degree n(i).*) PROCEDURE MUPFBL(PL,A: LIST): LIST; (*Modular univariate polynomial factorization-Berlekamp algorithm. p is a prime beta-integer. A is a monic squarefree univariate poly- nomial, with deg(A) ge 2. L is a list of all the monic irreducible factors of A of positive degree.*) PROCEDURE MUPFS(PL,A,B,DL: LIST): LIST; (*Modular univariate polynomial factorization, special. p is a prime beta-integer. A is a monic squarefree polynomial in Z sub p(x),deg(A) ge 2. B is a list (B(1), ...,B(r)) of monic univariate polynomials over Z sub p, which constitute a basis for the space of all polynomials C of degree less than deg(A) such that A is a divisor of C**p-C. Further-more, B(1)=1. d is a positive beta-integer such that A has no irreducible factor of degree less than d. L is a list consisting of all the monic irreducible factors of A of positive degree.*) END SACMUFAC. (* -EOF- *)