InChI
 
Loading...
Searching...
No Matches
ichirvrs.h File Reference
#include "ichimain.h"
#include "ichiring.h"
+ Include dependency graph for ichirvrs.h:
+ This graph shows which files directly or indirectly include this file:

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 */
 

Typedefs

typedef struct tagXYZCoord XYZ_COORD
 
typedef struct tagStructRestoreMode SRM
 
typedef struct tagReversedInChI REV_INCHI
 
typedef struct tagBfsQueue BFS_Q
 
typedef struct tagInpAtomAddParities inp_ATOM_STEREO
 
typedef struct tagAtomIonPrperies VAL_AT
 
typedef enum tagTgRestoreFlags TGRF
 
typedef struct tagTCGroup TC_GROUP
 
typedef enum tagTCGroupTypes TCGR_TYPE
 
typedef struct tagAllTCGroups ALL_TC_GROUPS
 
typedef struct tagEdgeList EDGE_LIST
 
typedef struct tagChargeValence CHARGE_VAL
 
typedef struct tagChargeChangeCandidate CC_CAND
 
typedef struct tagOneComponentRemovedAndExchangeableH COMPONENT_REM_PROTONS
 
typedef struct tagRemovedAndExchangeableH REM_PROTONS
 
typedef struct tagInputInChI InpInChI
 
typedef struct tagStructFromInChI StrFromINChI
 
typedef struct tagVertCapFlow VCF
 
typedef struct tagEdgeCapFlow ECF
 
typedef struct tagChargeNodes C_NODE
 
typedef struct tagChargeNodeList CN_LIST
 
typedef struct tagAtomsCmpTwoFixedH CMP2FHATOMS
 
typedef struct tagStructCmpTwoFixedH CMP2FHINCHI
 
typedef struct tagAtomsCmpTwoMobileH CMP2MHATOMS
 
typedef struct tagStructCmpTwoMobileH CMP2MHINCHI
 

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 []
 

Macro Definition Documentation

◆ ALLOW_METAL_BOND_ZERO

#define ALLOW_METAL_BOND_ZERO   1 /* 1=> allow zero flow (bobd order) to metals */

◆ ATYPE_B

#define ATYPE_B   4

◆ ATYPE_C

#define ATYPE_C   5

◆ ATYPE_Cl

#define ATYPE_Cl   8

◆ ATYPE_H

#define ATYPE_H   1

◆ ATYPE_Mg

#define ATYPE_Mg   3

◆ ATYPE_N

#define ATYPE_N   6

◆ ATYPE_Na

#define ATYPE_Na   2

◆ ATYPE_O

#define ATYPE_O   7

◆ BFS_Q_CLEAR

#define BFS_Q_CLEAR   (-1)

◆ BFS_Q_FREE

#define BFS_Q_FREE   (-2)

◆ BOND_MARK_STEREO

#define BOND_MARK_STEREO   0x10

◆ BOND_TYPE_STEREO

#define BOND_TYPE_STEREO   (BOND_TYPE_SINGLE | BOND_MARK_STEREO)

◆ cn_bits_EN

#define cn_bits_EN   MAKE_CN_BITS(cn_bits_P | cn_bits_M, cn_bits_N, 0, 0)

◆ cn_bits_M

#define cn_bits_M   4 /* Minus 1: charge = -1 */

◆ cn_bits_M_

#define cn_bits_M_   MAKE_CN_BITS(cn_bits_M, 0, 0, 0)

◆ cn_bits_Me

#define cn_bits_Me   (-1)

◆ cn_bits_MN

#define cn_bits_MN   MAKE_CN_BITS(cn_bits_M, cn_bits_N, 0, 0)

◆ cn_bits_MNP

#define cn_bits_MNP   MAKE_CN_BITS(cn_bits_M, cn_bits_N, cn_bits_P, 0)

◆ cn_bits_N

#define cn_bits_N   1 /* Neutral: charge = 0 */

◆ cn_bits_N_

#define cn_bits_N_   MAKE_CN_BITS(cn_bits_N, 0, 0, 0)

◆ cn_bits_NE

#define cn_bits_NE   MAKE_CN_BITS(cn_bits_N, cn_bits_P | cn_bits_M, 0, 0)

◆ cn_bits_NEN

#define cn_bits_NEN   MAKE_CN_BITS(cn_bits_N, cn_bits_M | cn_bits_N, cn_bits_N, 0)

◆ cn_bits_NM

#define cn_bits_NM   MAKE_CN_BITS(cn_bits_N, cn_bits_M, 0, 0)

◆ cn_bits_NMN

#define cn_bits_NMN   MAKE_CN_BITS(cn_bits_N, cn_bits_M, cn_bits_N, 0)

◆ cn_bits_NP

#define cn_bits_NP   MAKE_CN_BITS(cn_bits_N, cn_bits_P, 0, 0)

◆ cn_bits_NPN

#define cn_bits_NPN   MAKE_CN_BITS(cn_bits_N, cn_bits_P, cn_bits_N, 0)

◆ cn_bits_NPNP

#define cn_bits_NPNP   MAKE_CN_BITS(cn_bits_N, cn_bits_P, cn_bits_N, cn_bits_P)

◆ cn_bits_P

#define cn_bits_P   2 /* Plus 1: charge = +1 */

◆ cn_bits_P_

#define cn_bits_P_   MAKE_CN_BITS(cn_bits_P, 0, 0, 0)

◆ cn_bits_PN

#define cn_bits_PN   MAKE_CN_BITS(cn_bits_P, cn_bits_N, 0, 0)

◆ cn_bits_PNM

#define cn_bits_PNM   MAKE_CN_BITS(cn_bits_P, cn_bits_N, cn_bits_M, 0)

◆ cn_bits_PNP

#define cn_bits_PNP   MAKE_CN_BITS(cn_bits_P, cn_bits_N, cn_bits_P, 0)

◆ cn_bits_PNPN

#define cn_bits_PNPN   MAKE_CN_BITS(cn_bits_P, cn_bits_N, cn_bits_P, cn_bits_N)

◆ cn_bits_shift

#define cn_bits_shift   3

◆ cnListIndexMe

#define cnListIndexMe   (17) /* index of {cnMe, cn_bits_Me,... } element of cnList[] */

◆ EDGE_LIST_CLEAR

#define EDGE_LIST_CLEAR   (-1)

◆ EDGE_LIST_FREE

#define EDGE_LIST_FREE   (-2)

◆ EL_TYPE_C

#define EL_TYPE_C   0x0010

◆ EL_TYPE_MASK

#define EL_TYPE_MASK   0x003f

◆ EL_TYPE_N

#define EL_TYPE_N   0x0004

◆ EL_TYPE_O

#define EL_TYPE_O   0x0001

◆ EL_TYPE_OSt

#define EL_TYPE_OSt   0x0100 /* terminal -OH, -O(-), -SH, -S(-), ... from fix_special_bonds(...) */

◆ EL_TYPE_P

#define EL_TYPE_P   0x0008

◆ EL_TYPE_PT

#define EL_TYPE_PT   0x0200 /* may be a tautomeric endpoint */

◆ EL_TYPE_S

#define EL_TYPE_S   0x0002

◆ EL_TYPE_X

#define EL_TYPE_X   0x0020 /* any not metal */

◆ EXTRACT_STRUCT_NUMBER

#define EXTRACT_STRUCT_NUMBER   1

◆ FIX_ADD_PROTON_FOR_ADP

#define FIX_ADD_PROTON_FOR_ADP   0 /* not used */

◆ FIX_STEREO_BOND_ORDER

#define FIX_STEREO_BOND_ORDER   0 /* 1=> fix stereobonds; treat metal as non-metal if it is stereogenic or has a stereobond */

◆ I2A_FLAG_FIXEDH

#define I2A_FLAG_FIXEDH   0x0001

◆ I2A_FLAG_RECMET

#define I2A_FLAG_RECMET   0x0002

◆ ICHICONST

#define ICHICONST   const

◆ INC_EDGE_LIST_DEFAULT

#define INC_EDGE_LIST_DEFAULT   64

◆ INC_NUM_TCGROUPS

#define INC_NUM_TCGROUPS   16

◆ INI_NUM_TCGROUPS

#define INI_NUM_TCGROUPS   16

◆ INIT_METAL_BOND_FLOW

#define INIT_METAL_BOND_FLOW   1 /* 1=> init flow=1, 0 => init. flow = 0 */

◆ INIT_METAL_BOND_ZERO

#define INIT_METAL_BOND_ZERO   0 /* 1=> initialize zero order bond to metals */

◆ KEEP_METAL_EDGE_FLOW

#define KEEP_METAL_EDGE_FLOW   0 /* counterexample: mdb0-1738.sdf.txt */

◆ MAKE_CN_BITS

#define MAKE_CN_BITS (   A,
  B,
  C,
  D 
)    (( (( ((D) << cn_bits_shift | (C)) << cn_bits_shift ) | (B)) << cn_bits_shift ) | (A))

◆ MAX_CN_VAL

#define MAX_CN_VAL   3

◆ MAX_DIFF_FIXH

#define MAX_DIFF_FIXH   256

◆ MAX_DIFF_MOBH

#define MAX_DIFF_MOBH   256

◆ MAX_NUM_CN_BITS

#define MAX_NUM_CN_BITS   4

◆ METAL_FREE_CHARGE_VAL

#define METAL_FREE_CHARGE_VAL   1 /* 1=> allow free changing charges/valences of metals; initial bond order=0 or 1 */

◆ MOVE_CHARGES_FROM_HETEREO_TO_METAL

#define MOVE_CHARGES_FROM_HETEREO_TO_METAL   0 /* disabled */

◆ MY_CONST

#define MY_CONST   const

◆ NO_VALUE_INT

#define NO_VALUE_INT   9999

◆ NOT_READ_INT

#define NOT_READ_INT   9998 /* has not been read yet */

◆ RESET_EDGE_FORBIDDEN_MASK

#define RESET_EDGE_FORBIDDEN_MASK   0

◆ RI_ERR_ALLOC

#define RI_ERR_ALLOC   (-1)

◆ RI_ERR_EOF

#define RI_ERR_EOF   (0)

◆ RI_ERR_EOL

#define RI_ERR_EOL   (-4)

◆ RI_ERR_MISMATCH

#define RI_ERR_MISMATCH   (-9)

◆ RI_ERR_PROGR

#define RI_ERR_PROGR   (-3)

◆ RI_ERR_SYNTAX

#define RI_ERR_SYNTAX   (-2)

◆ TREAT_ATOM_AS_METAL

#define TREAT_ATOM_AS_METAL   99

◆ VAL_BASE

#define VAL_BASE   ( 1)

◆ VAL_LENGTH

#define VAL_LENGTH   (VAL_NEUTR_ORDER+1)

◆ VAL_MAX_CHARGE

#define VAL_MAX_CHARGE   ( 1)

◆ VAL_MIN_CHARGE

#define VAL_MIN_CHARGE   (-1)

◆ VAL_NEGAT_CHARGE

#define VAL_NEGAT_CHARGE   0

◆ VAL_NEUTR_CHARGE

#define VAL_NEUTR_CHARGE   1

◆ VAL_NEUTR_ORDER

#define VAL_NEUTR_ORDER   (VAL_MAX_CHARGE-VAL_MIN_CHARGE+1)

◆ VAL_NUMBER

#define VAL_NUMBER   ( 2)

◆ VAL_POSIT_CHARGE

#define VAL_POSIT_CHARGE   2

◆ VALUE_OCTET

#define VALUE_OCTET   8 /* number of electrons in a full shell */

Typedef Documentation

◆ ALL_TC_GROUPS

typedef struct tagAllTCGroups ALL_TC_GROUPS

◆ BFS_Q

typedef struct tagBfsQueue BFS_Q

◆ C_NODE

typedef struct tagChargeNodes C_NODE

◆ CC_CAND

◆ CHARGE_VAL

typedef struct tagChargeValence CHARGE_VAL

◆ CMP2FHATOMS

◆ CMP2FHINCHI

◆ CMP2MHATOMS

◆ CMP2MHINCHI

◆ CN_LIST

typedef struct tagChargeNodeList CN_LIST

◆ COMPONENT_REM_PROTONS

◆ ECF

typedef struct tagEdgeCapFlow ECF

◆ EDGE_LIST

typedef struct tagEdgeList EDGE_LIST

◆ inp_ATOM_STEREO

◆ InpInChI

typedef struct tagInputInChI InpInChI

◆ REM_PROTONS

◆ REV_INCHI

typedef struct tagReversedInChI REV_INCHI

◆ SRM

typedef struct tagStructRestoreMode SRM

◆ StrFromINChI

◆ TC_GROUP

typedef struct tagTCGroup TC_GROUP

◆ TCGR_TYPE

typedef enum tagTCGroupTypes TCGR_TYPE

◆ TGRF

typedef enum tagTgRestoreFlags TGRF

◆ VAL_AT

typedef struct tagAtomIonPrperies VAL_AT

◆ VCF

typedef struct tagVertCapFlow VCF

◆ XYZ_COORD

typedef struct tagXYZCoord XYZ_COORD

Enumeration Type Documentation

◆ tagTCGroupTypes

Enumerator
TCG_None 
TCG_Plus0 
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 

◆ tagTgRestoreFlags

Enumerator
TGRF_MINUS_FIRST 

Function Documentation

◆ AddCGroups2TCGBnStruct()

int AddCGroups2TCGBnStruct ( BN_STRUCT *  pBNS,
StrFromINChI *  pStruct,
VAL_AT *  pVA,
ALL_TC_GROUPS *  pTCGroups,
int  nMaxAddEdges 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AddEdgeFlow()

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 
)
+ Here is the caller graph for this function:

◆ AddExplicitDeletedH()

int AddExplicitDeletedH ( inp_ATOM *  at,
int  jv,
int  num_at,
int *  iDeletedH,
int *  iH,
int  nNumDeletedH,
int  bTwoStereo 
)
+ Here is the caller graph for this function:

◆ AddOneMsg()

int AddOneMsg ( char *  szMsg,
int  used_len,
int  tot_len,
const char *  szAddMsg,
const char *  szDelim 
)
+ Here is the caller graph for this function:

◆ AddProtonAndIsoHBalanceToMobHStruct()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AddRadicalToMetal()

int AddRadicalToMetal ( int *  tot_st_cap,
int *  tot_st_flow,
ICHICONST SRM *  pSrm,
BN_STRUCT *  pBNS,
ALL_TC_GROUPS *  pTCGroups 
)
+ Here is the caller graph for this function:

◆ AddRemIsoProtonsInRestrStruct()

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[] 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AddRemProtonsInRestrStruct()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AddStCapFlow()

void AddStCapFlow ( BNS_VERTEX *  vert_ficpoint,
int *  tot_st_flow,
int *  tot_st_cap,
int  cap,
int  flow 
)
+ Here is the caller graph for this function:

◆ AddTGroups2TCGBnStruct()

int AddTGroups2TCGBnStruct ( BN_STRUCT *  pBNS,
StrFromINChI *  pStruct,
VAL_AT *  pVA,
ALL_TC_GROUPS *  pTCGroups,
int  nMaxAddEdges 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AddToEdgeList()

int AddToEdgeList ( EDGE_LIST *  pEdges,
int  iedge,
int  nAddLen 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AdjustTgroupsToForbiddenEdges2()

int AdjustTgroupsToForbiddenEdges2 ( BN_STRUCT *  pBNS,
inp_ATOM *  at,
VAL_AT *  pVA,
int  num_atoms,
int  forbidden_mask 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AllInchiToStructure()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AllocateAndInitTCGBnStruct()

BN_STRUCT * AllocateAndInitTCGBnStruct ( StrFromINChI *  pStruct,
VAL_AT *  pVA,
ALL_TC_GROUPS *  pTCGroups,
int  nMaxAddAtoms,
int  nMaxAddEdges,
int  max_altp,
int *  pNum_changed_bonds 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AllocBfsQueue()

int AllocBfsQueue ( BFS_Q *  pQ,
int  num_at,
int  min_ring_size 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AllocEdgeList()

int AllocEdgeList ( EDGE_LIST *  pEdges,
int  nLen 
)
+ Here is the caller graph for this function:

◆ AtomStcapStflow()

int AtomStcapStflow ( inp_ATOM *  atom,
VAL_AT *  pVA,
ICHICONST SRM *  pSrm,
int  iat,
int *  pnStcap,
int *  pnStflow,
EdgeFlow *  pnMGroupEdgeCap,
EdgeFlow *  pnMGroupEdgeFlow 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bFindCumuleneChain()

int bFindCumuleneChain ( inp_ATOM *  at,
AT_NUMB  i1,
AT_NUMB  i2,
AT_NUMB  nCumulene[],
int  nMaxLen 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bHas_N_V()

int bHas_N_V ( inp_ATOM *  at2,
int  num_atoms 
)
+ Here is the caller graph for this function:

◆ bInpInchiComponentDeleted()

int bInpInchiComponentDeleted ( InpInChI *  pOneInput,
int  iInChI,
int  bMobileH,
int  k 
)
+ Here is the caller graph for this function:

◆ bInpInchiComponentExists()

int bInpInchiComponentExists ( InpInChI *  pOneInput,
int  iINCHI,
int  bMobileH,
int  k 
)
+ Here is the caller graph for this function:

◆ bIsUnsatCarbonInASmallRing()

int bIsUnsatCarbonInASmallRing ( inp_ATOM *  at,
VAL_AT *  pVA,
int  iat,
BFS_Q *  pbfsq,
int  min_ring_size 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bMayBeACationInMobileHLayer()

int bMayBeACationInMobileHLayer ( inp_ATOM *  at,
VAL_AT *  pVA,
int  iat,
int  bMobileH 
)
+ Here is the caller graph for this function:

◆ BondFlowMaxcapMinorder()

int BondFlowMaxcapMinorder ( inp_ATOM *  atom,
VAL_AT *  pVA,
ICHICONST SRM *  pSrm,
int  iat,
int  ineigh,
int *  pnMaxcap,
int *  pnMinorder,
int *  pbNeedsFlower 
)
+ Here is the caller graph for this function:

◆ bRevInchiComponentDeleted()

int bRevInchiComponentDeleted ( StrFromINChI *  pStruct,
int  iInChI,
int  bMobileH,
int  k 
)

pStruct->at2 ||

+ Here is the caller graph for this function:

◆ bRevInchiComponentExists()

int bRevInchiComponentExists ( StrFromINChI *  pStruct,
int  iInChI,
int  bMobileH,
int  k 
)

pStruct->at2 ||

+ Here is the caller graph for this function:

◆ CheckAndRefixStereobonds()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CheckBnsConsistency()

int CheckBnsConsistency ( StrFromINChI *  pStruct,
BN_STRUCT *  pBNS,
VAL_AT *  pVA,
ALL_TC_GROUPS *  pTCGroups,
int  bNoRad 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ clean_charge_val()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ clear_t_group_info()

void clear_t_group_info ( T_GROUP_INFO *  ti)
+ Here is the caller graph for this function:

◆ ClearEndpts()

void ClearEndpts ( inp_ATOM *  at,
int  num_at 
)
+ Here is the caller graph for this function:

◆ cmp_charge_val()

int cmp_charge_val ( const void *  a1,
const void *  a2,
void *  p 
)
+ Here is the caller graph for this function:

◆ comp_cc_cand()

int comp_cc_cand ( const void *  a1,
const void *  a2 
)
+ Here is the caller graph for this function:

◆ CompareAllDisconnectedOrigInchiToRevInChI()

int CompareAllDisconnectedOrigInchiToRevInChI ( StrFromINChI *  pStruct[INCHI_NUM][TAUT_NUM],
InpInChI *  pOneInput,
int  bHasSomeFixedH,
long  num_inp,
char *  szCurHdr 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CompareAllOrigInchiToRevInChI()

int CompareAllOrigInchiToRevInChI ( StrFromINChI *  pStruct[INCHI_NUM][TAUT_NUM],
InpInChI *  pOneInput,
int  bReqNonTaut,
long  num_inp,
char *  szCurHdr 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CompareOneOrigInchiToRevInChI()

int CompareOneOrigInchiToRevInChI ( StrFromINChI *  pStruct,
INChI *  pInChI[TAUT_NUM],
int  bMobileH,
int  iComponent,
long  num_inp,
char *  szCurHdr,
COMPONENT_REM_PROTONS *  nCurRemovedProtons,
INCHI_MODE  CompareInchiFlags[] 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CompareReversedINChI3()

INCHI_MODE CompareReversedINChI3 ( INChI *  i1,
INChI *  i2,
INChI_Aux *  a1,
INChI_Aux *  a2,
int *  err 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CompareReversedStereoINChI3()

INCHI_MODE CompareReversedStereoINChI3 ( INChI_Stereo *  s1,
INChI_Stereo *  s2,
ICR *  picr 
)
+ Here is the caller graph for this function:

◆ CompareTwoPairsOfInChI()

int CompareTwoPairsOfInChI ( INChI *  pInChI1[TAUT_NUM],
INChI *  pInChI2[TAUT_NUM],
int  bMobileH,
INCHI_MODE  CompareInchiFlags[] 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ConnectDisconnectedH()

int ConnectDisconnectedH ( inp_ATOM *  at,
int  num_atoms,
int  num_deleted_H 
)
+ Here is the caller graph for this function:

◆ ConnectMetalFlower()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ConnectSuperCGroup()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ConnectTwoVertices()

int ConnectTwoVertices ( BNS_VERTEX *  p1,
BNS_VERTEX *  p2,
BNS_EDGE *  e,
BN_STRUCT *  pBNS,
int  bClearEdge 
)
+ Here is the caller graph for this function:

◆ Convert_SIV_to_SVI()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CopyAt2St()

void CopyAt2St ( inp_ATOM *  at,
inp_ATOM_STEREO *  st,
int  num_atoms 
)
+ Here is the caller graph for this function:

◆ CopyBnsToAtom()

int CopyBnsToAtom ( StrFromINChI *  pStruct,
BN_STRUCT *  pBNS,
VAL_AT *  pVA,
ALL_TC_GROUPS *  pTCGroups,
int  bAllowZeroBondOrder 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CopySt2At()

void CopySt2At ( inp_ATOM *  at,
inp_ATOM_STEREO *  st,
int  num_atoms 
)
+ Here is the caller graph for this function:

◆ CountStereoTypes()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DetectInpInchiCreationOptions()

int DetectInpInchiCreationOptions ( InpInChI *  pOneInput,
int *  bHasReconnected,
int *  bHasMetal,
int *  bHasFixedH,
int *  sFlag,
int *  bTautFlag 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DisconnectedConnectedH()

int DisconnectedConnectedH ( inp_ATOM *  at,
int  num_atoms,
int  num_deleted_H 
)
+ Here is the caller graph for this function:

◆ DisplayAllRestoredComponents()

int DisplayAllRestoredComponents ( struct tagCANON_GLOBALS *  pCG,
inp_ATOM *  at,
int  num_at,
const char *  szCurHdr 
)

◆ DisplayOneRestoredComponent()

int DisplayOneRestoredComponent ( struct tagCANON_GLOBALS *  pCG,
StrFromINChI *  pStruct,
inp_ATOM *  at,
int  iComponent,
int  nNumComponents,
int  bMobileH,
const char *  szCurHdr 
)

◆ DisplayRestoredComponent()

int DisplayRestoredComponent ( struct tagCANON_GLOBALS *  pCG,
StrFromINChI *  pStruct,
int  iComponent,
int  iAtNoOffset,
INChI *  pInChI,
const char *  szCurHdr 
)
+ Here is the caller graph for this function:

◆ DisplayStructureComponents()

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 
)
+ Here is the caller graph for this function:

◆ EliminateChargeSeparationOnHeteroatoms()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EliminateNitrogen5Val3Bonds()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EvaluateChargeChanges()

int EvaluateChargeChanges ( BN_STRUCT *  pBNS,
VAL_AT *  pVA,
int *  pnDeltaH,
int *  pnDeltaCharge,
int *  pnNumVisitedAtoms 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FillOutCMP2FHINCHI()

int FillOutCMP2FHINCHI ( StrFromINChI *  pStruct,
inp_ATOM *  at2,
VAL_AT *  pVA,
INChI *  pInChI[],
CMP2FHINCHI *  pc2i 
)
+ Here is the caller graph for this function:

◆ FillOutCMP2MHINCHI()

int FillOutCMP2MHINCHI ( StrFromINChI *  pStruct,
ALL_TC_GROUPS *  pTCGroups,
inp_ATOM *  at2,
VAL_AT *  pVA,
INChI *  pInChI[],
CMP2MHINCHI *  pc2i 
)
+ Here is the caller graph for this function:

◆ FillOutCompareMessage()

int FillOutCompareMessage ( char *  szMsg,
int  nLenMsg,
INCHI_MODE  bits[] 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FillOutExtraFixedHDataInChI()

int FillOutExtraFixedHDataInChI ( StrFromINChI *  pStruct,
INChI *  pInChI[] 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FillOutExtraFixedHDataRestr()

int FillOutExtraFixedHDataRestr ( StrFromINChI *  pStruct)
+ Here is the caller graph for this function:

◆ FillOutpStructEndpointFromInChI()

int FillOutpStructEndpointFromInChI ( INChI *  pInChI,
AT_NUMB **  pEndpoint 
)
+ Here is the caller graph for this function:

◆ FindInEdgeList()

int FindInEdgeList ( EDGE_LIST *  pEdges,
int  iedge 
)
+ Here is the caller graph for this function:

◆ FixAddProtonForADP()

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 
)
+ Here is the caller graph for this function:

◆ FixFixedHRestoredStructure()

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] ) &&

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FixLessHydrogenInFormula()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FixMetal_Nminus_Ominus()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FixMobileHRestoredStructure()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FixMoreHydrogenInFormula()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FixRemoveExtraTautEndpoints()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FixRestoredStructureStereo()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ForbidCarbonChargeEdges()

int ForbidCarbonChargeEdges ( BN_STRUCT *  pBNS,
ALL_TC_GROUPS *  pTCGroups,
EDGE_LIST *  pCarbonChargeEdges,
int  forbidden_edge_mask 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ForbidMetalCarbonEdges()

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 
)
+ Here is the caller graph for this function:

◆ ForbidNintrogenPlus2BondsInSmallRings()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FreeInpInChI()

void FreeInpInChI ( InpInChI *  pOneInput)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FreeInputInChI2Struct()

void FreeInputInChI2Struct ( InpInChI *  pOneInput)

◆ FreeStrFromINChI()

void FreeStrFromINChI ( StrFromINChI *  pStruct[INCHI_NUM][TAUT_NUM],
int  nNumComponents[INCHI_NUM][TAUT_NUM] 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get_bonds_valences()

int get_bonds_valences ( int  nPeriodicNum,
int  bonds_valence,
int  num_H,
VAL_AT *  pVA 
)

◆ get_pVA_atom_type()

int get_pVA_atom_type ( VAL_AT *  pVA,
inp_ATOM *  at,
int  iat,
int  bond_type 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get_sp_element_type()

int get_sp_element_type ( int  nPeriodicNumber,
int *  nRow 
)
+ Here is the caller graph for this function:

◆ GetAtomRestoreInfo()

int GetAtomRestoreInfo ( struct tagCANON_GLOBALS *  pCG,
inp_ATOM *  atom,
int  iat,
VAL_AT *  pVArray,
ICHICONST SRM *  pSrm,
int  bMobileH,
AT_NUMB *  endpoint 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetChargeFlowerUpperEdge()

int GetChargeFlowerUpperEdge ( BN_STRUCT *  pBNS,
VAL_AT *  pVA,
int  nChargeEdge 
)
+ Here is the caller graph for this function:

◆ GetNumNeighborsFromInchi()

int GetNumNeighborsFromInchi ( INChI *  pInChI,
AT_NUMB  nAtNumber 
)
+ Here is the caller graph for this function:

◆ GetPlusMinusVertex()

int GetPlusMinusVertex ( BN_STRUCT *  pBNS,
ALL_TC_GROUPS *  pTCGroups,
int  bCheckForbiddenPlus,
int  bCheckForbiddenMinus 
)
+ Here is the caller graph for this function:

◆ GetTgroupInfoFromInChI()

int GetTgroupInfoFromInChI ( T_GROUP_INFO *  ti,
inp_ATOM *  at,
AT_NUMB *  endpoint,
INChI *  pInChI 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ InChI2Atom()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IncrementZeroOrderBondsToHeteroat()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IncrZeroBonds()

void IncrZeroBonds ( inp_ATOM *  at,
int  num_at,
int  iComponent 
)
+ Here is the caller graph for this function:

◆ IncrZeroBondsAndClearEndpts()

void IncrZeroBondsAndClearEndpts ( inp_ATOM *  at,
int  num_at,
int  iComponent 
)
+ Here is the caller graph for this function:

◆ insertions_sort_AT_NUMB()

int insertions_sort_AT_NUMB ( AT_NUMB *  base,
int  num 
)
+ Here is the caller graph for this function:

◆ MakeInChIOutOfStrFromINChI2()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MakeOneInChIOutOfStrFromINChI()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MakeOneInChIOutOfStrFromINChI2()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MakeProtonComponent()

int MakeProtonComponent ( StrFromINChI *  pStruct,
int  iComponent,
int  num_prot 
)
+ Here is the caller graph for this function:

◆ MakeSingleBondsMetal2ChargedHeteroat()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MarkDisconectedIdenticalToReconnected()

int MarkDisconectedIdenticalToReconnected ( InpInChI *  pOneInput)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MergeStructureComponents()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MoveChargeFromHeteroatomsToMetals()

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 
)
+ Here is the caller graph for this function:

◆ MoveChargeToMakeCenerpoints()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MoveChargeToRemoveCenerpoints()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MoveMobileHToAvoidFixedBonds()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MovePlusFromS2DiaminoCarbon()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MoveRadToAtomsAddCharges()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nAddSuperCGroups()

int nAddSuperCGroups ( ALL_TC_GROUPS *  pTCGroups)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nCountBnsSizes()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nNumEdgesToCnVertex()

int nNumEdgesToCnVertex ( MY_CONST C_NODE *  pCN,
int  len,
int  v 
)
+ Here is the caller graph for this function:

◆ NormalizeAndCompare()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NormalizeStructure()

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 
)

◆ nTautEndpointEdgeCap()

int nTautEndpointEdgeCap ( inp_ATOM *  at,
VAL_AT *  pVA,
int  i 
)
+ Here is the caller graph for this function:

◆ OldPrintCompareOneOrigInchiToRevInChI()

int OldPrintCompareOneOrigInchiToRevInChI ( StrFromINChI *  pStruct,
INChI *  pInChI[TAUT_NUM],
int  bMobileH,
int  iComponent,
long  num_inp,
char *  szCurHdr 
)
+ Here is the caller graph for this function:

◆ OneInChI2Atom()

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[] 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OutputInChIOutOfStrFromINChI()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ PlusFromDB_N_DB_O_to_Metal()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ReallocTCGroups()

int ReallocTCGroups ( ALL_TC_GROUPS *  pTCGroups,
int  nAdd 
)
+ Here is the caller graph for this function:

◆ RearrangePlusMinusEdgesFlow()

int RearrangePlusMinusEdgesFlow ( BN_STRUCT *  pBNS,
BN_DATA *  pBD,
VAL_AT *  pVA,
ALL_TC_GROUPS *  pTCGroups,
int  forbidden_edge_mask 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RegisterTCGroup()

int RegisterTCGroup ( ALL_TC_GROUPS *  pTCGroups,
int  nGroupType,
int  nGroupOrdNum,
int  nVertexCap,
int  nVertexFlow,
int  nEdgeCap,
int  nEdgeFlow,
int  nNumEdges 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RemoveFixHInChIIdentical2MobH()

void RemoveFixHInChIIdentical2MobH ( InpInChI *  pOneInput)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RemoveForbiddenBondFlowBits()

void RemoveForbiddenBondFlowBits ( BN_STRUCT *  pBNS,
int  forbidden_edge_mask_int 
)
+ Here is the caller graph for this function:

◆ RemoveForbiddenEdgeMask()

void RemoveForbiddenEdgeMask ( BN_STRUCT *  pBNS,
EDGE_LIST *  pEdges,
int  forbidden_edge_mask 
)
+ Here is the caller graph for this function:

◆ RemoveFromEdgeListByIndex()

int RemoveFromEdgeListByIndex ( EDGE_LIST *  pEdges,
int  index 
)
+ Here is the caller graph for this function:

◆ RemoveFromEdgeListByValue()

int RemoveFromEdgeListByValue ( EDGE_LIST *  pEdges,
int  iedge 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RemoveRadFromMobileHEndpoint()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RemoveRadFromMobileHEndpointFixH()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RestoreAtomConnectionsSetStereo()

int RestoreAtomConnectionsSetStereo ( StrFromINChI *  pStruct,
int  iComponent,
int  iAtNoOffset,
INChI *  pInChI,
INChI *  pInChIMobH 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RestoreAtomMakeBNS()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RestoreCyanoGroup()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RestoreIsoCyanoGroup()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RestoreNNNgroup()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RunBnsRestore1()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RunBnsRestoreOnce()

int RunBnsRestoreOnce ( BN_STRUCT *  pBNS,
BN_DATA *  pBD,
VAL_AT *  pVA,
ALL_TC_GROUPS *  pTCGroups 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RunBnsTestOnce()

int RunBnsTestOnce ( BN_STRUCT *  pBNS,
BN_DATA *  pBD,
VAL_AT *  pVA,
Vertex *  pvFirst,
Vertex *  pvLast,
int *  pPathLen,
int *  pnDeltaH,
int *  pnDeltaCharge,
int *  pnNumVisitedAtoms 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SaltBondsToCoordBonds()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ set_atom_0D_parity()

int set_atom_0D_parity ( inp_ATOM *  at,
inp_ATOM_STEREO *  st,
int  num_at,
int  num_deleted_H,
int  i1,
int  parity 
)
+ Here is the caller graph for this function:

◆ set_bond_type()

int set_bond_type ( inp_ATOM *  at,
AT_NUMB  i1,
AT_NUMB  i2,
int  bType 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ set_cumulene_0D_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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetEdgeCapFlow()

void SetEdgeCapFlow ( BNS_EDGE *  e,
int  edge_cap,
int  edge_flow 
)
+ Here is the caller graph for this function:

◆ SetForbiddenEdgeMask()

void SetForbiddenEdgeMask ( BN_STRUCT *  pBNS,
EDGE_LIST *  pEdges,
int  forbidden_edge_mask 
)
+ Here is the caller graph for this function:

◆ SetStCapFlow()

void SetStCapFlow ( BNS_VERTEX *  vert_ficpoint,
int *  tot_st_flow,
int *  tot_st_cap,
int  cap,
int  flow 
)
+ Here is the caller graph for this function:

◆ SetStereoBondTypeFor0DParity()

int SetStereoBondTypeFor0DParity ( inp_ATOM *  at,
int  i1,
int  m1 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetStereoBondTypesFrom0DStereo()

int SetStereoBondTypesFrom0DStereo ( StrFromINChI *  pStruct,
INChI *  pInChI 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetUpSrm()

void SetUpSrm ( SRM *  pSrm)
+ Here is the caller graph for this function:

Variable Documentation

◆ cnList

MY_CONST CN_LIST cnList[]
extern

◆ cnListNumEl

const int cnListNumEl
extern