Macros | |
#define | MAP_MODE_STD 0 /* Standard approach: switch 2 neighbors */ |
#define | MAP_MODE_C2v 1 /* Check for C2v reflection leading to parity inversion */ |
#define | MAP_MODE_C2 2 /* Check for C2 rotation preserving parities */ |
#define | MAP_MODE_S4 3 /* Check for S4 rotation/reflection leading to parity inversion */ |
#define | MAX_OTHER_NEIGH 2 |
#define | NEIGH_MODE_RING 1 |
#define | NEIGH_MODE_CHAIN 2 |
#define | CHECKING_STEREOCENTER 1 |
#define | CHECKING_STEREOBOND 2 |
#define | COMP_STEREO_SUCCESS 1 |
#define | NOT_WELL_DEF_UNKN 2 |
#define | NOT_WELL_DEF_UNDF 4 |
#define | PARITY_IMPOSSIBLE 999 |
Functions | |
void | DeAllocateForNonStereoRemoval (AT_RANK **nAtomNumberCanon1, AT_RANK **nAtomNumberCanon2, NEIGH_LIST **nl, NEIGH_LIST **nl1, NEIGH_LIST **nl2, AT_RANK **nVisited1, AT_RANK **nVisited2) |
int | AllocateForNonStereoRemoval (sp_ATOM *at, int num_atoms, const AT_RANK *nSymmRank, AT_RANK *nCanonRank, AT_RANK **nAtomNumberCanon1, AT_RANK **nAtomNumberCanon2, NEIGH_LIST **nl, NEIGH_LIST **nl1, NEIGH_LIST **nl2, AT_RANK **nVisited1, AT_RANK **nVisited2) |
AT_RANK | GetMinNewRank (AT_RANK *nAtomRank, AT_RANK *nAtomNumb, AT_RANK nRank1) |
int | BreakNeighborsTie (CANON_GLOBALS *pCG, sp_ATOM *at, int num_atoms, int num_at_tg, int ib, int ia, AT_RANK *neigh_num, int in1, int in2, int mode, AT_RANK **pRankStack1, AT_RANK **pRankStack2, AT_RANK *nTempRank, NEIGH_LIST *NeighList, const AT_RANK *nSymmRank, AT_RANK *nCanonRank, NEIGH_LIST *nl1, NEIGH_LIST *nl2, long *lNumIter) |
int | CheckNextSymmNeighborsAndBonds (sp_ATOM *at, AT_RANK cur1, AT_RANK cur2, AT_RANK n1, AT_RANK n2, AT_RANK *nAvoidCheckAtom, AT_RANK *nVisited1, AT_RANK *nVisited2, AT_RANK *nVisitOrd1, AT_RANK *nVisitOrd2, const AT_RANK *nRank1, const AT_RANK *nRank2) |
int | CreateCheckSymmPaths (sp_ATOM *at, AT_RANK prev1, AT_RANK cur1, AT_RANK prev2, AT_RANK cur2, AT_RANK *nAvoidCheckAtom, AT_RANK *nVisited1, AT_RANK *nVisited2, AT_RANK *nVisitOrd1, AT_RANK *nVisitOrd2, NEIGH_LIST *nl1, NEIGH_LIST *nl2, const AT_RANK *nRank1, const AT_RANK *nRank2, AT_RANK *nCanonRank, AT_RANK *nLength, int *bParitiesInverted, int mode) |
int | CalculatedPathsParitiesAreIdentical (CANON_GLOBALS *pCG, sp_ATOM *at, int num_atoms, const AT_RANK *nSymmRank, AT_RANK *nCanonRank, AT_RANK *nAtomNumberCanon, AT_RANK *nAtomNumberCanon1, AT_RANK *nAtomNumberCanon2, AT_RANK *nVisited1, AT_RANK *nVisited2, AT_RANK prev_sb_neigh, AT_RANK cur, AT_RANK next1, AT_RANK next2, int nNeighMode, int bParitiesInverted, int mode, CANON_STAT *pCS, int vABParityUnknown) |
int | RemoveCalculatedNonStereoBondParities (CANON_GLOBALS *pCG, sp_ATOM *at, int num_atoms, int num_at_tg, AT_RANK **pRankStack1, AT_RANK **pRankStack2, AT_RANK *nTempRank, NEIGH_LIST *NeighList, AT_RANK *nCanonRank, const AT_RANK *nSymmRank, AT_RANK *nAtomNumberCanon, AT_RANK *nAtomNumberCanon1, AT_RANK *nAtomNumberCanon2, NEIGH_LIST *nl, NEIGH_LIST *nl1, NEIGH_LIST *nl2, AT_RANK *nVisited1, AT_RANK *nVisited2, CANON_STAT *pCS, int vABParityUnknown) |
int | RemoveCalculatedNonStereoCenterParities (CANON_GLOBALS *pCG, sp_ATOM *at, int num_atoms, int num_at_tg, AT_RANK **pRankStack1, AT_RANK **pRankStack2, AT_RANK *nTempRank, NEIGH_LIST *NeighList, AT_RANK *nCanonRank, const AT_RANK *nSymmRank, AT_RANK *nAtomNumberCanon, AT_RANK *nAtomNumberCanon1, AT_RANK *nAtomNumberCanon2, NEIGH_LIST *nl, NEIGH_LIST *nl1, NEIGH_LIST *nl2, AT_RANK *nVisited1, AT_RANK *nVisited2, CANON_STAT *pCS, int vABParityUnknown) |
int | SortNeighLists3 (int num_atoms, AT_RANK *nRank, NEIGH_LIST *NeighList, AT_RANK *nAtomNumber) |
int | SortedEquInfoToRanks (const AT_RANK *nSymmRank, AT_RANK *nRank, const AT_RANK *nAtomNumber, int num_atoms, int *bChanged) |
int | SortedRanksToEquInfo (AT_RANK *nSymmRank, const AT_RANK *nRank, const AT_RANK *nAtomNumber, int num_atoms) |
void | switch_ptrs (AT_RANK **p1, AT_RANK **p2) |
int | SetNewRanksFromNeighLists3 (CANON_GLOBALS *pCG, int num_atoms, NEIGH_LIST *NeighList, AT_RANK *nRank, AT_RANK *nNewRank, AT_RANK *nAtomNumber) |
int | SetNewRanksFromNeighLists4 (CANON_GLOBALS *pCG, int num_atoms, NEIGH_LIST *NeighList, AT_RANK *nRank, AT_RANK *nNewRank, AT_RANK *nAtomNumber, AT_RANK nMaxAtRank) |
int | SetNewRanksFromNeighLists (CANON_GLOBALS *pCG, int num_atoms, NEIGH_LIST *NeighList, AT_RANK *nRank, AT_RANK *nNewRank, AT_RANK *nAtomNumber, int bUseAltSort, int(*comp)(const void *, const void *, void *)) |
void | SortNeighListsBySymmAndCanonRank (int num_atoms, NEIGH_LIST *NeighList, const AT_RANK *nSymmRank, const AT_RANK *nCanonRank) |
int | SortNeighLists2 (int num_atoms, AT_RANK *nRank, NEIGH_LIST *NeighList, AT_RANK *nAtomNumber) |
int | DifferentiateRanks2 (CANON_GLOBALS *pCG, int num_atoms, NEIGH_LIST *NeighList, int nNumCurrRanks, AT_RANK *pnCurrRank, AT_RANK *pnPrevRank, AT_RANK *nAtomNumber, long *lNumIter, int bUseAltSort) |
int | DifferentiateRanks3 (CANON_GLOBALS *pCG, int num_atoms, NEIGH_LIST *NeighList, int nNumCurrRanks, AT_RANK *pnCurrRank, AT_RANK *pnPrevRank, AT_RANK *nAtomNumber, long *lNumIter) |
int | DifferentiateRanks4 (CANON_GLOBALS *pCG, int num_atoms, NEIGH_LIST *NeighList, int nNumCurrRanks, AT_RANK *pnCurrRank, AT_RANK *pnPrevRank, AT_RANK *nAtomNumber, AT_RANK nMaxAtRank, long *lNumIter) |
int | DifferentiateRanksBasic (CANON_GLOBALS *pCG, int num_atoms, NEIGH_LIST *NeighList, int nNumCurrRanks, AT_RANK *pnCurrRank, AT_RANK *pnPrevRank, AT_RANK *nAtomNumber, long *lNumIter, int bUseAltSort) |
int | NumberOfTies (AT_RANK **pRankStack1, AT_RANK **pRankStack2, int length, int at_no1, int at_no2, AT_RANK *nNewRank, int *bAddStack, int *bMapped1) |
int | HalfStereoBondParity (sp_ATOM *at, int at_no1, int i_sb_neigh, const AT_RANK *nRank) |
int | parity_of_mapped_half_bond (int from_at, int to_at, int from_neigh, int to_neigh, sp_ATOM *at, EQ_NEIGH *pEN, const AT_RANK *nCanonRankFrom, const AT_RANK *nRankFrom, const AT_RANK *nRankTo) |
int | parity_of_mapped_atom2 (CANON_GLOBALS *pCG, int from_at, int to_at, const sp_ATOM *at, EQ_NEIGH *pEN, const AT_RANK *nCanonRankFrom, const AT_RANK *nRankFrom, const AT_RANK *nRankTo) |
int | ClearPreviousMappings (AT_RANK **pRankStack1) |
int | map_an_atom2 (CANON_GLOBALS *pCG, int num_atoms, int num_max, int at_no1, int at_no2, AT_RANK *nTempRank, int nNumMappedRanks, int *pnNewNumMappedRanks, CANON_STAT *pCS, NEIGH_LIST *NeighList, AT_RANK **pRankStack1, AT_RANK **pRankStack2, int *bAddStack) |
int | might_change_other_atom_parity (sp_ATOM *at, int num_atoms, int at_no, AT_RANK *nRank2, AT_RANK *nRank1) |
int | RemoveCalculatedNonStereo (CANON_GLOBALS *pCG, sp_ATOM *at, int num_atoms, int num_at_tg, AT_RANK **pRankStack1, AT_RANK **pRankStack2, AT_RANK *nTempRank, NEIGH_LIST *NeighList, const AT_RANK *nSymmRank, AT_RANK *nCanonRank, AT_RANK *nAtomNumberCanon, CANON_STAT *pCS, int vABParityUnknown) |
#define CHECKING_STEREOBOND 2 |
#define CHECKING_STEREOCENTER 1 |
#define COMP_STEREO_SUCCESS 1 |
#define MAP_MODE_C2 2 /* Check for C2 rotation preserving parities */ |
#define MAP_MODE_C2v 1 /* Check for C2v reflection leading to parity inversion */ |
#define MAP_MODE_S4 3 /* Check for S4 rotation/reflection leading to parity inversion */ |
#define MAP_MODE_STD 0 /* Standard approach: switch 2 neighbors */ |
#define MAX_OTHER_NEIGH 2 |
#define NEIGH_MODE_CHAIN 2 |
#define NEIGH_MODE_RING 1 |
#define NOT_WELL_DEF_UNDF 4 |
#define NOT_WELL_DEF_UNKN 2 |
#define PARITY_IMPOSSIBLE 999 |
int AllocateForNonStereoRemoval | ( | sp_ATOM * | at, |
int | num_atoms, | ||
const AT_RANK * | nSymmRank, | ||
AT_RANK * | nCanonRank, | ||
AT_RANK ** | nAtomNumberCanon1, | ||
AT_RANK ** | nAtomNumberCanon2, | ||
NEIGH_LIST ** | nl, | ||
NEIGH_LIST ** | nl1, | ||
NEIGH_LIST ** | nl2, | ||
AT_RANK ** | nVisited1, | ||
AT_RANK ** | nVisited2 | ||
) |
int BreakNeighborsTie | ( | CANON_GLOBALS * | pCG, |
sp_ATOM * | at, | ||
int | num_atoms, | ||
int | num_at_tg, | ||
int | ib, | ||
int | ia, | ||
AT_RANK * | neigh_num, | ||
int | in1, | ||
int | in2, | ||
int | mode, | ||
AT_RANK ** | pRankStack1, | ||
AT_RANK ** | pRankStack2, | ||
AT_RANK * | nTempRank, | ||
NEIGH_LIST * | NeighList, | ||
const AT_RANK * | nSymmRank, | ||
AT_RANK * | nCanonRank, | ||
NEIGH_LIST * | nl1, | ||
NEIGH_LIST * | nl2, | ||
long * | lNumIter | ||
) |
int CalculatedPathsParitiesAreIdentical | ( | CANON_GLOBALS * | pCG, |
sp_ATOM * | at, | ||
int | num_atoms, | ||
const AT_RANK * | nSymmRank, | ||
AT_RANK * | nCanonRank, | ||
AT_RANK * | nAtomNumberCanon, | ||
AT_RANK * | nAtomNumberCanon1, | ||
AT_RANK * | nAtomNumberCanon2, | ||
AT_RANK * | nVisited1, | ||
AT_RANK * | nVisited2, | ||
AT_RANK | prev_sb_neigh, | ||
AT_RANK | cur, | ||
AT_RANK | next1, | ||
AT_RANK | next2, | ||
int | nNeighMode, | ||
int | bParitiesInverted, | ||
int | mode, | ||
CANON_STAT * | pCS, | ||
int | vABParityUnknown | ||
) |
int CheckNextSymmNeighborsAndBonds | ( | sp_ATOM * | at, |
AT_RANK | cur1, | ||
AT_RANK | cur2, | ||
AT_RANK | n1, | ||
AT_RANK | n2, | ||
AT_RANK * | nAvoidCheckAtom, | ||
AT_RANK * | nVisited1, | ||
AT_RANK * | nVisited2, | ||
AT_RANK * | nVisitOrd1, | ||
AT_RANK * | nVisitOrd2, | ||
const AT_RANK * | nRank1, | ||
const AT_RANK * | nRank2 | ||
) |
int ClearPreviousMappings | ( | AT_RANK ** | pRankStack1 | ) |
int CreateCheckSymmPaths | ( | sp_ATOM * | at, |
AT_RANK | prev1, | ||
AT_RANK | cur1, | ||
AT_RANK | prev2, | ||
AT_RANK | cur2, | ||
AT_RANK * | nAvoidCheckAtom, | ||
AT_RANK * | nVisited1, | ||
AT_RANK * | nVisited2, | ||
AT_RANK * | nVisitOrd1, | ||
AT_RANK * | nVisitOrd2, | ||
NEIGH_LIST * | nl1, | ||
NEIGH_LIST * | nl2, | ||
const AT_RANK * | nRank1, | ||
const AT_RANK * | nRank2, | ||
AT_RANK * | nCanonRank, | ||
AT_RANK * | nLength, | ||
int * | bParitiesInverted, | ||
int | mode | ||
) |
void DeAllocateForNonStereoRemoval | ( | AT_RANK ** | nAtomNumberCanon1, |
AT_RANK ** | nAtomNumberCanon2, | ||
NEIGH_LIST ** | nl, | ||
NEIGH_LIST ** | nl1, | ||
NEIGH_LIST ** | nl2, | ||
AT_RANK ** | nVisited1, | ||
AT_RANK ** | nVisited2 | ||
) |
int DifferentiateRanks2 | ( | CANON_GLOBALS * | pCG, |
int | num_atoms, | ||
NEIGH_LIST * | NeighList, | ||
int | nNumCurrRanks, | ||
AT_RANK * | pnCurrRank, | ||
AT_RANK * | pnPrevRank, | ||
AT_RANK * | nAtomNumber, | ||
long * | lNumIter, | ||
int | bUseAltSort | ||
) |
int DifferentiateRanks3 | ( | CANON_GLOBALS * | pCG, |
int | num_atoms, | ||
NEIGH_LIST * | NeighList, | ||
int | nNumCurrRanks, | ||
AT_RANK * | pnCurrRank, | ||
AT_RANK * | pnPrevRank, | ||
AT_RANK * | nAtomNumber, | ||
long * | lNumIter | ||
) |
int DifferentiateRanks4 | ( | CANON_GLOBALS * | pCG, |
int | num_atoms, | ||
NEIGH_LIST * | NeighList, | ||
int | nNumCurrRanks, | ||
AT_RANK * | pnCurrRank, | ||
AT_RANK * | pnPrevRank, | ||
AT_RANK * | nAtomNumber, | ||
AT_RANK | nMaxAtRank, | ||
long * | lNumIter | ||
) |
int DifferentiateRanksBasic | ( | CANON_GLOBALS * | pCG, |
int | num_atoms, | ||
NEIGH_LIST * | NeighList, | ||
int | nNumCurrRanks, | ||
AT_RANK * | pnCurrRank, | ||
AT_RANK * | pnPrevRank, | ||
AT_RANK * | nAtomNumber, | ||
long * | lNumIter, | ||
int | bUseAltSort | ||
) |
int map_an_atom2 | ( | CANON_GLOBALS * | pCG, |
int | num_atoms, | ||
int | num_max, | ||
int | at_no1, | ||
int | at_no2, | ||
AT_RANK * | nTempRank, | ||
int | nNumMappedRanks, | ||
int * | pnNewNumMappedRanks, | ||
CANON_STAT * | pCS, | ||
NEIGH_LIST * | NeighList, | ||
AT_RANK ** | pRankStack1, | ||
AT_RANK ** | pRankStack2, | ||
int * | bAddStack | ||
) |
int might_change_other_atom_parity | ( | sp_ATOM * | at, |
int | num_atoms, | ||
int | at_no, | ||
AT_RANK * | nRank2, | ||
AT_RANK * | nRank1 | ||
) |
int NumberOfTies | ( | AT_RANK ** | pRankStack1, |
AT_RANK ** | pRankStack2, | ||
int | length, | ||
int | at_no1, | ||
int | at_no2, | ||
AT_RANK * | nNewRank, | ||
int * | bAddStack, | ||
int * | bMapped1 | ||
) |
int parity_of_mapped_atom2 | ( | CANON_GLOBALS * | pCG, |
int | from_at, | ||
int | to_at, | ||
const sp_ATOM * | at, | ||
EQ_NEIGH * | pEN, | ||
const AT_RANK * | nCanonRankFrom, | ||
const AT_RANK * | nRankFrom, | ||
const AT_RANK * | nRankTo | ||
) |
int parity_of_mapped_half_bond | ( | int | from_at, |
int | to_at, | ||
int | from_neigh, | ||
int | to_neigh, | ||
sp_ATOM * | at, | ||
EQ_NEIGH * | pEN, | ||
const AT_RANK * | nCanonRankFrom, | ||
const AT_RANK * | nRankFrom, | ||
const AT_RANK * | nRankTo | ||
) |
int RemoveCalculatedNonStereo | ( | CANON_GLOBALS * | pCG, |
sp_ATOM * | at, | ||
int | num_atoms, | ||
int | num_at_tg, | ||
AT_RANK ** | pRankStack1, | ||
AT_RANK ** | pRankStack2, | ||
AT_RANK * | nTempRank, | ||
NEIGH_LIST * | NeighList, | ||
const AT_RANK * | nSymmRank, | ||
AT_RANK * | nCanonRank, | ||
AT_RANK * | nAtomNumberCanon, | ||
CANON_STAT * | pCS, | ||
int | vABParityUnknown | ||
) |
int RemoveCalculatedNonStereoBondParities | ( | CANON_GLOBALS * | pCG, |
sp_ATOM * | at, | ||
int | num_atoms, | ||
int | num_at_tg, | ||
AT_RANK ** | pRankStack1, | ||
AT_RANK ** | pRankStack2, | ||
AT_RANK * | nTempRank, | ||
NEIGH_LIST * | NeighList, | ||
AT_RANK * | nCanonRank, | ||
const AT_RANK * | nSymmRank, | ||
AT_RANK * | nAtomNumberCanon, | ||
AT_RANK * | nAtomNumberCanon1, | ||
AT_RANK * | nAtomNumberCanon2, | ||
NEIGH_LIST * | nl, | ||
NEIGH_LIST * | nl1, | ||
NEIGH_LIST * | nl2, | ||
AT_RANK * | nVisited1, | ||
AT_RANK * | nVisited2, | ||
CANON_STAT * | pCS, | ||
int | vABParityUnknown | ||
) |
int RemoveCalculatedNonStereoCenterParities | ( | CANON_GLOBALS * | pCG, |
sp_ATOM * | at, | ||
int | num_atoms, | ||
int | num_at_tg, | ||
AT_RANK ** | pRankStack1, | ||
AT_RANK ** | pRankStack2, | ||
AT_RANK * | nTempRank, | ||
NEIGH_LIST * | NeighList, | ||
AT_RANK * | nCanonRank, | ||
const AT_RANK * | nSymmRank, | ||
AT_RANK * | nAtomNumberCanon, | ||
AT_RANK * | nAtomNumberCanon1, | ||
AT_RANK * | nAtomNumberCanon2, | ||
NEIGH_LIST * | nl, | ||
NEIGH_LIST * | nl1, | ||
NEIGH_LIST * | nl2, | ||
AT_RANK * | nVisited1, | ||
AT_RANK * | nVisited2, | ||
CANON_STAT * | pCS, | ||
int | vABParityUnknown | ||
) |
int SetNewRanksFromNeighLists | ( | CANON_GLOBALS * | pCG, |
int | num_atoms, | ||
NEIGH_LIST * | NeighList, | ||
AT_RANK * | nRank, | ||
AT_RANK * | nNewRank, | ||
AT_RANK * | nAtomNumber, | ||
int | bUseAltSort, | ||
int(*)(const void *, const void *, void *) | comp | ||
) |
int SetNewRanksFromNeighLists3 | ( | CANON_GLOBALS * | pCG, |
int | num_atoms, | ||
NEIGH_LIST * | NeighList, | ||
AT_RANK * | nRank, | ||
AT_RANK * | nNewRank, | ||
AT_RANK * | nAtomNumber | ||
) |
int SetNewRanksFromNeighLists4 | ( | CANON_GLOBALS * | pCG, |
int | num_atoms, | ||
NEIGH_LIST * | NeighList, | ||
AT_RANK * | nRank, | ||
AT_RANK * | nNewRank, | ||
AT_RANK * | nAtomNumber, | ||
AT_RANK | nMaxAtRank | ||
) |
int SortedEquInfoToRanks | ( | const AT_RANK * | nSymmRank, |
AT_RANK * | nRank, | ||
const AT_RANK * | nAtomNumber, | ||
int | num_atoms, | ||
int * | bChanged | ||
) |
int SortedRanksToEquInfo | ( | AT_RANK * | nSymmRank, |
const AT_RANK * | nRank, | ||
const AT_RANK * | nAtomNumber, | ||
int | num_atoms | ||
) |
int SortNeighLists2 | ( | int | num_atoms, |
AT_RANK * | nRank, | ||
NEIGH_LIST * | NeighList, | ||
AT_RANK * | nAtomNumber | ||
) |
int SortNeighLists3 | ( | int | num_atoms, |
AT_RANK * | nRank, | ||
NEIGH_LIST * | NeighList, | ||
AT_RANK * | nAtomNumber | ||
) |
void SortNeighListsBySymmAndCanonRank | ( | int | num_atoms, |
NEIGH_LIST * | NeighList, | ||
const AT_RANK * | nSymmRank, | ||
const AT_RANK * | nCanonRank | ||
) |