perm filename STRUCT.DOC[1,LMM] blob sn#027937 filedate 1973-03-07 generic text, type T, neo UTF8
BIVCHAIN [N]
    calls PUTNEWNODE
    returns a structure with requisite bivalent chain numbered
    from 'lastnode' to 'lastnode + n - 1'.

COLLECTFV  [structure]
    examines the ctable of the structure and returns a list of nodenumbers.
    Each node in the list has at least one 'FV'.  Nodes with several
    'FV's will occur several times in the list.

CONNECT [ cte1 cte2 ] 
    Connects the two CTENTRYs without doing any checking or copying.
    If cte1 and cte2 are EQ then a loop is created.

COPYSTRUC  [ structure ]
    Returns a copied structure.  Side-effect is to set LASTNODE to the
    lastnode# of the structure.

DISCONNECT  [ cte1 cte2 ]

    Disconnects cte1 and cte2 without doing any checking or copying

FINDCTE [ n structure ]
    One of the arguments should be a number of the node whose CTENTRY
    is being sought, while the other should be either a STRUCTURE or
    a CTABLE.  Therefore, FINDCTE(N STRUC) is the same as FINDCTE(STRUC N).
    

FIRSTOFNODES [ structure ]
    Returns the first node in the CTABLE i.e. the CAR OF CTABLE.
    Called only by SINGLERING .

FREEVALENCTSIZE [ structure ]
    The argument can be either a STRUCTURE or STRUCFORM ATTACHFVS.
    Returns a number which is the free valence of the structure.
    Counts 'FV .

LASTOFNODES [ structure ]
    Analogous to FIRSTOFNODES, this returns the last ctable-entry in 
    the CTABLE of the structure.  i.e.  CAR( LAST (structure ) )

LISTBYVALENCE [ structure ]
    Returns a list of bivalent nodes, trivalent nodes etc.....
    Does this by repeatedly calling VALENCETYPE with I = 2,3,....

PUTBIVE [ structure edge numberofbivs ]
    This function inserts an appropriate number of bivalent nodes
    between the nodes of the edge (given as nodenumber1.nodenumber2 )
    The direct connection between nodenumber1 and nodenumber2
    is severed as necessary, or if there were multiple
connections between the two nodes the multiplicity will reduce by one.
    Calls  BIVCHAIN FINDCTE CONNECT DISCONNECT

PUTBIVN [ structure nodenumber number-of-bivs ]
    Attaches a loop of bivalents to the given node.  If the number of bivs
    given is zero no action is taken i.e. no loop of zero order is
    attached.
    Calls BIVCHAIN CONNECT FINDCTE.

PUTFVN  [ structure nodenumber number-of-fvs]
    Attaches the correct number of 'FV into the neighbors field of the node
    specified.  Calls FINDCTE.

SINGLERING [ numberofnodes ]
    Returns a ring of BIVALENTS numbered from 1 to n.
    
    Calls BIVCHAIN FINDCTE FIRSTOFNODES LASTOFNODES CONNECT 
    STRUCTURE.

STRUCWITH2NODES  [number atomtype1 atomtype2]
    Returns a structure with 2 nodes one of atomtype1 and the
other of atomtype2 connected to each other with number of bonds.
    Calls STRUCTURE and CTENTRY.