13#define ICHICONST const
15#define RI_ERR_ALLOC (-1)
16#define RI_ERR_SYNTAX (-2)
17#define RI_ERR_PROGR (-3)
18#define RI_ERR_EOL (-4)
21#define RI_ERR_MISMATCH (-9)
23#define NO_VALUE_INT 9999
24#define NOT_READ_INT 9998
28#define INC_EDGE_LIST_DEFAULT 64
60#define BFS_Q_CLEAR (-1)
61#define BFS_Q_FREE (-2)
71#define EXTRACT_STRUCT_NUMBER 1
91#define FIX_STEREO_BOND_ORDER 0
93#define METAL_FREE_CHARGE_VAL 1
94#define ALLOW_METAL_BOND_ZERO 1
96#if ( ALLOW_METAL_BOND_ZERO == 1 )
98#define INIT_METAL_BOND_ZERO 0
99#define INIT_METAL_BOND_FLOW 1
101#define INIT_METAL_BOND_ZERO 0
102#define INIT_METAL_BOND_FLOW 0
105#define I2A_FLAG_FIXEDH 0x0001
106#define I2A_FLAG_RECMET 0x0002
124#define VAL_MIN_CHARGE (-1)
125#define VAL_MAX_CHARGE ( 1)
126#define VAL_NUMBER ( 2)
127#define VAL_NEUTR_ORDER (VAL_MAX_CHARGE-VAL_MIN_CHARGE+1)
128#define VAL_LENGTH (VAL_NEUTR_ORDER+1)
129#define VAL_NEGAT_CHARGE 0
130#define VAL_NEUTR_CHARGE 1
131#define VAL_POSIT_CHARGE 2
157#define INI_NUM_TCGROUPS 16
158#define INC_NUM_TCGROUPS 16
242#define EDGE_LIST_CLEAR (-1)
243#define EDGE_LIST_FREE (-2)
252#define BOND_MARK_STEREO 0x10
253#define BOND_TYPE_STEREO (BOND_TYPE_SINGLE | BOND_MARK_STEREO)
256#define RESET_EDGE_FORBIDDEN_MASK 0
258#define TREAT_ATOM_AS_METAL 99
268#define MY_CONST const
386#define EL_TYPE_O 0x0001
387#define EL_TYPE_S 0x0002
388#define EL_TYPE_N 0x0004
389#define EL_TYPE_P 0x0008
390#define EL_TYPE_C 0x0010
391#define EL_TYPE_X 0x0020
392#define EL_TYPE_MASK 0x003f
393#define EL_TYPE_OSt 0x0100
394#define EL_TYPE_PT 0x0200
419#define cn_bits_shift 3
420#define MAX_NUM_CN_BITS 4
421#define MAKE_CN_BITS(A, B, C, D ) (( (( ((D) << cn_bits_shift | (C)) << cn_bits_shift ) | (B)) << cn_bits_shift ) | (A))
423#define cn_bits_PNPN MAKE_CN_BITS(cn_bits_P, cn_bits_N, cn_bits_P, cn_bits_N)
424#define cn_bits_NPNP MAKE_CN_BITS(cn_bits_N, cn_bits_P, cn_bits_N, cn_bits_P)
425#define cn_bits_NPN MAKE_CN_BITS(cn_bits_N, cn_bits_P, cn_bits_N, 0)
426#define cn_bits_PNP MAKE_CN_BITS(cn_bits_P, cn_bits_N, cn_bits_P, 0)
427#define cn_bits_MNP MAKE_CN_BITS(cn_bits_M, cn_bits_N, cn_bits_P, 0)
428#define cn_bits_PNM MAKE_CN_BITS(cn_bits_P, cn_bits_N, cn_bits_M, 0)
429#define cn_bits_EN MAKE_CN_BITS(cn_bits_P | cn_bits_M, cn_bits_N, 0, 0)
430#define cn_bits_NMN MAKE_CN_BITS(cn_bits_N, cn_bits_M, cn_bits_N, 0)
431#define cn_bits_NE MAKE_CN_BITS(cn_bits_N, cn_bits_P | cn_bits_M, 0, 0)
432#define cn_bits_NEN MAKE_CN_BITS(cn_bits_N, cn_bits_M | cn_bits_N, cn_bits_N, 0)
433#define cn_bits_NP MAKE_CN_BITS(cn_bits_N, cn_bits_P, 0, 0)
434#define cn_bits_PN MAKE_CN_BITS(cn_bits_P, cn_bits_N, 0, 0)
435#define cn_bits_NM MAKE_CN_BITS(cn_bits_N, cn_bits_M, 0, 0)
436#define cn_bits_MN MAKE_CN_BITS(cn_bits_M, cn_bits_N, 0, 0)
437#define cn_bits_P_ MAKE_CN_BITS(cn_bits_P, 0, 0, 0)
438#define cn_bits_M_ MAKE_CN_BITS(cn_bits_M, 0, 0, 0)
439#define cn_bits_N_ MAKE_CN_BITS(cn_bits_N, 0, 0, 0)
440#define cn_bits_Me (-1)
442#define cnListIndexMe (17)
456#define MAX_DIFF_FIXH 256
457#define MAX_DIFF_MOBH 256
566#ifndef COMPILE_ALL_CPP
579 const char *szCurHdr,
650 const char *szCurHdr,
652 int bHasSomeFixedH );
672 int *pNum_changed_bonds );
675 int nAddEdges2eachAtom,
710 int *pcur_num_vertices,
747 int *pbNeedsFlower );
753 int bIsMetal,
int bMobileH,
AT_NUMB *endpoint );
757 int nVertexCap,
int nVertexFlow,
int nEdgeCap,
int nEdgeFlow,
int nNumEdges );
759 int bAllowZeroBondOrder );
783 INChI *pInChI,
const char *szCurHdr );
788 int *pPathLen,
int *pnDeltaH,
int *pnDeltaCharge,
int *pnNumVisitedAtoms );
796 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
808 int forbidden_edge_mask );
813 EDGE_LIST *pNplus2BondsEdges,
int forbidden_edge_mask );
819 int *pnNumRunBNS,
int *pnTotalDelta,
820 int forbidden_edge_mask );
824 int *pnNumRunBNS,
int *pnTotalDelta,
825 int forbidden_edge_mask );
829 int *pnNumRunBNS,
int *pnTotalDelta,
830 int forbidden_edge_mask,
int forbidden_stereo_edge_mask );
834 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
837 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
840 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
843 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
846 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
849 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
852 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
855 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
858 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
861 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
864 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
867 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
870 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
873 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
876 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
879 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
882 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
885 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
891 int iComponent,
int iAtNoOffset,
long num_inp );
900 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask,
int forbidden_stereo_edge_mask );
927 INChI *pInChI[],
long num_inp,
928 int bHasSomeFixedH,
int *pnNumRunBNS,
930 int forbidden_edge_mask,
931 int forbidden_stereo_edge_mask );
936 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask );
965 int forbidden_edge_mask,
966 int forbidden_stereo_edge_mask );
974 int *pnNumRunBNS,
int *pnTotalDelta,
int forbidden_edge_mask,
975 int forbidden_stereo_edge_mask );
982 NUM_H *pProtonBalance,
int *recmet_change_balance );
990 long num_inp,
int bHasSomeFixedH,
996 const char *szCurHdr,
long num_inp,
998 int iAtNoOffset,
int bI2A_Flag,
int bHasSomeFixedH,
1008 int iComponent,
long num_inp,
char *szCurHdr );
1010 long num_inp,
char *szCurHdr,
1013 int bMobileH,
INCHI_MODE CompareInchiFlags[] );
1019 long num_inp,
char *szCurHdr );
1021 InpInChI *pOneInput,
int bHasSomeFixedH,
1022 long num_inp,
char *szCurHdr );
1028 long num_inp,
int bHasSomeFixedH,
1031 NUM_H pProtonBalance[],
1032 NUM_H recmet_change_balance[] );
1038 long num_inp,
int bINChIOutputOptions,
1040 InpInChI *pOneInput,
int bHasSomeFixedH,
1041 unsigned char save_opt_bits );
1046int AddOneMsg(
char *szMsg,
int used_len,
int tot_len,
const char *szAddMsg,
const char *szDelim );
1054 int *bHasFixedH,
int *sFlag,
int *bTautFlag );
1058 long num_inp,
char *szCurHdr,
1065 int iComponent,
int nNumComponents,
int bMobileH,
1066 const char *szCurHdr );
1068 inp_ATOM *at,
int num_at,
const char *szCurHdr );
1071 int *num_unk_und_SB,
int *num_unk_und_SC,
1072 int *num_SC_PIII,
int *num_SC_AsIII );
1082#define KEEP_METAL_EDGE_FLOW 0
1083#define MOVE_CHARGES_FROM_HETEREO_TO_METAL 0
1084#define FIX_ADD_PROTON_FOR_ADP 0
1086#ifndef COMPILE_ALL_CPP
INChI * PINChI2[TAUT_NUM]
Definition ichi.h:224
INChI_Aux * PINChI_Aux2[TAUT_NUM]
Definition ichi.h:267
int EdgeIndex
Definition ichi_bns.h:32
int EdgeFlow
Definition ichi_bns.h:35
int Vertex
Definition ichi_bns.h:31
#define MY_CONST
Definition ichirvrs.h:268
int RestoreAtomConnectionsSetStereo(StrFromINChI *pStruct, int iComponent, int iAtNoOffset, INChI *pInChI, INChI *pInChIMobH)
Definition ichirvr2.c:71
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:3849
struct tagChargeNodeList CN_LIST
int bIsUnsatCarbonInASmallRing(inp_ATOM *at, VAL_AT *pVA, int iat, BFS_Q *pbfsq, int min_ring_size)
Definition ichirvr5.c:57
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:1825
int ConnectDisconnectedH(inp_ATOM *at, int num_atoms, int num_deleted_H)
Definition ichirvr1.c:5446
struct tagAtomsCmpTwoFixedH CMP2FHATOMS
int AddCGroups2TCGBnStruct(BN_STRUCT *pBNS, StrFromINChI *pStruct, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int nMaxAddEdges)
Definition ichirvr1.c:3214
int AdjustTgroupsToForbiddenEdges2(BN_STRUCT *pBNS, inp_ATOM *at, VAL_AT *pVA, int num_atoms, int forbidden_mask)
Definition ichirvr2.c:2099
int bRevInchiComponentDeleted(StrFromINChI *pStruct, int iInChI, int bMobileH, int k)
Definition ichiread.c:1824
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:2888
int OldPrintCompareOneOrigInchiToRevInChI(StrFromINChI *pStruct, INChI *pInChI[TAUT_NUM], int bMobileH, int iComponent, long num_inp, char *szCurHdr)
#define MAX_CN_VAL
Definition ichirvrs.h:397
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:4628
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:1604
void RemoveForbiddenBondFlowBits(BN_STRUCT *pBNS, int forbidden_edge_mask_int)
Definition ichirvr1.c:4856
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:5775
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:3485
struct tagAtomIonPrperies VAL_AT
void SetUpSrm(SRM *pSrm)
Definition ichirvr7.c:329
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:3163
int RegisterTCGroup(ALL_TC_GROUPS *pTCGroups, int nGroupType, int nGroupOrdNum, int nVertexCap, int nVertexFlow, int nEdgeCap, int nEdgeFlow, int nNumEdges)
Definition ichirvr1.c:1492
int nNumEdgesToCnVertex(MY_CONST C_NODE *pCN, int len, int v)
Definition ichirvr1.c:3789
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:986
INCHI_MODE CompareReversedStereoINChI3(INChI_Stereo *s1, INChI_Stereo *s2, ICR *picr)
Definition ichirvr7.c:2327
void FreeInpInChI(InpInChI *pOneInput)
Definition ichirvr7.c:1403
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:5133
int AddTGroups2TCGBnStruct(BN_STRUCT *pBNS, StrFromINChI *pStruct, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int nMaxAddEdges)
Definition ichirvr1.c:2390
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:4930
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:2205
struct tagTCGroup TC_GROUP
int FillOutExtraFixedHDataInChI(StrFromINChI *pStruct, INChI *pInChI[])
Definition ichirvr4.c:796
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:3844
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:4780
int bHas_N_V(inp_ATOM *at2, int num_atoms)
Definition ichirvr3.c:57
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:106
int ReallocTCGroups(ALL_TC_GROUPS *pTCGroups, int nAdd)
Definition ichirvr1.c:1467
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:2338
int CheckBnsConsistency(StrFromINChI *pStruct, BN_STRUCT *pBNS, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int bNoRad)
Definition ichirvr2.c:1120
void CopySt2At(inp_ATOM *at, inp_ATOM_STEREO *st, int num_atoms)
Definition ichirvr2.c:44
struct tagStructRestoreMode SRM
int insertions_sort_AT_NUMB(AT_NUMB *base, int num)
Definition ichiread.c:10512
void SetForbiddenEdgeMask(BN_STRUCT *pBNS, EDGE_LIST *pEdges, int forbidden_edge_mask)
Definition ichirvr1.c:4845
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:5080
void AddStCapFlow(BNS_VERTEX *vert_ficpoint, int *tot_st_flow, int *tot_st_cap, int cap, int flow)
Definition ichirvr1.c:3183
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:6235
struct tagChargeValence CHARGE_VAL
int GetPlusMinusVertex(BN_STRUCT *pBNS, ALL_TC_GROUPS *pTCGroups, int bCheckForbiddenPlus, int bCheckForbiddenMinus)
Definition ichirvr5.c:23
INCHI_MODE CompareReversedINChI3(INChI *i1, INChI *i2, INChI_Aux *a1, INChI_Aux *a2, int *err)
Definition ichirvr7.c:2609
tagTCGroupTypes
Definition ichirvrs.h:184
@ TCG_Minus_C0
Definition ichirvrs.h:193
@ TCG_Plus_M0
Definition ichirvrs.h:195
@ TCG_Plus_C1
Definition ichirvrs.h:192
@ TCG_Minus0
Definition ichirvrs.h:189
@ TCG_Plus_C0
Definition ichirvrs.h:191
@ TCG_Minus_C1
Definition ichirvrs.h:194
@ TCG_Minus1
Definition ichirvrs.h:190
@ TCG_Plus_M1
Definition ichirvrs.h:196
@ TCG_MeFlower1
Definition ichirvrs.h:200
@ TCG_MeFlower0
Definition ichirvrs.h:199
@ TCG_Plus1
Definition ichirvrs.h:188
@ TCG_Plus
Definition ichirvrs.h:204
@ TCG_Plus0
Definition ichirvrs.h:187
@ TCG_Minus
Definition ichirvrs.h:205
@ NUM_TCGROUP_TYPES
Definition ichirvrs.h:207
@ TCG_None
Definition ichirvrs.h:185
@ TCG_Minus_M0
Definition ichirvrs.h:197
@ TCG_Minus_M1
Definition ichirvrs.h:198
@ TCG_MeFlower3
Definition ichirvrs.h:202
@ TCG_MeFlower2
Definition ichirvrs.h:201
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:4472
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:3580
int ForbidCarbonChargeEdges(BN_STRUCT *pBNS, ALL_TC_GROUPS *pTCGroups, EDGE_LIST *pCarbonChargeEdges, int forbidden_edge_mask)
Definition ichirvr4.c:22
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:2708
void FreeStrFromINChI(StrFromINChI *pStruct[INCHI_NUM][TAUT_NUM], int nNumComponents[INCHI_NUM][TAUT_NUM])
Definition ichirvr7.c:1318
void SetStCapFlow(BNS_VERTEX *vert_ficpoint, int *tot_st_flow, int *tot_st_cap, int cap, int flow)
Definition ichirvr1.c:3196
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:6928
int AddOneMsg(char *szMsg, int used_len, int tot_len, const char *szAddMsg, const char *szDelim)
Definition ichirvr7.c:3103
int RunBnsRestoreOnce(BN_STRUCT *pBNS, BN_DATA *pBD, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups)
Definition ichirvr1.c:4511
int SetStereoBondTypesFrom0DStereo(StrFromINChI *pStruct, INChI *pInChI)
Definition ichirvr2.c:809
void CopyAt2St(inp_ATOM *at, inp_ATOM_STEREO *st, int num_atoms)
Definition ichirvr2.c:22
int MarkDisconectedIdenticalToReconnected(InpInChI *pOneInput)
Definition ichirvr7.c:248
int AtomStcapStflow(inp_ATOM *atom, VAL_AT *pVA, ICHICONST SRM *pSrm, int iat, int *pnStcap, int *pnStflow, EdgeFlow *pnMGroupEdgeCap, EdgeFlow *pnMGroupEdgeFlow)
Definition ichirvr1.c:1755
int get_pVA_atom_type(VAL_AT *pVA, inp_ATOM *at, int iat, int bond_type)
Definition ichirvr1.c:4593
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:1738
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:554
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:1239
int CompareAllDisconnectedOrigInchiToRevInChI(StrFromINChI *pStruct[INCHI_NUM][TAUT_NUM], InpInChI *pOneInput, int bHasSomeFixedH, long num_inp, char *szCurHdr)
Definition ichirvr7.c:1648
int cmp_charge_val(const void *a1, const void *a2, void *)
Definition ichirvr1.c:697
int GetNumNeighborsFromInchi(INChI *pInChI, AT_NUMB nAtNumber)
Definition ichiread.c:1611
void RemoveForbiddenEdgeMask(BN_STRUCT *pBNS, EDGE_LIST *pEdges, int forbidden_edge_mask)
Definition ichirvr1.c:4834
tagTgRestoreFlags
Definition ichirvrs.h:160
@ TGRF_MINUS_FIRST
Definition ichirvrs.h:161
int AddExplicitDeletedH(inp_ATOM *at, int jv, int num_at, int *iDeletedH, int *iH, int nNumDeletedH, int bTwoStereo)
Definition ichirvr2.c:1435
void IncrZeroBonds(inp_ATOM *at, int num_at, int iComponent)
Definition ichirvr1.c:4137
struct tagEdgeList EDGE_LIST
void clear_t_group_info(T_GROUP_INFO *ti)
Definition ichirvr1.c:474
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:6019
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:2705
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:3442
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:3539
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:4519
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:6490
int RemoveFromEdgeListByIndex(EDGE_LIST *pEdges, int index)
Definition ichirvr1.c:4724
int comp_cc_cand(const void *a1, const void *a2)
Definition ichirvr1.c:4549
int nAddSuperCGroups(ALL_TC_GROUPS *pTCGroups)
Definition ichirvr1.c:2244
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:7623
struct tagRemovedAndExchangeableH REM_PROTONS
int AllocEdgeList(EDGE_LIST *pEdges, int nLen)
Definition ichirvr1.c:4655
int GetChargeFlowerUpperEdge(BN_STRUCT *pBNS, VAL_AT *pVA, int nChargeEdge)
Definition ichirvr1.c:4880
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:3781
int AddToEdgeList(EDGE_LIST *pEdges, int iedge, int nAddLen)
Definition ichirvr1.c:4703
MY_CONST CN_LIST cnList[]
Definition ichirvr1.c:446
int DetectInpInchiCreationOptions(InpInChI *pOneInput, int *bHasReconnected, int *bHasMetal, int *bHasFixedH, int *sFlag, int *bTautFlag)
Definition ichiread.c:1845
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:6411
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:1513
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:142
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:757
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:456
int FillOutExtraFixedHDataRestr(StrFromINChI *pStruct)
Definition ichirvr4.c:719
int FillOutCMP2FHINCHI(StrFromINChI *pStruct, inp_ATOM *at2, VAL_AT *pVA, INChI *pInChI[], CMP2FHINCHI *pc2i)
Definition ichirvr4.c:835
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:1688
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:657
int RemoveFromEdgeListByValue(EDGE_LIST *pEdges, int iedge)
Definition ichirvr1.c:4759
int bFindCumuleneChain(inp_ATOM *at, AT_NUMB i1, AT_NUMB i2, AT_NUMB nCumulene[], int nMaxLen)
Definition ichirvr2.c:1530
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:2159
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:1803
void SetEdgeCapFlow(BNS_EDGE *e, int edge_cap, int edge_flow)
Definition ichirvr1.c:2876
int FindInEdgeList(EDGE_LIST *pEdges, int iedge)
Definition ichirvr1.c:4742
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:5635
struct tagInputInChI InpInChI
void ClearEndpts(inp_ATOM *at, int num_at)
Definition ichirvr1.c:4156
struct tagOneComponentRemovedAndExchangeableH COMPONENT_REM_PROTONS
int nTautEndpointEdgeCap(inp_ATOM *at, VAL_AT *pVA, int i)
Definition ichirvr1.c:1539
int ConnectTwoVertices(BNS_VERTEX *p1, BNS_VERTEX *p2, BNS_EDGE *e, BN_STRUCT *pBNS, int bClearEdge)
Definition ichirvr1.c:2592
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:24
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:1007
int bInpInchiComponentExists(InpInChI *pOneInput, int iINCHI, int bMobileH, int k)
Definition ichiread.c:1765
void IncrZeroBondsAndClearEndpts(inp_ATOM *at, int num_at, int iComponent)
Definition ichirvr1.c:4117
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:1806
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:363
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:5052
#define ICHICONST
Definition ichirvrs.h:13
int CompareTwoPairsOfInChI(INChI *pInChI1[TAUT_NUM], INChI *pInChI2[TAUT_NUM], int bMobileH, INCHI_MODE CompareInchiFlags[])
Definition ichirvr7.c:2168
enum tagTCGroupTypes TCGR_TYPE
int EvaluateChargeChanges(BN_STRUCT *pBNS, VAL_AT *pVA, int *pnDeltaH, int *pnDeltaCharge, int *pnNumVisitedAtoms)
Definition ichirvr1.c:4285
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:298
int get_sp_element_type(int nPeriodicNumber, int *nRow)
Definition ichirvr1.c:1379
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:66
int set_bond_type(inp_ATOM *at, AT_NUMB i1, AT_NUMB i2, int bType)
Definition ichirvr2.c:1579
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:81
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:1835
int RearrangePlusMinusEdgesFlow(BN_STRUCT *pBNS, BN_DATA *pBD, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int forbidden_edge_mask)
Definition ichirvr2.c:3368
int GetTgroupInfoFromInChI(T_GROUP_INFO *ti, inp_ATOM *at, AT_NUMB *endpoint, INChI *pInChI)
Definition ichirvr1.c:540
int bMayBeACationInMobileHLayer(inp_ATOM *at, VAL_AT *pVA, int iat, int bMobileH)
Definition ichirvr1.c:714
int bInpInchiComponentDeleted(InpInChI *pOneInput, int iInChI, int bMobileH, int k)
Definition ichiread.c:1784
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:3144
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:371
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:877
int AddRadicalToMetal(int *tot_st_cap, int *tot_st_flow, ICHICONST SRM *pSrm, BN_STRUCT *pBNS, ALL_TC_GROUPS *pTCGroups)
Definition ichirvr1.c:2671
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:1643
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:3701
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:5854
int BondFlowMaxcapMinorder(inp_ATOM *atom, VAL_AT *pVA, ICHICONST SRM *pSrm, int iat, int ineigh, int *pnMaxcap, int *pnMinorder, int *pbNeedsFlower)
Definition ichirvr1.c:1655
int DisconnectedConnectedH(inp_ATOM *at, int num_atoms, int num_deleted_H)
Definition ichirvr1.c:5560
int CopyBnsToAtom(StrFromINChI *pStruct, BN_STRUCT *pBNS, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int bAllowZeroBondOrder)
Definition ichirvr2.c:944
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:3023
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:1145
int SetStereoBondTypeFor0DParity(inp_ATOM *at, int i1, int m1)
Definition ichirvr2.c:755
const int cnListNumEl
Definition ichirvr1.c:469
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:221
struct tagEdgeCapFlow ECF
unsigned short AT_NUMB
Definition ichisize.h:10
unsigned short AT_RANK
Definition ichisize.h:11
signed short NUM_H
Definition ichisize.h:14
unsigned long INCHI_MODE
Definition ichisize.h:25
signed char S_CHAR
Definition inchi_api.h:78
#define NUM_H_ISOTOPES
Definition inchi_api.h:72
unsigned char U_CHAR
Definition inchi_api.h:79
#define INCHI_NUM
Definition inchi_api.h:1144
#define MAX_NUM_STEREO_BONDS
Definition inchi_api.h:1141
signed short S_SHORT
Definition inchi_api.h:84
#define MAX_NUM_STEREO_ATOM_NEIGH
Definition inchi_api.h:1138
#define TAUT_NUM
Definition mode.h:560
Definition ichi_bns.h:251
Definition ichi_bns.h:198
Definition ichi_bns.h:155
Definition ichi_bns.h:179
Structure describing a polymer.
Definition inpdef.h:274
Structure describing v. 1.05 extended input supporting V3000; polymers.
Definition inpdef.h:345
Definition ichirvrs.h:210
int num_tgroup_edges
Definition ichirvrs.h:221
int tgroup_charge
Definition ichirvrs.h:223
int nEdgePlus
Definition ichirvrs.h:235
TC_GROUP * pTCG
Definition ichirvrs.h:211
int max_tc_groups
Definition ichirvrs.h:213
int iAtNoOffset
Definition ichirvrs.h:238
int nVertices
Definition ichirvrs.h:215
int num_tc_groups
Definition ichirvrs.h:212
int nEdgeMinus
Definition ichirvrs.h:236
int total_charge
Definition ichirvrs.h:226
int added_charge
Definition ichirvrs.h:225
int nGroup[NUM_TCGROUP_TYPES]
Definition ichirvrs.h:214
int nEdges
Definition ichirvrs.h:216
int num_tgroups
Definition ichirvrs.h:220
int num_atoms
Definition ichirvrs.h:218
int nEdge4charge
Definition ichirvrs.h:234
int num_metal_atoms
Definition ichirvrs.h:230
int iComponent
Definition ichirvrs.h:237
int nAddIedges
Definition ichirvrs.h:217
int total_electrons_metals
Definition ichirvrs.h:228
int total_electrons
Definition ichirvrs.h:227
int num_metal_bonds
Definition ichirvrs.h:231
int num_bonds
Definition ichirvrs.h:219
int charge_on_atoms
Definition ichirvrs.h:224
Definition ichirvrs.h:133
char cMaxFlowToMetal
Definition ichirvrs.h:141
int nCMinusGroupEdge
Definition ichirvrs.h:149
char cMetal
Definition ichirvrs.h:136
char cInitFreeValences
Definition ichirvrs.h:142
S_CHAR cnListIndex
Definition ichirvrs.h:148
char cMinRingSize
Definition ichirvrs.h:146
S_CHAR cInitCharge
Definition ichirvrs.h:143
char cNumBondsToMetal
Definition ichirvrs.h:137
char cInitFlowToMetal
Definition ichirvrs.h:138
char cNumValenceElectrons
Definition ichirvrs.h:144
int nCPlusGroupEdge
Definition ichirvrs.h:150
char cInitValenceToMetal
Definition ichirvrs.h:139
char cPeriodicRowNumber
Definition ichirvrs.h:145
char cDoNotAddH
Definition ichirvrs.h:135
U_CHAR cPeriodicNumber
Definition ichirvrs.h:147
int nTautGroupEdge
Definition ichirvrs.h:152
int nMetalGroupEdge
Definition ichirvrs.h:151
char cInitOrigValenceToMetal
Definition ichirvrs.h:140
Definition ichirvrs.h:458
S_CHAR nMobHInChI
Definition ichirvrs.h:466
U_CHAR nValElectr
Definition ichirvrs.h:462
S_CHAR nFixHInChI
Definition ichirvrs.h:464
S_CHAR nMobHRevrs
Definition ichirvrs.h:467
U_CHAR nPeriodNum
Definition ichirvrs.h:463
AT_NUMB endptRevrs
Definition ichirvrs.h:460
S_CHAR nValue
Definition ichirvrs.h:470
S_CHAR nAtChargeRevrs
Definition ichirvrs.h:469
S_CHAR nFixHRevrs
Definition ichirvrs.h:465
AT_NUMB atomNumber
Definition ichirvrs.h:461
AT_NUMB endptInChI
Definition ichirvrs.h:459
S_CHAR nNumHRevrs
Definition ichirvrs.h:468
Definition ichirvrs.h:500
U_CHAR nValElectr
Definition ichirvrs.h:504
S_CHAR nAtChargeRevrs
Definition ichirvrs.h:509
S_CHAR nValue
Definition ichirvrs.h:510
U_CHAR nPeriodNum
Definition ichirvrs.h:505
AT_NUMB atomNumber
Definition ichirvrs.h:503
AT_NUMB endptInChI
Definition ichirvrs.h:501
S_CHAR nMobHRevrs
Definition ichirvrs.h:507
AT_NUMB endptRevrs
Definition ichirvrs.h:502
S_CHAR nMobHInChI
Definition ichirvrs.h:506
S_CHAR nNumHRevrs
Definition ichirvrs.h:508
AT_RANK * nAtomLevel
Definition ichirvrs.h:64
int num_at
Definition ichirvrs.h:66
S_CHAR * cSource
Definition ichirvrs.h:65
QUEUE * q
Definition ichirvrs.h:63
AT_RANK min_ring_size
Definition ichirvrs.h:67
Definition ichicant.h:303
Definition ichirvrs.h:270
char cMetal
Definition ichirvrs.h:274
char chem_valence
Definition ichirvrs.h:273
char cNumValenceElectrons
Definition ichirvrs.h:276
char num_bonds
Definition ichirvrs.h:272
char cNumBondsToMetal
Definition ichirvrs.h:275
Vertex iat
Definition ichirvrs.h:271
char cPeriodicRowNumber
Definition ichirvrs.h:277
char cNumChargeStates
Definition ichirvrs.h:278
U_CHAR el_number
Definition ichirvrs.h:279
Definition ichirvrs.h:446
int len
Definition ichirvrs.h:450
int nInitialCharge
Definition ichirvrs.h:449
int bits
Definition ichirvrs.h:448
MY_CONST C_NODE * pCN
Definition ichirvrs.h:447
Definition ichirvrs.h:410
VCF v
Definition ichirvrs.h:411
ECF e[MAX_CN_VAL]
Definition ichirvrs.h:412
Definition ichirvrs.h:262
int nCharge
Definition ichirvrs.h:264
int nValence
Definition ichirvrs.h:263
int nValenceOrderingNumber
Definition ichirvrs.h:265
Definition ichirvrs.h:404
S_CHAR flow
Definition ichirvrs.h:408
S_CHAR cap
Definition ichirvrs.h:406
S_CHAR bForbiddenEdge
Definition ichirvrs.h:407
S_SHORT neigh
Definition ichirvrs.h:405
Definition ichirvrs.h:245
EdgeIndex * pnEdges
Definition ichirvrs.h:248
int num_alloc
Definition ichirvrs.h:246
int num_edges
Definition ichirvrs.h:247
S_CHAR bUsed0DParity
Definition ichirvrs.h:77
S_CHAR sn_ord[MAX_NUM_STEREO_BONDS]
Definition ichirvrs.h:84
AT_NUMB sn_orig_at_num[MAX_NUM_STEREO_BONDS]
Definition ichirvrs.h:88
S_CHAR p_parity
Definition ichirvrs.h:79
S_CHAR sb_ord[MAX_NUM_STEREO_BONDS]
Definition ichirvrs.h:82
AT_NUMB p_orig_at_num[MAX_NUM_STEREO_ATOM_NEIGH]
Definition ichirvrs.h:80
S_CHAR sb_parity[MAX_NUM_STEREO_BONDS]
Definition ichirvrs.h:87
Definition ichirvrs.h:282
NUM_H nNumRemovedIsotopicH[NUM_H_ISOTOPES]
Definition ichirvrs.h:284
NUM_H nNumRemovedProtons
Definition ichirvrs.h:283
Definition ichirvrs.h:288
NUM_H nNumRemovedIsotopicH[NUM_H_ISOTOPES]
Definition ichirvrs.h:291
COMPONENT_REM_PROTONS * pNumProtons
Definition ichirvrs.h:294
NUM_H nNumRemovedProtons
Definition ichirvrs.h:290
int nRetVal
Definition ichirvrs.h:56
PINChI2 * pINChI[INCHI_NUM]
Definition ichirvrs.h:53
int num_components[INCHI_NUM]
Definition ichirvrs.h:55
PINChI_Aux2 * pINChI_Aux[INCHI_NUM]
Definition ichirvrs.h:54
Definition ichirvrs.h:163
short tg_num_Minus
Definition ichirvrs.h:179
int nBackwardEdge
Definition ichirvrs.h:175
short tg_RestoreFlags
Definition ichirvrs.h:181
int nVertexNumber
Definition ichirvrs.h:172
int ord_num
Definition ichirvrs.h:165
int st_flow
Definition ichirvrs.h:169
int num_edges
Definition ichirvrs.h:166
int type
Definition ichirvrs.h:164
int st_cap
Definition ichirvrs.h:168
int nForwardEdge
Definition ichirvrs.h:173
short tg_num_H
Definition ichirvrs.h:178
int edges_flow
Definition ichirvrs.h:171
Vertex tg_set_Minus
Definition ichirvrs.h:180
int edges_cap
Definition ichirvrs.h:170
Definition ichitaut.h:187
Definition ichirvrs.h:398
S_CHAR valence
Definition ichirvrs.h:402
S_SHORT type
Definition ichirvrs.h:399
S_CHAR cap
Definition ichirvrs.h:400
S_CHAR flow
Definition ichirvrs.h:401
double xyz[3]
Definition ichirvrs.h:31