|
#define | BNS_MARK_ONLY_BLOCKS 1 /* 1 => find only blocks, do not search for ring systems */ |
|
#define | ALLOW_ONLY_SIMPLE_ALT_PATH 0 /* 0 => allow alt. path to contain same bond 2 times (in opposite directions) */ |
|
#define | CHECK_TG_ALT_PATH |
|
#define | FIX_CPOINT_BOND_CAP 1 /* 1=> fix bug in case of double bond from neutral cpoint */ |
|
#define | RESET_EDGE_FORBIDDEN_MASK 1 /* 1: previous; 0: do not apply "edge->forbidden &= pBNS->edge_forbidden_mask" */ |
|
#define | IS_FORBIDDEN(EDGE_FORBIDDEN, PBNS) (EDGE_FORBIDDEN) |
|
#define | ATBIT_NP_Plus (1 << ATTOT_NUM_NP_Plus) |
|
#define | ATBIT_NP_Proton (1 << ATTOT_NUM_NP_Proton) |
|
#define | ATBIT_NP_H (1 << ATTOT_NUM_NP_H) |
|
#define | ATBIT_N_Minus (1 << ATTOT_NUM_N_Minus) |
|
#define | ATBIT_NP (1 << ATTOT_NUM_NP) |
|
#define | ATBIT_ON (1 << ATTOT_NUM_ON) |
|
#define | ATBIT_COH (1 << ATTOT_NUM_COH) |
|
#define | ATBIT_CSH (1 << ATTOT_NUM_CSH) |
|
#define | ATBIT_ZOH (1 << ATTOT_NUM_ZOH) |
|
#define | ATBIT_OOH (1 << ATTOT_NUM_OOH) |
|
#define | ATBIT_ZOOH (1 << ATTOT_NUM_ZOOH) |
|
#define | ATBIT_NOH (1 << ATTOT_NUM_NOH) |
|
#define | ATBIT_N_OH (1 << ATTOT_NUM_N_OH) |
|
#define | ATBIT_CO (1 << ATTOT_NUM_CO) |
|
#define | ATBIT_ZO (1 << ATTOT_NUM_ZO) |
|
#define | ATBIT_NO (1 << ATTOT_NUM_NO) |
|
#define | ATBIT_N_O (1 << ATTOT_NUM_N_O) |
|
#define | ATBIT_CO_Minus (1 << ATTOT_NUM_CO_Minus) |
|
#define | ATBIT_CS_Minus (1 << ATTOT_NUM_CS_Minus) |
|
#define | ATBIT_ZO_Minus (1 << ATTOT_NUM_ZO_Minus) |
|
#define | ATBIT_OO_Minus (1 << ATTOT_NUM_OO_Minus) |
|
#define | ATBIT_ZOO_Minus (1 << ATTOT_NUM_ZOO_Minus) |
|
#define | ATBIT_NO_Minus (1 << ATTOT_NUM_NO_Minus) |
|
#define | ATBIT_N_O_Minus (1 << ATTOT_NUM_N_O_Minus) |
|
#define | ATBIT_O_Minus (1 << ATTOT_NUM_O_Minus) |
|
#define | ATBIT_OH_Plus (1 << ATTOT_NUM_OH_Plus) |
|
#define | ATBIT_O_Plus (1 << ATTOT_NUM_O_Plus) |
|
#define | ATBIT_Proton (1 << ATTOT_NUM_Proton) |
|
#define | ATBIT_HalAnion (1 << ATTOT_NUM_HalAnion) |
|
#define | ATBIT_HalAcid (1 << ATTOT_NUM_HalAcid) |
|
#define | ATBIT_Errors (1 << ATTOT_NUM_Errors) |
|
#define | PR_SIMPLE_MSK (ATBIT_NP_Proton | ATBIT_OH_Plus) |
|
#define | PR_SIMPLE_TYP (ATT_ATOM_N | ATT_ATOM_P | ATT_O_PLUS) |
|
#define | ATBIT_MSK_NP (ATBIT_NP_Plus | ATBIT_NP_Proton | ATBIT_NP_H | ATBIT_N_Minus | ATBIT_NP) |
|
#define | KNOWN_ACIDIC_TYPE (ATT_ACIDIC_CO | ATT_ACIDIC_S | ATT_OO | ATT_ZOO | ATT_NO) |
|
#define | ATBIT_MSK_OS |
|
#define | ATBIT_MSK_H |
|
#define | ATTYP_OS (ATT_ACIDIC_CO | ATT_ACIDIC_S | ATT_OO | ATT_ZOO | ATT_NO /*| ATT_OTHER_NEG_O*/ | ATT_OTHER_ZO) |
|
#define | ATTYP_NP (ATT_ATOM_N | ATT_ATOM_P) |
|
#define | ATTYP_N (ATT_ATOM_N) |
|
#define | ATTYP_P (ATT_ATOM_P) |
|
#define | AR_ANY_OH 0 /* 1 => create unknown to be acidic anions */ |
|
#define | AR_SIMPLE_STEPS 3 |
|
#define | AR_SIMPLE_MSK1 (ATBIT_COH | ATBIT_CSH | ATBIT_OOH | ATBIT_ZOOH | ATBIT_NOH | ATBIT_HalAcid) |
|
#define | AR_SIMPLE_TYP1 (ATT_ACIDIC_CO | ATT_ACIDIC_S | ATT_OO | ATT_ZOO | ATT_NO | ATT_HalAcid) |
|
#define | AR_SIMPLE_MSK2 (AR_ANY_OH? (ATBIT_N_OH) :0) |
|
#define | AR_SIMPLE_TYP2 (AR_ANY_OH? (ATT_N_O) :0) |
|
#define | AR_SIMPLE_MSK3 (AR_ANY_OH? (ATBIT_ZOH) :0) |
|
#define | AR_SIMPLE_TYP3 (AR_ANY_OH? (ATT_OTHER_ZO):0) |
|
#define | AA_ANY_O_Minus 0 /* 1 => neutralize unknown to be acidic anions */ |
|
#define | AA_SIMPLE_STEPS 3 |
|
#define | AA_SIMPLE_MSK1 (ATBIT_CO_Minus | ATBIT_CS_Minus | ATBIT_OO_Minus | ATBIT_ZOO_Minus | ATBIT_NO_Minus | ATBIT_O_Minus | ATBIT_HalAnion) |
|
#define | AA_SIMPLE_TYP1 (ATT_ACIDIC_CO | ATT_ACIDIC_S | ATT_OO | ATT_ZOO | ATT_NO | ATT_OH_MINUS | ATT_HalAnion ) |
|
#define | AA_SIMPLE_MSK2 (AA_ANY_O_Minus? (ATBIT_N_O_Minus) :0) |
|
#define | AA_SIMPLE_TYP2 (AA_ANY_O_Minus? (ATT_N_O) :0) |
|
#define | AA_SIMPLE_MSK3 (AA_ANY_O_Minus? (ATBIT_ZO_Minus | ATBIT_O_Minus):0) |
|
#define | AA_SIMPLE_TYP3 (AA_ANY_O_Minus? (ATT_OTHER_ZO) :0) |
|
#define | AA_SIMPLE_STEPS 4 |
|
#define | AA_SIMPLE_MSK4 ATBIT_N_Minus |
|
#define | AA_SIMPLE_TYP4 ATT_NP_MINUS_V23 |
|
#define | PR_HARD_MSK_POS ATBIT_MSK_NP |
|
#define | PR_HARD_TYP_POS ATTYP_N |
|
#define | PR_HARD_TYP_POSP ATTYP_P |
|
#define | PR_HARD_MSK_NEG (ATBIT_MSK_NP | ATBIT_MSK_OS) |
|
#define | PR_HARD_TYP_NEG (ATTYP_N | ATTYP_OS) |
|
#define | PR_HARD_MSK_H (ATBIT_MSK_NP | ATBIT_MSK_OS) |
|
#define | PR_HARD_TYP_H (ATTYP_N | ATTYP_OS) |
|
#define | AR_HARD_MSK_POS ATBIT_MSK_NP |
|
#define | AR_HARD_TYP_POS ATTYP_N |
|
#define | AR_HARD_MSK_NEG (ATBIT_MSK_NP | ATBIT_MSK_OS) |
|
#define | AR_HARD_TYP_NEG (ATTYP_N | ATTYP_OS) |
|
#define | AR_HARD_MSK_HA (ATBIT_CO | ATBIT_NO ) |
|
#define | AR_HARD_TYP_HA (ATT_ACIDIC_CO | ATT_NO) |
|
#define | AR_HARD_MSK_HN ((ATBIT_MSK_NP | ATBIT_MSK_OS) & ~AR_HARD_MSK_HA) |
|
#define | AR_HARD_TYP_HN ((ATTYP_N | ATTYP_OS) /*& ~AR_HARD_TYP_HA*/) |
|
#define | AA_HARD_MSK_POS ATBIT_MSK_NP |
|
#define | AA_HARD_TYP_POS ATTYP_N |
|
#define | AA_HARD_MSK_NEG ((ATBIT_MSK_NP | ATBIT_MSK_OS) & ~(ATBIT_CO | ATBIT_NO )) |
|
#define | AA_HARD_TYP_NEG (ATTYP_N | ATTYP_OS) |
|
#define | AA_HARD_MSK_CO (ATBIT_CO | ATBIT_NO ) |
|
#define | AA_HARD_TYP_CO (ATT_ACIDIC_CO | ATT_NO) |
|
#define | AA_HARD_MSK_H (ATBIT_MSK_NP | ATBIT_MSK_OS) |
|
#define | AA_HARD_TYP_H (ATTYP_N | ATTYP_OS) |
|
#define | BNS_MAX_NUM_FLOW_CHANGES (1+2*MAX_BOND_EDGE_CAP) |
|
#define | TREE_NOT_IN_M 0 /* not in T or T' */ |
|
#define | TREE_IN_2 1 /* in T' and not s-reachable */ |
|
#define | TREE_IN_2BLOSS 2 /* in T' and in a blossom, is s-reachable */ |
|
#define | TREE_IN_1 3 /* in T and is s-reachable */ |
|
#define | TREE_IS_S_REACHABLE(X) (Tree[X] >= TREE_IN_2BLOSS) |
|
#define | TREE_IS_ON_SCANQ TREE_IS_S_REACHABLE |
|
#define | TREE_MARK(X, MARK) do{ if( Tree[X] < MARK ) Tree[X]=MARK; }while(0) |
|
#define | prim(v) (Vertex)((v)^1) |
|
#define | SwitchEdge_Vert1(u) SwitchEdge[u][0] |
|
#define | SwitchEdge_Vert2(u) Get2ndEdgeVertex( pBNS, SwitchEdge[u] ) |
|
#define | SwitchEdge_IEdge(u) SwitchEdge[u][1] |
|
#define | MAX_NEIGH 6 |
|
#define | ALL_NONMETAL_Z 0 |
|
#define | BNS_CHK_ALTP_NO_ALTPATH 0 |
|
#define | BNS_CHK_ALTP_SAME_TGROUP 1 |
|
#define | BNS_CHK_ALTP_SAME_VERTEX 2 |
|
#define | BNS_CHK_ALTP_SET_SUCCESS 4 |
|
#define | ALT_PATH_TAUTOM 1 |
|
#define | ALT_PATH_CHARGE 2 |
|
#define | ALT_PATH_4_SALT 3 |
|
#define | MAX_NUM_RAD 256 |
|
#define | CHECK_TACN 1 |
|
#define | BT_ALTERN_BOND 1 /* 1-2, possibly stereo */ |
|
#define | BT_OTHER_ALTERN_BOND 2 /* 1-3, 2-3, 1-2-3 alternating non-stereo non-taut bonds */ |
|
#define | BT_ALTERN_NS_BOND 4 |
|
#define | BT_TAUTOM_BOND 8 |
|
#define | BT_ALTERN_UNKN_BOND 16 |
|
#define | BT_IGNORE_BOND 0 |
|
#define | BT_NONSTEREO_MASK (BT_TAUTOM_BOND|BT_ALTERN_NS_BOND) |
|
#define | BT_ALT_BOND_MASK (BT_ALTERN_BOND|BT_OTHER_ALTERN_BOND) |
|
#define | BT_NONTAUT_BOND_MASK (BT_ALTERN_BOND|BT_OTHER_ALTERN_BOND|BT_ALTERN_NS_BOND) |
|
#define | nBlockNumberAltBns flow /* internal variable of the DFS traversal: mark traversed bonds */ |
|
#define | nNumAtInBlockAltBns cap |
|
#define | nBondTypeInpAltBns pass /* 0=>cannot be stereo at all, 1=>alt or taut non-stereo, 2=>can be stereo */ |
|
#define | nBondNonStereoAltBns cap /* 1=>found to be non-stereogenic although BondTypeInp=2; 0=>as in BondTypeInp */ |
|
#define | bCutVertexAltBns st_edge.cap0 /* cut-vertex flag */ |
|
#define | nRingSystemAltBns st_edge.cap /* ordering number of a ring system */ |
|
#define | nNumAtInRingSystemAltBns st_edge.flow0 /* number of vertices in a ring system */ |
|
#define | nBlockSystemAltBns st_edge.flow /* result of the DFS traversal: even cirquit must be within one block */ |
|
#define | valenceAltBns num_adj_edges |
|
#define | RI_ERR_ALLOC (-1) |
|
#define | RI_ERR_SYNTAX (-2) |
|
#define | RI_ERR_PROGR (-3) |
|
|
int | RestoreRadicalsOnly (BN_STRUCT *pBNS, BN_DATA *pBD, inp_ATOM *at) |
|
int | bRadChangesAtomType (BN_STRUCT *pBNS, BN_DATA *pBD, Vertex v, Vertex v_1, Vertex v_2) |
|
int | BnsAdjustFlowBondsRad (BN_STRUCT *pBNS, BN_DATA *pBD, inp_ATOM *at, int num_atoms) |
|
int | SetAtomRadAndChemValFromVertexCapFlow (BN_STRUCT *pBNS, inp_ATOM *atom, int v1) |
|
int | bNeedToTestTheFlow (int bond_type, int nTestFlow, int bTestForNonStereoBond) |
|
int | RestoreEdgeFlow (BNS_EDGE *edge, int delta, int bChangeFlow) |
|
int | SetAtomBondType (BNS_EDGE *edge, U_CHAR *bond_type12, U_CHAR *bond_type21, int delta, int bChangeFlow) |
|
int | RestoreBnStructFlow (BN_STRUCT *pBNS, int bChangeFlow) |
|
int | CompTGroupNumber (const void *tg1, const void *tg2, void *p) |
|
int | CompCGroupNumber (const void *cg1, const void *cg2, void *p) |
|
int | ReInitBnStructForAltBns (BN_STRUCT *pBNS, inp_ATOM *at, int num_atoms, int bUnknAltAsNoStereo) |
|
int | MarkRingSystemsAltBns (BN_STRUCT *pBNS, int bUnknAltAsNoStereo) |
|
int | MarkNonStereoAltBns (BN_STRUCT *pBNS, inp_ATOM *at, int num_atoms, int bUnknAltAsNoStereo) |
|
int | GetVertexDegree (BN_STRUCT *pBNS, Vertex v) |
|
Vertex | Get2ndEdgeVertex (BN_STRUCT *pBNS, Edge uv) |
|
Vertex | GetVertexNeighbor (BN_STRUCT *pBNS, Vertex v, int neigh, EdgeIndex *iedge) |
|
int | GetEdgePointer (BN_STRUCT *pBNS, Vertex u, Vertex v, EdgeIndex iuv, BNS_EDGE **uv, S_CHAR *s_or_t) |
|
int | AugmentEdge (BN_STRUCT *pBNS, Vertex u, Vertex v, EdgeIndex iuv, int delta, S_CHAR bReverse, int bChangeFlow) |
|
int | rescap_mark (BN_STRUCT *pBNS, Vertex u, Vertex v, EdgeIndex iuv) |
|
int | rescap (BN_STRUCT *pBNS, Vertex u, Vertex v, EdgeIndex iuv) |
|
Vertex | FindBase (Vertex u, Vertex *BasePtr) |
|
int | FindPathToVertex_s (Vertex x, Edge *SwitchEdge, Vertex *BasePtr, Vertex *Path, int MaxPathLen) |
|
Vertex | MakeBlossom (BN_STRUCT *pBNS, Vertex *ScanQ, int *pQSize, Vertex *Pu, Vertex *Pv, int max_len_Pu_Pv, Edge *SwitchEdge, Vertex *BasePtr, Vertex u, Vertex v, EdgeIndex iuv, Vertex b_u, Vertex b_v, S_CHAR *Tree) |
|
int | PullFlow (BN_STRUCT *pBNS, Edge *SwitchEdge, Vertex x, Vertex y, int delta, S_CHAR bReverse, int bChangeFlow) |
|
int | FindPathCap (BN_STRUCT *pBNS, Edge *SwitchEdge, Vertex x, Vertex y, int delta) |
|
int | SetBondsFromBnStructFlow (BN_STRUCT *pBNS, inp_ATOM *at, int num_atoms, int bChangeFlow0) |
|
int | MarkAtomsAtTautGroups (BN_STRUCT *pBNS, int num_atoms, BN_AATG *pAATG, int nEnd1, int nEnd2) |
|
int | nMinFlow2Check (BN_STRUCT *pBNS, int iedge) |
|
int | nMaxFlow2Check (BN_STRUCT *pBNS, int iedge) |
|
int | nCurFlow2Check (BN_STRUCT *pBNS, int iedge) |
|
int | bSetFlowToCheckOneBond (BN_STRUCT *pBNS, int iedge, int flow, BNS_FLOW_CHANGES *fcd) |
|
int | bRestoreFlowAfterCheckOneBond (BN_STRUCT *pBNS, BNS_FLOW_CHANGES *fcd) |
|
int | bSetBondsAfterCheckOneBond (BN_STRUCT *pBNS, BNS_FLOW_CHANGES *fcd, int nTestFlow, inp_ATOM *at, int num_atoms, int bChangeFlow) |
|
int | BnsTestAndMarkAltBonds (BN_STRUCT *pBNS, BN_DATA *pBD, inp_ATOM *at, int num_atoms, BNS_FLOW_CHANGES *fcd, int bChangeFlow, int nBondTypeToTest) |
|
int | fix_special_bonds (BN_STRUCT *pBNS, inp_ATOM *at, int num_atoms, int edge_forbidden_mask) |
|
int | TempFix_NH_NH_Bonds (BN_STRUCT *pBNS, inp_ATOM *at, int num_atoms) |
|
int | CorrectFixing_NH_NH_Bonds (BN_STRUCT *pBNS, inp_ATOM *at, int num_atoms) |
|
int | fix_explicitly_indicated_bonds (int nebend, int *ebend, BN_STRUCT *pBNS, inp_ATOM *at, int num_atoms) |
|
int | bSetBnsToCheckAltPath (BN_STRUCT *pBNS, int nVertDoubleBond, int nVertSingleBond, AT_NUMB type, int path_type, ALT_PATH_CHANGES *apc, BNS_FLOW_CHANGES *fcd, int *nDots) |
|
int | bRestoreBnsAfterCheckAltPath (BN_STRUCT *pBNS, ALT_PATH_CHANGES *apc, int bChangeFlow) |
|
Vertex | GetGroupVertex (BN_STRUCT *pBNS, Vertex v1, AT_NUMB type) |
|
BNS_IEDGE | GetEdgeToGroupVertex (BN_STRUCT *pBNS, Vertex v1, AT_NUMB type) |
|
int | bAddNewVertex (BN_STRUCT *pBNS, int nVertDoubleBond, int nCap, int nFlow, int nMaxAdjEdges, int *nDots) |
|
int | AddNewEdge (BNS_VERTEX *p1, BNS_VERTEX *p2, BN_STRUCT *pBNS, int nEdgeCap, int nEdgeFlow) |
|
int | bAddStCapToAVertex (BN_STRUCT *pBNS, Vertex v1, Vertex v2, VertexFlow *nOldCapVertSingleBond, int *nDots, int bAdjacentDonors) |
|
static void | remove_alt_bond_marks (inp_ATOM *at, int num_atoms) |
|
int | bIsBnsEndpoint (BN_STRUCT *pBNS, int v) |
|
int | mark_at_type (inp_ATOM *atom, int num_atoms, int nAtTypeTotals[]) |
|
int | GetAtomChargeType (inp_ATOM *atom, int at_no, int nAtTypeTotals[], int *pMask, int bSubtract) |
|
int | AddChangedAtHChargeBNS (inp_ATOM *at, int num_atoms, int nAtTypeTotals[], S_CHAR *mark) |
|
int | EliminatePlusMinusChargeAmbiguity (BN_STRUCT *pBNS, int num_atoms) |
|
int | AddOrRemoveExplOrImplH (int nDelta, inp_ATOM *at, int num_atoms, AT_NUMB at_no, T_GROUP_INFO *t_group_info) |
|
int | SubtractOrChangeAtHChargeBNS (BN_STRUCT *pBNS, inp_ATOM *at, int num_atoms, int nAtTypeTotals[], S_CHAR *mark, T_GROUP_INFO *t_group_info, int bSubtract) |
|
int | is_Z_atom (U_CHAR el_number) |
|
int | IsZOX (inp_ATOM *atom, int at_x, int ord) |
|
int | SimpleRemoveHplusNPO (inp_ATOM *at, int num_atoms, int nAtTypeTotals[], T_GROUP_INFO *t_group_info) |
|
int | CreateCGroupInBnStruct (inp_ATOM *at, int num_atoms, BN_STRUCT *pBNS, int nType, int nMask, int nCharge) |
|
int | CreateTGroupInBnStruct (inp_ATOM *at, int num_atoms, BN_STRUCT *pBNS, int nType, int nMask) |
|
int | RemoveLastGroupFromBnStruct (inp_ATOM *at, int num_atoms, int tg, BN_STRUCT *pBNS) |
|
int | SetInitCapFlowToCurrent (BN_STRUCT *pBNS) |
|
int | SimpleRemoveAcidicProtons (inp_ATOM *at, int num_atoms, BN_AATG *pAATG, int num2remove) |
|
int | SimpleAddAcidicProtons (inp_ATOM *at, int num_atoms, BN_AATG *pAATG, int num2add) |
|
int | HardRemoveAcidicProtons (struct tagCANON_GLOBALS *pCG, inp_ATOM *at, int num_atoms, BN_AATG *pAATG, int num2remove, int *nNumCanceledCharges, BN_STRUCT *pBNS, BN_DATA *pBD) |
|
int | HardAddAcidicProtons (struct tagCANON_GLOBALS *pCG, inp_ATOM *at, int num_atoms, BN_AATG *pAATG, int num2add, int *nNumCanceledCharges, BN_STRUCT *pBNS, BN_DATA *pBD) |
|
int | HardRemoveHplusNP (struct tagCANON_GLOBALS *pCG, inp_ATOM *at, int num_atoms, int bCancelChargesAlways, int *nNumCanceledCharges, BN_AATG *pAATG, BN_STRUCT *pBNS, BN_DATA *pBD) |
|
int | RemoveNPProtonsAndAcidCharges (struct tagCANON_GLOBALS *pCG, inp_ATOM *at, int num_atoms, BN_AATG *pAATG, BN_STRUCT *pBNS, BN_DATA *pBD) |
|
Vertex | GetPrevVertex (BN_STRUCT *pBNS, Vertex y, Edge *SwitchEdge, EdgeIndex *iuv) |
|
int | bIgnoreVertexNonTACN_atom (BN_STRUCT *pBNS, Vertex u, Vertex v) |
|
int | bIgnoreVertexNonTACN_group (BN_STRUCT *pBNS, Vertex v, Vertex w, Edge *SwitchEdge) |
|
int | bIsRemovedHfromNHaion (BN_STRUCT *pBNS, Vertex u, Vertex v) |
|
int | bIsAggressiveDeprotonation (BN_STRUCT *pBNS, Vertex v, Vertex w, Edge *SwitchEdge) |
|
int | bIsAtomTypeHard (inp_ATOM *at, int endpoint, int nType, int nMask, int nCharge) |
|
int | bIsHDonorAccAtomType (inp_ATOM *at, int endpoint, int *cSubType) |
|
int | bIsNegAtomType (inp_ATOM *at, int i, int *cSubType) |
|
int | RegisterRadEndpoint (BN_STRUCT *pBNS, BN_DATA *pBD, Vertex u) |
|
int | cmp_rad_endpoints (const void *a1, const void *a2) |
|
int | cmp_endpoints_rad (const void *a1, const void *a2) |
|
int | bHasChargedNeighbor (inp_ATOM *at, int iat) |
|
int | RunBalancedNetworkSearch (BN_STRUCT *pBNS, BN_DATA *pBD, int bChangeFlow) |
|
int | nBondsValenceInpAt (const inp_ATOM *at, int *nNumAltBonds, int *nNumWrongBonds) |
|
int | SetForbiddenEdges (BN_STRUCT *pBNS, inp_ATOM *at, int num_atoms, int forbidden_mask, int nebend, int *ebend) |
|
void | update_some_attype_totals (int nAtTypeTotals[], int mask, int delta, S_CHAR at_charge) |
|
int | bIsHardRemHCandidate (inp_ATOM *at, int i, int *cSubType) |
|
int | bHasAcidicHydrogen (inp_ATOM *at, int i) |
|
int | bHasOtherExchangableH (inp_ATOM *at, int i) |
|
int | bHasAcidicMinus (inp_ATOM *at, int i) |
|
int | mark_alt_bonds_and_taut_groups (struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *pCG, inp_ATOM *at, inp_ATOM *at_fixed_bonds_out, int num_atoms, struct tagInchiTime *ulTimeOutTime, T_GROUP_INFO *t_group_info, INCHI_MODE *inpbTautFlags, INCHI_MODE *inpbTautFlagsDone, int nebend, int *ebend) |
|
int | bExistsAnyAltPath (CANON_GLOBALS *pCG, BN_STRUCT *pBNS, BN_DATA *pBD, inp_ATOM *at, int num_atoms, int nVert2, int nVert1, int path_type) |
|
int | RemoveRadEndpoints (BN_STRUCT *pBNS, BN_DATA *pBD, inp_ATOM *at) |
|
int | SetRadEndpoints (BN_STRUCT *pBNS, BN_DATA *pBD, BRS_MODE bRadSrchMode) |
|
int | SetRadEndpoints2 (CANON_GLOBALS *pCG, BN_STRUCT *pBNS, BN_DATA *pBD, BRS_MODE bRadSrchMode) |
|
int | bExistsAltPath (CANON_GLOBALS *pCG, BN_STRUCT *pBNS, BN_DATA *pBD, BN_AATG *pAATG, inp_ATOM *at, int num_atoms, int nVertDoubleBond, int nVertSingleBond, int path_type) |
|
BN_STRUCT * | AllocateAndInitBnStruct (inp_ATOM *at, int num_atoms, int nMaxAddAtoms, int nMaxAddEdges, int max_altp, int *pNum_changed_bonds) |
|
BN_STRUCT * | DeAllocateBnStruct (BN_STRUCT *pBNS) |
|
int | ReInitBnStructAltPaths (BN_STRUCT *pBNS) |
|
int | ReInitBnStructAddGroups (CANON_GLOBALS *pCG, BN_STRUCT *pBNS, inp_ATOM *at, int num_atoms, T_GROUP_INFO *tgi, C_GROUP_INFO *cgi) |
|
int | ReInitBnStruct (BN_STRUCT *pBNS, inp_ATOM *at, int num_at, int bRemoveGroupsFromAtoms) |
|
int | AddTGroups2BnStruct (CANON_GLOBALS *pCG, BN_STRUCT *pBNS, inp_ATOM *at, int num_atoms, T_GROUP_INFO *tgi) |
|
int | AddCGroups2BnStruct (CANON_GLOBALS *pCG, BN_STRUCT *pBNS, inp_ATOM *at, int num_atoms, C_GROUP_INFO *cgi) |
|
void | ClearAllBnDataVertices (Vertex *v, Vertex value, int size) |
|
void | ClearAllBnDataEdges (Edge *e, Vertex value, int size) |
|
BN_DATA * | DeAllocateBnData (BN_DATA *pBD) |
|
BN_DATA * | AllocateAndInitBnData (int max_num_vertices) |
|
int | ReInitBnData (BN_DATA *pBD) |
|
int | BalancedNetworkSearch (BN_STRUCT *pBNS, BN_DATA *pBD, int bChangeFlow) |
|
int | AddRemoveProtonsRestr (inp_ATOM *at, int num_atoms, int *num_protons_to_add, int nNumProtAddedByRestr, INCHI_MODE bNormalizationFlags, int num_tg, int nChargeRevrs, int nChargeInChI) |
|
int | AddRemoveIsoProtonsRestr (inp_ATOM *at, int num_atoms, NUM_H num_protons_to_add[], int num_tg) |
|