52#ifndef COMPILE_ALL_CPP 
   68                       int *found_num_isotopic, 
int nAllocMode );
 
   73                               int nAllocMode, 
int bOrigData );
 
   90                       char *pStrErrStruct );
 
   98                        int nNumRemovedProtons,
 
   99                        NUM_H *nNumRemovedProtonsIsotopic,
 
  116#if ( FIX_DALKE_BUGS == 1 ) 
  164#define IDIFF_SB (IDIF_SB_PARITY | IDIF_SB_EXTRA_UNDF | IDIF_SB_EXTRA | IDIF_SB_MISS_UNDF | IDIF_SB_MISS) 
  165#define IDIFF_SC (IDIF_SC_PARITY | IDIF_SC_EXTRA_UNDF | IDIF_SC_EXTRA | IDIF_SC_MISS_UNDF | IDIF_SC_MISS) 
  167#define IDIFF_CONSTIT (IDIF_POSITION_H | IDIF_MORE_FH | IDIF_LESS_FH | IDIF_MORE_H | IDIF_LESS_H |\ 
  168                       IDIF_NO_TAUT | IDIF_WRONG_TAUT | IDIF_SINGLE_TG | IDIF_MULTIPLE_TG | \ 
  169                       IDIF_NUM_TG | IDIF_EXTRA_TG_ENDP | IDIF_MISS_TG_ENDP | IDIF_TG | \ 
  170                       IDIF_NUM_ISO_AT | IDIF_ISO_AT | IDIF_CHARGE | IDIF_REM_PROT | IDIF_REM_ISO_H |\ 
 
  172#define IDIFF_STEREO  (IDIF_SC_INV | IDIF_SC_PARITY | IDIF_SC_EXTRA_UNDF | IDIF_SC_EXTRA | \ 
  173                       IDIF_SC_MISS_UNDF | IDIF_SC_MISS | IDIF_SB_PARITY | IDIF_SB_EXTRA_UNDF |\ 
  174                       IDIF_SB_EXTRA | IDIF_SB_MISS_UNDF | IDIF_SB_MISS) 
 
  178#define ICR_MAX_ENDP_IN1_ONLY 32 
  179#define ICR_MAX_ENDP_IN2_ONLY 32 
  180#define ICR_MAX_DIFF_FIXED_H  32 
  181#define ICR_MAX_SB_IN1_ONLY   32 
  182#define ICR_MAX_SB_IN2_ONLY   32 
  183#define ICR_MAX_SC_IN1_ONLY   32 
  184#define ICR_MAX_SC_IN2_ONLY   32 
  185#define ICR_MAX_SB_UNDF       32 
  186#define ICR_MAX_SC_UNDF       32 
  245                                     ICR *picr, 
int *err );
 
  332                        char sDifSegs[][
DIFS_LENGTH], 
int bFixTranspChargeBug );
 
  336#define FLAG_SORT_PRINT_TRANSPOS_BAS   1  
  337#define FLAG_SORT_PRINT_TRANSPOS_REC   2  
  338#define FLAG_SORT_PRINT_NO_NFIX_H_BAS  4  
  339#define FLAG_SORT_PRINT_NO_NFIX_H_REC  8  
  340#define FLAG_SORT_PRINT_NO_IFIX_H_BAS 16  
  341#define FLAG_SORT_PRINT_NO_IFIX_H_REC 32  
  342#define FLAG_SORT_PRINT_ReChI_PREFIX  64  
  354                      int bDisconnectedCoord,
 
  356                      int bINChIOutputOptions,
 
  357                      int num_components2[],
 
  362                      int num_input_struct,
 
  363                      int *pSortPrintINChIFlags,
 
  364                      unsigned char save_opt_bits );
 
  369                      int INCHI_basic_or_INCHI_reconnected,
 
  373                      int bDisconnectedCoord,
 
  375                      int bINChIOutputOptions,
 
  376                      int num_components2[],
 
  381                      int num_input_struct,
 
  382                      int *pSortPrintINChIFlags,
 
  383                      unsigned char save_opt_bits );
 
  391                                           int bCompareComponents ); 
 
  407                       const char *szLabel, 
const char *szValue );
 
  417#define SDF_LBL_VAL(L,V)  ((L)&&(L)[0])?gsSpace:gsEmpty, ((L)&&(L)[0])?L:gsEmpty, ((L)&&(L)[0])? (((V)&&(V)[0])?gsEqual:gsSpace):gsEmpty, ((V)&&(V)[0])?V:((L)&&(L)[0])?gsMissing:gsEmpty 
  421    int  imat_new(
int m, 
int n, 
int ***a);
 
  474                                int *nbonds, 
int **bonds,
 
  475                                int *natoms, 
int *atoms);
 
  483#ifndef COMPILE_ALL_CPP 
INChI * PINChI2[TAUT_NUM]
Definition ichi.h:259
 
INChI_Aux * PINChI_Aux2[TAUT_NUM]
Definition ichi.h:302
 
unsigned short AT_NUMB
Definition ichisize.h:45
 
signed short NUM_H
Definition ichisize.h:49
 
unsigned long INCHI_MODE
Definition ichisize.h:60
 
signed char S_CHAR
Definition inchi_api.h:113
 
#define TAUT_NUM
Definition mode.h:593
 
int etype
Definition strutil.h:435
 
int nbr
Definition strutil.h:434
 
int * seen
Definition strutil.h:458
 
int nseen
Definition strutil.h:457
 
int end
Definition strutil.h:454
 
subgraf * sg
Definition strutil.h:452
 
int start
Definition strutil.h:453
 
int nbonds
Definition strutil.h:456
 
int maxbonds
Definition strutil.h:455
 
int * nodes
Definition strutil.h:442
 
int * degrees
Definition strutil.h:444
 
int * orig2node
Definition strutil.h:445
 
subgraf_edge ** adj
Definition strutil.h:446
 
int nnodes
Definition strutil.h:441
 
Definition ichicant.h:338
 
Structure describing composite atom data for InChI generation.
Definition inpdef.h:647
 
int num_fixed_H2_more
Definition strutil.h:217
 
AT_NUMB sc_in2_only[ICR_MAX_SC_IN2_ONLY]
Definition strutil.h:221
 
int num_sb_in2_only
Definition strutil.h:227
 
AT_NUMB fixed_H_at1_more[ICR_MAX_DIFF_FIXED_H]
Definition strutil.h:211
 
int num_sc_in1_only
Definition strutil.h:220
 
int tot_num_H2
Definition strutil.h:193
 
AT_NUMB sc_undef_in2_only[ICR_MAX_SB_UNDF]
Definition strutil.h:236
 
AT_NUMB sb_undef_in1_only[ICR_MAX_SC_UNDF]
Definition strutil.h:229
 
int num_endp_in2_only
Definition strutil.h:205
 
int tot_num_H1
Definition strutil.h:192
 
S_CHAR fixed_H_nH2_more[ICR_MAX_DIFF_FIXED_H]
Definition strutil.h:216
 
int num_sc_in2_only
Definition strutil.h:222
 
int num_sb_undef_in2_only
Definition strutil.h:232
 
INCHI_MODE flags
Definition strutil.h:190
 
int num_sb_undef_in1_only
Definition strutil.h:230
 
int num_sb_in1_only
Definition strutil.h:225
 
AT_NUMB sb_undef_in2_only[ICR_MAX_SC_UNDF]
Definition strutil.h:231
 
AT_NUMB diff_pos_H_at[ICR_MAX_DIFF_FIXED_H]
Definition strutil.h:207
 
int num_diff_pos_H
Definition strutil.h:209
 
AT_NUMB sb_in2_only[ICR_MAX_SB_IN2_ONLY]
Definition strutil.h:226
 
int num_fixed_H1_more
Definition strutil.h:213
 
AT_NUMB sc_in1_only[ICR_MAX_SC_IN1_ONLY]
Definition strutil.h:219
 
int num_sc_undef_in2_only
Definition strutil.h:237
 
AT_NUMB fixed_H_at2_more[ICR_MAX_DIFF_FIXED_H]
Definition strutil.h:215
 
AT_NUMB endp_in1_only[ICR_MAX_ENDP_IN1_ONLY]
Definition strutil.h:201
 
AT_NUMB sb_in1_only[ICR_MAX_SB_IN1_ONLY]
Definition strutil.h:224
 
int num_taut_M2
Definition strutil.h:197
 
int num_endp_in1_only
Definition strutil.h:202
 
int num_taut_M1
Definition strutil.h:196
 
int num_sc_undef_in1_only
Definition strutil.h:235
 
AT_NUMB sc_undef_in1_only[ICR_MAX_SB_UNDF]
Definition strutil.h:234
 
AT_NUMB endp_in2_only[ICR_MAX_ENDP_IN2_ONLY]
Definition strutil.h:204
 
int num_taut_H1
Definition strutil.h:194
 
int num_taut_H2
Definition strutil.h:195
 
S_CHAR fixed_H_nH1_more[ICR_MAX_DIFF_FIXED_H]
Definition strutil.h:212
 
S_CHAR diff_pos_H_nH[ICR_MAX_DIFF_FIXED_H]
Definition strutil.h:208
 
Structure describing information about atoms for InChI generation.
Definition inpdef.h:553
 
Structure describing original atom data.
Definition inpdef.h:433
 
Structure describing original structure.
Definition inpdef.h:478
 
Definition ichitaut.h:222
 
int OutputINChI2(struct tagCANON_GLOBALS *pCG, INCHI_IOS_STRING *strbuf, INCHI_SORT *pINChISortTautAndNonTaut2[][TAUT_NUM], int INCHI_basic_or_INCHI_reconnected, ORIG_ATOM_DATA *orig_inp_data, ORIG_STRUCT *pOrigStruct, INPUT_PARMS *ip, int bDisconnectedCoord, int bOutputType, int bINChIOutputOptions, int num_components2[], int num_non_taut2[], int num_taut2[], INCHI_IOSTREAM *out_file, INCHI_IOSTREAM *log_file, int num_input_struct, int *pSortPrintINChIFlags, unsigned char save_opt_bits)
Definition ichiprt1.c:966
 
#define ICR_MAX_SC_IN2_ONLY
Definition strutil.h:184
 
int imat_new(int m, int n, int ***a)
Definition strutil.c:4998
 
struct tagInChICompareResults ICR
 
int CompINChITaut2(const void *p1, const void *p2)
Definition ichimake.c:2064
 
int GetInpStructErrorType(INPUT_PARMS *ip, int err, char *pStrErrStruct, int num_inp_atoms)
Definition ichimake.c:2476
 
const char gsMissing[]
Definition runichi.c:207
 
enum tagMarkDiff DIF_VALUES
 
int Free_INChI_Stereo(INChI_Stereo *pINChI_Stereo)
Definition strutil.c:4604
 
tagDiffINChISegments
Definition strutil.h:278
 
@ DIFS_t_SATOMS
Definition strutil.h:285
 
@ DIFS_idf_LENGTH
Definition strutil.h:290
 
@ DIFS_m_SP3INV
Definition strutil.h:286
 
@ DIFS_h_H_ATOMS
Definition strutil.h:281
 
@ DIFS_f_FORMULA
Definition strutil.h:279
 
@ DIFS_q_CHARGE
Definition strutil.h:282
 
@ DIFS_p_PROTONS
Definition strutil.h:283
 
@ DIFS_b_SBONDS
Definition strutil.h:284
 
@ DIFS_o_TRANSP
Definition strutil.h:289
 
@ DIFS_i_IATOMS
Definition strutil.h:288
 
@ DIFS_s_STYPE
Definition strutil.h:287
 
@ DIFS_LENGTH
Definition strutil.h:292
 
@ DIFS_c_CONNECT
Definition strutil.h:280
 
enum tagDiffINChISegments DIF_SEGMENTS
 
int Free_INChI_Aux(INChI_Aux **ppINChI_Aux)
Definition strutil.c:4836
 
void imat_free(int m, int **a)
Definition strutil.c:5029
 
int Eql_INChI_Isotopic(INChI *i1, INChI *i2)
Definition ichiprt2.c:203
 
int subgraf_pathfinder_collect_all(subgraf_pathfinder *spf, int nforbidden, int *forbidden, int *atnums)
Definition strutil.c:5415
 
int FillOutInfAtom(struct tagCANON_GLOBALS *pCG, inp_ATOM *norm_at, INF_ATOM_DATA *inf_norm_at_data, int init_num_at, int num_removed_H, int bAdd_DT_to_num_H, int nNumRemovedProtons, NUM_H *nNumRemovedProtonsIsotopic, int bIsotopic, INChI *pINChI, INChI_Aux *pINChI_Aux, int bAbcNumbers, INCHI_MODE nMode)
 
subgraf * subgraf_new(ORIG_ATOM_DATA *orig_inp_data, int nnodes, int *nodes)
Definition strutil.c:5057
 
#define ICR_MAX_SC_IN1_ONLY
Definition strutil.h:183
 
const char * CompareReversedInchiMsg(int code)
 
int Free_INChI(INChI **ppINChI)
Definition strutil.c:4668
 
int CompINChI2(const INCHI_SORT *p1, const INCHI_SORT *p2, int bTaut, int bCompareIsotopic)
Definition ichimake.c:1712
 
enum tagINChISegmAction INCHI_SEGM_ACTION
 
#define ICR_MAX_SB_UNDF
Definition strutil.h:185
 
int ProcessStructError(INCHI_IOSTREAM *out_file, INCHI_IOSTREAM *log_file, char *pStrErrStruct, int nErrorType, long num_inp, INPUT_PARMS *ip)
Definition ichimake.c:2507
 
INCHI_MODE CompareReversedINChI2(INChI *i1, INChI *i2, INChI_Aux *a1, INChI_Aux *a2, ICR *picr, int *err)
Definition ichimake.c:3258
 
tagMarkDiff
Definition strutil.h:306
 
@ DIFV_OUTPUT_OMIT_F
Definition strutil.h:319
 
@ DIFV_OUTPUT_FILL_T
Definition strutil.h:321
 
@ DIFV_NEQ2PRECED
Definition strutil.h:309
 
@ DIFV_OUTPUT_EMPTY_T
Definition strutil.h:316
 
@ DIFV_BOTH_EMPTY
Definition strutil.h:307
 
@ DIFV_EQL2PRECED
Definition strutil.h:308
 
@ DIFV_OUTPUT_EMPTY_F
Definition strutil.h:317
 
@ DIFV_FI_EQ_MI
Definition strutil.h:311
 
@ DIFV_IS_EMPTY
Definition strutil.h:310
 
void subgraf_free(subgraf *sg)
Definition strutil.c:5148
 
#define ICR_MAX_ENDP_IN1_ONLY
Definition strutil.h:178
 
#define ICR_MAX_SB_IN2_ONLY
Definition strutil.h:182
 
void subgraf_pathfinder_run(subgraf_pathfinder *spf, int nforbidden, int *forbidden_orig, int *nbonds, int **bonds, int *natoms, int *atoms)
Definition strutil.c:5266
 
const char gsEmpty[]
Definition runichi.c:208
 
int bHasEquString(AT_NUMB *LinearCT, int nLenCT)
Definition ichiprt2.c:398
 
int CompareReversedINChI(INChI *i1, INChI *i2, INChI_Aux *a1, INChI_Aux *a2)
Definition ichimake.c:2932
 
int INChI_SegmentAction(char cDifSegs)
Definition ichimake.c:1486
 
int bIsSameBond(int a1, int a2, int b1, int b2)
Definition runichi2.c:1293
 
int Eql_INChI_Aux_Num(INChI_Aux *a1, int eql1, INChI_Aux *a2, int eql2)
Definition ichiprt2.c:305
 
int Create_INChI(struct tagCANON_GLOBALS *pCG, struct tagINCHI_CLOCK *ic, INPUT_PARMS *ip, INChI **ppINChI, INChI_Aux **ppINChI_Aux, ORIG_ATOM_DATA *orig_inp_data, inp_ATOM *inp_at, INP_ATOM_DATA *inp_norm_data[2], int num_inp_at, INCHI_MODE nUserMode, INCHI_MODE *pbTautFlags, INCHI_MODE *pbTautFlagsDone, struct tagInchiTime *ulMaxTime, struct tagTautomerGroupsInfo *ti_out, char *pStrErrStruct)
Definition ichimake.c:3703
 
subgraf_pathfinder * subgraf_pathfinder_new(subgraf *sg, ORIG_ATOM_DATA *orig_inp_data, int start, int end)
Definition strutil.c:5214
 
void CompAtomData_GetNumMapping(COMP_ATOM_DATA *adata, int *orig_num, int *curr_num)
Definition strutil.c:4979
 
void subgraf_debug_trace(subgraf *sg)
Definition strutil.c:5185
 
#define ICR_MAX_DIFF_FIXED_H
Definition strutil.h:180
 
int CompINChITautVsNonTaut(const INCHI_SORT *p1, const INCHI_SORT *p2, int bCompareIsotopic)
Definition ichimake.c:341
 
int MarkUnusedAndEmptyLayers(char sDifSegs[][DIFS_LENGTH])
Definition ichimake.c:1525
 
int bIsMetalSalt(inp_ATOM *at, int i)
Definition strutil.c:2504
 
int bNumHeterAtomHasIsotopicH(inp_ATOM *atom, int num_atoms)
Definition strutil.c:4126
 
int CompINChILayers(const INCHI_SORT *p1, const INCHI_SORT *p2, char sDifSegs[][DIFS_LENGTH], int bFixTranspChargeBug)
Definition ichimake.c:645
 
const char gsEqual[]
Definition runichi.c:210
 
enum tagInchiDiffBits IDIF
 
INChI_Aux * Alloc_INChI_Aux(int num_at, int num_isotopic_atoms, int nAllocMode, int bOrigData)
Definition strutil.c:4877
 
enum tagDiffINChILayers DIF_LAYERS
 
int ExtractConnectedComponent(inp_ATOM *at, int num_at, int component_number, inp_ATOM *component_at)
Definition strutil.c:4551
 
int SaveEquComponentsInfoAndSortOrder(int iINChI, INCHI_SORT *pINChISort[TAUT_NUM], int *num_components, ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data, COMP_ATOM_DATA composite_norm_data[TAUT_NUM+1], int bCompareComponents)
 
#define ICR_MAX_ENDP_IN2_ONLY
Definition strutil.h:179
 
tagDiffINChILayers
Definition strutil.h:296
 
@ DIFL_LENGTH
Definition strutil.h:301
 
@ DIFL_FI
Definition strutil.h:300
 
@ DIFL_M
Definition strutil.h:297
 
@ DIFL_MI
Definition strutil.h:298
 
@ DIFL_F
Definition strutil.h:299
 
INChI * Alloc_INChI(inp_ATOM *at, int num_at, int *found_num_bonds, int *found_num_isotopic, int nAllocMode)
Definition strutil.c:4715
 
tagINChISegmAction
Definition strutil.h:325
 
@ INCHI_SEGM_OMIT
Definition strutil.h:326
 
@ INCHI_SEGM_FILL
Definition strutil.h:327
 
@ INCHI_SEGM_EMPTY
Definition strutil.h:328
 
int SetConnectedComponentNumber(inp_ATOM *at, int num_at, int component_number)
Definition strutil.c:4591
 
const char gsSpace[]
Definition runichi.c:209
 
int CompareIcr(ICR *picr1, ICR *picr2, INCHI_MODE *pin1, INCHI_MODE *pin2, INCHI_MODE mask)
Definition ichimake.c:3185
 
int Eql_INChI_Aux_Equ(INChI_Aux *a1, int eql1, INChI_Aux *a2, int eql2)
Definition ichiprt2.c:227
 
int FillOutCompositeCanonInfAtom(struct tagCANON_GLOBALS *pCG, COMP_ATOM_DATA *composite_norm_data, INF_ATOM_DATA *inf_norm_at_data, int bIsotopic, int bTautomeric, PINChI2 *pINChI2, PINChI_Aux2 *pINChI_Aux2, int bAbcNumbers, INCHI_MODE nMode)
 
#define ICR_MAX_SC_UNDF
Definition strutil.h:186
 
int OutputINChIPlainError(INCHI_IOSTREAM *out_file, char *pErrorText, int bError)
Definition ichiprt1.c:514
 
void subgraf_pathfinder_free(subgraf_pathfinder *spf)
Definition strutil.c:5245
 
tagInchiDiffBits
Definition strutil.h:121
 
@ IDIF_SC_EXTRA_UNDF
Definition strutil.h:152
 
@ IDIF_MULTIPLE_TG
Definition strutil.h:137
 
@ IDIF_CON_TBL
Definition strutil.h:127
 
@ IDIF_REM_ISO_H
Definition strutil.h:149
 
@ IDIF_SB_MISS_UNDF
Definition strutil.h:159
 
@ IDIF_NUM_ISO_AT
Definition strutil.h:145
 
@ IDIF_REM_PROT
Definition strutil.h:148
 
@ IDIF_POSITION_H
Definition strutil.h:128
 
@ IDIF_SB_MISS
Definition strutil.h:160
 
@ IDIF_MISS_TG_ENDP
Definition strutil.h:142
 
@ IDIF_TG
Definition strutil.h:144
 
@ IDIF_SC_INV
Definition strutil.h:150
 
@ IDIF_SC_PARITY
Definition strutil.h:151
 
@ IDIF_SINGLE_TG
Definition strutil.h:136
 
@ IDIF_SB_EXTRA
Definition strutil.h:158
 
@ IDIF_MORE_FH
Definition strutil.h:129
 
@ IDIF_NUM_EL
Definition strutil.h:125
 
@ IDIF_ISO_AT
Definition strutil.h:146
 
@ IDIF_NUM_AT
Definition strutil.h:123
 
@ IDIF_CON_LEN
Definition strutil.h:126
 
@ IDIF_EXTRA_TG_ENDP
Definition strutil.h:141
 
@ IDIF_SB_EXTRA_UNDF
Definition strutil.h:157
 
@ IDIF_LESS_H
Definition strutil.h:132
 
@ IDIF_ATOMS
Definition strutil.h:124
 
@ IDIF_DIFF_TG_ENDP
Definition strutil.h:143
 
@ IDIF_SC_MISS
Definition strutil.h:155
 
@ IDIF_CHARGE
Definition strutil.h:147
 
@ IDIF_SC_EXTRA
Definition strutil.h:153
 
@ IDIF_LESS_FH
Definition strutil.h:130
 
@ IDIF_PROBLEM
Definition strutil.h:122
 
@ IDIF_NO_TAUT
Definition strutil.h:134
 
@ IDIF_WRONG_TAUT
Definition strutil.h:135
 
@ IDIF_SB_PARITY
Definition strutil.h:156
 
@ IDIF_NUM_TG
Definition strutil.h:138
 
@ IDIF_MORE_H
Definition strutil.h:131
 
@ IDIF_SC_MISS_UNDF
Definition strutil.h:154
 
int WriteToSDfile(const INP_ATOM_DATA *inp_at_data, INCHI_IOSTREAM *fcb, const char *name, const char *comment, const char *szLabel, const char *szValue)
 
int OutputINChI1(struct tagCANON_GLOBALS *pCG, INCHI_IOS_STRING *strbuf, INCHI_SORT *pINChISortTautAndNonTaut2[][TAUT_NUM], int iINChI, ORIG_ATOM_DATA *orig_inp_data, ORIG_STRUCT *pOrigStruct, INPUT_PARMS *ip, int bDisconnectedCoord, int bOutputType, int bINChIOutputOptions, int num_components2[], int num_non_taut2[], int num_taut2[], INCHI_IOSTREAM *out_file, INCHI_IOSTREAM *log_file, int num_input_struct, int *pSortPrintINChIFlags, unsigned char save_opt_bits)
Definition ichiprt1.c:1043
 
int CompINChINonTaut2(const void *p1, const void *p2)
Definition ichimake.c:2042
 
int Free_INChI_Members(INChI *pINChI)
Definition strutil.c:4691
 
#define ICR_MAX_SB_IN1_ONLY
Definition strutil.h:181
 
char * AllocateAndFillHillFormula(INChI *pINChI)
Definition ichimak2.c:401
 
int Eql_INChI_Stereo(INChI_Stereo *s1, int eql1, INChI_Stereo *s2, int eql2, int bRelRac)
Definition ichiprt2.c:54