Ignore:
Timestamp:
May 9, 2008, 2:20:08 PM (18 years ago)
Author:
Frederik Heber <heber@…>
Children:
cc6dfb
Parents:
2700f5e
Message:

MinimumRingSize is now an array over all atoms

Each entry in MinimumRingSize defines the maximum bond order possible due to membership in or vicinity to a ring. In order to do create this array, CyclicStructureAnalysis() was expanded with another BFS going over all atoms that are only close to a ring (nearest ring member is search and entri in array set). All other functions such as DepthFirstSearchAnalysis() and FragmentBOSSANOVA(), where the MinimumRingSize is now checked (and not in FragmentMolecule) anymore, are adapted to have an array parameter.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • molecuilder/src/molecules.hpp

    r2700f5e r0716ff4  
    326326 
    327327  // Graph analysis
    328   MoleculeLeafClass * DepthFirstSearchAnalysis(ofstream *out, bool ReturnStack, int &MinimumRingSize);
    329   void CyclicStructureAnalysis(ofstream *out, class StackClass<bond *> *BackEdgeStack, int &MinimumRingSize);
     328  MoleculeLeafClass * DepthFirstSearchAnalysis(ofstream *out, bool ReturnStack, int *&MinimumRingSize);
     329  void CyclicStructureAnalysis(ofstream *out, class StackClass<bond *> *BackEdgeStack, int *&MinimumRingSize);
    330330  bond * FindNextUnused(atom *vertex);
    331331  void SetNextComponentNumber(atom *vertex, int nr);
     
    353353  void BreadthFirstSearchAdd(ofstream *out, molecule *Mol, atom **&AddedAtomList, bond **&AddedBondList, atom *Root, bond *Bond, int BondOrder, bool IsAngstroem);
    354354  /// -# BOSSANOVA
    355   void FragmentBOSSANOVA(ofstream *out, Graph *&FragmentList, KeyStack &RootStack);
     355  void FragmentBOSSANOVA(ofstream *out, Graph *&FragmentList, KeyStack &RootStack, int *MinimumRingSize);
    356356        int PowerSetGenerator(ofstream *out, int Order, struct UniqueFragments &FragmentSearch, KeySet RestrictedKeySet);
    357357  bool BuildInducedSubgraph(ofstream *out, const molecule *Father);
     
    413413  bool AddLeaf(molecule *ptr, MoleculeLeafClass *Previous);
    414414  bool FillBondStructureFromReference(ofstream *out, molecule *reference, int &FragmentCounter, atom ***&ListOfLocalAtoms, bool FreeList = false);
    415   bool FillRootStackForSubgraphs(ofstream *out, KeyStack *&RootStack, bool *AtomMask, int Order, int &FragmentCounter);
     415  bool FillRootStackForSubgraphs(ofstream *out, KeyStack *&RootStack, bool *AtomMask, int &FragmentCounter);
    416416  bool AssignKeySetsToFragment(ofstream *out, molecule *reference, Graph *KeySetList, atom ***&ListOfLocalAtoms, Graph **&FragmentList, int &FragmentCounter, bool FreeList = false);
    417417  bool FillListOfLocalAtoms(ofstream *out, atom ***&ListOfLocalAtoms, int &FragmentCounter, int GlobalAtomCount, bool &FreeList);
Note: See TracChangeset for help on using the changeset viewer.