DIRECTORY Rope, IO, AlgebraClasses; QEClusterStructure: CEDAR DEFINITIONS ~ BEGIN ROPE: TYPE ~ Rope.ROPE; Cluster: TYPE = AlgebraClasses.Object; ClusterData: TYPE = REF ClusterDataRec; ClusterDataRec: TYPE ~ RECORD [ repCell: Cell, -- representative cell signatures: LIST OF QESignatureStructure.Signature, -- (see below) truthValue: BOOL, -- result of formula evalution (e.g. at repCell sample point, or at signature), or determination of containment in solution set constituentCells: LIST OF Cell, ]; We can be keeping track of signatures of several different polynomial sequences simultaneously for a cluster, e.g. r-variate input polynomials, and basis polynomials in r and lower dimensions. Comparing names of signature Structures should enable us to keep them straight. When we construct initial clusters in i-space, signature polynomials will be be complete factors, i.e. all irreducible factors, of i-variate input polynomials. We get the signs of factors which are not i-variate basis polys (which we get from cells) by making this cells signature polys union of baseCluster signature polys and i-variate basis. ]; ClusterStructureData: TYPE = REF ClusterStructureDataRec; ClusterStructureDataRec: TYPE = RECORD [ cad: Cad ]; MakeNameStructure: AlgebraClasses.StructureConstructorProc; PrintName: AlgebraClasses.ToRopeOp; ShortPrintName: AlgebraClasses.ToRopeOp; IsNameStructure: AlgebraClasses.UnaryPredicate; SelectorProc: AlgebraClasses.UnaryOp; SelectorProc: AlgebraClasses.UnaryOp; StructureData: AlgebraClasses.UnaryToListOp; Recast: AlgebraClasses.BinaryOp; CanRecast: AlgebraClasses.BinaryPredicate; ToExpr: AlgebraClasses.ToExprOp; LegalFirstChar: AlgebraClasses.LegalFirstCharOp; Read: AlgebraClasses.ReadOp; FromRope: AlgebraClasses.FromRopeOp; ToRope: AlgebraClasses.ToRopeOp; ToRopeOneLevel: AlgebraClasses.ToRopeOp; ToOfflineRope: AlgebraClasses.ToRopeOp; Write: AlgebraClasses.WriteOp; ClusterFromCell: AlgebraClasses.UnaryImbedOp; ToLBPrimaryKey: AlgebraClasses.ToRopeOp; BinaryOp: AlgebraClasses.BinaryOp; UnaryOp: AlgebraClasses.UnaryOp; InitialClustersOverCluster: PROC; END. κQEClusterStructure.mesa Last Edited by: Arnon, November 19, 1987 8:31:50 am PST Structure Constructor: Clusters with respect to argument Structures. Type Abbreviations Element Representation AdjacencyFile -- intracluster adjacencies (11/87 - why do we need this?) Rule: signature polynomials are elements of i-variate basis for some i. However nothing assumed about the order in which they occur in the PolynomialSequenceFile. Rule: a cluster's set or signature polynomials is as large as possible, i.e. is the largest collection of basis polynomials that is invariant on the constituent cells of this cluster. Thus for example, when we are not doing any pasting of clusters as we extend our cad, i.e. clusters just have one constituent cell, i.e. "original" cad algorithm, then signature polys in dimension i should be collection of all i and lower dimensional basis polynomials. Note: to get a cluster's rep cell sample point, you have to look in the stack file containing the rep cell. Assert: there will always exist a stack file containing any cluster's rep cell. Structure Instance Data Structure Constructor Structure Operations selector: data1 selector: data2 selector: returns LIST[definingSet, elementUniverse] of a Set Structure Element Conversion and IO Recursively ToRopes all fields of the Cluster data. Can be a very large ROPE. Returns the value to store for the $Data attribute in the LoganBerry DB entry for this input item. Fields which contain QE Objects (i.e. objects stored in the LoganBerry DB are ToRope'd down to the QE Objects, which are ToOfflineRope'd (e.g. LIST OF Cell gets written as "(offLineCell, offLineCell, ...)". Other fields are simply ToRope'd. Returns a Rope for the Offline version of the object. When writing out the Object's Structure, QE Objects in the StructureData are ToOfflineRope'd. Element Constructor Element Selector Returns the value to store for the primary attribute of the LoganBerry DB. Element Operations firstArg _ baseCluster from LowerDimCluster environment variable. Set LowerDimCell environment variable to representative cell of baseCluster. Call ExtendCellToStack. Retrieve the stack it writes from CurrentDimStack environment variable. Build initial clusters over baseCluster, write them out as a single ClusterFile. Rep cell of each initial cluster is appropriate element of stack over rep cell of baseCluster. Cluster signature polynomials are union of baseCluster signature polynomials and this dimensional basis (cf. ClusterFile format). Κ˜Jšœ™J™7J˜JšœD™DJ™šΟk ˜ Icodešœ˜Kšœ˜Kšœ˜—Ihead2šΟnœœ ˜%Jšœ˜headšž™Kšœœœ˜—šž™Jšœ œ˜&J˜Jšœ œœ˜'šœœ˜šœ˜JšœΟc˜%Jšœ œœ"Ÿ˜CJšœ œŸ˜‘Jšœœœ˜JšœŸ;™IK˜J˜JšŸ‘˜‘JšŸΩ˜ΩJšŸŒœ™£J™ΗšœΌ™ΌJ™—J˜———šœ™Kšœœœ˜9šœœœ˜(Jšœ˜K˜——™KšžœŸœ˜?—šœ™šž œ˜#K˜—šžœ˜(K˜—šžœ ˜1J˜—šžœ˜'Jšœ Οtœ ™J™—šžœ˜'Jšœ  œ ™J™—šž œ˜,JšœH™H——šœ™šžœ˜ J˜—šž œ!˜*J˜—šžœ˜ J˜—šžœ"˜0J˜—šžœ˜J˜—šžœ˜$J˜—šžœ˜ JšœO™OJ˜—šžœ˜(JšœΦ™ΦJ™—šž œ˜'Jšœ”™”J˜—Jšžœ˜—šœ™Jšžœ˜-—šœ™šžœ˜(JšœJ™J——šœ™šž œ˜$J˜—Jšž œ˜"J˜šžœœ˜!Kšœ•žœύ™£K˜J˜——J˜Jšœ˜—…—^\