<> <> <<>> <> <<>> DIRECTORY Rope, IO, AlgebraClasses, ASAtomicFormulaOps, Variables, Polynomials; QESamplePointStructure: CEDAR DEFINITIONS = BEGIN <> SamplePoint: TYPE = AlgebraClasses.Object; <<>> SamplePointData: TYPE = REF SamplePointDataRec; SamplePointDataRec: TYPE ~ RECORD [ cell: CellIndex, -- cell to which this sample point belongs SELECT type:* FROM null => [ ], extended => [ basePoint: PTS.Point, -- an (r-1)-tuple of elements of baseNumberField; this should be a pointer to a cell sample point in one lower dimension definingPolynomial: POL.Polynomial, -- a univariate algebraic polynomial over baseNumberField. isolatingInterval: RI.RatInterval _ NIL, -- for root of definingPolynomial ], primitive => [ point: PTS.Point -- an r-tuple of elements of primitiveNumberField ], ENDCASE ]; <> 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 [ variable: Variables.Variable, -- variable in terms of which the minimal polynomials of sample point primitive elements will be expressed; need to know it to be able to instantiate a Real Algeraic Numbers structure to read such primtive elements dimension: Ints.Int -- for primitive sample points, implies a vector of this length of elements of some ExtensionField; for extended sample points, implies a vector of length one less of elements of some ExtensionField, a defining polynomial with coefficients over that field, and an isolating interval. ]; <> MakeSamplePointStructure: AC.BinaryOp; <> <<>> PrintName: AC.ToRopeOp; ShortPrintName: AC.ToRopeOp; Variable: AC.UnaryOp; <> <<>> Dimension: AC.UnaryOp; <> <<>> IsSamplePointStructure: AC.UnaryPredicate; <<>> <> Recast: AC.BinaryOp; CanRecast: AC.BinaryPredicate; ToExpr: AC.ToExprOp; LegalFirstChar: AC.LegalFirstCharOp; Read: AC.ReadOp; FromRope: AC.FromRopeOp; ToRope: AC.ToRopeOp; Write: AC.WriteOp; <> MakePrimitiveSamplePoint: AC.BinaryImbedOp; <> <> <> <<>> <<>> MakePrimitiveSamplePointFromData: AC.BinaryOp; <> <> <> <> <> <> Cell: AC.UnaryOp; BasePoint: AC.UnaryOp; DefiningPolynomial: AC.UnaryOp; IsolatingInterval: AC.UnaryOp; Point: AC.UnaryOp; <> SetCell: AC.BinaryOp; <> <> Equal: AC.EqualityOp; <<>> END.