ASPolynomialFactorization.mesa
Last Edited by Arnon: January 28, 1988 2:13:03 pm PST
DIRECTORY
Rope,
AlgebraClasses;
ASPolynomialFactorization: CEDAR DEFINITIONS
~ BEGIN
Element Representation
ContentPPFactorization: TYPE = AlgebraClasses.Object;
CompleteFactorization: TYPE = AlgebraClasses.Object;
SquareFreeFactorization: TYPE = AlgebraClasses.Object;
FactorPower: TYPE = AlgebraClasses.Object;
CompleteFactorizationData: TYPE = REF CompleteFactorizationDataRec;
CompleteFactorizationDataRec: TYPE = RECORD [
input: Object,
content: CompleteFactorization ← NIL,
factors: Sequences.Sequence ← NIL -- of FactorPower's
];
ContentPPFactorizationData: TYPE = REF ContentPPFactorizationDataRec;
ContentPPFactorizationDataRec: TYPE = RECORD [
input: Object,
content: Object ← NIL,
primitivePart: Object ← NIL
];
SquareFreeFactorizationData: TYPE = REF SquareFreeFactorizationDataRec;
SquareFreeFactorizationDataRec: TYPE = RECORD [
input: Object, -- assumed primitive
factors: Sequences.Sequence ← NIL -- of FactorPower's
];
FactorPowerData: TYPE = REF FactorPowerDataRec;
FactorPowerDataRec: TYPE = RECORD [
factor: Object,
power: NAT,
];
Structure Instance Data
NameStructureData: TYPE = REF NameStructureDataRec;
NameStructureDataRec: TYPE = RECORD [
data1: AlgebraClasses.Object, -- Comment
data2: AlgebraClasses.Object -- Comment
];
Structure Constructor
MakeNameStructure: AlgebraClasses.StructureConstructorProc;
Structure Operations
PrintName: AlgebraClasses.ToRopeOp;
ShortPrintName: AlgebraClasses.ToRopeOp;
IsNameStructure: AlgebraClasses.UnaryPredicate;
SelectorProc: AlgebraClasses.UnaryOp;
selector: data1
SelectorProc: AlgebraClasses.UnaryOp;
selector: data2
StructureData: AlgebraClasses.UnaryToListOp;
selector: returns LIST[data1, data2] of a Name Structure
Element Conversion and IO
Recast: AlgebraClasses.BinaryOp;
CanRecast: AlgebraClasses.BinaryPredicate;
ToExpr: AlgebraClasses.ToExprOp;
LegalFirstChar: AlgebraClasses.LegalFirstCharOp;
Read: AlgebraClasses.ReadOp;
FromRope: AlgebraClasses.FromRopeOp;
ToRope: AlgebraClasses.ToRopeOp;
Write: AlgebraClasses.WriteOp;
Element Constructor
ConstructorProc: AlgebraClasses.ListImbedOp;
Element Operations
BinaryOp: AlgebraClasses.BinaryOp;
UnaryOp: AlgebraClasses.UnaryOp;
END.