(* ---------------------------------------------------------------------------- * $Id: DIPDCGB.md,v 1.3 1994/11/28 20:52:49 dolzmann Exp $ * ---------------------------------------------------------------------------- * This file is part of MAS. * ---------------------------------------------------------------------------- * Copyright (c) 1989 - 1994 Universitaet Passau * ---------------------------------------------------------------------------- * $Log: DIPDCGB.md,v $ * Revision 1.3 1994/11/28 20:52:49 dolzmann * Syntactical errors corrected. * Usage of predefined procedure types. * * Revision 1.2 1994/11/03 14:40:54 pfeil * added procedures SetTraceLevel, SetDecompProc, SetUpdateProc, SetVarOrdOpt, * SetFacSugar, SetReduceExp, SetBranchProc, WriteDCGBopt. * modified procedure GroebnerBases1 for sugar. * added procedure EQIEQ (Graebe/Lassner) for procedure GrobnerBases2 * * Revision 1.1 1994/08/31 13:27:45 pfeil * Initial revision * * ---------------------------------------------------------------------------- *) DEFINITION MODULE DIPDCGB; (* DIP Decompositional Groebner Bases Definition Module. *) FROM MASSTOR IMPORT LIST; FROM MASLISPU IMPORT PROCF1, PROCF2, PROCP1V2, PROCP0V2; CONST rcsid = "$Id: DIPDCGB.md,v 1.3 1994/11/28 20:52:49 dolzmann Exp $"; CONST copyright = "Copyright (c) 1989 - 1994 Universitaet Passau"; (* TYPE PROCF1 = PROCEDURE(LIST): LIST; PROCF2 = PROCEDURE(LIST, LIST): LIST; PROCP1V2 = PROCEDURE(LIST, VAR LIST, VAR LIST); PROCP0V2 = PROCEDURE(VAR LIST, VAR LIST); *) PROCEDURE SetTraceLevel(TL: INTEGER); (* Set Trace-Level for decompositional groebner bases: 0 = no output, except with VOOB, >0 = output of time and result after computation, >1 = output of messages about tree of computation: number of canceled branches/factors, "cancel factor", "cancel branch", "groebner base", "branch w.o. zeros", >2 = output of s-polynomials and normalforms, >3 = output of parameters of local procedures and of time and groebner bases during computation. *) PROCEDURE SetDecompProc(DCP: INTEGER); (* Set Decomposition-Procedure for decompositional groebner bases: 1 = DIPFAC, 2 = DIPSFF. *) PROCEDURE SetUpdateProc(UP: INTEGER); (* Set Update-Procedure for decompositional groebner bases: 1 = UPDATE from module DIPAGB. *) PROCEDURE SetVarOrdOpt(VOO: INTEGER); (* Set Variable-Order-Optimization for decompositional groebner bases: 0 = don`t optimize, 1 = optimize at begin only, 2 = optimize factorization only, 3 = optimize at begin and factorization *) PROCEDURE SetFacSugar(FS: INTEGER); (* Set Factor-Sugar for procedure GroebnerBases1: 0 = sugar of factor is total degree of factor, 1 = sugar of factor is old sugar *) PROCEDURE SetReduceExp(RE: INTEGER); (* Set Reduce-Exponent for procedure GroebnerBases2: 1 = reduce (no power of) polynomial >1 = reduce corresponding power of polynomial *) PROCEDURE SetBranchProc(BP: INTEGER); (* Set Branch-Procedure for procedure GroebnerBases2: 1 = SSCO - new branch for each subset of factors, 2 = EQIEQ - new branch for each factor *) PROCEDURE SetDCGBopt(options: LIST); (* Set options for decompositional groebner bases. options is a list of 7 or less elements in following order: 1. Trace-Level (0-4), 2. No. of Decomposition-Procedure (1,2), 3. No. of Update-Procedure (1), 4. Optimization of variable order (0,1,2,3), 5. Sugar of factors for Procedure GroebnerBases1 (0,1), 6. Reduce-Exponent for procedure GroebnerBases2 (>0), 7. No. of Branch-Procedure in GroebnerBases2 (1,2). *) PROCEDURE WriteDCGBopt; (* write decompositional groebner bases options *) PROCEDURE GroebnerBases1(G: LIST): LIST; (* Distributive polynomials decompositional groebner bases 1. G is a list of polynomials in distributive representation over an arbitrary domain, returns a list (GB1,...,GBk) of groebner bases, where Z(G) = Z(GB1) v ... v Z(GBk). *) PROCEDURE GroebnerBases2(G,U: LIST): LIST; (* Distributive polynomials decompositional groebner bases 2. G and U are lists of polynomials in distributive representation over an arbitrary domain, returns a list ((GB1,U1),...,(GBk,Uk)) of pairs (Gi,Ui), where Gi is a groebner bases, Ui is a list of polynomials and Z(G) n D(U) = (Z(GB1) n D(U1)) v ... v (Z(GBk) n D(Uk)). *) END DIPDCGB. (* -EOF- *)