46#ifndef FIND_RING_SYSTEMS
47#define FIND_RING_SYSTEMS 1
49#ifndef FIND_RINS_SYSTEMS_DISTANCES
50#define FIND_RINS_SYSTEMS_DISTANCES 0
54#ifndef FIX_DOCANON_RETCODE_RESET_BUG
55#define FIX_DOCANON_RETCODE_RESET_BUG 1
107#define NUM_H_ISOTOPES 3
108#define ISOTOPIC_SHIFT_FLAG 10000
110#define ISOTOPIC_SHIFT_MAX 100
112#ifndef INCHI_US_CHAR_DEF
115#define INCHI_US_CHAR_DEF
118#ifndef INCHI_US_SHORT_DEF
121#define INCHI_US_SHORT_DEF
691#if (defined( _WIN32 ) && defined( _MSC_VER ) && defined(BUILD_LINK_AS_DLL) )
695#define INCHI_API __declspec(dllexport)
696#define EXPIMP_TEMPLATE
700#define INCHI_API __declspec(dllimport)
701#define EXPIMP_TEMPLATE extern
707#define EXPIMP_TEMPLATE
765#ifndef COMPILE_ALL_CPP
773#define INCHI_STRING_PREFIX "InChI="
774#define LEN_INCHI_STRING_PREFIX 6
904#ifndef COMPILE_ALL_CPP
920#define STR_ERR_LEN 256
930#ifndef COMPILE_ALL_CPP
957 char *szInchiAuxInfo,
959 int bDiffUnkUndfStereo,
997#ifndef COMPILE_ALL_CPP
1050#define INCHIKEY_OK 0
1051#define INCHIKEY_UNKNOWN_ERROR 1
1052#define INCHIKEY_EMPTY_INPUT 2
1053#define INCHIKEY_INVALID_INCHI_PREFIX 3
1054#define INCHIKEY_NOT_ENOUGH_MEMORY 4
1055#define INCHIKEY_INVALID_INCHI 20
1056#define INCHIKEY_INVALID_STD_INCHI 21
1077#ifndef COMPILE_ALL_CPP
1148#ifndef COMPILE_ALL_CPP
1172#ifndef MAX_NUM_STEREO_ATOM_NEIGH
1173#define MAX_NUM_STEREO_ATOM_NEIGH 4
1175#ifndef MAX_NUM_STEREO_BONDS
1176#define MAX_NUM_STEREO_BONDS 3
1230#if ( FIND_RING_SYSTEMS == 1 )
1236#if ( FIND_RINS_SYSTEMS_DISTANCES == 1 )
1296#ifndef COMPILE_ALL_CPP
1407#ifndef COMPILE_ALL_CPP
void FreeInChIExtInput(inchi_Input_Polymer *polymer, inchi_Input_V3000 *v3000)
Definition inchi_dll.c:2923
unsigned short AT_NUMBR
Definition inchi_api.h:1183
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL GetStructFromStdINCHI(inchi_InputINCHI *inpInChI, inchi_OutputStruct *outStruct)
Definition inchi_dll.c:2461
signed char S_CHAR
Definition inchi_api.h:113
unsigned short U_SHORT
Definition inchi_api.h:120
void * INCHIGEN_HANDLE
Definition inchi_api.h:1286
EXPIMP_TEMPLATE INCHI_API INCHIGEN_HANDLE INCHI_DECL INCHIGEN_Create(void)
Definition inchi_dll_a.c:130
signed short NUM_HS
Definition inchi_api.h:1184
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL STDINCHIGEN_DoCanonicalization(INCHIGEN_HANDLE HGen, INCHIGEN_DATA *pGenData)
Definition inchi_dll_a.c:690
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL MakeINCHIFromMolfileText(const char *moltext, char *options, inchi_Output *result)
Definition inchi_dll_b.c:127
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL GetStringLength(char *p)
Definition inchi_dll.c:2086
EXPIMP_TEMPLATE INCHI_API void INCHI_DECL FreeStructFromINCHIEx(inchi_OutputStructEx *out)
Definition inchi_dll.c:2892
enum tagINCHIStereoType0D inchi_StereoType0D
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL GetINCHIKeyFromINCHI(const char *szINCHISource, const int xtra1, const int xtra2, char *szINCHIKey, char *szXtra1, char *szXtra2)
Definition ikey_dll.c:113
#define NUM_H_ISOTOPES
Definition inchi_api.h:107
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL GetINCHIEx(inchi_InputEx *inp, inchi_Output *out)
Definition inchi_dll.c:325
inchi_Input_PolymerUnit inchi_Output_PolymerUnit
Definition inchi_api.h:599
EXPIMP_TEMPLATE INCHI_API void INCHI_DECL STDINCHIGEN_Destroy(INCHIGEN_HANDLE HGen)
Definition inchi_dll_a.c:1308
tagRetValGetINCHIKey
Definition inchi_api.h:1061
@ INCHIKEY_INVALID_LAYOUT
Definition inchi_api.h:1065
@ INCHIKEY_VALID_NON_STANDARD
Definition inchi_api.h:1063
@ INCHIKEY_INVALID_LENGTH
Definition inchi_api.h:1064
@ INCHIKEY_INVALID_VERSION
Definition inchi_api.h:1066
@ INCHIKEY_VALID_STANDARD
Definition inchi_api.h:1062
EXPIMP_TEMPLATE INCHI_API void INCHI_DECL Free_std_inchi_Input(inchi_Input *pInp)
Definition ichilnct.c:182
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL GetStructFromINCHI(inchi_InputINCHI *inpInChI, inchi_OutputStruct *outStruct)
Definition inchi_dll.c:2856
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL INCHIGEN_DoNormalization(INCHIGEN_HANDLE HGen, INCHIGEN_DATA *pGenData)
Definition inchi_dll_a.c:442
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL INCHIGEN_DoSerialization(INCHIGEN_HANDLE HGen, INCHIGEN_DATA *pGenData, inchi_Output *pResults)
Definition inchi_dll_a.c:869
unsigned char U_CHAR
Definition inchi_api.h:114
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL Get_inchi_Input_FromAuxInfo(char *szInchiAuxInfo, int bDoNotAddH, int bDiffUnkUndfStereo, InchiInpData *pInchiInp)
Definition ichilnct.c:89
EXPIMP_TEMPLATE INCHI_API void INCHI_DECL Free_inchi_Input(inchi_Input *pInp)
Definition ichilnct.c:187
EXPIMP_TEMPLATE INCHI_API void INCHI_DECL FreeStdINCHI(inchi_Output *out)
Definition inchi_dll.c:183
tagINCHIBondStereo2D
Definition inchi_api.h:74
@ INCHI_BOND_STEREO_SINGLE_1DOWN
Definition inchi_api.h:79
@ INCHI_BOND_STEREO_SINGLE_1EITHER
Definition inchi_api.h:78
@ INCHI_BOND_STEREO_NONE
Definition inchi_api.h:76
@ INCHI_BOND_STEREO_SINGLE_2EITHER
Definition inchi_api.h:82
@ INCHI_BOND_STEREO_DOUBLE_EITHER
Definition inchi_api.h:85
@ INCHI_BOND_STEREO_SINGLE_2UP
Definition inchi_api.h:81
@ INCHI_BOND_STEREO_SINGLE_1UP
Definition inchi_api.h:77
@ INCHI_BOND_STEREO_SINGLE_2DOWN
Definition inchi_api.h:83
enum tagINCHIRadical inchi_Radical
#define INCHI_API
Definition inchi_api.h:706
#define INCHI_NUM
Definition inchi_api.h:1179
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL GetINCHIfromINCHI(inchi_InputINCHI *inpInChI, inchi_Output *out)
Definition inchi_dll.c:2114
EXPIMP_TEMPLATE INCHI_API void INCHI_DECL FreeINCHI(inchi_Output *out)
Definition inchi_dll.c:153
#define INCHI_DECL
Definition inchi_api.h:708
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL STDINCHIGEN_Setup(INCHIGEN_HANDLE HGen, INCHIGEN_DATA *pGenData, inchi_Input *pInp)
Definition inchi_dll_a.c:185
struct tagInchiInpData InchiInpData
tagINCHIBondType
Definition inchi_api.h:67
@ INCHI_BOND_TYPE_ALTERN
Definition inchi_api.h:72
@ INCHI_BOND_TYPE_DOUBLE
Definition inchi_api.h:70
@ INCHI_BOND_TYPE_SINGLE
Definition inchi_api.h:69
@ INCHI_BOND_TYPE_NONE
Definition inchi_api.h:68
@ INCHI_BOND_TYPE_TRIPLE
Definition inchi_api.h:71
struct tagINCHIGEN_DATA INCHIGEN_DATA
EXPIMP_TEMPLATE INCHI_API void INCHI_DECL STDINCHIGEN_Reset(INCHIGEN_HANDLE HGen, INCHIGEN_DATA *pGenData, inchi_Output *pResults)
Definition inchi_dll_a.c:1125
EXPIMP_TEMPLATE INCHI_API void INCHI_DECL INCHIGEN_Destroy(INCHIGEN_HANDLE HGen)
Definition inchi_dll_a.c:1315
struct tagINCHI_InputINCHI inchi_InputINCHI
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL CheckINCHIKey(const char *szINCHIKey)
Definition ikey_dll.c:513
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL Get_std_inchi_Input_FromAuxInfo(char *szInchiAuxInfo, int bDoNotAddH, InchiInpData *pInchiInp)
Definition ichilnct.c:80
enum tagRetValMOL2INCHI RetValMol2INCHI
#define EXPIMP_TEMPLATE
Definition inchi_api.h:707
struct tagInchiAtom inchi_Atom
struct tagINCHI_OutputStructEx inchi_OutputStructEx
enum tagRetValGetINCHIKey RetValCheckINCHIKeyv
EXPIMP_TEMPLATE INCHI_API INCHIGEN_HANDLE INCHI_DECL STDINCHIGEN_Create(void)
Definition inchi_dll_a.c:122
unsigned long INCHI_MODES
Definition inchi_api.h:1185
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL GetStdINCHI(inchi_Input *inp, inchi_Output *out)
Definition inchi_dll.c:242
struct tagNormAtom NORM_ATOM
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL STDINCHIGEN_DoSerialization(INCHIGEN_HANDLE HGen, INCHIGEN_DATA *pGenData, inchi_Output *pResults)
Definition inchi_dll_a.c:859
inchi_Input_V3000 inchi_Output_V3000
Definition inchi_api.h:601
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL GetINCHI(inchi_Input *inp, inchi_Output *out)
Definition inchi_dll.c:270
enum tagRetValCheckINCHI RetValCheckINCHI
tagINCHIStereoParity0D
Definition inchi_api.h:415
@ INCHI_PARITY_UNDEFINED
Definition inchi_api.h:421
@ INCHI_PARITY_UNKNOWN
Definition inchi_api.h:419
@ INCHI_PARITY_ODD
Definition inchi_api.h:417
@ INCHI_PARITY_NONE
Definition inchi_api.h:416
@ INCHI_PARITY_EVEN
Definition inchi_api.h:418
struct tagINCHI_Input inchi_Input
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL INCHIGEN_Setup(INCHIGEN_HANDLE HGen, INCHIGEN_DATA *pGenData, inchi_Input *pInp)
Definition inchi_dll_a.c:260
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL GetStructFromINCHIEx(inchi_InputINCHI *inpInChI, inchi_OutputStructEx *outStruct)
Definition inchi_dll.c:2485
tagRetValMOL2INCHI
Definition inchi_api.h:739
@ mol2inchi_Ret_ERROR_get
Definition inchi_api.h:744
@ mol2inchi_Ret_OKAY
Definition inchi_api.h:740
@ mol2inchi_Ret_WARNING
Definition inchi_api.h:741
@ mol2inchi_Ret_ERROR
Definition inchi_api.h:743
@ mol2inchi_Ret_EOF
Definition inchi_api.h:742
@ mol2inchi_Ret_ERROR_comp
Definition inchi_api.h:745
struct tagNormAtomData NORM_ATOMS
EXPIMP_TEMPLATE INCHI_API void INCHI_DECL FreeStructFromINCHI(inchi_OutputStruct *out)
Definition inchi_dll.c:208
#define ATOM_EL_LEN
Definition inchi_api.h:106
tagRetValCheckINCHI
Definition inchi_api.h:752
@ INCHI_INVALID_PREFIX
Definition inchi_api.h:756
@ INCHI_VALID_NON_STANDARD
Definition inchi_api.h:754
@ INCHI_VALID_BETA
Definition inchi_api.h:755
@ INCHI_VALID_STANDARD
Definition inchi_api.h:753
@ INCHI_INVALID_VERSION
Definition inchi_api.h:757
@ INCHI_INVALID_LAYOUT
Definition inchi_api.h:758
@ INCHI_FAIL_I2I
Definition inchi_api.h:759
#define MAX_NUM_STEREO_BONDS
Definition inchi_api.h:1176
EXPIMP_TEMPLATE INCHI_API void INCHI_DECL FreeStructFromStdINCHI(inchi_OutputStruct *out)
Definition inchi_dll.c:195
inchi_Input_Polymer inchi_Output_Polymer
Definition inchi_api.h:600
#define MAXVAL
Definition inchi_api.h:105
struct tagINCHI_OutputStruct inchi_OutputStruct
signed short S_SHORT
Definition inchi_api.h:119
tagRetValGetINCHI
Definition inchi_api.h:723
@ inchi_Ret_BUSY
Definition inchi_api.h:732
@ inchi_Ret_UNKNOWN
Definition inchi_api.h:731
@ inchi_Ret_BREAK
Definition inchi_api.h:724
@ inchi_Ret_ERROR
Definition inchi_api.h:729
@ inchi_Ret_EOF
Definition inchi_api.h:726
@ inchi_Ret_SKIP
Definition inchi_api.h:725
@ inchi_Ret_FATAL
Definition inchi_api.h:730
@ inchi_Ret_OKAY
Definition inchi_api.h:727
@ inchi_Ret_WARNING
Definition inchi_api.h:728
struct tagINCHI_Output inchi_Output
enum tagINCHIStereoParity0D inchi_StereoParity0D
S_SHORT AT_NUM
Definition inchi_api.h:124
tagINCHIStereoType0D
Definition inchi_api.h:407
@ INCHI_StereoType_DoubleBond
Definition inchi_api.h:409
@ INCHI_StereoType_Tetrahedral
Definition inchi_api.h:410
@ INCHI_StereoType_Allene
Definition inchi_api.h:411
@ INCHI_StereoType_None
Definition inchi_api.h:408
enum tagINCHIBondStereo2D inchi_BondStereo2D
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL STDINCHIGEN_DoNormalization(INCHIGEN_HANDLE HGen, INCHIGEN_DATA *pGenData)
Definition inchi_dll_a.c:435
#define STR_ERR_LEN
Definition inchi_api.h:920
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL INCHIGEN_DoCanonicalization(INCHIGEN_HANDLE HGen, INCHIGEN_DATA *pGenData)
Definition inchi_dll_a.c:698
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL CheckINCHI(const char *szINCHI, const int strict)
Definition inchi_dll.c:834
enum tagRetValGetINCHI RetValGetINCHI
tagINCHIRadical
Definition inchi_api.h:59
@ INCHI_RADICAL_NONE
Definition inchi_api.h:60
@ INCHI_RADICAL_TRIPLET
Definition inchi_api.h:63
@ INCHI_RADICAL_DOUBLET
Definition inchi_api.h:62
@ INCHI_RADICAL_SINGLET
Definition inchi_api.h:61
EXPIMP_TEMPLATE INCHI_API int INCHI_DECL GetStdINCHIKeyFromStdINCHI(const char *szINCHISource, char *szINCHIKey)
Definition ikey_dll.c:92
struct tagINCHIStereo0D inchi_Stereo0D
#define MAX_NUM_STEREO_ATOM_NEIGH
Definition inchi_api.h:1173
enum tagINCHIBondType inchi_BondType
EXPIMP_TEMPLATE INCHI_API void INCHI_DECL INCHIGEN_Reset(INCHIGEN_HANDLE HGen, INCHIGEN_DATA *pGenData, inchi_Output *pResults)
Definition inchi_dll_a.c:1134
Definition inchi_api.h:1271
char pStrErrStruct[STR_ERR_LEN]
Definition inchi_api.h:1273
int num_components[INCHI_NUM]
Definition inchi_api.h:1274
NORM_ATOMS * NormAtomsTaut[INCHI_NUM]
Definition inchi_api.h:1280
NORM_ATOMS * NormAtomsNontaut[INCHI_NUM]
Definition inchi_api.h:1279
Definition inchi_api.h:434
AT_NUM central_atom
Definition inchi_api.h:436
S_CHAR parity
Definition inchi_api.h:439
S_CHAR type
Definition inchi_api.h:438
AT_NUM neighbor[4]
Definition inchi_api.h:435
Definition inchi_api.h:658
inchi_Stereo0D * stereo0D
Definition inchi_api.h:662
inchi_Output_V3000 * v3000
Definition inchi_api.h:675
inchi_Atom * atom
Definition inchi_api.h:661
char * szMessage
Definition inchi_api.h:665
unsigned long WarningFlags[2][2]
Definition inchi_api.h:668
inchi_Output_Polymer * polymer
Definition inchi_api.h:674
char * szLog
Definition inchi_api.h:666
AT_NUM num_stereo0D
Definition inchi_api.h:664
AT_NUM num_atoms
Definition inchi_api.h:663
Definition inchi_api.h:636
AT_NUM num_stereo0D
Definition inchi_api.h:642
char * szMessage
Definition inchi_api.h:643
inchi_Stereo0D * stereo0D
Definition inchi_api.h:640
unsigned long WarningFlags[2][2]
Definition inchi_api.h:646
char * szLog
Definition inchi_api.h:644
AT_NUM num_atoms
Definition inchi_api.h:641
inchi_Atom * atom
Definition inchi_api.h:639
Definition inchi_api.h:622
char * szLog
Definition inchi_api.h:628
char * szAuxInfo
Definition inchi_api.h:626
char * szMessage
Definition inchi_api.h:627
char * szInChI
Definition inchi_api.h:625
Definition inchi_api.h:134
AT_NUM isotopic_mass
Definition inchi_api.h:158
double z
Definition inchi_api.h:138
S_CHAR charge
Definition inchi_api.h:161
S_CHAR radical
Definition inchi_api.h:160
AT_NUM num_bonds
Definition inchi_api.h:149
S_CHAR num_iso_H[NUM_H_ISOTOPES+1]
Definition inchi_api.h:151
S_CHAR bond_type[MAXVAL]
Definition inchi_api.h:142
double y
Definition inchi_api.h:137
char elname[ATOM_EL_LEN]
Definition inchi_api.h:147
AT_NUM neighbor[MAXVAL]
Definition inchi_api.h:140
S_CHAR bond_stereo[MAXVAL]
Definition inchi_api.h:144
double x
Definition inchi_api.h:136
Definition inchi_api.h:923
int bChiral
Definition inchi_api.h:925
inchi_Input * pInp
Definition inchi_api.h:924
char szErrMsg[STR_ERR_LEN]
Definition inchi_api.h:926
Definition inchi_api.h:1246
int bDeleted
Definition inchi_api.h:1254
int bTautPreprocessed
Definition inchi_api.h:1257
int bHasIsotopicLayer
Definition inchi_api.h:1255
int num_bonds
Definition inchi_api.h:1251
int bTautomeric
Definition inchi_api.h:1256
NORM_ATOM * at_fixed_bonds
Definition inchi_api.h:1248
NUM_HS num_iso_H[NUM_H_ISOTOPES]
Definition inchi_api.h:1261
INCHI_MODES bTautFlags
Definition inchi_api.h:1264
int num_isotopic
Definition inchi_api.h:1252
NORM_ATOM * at
Definition inchi_api.h:1247
NUM_HS nNumRemovedProtonsIsotopic[NUM_H_ISOTOPES]
Definition inchi_api.h:1259
int num_at
Definition inchi_api.h:1249
int bExists
Definition inchi_api.h:1253
INCHI_MODES bNormalizationFlags
Definition inchi_api.h:1266
INCHI_MODES bTautFlagsDone
Definition inchi_api.h:1265
int nNumRemovedProtons
Definition inchi_api.h:1258
int num_removed_H
Definition inchi_api.h:1250
Definition inchi_api.h:1188
AT_NUMBR nBlockSystem
Definition inchi_api.h:1234
S_CHAR bCutVertex
Definition inchi_api.h:1231
S_CHAR iso_atw_diff
Definition inchi_api.h:1203
S_CHAR cFlags
Definition inchi_api.h:1209
AT_NUMBR endpoint
Definition inchi_api.h:1212
U_CHAR bond_type[MAXVAL]
Definition inchi_api.h:1196
S_CHAR bUsed0DParity
Definition inchi_api.h:1218
AT_NUMBR component
Definition inchi_api.h:1211
S_CHAR radical
Definition inchi_api.h:1207
S_CHAR chem_bonds_valence
Definition inchi_api.h:1200
S_CHAR sb_ord[MAX_NUM_STEREO_BONDS]
Definition inchi_api.h:1223
S_CHAR bAmbiguousStereo
Definition inchi_api.h:1208
AT_NUMBR neighbor[MAXVAL]
Definition inchi_api.h:1191
char elname[ATOM_EL_LEN]
Definition inchi_api.h:1189
S_CHAR num_iso_H[NUM_H_ISOTOPES]
Definition inchi_api.h:1202
AT_NUMBR sn_orig_at_num[MAX_NUM_STEREO_BONDS]
Definition inchi_api.h:1228
S_CHAR bond_stereo[MAXVAL]
Definition inchi_api.h:1194
AT_NUMBR orig_compt_at_numb
Definition inchi_api.h:1193
S_CHAR charge
Definition inchi_api.h:1206
AT_NUMBR orig_at_number
Definition inchi_api.h:1192
AT_NUMBR nNumAtInRingSystem
Definition inchi_api.h:1233
double z
Definition inchi_api.h:1216
double y
Definition inchi_api.h:1215
S_CHAR sb_parity[MAX_NUM_STEREO_BONDS]
Definition inchi_api.h:1227
S_CHAR num_H
Definition inchi_api.h:1201
U_CHAR el_number
Definition inchi_api.h:1190
double x
Definition inchi_api.h:1214
S_CHAR sn_ord[MAX_NUM_STEREO_BONDS]
Definition inchi_api.h:1224
AT_NUMBR p_orig_at_num[MAX_NUM_STEREO_ATOM_NEIGH]
Definition inchi_api.h:1221
AT_NUMBR c_point
Definition inchi_api.h:1213
AT_NUMBR nRingSystem
Definition inchi_api.h:1232
S_CHAR p_parity
Definition inchi_api.h:1220
AT_NUMBR at_type
Definition inchi_api.h:1210
S_CHAR valence
Definition inchi_api.h:1199