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
Write: AC.WriteOp;
Point Structure Operations
IsPointStructure:
AC.UnaryPredicate;
RemoveMainCoordinate:
AC.UnaryOp;
MainCoordinate: AC.UnaryOp;
Comparison
Equal: AC.EqualityOp;
END.