Points.mesa
Last Edited by: Arnon, May 3, 1986 3:53:47 pm PDT
External direct product, i.e. Cartesian product, constructor on some baseStructure.
baseStructure is arbitrary; whatever operations are available in it are available in the product structure as component-wise operations.
If baseStructure is a ring or field, Module/Vector(Space) constructor may be more appropriate.
Finite-dimensional vector space over a field, or finite-dimensional module over a ring.
DIRECTORY
Rope,
IO,
AlgebraClasses;
Points: CEDAR DEFINITIONS
~ BEGIN OPEN Rope, AC: AlgebraClasses;
Point Representation
Point: TYPE = AC.Object;
PointData: TYPE = REF PointDataRec;
PointDataRec: TYPE = RECORD [
SEQUENCE dimensionPlus1:[1..65534] OF AC.Object
];
Public Classes for Point Structures
pointsOverSetClass: AC.Object;
pointsOverAbelianGroupClass: AC.Object;
pointsOverRingClass: AC.Object;
Instance Data for Point Structures
PointStructureData: TYPE = REF PointStructureDataRec;
PointStructureDataRec: TYPE = RECORD [
coordinateStructure: AC.Object,
dimension: NAT
];
Point Structure Constructor
MakePointStructure: AC.PointStructureConstructor;
Point Constructors
ImbedScalar: AC.UnaryImbedOp;
MakePoint: AC.ListImbedOp;
Conversion and IO
Read: AC.ReadOp;
FromRope: AC.FromRopeOp;
ToRope: AC.ToRopeOp;
Write: AC.WriteOp;
Point Structure Operations
IsPointStructure: AC.UnaryPredicate;
RemoveMainCoordinate: AC.UnaryOp;
MainCoordinate: AC.UnaryOp;
Comparison
Equal: AC.EqualityOp;
Arithmetic
Add: AC.BinaryOp;
Negate: AC.UnaryOp;
Subtract: AC.BinaryOp;
Multiply: AC.BinaryOp;
END.