<> <<>> <> <> <<>> <> DIRECTORY HerculesAlgebra USING [Se, PointPtr, Frame]; HerculesBody: DEFINITIONS = BEGIN OPEN Alg: HerculesAlgebra; Nest: PROC [list: LIST OF Alg.Se, op, zero: ATOM] RETURNS [Alg.Se]; -- Returns a juno expression of the form ( ( (... ( are the elements of the given list. If the list is empty, returns zero instead. NestAtoms: PROC [list: LIST OF ATOM, op, zero: ATOM] RETURNS [Alg.Se]; -- Same except that input is LIST OF ATOM. EraseAllNames: PROC; -- Erases the names of all points in the current image. NamePoint: PROC [p: Alg.PointPtr, i: INT] RETURNS [nam: ATOM]; -- Assigns the ith standard name to the point p, and returns the chosen name. MakeBody: PROC[frame: Alg.Frame, nParms: INT] RETURNS [body: Alg.Se]; -- Creates a procedure body describing all points in the current image list -- with nonzero winding numbers, plus associated constraints and actions. -- Assumes nParms of those points are parameters, whose name field has already been set. -- The remaining points are local variables. The hints for each of these will be its -- current position, relative to the frame determined by the given frame. END. <> <<-- Added Tioga formatting.>> <<-- Extended MakeDefBody for more than two arguments.>> <<-- Cleaned up matrix operations in preparation for relative constraints.>> <> <<>> <> <> <<>> <> <> <<>> <> <> <<>>