<> <> <> <<>> DIRECTORY Rope, Basics, IO, MathExpr, AlgebraClasses, Variables, VariableSequences, DistribPolys; SignatureTables: CEDAR DEFINITIONS ~ BEGIN <> SignatureTable: TYPE = AlgebraClasses.Object; SignatureTableData: TYPE = LIST OF SignatureTableEntry; SignatureTableEntryRec: TYPE = RECORD[ signature: Signature, clustersWithThisSignature: LIST OF Cluster -- each of which has this signature ]; <> <> SignatureTableRingData: TYPE = REF SignatureTableRingDataRec; SignatureTableRingDataRec: TYPE = RECORD [ coeffRing: AlgebraClasses.Object, variable: Variables.Variable, -- main variable baseCoeffRing: AlgebraClasses.Object, -- not a polynomialStructure allVariables: VariableSequences.VariableSequence -- cumulative variables over baseCoeffRing ]; <> MakeSignatureTableStructure: AlgebraClasses.SignatureTableStructureConstructor; <> <> <> <<>> PrintName: AlgebraClasses.PrintNameProc; ShortPrintName: AlgebraClasses.PrintNameProc; CoeffRing: AlgebraClasses.UnaryOp; Variable: AlgebraClasses.UnaryOp; BaseCoeffRing: AlgebraClasses.UnaryOp; AllVariables: AlgebraClasses.UnaryOp; Characteristic: AlgebraClasses.StructureRankOp; IsSignatureTableStructure: AlgebraClasses.UnaryPredicate; <> Recast: AlgebraClasses.BinaryOp; CanRecast: AlgebraClasses.BinaryPredicate; ToExpr: AlgebraClasses.ToExprOp; LegalFirstChar: AlgebraClasses.LegalFirstCharOp; Read: AlgebraClasses.ReadOp; FromRope: AlgebraClasses.FromRopeOp; <<>> ToRope: AlgebraClasses.ToRopeOp; Write: AlgebraClasses.WriteOp; PolyToRope: PROC [in: SignatureTable, termRope: Rope.ROPE _ NIL] RETURNS [out: Rope.ROPE]; <> WritePoly: PROC [in: SignatureTable, out: IO.STREAM, termRope: Rope.ROPE _ NIL]; <> <<>> PolyFromDPoly: PROC [in: DP.DSignatureTable, polynomialRing: AlgebraClasses.Object] RETURNS [out: SignatureTable]; DPolyFromPoly: PROC [in: SignatureTable] RETURNS [out: DP.DSignatureTable]; <> Monomial: AlgebraClasses.BinaryImbedOp; <> <> LeadingCoefficient: AlgebraClasses.UnaryOp; <> <<>> Degree: AlgebraClasses.ElementRankOp; <> Reductum: AlgebraClasses.UnaryOp; <> <> Zero: AlgebraClasses.NullaryOp; One: AlgebraClasses.NullaryOp; Add: AlgebraClasses.BinaryOp; Negate: AlgebraClasses.UnaryOp; Subtract: AlgebraClasses.BinaryOp; Multiply: AlgebraClasses.BinaryOp; Power: AlgebraClasses.BinaryOp; Differentiate: AlgebraClasses.BinaryOp; <> IndefIntegrate: AlgebraClasses.BinaryOp; <> MainVarEval: AlgebraClasses.BinaryOp; <> AllVarEval: AlgebraClasses.BinaryOp; <> Subst: AlgebraClasses.BinaryOp; <> DegreeDelta: PROC [terms: LIST OF Term] RETURNS [CARDINAL]; <> SylvesterMatrix: AlgebraClasses.BinaryOp; <> Resultant: AlgebraClasses.BinaryOp; <> SignVars: AlgebraClasses.ElementRankOp; <> Reverse: AlgebraClasses.UnaryOp; <> <<>> Content: AlgebraClasses.UnaryOp; PrimitivePart: AlgebraClasses.UnaryOp; PseudoDivide: AlgebraClasses.BinaryToPairOp; <> <> TrialDivide: AlgebraClasses.BinaryToPairOp; <> <> <> <<>> Divide: AlgebraClasses.BinaryToPairOp; <> <> <<>> Remainder: AlgebraClasses.BinaryOp; <> ExactQuotient: AlgebraClasses.BinaryOp; <> GCD: AlgebraClasses.BinaryOp; GreatestSqFreeDivisor: AlgebraClasses.UnaryOp; <> <> <> Equal: AlgebraClasses.EqualityOp; IsZero: AlgebraClasses.UnaryPredicate; Sign: AlgebraClasses.CompareToZeroOp; <> Abs: AlgebraClasses.UnaryOp; Compare: AlgebraClasses.BinaryCompareOp; <> NewMainVariable: AlgebraClasses.BinaryOp; <> END.