53#define tsort insertions_sort 
   64#ifndef COMPILE_ALL_CPP 
   91    int comp_AT_RANK( 
const void* a1, 
const void* a2, 
void * );
 
   92    int CompRank( 
const void* a1, 
const void* a2, 
void *p );
 
   93    int CompRanksOrd( 
const void* a1, 
const void* a2, 
void *p );
 
  105    int* 
iisort( 
int *list, 
int num );
 
  123                                 AT_RANK *nAtomNumber, 
int bUseAltSort, 
int( *comp )( 
const void *, 
const void *, 
void * ) );
 
  132                                     AT_RANK *nAtomNumber, 
long *lNumIter, 
int bUseAltSort );
 
  136                                     AT_RANK *nAtomNumber, 
long *lNumIter );
 
  142                                     AT_RANK *nAtomNumber, 
long *lNumIter, 
int bUseAltSort );
 
  157                    int nNumMappedRanks, 
int *pnNewNumMappedRanks,
 
  170                                  int vABParityUnknown );
 
  177                    const AT_RANK *nCanonRankFrom, 
const AT_RANK *nAtomNumberCanonFrom, 
 
  180                    AT_RANK *nTempRank, 
int nNumMappedRanksInput,
 
  183                    int vABParityUnknown );
 
  186                    sp_ATOM *at, 
int num_atoms, 
int num_at_tg, 
int num_max,
 
  189                    AT_RANK *nTempRank, 
int nNumMappedRanksInput,
 
  192                    int vABParityUnknown );
 
  220                              int *bFirstTime, 
S_CHAR *bAtomUsedForStereo,
 
  222                              const AT_RANK *nCanonRankFrom, 
const AT_RANK *nAtomNumberCanonFrom,
 
  223                              const sp_ATOM *at, 
int num_atoms, 
int bAllene );
 
  229                              S_CHAR *bAtomUsedForStereo, 
 
  232                        const AT_RANK *nAtomNumberCanonFrom, 
 
  236                             int nNumBest, 
int nNumWorse, 
int nNumUnkn, 
int nNumUndf, 
int nNumCalc,
 
  237                             int vABParityUnknown );
 
  241                      const AT_RANK *nAtomNumberCanonFrom,
 
  246                      const AT_RANK *nAtomNumberCanonFrom,
 
  256                                 AT_STEREO_DBLE *LinearCTStereoDble2, 
int nLenLinearCTStereoDble2 );
 
  258                                 AT_STEREO_CARB *LinearCTStereoCarb2, 
int nLenLinearCTStereoCarb2 );
 
  262                             AT_STEREO_CARB *LinearCTStereoCarb2, 
int nLenLinearCTStereoCarb2 );
 
  267                              , 
AT_STEREO_CARB *LinearCTStereoCarb, 
int *nStereoCarbLen, 
int nMaxStereoCarbLen
 
  268                              , 
AT_STEREO_DBLE *LinearCTStereoDble, 
int *nStereoDbleLen, 
int nMaxStereoDbleLen
 
  285#ifndef COMPILE_ALL_CPP 
long AT_ISO_SORT_KEY
Definition extr_ct.h:69
 
AT_RANK * NEIGH_LIST
Definition ichicant.h:74
 
int CompareNeighListLex(NEIGH_LIST pp1, NEIGH_LIST pp2, const AT_RANK *nRank)
Definition ichisort.c:560
 
void CurTreeKeepLastAtomsOnly(CUR_TREE *cur_tree, int tpos, int shift)
Definition ichimap1.c:960
 
int CurTreeAlloc(CUR_TREE *cur_tree, int num_atoms)
Definition ichimap1.c:823
 
int SetNewRanksFromNeighLists4(CANON_GLOBALS *pCG, int num_atoms, NEIGH_LIST *NeighList, AT_RANK *nRank, AT_RANK *nNewRank, AT_RANK *nAtomNumber, AT_RANK nMaxAtRank)
Definition ichimap2.c:308
 
int nJoin2Mcrs(AT_RANK *nEqArray, AT_RANK n1, AT_RANK n2)
Definition ichimap1.c:366
 
int CompRanksInvOrd(const void *a1, const void *a2, void *)
Definition ichisort.c:670
 
int set_atom_iso_sort_keys(int num_at, sp_ATOM *at, T_GROUP_INFO *t_group_info, int *bHasIsotopicInTautomerGroups)
Definition ichiisot.c:67
 
int CurTreeRemoveIfLastAtom(CUR_TREE *cur_tree, int at_no)
Definition ichimap1.c:993
 
int CompareLinCtStereoCarb(AT_STEREO_CARB *LinearCTStereoCarb1, int nLenLinearCTStereoCarb1, AT_STEREO_CARB *LinearCTStereoCarb2, int nLenLinearCTStereoCarb2)
Definition ichimap1.c:223
 
int CompareLinCtStereoAtomToValues(AT_STEREO_CARB *LinearCTStereoCarb, AT_RANK at_rank_canon1, U_CHAR parity)
Definition ichimap1.c:287
 
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)
Definition ichimap2.c:518
 
int insertions_sort_NeighList_AT_NUMBERS3(NEIGH_LIST base, AT_RANK *nRank)
Definition ichisort.c:396
 
int DifferentiateRanks3(CANON_GLOBALS *pCG, int num_atoms, NEIGH_LIST *NeighList, int nNumCurrRanks, AT_RANK *pnCurrRank, AT_RANK *pnPrevRank, AT_RANK *nAtomNumber, long *lNumIter)
Definition ichimap2.c:561
 
int CompareLinCtStereo(AT_STEREO_DBLE *LinearCTStereoDble1, int nLenLinearCTStereoDble1, AT_STEREO_CARB *LinearCTStereoCarb1, int nLenLinearCTStereoCarb1, AT_STEREO_DBLE *LinearCTStereoDble2, int nLenLinearCTStereoDble2, AT_STEREO_CARB *LinearCTStereoCarb2, int nLenLinearCTStereoCarb2)
Definition ichimap1.c:262
 
int CurTreeIsLastRank(CUR_TREE *cur_tree, AT_NUMB rank)
Definition ichimap1.c:902
 
int CompNeighListRanksOrd(const void *a1, const void *a2, void *p)
Definition ichisort.c:657
 
int compare_NeighLists(const NEIGH_LIST *op1, const NEIGH_LIST *op2, void *p)
Definition ichisort.c:607
 
NEIGH_LIST * CreateNeighListFromLinearCT(AT_NUMB *LinearCT, int nLenCT, int num_atoms)
Definition ichisort.c:701
 
struct tagEquNeigh EQ_NEIGH
 
void SetCtToIsotopicStereo(CANON_STAT *pCS, CANON_STAT *pCS2)
Definition ichicans.c:729
 
AT_RANK nGetMcr(AT_RANK *nEqArray, AT_RANK n)
Definition ichimap1.c:336
 
int GetStereoBondParity(sp_ATOM *at, int i, int n, AT_RANK *nRank)
Definition ichicans.c:2219
 
void FreeNeighList(NEIGH_LIST *pp)
Definition ichisort.c:938
 
int bUniqueAtNbrFromMappingRank(AT_RANK **pRankStack, AT_RANK nAtRank, AT_NUMB *nAtNumber)
Definition ichimap1.c:316
 
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)
Definition ichimap2.c:3672
 
int CurTreeIsLastAtomEqu(CUR_TREE *cur_tree, int at_no, AT_NUMB *nSymmStereo)
Definition ichimap1.c:1054
 
int unpack_iso_sort_key(AT_ISO_SORT_KEY iso_sort_key, S_CHAR *num_1H, S_CHAR *num_2H, S_CHAR *num_3H, S_CHAR *iso_atw_diff)
 
int SortedRanksToEquInfo(AT_RANK *nSymmRank, const AT_RANK *nRank, const AT_RANK *nAtomNumber, int num_atoms)
Definition ichimap2.c:199
 
int ClearPreviousMappings(AT_RANK **pRankStack1)
Definition ichimap2.c:1334
 
int CurTreeAddRank(CUR_TREE *cur_tree, AT_NUMB rank)
Definition ichimap1.c:881
 
int InvertStereo(sp_ATOM *at, int num_at_tg, AT_RANK *nCanonRank, AT_RANK *nAtomNumberCanon, CANON_STAT *pCS, int bInvertLinearCTStereo)
Definition ichicans.c:2016
 
int CompRank(const void *a1, const void *a2, void *p)
Definition ichisort.c:475
 
void CurTreeFree(CUR_TREE *cur_tree)
Definition ichimap1.c:871
 
int BreakAllTies(CANON_GLOBALS *pCG, int num_atoms, int num_max, AT_RANK **pRankStack, NEIGH_LIST *NeighList, AT_RANK *nTempRank, CANON_STAT *pCS)
Definition ichisort.c:953
 
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)
Definition ichimap2.c:958
 
int might_change_other_atom_parity(sp_ATOM *at, int num_atoms, int at_no, AT_RANK *nRank2, AT_RANK *nRank1)
Definition ichimap2.c:1461
 
int HalfStereoBondParity(sp_ATOM *at, int at_no1, int i_sb_neigh, const AT_RANK *nRank)
Definition ichimap2.c:802
 
int RemoveOneStereoCenter(sp_ATOM *at, int jc)
Definition ichicans.c:300
 
void switch_ptrs(AT_RANK **p1, AT_RANK **p2)
Definition ichimap2.c:230
 
int All_SB_Same(AT_RANK canon_rank1, AT_RANK canon_rank2, const ppAT_RANK pRankStack1, const ppAT_RANK pRankStack2, const AT_RANK *nAtomNumberCanonFrom, sp_ATOM *at)
Definition ichimap1.c:393
 
int CurTreeSetPos(CUR_TREE *cur_tree, int len)
Definition ichimap1.c:1023
 
int CompRanksOrd(const void *a1, const void *a2, void *p)
Definition ichisort.c:486
 
int * iisort(int *list, int num)
Definition ichisort.c:1011
 
int Next_SB_At_CanonRanks2(AT_RANK *canon_rank1, AT_RANK *canon_rank2, AT_RANK *canon_rank1_min, AT_RANK *canon_rank2_min, int *bFirstTime, S_CHAR *bAtomUsedForStereo, const ppAT_RANK pRankStack1, const ppAT_RANK pRankStack2, const AT_RANK *nCanonRankFrom, const AT_RANK *nAtomNumberCanonFrom, const sp_ATOM *at, int num_atoms, int bAllene)
Definition ichimap1.c:518
 
void SwitchAtomStereoAndIsotopicStereo(sp_ATOM *at, int num_atoms, int *bSwitched)
Definition ichicans.c:705
 
int FillAllStereoDescriptors(CANON_GLOBALS *pCG, sp_ATOM *at, int num_atoms, const AT_RANK *nCanonRank, const AT_RANK *nAtomNumberCanon, CANON_STAT *pCS)
Definition ichicans.c:766
 
int CurTreeRemoveLastRank(CUR_TREE *cur_tree)
Definition ichimap1.c:1036
 
int SetNewRanksFromNeighLists3(CANON_GLOBALS *pCG, int num_atoms, NEIGH_LIST *NeighList, AT_RANK *nRank, AT_RANK *nNewRank, AT_RANK *nAtomNumber)
Definition ichimap2.c:241
 
int find_atoms_with_parity(sp_ATOM *at, S_CHAR *visited, int from_atom, int cur_atom)
Definition ichicans.c:155
 
int CompNeighborsAT_NUMBER(const void *a1, const void *a2, void *p)
Definition ichisort.c:453
 
int All_SC_Same(AT_RANK canon_rank1, const ppAT_RANK pRankStack1, const ppAT_RANK pRankStack2, const AT_RANK *nAtomNumberCanonFrom, const sp_ATOM *at)
Definition ichimap1.c:53
 
int CompAtomInvariants2Only(const void *a1, const void *a2, void *p)
Definition ichisort.c:502
 
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 *))
Definition ichimap2.c:380
 
int SortNeighLists2(int num_atoms, AT_RANK *nRank, NEIGH_LIST *NeighList, AT_RANK *nAtomNumber)
Definition ichimap2.c:448
 
int CurTreeRemoveLastAtom(CUR_TREE *cur_tree)
 
int SetOneStereoBondIllDefParity(sp_ATOM *at, int jc, int k, int new_parity)
Definition ichicans.c:242
 
void insertions_sort_NeighListBySymmAndCanonRank(NEIGH_LIST base, const AT_RANK *nSymmRank, const AT_RANK *nCanonRank)
Definition ichisort.c:421
 
int CompNeighborsRanksCountEql(const void *a1, const void *a2, void *p)
Definition ichisort.c:677
 
int CompAtomInvariants2(const void *a1, const void *a2, void *p)
Definition ichisort.c:536
 
AT_ISO_SORT_KEY make_iso_sort_key(int iso_atw_diff, int num_1H, int num_2H, int num_3H)
Definition ichiisot.c:47
 
int UnmarkNonStereo(CANON_GLOBALS *pCG, sp_ATOM *at, int num_atoms, const AT_RANK *nRank, const AT_RANK *nAtomNumber, int bIsotopic)
Definition ichicans.c:322
 
int GetStereoNeighborPos(sp_ATOM *at, int iAt1, int iAt2)
Definition ichicans.c:2197
 
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)
Definition ichimap2.c:1350
 
int insertions_sort_AT_RANK(AT_RANK *base, int num)
Definition ichisort.c:375
 
int CompNeighLists(const void *a1, const void *a2, void *p)
Definition ichisort.c:632
 
int CompNeighListsUpToMaxRank(const void *a1, const void *a2, void *p)
Definition ichisort.c:644
 
int CompareNeighListLexUpToMaxRank(NEIGH_LIST pp1, NEIGH_LIST pp2, const AT_RANK *nRank, AT_RANK nMaxAtNeighRank)
Definition ichisort.c:582
 
int NumberOfTies(AT_RANK **pRankStack1, AT_RANK **pRankStack2, int length, int at_no1, int at_no2, AT_RANK *nNewRank, int *bAddStack, int *bMapped1)
Definition ichimap2.c:680
 
int CurTreeFindTheRankPos(CUR_TREE *cur_tree, AT_NUMB rank)
 
int FillSingleStereoDescriptors(CANON_GLOBALS *pCG, sp_ATOM *at, int i, int num_trans, const AT_RANK *nRank, AT_STEREO_CARB *LinearCTStereoCarb, int *nStereoCarbLen, int nMaxStereoCarbLen, AT_STEREO_DBLE *LinearCTStereoDble, int *nStereoDbleLen, int nMaxStereoDbleLen, int bAllene)
Definition ichicans.c:525
 
void SortNeighListsBySymmAndCanonRank(int num_atoms, NEIGH_LIST *NeighList, const AT_RANK *nSymmRank, const AT_RANK *nCanonRank)
Definition ichimap2.c:434
 
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)
Definition ichimap2.c:1168
 
int RemoveOneStereoBond(sp_ATOM *at, int jc, int k)
Definition ichicans.c:271
 
void insertions_sort_NeighList_AT_NUMBERS(NEIGH_LIST base, AT_RANK *nRank)
Definition ichisort.c:355
 
int CompChemElemLex(const void *a1, const void *a2)
Definition ichisort.c:551
 
void SetCtToNonIsotopicStereo(CANON_STAT *pCS, CANON_STAT *pCS2)
Definition ichicans.c:746
 
int Next_SC_At_CanonRank2(AT_RANK *canon_rank1, AT_RANK *canon_rank1_min, int *bFirstTime, S_CHAR *bAtomUsedForStereo, const ppAT_RANK pRankStack1, const ppAT_RANK pRankStack2, const AT_RANK *nAtomNumberCanonFrom, int num_atoms)
Definition ichimap1.c:99
 
int CompareLinCtStereoDble(AT_STEREO_DBLE *LinearCTStereoDble1, int nLenLinearCTStereoDble1, AT_STEREO_DBLE *LinearCTStereoDble2, int nLenLinearCTStereoDble2)
Definition ichimap1.c:178
 
int NextStereoParity2Test(int *stereo_bond_parity, int *sb_parity_calc, int nNumBest, int nNumWorse, int nNumUnkn, int nNumUndf, int nNumCalc, int vABParityUnknown)
Definition ichimap1.c:659
 
int map_stereo_bonds4(struct tagINCHI_CLOCK *ic, CANON_GLOBALS *pCG, sp_ATOM *at, int num_atoms, int num_at_tg, int num_max, int bAllene, const AT_RANK *nCanonRankFrom, const AT_RANK *nAtomNumberCanonFrom, AT_RANK *nCanonRankTo, const AT_RANK *nSymmRank, AT_RANK **pRankStack1, AT_RANK **pRankStack2, AT_RANK *nTempRank, int nNumMappedRanksInput, AT_RANK *nSymmStereo, NEIGH_LIST *NeighList, CANON_STAT *pCS, CUR_TREE *cur_tree, int nNumMappedBonds, int vABParityUnknown)
Definition ichimap4.c:83
 
int comp_AT_RANK(const void *a1, const void *a2, void *)
Definition ichisort.c:467
 
int SortedEquInfoToRanks(const AT_RANK *nSymmRank, AT_RANK *nRank, const AT_RANK *nAtomNumber, int num_atoms, int *bChanged)
Definition ichimap2.c:148
 
int CompareLinCtStereoDoubleToValues(AT_STEREO_DBLE *LinearCTStereoDble, AT_RANK at_rank_canon1, AT_RANK at_rank_canon2, U_CHAR bond_parity)
Definition ichimap1.c:764
 
int CompNeighListRanks(const void *a1, const void *a2, void *p)
Definition ichisort.c:615
 
int CurTreeRemoveLastRankIfNoAtoms(CUR_TREE *cur_tree)
Definition ichimap1.c:920
 
void SetUseAtomForStereo(S_CHAR *bAtomUsedForStereo, sp_ATOM *at, int num_atoms)
Definition ichimap1.c:804
 
int GetStereoCenterParity(CANON_GLOBALS *pCG, sp_ATOM *at, int i, AT_RANK *nRank)
Definition ichicans.c:2340
 
int GetPermutationParity(CANON_GLOBALS *pCG, sp_ATOM *at, AT_RANK nAvoidNeighbor, AT_RANK *nCanonRank)
Definition ichicans.c:2296
 
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)
Definition ichimap2.c:602
 
NEIGH_LIST * CreateNeighList(int num_atoms, int num_at_tg, sp_ATOM *at, int bDoubleBondSquare, T_GROUP_INFO *t_group_info)
Definition ichisort.c:810
 
int FillOutStereoParities(sp_ATOM *at, int num_atoms, const AT_RANK *nCanonRank, const AT_RANK *nAtomNumberCanon, const AT_RANK *nRank, const AT_RANK *nAtomNumber, CANON_STAT *pCS, CANON_GLOBALS *pCG, int bIsotopic)
Definition ichicans.c:2127
 
int map_stereo_atoms4(struct tagINCHI_CLOCK *ic, CANON_GLOBALS *pCG, sp_ATOM *at, int num_atoms, int num_at_tg, int num_max, const AT_RANK *nCanonRankFrom, const AT_RANK *nAtomNumberCanonFrom, AT_RANK *nCanonRankTo, const AT_RANK *nSymmRank, AT_RANK **pRankStack1, AT_RANK **pRankStack2, AT_RANK *nTempRank, int nNumMappedRanksInput, AT_RANK *nSymmStereo, NEIGH_LIST *NeighList, CANON_STAT *pCS, CUR_TREE *cur_tree, int nNumMappedAtoms, int vABParityUnknown)
Definition ichimap4.c:1129
 
int CurTreeGetPos(CUR_TREE *cur_tree)
Definition ichimap1.c:1011
 
int CurTreeReplaceLastRank(CUR_TREE *cur_tree, AT_NUMB rank)
 
int CurTreeReAlloc(CUR_TREE *cur_tree)
Definition ichimap1.c:850
 
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)
Definition ichimap2.c:637
 
int CurTreeAddAtom(CUR_TREE *cur_tree, int at_no)
Definition ichimap1.c:935
 
pAT_RANK * ppAT_RANK
Definition ichisize.h:58
 
unsigned short AT_NUMB
Definition ichisize.h:45
 
unsigned short AT_RANK
Definition ichisize.h:46
 
signed char S_CHAR
Definition inchi_api.h:113
 
unsigned char U_CHAR
Definition inchi_api.h:114
 
Definition ichicant.h:338
 
Definition ichicant.h:204
 
Definition ichicant.h:424
 
AT_RANK canon_rank
Definition ichicomn.h:60
 
AT_RANK rank
Definition ichicomn.h:59
 
AT_RANK from_at
Definition ichicomn.h:58
 
AT_RANK to_at[4]
Definition ichicomn.h:57
 
int num_to
Definition ichicomn.h:56
 
Definition ichitaut.h:222