InChI
 
Loading...
Searching...
No Matches
ichirvr1.c File Reference
#include <stdlib.h>
#include <string.h>
#include "mode.h"
#include "ichitime.h"
#include "ichirvrs.h"
#include "ichicant.h"
#include "ichi_io.h"
#include "ichimain.h"
#include "inpdef.h"
#include "bcf_s.h"
+ Include dependency graph for ichirvr1.c:

Data Structures

struct  tagVertexFlow
 

Macros

#define cnListIndexMe   (17) /* index of {cnMe, cn_bits_Me,... } element of cnList[] */
 
#define MIN_ATOM_CHARGE   (-2)
 
#define MAX_ATOM_CHARGE   2
 
#define NEUTRAL_STATE   (-MIN_ATOM_CHARGE)
 
#define NUM_ATOM_CHARGES   (MAX_ATOM_CHARGE - MIN_ATOM_CHARGE + 1)
 
#define MAX_NUM_VALENCES   5 /* max. number + 1 to provide zero termination */
 
#define ANY_VERT_TYPE(X)
 
#define GRP_VERT_TYPE(X)
 
#define NUM_VF   3
 
#define VF_USED_IN   1
 
#define VF_USED_OUT   2
 
#define VF_USED_ALL   (VF_USED_IN | VF_USED_OUT)
 

Typedefs

typedef struct tagVertexFlow VF
 

Functions

void clear_t_group_info (T_GROUP_INFO *ti)
 
int GetTgroupInfoFromInChI (T_GROUP_INFO *ti, inp_ATOM *at, AT_NUMB *endpoint, INChI *pInChI)
 
int FillOutpStructEndpointFromInChI (INChI *pInChI, AT_NUMB **pEndpoint)
 
int cmp_charge_val (const void *a1, const void *a2, void *p)
 
int bMayBeACationInMobileHLayer (inp_ATOM *at, VAL_AT *pVA, int iat, int bMobileH)
 
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 GetAtomRestoreInfo (struct tagCANON_GLOBALS *pCG, inp_ATOM *atom, int iat, VAL_AT *pVArray, ICHICONST SRM *pSrm, int bMobileH, AT_NUMB *endpoint)
 
int get_sp_element_type (int nPeriodicNumber, int *nRow)
 
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 nTautEndpointEdgeCap (inp_ATOM *at, VAL_AT *pVA, int i)
 
int BondFlowMaxcapMinorder (inp_ATOM *atom, VAL_AT *pVA, ICHICONST SRM *pSrm, int iat, int ineigh, int *pnMaxcap, int *pnMinorder, int *pbNeedsFlower)
 
int AtomStcapStflow (inp_ATOM *atom, VAL_AT *pVA, ICHICONST SRM *pSrm, int iat, int *pnStcap, int *pnStflow, EdgeFlow *pnMGroupEdgeCap, EdgeFlow *pnMGroupEdgeFlow)
 
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 nAddSuperCGroups (ALL_TC_GROUPS *pTCGroups)
 
int AddTGroups2TCGBnStruct (BN_STRUCT *pBNS, StrFromINChI *pStruct, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int nMaxAddEdges)
 
int ConnectTwoVertices (BNS_VERTEX *p1, BNS_VERTEX *p2, BNS_EDGE *e, BN_STRUCT *pBNS, int bClearEdge)
 
int AddRadicalToMetal (int *tot_st_cap, int *tot_st_flow, ICHICONST SRM *pSrm, BN_STRUCT *pBNS, ALL_TC_GROUPS *pTCGroups)
 
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)
 
void SetEdgeCapFlow (BNS_EDGE *e, int edge_cap, int edge_flow)
 
int AddEdgeFlow (int edge_cap, int edge_flow, BNS_EDGE *e01, BNS_VERTEX *pSrc, BNS_VERTEX *pDst, int *tot_st_cap, int *tot_st_flow)
 
int ConnectSuperCGroup (int nSuperCGroup, 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)
 
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 AddCGroups2TCGBnStruct (BN_STRUCT *pBNS, StrFromINChI *pStruct, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int nMaxAddEdges)
 
int nNumEdgesToCnVertex (MY_CONST C_NODE *pCN, int len, int v)
 
BN_STRUCTAllocateAndInitTCGBnStruct (StrFromINChI *pStruct, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int nMaxAddAtoms, int nMaxAddEdges, int max_altp, int *pNum_changed_bonds)
 
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 GetDeltaChargeFromVF (BN_STRUCT *pBNS, VAL_AT *pVA, VF *vf)
 
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 RunBnsRestoreOnce (BN_STRUCT *pBNS, BN_DATA *pBD, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups)
 
int comp_cc_cand (const void *a1, const void *a2)
 
int get_pVA_atom_type (VAL_AT *pVA, inp_ATOM *at, int iat, int bond_type)
 
int AllocEdgeList (EDGE_LIST *pEdges, int nLen)
 
int AddToEdgeList (EDGE_LIST *pEdges, int iedge, int nAddLen)
 
int RemoveFromEdgeListByIndex (EDGE_LIST *pEdges, int index)
 
int FindInEdgeList (EDGE_LIST *pEdges, int iedge)
 
int RemoveFromEdgeListByValue (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)
 
void RemoveForbiddenBondFlowBits (BN_STRUCT *pBNS, int forbidden_edge_mask_int)
 
int GetChargeFlowerUpperEdge (BN_STRUCT *pBNS, VAL_AT *pVA, int nChargeEdge)
 
int MakeOneInChIOutOfStrFromINChI2 (struct tagCANON_GLOBALS *pCG, INCHI_CLOCK *ic, ICHICONST INPUT_PARMS *ip_inp, STRUCT_DATA *sd_inp, 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 MakeOneInChIOutOfStrFromINChI (struct tagCANON_GLOBALS *pCG, INCHI_CLOCK *ic, ICHICONST INPUT_PARMS *ip, STRUCT_DATA *sd, StrFromINChI *pStruct, inp_ATOM *at2, inp_ATOM *at3, ALL_TC_GROUPS *pTCGroups)
 
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 (INCHI_CLOCK *ic, CANON_GLOBALS *pCG, ICHICONST INPUT_PARMS *ip_inp, STRUCT_DATA *sd_inp, StrFromINChI *pStruct, int iComponent, int iAtNoOffset, long num_inp)
 
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)
 

Variables

MY_CONST C_NODE cnMe [5]
 
MY_CONST C_NODE cnPNPN [5]
 
MY_CONST C_NODE cnNPNP [5]
 
MY_CONST C_NODE cnNPN [5]
 
MY_CONST C_NODE cnPNP [5]
 
MY_CONST C_NODE cnMNP [3]
 
MY_CONST C_NODE cnPNM [4]
 
MY_CONST C_NODE cnEN [6]
 
MY_CONST C_NODE cnNMN [5]
 
MY_CONST C_NODE cnNE [5]
 
MY_CONST C_NODE cnNEN [6]
 
MY_CONST C_NODE cnNP [2]
 
MY_CONST C_NODE cnPN [3]
 
MY_CONST C_NODE cnNM [3]
 
MY_CONST C_NODE cnMN [2]
 
MY_CONST C_NODE cnP_ [2]
 
MY_CONST C_NODE cnM_ [1]
 
MY_CONST C_NODE cnN_ [1]
 
MY_CONST CN_LIST cnList []
 
const int cnListNumEl = (int) ( sizeof( cnList ) / sizeof( cnList[0] ) )
 

Macro Definition Documentation

◆ ANY_VERT_TYPE

#define ANY_VERT_TYPE (   X)
Value:
#define BNS_VERT_TYPE_ATOM
Definition ichi_bns.h:80
#define BNS_VERT_TYPE_C_GROUP
Definition ichi_bns.h:84
#define BNS_VERT_TYPE_SUPER_TGROUP
Definition ichi_bns.h:85
#define BNS_VERT_TYPE_TGROUP
Definition ichi_bns.h:82

◆ cnListIndexMe

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

◆ GRP_VERT_TYPE

#define GRP_VERT_TYPE (   X)

◆ MAX_ATOM_CHARGE

#define MAX_ATOM_CHARGE   2

◆ MAX_NUM_VALENCES

#define MAX_NUM_VALENCES   5 /* max. number + 1 to provide zero termination */

◆ MIN_ATOM_CHARGE

#define MIN_ATOM_CHARGE   (-2)

◆ NEUTRAL_STATE

#define NEUTRAL_STATE   (-MIN_ATOM_CHARGE)

◆ NUM_ATOM_CHARGES

#define NUM_ATOM_CHARGES   (MAX_ATOM_CHARGE - MIN_ATOM_CHARGE + 1)

◆ NUM_VF

#define NUM_VF   3

◆ VF_USED_ALL

#define VF_USED_ALL   (VF_USED_IN | VF_USED_OUT)

◆ VF_USED_IN

#define VF_USED_IN   1

◆ VF_USED_OUT

#define VF_USED_OUT   2

Typedef Documentation

◆ VF

typedef struct tagVertexFlow VF

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 pSrc,
BNS_VERTEX pDst,
int *  tot_st_cap,
int *  tot_st_flow 
)
+ 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:

◆ 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:

◆ 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:

◆ 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:

◆ 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:

◆ 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  nSuperCGroup,
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:

◆ DisconnectedConnectedH()

int DisconnectedConnectedH ( inp_ATOM at,
int  num_atoms,
int  num_deleted_H 
)
+ 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:

◆ 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:

◆ 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:

◆ GetDeltaChargeFromVF()

int GetDeltaChargeFromVF ( BN_STRUCT pBNS,
VAL_AT pVA,
VF vf 
)
+ 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:

◆ 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:

◆ MakeInChIOutOfStrFromINChI2()

int MakeInChIOutOfStrFromINChI2 ( INCHI_CLOCK ic,
CANON_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,
INCHI_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,
INCHI_CLOCK ic,
ICHICONST INPUT_PARMS ip_inp,
STRUCT_DATA sd_inp,
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:

◆ 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:

◆ nTautEndpointEdgeCap()

int nTautEndpointEdgeCap ( inp_ATOM at,
VAL_AT pVA,
int  i 
)
+ 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:

◆ ReallocTCGroups()

int ReallocTCGroups ( ALL_TC_GROUPS pTCGroups,
int  nAdd 
)
+ 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:

◆ 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:

◆ 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:

◆ 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:

Variable Documentation

◆ cnEN

MY_CONST C_NODE cnEN[6]
Initial value:
= {
{ {BNS_VERT_TYPE_ATOM, 1, 0, 1}, {{ 2, 1,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 1, 1, 2}, {{ 3, 1,0, 1 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 1, 1, 3}, {{ 4, 1,0, 0 },{ 6, 1,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 1, 1, 2}, {{ 5, 1,0, 1 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_POS_C, 0 + 1, 1, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_NEG_C, 0 + 1, 0, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} }
}
#define BNS_VT_C_POS_C
Definition ichi_bns.h:100
#define BNS_VT_C_NEG_C
Definition ichi_bns.h:101
#define BNS_VT_CHRG_STRUCT
Definition ichi_bns.h:109

◆ cnList

MY_CONST CN_LIST cnList[]
Initial value:
= {
{cnPNPN, cn_bits_PNPN, 0, sizeof( cnPNPN ) / sizeof( cnPNPN[0] )},
{cnNPNP, cn_bits_NPNP, 0, sizeof( cnNPNP ) / sizeof( cnNPNP[0] )},
{cnNPN, cn_bits_NPN, 0, sizeof( cnNPN ) / sizeof( cnNPN[0] )},
{cnPNP, cn_bits_PNP, 0, sizeof( cnPNP ) / sizeof( cnPNP[0] )},
{cnMNP, cn_bits_MNP, 0, sizeof( cnMNP ) / sizeof( cnMNP[0] )},
{cnPNM, cn_bits_PNM, 0, sizeof( cnPNM ) / sizeof( cnPNM[0] )},
{cnEN, cn_bits_EN , 0, sizeof( cnEN ) / sizeof( cnEN[0] )},
{cnNMN, cn_bits_NMN, 0, sizeof( cnNMN ) / sizeof( cnNMN[0] )},
{cnNE, cn_bits_NE , 0, sizeof( cnNE ) / sizeof( cnNE[0] )},
{cnNEN, cn_bits_NEN, 0, sizeof( cnNEN ) / sizeof( cnNEN[0] )},
{cnNP, cn_bits_NP, 0, sizeof( cnNP ) / sizeof( cnNP[0] )},
{cnPN, cn_bits_PN, 0, sizeof( cnPN ) / sizeof( cnPN[0] )},
{cnNM, cn_bits_NM, 0, sizeof( cnNM ) / sizeof( cnNM[0] )},
{cnMN, cn_bits_MN, 0, sizeof( cnMN ) / sizeof( cnMN[0] )},
{cnP_, cn_bits_P_, 0, sizeof( cnP_ ) / sizeof( cnP_[0] )},
{cnM_, cn_bits_M_, -1, sizeof( cnM_ ) / sizeof( cnM_[0] )},
{cnN_, cn_bits_N_, 0, sizeof( cnN_ ) / sizeof( cnN_[0] )},
{cnMe, cn_bits_Me, 0, sizeof( cnMe ) / sizeof( cnMe[0] )}
}
MY_CONST C_NODE cnMe[5]
Definition ichirvr1.c:120
MY_CONST C_NODE cnPNP[5]
Definition ichirvr1.c:204
MY_CONST C_NODE cnNP[2]
Definition ichirvr1.c:366
MY_CONST C_NODE cnN_[1]
Definition ichirvr1.c:471
MY_CONST C_NODE cnMN[2]
Definition ichirvr1.c:416
MY_CONST C_NODE cnM_[1]
Definition ichirvr1.c:456
MY_CONST C_NODE cnPNM[4]
Definition ichirvr1.c:262
MY_CONST C_NODE cnNMN[5]
Definition ichirvr1.c:305
MY_CONST C_NODE cnNPN[5]
Definition ichirvr1.c:184
MY_CONST C_NODE cnNPNP[5]
Definition ichirvr1.c:161
MY_CONST C_NODE cnP_[2]
Definition ichirvr1.c:432
MY_CONST C_NODE cnNE[5]
Definition ichirvr1.c:325
MY_CONST C_NODE cnEN[6]
Definition ichirvr1.c:284
MY_CONST C_NODE cnPNPN[5]
Definition ichirvr1.c:141
MY_CONST C_NODE cnNM[3]
Definition ichirvr1.c:399
MY_CONST C_NODE cnNEN[6]
Definition ichirvr1.c:345
MY_CONST C_NODE cnPN[3]
Definition ichirvr1.c:382
MY_CONST C_NODE cnMNP[3]
Definition ichirvr1.c:224
#define cn_bits_NPN
Definition ichirvrs.h:460
#define cn_bits_PNM
Definition ichirvrs.h:463
#define cn_bits_NM
Definition ichirvrs.h:470
#define cn_bits_EN
Definition ichirvrs.h:464
#define cn_bits_N_
Definition ichirvrs.h:474
#define cn_bits_NPNP
Definition ichirvrs.h:459
#define cn_bits_NEN
Definition ichirvrs.h:467
#define cn_bits_Me
Definition ichirvrs.h:475
#define cn_bits_M_
Definition ichirvrs.h:473
#define cn_bits_NMN
Definition ichirvrs.h:465
#define cn_bits_MNP
Definition ichirvrs.h:462
#define cn_bits_NE
Definition ichirvrs.h:466
#define cn_bits_NP
Definition ichirvrs.h:468
#define cn_bits_PNP
Definition ichirvrs.h:461
#define cn_bits_PNPN
Definition ichirvrs.h:458
#define cn_bits_PN
Definition ichirvrs.h:469
#define cn_bits_P_
Definition ichirvrs.h:472
#define cn_bits_MN
Definition ichirvrs.h:471

◆ cnListNumEl

const int cnListNumEl = (int) ( sizeof( cnList ) / sizeof( cnList[0] ) )

◆ cnM_

MY_CONST C_NODE cnM_[1]
Initial value:
= {
{ {BNS_VERT_TYPE_ATOM, 0, 0, 0}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
}

◆ cnMe

MY_CONST C_NODE cnMe[5]
Initial value:
= {
{ {BNS_VERT_TYPE_ATOM,0 ,0,3}, {{ 2, 16,0, 0 },{ 4, 16,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT,16, 16, 2}, {{ 3, 16,0,16 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_POS_M, 16, 16, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 2 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_NEG_M, 0 + 16, 0, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_M_GROUP, 0 ,0,3}, {{ 1, 3,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
}
#define BNS_VT_C_POS_M
Definition ichi_bns.h:102
#define BNS_VT_C_NEG_M
Definition ichi_bns.h:103
#define BNS_VT_M_GROUP
Definition ichi_bns.h:104

◆ cnMN

MY_CONST C_NODE cnMN[2]
Initial value:
= {
{ {BNS_VERT_TYPE_ATOM, 1, 0, 1}, {{ 2, 1,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_NEG, 0 + 1, 0, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
}
#define BNS_VT_C_NEG
Definition ichi_bns.h:99

◆ cnMNP

MY_CONST C_NODE cnMNP[3]
Initial value:
= {
{ {BNS_VERT_TYPE_ATOM, 2, 1, 2}, {{ 2, 1,0, 1 },{ 3, 1,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_POS, 1, 1, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_NEG, 0 + 1, 0, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} }
}
#define BNS_VT_C_POS
Definition ichi_bns.h:98

◆ cnN_

MY_CONST C_NODE cnN_[1]
Initial value:
= {
{ {BNS_VERT_TYPE_ATOM, 0, 0, 0}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
}

◆ cnNE

MY_CONST C_NODE cnNE[5]
Initial value:
= {
{ {BNS_VERT_TYPE_ATOM, 1, 1, 1}, {{ 2, 1,0, 1 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 1, 1, 3}, {{ 3, 1,0, 0 },{ 5, 1,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 1, 1, 2}, {{ 4, 1,0, 1 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_POS, 0 + 1, 1, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_NEG, 0 + 1, 0, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} }
}

◆ cnNEN

MY_CONST C_NODE cnNEN[6]
Initial value:
= {
{ {BNS_VERT_TYPE_ATOM, 2, 2, 1}, {{ 2, 2,0, 2 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 2, 2, 3}, {{ 3, 1,0, 0 },{ 4, 1,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 2, 2, 3}, {{ 5, 1,0, 1 },{ 4, 1,0, 1 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 1, 1, 3}, {{ 6, 1,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_POS, 0 + 1, 1, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_NEG, 0 + 1, 0, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
}

◆ cnNM

MY_CONST C_NODE cnNM[3]
Initial value:
= {
{ {BNS_VERT_TYPE_ATOM, 1, 1, 1}, {{ 2, 1,0, 1 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 1, 1, 2}, {{ 3, 1,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_NEG, 0 + 1, 0, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
}

◆ cnNMN

MY_CONST C_NODE cnNMN[5]
Initial value:
= {
{ {BNS_VERT_TYPE_ATOM, 2, 2, 1}, {{ 2, 2,0, 2 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 2, 2, 3}, {{ 3, 1,0, 0 },{ 4, 1,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 1, 1, 3}, {{ 5, 1,0, 0 },{ 4, 1,0, 1 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 1, 1, 2}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_NEG, 0 + 1, 0, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} }
}

◆ cnNP

MY_CONST C_NODE cnNP[2]
Initial value:
= {
{ {BNS_VERT_TYPE_ATOM, 1, 1, 1}, {{ 2, 1,0, 1 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_POS, 0 + 1, 1, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
}

◆ cnNPN

MY_CONST C_NODE cnNPN[5]
Initial value:
= {
{ {BNS_VERT_TYPE_ATOM, 2, 2, 1}, {{ 2, 2,0, 2 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 2, 2, 3}, {{ 3, 1,0, 0 },{ 4, 1,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 2, 2, 3}, {{ 5, 1,0, 1 },{ 4, 1,0, 1 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 1, 1, 2}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_POS, 1, 1, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
}

◆ cnNPNP

MY_CONST C_NODE cnNPNP[5]
Initial value:
= {
{ {BNS_VERT_TYPE_ATOM, 3, 3, 1}, {{ 2, 3,0, 3 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 3, 3, 3}, {{ 3, 2,0, 0 },{ 4, 1,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 2, 2, 3}, {{ 5, 1,0, 1 },{ 4, 1,0, 1 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 1, 1, 2}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_POS, 0 + 1, 1, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
}

◆ cnP_

MY_CONST C_NODE cnP_[2]
Initial value:
= {
{ {BNS_VERT_TYPE_ATOM, 0, 0, 1}, {{ 2, 1,1, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_POS, 1 + 1, 0, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
}

◆ cnPN

MY_CONST C_NODE cnPN[3]
Initial value:
= {
{ {BNS_VERT_TYPE_ATOM, 1, 1, 1}, {{ 2, 1,0, 1 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 1, 1, 2}, {{ 3, 1,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_POS, 1 + 1, 0, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
}

◆ cnPNM

MY_CONST C_NODE cnPNM[4]
Initial value:
= {
{ {BNS_VERT_TYPE_ATOM, 2, 2, 1}, {{ 2, 2,0, 2 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 2, 2, 3}, {{ 3, 1,0, 0 },{ 4, 1,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_POS, 1 + 1, 0, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_NEG, 0 + 1, 0, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
}

◆ cnPNP

MY_CONST C_NODE cnPNP[5]
Initial value:
= {
{ {BNS_VERT_TYPE_ATOM, 2, 2, 1}, {{ 2, 2,0, 2 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 2, 2, 3}, {{ 3, 1,0, 0 },{ 4, 1,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 1, 1, 3}, {{ 5, 1,0, 0 },{ 4, 1,0, 1 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 1, 1, 2}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_POS, 1 + 1, 0, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
}

◆ cnPNPN

MY_CONST C_NODE cnPNPN[5]
Initial value:
= {
{ {BNS_VERT_TYPE_ATOM, 3, 3, 1}, {{ 2, 3,0, 3 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 3, 3, 3}, {{ 3, 1,0, 0 },{ 4, 2,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 2, 2, 3}, {{ 5, 1,0, 0 },{ 4, 2,0, 2 }, { 0, 0,0, 0 }} },
{ {BNS_VT_CHRG_STRUCT, 2, 2, 2}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
{ {BNS_VT_C_POS, 1 + 1, 0, 1}, {{ 0, 0,0, 0 },{ 0, 0,0, 0 }, { 0, 0,0, 0 }} },
}