Go to the source code of this file.
Data Structures | |
struct | tagXYZCoord |
struct | tagStructRestoreMode |
struct | tagReversedInChI |
struct | tagBfsQueue |
struct | tagInpAtomAddParities |
struct | tagAtomIonPrperies |
struct | tagTCGroup |
struct | tagAllTCGroups |
struct | tagEdgeList |
struct | tagChargeValence |
struct | tagChargeChangeCandidate |
struct | tagOneComponentRemovedAndExchangeableH |
struct | tagRemovedAndExchangeableH |
struct | tagInputInChI |
struct | tagStructFromInChI |
struct | tagVertCapFlow |
struct | tagEdgeCapFlow |
struct | tagChargeNodes |
struct | tagChargeNodeList |
struct | tagAtomsCmpTwoFixedH |
struct | tagStructCmpTwoFixedH |
struct | tagAtomsCmpTwoMobileH |
struct | tagStructCmpTwoMobileH |
Macros | |
#define | ICHICONST const |
#define | RI_ERR_ALLOC (-1) |
#define | RI_ERR_SYNTAX (-2) |
#define | RI_ERR_PROGR (-3) |
#define | RI_ERR_EOL (-4) |
#define | RI_ERR_EOF (0) |
#define | RI_ERR_MISMATCH (-9) |
#define | NO_VALUE_INT 9999 |
#define | NOT_READ_INT 9998 /* has not been read yet */ |
#define | VALUE_OCTET 8 /* number of electrons in a full shell */ |
#define | INC_EDGE_LIST_DEFAULT 64 |
#define | BFS_Q_CLEAR (-1) |
#define | BFS_Q_FREE (-2) |
#define | EXTRACT_STRUCT_NUMBER 1 |
#define | FIX_STEREO_BOND_ORDER 0 /* 1=> fix stereobonds; treat metal as non-metal if it is stereogenic or has a stereobond */ |
#define | METAL_FREE_CHARGE_VAL 1 /* 1=> allow free changing charges/valences of metals; initial bond order=0 or 1 */ |
#define | ALLOW_METAL_BOND_ZERO 1 /* 1=> allow zero flow (bobd order) to metals */ |
#define | INIT_METAL_BOND_ZERO 0 /* 1=> initialize zero order bond to metals */ |
#define | INIT_METAL_BOND_FLOW 1 /* 1=> init flow=1, 0 => init. flow = 0 */ |
#define | I2A_FLAG_FIXEDH 0x0001 |
#define | I2A_FLAG_RECMET 0x0002 |
#define | ATYPE_H 1 |
#define | ATYPE_Na 2 |
#define | ATYPE_Mg 3 |
#define | ATYPE_B 4 |
#define | ATYPE_C 5 |
#define | ATYPE_N 6 |
#define | ATYPE_O 7 |
#define | ATYPE_Cl 8 |
#define | VAL_BASE ( 1) |
#define | VAL_MIN_CHARGE (-1) |
#define | VAL_MAX_CHARGE ( 1) |
#define | VAL_NUMBER ( 2) |
#define | VAL_NEUTR_ORDER (VAL_MAX_CHARGE-VAL_MIN_CHARGE+1) |
#define | VAL_LENGTH (VAL_NEUTR_ORDER+1) |
#define | VAL_NEGAT_CHARGE 0 |
#define | VAL_NEUTR_CHARGE 1 |
#define | VAL_POSIT_CHARGE 2 |
#define | INI_NUM_TCGROUPS 16 |
#define | INC_NUM_TCGROUPS 16 |
#define | EDGE_LIST_CLEAR (-1) |
#define | EDGE_LIST_FREE (-2) |
#define | BOND_MARK_STEREO 0x10 |
#define | BOND_TYPE_STEREO (BOND_TYPE_SINGLE | BOND_MARK_STEREO) |
#define | RESET_EDGE_FORBIDDEN_MASK 0 |
#define | TREAT_ATOM_AS_METAL 99 |
#define | MY_CONST const |
#define | EL_TYPE_O 0x0001 |
#define | EL_TYPE_S 0x0002 |
#define | EL_TYPE_N 0x0004 |
#define | EL_TYPE_P 0x0008 |
#define | EL_TYPE_C 0x0010 |
#define | EL_TYPE_X 0x0020 /* any not metal */ |
#define | EL_TYPE_MASK 0x003f |
#define | EL_TYPE_OSt 0x0100 /* terminal -OH, -O(-), -SH, -S(-), ... from fix_special_bonds(...) */ |
#define | EL_TYPE_PT 0x0200 /* may be a tautomeric endpoint */ |
#define | MAX_CN_VAL 3 |
#define | cn_bits_N 1 /* Neutral: charge = 0 */ |
#define | cn_bits_P 2 /* Plus 1: charge = +1 */ |
#define | cn_bits_M 4 /* Minus 1: charge = -1 */ |
#define | cn_bits_shift 3 |
#define | MAX_NUM_CN_BITS 4 |
#define | MAKE_CN_BITS(A, B, C, D) (( (( ((D) << cn_bits_shift | (C)) << cn_bits_shift ) | (B)) << cn_bits_shift ) | (A)) |
#define | cn_bits_PNPN MAKE_CN_BITS(cn_bits_P, cn_bits_N, cn_bits_P, cn_bits_N) |
#define | cn_bits_NPNP MAKE_CN_BITS(cn_bits_N, cn_bits_P, cn_bits_N, cn_bits_P) |
#define | cn_bits_NPN MAKE_CN_BITS(cn_bits_N, cn_bits_P, cn_bits_N, 0) |
#define | cn_bits_PNP MAKE_CN_BITS(cn_bits_P, cn_bits_N, cn_bits_P, 0) |
#define | cn_bits_MNP MAKE_CN_BITS(cn_bits_M, cn_bits_N, cn_bits_P, 0) |
#define | cn_bits_PNM MAKE_CN_BITS(cn_bits_P, cn_bits_N, cn_bits_M, 0) |
#define | cn_bits_EN MAKE_CN_BITS(cn_bits_P | cn_bits_M, cn_bits_N, 0, 0) |
#define | cn_bits_NMN MAKE_CN_BITS(cn_bits_N, cn_bits_M, cn_bits_N, 0) |
#define | cn_bits_NE MAKE_CN_BITS(cn_bits_N, cn_bits_P | cn_bits_M, 0, 0) |
#define | cn_bits_NEN MAKE_CN_BITS(cn_bits_N, cn_bits_M | cn_bits_N, cn_bits_N, 0) |
#define | cn_bits_NP MAKE_CN_BITS(cn_bits_N, cn_bits_P, 0, 0) |
#define | cn_bits_PN MAKE_CN_BITS(cn_bits_P, cn_bits_N, 0, 0) |
#define | cn_bits_NM MAKE_CN_BITS(cn_bits_N, cn_bits_M, 0, 0) |
#define | cn_bits_MN MAKE_CN_BITS(cn_bits_M, cn_bits_N, 0, 0) |
#define | cn_bits_P_ MAKE_CN_BITS(cn_bits_P, 0, 0, 0) |
#define | cn_bits_M_ MAKE_CN_BITS(cn_bits_M, 0, 0, 0) |
#define | cn_bits_N_ MAKE_CN_BITS(cn_bits_N, 0, 0, 0) |
#define | cn_bits_Me (-1) |
#define | cnListIndexMe (17) /* index of {cnMe, cn_bits_Me,... } element of cnList[] */ |
#define | MAX_DIFF_FIXH 256 |
#define | MAX_DIFF_MOBH 256 |
#define | KEEP_METAL_EDGE_FLOW 0 /* counterexample: mdb0-1738.sdf.txt */ |
#define | MOVE_CHARGES_FROM_HETEREO_TO_METAL 0 /* disabled */ |
#define | FIX_ADD_PROTON_FOR_ADP 0 /* not used */ |
Enumerations | |
enum | tagTgRestoreFlags { TGRF_MINUS_FIRST = 1 } |
enum | tagTCGroupTypes { TCG_None = -1 , TCG_Plus0 = 0 , TCG_Plus1 , TCG_Minus0 , TCG_Minus1 , TCG_Plus_C0 , TCG_Plus_C1 , TCG_Minus_C0 , TCG_Minus_C1 , TCG_Plus_M0 , TCG_Plus_M1 , TCG_Minus_M0 , TCG_Minus_M1 , TCG_MeFlower0 , TCG_MeFlower1 , TCG_MeFlower2 , TCG_MeFlower3 , TCG_Plus , TCG_Minus , NUM_TCGROUP_TYPES } |
Functions | |
int | OneInChI2Atom (struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *pCG, ICHICONST INPUT_PARMS *ip, STRUCT_DATA *sd, const char *szCurHdr, long num_inp, StrFromINChI *pStruct, int iComponent, int iAtNoOffset, int bHasSomeFixedH, INChI *pInChI[]) |
int | get_sp_element_type (int nPeriodicNumber, int *nRow) |
int | get_bonds_valences (int nPeriodicNum, int bonds_valence, int num_H, VAL_AT *pVA) |
int | AddExplicitDeletedH (inp_ATOM *at, int jv, int num_at, int *iDeletedH, int *iH, int nNumDeletedH, int bTwoStereo) |
int | bFindCumuleneChain (inp_ATOM *at, AT_NUMB i1, AT_NUMB i2, AT_NUMB nCumulene[], int nMaxLen) |
int | set_bond_type (inp_ATOM *at, AT_NUMB i1, AT_NUMB i2, int bType) |
int | set_cumulene_0D_parity (inp_ATOM *at, inp_ATOM_STEREO *st, int num_at, int idelH1, int i1, int i2, int idelH2, int parity, int len) |
int | set_atom_0D_parity (inp_ATOM *at, inp_ATOM_STEREO *st, int num_at, int num_deleted_H, int i1, int parity) |
int | GetTgroupInfoFromInChI (T_GROUP_INFO *ti, inp_ATOM *at, AT_NUMB *endpoint, INChI *pInChI) |
int | FillOutpStructEndpointFromInChI (INChI *pInChI, AT_NUMB **pEndpoint) |
int | SetStereoBondTypeFor0DParity (inp_ATOM *at, int i1, int m1) |
int | SetStereoBondTypesFrom0DStereo (StrFromINChI *pStruct, INChI *pInChI) |
void | CopyAt2St (inp_ATOM *at, inp_ATOM_STEREO *st, int num_atoms) |
void | CopySt2At (inp_ATOM *at, inp_ATOM_STEREO *st, int num_atoms) |
int | RestoreAtomConnectionsSetStereo (StrFromINChI *pStruct, int iComponent, int iAtNoOffset, INChI *pInChI, INChI *pInChIMobH) |
int | RestoreAtomMakeBNS (struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *pCG, ICHICONST INPUT_PARMS *ip, STRUCT_DATA *sd, StrFromINChI *pStruct, int iComponent, int iAtNoOffset, INChI *pInChI[], const char *szCurHdr, long num_inp, int bHasSomeFixedH) |
int | nAddSuperCGroups (ALL_TC_GROUPS *pTCGroups) |
int | AddCGroups2TCGBnStruct (BN_STRUCT *pBNS, StrFromINChI *pStruct, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int nMaxAddEdges) |
int | AddTGroups2TCGBnStruct (BN_STRUCT *pBNS, StrFromINChI *pStruct, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int nMaxAddEdges) |
BN_STRUCT * | AllocateAndInitTCGBnStruct (StrFromINChI *pStruct, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int nMaxAddAtoms, int nMaxAddEdges, int max_altp, int *pNum_changed_bonds) |
int | nCountBnsSizes (inp_ATOM *at, int num_at, int nAddEdges2eachAtom, int nAddVertices, T_GROUP_INFO *ti, VAL_AT *pVA, ICHICONST SRM *pSrm, ALL_TC_GROUPS *pTCGroups) |
int | GetAtomRestoreInfo (struct tagCANON_GLOBALS *pCG, inp_ATOM *atom, int iat, VAL_AT *pVArray, ICHICONST SRM *pSrm, int bMobileH, AT_NUMB *endpoint) |
int | AddEdgeFlow (int edge_cap, int edge_flow, BNS_EDGE *e01, BNS_VERTEX *pv0, BNS_VERTEX *pv1, int *tot_st_cap, int *tot_st_flow) |
void | SetEdgeCapFlow (BNS_EDGE *e, int edge_cap, int edge_flow) |
void | AddStCapFlow (BNS_VERTEX *vert_ficpoint, int *tot_st_flow, int *tot_st_cap, int cap, int flow) |
void | SetStCapFlow (BNS_VERTEX *vert_ficpoint, int *tot_st_flow, int *tot_st_cap, int cap, int flow) |
int | ConnectSuperCGroup (int nTCG_Plus, int nAddGroups[], int num_add, int *pcur_num_vertices, int *pcur_num_edges, int *tot_st_cap, int *tot_st_flow, BN_STRUCT *pBNS, ALL_TC_GROUPS *pTCGroups) |
int | ConnectTwoVertices (BNS_VERTEX *p1, BNS_VERTEX *p2, BNS_EDGE *e, BN_STRUCT *pBNS, int bClearEdge) |
int | nTautEndpointEdgeCap (inp_ATOM *at, VAL_AT *pVA, int i) |
int | AtomStcapStflow (inp_ATOM *atom, VAL_AT *pVA, ICHICONST SRM *pSrm, int iat, int *pnStcap, int *pnStflow, EdgeFlow *pnMGroupEdgeCap, EdgeFlow *pnMGroupEdgeFlow) |
int | BondFlowMaxcapMinorder (inp_ATOM *atom, VAL_AT *pVA, ICHICONST SRM *pSrm, int iat, int ineigh, int *pnMaxcap, int *pnMinorder, int *pbNeedsFlower) |
int | clean_charge_val (struct tagCANON_GLOBALS *pCG, CHARGE_VAL *pChargeVal, int len, inp_ATOM *atom, VAL_AT *pVA, int iat, int bIsMetal, int bMobileH, AT_NUMB *endpoint) |
int | ReallocTCGroups (ALL_TC_GROUPS *pTCGroups, int nAdd) |
int | RegisterTCGroup (ALL_TC_GROUPS *pTCGroups, int nGroupType, int nGroupOrdNum, int nVertexCap, int nVertexFlow, int nEdgeCap, int nEdgeFlow, int nNumEdges) |
int | CopyBnsToAtom (StrFromINChI *pStruct, BN_STRUCT *pBNS, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int bAllowZeroBondOrder) |
int | CheckBnsConsistency (StrFromINChI *pStruct, BN_STRUCT *pBNS, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int bNoRad) |
int | RunBnsRestore1 (struct tagCANON_GLOBALS *pCG, struct tagINCHI_CLOCK *ic, ICHICONST INPUT_PARMS *ip, STRUCT_DATA *sd, BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, INChI *pInChI[], long num_inp, int bHasSomeFixedH) |
int | RunBnsRestoreOnce (BN_STRUCT *pBNS, BN_DATA *pBD, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups) |
int | nNumEdgesToCnVertex (MY_CONST C_NODE *pCN, int len, int v) |
int | ConnectMetalFlower (int *pcur_num_vertices, int *pcur_num_edges, int *tot_st_cap, int *tot_st_flow, ICHICONST SRM *pSrm, BN_STRUCT *pBNS, ALL_TC_GROUPS *pTCGroups) |
int | AddRadicalToMetal (int *tot_st_cap, int *tot_st_flow, ICHICONST SRM *pSrm, BN_STRUCT *pBNS, ALL_TC_GROUPS *pTCGroups) |
int | bMayBeACationInMobileHLayer (inp_ATOM *at, VAL_AT *pVA, int iat, int bMobileH) |
int | MakeOneInChIOutOfStrFromINChI (struct tagCANON_GLOBALS *pCG, struct tagINCHI_CLOCK *ic, ICHICONST INPUT_PARMS *ip, STRUCT_DATA *sd, StrFromINChI *pStruct, inp_ATOM *at2, inp_ATOM *at3, ALL_TC_GROUPS *pTCGroups) |
void | IncrZeroBondsAndClearEndpts (inp_ATOM *at, int num_at, int iComponent) |
void | IncrZeroBonds (inp_ATOM *at, int num_at, int iComponent) |
void | ClearEndpts (inp_ATOM *at, int num_at) |
int | DisplayRestoredComponent (struct tagCANON_GLOBALS *pCG, StrFromINChI *pStruct, int iComponent, int iAtNoOffset, INChI *pInChI, const char *szCurHdr) |
int | cmp_charge_val (const void *a1, const void *a2, void *) |
int | EvaluateChargeChanges (BN_STRUCT *pBNS, VAL_AT *pVA, int *pnDeltaH, int *pnDeltaCharge, int *pnNumVisitedAtoms) |
int | RunBnsTestOnce (BN_STRUCT *pBNS, BN_DATA *pBD, VAL_AT *pVA, Vertex *pvFirst, Vertex *pvLast, int *pPathLen, int *pnDeltaH, int *pnDeltaCharge, int *pnNumVisitedAtoms) |
int | comp_cc_cand (const void *a1, const void *a2) |
int | MoveRadToAtomsAddCharges (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int forbidden_mask) |
void | RemoveForbiddenBondFlowBits (BN_STRUCT *pBNS, int forbidden_edge_mask_int) |
int | PlusFromDB_N_DB_O_to_Metal (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | AdjustTgroupsToForbiddenEdges2 (BN_STRUCT *pBNS, inp_ATOM *at, VAL_AT *pVA, int num_atoms, int forbidden_mask) |
int | AllocEdgeList (EDGE_LIST *pEdges, int nLen) |
int | AddToEdgeList (EDGE_LIST *pEdges, int iedge, int nAddLen) |
int | RemoveFromEdgeListByIndex (EDGE_LIST *pEdges, int index) |
int | RemoveFromEdgeListByValue (EDGE_LIST *pEdges, int iedge) |
int | FindInEdgeList (EDGE_LIST *pEdges, int iedge) |
int | AllocBfsQueue (BFS_Q *pQ, int num_at, int min_ring_size) |
void | RemoveForbiddenEdgeMask (BN_STRUCT *pBNS, EDGE_LIST *pEdges, int forbidden_edge_mask) |
void | SetForbiddenEdgeMask (BN_STRUCT *pBNS, EDGE_LIST *pEdges, int forbidden_edge_mask) |
int | ForbidCarbonChargeEdges (BN_STRUCT *pBNS, ALL_TC_GROUPS *pTCGroups, EDGE_LIST *pCarbonChargeEdges, int forbidden_edge_mask) |
int | ForbidMetalCarbonEdges (BN_STRUCT *pBNS, inp_ATOM *at, int num_at, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, EDGE_LIST *pMetalCarbonEdges, int forbidden_edge_mask) |
int | ForbidNintrogenPlus2BondsInSmallRings (BN_STRUCT *pBNS, inp_ATOM *at, int num_at, VAL_AT *pVA, int min_ring_size, ALL_TC_GROUPS *pTCGroups, EDGE_LIST *pNplus2BondsEdges, int forbidden_edge_mask) |
int | RearrangePlusMinusEdgesFlow (BN_STRUCT *pBNS, BN_DATA *pBD, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int forbidden_edge_mask) |
int | IncrementZeroOrderBondsToHeteroat (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | MoveChargeFromHeteroatomsToMetals (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | EliminateChargeSeparationOnHeteroatoms (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask, int forbidden_stereo_edge_mask) |
int | MovePlusFromS2DiaminoCarbon (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | RestoreCyanoGroup (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | RestoreIsoCyanoGroup (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | RestoreNNNgroup (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | FixMetal_Nminus_Ominus (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | EliminateNitrogen5Val3Bonds (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | Convert_SIV_to_SVI (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | MoveMobileHToAvoidFixedBonds (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | RemoveRadFromMobileHEndpoint (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | RemoveRadFromMobileHEndpointFixH (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | MoveChargeToMakeCenerpoints (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | CheckAndRefixStereobonds (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | MoveChargeToRemoveCenerpoints (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | MakeSingleBondsMetal2ChargedHeteroat (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | SaltBondsToCoordBonds (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | FixLessHydrogenInFormula (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, inp_ATOM *atf, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | FixMoreHydrogenInFormula (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, inp_ATOM *atf, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | FixAddProtonForADP (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, inp_ATOM *atf, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, ICR *picr, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | ConnectDisconnectedH (inp_ATOM *at, int num_atoms, int num_deleted_H) |
int | DisconnectedConnectedH (inp_ATOM *at, int num_atoms, int num_deleted_H) |
int | MakeInChIOutOfStrFromINChI2 (struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *pCG, ICHICONST INPUT_PARMS *ip_inp, STRUCT_DATA *sd_inp, StrFromINChI *pStruct, int iComponent, int iAtNoOffset, long num_inp) |
int | GetChargeFlowerUpperEdge (BN_STRUCT *pBNS, VAL_AT *pVA, int nChargeEdge) |
int | get_pVA_atom_type (VAL_AT *pVA, inp_ATOM *at, int iat, int bond_type) |
int | NormalizeAndCompare (struct tagCANON_GLOBALS *pCG, struct tagINCHI_CLOCK *ic, ICHICONST INPUT_PARMS *ip, STRUCT_DATA *sd, BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, inp_ATOM *at3, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, INChI *pInChI[], long num_inp, int bHasSomeFixedH, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask, int forbidden_stereo_edge_mask) |
int | NormalizeStructure (ICHICONST INPUT_PARMS *ip, STRUCT_DATA *sd, BN_STRUCT *pBNS, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, inp_ATOM *at_norm, inp_ATOM *at_fixed_bonds_out, T_GROUP_INFO *t_group_info) |
int | MakeOneInChIOutOfStrFromINChI2 (struct tagCANON_GLOBALS *pCG, struct tagINCHI_CLOCK *ic, ICHICONST INPUT_PARMS *ip, STRUCT_DATA *sd, BN_STRUCT *pBNS, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, inp_ATOM *at3, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, T_GROUP_INFO **t_group_info, inp_ATOM **at_norm, inp_ATOM **at_prep) |
int | FillOutExtraFixedHDataRestr (StrFromINChI *pStruct) |
int | FillOutExtraFixedHDataInChI (StrFromINChI *pStruct, INChI *pInChI[]) |
int | FixFixedHRestoredStructure (struct tagCANON_GLOBALS *pCG, struct tagINCHI_CLOCK *ic, ICHICONST INPUT_PARMS *ip, STRUCT_DATA *sd, BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, inp_ATOM *at3, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, T_GROUP_INFO **ti, inp_ATOM **at_norm, inp_ATOM **at_prep, INChI *pInChI[], long num_inp, int bHasSomeFixedH, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask, int forbidden_stereo_edge_mask) |
int | FixRemoveExtraTautEndpoints (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, inp_ATOM *atf, inp_ATOM *atn, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, ICR *picr, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask) |
int | FillOutCMP2FHINCHI (StrFromINChI *pStruct, inp_ATOM *at2, VAL_AT *pVA, INChI *pInChI[], CMP2FHINCHI *pc2i) |
int | FillOutCMP2MHINCHI (StrFromINChI *pStruct, ALL_TC_GROUPS *pTCGroups, inp_ATOM *at2, VAL_AT *pVA, INChI *pInChI[], CMP2MHINCHI *pc2i) |
int | bHas_N_V (inp_ATOM *at2, int num_atoms) |
int | GetPlusMinusVertex (BN_STRUCT *pBNS, ALL_TC_GROUPS *pTCGroups, int bCheckForbiddenPlus, int bCheckForbiddenMinus) |
int | FixMobileHRestoredStructure (struct tagCANON_GLOBALS *pCG, struct tagINCHI_CLOCK *ic, ICHICONST INPUT_PARMS *ip, STRUCT_DATA *sd, BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, inp_ATOM *at3, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, T_GROUP_INFO **ppt_group_info, inp_ATOM **ppat_norm, inp_ATOM **ppat_prep, INChI *pInChI[], long num_inp, int bHasSomeFixedH, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask, int forbidden_stereo_edge_mask) |
int | FixRestoredStructureStereo (struct tagCANON_GLOBALS *pCG, struct tagINCHI_CLOCK *ic, INCHI_MODE cmpInChI, ICR *icr, INCHI_MODE cmpInChI2, ICR *icr2, ICHICONST INPUT_PARMS *ip, STRUCT_DATA *sd, BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, inp_ATOM *at3, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, T_GROUP_INFO **ppt_group_info, inp_ATOM **ppat_norm, inp_ATOM **ppat_prep, INChI *pInChI[], long num_inp, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask, int forbidden_stereo_edge_mask) |
int | AddRemProtonsInRestrStruct (struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *pCG, ICHICONST INPUT_PARMS *ip, STRUCT_DATA *sd, long num_inp, int bHasSomeFixedH, StrFromINChI *pStruct, int num_components, StrFromINChI *pStructR, int num_componentsR, NUM_H *pProtonBalance, int *recmet_change_balance) |
int | AllInchiToStructure (struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *pCG, ICHICONST INPUT_PARMS *ip, STRUCT_DATA *sd, long num_inp, char *szCurHdr, ICHICONST SRM *pSrm, int bReqNonTaut, StrFromINChI *pStruct[INCHI_NUM][TAUT_NUM], InpInChI *pOneInput) |
int | AddProtonAndIsoHBalanceToMobHStruct (struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *pCG, ICHICONST INPUT_PARMS *ip, STRUCT_DATA *sd, long num_inp, int bHasSomeFixedH, char *szCurHdr, StrFromINChI *pStruct[INCHI_NUM][TAUT_NUM], InpInChI *pOneInput) |
int | InChI2Atom (struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *pCG, ICHICONST INPUT_PARMS *ip, STRUCT_DATA *sd, const char *szCurHdr, long num_inp, StrFromINChI *pStruct, int iComponent, int iAtNoOffset, int bI2A_Flag, int bHasSomeFixedH, InpInChI *pOneInput) |
int | MarkDisconectedIdenticalToReconnected (InpInChI *pOneInput) |
void | RemoveFixHInChIIdentical2MobH (InpInChI *pOneInput) |
void | SetUpSrm (SRM *pSrm) |
void | FreeInputInChI2Struct (InpInChI *pOneInput) |
void | FreeStrFromINChI (StrFromINChI *pStruct[INCHI_NUM][TAUT_NUM], int nNumComponents[INCHI_NUM][TAUT_NUM]) |
int | OldPrintCompareOneOrigInchiToRevInChI (StrFromINChI *pStruct, INChI *pInChI[TAUT_NUM], int bMobileH, int iComponent, long num_inp, char *szCurHdr) |
int | CompareOneOrigInchiToRevInChI (StrFromINChI *pStruct, INChI *pInChI[TAUT_NUM], int bMobileH, int iComponent, long num_inp, char *szCurHdr, COMPONENT_REM_PROTONS *nCurRemovedProtons, INCHI_MODE CompareInchiFlags[]) |
int | CompareTwoPairsOfInChI (INChI *pInChI1[TAUT_NUM], INChI *pInChI2[TAUT_NUM], int bMobileH, INCHI_MODE CompareInchiFlags[]) |
INCHI_MODE | CompareReversedINChI3 (INChI *i1, INChI *i2, INChI_Aux *a1, INChI_Aux *a2, int *err) |
INCHI_MODE | CompareReversedStereoINChI3 (INChI_Stereo *s1, INChI_Stereo *s2, ICR *picr) |
int | CompareAllOrigInchiToRevInChI (StrFromINChI *pStruct[INCHI_NUM][TAUT_NUM], InpInChI *pOneInput, int bReqNonTaut, long num_inp, char *szCurHdr) |
int | CompareAllDisconnectedOrigInchiToRevInChI (StrFromINChI *pStruct[INCHI_NUM][TAUT_NUM], InpInChI *pOneInput, int bHasSomeFixedH, long num_inp, char *szCurHdr) |
int | insertions_sort_AT_NUMB (AT_NUMB *base, int num) |
int | AddRemIsoProtonsInRestrStruct (struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *pCG, ICHICONST INPUT_PARMS *ip, STRUCT_DATA *sd, long num_inp, int bHasSomeFixedH, StrFromINChI *pStruct, int num_components, StrFromINChI *pStructR, int num_componentsR, NUM_H pProtonBalance[], NUM_H recmet_change_balance[]) |
int | OutputInChIOutOfStrFromINChI (struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *pCG, ICHICONST INPUT_PARMS *ip_inp, STRUCT_DATA *sd_inp, long num_inp, int bINChIOutputOptions, INCHI_IOSTREAM *pout, INCHI_IOSTREAM *plog, InpInChI *pOneInput, int bHasSomeFixedH, unsigned char save_opt_bits) |
int | MergeStructureComponents (ICHICONST INPUT_PARMS *ip, STRUCT_DATA *sd, long num_inp, char *szCurHdr, ICHICONST SRM *pSrm, int bReqNonTaut, StrFromINChI *pStruct[INCHI_NUM][TAUT_NUM], InpInChI *pOneInput) |
int | AddOneMsg (char *szMsg, int used_len, int tot_len, const char *szAddMsg, const char *szDelim) |
int | FillOutCompareMessage (char *szMsg, int nLenMsg, INCHI_MODE bits[]) |
void | clear_t_group_info (T_GROUP_INFO *ti) |
int | bInpInchiComponentExists (InpInChI *pOneInput, int iINCHI, int bMobileH, int k) |
int | bInpInchiComponentDeleted (InpInChI *pOneInput, int iInChI, int bMobileH, int k) |
int | bRevInchiComponentExists (StrFromINChI *pStruct, int iInChI, int bMobileH, int k) |
int | bRevInchiComponentDeleted (StrFromINChI *pStruct, int iInChI, int bMobileH, int k) |
int | DetectInpInchiCreationOptions (InpInChI *pOneInput, int *bHasReconnected, int *bHasMetal, int *bHasFixedH, int *sFlag, int *bTautFlag) |
int | DisplayStructureComponents (struct tagCANON_GLOBALS *pCG, ICHICONST INPUT_PARMS *ip, STRUCT_DATA *sd, long num_inp, char *szCurHdr, ICHICONST SRM *pSrm, int bReqNonTaut, StrFromINChI *pStruct[INCHI_NUM][TAUT_NUM], InpInChI *pOneInput) |
int | DisplayOneRestoredComponent (struct tagCANON_GLOBALS *pCG, StrFromINChI *pStruct, inp_ATOM *at, int iComponent, int nNumComponents, int bMobileH, const char *szCurHdr) |
int | DisplayAllRestoredComponents (struct tagCANON_GLOBALS *pCG, inp_ATOM *at, int num_at, const char *szCurHdr) |
int | CountStereoTypes (INChI *pInChI, int *num_known_SB, int *num_known_SC, int *num_unk_und_SB, int *num_unk_und_SC, int *num_SC_PIII, int *num_SC_AsIII) |
int | GetNumNeighborsFromInchi (INChI *pInChI, AT_NUMB nAtNumber) |
int | bIsUnsatCarbonInASmallRing (inp_ATOM *at, VAL_AT *pVA, int iat, BFS_Q *pbfsq, int min_ring_size) |
int | MakeProtonComponent (StrFromINChI *pStruct, int iComponent, int num_prot) |
void | FreeInpInChI (InpInChI *pOneInput) |
Variables | |
const int | cnListNumEl |
MY_CONST CN_LIST | cnList [] |
#define ALLOW_METAL_BOND_ZERO 1 /* 1=> allow zero flow (bobd order) to metals */ |
#define ATYPE_B 4 |
#define ATYPE_C 5 |
#define ATYPE_Cl 8 |
#define ATYPE_H 1 |
#define ATYPE_Mg 3 |
#define ATYPE_N 6 |
#define ATYPE_Na 2 |
#define ATYPE_O 7 |
#define BFS_Q_CLEAR (-1) |
#define BFS_Q_FREE (-2) |
#define BOND_MARK_STEREO 0x10 |
#define BOND_TYPE_STEREO (BOND_TYPE_SINGLE | BOND_MARK_STEREO) |
#define cn_bits_EN MAKE_CN_BITS(cn_bits_P | cn_bits_M, cn_bits_N, 0, 0) |
#define cn_bits_M 4 /* Minus 1: charge = -1 */ |
#define cn_bits_M_ MAKE_CN_BITS(cn_bits_M, 0, 0, 0) |
#define cn_bits_Me (-1) |
#define cn_bits_MN MAKE_CN_BITS(cn_bits_M, cn_bits_N, 0, 0) |
#define cn_bits_MNP MAKE_CN_BITS(cn_bits_M, cn_bits_N, cn_bits_P, 0) |
#define cn_bits_N 1 /* Neutral: charge = 0 */ |
#define cn_bits_N_ MAKE_CN_BITS(cn_bits_N, 0, 0, 0) |
#define cn_bits_NE MAKE_CN_BITS(cn_bits_N, cn_bits_P | cn_bits_M, 0, 0) |
#define cn_bits_NEN MAKE_CN_BITS(cn_bits_N, cn_bits_M | cn_bits_N, cn_bits_N, 0) |
#define cn_bits_NM MAKE_CN_BITS(cn_bits_N, cn_bits_M, 0, 0) |
#define cn_bits_NMN MAKE_CN_BITS(cn_bits_N, cn_bits_M, cn_bits_N, 0) |
#define cn_bits_NP MAKE_CN_BITS(cn_bits_N, cn_bits_P, 0, 0) |
#define cn_bits_NPN MAKE_CN_BITS(cn_bits_N, cn_bits_P, cn_bits_N, 0) |
#define cn_bits_NPNP MAKE_CN_BITS(cn_bits_N, cn_bits_P, cn_bits_N, cn_bits_P) |
#define cn_bits_P 2 /* Plus 1: charge = +1 */ |
#define cn_bits_P_ MAKE_CN_BITS(cn_bits_P, 0, 0, 0) |
#define cn_bits_PN MAKE_CN_BITS(cn_bits_P, cn_bits_N, 0, 0) |
#define cn_bits_PNM MAKE_CN_BITS(cn_bits_P, cn_bits_N, cn_bits_M, 0) |
#define cn_bits_PNP MAKE_CN_BITS(cn_bits_P, cn_bits_N, cn_bits_P, 0) |
#define cn_bits_PNPN MAKE_CN_BITS(cn_bits_P, cn_bits_N, cn_bits_P, cn_bits_N) |
#define cn_bits_shift 3 |
#define cnListIndexMe (17) /* index of {cnMe, cn_bits_Me,... } element of cnList[] */ |
#define EDGE_LIST_CLEAR (-1) |
#define EDGE_LIST_FREE (-2) |
#define EL_TYPE_C 0x0010 |
#define EL_TYPE_MASK 0x003f |
#define EL_TYPE_N 0x0004 |
#define EL_TYPE_O 0x0001 |
#define EL_TYPE_OSt 0x0100 /* terminal -OH, -O(-), -SH, -S(-), ... from fix_special_bonds(...) */ |
#define EL_TYPE_P 0x0008 |
#define EL_TYPE_PT 0x0200 /* may be a tautomeric endpoint */ |
#define EL_TYPE_S 0x0002 |
#define EL_TYPE_X 0x0020 /* any not metal */ |
#define EXTRACT_STRUCT_NUMBER 1 |
#define FIX_ADD_PROTON_FOR_ADP 0 /* not used */ |
#define FIX_STEREO_BOND_ORDER 0 /* 1=> fix stereobonds; treat metal as non-metal if it is stereogenic or has a stereobond */ |
#define I2A_FLAG_FIXEDH 0x0001 |
#define I2A_FLAG_RECMET 0x0002 |
#define ICHICONST const |
#define INC_EDGE_LIST_DEFAULT 64 |
#define INC_NUM_TCGROUPS 16 |
#define INI_NUM_TCGROUPS 16 |
#define INIT_METAL_BOND_FLOW 1 /* 1=> init flow=1, 0 => init. flow = 0 */ |
#define INIT_METAL_BOND_ZERO 0 /* 1=> initialize zero order bond to metals */ |
#define KEEP_METAL_EDGE_FLOW 0 /* counterexample: mdb0-1738.sdf.txt */ |
#define MAKE_CN_BITS | ( | A, | |
B, | |||
C, | |||
D | |||
) | (( (( ((D) << cn_bits_shift | (C)) << cn_bits_shift ) | (B)) << cn_bits_shift ) | (A)) |
#define MAX_CN_VAL 3 |
#define MAX_DIFF_FIXH 256 |
#define MAX_DIFF_MOBH 256 |
#define MAX_NUM_CN_BITS 4 |
#define METAL_FREE_CHARGE_VAL 1 /* 1=> allow free changing charges/valences of metals; initial bond order=0 or 1 */ |
#define MOVE_CHARGES_FROM_HETEREO_TO_METAL 0 /* disabled */ |
#define MY_CONST const |
#define NO_VALUE_INT 9999 |
#define NOT_READ_INT 9998 /* has not been read yet */ |
#define RESET_EDGE_FORBIDDEN_MASK 0 |
#define RI_ERR_ALLOC (-1) |
#define RI_ERR_EOF (0) |
#define RI_ERR_EOL (-4) |
#define RI_ERR_MISMATCH (-9) |
#define RI_ERR_PROGR (-3) |
#define RI_ERR_SYNTAX (-2) |
#define TREAT_ATOM_AS_METAL 99 |
#define VAL_BASE ( 1) |
#define VAL_LENGTH (VAL_NEUTR_ORDER+1) |
#define VAL_MAX_CHARGE ( 1) |
#define VAL_MIN_CHARGE (-1) |
#define VAL_NEGAT_CHARGE 0 |
#define VAL_NEUTR_CHARGE 1 |
#define VAL_NEUTR_ORDER (VAL_MAX_CHARGE-VAL_MIN_CHARGE+1) |
#define VAL_NUMBER ( 2) |
#define VAL_POSIT_CHARGE 2 |
#define VALUE_OCTET 8 /* number of electrons in a full shell */ |
typedef struct tagAllTCGroups ALL_TC_GROUPS |
typedef struct tagBfsQueue BFS_Q |
typedef struct tagChargeNodes C_NODE |
typedef struct tagChargeChangeCandidate CC_CAND |
typedef struct tagChargeValence CHARGE_VAL |
typedef struct tagAtomsCmpTwoFixedH CMP2FHATOMS |
typedef struct tagStructCmpTwoFixedH CMP2FHINCHI |
typedef struct tagAtomsCmpTwoMobileH CMP2MHATOMS |
typedef struct tagStructCmpTwoMobileH CMP2MHINCHI |
typedef struct tagChargeNodeList CN_LIST |
typedef struct tagOneComponentRemovedAndExchangeableH COMPONENT_REM_PROTONS |
typedef struct tagEdgeCapFlow ECF |
typedef struct tagEdgeList EDGE_LIST |
typedef struct tagInpAtomAddParities inp_ATOM_STEREO |
typedef struct tagInputInChI InpInChI |
typedef struct tagRemovedAndExchangeableH REM_PROTONS |
typedef struct tagReversedInChI REV_INCHI |
typedef struct tagStructRestoreMode SRM |
typedef struct tagStructFromInChI StrFromINChI |
typedef struct tagTCGroup TC_GROUP |
typedef enum tagTCGroupTypes TCGR_TYPE |
typedef enum tagTgRestoreFlags TGRF |
typedef struct tagAtomIonPrperies VAL_AT |
typedef struct tagVertCapFlow VCF |
typedef struct tagXYZCoord XYZ_COORD |
enum tagTCGroupTypes |
enum tagTgRestoreFlags |
int AddCGroups2TCGBnStruct | ( | BN_STRUCT * | pBNS, |
StrFromINChI * | pStruct, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int | nMaxAddEdges | ||
) |
int AddEdgeFlow | ( | int | edge_cap, |
int | edge_flow, | ||
BNS_EDGE * | e01, | ||
BNS_VERTEX * | pv0, | ||
BNS_VERTEX * | pv1, | ||
int * | tot_st_cap, | ||
int * | tot_st_flow | ||
) |
int AddExplicitDeletedH | ( | inp_ATOM * | at, |
int | jv, | ||
int | num_at, | ||
int * | iDeletedH, | ||
int * | iH, | ||
int | nNumDeletedH, | ||
int | bTwoStereo | ||
) |
int AddOneMsg | ( | char * | szMsg, |
int | used_len, | ||
int | tot_len, | ||
const char * | szAddMsg, | ||
const char * | szDelim | ||
) |
int AddProtonAndIsoHBalanceToMobHStruct | ( | struct tagINCHI_CLOCK * | ic, |
struct tagCANON_GLOBALS * | pCG, | ||
ICHICONST INPUT_PARMS * | ip, | ||
STRUCT_DATA * | sd, | ||
long | num_inp, | ||
int | bHasSomeFixedH, | ||
char * | szCurHdr, | ||
StrFromINChI * | pStruct[INCHI_NUM][TAUT_NUM], | ||
InpInChI * | pOneInput | ||
) |
int AddRadicalToMetal | ( | int * | tot_st_cap, |
int * | tot_st_flow, | ||
ICHICONST SRM * | pSrm, | ||
BN_STRUCT * | pBNS, | ||
ALL_TC_GROUPS * | pTCGroups | ||
) |
int AddRemIsoProtonsInRestrStruct | ( | struct tagINCHI_CLOCK * | ic, |
struct tagCANON_GLOBALS * | pCG, | ||
ICHICONST INPUT_PARMS * | ip, | ||
STRUCT_DATA * | sd, | ||
long | num_inp, | ||
int | bHasSomeFixedH, | ||
StrFromINChI * | pStruct, | ||
int | num_components, | ||
StrFromINChI * | pStructR, | ||
int | num_componentsR, | ||
NUM_H | pProtonBalance[], | ||
NUM_H | recmet_change_balance[] | ||
) |
int AddRemProtonsInRestrStruct | ( | struct tagINCHI_CLOCK * | ic, |
struct tagCANON_GLOBALS * | pCG, | ||
ICHICONST INPUT_PARMS * | ip, | ||
STRUCT_DATA * | sd, | ||
long | num_inp, | ||
int | bHasSomeFixedH, | ||
StrFromINChI * | pStruct, | ||
int | num_components, | ||
StrFromINChI * | pStructR, | ||
int | num_componentsR, | ||
NUM_H * | pProtonBalance, | ||
int * | recmet_change_balance | ||
) |
void AddStCapFlow | ( | BNS_VERTEX * | vert_ficpoint, |
int * | tot_st_flow, | ||
int * | tot_st_cap, | ||
int | cap, | ||
int | flow | ||
) |
int AddTGroups2TCGBnStruct | ( | BN_STRUCT * | pBNS, |
StrFromINChI * | pStruct, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int | nMaxAddEdges | ||
) |
int AddToEdgeList | ( | EDGE_LIST * | pEdges, |
int | iedge, | ||
int | nAddLen | ||
) |
int AdjustTgroupsToForbiddenEdges2 | ( | BN_STRUCT * | pBNS, |
inp_ATOM * | at, | ||
VAL_AT * | pVA, | ||
int | num_atoms, | ||
int | forbidden_mask | ||
) |
int AllInchiToStructure | ( | struct tagINCHI_CLOCK * | ic, |
struct tagCANON_GLOBALS * | pCG, | ||
ICHICONST INPUT_PARMS * | ip, | ||
STRUCT_DATA * | sd, | ||
long | num_inp, | ||
char * | szCurHdr, | ||
ICHICONST SRM * | pSrm, | ||
int | bReqNonTaut, | ||
StrFromINChI * | pStruct[INCHI_NUM][TAUT_NUM], | ||
InpInChI * | pOneInput | ||
) |
BN_STRUCT * AllocateAndInitTCGBnStruct | ( | StrFromINChI * | pStruct, |
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int | nMaxAddAtoms, | ||
int | nMaxAddEdges, | ||
int | max_altp, | ||
int * | pNum_changed_bonds | ||
) |
int AllocBfsQueue | ( | BFS_Q * | pQ, |
int | num_at, | ||
int | min_ring_size | ||
) |
int AllocEdgeList | ( | EDGE_LIST * | pEdges, |
int | nLen | ||
) |
int AtomStcapStflow | ( | inp_ATOM * | atom, |
VAL_AT * | pVA, | ||
ICHICONST SRM * | pSrm, | ||
int | iat, | ||
int * | pnStcap, | ||
int * | pnStflow, | ||
EdgeFlow * | pnMGroupEdgeCap, | ||
EdgeFlow * | pnMGroupEdgeFlow | ||
) |
int bHas_N_V | ( | inp_ATOM * | at2, |
int | num_atoms | ||
) |
int bInpInchiComponentDeleted | ( | InpInChI * | pOneInput, |
int | iInChI, | ||
int | bMobileH, | ||
int | k | ||
) |
int bInpInchiComponentExists | ( | InpInChI * | pOneInput, |
int | iINCHI, | ||
int | bMobileH, | ||
int | k | ||
) |
int bIsUnsatCarbonInASmallRing | ( | inp_ATOM * | at, |
VAL_AT * | pVA, | ||
int | iat, | ||
BFS_Q * | pbfsq, | ||
int | min_ring_size | ||
) |
int BondFlowMaxcapMinorder | ( | inp_ATOM * | atom, |
VAL_AT * | pVA, | ||
ICHICONST SRM * | pSrm, | ||
int | iat, | ||
int | ineigh, | ||
int * | pnMaxcap, | ||
int * | pnMinorder, | ||
int * | pbNeedsFlower | ||
) |
int bRevInchiComponentDeleted | ( | StrFromINChI * | pStruct, |
int | iInChI, | ||
int | bMobileH, | ||
int | k | ||
) |
pStruct->at2 ||
int bRevInchiComponentExists | ( | StrFromINChI * | pStruct, |
int | iInChI, | ||
int | bMobileH, | ||
int | k | ||
) |
pStruct->at2 ||
int CheckAndRefixStereobonds | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
int CheckBnsConsistency | ( | StrFromINChI * | pStruct, |
BN_STRUCT * | pBNS, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int | bNoRad | ||
) |
int clean_charge_val | ( | struct tagCANON_GLOBALS * | pCG, |
CHARGE_VAL * | pChargeVal, | ||
int | len, | ||
inp_ATOM * | atom, | ||
VAL_AT * | pVA, | ||
int | iat, | ||
int | bIsMetal, | ||
int | bMobileH, | ||
AT_NUMB * | endpoint | ||
) |
void clear_t_group_info | ( | T_GROUP_INFO * | ti | ) |
void ClearEndpts | ( | inp_ATOM * | at, |
int | num_at | ||
) |
int cmp_charge_val | ( | const void * | a1, |
const void * | a2, | ||
void * | p | ||
) |
int comp_cc_cand | ( | const void * | a1, |
const void * | a2 | ||
) |
int CompareAllDisconnectedOrigInchiToRevInChI | ( | StrFromINChI * | pStruct[INCHI_NUM][TAUT_NUM], |
InpInChI * | pOneInput, | ||
int | bHasSomeFixedH, | ||
long | num_inp, | ||
char * | szCurHdr | ||
) |
int CompareAllOrigInchiToRevInChI | ( | StrFromINChI * | pStruct[INCHI_NUM][TAUT_NUM], |
InpInChI * | pOneInput, | ||
int | bReqNonTaut, | ||
long | num_inp, | ||
char * | szCurHdr | ||
) |
int CompareOneOrigInchiToRevInChI | ( | StrFromINChI * | pStruct, |
INChI * | pInChI[TAUT_NUM], | ||
int | bMobileH, | ||
int | iComponent, | ||
long | num_inp, | ||
char * | szCurHdr, | ||
COMPONENT_REM_PROTONS * | nCurRemovedProtons, | ||
INCHI_MODE | CompareInchiFlags[] | ||
) |
INCHI_MODE CompareReversedINChI3 | ( | INChI * | i1, |
INChI * | i2, | ||
INChI_Aux * | a1, | ||
INChI_Aux * | a2, | ||
int * | err | ||
) |
INCHI_MODE CompareReversedStereoINChI3 | ( | INChI_Stereo * | s1, |
INChI_Stereo * | s2, | ||
ICR * | picr | ||
) |
int CompareTwoPairsOfInChI | ( | INChI * | pInChI1[TAUT_NUM], |
INChI * | pInChI2[TAUT_NUM], | ||
int | bMobileH, | ||
INCHI_MODE | CompareInchiFlags[] | ||
) |
int ConnectDisconnectedH | ( | inp_ATOM * | at, |
int | num_atoms, | ||
int | num_deleted_H | ||
) |
int ConnectMetalFlower | ( | int * | pcur_num_vertices, |
int * | pcur_num_edges, | ||
int * | tot_st_cap, | ||
int * | tot_st_flow, | ||
ICHICONST SRM * | pSrm, | ||
BN_STRUCT * | pBNS, | ||
ALL_TC_GROUPS * | pTCGroups | ||
) |
int ConnectSuperCGroup | ( | int | nTCG_Plus, |
int | nAddGroups[], | ||
int | num_add, | ||
int * | pcur_num_vertices, | ||
int * | pcur_num_edges, | ||
int * | tot_st_cap, | ||
int * | tot_st_flow, | ||
BN_STRUCT * | pBNS, | ||
ALL_TC_GROUPS * | pTCGroups | ||
) |
int ConnectTwoVertices | ( | BNS_VERTEX * | p1, |
BNS_VERTEX * | p2, | ||
BNS_EDGE * | e, | ||
BN_STRUCT * | pBNS, | ||
int | bClearEdge | ||
) |
int Convert_SIV_to_SVI | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
void CopyAt2St | ( | inp_ATOM * | at, |
inp_ATOM_STEREO * | st, | ||
int | num_atoms | ||
) |
int CopyBnsToAtom | ( | StrFromINChI * | pStruct, |
BN_STRUCT * | pBNS, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int | bAllowZeroBondOrder | ||
) |
void CopySt2At | ( | inp_ATOM * | at, |
inp_ATOM_STEREO * | st, | ||
int | num_atoms | ||
) |
int CountStereoTypes | ( | INChI * | pInChI, |
int * | num_known_SB, | ||
int * | num_known_SC, | ||
int * | num_unk_und_SB, | ||
int * | num_unk_und_SC, | ||
int * | num_SC_PIII, | ||
int * | num_SC_AsIII | ||
) |
int DetectInpInchiCreationOptions | ( | InpInChI * | pOneInput, |
int * | bHasReconnected, | ||
int * | bHasMetal, | ||
int * | bHasFixedH, | ||
int * | sFlag, | ||
int * | bTautFlag | ||
) |
int DisconnectedConnectedH | ( | inp_ATOM * | at, |
int | num_atoms, | ||
int | num_deleted_H | ||
) |
int DisplayAllRestoredComponents | ( | struct tagCANON_GLOBALS * | pCG, |
inp_ATOM * | at, | ||
int | num_at, | ||
const char * | szCurHdr | ||
) |
int DisplayOneRestoredComponent | ( | struct tagCANON_GLOBALS * | pCG, |
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
int | iComponent, | ||
int | nNumComponents, | ||
int | bMobileH, | ||
const char * | szCurHdr | ||
) |
int DisplayRestoredComponent | ( | struct tagCANON_GLOBALS * | pCG, |
StrFromINChI * | pStruct, | ||
int | iComponent, | ||
int | iAtNoOffset, | ||
INChI * | pInChI, | ||
const char * | szCurHdr | ||
) |
int DisplayStructureComponents | ( | struct tagCANON_GLOBALS * | pCG, |
ICHICONST INPUT_PARMS * | ip, | ||
STRUCT_DATA * | sd, | ||
long | num_inp, | ||
char * | szCurHdr, | ||
ICHICONST SRM * | pSrm, | ||
int | bReqNonTaut, | ||
StrFromINChI * | pStruct[INCHI_NUM][TAUT_NUM], | ||
InpInChI * | pOneInput | ||
) |
int EliminateChargeSeparationOnHeteroatoms | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask, | ||
int | forbidden_stereo_edge_mask | ||
) |
int EliminateNitrogen5Val3Bonds | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
int EvaluateChargeChanges | ( | BN_STRUCT * | pBNS, |
VAL_AT * | pVA, | ||
int * | pnDeltaH, | ||
int * | pnDeltaCharge, | ||
int * | pnNumVisitedAtoms | ||
) |
int FillOutCMP2FHINCHI | ( | StrFromINChI * | pStruct, |
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
INChI * | pInChI[], | ||
CMP2FHINCHI * | pc2i | ||
) |
int FillOutCMP2MHINCHI | ( | StrFromINChI * | pStruct, |
ALL_TC_GROUPS * | pTCGroups, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
INChI * | pInChI[], | ||
CMP2MHINCHI * | pc2i | ||
) |
int FillOutCompareMessage | ( | char * | szMsg, |
int | nLenMsg, | ||
INCHI_MODE | bits[] | ||
) |
int FillOutExtraFixedHDataInChI | ( | StrFromINChI * | pStruct, |
INChI * | pInChI[] | ||
) |
int FillOutExtraFixedHDataRestr | ( | StrFromINChI * | pStruct | ) |
int FindInEdgeList | ( | EDGE_LIST * | pEdges, |
int | iedge | ||
) |
int FixAddProtonForADP | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
inp_ATOM * | atf, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
ICR * | picr, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
int FixFixedHRestoredStructure | ( | struct tagCANON_GLOBALS * | pCG, |
struct tagINCHI_CLOCK * | ic, | ||
ICHICONST INPUT_PARMS * | ip, | ||
STRUCT_DATA * | sd, | ||
BN_STRUCT * | pBNS, | ||
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
inp_ATOM * | at3, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
T_GROUP_INFO ** | ti, | ||
inp_ATOM ** | at_norm, | ||
inp_ATOM ** | at_prep, | ||
INChI * | pInChI[], | ||
long | num_inp, | ||
int | bHasSomeFixedH, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask, | ||
int | forbidden_stereo_edge_mask | ||
) |
pc2i->c2at[i].endptInChI &&
at2[iat].num_H &&
at2[iat].num_H &&
at2[iat].num_H &&
(nMobHInChI && nMobHInChI[i] ) &&
(pStruct->fixed_H && pStruct->fixed_H[i]) &&
(nMobHInChI && nMobHInChI[i] ) &&
pc2i->c2at[i].endptRevrs &&
pStruct->endpoint[i] &&
(pStruct->fixed_H && pStruct->fixed_H[i]) &&
pc2i->c2at[i].endptInChI &&
(nMobHInChI && nMobHInChI[i] ) &&
(nMobHInChI && nMobHInChI[i] ) &&
int FixLessHydrogenInFormula | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
inp_ATOM * | atf, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
int FixMetal_Nminus_Ominus | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
int FixMobileHRestoredStructure | ( | struct tagCANON_GLOBALS * | pCG, |
struct tagINCHI_CLOCK * | ic, | ||
ICHICONST INPUT_PARMS * | ip, | ||
STRUCT_DATA * | sd, | ||
BN_STRUCT * | pBNS, | ||
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
inp_ATOM * | at3, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
T_GROUP_INFO ** | ppt_group_info, | ||
inp_ATOM ** | ppat_norm, | ||
inp_ATOM ** | ppat_prep, | ||
INChI * | pInChI[], | ||
long | num_inp, | ||
int | bHasSomeFixedH, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask, | ||
int | forbidden_stereo_edge_mask | ||
) |
int FixMoreHydrogenInFormula | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
inp_ATOM * | atf, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
int FixRemoveExtraTautEndpoints | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
inp_ATOM * | atf, | ||
inp_ATOM * | atn, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
ICR * | picr, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
int FixRestoredStructureStereo | ( | struct tagCANON_GLOBALS * | pCG, |
struct tagINCHI_CLOCK * | ic, | ||
INCHI_MODE | cmpInChI, | ||
ICR * | icr, | ||
INCHI_MODE | cmpInChI2, | ||
ICR * | icr2, | ||
ICHICONST INPUT_PARMS * | ip, | ||
STRUCT_DATA * | sd, | ||
BN_STRUCT * | pBNS, | ||
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
inp_ATOM * | at3, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
T_GROUP_INFO ** | ppt_group_info, | ||
inp_ATOM ** | ppat_norm, | ||
inp_ATOM ** | ppat_prep, | ||
INChI * | pInChI[], | ||
long | num_inp, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask, | ||
int | forbidden_stereo_edge_mask | ||
) |
int ForbidCarbonChargeEdges | ( | BN_STRUCT * | pBNS, |
ALL_TC_GROUPS * | pTCGroups, | ||
EDGE_LIST * | pCarbonChargeEdges, | ||
int | forbidden_edge_mask | ||
) |
int ForbidMetalCarbonEdges | ( | BN_STRUCT * | pBNS, |
inp_ATOM * | at, | ||
int | num_at, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
EDGE_LIST * | pMetalCarbonEdges, | ||
int | forbidden_edge_mask | ||
) |
int ForbidNintrogenPlus2BondsInSmallRings | ( | BN_STRUCT * | pBNS, |
inp_ATOM * | at, | ||
int | num_at, | ||
VAL_AT * | pVA, | ||
int | min_ring_size, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
EDGE_LIST * | pNplus2BondsEdges, | ||
int | forbidden_edge_mask | ||
) |
void FreeInpInChI | ( | InpInChI * | pOneInput | ) |
void FreeInputInChI2Struct | ( | InpInChI * | pOneInput | ) |
void FreeStrFromINChI | ( | StrFromINChI * | pStruct[INCHI_NUM][TAUT_NUM], |
int | nNumComponents[INCHI_NUM][TAUT_NUM] | ||
) |
int get_bonds_valences | ( | int | nPeriodicNum, |
int | bonds_valence, | ||
int | num_H, | ||
VAL_AT * | pVA | ||
) |
int get_sp_element_type | ( | int | nPeriodicNumber, |
int * | nRow | ||
) |
int GetAtomRestoreInfo | ( | struct tagCANON_GLOBALS * | pCG, |
inp_ATOM * | atom, | ||
int | iat, | ||
VAL_AT * | pVArray, | ||
ICHICONST SRM * | pSrm, | ||
int | bMobileH, | ||
AT_NUMB * | endpoint | ||
) |
int GetPlusMinusVertex | ( | BN_STRUCT * | pBNS, |
ALL_TC_GROUPS * | pTCGroups, | ||
int | bCheckForbiddenPlus, | ||
int | bCheckForbiddenMinus | ||
) |
int GetTgroupInfoFromInChI | ( | T_GROUP_INFO * | ti, |
inp_ATOM * | at, | ||
AT_NUMB * | endpoint, | ||
INChI * | pInChI | ||
) |
int InChI2Atom | ( | struct tagINCHI_CLOCK * | ic, |
struct tagCANON_GLOBALS * | pCG, | ||
ICHICONST INPUT_PARMS * | ip, | ||
STRUCT_DATA * | sd, | ||
const char * | szCurHdr, | ||
long | num_inp, | ||
StrFromINChI * | pStruct, | ||
int | iComponent, | ||
int | iAtNoOffset, | ||
int | bI2A_Flag, | ||
int | bHasSomeFixedH, | ||
InpInChI * | pOneInput | ||
) |
int IncrementZeroOrderBondsToHeteroat | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
void IncrZeroBonds | ( | inp_ATOM * | at, |
int | num_at, | ||
int | iComponent | ||
) |
void IncrZeroBondsAndClearEndpts | ( | inp_ATOM * | at, |
int | num_at, | ||
int | iComponent | ||
) |
int insertions_sort_AT_NUMB | ( | AT_NUMB * | base, |
int | num | ||
) |
int MakeInChIOutOfStrFromINChI2 | ( | struct tagINCHI_CLOCK * | ic, |
struct tagCANON_GLOBALS * | pCG, | ||
ICHICONST INPUT_PARMS * | ip_inp, | ||
STRUCT_DATA * | sd_inp, | ||
StrFromINChI * | pStruct, | ||
int | iComponent, | ||
int | iAtNoOffset, | ||
long | num_inp | ||
) |
int MakeOneInChIOutOfStrFromINChI | ( | struct tagCANON_GLOBALS * | pCG, |
struct tagINCHI_CLOCK * | ic, | ||
ICHICONST INPUT_PARMS * | ip, | ||
STRUCT_DATA * | sd, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at2, | ||
inp_ATOM * | at3, | ||
ALL_TC_GROUPS * | pTCGroups | ||
) |
int MakeOneInChIOutOfStrFromINChI2 | ( | struct tagCANON_GLOBALS * | pCG, |
struct tagINCHI_CLOCK * | ic, | ||
ICHICONST INPUT_PARMS * | ip, | ||
STRUCT_DATA * | sd, | ||
BN_STRUCT * | pBNS, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
inp_ATOM * | at3, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
T_GROUP_INFO ** | t_group_info, | ||
inp_ATOM ** | at_norm, | ||
inp_ATOM ** | at_prep | ||
) |
int MakeProtonComponent | ( | StrFromINChI * | pStruct, |
int | iComponent, | ||
int | num_prot | ||
) |
int MakeSingleBondsMetal2ChargedHeteroat | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
int MarkDisconectedIdenticalToReconnected | ( | InpInChI * | pOneInput | ) |
int MergeStructureComponents | ( | ICHICONST INPUT_PARMS * | ip, |
STRUCT_DATA * | sd, | ||
long | num_inp, | ||
char * | szCurHdr, | ||
ICHICONST SRM * | pSrm, | ||
int | bReqNonTaut, | ||
StrFromINChI * | pStruct[INCHI_NUM][TAUT_NUM], | ||
InpInChI * | pOneInput | ||
) |
int MoveChargeFromHeteroatomsToMetals | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
int MoveChargeToMakeCenerpoints | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
int MoveChargeToRemoveCenerpoints | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
int MoveMobileHToAvoidFixedBonds | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
int MovePlusFromS2DiaminoCarbon | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
int MoveRadToAtomsAddCharges | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int | forbidden_mask | ||
) |
int nAddSuperCGroups | ( | ALL_TC_GROUPS * | pTCGroups | ) |
int nCountBnsSizes | ( | inp_ATOM * | at, |
int | num_at, | ||
int | nAddEdges2eachAtom, | ||
int | nAddVertices, | ||
T_GROUP_INFO * | ti, | ||
VAL_AT * | pVA, | ||
ICHICONST SRM * | pSrm, | ||
ALL_TC_GROUPS * | pTCGroups | ||
) |
int NormalizeAndCompare | ( | struct tagCANON_GLOBALS * | pCG, |
struct tagINCHI_CLOCK * | ic, | ||
ICHICONST INPUT_PARMS * | ip, | ||
STRUCT_DATA * | sd, | ||
BN_STRUCT * | pBNS, | ||
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
inp_ATOM * | at3, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
INChI * | pInChI[], | ||
long | num_inp, | ||
int | bHasSomeFixedH, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask, | ||
int | forbidden_stereo_edge_mask | ||
) |
int NormalizeStructure | ( | ICHICONST INPUT_PARMS * | ip, |
STRUCT_DATA * | sd, | ||
BN_STRUCT * | pBNS, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
inp_ATOM * | at_norm, | ||
inp_ATOM * | at_fixed_bonds_out, | ||
T_GROUP_INFO * | t_group_info | ||
) |
int OldPrintCompareOneOrigInchiToRevInChI | ( | StrFromINChI * | pStruct, |
INChI * | pInChI[TAUT_NUM], | ||
int | bMobileH, | ||
int | iComponent, | ||
long | num_inp, | ||
char * | szCurHdr | ||
) |
int OneInChI2Atom | ( | struct tagINCHI_CLOCK * | ic, |
struct tagCANON_GLOBALS * | pCG, | ||
ICHICONST INPUT_PARMS * | ip, | ||
STRUCT_DATA * | sd, | ||
const char * | szCurHdr, | ||
long | num_inp, | ||
StrFromINChI * | pStruct, | ||
int | iComponent, | ||
int | iAtNoOffset, | ||
int | bHasSomeFixedH, | ||
INChI * | pInChI[] | ||
) |
int OutputInChIOutOfStrFromINChI | ( | struct tagINCHI_CLOCK * | ic, |
struct tagCANON_GLOBALS * | pCG, | ||
ICHICONST INPUT_PARMS * | ip_inp, | ||
STRUCT_DATA * | sd_inp, | ||
long | num_inp, | ||
int | bINChIOutputOptions, | ||
INCHI_IOSTREAM * | pout, | ||
INCHI_IOSTREAM * | plog, | ||
InpInChI * | pOneInput, | ||
int | bHasSomeFixedH, | ||
unsigned char | save_opt_bits | ||
) |
int PlusFromDB_N_DB_O_to_Metal | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
int ReallocTCGroups | ( | ALL_TC_GROUPS * | pTCGroups, |
int | nAdd | ||
) |
int RearrangePlusMinusEdgesFlow | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int | forbidden_edge_mask | ||
) |
int RegisterTCGroup | ( | ALL_TC_GROUPS * | pTCGroups, |
int | nGroupType, | ||
int | nGroupOrdNum, | ||
int | nVertexCap, | ||
int | nVertexFlow, | ||
int | nEdgeCap, | ||
int | nEdgeFlow, | ||
int | nNumEdges | ||
) |
void RemoveFixHInChIIdentical2MobH | ( | InpInChI * | pOneInput | ) |
void RemoveForbiddenBondFlowBits | ( | BN_STRUCT * | pBNS, |
int | forbidden_edge_mask_int | ||
) |
int RemoveFromEdgeListByIndex | ( | EDGE_LIST * | pEdges, |
int | index | ||
) |
int RemoveFromEdgeListByValue | ( | EDGE_LIST * | pEdges, |
int | iedge | ||
) |
int RemoveRadFromMobileHEndpoint | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
int RemoveRadFromMobileHEndpointFixH | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
int RestoreAtomConnectionsSetStereo | ( | StrFromINChI * | pStruct, |
int | iComponent, | ||
int | iAtNoOffset, | ||
INChI * | pInChI, | ||
INChI * | pInChIMobH | ||
) |
int RestoreAtomMakeBNS | ( | struct tagINCHI_CLOCK * | ic, |
struct tagCANON_GLOBALS * | pCG, | ||
ICHICONST INPUT_PARMS * | ip, | ||
STRUCT_DATA * | sd, | ||
StrFromINChI * | pStruct, | ||
int | iComponent, | ||
int | iAtNoOffset, | ||
INChI * | pInChI[], | ||
const char * | szCurHdr, | ||
long | num_inp, | ||
int | bHasSomeFixedH | ||
) |
int RestoreCyanoGroup | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
int RestoreIsoCyanoGroup | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
int RestoreNNNgroup | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
int RunBnsRestore1 | ( | struct tagCANON_GLOBALS * | pCG, |
struct tagINCHI_CLOCK * | ic, | ||
ICHICONST INPUT_PARMS * | ip, | ||
STRUCT_DATA * | sd, | ||
BN_STRUCT * | pBNS, | ||
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
INChI * | pInChI[], | ||
long | num_inp, | ||
int | bHasSomeFixedH | ||
) |
int RunBnsRestoreOnce | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups | ||
) |
int RunBnsTestOnce | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
VAL_AT * | pVA, | ||
Vertex * | pvFirst, | ||
Vertex * | pvLast, | ||
int * | pPathLen, | ||
int * | pnDeltaH, | ||
int * | pnDeltaCharge, | ||
int * | pnNumVisitedAtoms | ||
) |
int SaltBondsToCoordBonds | ( | BN_STRUCT * | pBNS, |
BN_DATA * | pBD, | ||
StrFromINChI * | pStruct, | ||
inp_ATOM * | at, | ||
inp_ATOM * | at2, | ||
VAL_AT * | pVA, | ||
ALL_TC_GROUPS * | pTCGroups, | ||
int * | pnNumRunBNS, | ||
int * | pnTotalDelta, | ||
int | forbidden_edge_mask | ||
) |
int set_atom_0D_parity | ( | inp_ATOM * | at, |
inp_ATOM_STEREO * | st, | ||
int | num_at, | ||
int | num_deleted_H, | ||
int | i1, | ||
int | parity | ||
) |
int set_cumulene_0D_parity | ( | inp_ATOM * | at, |
inp_ATOM_STEREO * | st, | ||
int | num_at, | ||
int | idelH1, | ||
int | i1, | ||
int | i2, | ||
int | idelH2, | ||
int | parity, | ||
int | len | ||
) |
void SetEdgeCapFlow | ( | BNS_EDGE * | e, |
int | edge_cap, | ||
int | edge_flow | ||
) |
void SetStCapFlow | ( | BNS_VERTEX * | vert_ficpoint, |
int * | tot_st_flow, | ||
int * | tot_st_cap, | ||
int | cap, | ||
int | flow | ||
) |
int SetStereoBondTypeFor0DParity | ( | inp_ATOM * | at, |
int | i1, | ||
int | m1 | ||
) |
int SetStereoBondTypesFrom0DStereo | ( | StrFromINChI * | pStruct, |
INChI * | pInChI | ||
) |
void SetUpSrm | ( | SRM * | pSrm | ) |
|
extern |