SamplePoints.mesa
Last Edited by: Arnon, May 3, 1986 3:53:47 pm PDT
Algebraic points as they occur as cad sample points.
DIRECTORY
Rope,
IO,
AlgebraClasses,
Ints,
BigRats,
RatIntervals,
Variables,
Polynomials,
AlgebraicNumbers,
Vectors;
SamplePoints: CEDAR DEFINITIONS
~ BEGIN OPEN AC: AlgebraClasses, BR: BigRats, RI: RatIntervals, VARS: Variables, AN: AlgebraicNumbers, POL: Polynomials;
SamplePoint Representation
SamplePoint: TYPE = AC.Object;
SamplePointData: TYPE = REF SamplePointDataRec;
SamplePointDataRec: TYPE = RECORD [
cell: AC.Object ← NIL, -- cell to which this sample point belongs
basePoint: Vectors.Vector ← NIL, -- an (r-1)-tuple of elements of baseNumberField.
definingPolynomial: POL.Polynomial ← NIL, -- a univariate algebraic polynomial over baseNumberField.
isolatingInterval: RI.RatInterval ← NIL, -- for root of definingPolynomial
point: Vectors.Vector ← NIL -- an r-tuple of elements of primitiveNumberField
];
Instance Data for SamplePoint Structures
SamplePointStructureData: TYPE = REF SamplePointStructureDataRec;
SamplePointStructureDataRec: TYPE = RECORD [
inputPolynomialRing: AC.Object,
minPolyRing: AC.Object
];
Operations Unique to SamplePoint Structures
SamplePointOps: TYPE = REF SamplePointOpsRec; -- prop key is $SamplePointStructure.
SamplePointOpsRec: TYPE = RECORD [
cell: AC.UnaryOp,
basePoint: AC.UnaryOp,
definingPolynomial: AC.UnaryOp,
isolatingInterval: AC.UnaryOp,
point: AC.UnaryOp
];
SamplePoint Structure Constructor
MakeSamplePointStructure: PROC [inputPolynomialRing, minPolyRing: AC.Object] RETURNS [samplePointStructure: AC.Object];
IsSamplePointStructure: PROC [structure: AC.Object] RETURNS [BOOL];
Conversion and IO
Read: AC.ReadOp;
FromRope: AC.FromRopeOp;
ToRope: AC.ToRopeOp;
Write: AC.WriteOp;
Operations
SetCell: PROC [samplePoint, cell: AC.Object];
Cell: AC.UnaryOp;
BasePoint: AC.UnaryOp;
DefiningPolynomial: AC.UnaryOp;
IsolatingInterval: AC.UnaryOp;
Point: AC.UnaryOp;
END.