<> <> <> <<>> 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: 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 ]; <> SamplePointStructureData: TYPE = REF SamplePointStructureDataRec; SamplePointStructureDataRec: TYPE = RECORD [ inputPolynomialRing: AC.Object, minPolyRing: AC.Object ]; <> 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 ]; <> MakeSamplePointStructure: PROC [inputPolynomialRing, minPolyRing: AC.Object] RETURNS [samplePointStructure: AC.Object]; <<>> IsSamplePointStructure: PROC [structure: AC.Object] RETURNS [BOOL]; <<>> <> Read: AC.ReadOp; FromRope: AC.FromRopeOp; ToRope: AC.ToRopeOp; Write: AC.WriteOp; <> SetCell: PROC [samplePoint, cell: AC.Object]; Cell: AC.UnaryOp; BasePoint: AC.UnaryOp; DefiningPolynomial: AC.UnaryOp; IsolatingInterval: AC.UnaryOp; Point: AC.UnaryOp; END.