48#define ICHICONST const
50#define RI_ERR_ALLOC (-1)
51#define RI_ERR_SYNTAX (-2)
52#define RI_ERR_PROGR (-3)
53#define RI_ERR_EOL (-4)
56#define RI_ERR_MISMATCH (-9)
58#define NO_VALUE_INT 9999
59#define NOT_READ_INT 9998
63#define INC_EDGE_LIST_DEFAULT 64
95#define BFS_Q_CLEAR (-1)
96#define BFS_Q_FREE (-2)
106#define EXTRACT_STRUCT_NUMBER 1
126#define FIX_STEREO_BOND_ORDER 0
128#define METAL_FREE_CHARGE_VAL 1
129#define ALLOW_METAL_BOND_ZERO 1
131#if ( ALLOW_METAL_BOND_ZERO == 1 )
133#define INIT_METAL_BOND_ZERO 0
134#define INIT_METAL_BOND_FLOW 1
136#define INIT_METAL_BOND_ZERO 0
137#define INIT_METAL_BOND_FLOW 0
140#define I2A_FLAG_FIXEDH 0x0001
141#define I2A_FLAG_RECMET 0x0002
159#define VAL_MIN_CHARGE (-1)
160#define VAL_MAX_CHARGE ( 1)
161#define VAL_NUMBER ( 2)
162#define VAL_NEUTR_ORDER (VAL_MAX_CHARGE-VAL_MIN_CHARGE+1)
163#define VAL_LENGTH (VAL_NEUTR_ORDER+1)
164#define VAL_NEGAT_CHARGE 0
165#define VAL_NEUTR_CHARGE 1
166#define VAL_POSIT_CHARGE 2
192#define INI_NUM_TCGROUPS 16
193#define INC_NUM_TCGROUPS 16
277#define EDGE_LIST_CLEAR (-1)
278#define EDGE_LIST_FREE (-2)
287#define BOND_MARK_STEREO 0x10
288#define BOND_TYPE_STEREO (BOND_TYPE_SINGLE | BOND_MARK_STEREO)
291#define RESET_EDGE_FORBIDDEN_MASK 0
293#define TREAT_ATOM_AS_METAL 99
303#define MY_CONST const
421#define EL_TYPE_O 0x0001
422#define EL_TYPE_S 0x0002
423#define EL_TYPE_N 0x0004
424#define EL_TYPE_P 0x0008
425#define EL_TYPE_C 0x0010
426#define EL_TYPE_X 0x0020
427#define EL_TYPE_MASK 0x003f
428#define EL_TYPE_OSt 0x0100
429#define EL_TYPE_PT 0x0200
454#define cn_bits_shift 3
455#define MAX_NUM_CN_BITS 4
456#define MAKE_CN_BITS(A, B, C, D ) (( (( ((D) << cn_bits_shift | (C)) << cn_bits_shift ) | (B)) << cn_bits_shift ) | (A))
458#define cn_bits_PNPN MAKE_CN_BITS(cn_bits_P, cn_bits_N, cn_bits_P, cn_bits_N)
459#define cn_bits_NPNP MAKE_CN_BITS(cn_bits_N, cn_bits_P, cn_bits_N, cn_bits_P)
460#define cn_bits_NPN MAKE_CN_BITS(cn_bits_N, cn_bits_P, cn_bits_N, 0)
461#define cn_bits_PNP MAKE_CN_BITS(cn_bits_P, cn_bits_N, cn_bits_P, 0)
462#define cn_bits_MNP MAKE_CN_BITS(cn_bits_M, cn_bits_N, cn_bits_P, 0)
463#define cn_bits_PNM MAKE_CN_BITS(cn_bits_P, cn_bits_N, cn_bits_M, 0)
464#define cn_bits_EN MAKE_CN_BITS(cn_bits_P | cn_bits_M, cn_bits_N, 0, 0)
465#define cn_bits_NMN MAKE_CN_BITS(cn_bits_N, cn_bits_M, cn_bits_N, 0)
466#define cn_bits_NE MAKE_CN_BITS(cn_bits_N, cn_bits_P | cn_bits_M, 0, 0)
467#define cn_bits_NEN MAKE_CN_BITS(cn_bits_N, cn_bits_M | cn_bits_N, cn_bits_N, 0)
468#define cn_bits_NP MAKE_CN_BITS(cn_bits_N, cn_bits_P, 0, 0)
469#define cn_bits_PN MAKE_CN_BITS(cn_bits_P, cn_bits_N, 0, 0)
470#define cn_bits_NM MAKE_CN_BITS(cn_bits_N, cn_bits_M, 0, 0)
471#define cn_bits_MN MAKE_CN_BITS(cn_bits_M, cn_bits_N, 0, 0)
472#define cn_bits_P_ MAKE_CN_BITS(cn_bits_P, 0, 0, 0)
473#define cn_bits_M_ MAKE_CN_BITS(cn_bits_M, 0, 0, 0)
474#define cn_bits_N_ MAKE_CN_BITS(cn_bits_N, 0, 0, 0)
475#define cn_bits_Me (-1)
477#define cnListIndexMe (17)
491#define MAX_DIFF_FIXH 256
492#define MAX_DIFF_MOBH 256
601#ifndef COMPILE_ALL_CPP
614 const char *szCurHdr,
685 const char *szCurHdr,
687 int bHasSomeFixedH );
707 int *pNum_changed_bonds );
710 int nAddEdges2eachAtom,
745 int *pcur_num_vertices,
782 int *pbNeedsFlower );
788 int bIsMetal,
int bMobileH,
AT_NUMB *endpoint );
792 int nVertexCap,
int nVertexFlow,
int nEdgeCap,
int nEdgeFlow,
int nNumEdges );
794 int bAllowZeroBondOrder );
818 INChI *pInChI,
const char *szCurHdr );
823 int *pPathLen,
int *pnDeltaH,
int *pnDeltaCharge,
int *pnNumVisitedAtoms );
831 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
843 int forbidden_edge_mask );
848 EDGE_LIST *pNplus2BondsEdges,
int forbidden_edge_mask );
854 int *pnNumRunBNS,
int *pnTotalDelta,
855 int forbidden_edge_mask );
859 int *pnNumRunBNS,
int *pnTotalDelta,
860 int forbidden_edge_mask );
864 int *pnNumRunBNS,
int *pnTotalDelta,
865 int forbidden_edge_mask,
int forbidden_stereo_edge_mask );
869 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
872 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
875 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
878 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
881 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
884 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
887 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
890 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
893 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
896 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
899 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
902 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
905 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
908 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
911 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
914 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
917 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
920 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
926 int iComponent,
int iAtNoOffset,
long num_inp );
935 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask,
int forbidden_stereo_edge_mask );
962 INChI *pInChI[],
long num_inp,
963 int bHasSomeFixedH,
int *pnNumRunBNS,
965 int forbidden_edge_mask,
966 int forbidden_stereo_edge_mask );
971 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
1000 int forbidden_edge_mask,
1001 int forbidden_stereo_edge_mask );
1009 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask,
1010 int forbidden_stereo_edge_mask );
1017 NUM_H *pProtonBalance,
int *recmet_change_balance );
1025 long num_inp,
int bHasSomeFixedH,
1031 const char *szCurHdr,
long num_inp,
1033 int iAtNoOffset,
int bI2A_Flag,
int bHasSomeFixedH,
1043 int iComponent,
long num_inp,
char *szCurHdr );
1045 long num_inp,
char *szCurHdr,
1048 int bMobileH,
INCHI_MODE CompareInchiFlags[] );
1054 long num_inp,
char *szCurHdr );
1056 InpInChI *pOneInput,
int bHasSomeFixedH,
1057 long num_inp,
char *szCurHdr );
1063 long num_inp,
int bHasSomeFixedH,
1066 NUM_H pProtonBalance[],
1067 NUM_H recmet_change_balance[] );
1073 long num_inp,
int bINChIOutputOptions,
1075 InpInChI *pOneInput,
int bHasSomeFixedH,
1076 unsigned char save_opt_bits );
1081int AddOneMsg(
char *szMsg,
int used_len,
int tot_len,
const char *szAddMsg,
const char *szDelim );
1089 int *bHasFixedH,
int *sFlag,
int *bTautFlag );
1093 long num_inp,
char *szCurHdr,
1100 int iComponent,
int nNumComponents,
int bMobileH,
1101 const char *szCurHdr );
1103 inp_ATOM *at,
int num_at,
const char *szCurHdr );
1106 int *num_unk_und_SB,
int *num_unk_und_SC,
1107 int *num_SC_PIII,
int *num_SC_AsIII );
1117#define KEEP_METAL_EDGE_FLOW 0
1118#define MOVE_CHARGES_FROM_HETEREO_TO_METAL 0
1119#define FIX_ADD_PROTON_FOR_ADP 0
1121#ifndef COMPILE_ALL_CPP
INChI * PINChI2[TAUT_NUM]
Definition ichi.h:259
INChI_Aux * PINChI_Aux2[TAUT_NUM]
Definition ichi.h:302
int EdgeIndex
Definition ichi_bns.h:67
int EdgeFlow
Definition ichi_bns.h:70
int Vertex
Definition ichi_bns.h:66
#define MY_CONST
Definition ichirvrs.h:303
int RestoreAtomConnectionsSetStereo(StrFromINChI *pStruct, int iComponent, int iAtNoOffset, INChI *pInChI, INChI *pInChIMobH)
Definition ichirvr2.c:106
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)
Definition ichirvr2.c:3883
struct tagChargeNodeList CN_LIST
int bIsUnsatCarbonInASmallRing(inp_ATOM *at, VAL_AT *pVA, int iat, BFS_Q *pbfsq, int min_ring_size)
Definition ichirvr5.c:92
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)
Definition ichirvr4.c:1860
int ConnectDisconnectedH(inp_ATOM *at, int num_atoms, int num_deleted_H)
Definition ichirvr1.c:5477
struct tagAtomsCmpTwoFixedH CMP2FHATOMS
int AddCGroups2TCGBnStruct(BN_STRUCT *pBNS, StrFromINChI *pStruct, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int nMaxAddEdges)
Definition ichirvr1.c:3249
int AdjustTgroupsToForbiddenEdges2(BN_STRUCT *pBNS, inp_ATOM *at, VAL_AT *pVA, int num_atoms, int forbidden_mask)
Definition ichirvr2.c:2133
int bRevInchiComponentDeleted(StrFromINChI *pStruct, int iInChI, int bMobileH, int k)
Definition ichiread.c:1859
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)
Definition ichirvr1.c:2923
int OldPrintCompareOneOrigInchiToRevInChI(StrFromINChI *pStruct, INChI *pInChI[TAUT_NUM], int bMobileH, int iComponent, long num_inp, char *szCurHdr)
#define MAX_CN_VAL
Definition ichirvrs.h:432
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)
Definition ichirvr2.c:4662
struct tagXYZCoord XYZ_COORD
struct tagReversedInChI REV_INCHI
struct tagVertCapFlow VCF
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)
Definition ichirvr2.c:1639
void RemoveForbiddenBondFlowBits(BN_STRUCT *pBNS, int forbidden_edge_mask_int)
Definition ichirvr1.c:4888
struct tagStructCmpTwoMobileH CMP2MHINCHI
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)
Definition ichirvr2.c:5809
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)
Definition ichirvr2.c:3519
struct tagAtomIonPrperies VAL_AT
void SetUpSrm(SRM *pSrm)
Definition ichirvr7.c:364
struct tagAtomsCmpTwoMobileH CMP2MHATOMS
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)
Definition ichirvr4.c:3197
int RegisterTCGroup(ALL_TC_GROUPS *pTCGroups, int nGroupType, int nGroupOrdNum, int nVertexCap, int nVertexFlow, int nEdgeCap, int nEdgeFlow, int nNumEdges)
Definition ichirvr1.c:1527
int nNumEdgesToCnVertex(MY_CONST C_NODE *pCN, int len, int v)
Definition ichirvr1.c:3824
struct tagInpAtomAddParities inp_ATOM_STEREO
int FillOutCMP2MHINCHI(StrFromINChI *pStruct, ALL_TC_GROUPS *pTCGroups, inp_ATOM *at2, VAL_AT *pVA, INChI *pInChI[], CMP2MHINCHI *pc2i)
Definition ichirvr4.c:1021
INCHI_MODE CompareReversedStereoINChI3(INChI_Stereo *s1, INChI_Stereo *s2, ICR *picr)
Definition ichirvr7.c:2351
void FreeInpInChI(InpInChI *pOneInput)
Definition ichirvr7.c:1437
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)
Definition ichirvr1.c:5165
int AddTGroups2TCGBnStruct(BN_STRUCT *pBNS, StrFromINChI *pStruct, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int nMaxAddEdges)
Definition ichirvr1.c:2425
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)
Definition ichirvr2.c:4964
struct tagChargeNodes C_NODE
int CompareOneOrigInchiToRevInChI(StrFromINChI *pStruct, INChI *pInChI[TAUT_NUM], int bMobileH, int iComponent, long num_inp, char *szCurHdr, COMPONENT_REM_PROTONS *nCurRemovedProtons, INCHI_MODE CompareInchiFlags[])
Definition ichirvr7.c:2239
struct tagTCGroup TC_GROUP
int FillOutExtraFixedHDataInChI(StrFromINChI *pStruct, INChI *pInChI[])
Definition ichirvr4.c:831
BN_STRUCT * AllocateAndInitTCGBnStruct(StrFromINChI *pStruct, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int nMaxAddAtoms, int nMaxAddEdges, int max_altp, int *pNum_changed_bonds)
Definition ichirvr1.c:3879
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 AllocBfsQueue(BFS_Q *pQ, int num_at, int min_ring_size)
Definition ichirvr1.c:4812
int bHas_N_V(inp_ATOM *at2, int num_atoms)
Definition ichirvr3.c:92
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)
Definition ichirvr5.c:141
int ReallocTCGroups(ALL_TC_GROUPS *pTCGroups, int nAdd)
Definition ichirvr1.c:1502
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)
Definition ichirvr4.c:2372
int CheckBnsConsistency(StrFromINChI *pStruct, BN_STRUCT *pBNS, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int bNoRad)
Definition ichirvr2.c:1155
void CopySt2At(inp_ATOM *at, inp_ATOM_STEREO *st, int num_atoms)
Definition ichirvr2.c:79
struct tagStructRestoreMode SRM
int insertions_sort_AT_NUMB(AT_NUMB *base, int num)
Definition ichiread.c:10516
void SetForbiddenEdgeMask(BN_STRUCT *pBNS, EDGE_LIST *pEdges, int forbidden_edge_mask)
Definition ichirvr1.c:4877
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)
Definition ichirvr2.c:5114
void AddStCapFlow(BNS_VERTEX *vert_ficpoint, int *tot_st_flow, int *tot_st_cap, int cap, int flow)
Definition ichirvr1.c:3218
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)
Definition ichirvr2.c:6269
struct tagChargeValence CHARGE_VAL
int GetPlusMinusVertex(BN_STRUCT *pBNS, ALL_TC_GROUPS *pTCGroups, int bCheckForbiddenPlus, int bCheckForbiddenMinus)
Definition ichirvr5.c:58
INCHI_MODE CompareReversedINChI3(INChI *i1, INChI *i2, INChI_Aux *a1, INChI_Aux *a2, int *err)
Definition ichirvr7.c:2633
tagTCGroupTypes
Definition ichirvrs.h:219
@ TCG_Minus_C0
Definition ichirvrs.h:228
@ TCG_Plus_M0
Definition ichirvrs.h:230
@ TCG_Plus_C1
Definition ichirvrs.h:227
@ TCG_Minus0
Definition ichirvrs.h:224
@ TCG_Plus_C0
Definition ichirvrs.h:226
@ TCG_Minus_C1
Definition ichirvrs.h:229
@ TCG_Minus1
Definition ichirvrs.h:225
@ TCG_Plus_M1
Definition ichirvrs.h:231
@ TCG_MeFlower1
Definition ichirvrs.h:235
@ TCG_MeFlower0
Definition ichirvrs.h:234
@ TCG_Plus1
Definition ichirvrs.h:223
@ TCG_Plus
Definition ichirvrs.h:239
@ TCG_Plus0
Definition ichirvrs.h:222
@ TCG_Minus
Definition ichirvrs.h:240
@ NUM_TCGROUP_TYPES
Definition ichirvrs.h:242
@ TCG_None
Definition ichirvrs.h:220
@ TCG_Minus_M0
Definition ichirvrs.h:232
@ TCG_Minus_M1
Definition ichirvrs.h:233
@ TCG_MeFlower3
Definition ichirvrs.h:237
@ TCG_MeFlower2
Definition ichirvrs.h:236
int RunBnsTestOnce(BN_STRUCT *pBNS, BN_DATA *pBD, VAL_AT *pVA, Vertex *pvFirst, Vertex *pvLast, int *pPathLen, int *pnDeltaH, int *pnDeltaCharge, int *pnNumVisitedAtoms)
Definition ichirvr1.c:4504
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)
Definition ichirvr4.c:3614
int ForbidCarbonChargeEdges(BN_STRUCT *pBNS, ALL_TC_GROUPS *pTCGroups, EDGE_LIST *pCarbonChargeEdges, int forbidden_edge_mask)
Definition ichirvr4.c:57
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)
Definition ichirvr1.c:2743
void FreeStrFromINChI(StrFromINChI *pStruct[INCHI_NUM][TAUT_NUM], int nNumComponents[INCHI_NUM][TAUT_NUM])
Definition ichirvr7.c:1352
void SetStCapFlow(BNS_VERTEX *vert_ficpoint, int *tot_st_flow, int *tot_st_cap, int cap, int flow)
Definition ichirvr1.c:3231
struct tagStructCmpTwoFixedH CMP2FHINCHI
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)
Definition ichirvr2.c:6962
int AddOneMsg(char *szMsg, int used_len, int tot_len, const char *szAddMsg, const char *szDelim)
Definition ichirvr7.c:3127
int RunBnsRestoreOnce(BN_STRUCT *pBNS, BN_DATA *pBD, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups)
Definition ichirvr1.c:4543
int SetStereoBondTypesFrom0DStereo(StrFromINChI *pStruct, INChI *pInChI)
Definition ichirvr2.c:844
void CopyAt2St(inp_ATOM *at, inp_ATOM_STEREO *st, int num_atoms)
Definition ichirvr2.c:57
int MarkDisconectedIdenticalToReconnected(InpInChI *pOneInput)
Definition ichirvr7.c:283
int AtomStcapStflow(inp_ATOM *atom, VAL_AT *pVA, ICHICONST SRM *pSrm, int iat, int *pnStcap, int *pnStflow, EdgeFlow *pnMGroupEdgeCap, EdgeFlow *pnMGroupEdgeFlow)
Definition ichirvr1.c:1790
int get_pVA_atom_type(VAL_AT *pVA, inp_ATOM *at, int iat, int bond_type)
Definition ichirvr1.c:4625
int set_atom_0D_parity(inp_ATOM *at, inp_ATOM_STEREO *st, int num_at, int num_deleted_H, int i1, int parity)
Definition ichirvr2.c:1773
void FreeInputInChI2Struct(InpInChI *pOneInput)
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)
Definition ichirvr4.c:589
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)
Definition ichirvr4.c:1274
int CompareAllDisconnectedOrigInchiToRevInChI(StrFromINChI *pStruct[INCHI_NUM][TAUT_NUM], InpInChI *pOneInput, int bHasSomeFixedH, long num_inp, char *szCurHdr)
Definition ichirvr7.c:1682
int cmp_charge_val(const void *a1, const void *a2, void *)
Definition ichirvr1.c:732
int GetNumNeighborsFromInchi(INChI *pInChI, AT_NUMB nAtNumber)
Definition ichiread.c:1646
void RemoveForbiddenEdgeMask(BN_STRUCT *pBNS, EDGE_LIST *pEdges, int forbidden_edge_mask)
Definition ichirvr1.c:4866
tagTgRestoreFlags
Definition ichirvrs.h:195
@ TGRF_MINUS_FIRST
Definition ichirvrs.h:196
int AddExplicitDeletedH(inp_ATOM *at, int jv, int num_at, int *iDeletedH, int *iH, int nNumDeletedH, int bTwoStereo)
Definition ichirvr2.c:1470
void IncrZeroBonds(inp_ATOM *at, int num_at, int iComponent)
Definition ichirvr1.c:4169
struct tagEdgeList EDGE_LIST
void clear_t_group_info(T_GROUP_INFO *ti)
Definition ichirvr1.c:509
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)
Definition ichirvr2.c:6053
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)
Definition ichirvr4.c:2739
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[])
Definition ichirvr4.c:3476
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 MakeProtonComponent(StrFromINChI *pStruct, int iComponent, int num_prot)
Definition ichirvr4.c:3573
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)
Definition ichirvr2.c:4553
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)
Definition ichirvr2.c:6524
int RemoveFromEdgeListByIndex(EDGE_LIST *pEdges, int index)
Definition ichirvr1.c:4756
int comp_cc_cand(const void *a1, const void *a2)
Definition ichirvr1.c:4581
int nAddSuperCGroups(ALL_TC_GROUPS *pTCGroups)
Definition ichirvr1.c:2279
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)
Definition ichirvr2.c:7657
struct tagRemovedAndExchangeableH REM_PROTONS
int AllocEdgeList(EDGE_LIST *pEdges, int nLen)
Definition ichirvr1.c:4687
int GetChargeFlowerUpperEdge(BN_STRUCT *pBNS, VAL_AT *pVA, int nChargeEdge)
Definition ichirvr1.c:4912
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 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[])
Definition ichirvr4.c:3815
int AddToEdgeList(EDGE_LIST *pEdges, int iedge, int nAddLen)
Definition ichirvr1.c:4735
MY_CONST CN_LIST cnList[]
Definition ichirvr1.c:481
int DetectInpInchiCreationOptions(InpInChI *pOneInput, int *bHasReconnected, int *bHasMetal, int *bHasFixedH, int *sFlag, int *bTautFlag)
Definition ichiread.c:1880
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)
Definition ichirvr2.c:6445
int DisplayRestoredComponent(struct tagCANON_GLOBALS *pCG, StrFromINChI *pStruct, int iComponent, int iAtNoOffset, INChI *pInChI, const char *szCurHdr)
struct tagAllTCGroups ALL_TC_GROUPS
int CompareAllOrigInchiToRevInChI(StrFromINChI *pStruct[INCHI_NUM][TAUT_NUM], InpInChI *pOneInput, int bReqNonTaut, long num_inp, char *szCurHdr)
Definition ichirvr7.c:1547
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)
Definition ichirvr4.c:177
struct tagChargeChangeCandidate CC_CAND
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)
Definition ichirvr1.c:792
enum tagTgRestoreFlags TGRF
int get_bonds_valences(int nPeriodicNum, int bonds_valence, int num_H, VAL_AT *pVA)
#define MAX_DIFF_FIXH
Definition ichirvrs.h:491
int FillOutExtraFixedHDataRestr(StrFromINChI *pStruct)
Definition ichirvr4.c:754
int FillOutCMP2FHINCHI(StrFromINChI *pStruct, inp_ATOM *at2, VAL_AT *pVA, INChI *pInChI[], CMP2FHINCHI *pc2i)
Definition ichirvr4.c:870
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)
Definition ichiread.c:1723
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 FillOutpStructEndpointFromInChI(INChI *pInChI, AT_NUMB **pEndpoint)
Definition ichirvr1.c:692
int RemoveFromEdgeListByValue(EDGE_LIST *pEdges, int iedge)
Definition ichirvr1.c:4791
int bFindCumuleneChain(inp_ATOM *at, AT_NUMB i1, AT_NUMB i2, AT_NUMB nCumulene[], int nMaxLen)
Definition ichirvr2.c:1565
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)
Definition ichirvr4.c:2194
int DisplayAllRestoredComponents(struct tagCANON_GLOBALS *pCG, inp_ATOM *at, int num_at, const char *szCurHdr)
int bRevInchiComponentExists(StrFromINChI *pStruct, int iInChI, int bMobileH, int k)
Definition ichiread.c:1838
void SetEdgeCapFlow(BNS_EDGE *e, int edge_cap, int edge_flow)
Definition ichirvr1.c:2911
int FindInEdgeList(EDGE_LIST *pEdges, int iedge)
Definition ichirvr1.c:4774
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)
Definition ichirvr1.c:5666
struct tagInputInChI InpInChI
void ClearEndpts(inp_ATOM *at, int num_at)
Definition ichirvr1.c:4188
struct tagOneComponentRemovedAndExchangeableH COMPONENT_REM_PROTONS
int nTautEndpointEdgeCap(inp_ATOM *at, VAL_AT *pVA, int i)
Definition ichirvr1.c:1574
int ConnectTwoVertices(BNS_VERTEX *p1, BNS_VERTEX *p2, BNS_EDGE *e, BN_STRUCT *pBNS, int bClearEdge)
Definition ichirvr1.c:2627
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)
Definition ichirvr6.c:59
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)
Definition ichirvr7.c:1041
int bInpInchiComponentExists(InpInChI *pOneInput, int iINCHI, int bMobileH, int k)
Definition ichiread.c:1800
void IncrZeroBondsAndClearEndpts(inp_ATOM *at, int num_at, int iComponent)
Definition ichirvr1.c:4149
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)
Definition ichirvr2.c:1841
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)
Definition ichirvr4.c:398
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)
Definition ichirvr1.c:5084
#define ICHICONST
Definition ichirvrs.h:48
int CompareTwoPairsOfInChI(INChI *pInChI1[TAUT_NUM], INChI *pInChI2[TAUT_NUM], int bMobileH, INCHI_MODE CompareInchiFlags[])
Definition ichirvr7.c:2202
enum tagTCGroupTypes TCGR_TYPE
int EvaluateChargeChanges(BN_STRUCT *pBNS, VAL_AT *pVA, int *pnDeltaH, int *pnDeltaCharge, int *pnNumVisitedAtoms)
Definition ichirvr1.c:4317
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)
Definition ichirvr3.c:333
int get_sp_element_type(int nPeriodicNumber, int *nRow)
Definition ichirvr1.c:1414
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)
Definition ichirvr7.c:101
int set_bond_type(inp_ATOM *at, AT_NUMB i1, AT_NUMB i2, int bType)
Definition ichirvr2.c:1614
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)
Definition ichirvr4.c:116
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)
Definition ichirvr1.c:1870
int RearrangePlusMinusEdgesFlow(BN_STRUCT *pBNS, BN_DATA *pBD, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int forbidden_edge_mask)
Definition ichirvr2.c:3402
int GetTgroupInfoFromInChI(T_GROUP_INFO *ti, inp_ATOM *at, AT_NUMB *endpoint, INChI *pInChI)
Definition ichirvr1.c:575
int bMayBeACationInMobileHLayer(inp_ATOM *at, VAL_AT *pVA, int iat, int bMobileH)
Definition ichirvr1.c:749
int bInpInchiComponentDeleted(InpInChI *pOneInput, int iInChI, int bMobileH, int k)
Definition ichiread.c:1819
int DisplayOneRestoredComponent(struct tagCANON_GLOBALS *pCG, StrFromINChI *pStruct, inp_ATOM *at, int iComponent, int nNumComponents, int bMobileH, const char *szCurHdr)
int FillOutCompareMessage(char *szMsg, int nLenMsg, INCHI_MODE bits[])
Definition ichirvr7.c:3168
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)
Definition ichirvr7.c:406
int GetAtomRestoreInfo(struct tagCANON_GLOBALS *pCG, inp_ATOM *atom, int iat, VAL_AT *pVArray, ICHICONST SRM *pSrm, int bMobileH, AT_NUMB *endpoint)
Definition ichirvr1.c:912
int AddRadicalToMetal(int *tot_st_cap, int *tot_st_flow, ICHICONST SRM *pSrm, BN_STRUCT *pBNS, ALL_TC_GROUPS *pTCGroups)
Definition ichirvr1.c:2706
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)
Definition ichirvr4.c:1678
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)
Definition ichirvr2.c:3735
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)
Definition ichirvr1.c:5884
int BondFlowMaxcapMinorder(inp_ATOM *atom, VAL_AT *pVA, ICHICONST SRM *pSrm, int iat, int ineigh, int *pnMaxcap, int *pnMinorder, int *pbNeedsFlower)
Definition ichirvr1.c:1690
int DisconnectedConnectedH(inp_ATOM *at, int num_atoms, int num_deleted_H)
Definition ichirvr1.c:5591
int CopyBnsToAtom(StrFromINChI *pStruct, BN_STRUCT *pBNS, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int bAllowZeroBondOrder)
Definition ichirvr2.c:979
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)
Definition ichirvr1.c:3058
struct tagStructFromInChI StrFromINChI
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)
Definition ichirvr7.c:1179
int SetStereoBondTypeFor0DParity(inp_ATOM *at, int i1, int m1)
Definition ichirvr2.c:790
const int cnListNumEl
Definition ichirvr1.c:504
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)
void RemoveFixHInChIIdentical2MobH(InpInChI *pOneInput)
Definition ichirvr7.c:256
struct tagEdgeCapFlow ECF
unsigned short AT_NUMB
Definition ichisize.h:45
unsigned short AT_RANK
Definition ichisize.h:46
signed short NUM_H
Definition ichisize.h:49
unsigned long INCHI_MODE
Definition ichisize.h:60
signed char S_CHAR
Definition inchi_api.h:113
#define NUM_H_ISOTOPES
Definition inchi_api.h:107
unsigned char U_CHAR
Definition inchi_api.h:114
#define INCHI_NUM
Definition inchi_api.h:1179
#define MAX_NUM_STEREO_BONDS
Definition inchi_api.h:1176
signed short S_SHORT
Definition inchi_api.h:119
#define MAX_NUM_STEREO_ATOM_NEIGH
Definition inchi_api.h:1173
#define TAUT_NUM
Definition mode.h:593
Definition ichi_bns.h:286
Definition ichi_bns.h:233
Definition ichi_bns.h:190
Definition ichi_bns.h:214
Definition ichirvrs.h:245
int num_tgroup_edges
Definition ichirvrs.h:256
int tgroup_charge
Definition ichirvrs.h:258
int nEdgePlus
Definition ichirvrs.h:270
TC_GROUP * pTCG
Definition ichirvrs.h:246
int max_tc_groups
Definition ichirvrs.h:248
int iAtNoOffset
Definition ichirvrs.h:273
int nVertices
Definition ichirvrs.h:250
int num_tc_groups
Definition ichirvrs.h:247
int nEdgeMinus
Definition ichirvrs.h:271
int total_charge
Definition ichirvrs.h:261
int added_charge
Definition ichirvrs.h:260
int nGroup[NUM_TCGROUP_TYPES]
Definition ichirvrs.h:249
int nEdges
Definition ichirvrs.h:251
int num_tgroups
Definition ichirvrs.h:255
int num_atoms
Definition ichirvrs.h:253
int nEdge4charge
Definition ichirvrs.h:269
int num_metal_atoms
Definition ichirvrs.h:265
int iComponent
Definition ichirvrs.h:272
int nAddIedges
Definition ichirvrs.h:252
int total_electrons_metals
Definition ichirvrs.h:263
int total_electrons
Definition ichirvrs.h:262
int num_metal_bonds
Definition ichirvrs.h:266
int num_bonds
Definition ichirvrs.h:254
int charge_on_atoms
Definition ichirvrs.h:259
Definition ichirvrs.h:168
char cMaxFlowToMetal
Definition ichirvrs.h:176
int nCMinusGroupEdge
Definition ichirvrs.h:184
char cMetal
Definition ichirvrs.h:171
char cInitFreeValences
Definition ichirvrs.h:177
S_CHAR cnListIndex
Definition ichirvrs.h:183
char cMinRingSize
Definition ichirvrs.h:181
S_CHAR cInitCharge
Definition ichirvrs.h:178
char cNumBondsToMetal
Definition ichirvrs.h:172
char cInitFlowToMetal
Definition ichirvrs.h:173
char cNumValenceElectrons
Definition ichirvrs.h:179
int nCPlusGroupEdge
Definition ichirvrs.h:185
char cInitValenceToMetal
Definition ichirvrs.h:174
char cPeriodicRowNumber
Definition ichirvrs.h:180
char cDoNotAddH
Definition ichirvrs.h:170
U_CHAR cPeriodicNumber
Definition ichirvrs.h:182
int nTautGroupEdge
Definition ichirvrs.h:187
int nMetalGroupEdge
Definition ichirvrs.h:186
char cInitOrigValenceToMetal
Definition ichirvrs.h:175
Definition ichirvrs.h:493
S_CHAR nMobHInChI
Definition ichirvrs.h:501
U_CHAR nValElectr
Definition ichirvrs.h:497
S_CHAR nFixHInChI
Definition ichirvrs.h:499
S_CHAR nMobHRevrs
Definition ichirvrs.h:502
U_CHAR nPeriodNum
Definition ichirvrs.h:498
AT_NUMB endptRevrs
Definition ichirvrs.h:495
S_CHAR nValue
Definition ichirvrs.h:505
S_CHAR nAtChargeRevrs
Definition ichirvrs.h:504
S_CHAR nFixHRevrs
Definition ichirvrs.h:500
AT_NUMB atomNumber
Definition ichirvrs.h:496
AT_NUMB endptInChI
Definition ichirvrs.h:494
S_CHAR nNumHRevrs
Definition ichirvrs.h:503
Definition ichirvrs.h:535
U_CHAR nValElectr
Definition ichirvrs.h:539
S_CHAR nAtChargeRevrs
Definition ichirvrs.h:544
S_CHAR nValue
Definition ichirvrs.h:545
U_CHAR nPeriodNum
Definition ichirvrs.h:540
AT_NUMB atomNumber
Definition ichirvrs.h:538
AT_NUMB endptInChI
Definition ichirvrs.h:536
S_CHAR nMobHRevrs
Definition ichirvrs.h:542
AT_NUMB endptRevrs
Definition ichirvrs.h:537
S_CHAR nMobHInChI
Definition ichirvrs.h:541
S_CHAR nNumHRevrs
Definition ichirvrs.h:543
AT_RANK * nAtomLevel
Definition ichirvrs.h:99
int num_at
Definition ichirvrs.h:101
S_CHAR * cSource
Definition ichirvrs.h:100
QUEUE * q
Definition ichirvrs.h:98
AT_RANK min_ring_size
Definition ichirvrs.h:102
Definition ichicant.h:338
Definition ichirvrs.h:305
char cMetal
Definition ichirvrs.h:309
char chem_valence
Definition ichirvrs.h:308
char cNumValenceElectrons
Definition ichirvrs.h:311
char num_bonds
Definition ichirvrs.h:307
char cNumBondsToMetal
Definition ichirvrs.h:310
Vertex iat
Definition ichirvrs.h:306
char cPeriodicRowNumber
Definition ichirvrs.h:312
char cNumChargeStates
Definition ichirvrs.h:313
U_CHAR el_number
Definition ichirvrs.h:314
Definition ichirvrs.h:481
int len
Definition ichirvrs.h:485
int nInitialCharge
Definition ichirvrs.h:484
int bits
Definition ichirvrs.h:483
MY_CONST C_NODE * pCN
Definition ichirvrs.h:482
Definition ichirvrs.h:445
VCF v
Definition ichirvrs.h:446
ECF e[MAX_CN_VAL]
Definition ichirvrs.h:447
Definition ichirvrs.h:297
int nCharge
Definition ichirvrs.h:299
int nValence
Definition ichirvrs.h:298
int nValenceOrderingNumber
Definition ichirvrs.h:300
Definition ichirvrs.h:439
S_CHAR flow
Definition ichirvrs.h:443
S_CHAR cap
Definition ichirvrs.h:441
S_CHAR bForbiddenEdge
Definition ichirvrs.h:442
S_SHORT neigh
Definition ichirvrs.h:440
Definition ichirvrs.h:280
EdgeIndex * pnEdges
Definition ichirvrs.h:283
int num_alloc
Definition ichirvrs.h:281
int num_edges
Definition ichirvrs.h:282
Definition ichirvrs.h:110
S_CHAR bUsed0DParity
Definition ichirvrs.h:112
S_CHAR sn_ord[MAX_NUM_STEREO_BONDS]
Definition ichirvrs.h:119
AT_NUMB sn_orig_at_num[MAX_NUM_STEREO_BONDS]
Definition ichirvrs.h:123
S_CHAR p_parity
Definition ichirvrs.h:114
S_CHAR sb_ord[MAX_NUM_STEREO_BONDS]
Definition ichirvrs.h:117
AT_NUMB p_orig_at_num[MAX_NUM_STEREO_ATOM_NEIGH]
Definition ichirvrs.h:115
S_CHAR sb_parity[MAX_NUM_STEREO_BONDS]
Definition ichirvrs.h:122
Definition ichirvrs.h:317
NUM_H nNumRemovedIsotopicH[NUM_H_ISOTOPES]
Definition ichirvrs.h:319
NUM_H nNumRemovedProtons
Definition ichirvrs.h:318
Definition ichirvrs.h:323
NUM_H nNumRemovedIsotopicH[NUM_H_ISOTOPES]
Definition ichirvrs.h:326
COMPONENT_REM_PROTONS * pNumProtons
Definition ichirvrs.h:329
NUM_H nNumRemovedProtons
Definition ichirvrs.h:325
int nRetVal
Definition ichirvrs.h:91
PINChI2 * pINChI[INCHI_NUM]
Definition ichirvrs.h:88
int num_components[INCHI_NUM]
Definition ichirvrs.h:90
PINChI_Aux2 * pINChI_Aux[INCHI_NUM]
Definition ichirvrs.h:89
Definition ichirvrs.h:198
short tg_num_Minus
Definition ichirvrs.h:214
int nBackwardEdge
Definition ichirvrs.h:210
short tg_RestoreFlags
Definition ichirvrs.h:216
int nVertexNumber
Definition ichirvrs.h:207
int ord_num
Definition ichirvrs.h:200
int st_flow
Definition ichirvrs.h:204
int num_edges
Definition ichirvrs.h:201
int type
Definition ichirvrs.h:199
int st_cap
Definition ichirvrs.h:203
int nForwardEdge
Definition ichirvrs.h:208
short tg_num_H
Definition ichirvrs.h:213
int edges_flow
Definition ichirvrs.h:206
Vertex tg_set_Minus
Definition ichirvrs.h:215
int edges_cap
Definition ichirvrs.h:205
Definition ichitaut.h:222
Definition ichirvrs.h:433
S_CHAR valence
Definition ichirvrs.h:437
S_SHORT type
Definition ichirvrs.h:434
S_CHAR cap
Definition ichirvrs.h:435
S_CHAR flow
Definition ichirvrs.h:436
double xyz[3]
Definition ichirvrs.h:66