(* ---------------------------------------------------------------------------- * $Id: MASFF.md,v 1.1 1992/09/28 17:38:29 kredel Exp $ * ---------------------------------------------------------------------------- * This file is part of MAS. * ---------------------------------------------------------------------------- * Copyright (c) 1989 - 1992 Universitaet Passau * ---------------------------------------------------------------------------- * $Log: MASFF.md,v $ * Revision 1.1 1992/09/28 17:38:29 kredel * Initial revision * * ---------------------------------------------------------------------------- *) DEFINITION MODULE MASFF; (* MAS Finite Field Definition Module. *) FROM MASSTOR IMPORT LIST; CONST rcsid = "$Id: MASFF.md,v 1.1 1992/09/28 17:38:29 kredel Exp $"; CONST copyright = "Copyright (c) 1989 - 1992 Universitaet Passau"; PROCEDURE FFCOMP(R,S: LIST): LIST; (*Finite field comparison. R and S are finite field elements. t=0 if R=S, t=1 else. *) PROCEDURE FFDIF(p,M,AL,BL: LIST): LIST; (*Finite field difference. AL and BL are elements of F(p)(alpha) for some prime integer p and some algebraic number alpha. M is the minimal polynomial for alpha. CL=AL-BL.*) PROCEDURE FFEXP(p,M,A,NL: LIST): LIST; (*Finite field exponentiation. A is an element of F(p)(alpha) for some prime integer p and some algebraic number alpha. M is the minimal polynomial for alpha. nl is a non-negative beta-integer. B=A**nl.*) PROCEDURE FFFINT(p,M,A: LIST): LIST; (*Finite field element from integer. A is an integer. B is A converted to an element of F(p)(alpha), for some prime integer p and some algebraic number alpha. M is the minimal polynomial for alpha. *) PROCEDURE FFHOM(p,M,A: LIST): LIST; (*Finite field homomorpism. A is an univariate integral polynomial, B is A converted to an element of F(p)(alpha), for some prime integer p and some algebraic number alpha. M is the minimal polynomial for alpha. *) PROCEDURE FFINV(p,M,AL: LIST): LIST; (*Finite field inverse. AL is a nonzero element of F(p)(alpha) for some prime integer p and some algebraic number alpha. M is the minimal polynomial for alpha. BL=1/AL.*) PROCEDURE FFNEG(p,M,AL: LIST): LIST; (*Finite field negation. AL is an element of F(p)(alpha) for some prime integer p and some algebraic number alpha. M is the minimal polynomial for alpha. BL= -AL.*) PROCEDURE FFONE(R: LIST): LIST; (*Finite field one. R is a finite field element. s=1 if R=1, s=0 else. *) PROCEDURE FFPROD(p,M,AL,BL: LIST): LIST; (*Finite field product. AL and BL are elements of F(p)(alpha) for some prime integer p and some algebraic number alpha. M is the minimal polynomial of alpha. CL=AL+BL.*) PROCEDURE FFQ(p,M,AL,BL: LIST): LIST; (*Finite field quotient. AL and BL, BL nonzero, are elements of F(p)(alpha) for some prime integer p and some algebraic number alpha. M is the minimal polynomial for alpha. CL=AL/BL.*) PROCEDURE FFRAND(p,M,NL: LIST): LIST; (*Finite field element, random. n is a positive beta-integer. A random finite field element R of F(p)(alpha) for some prime integer p and some algebraic number alpha. M is the minimal polynomial for alpha. R is generated using IRAND(n). *) PROCEDURE FFREAD(V: LIST): LIST; (*Finite field read. The finite field element R is read from the input stream. V is the varaible list. Any preceding blanks are skipped. *) PROCEDURE FFSUM(p,M,AL,BL: LIST): LIST; (*Finite field sum. AL and BL are elements of F(p)(alpha) for some prime integer p and some algebraic number alpha. M is the minimal polynomial for alpha. CL=AL+BL.*) PROCEDURE FFWRITE(R, V: LIST); (*Finite field write. R is a finite field element. V is the varaible list. R is written to the output stream. *) END MASFF. (* -EOF- *)