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_STRUCTAllocateAndInitTCGBnStruct (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) << 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