26#define NUM_CHEM_ELEMENTS 127
30#define AT_ISO_SORT_KEY_MULT 32
70#define BOND_ADD (BOND_BITS==2?-1:0)
162#if ( FIND_RING_SYSTEMS == 1 )
168#if ( FIND_RINS_SYSTEMS_DISTANCES == 1 )
177#define BOND_SINGLE BOND_TYPE_SINGLE
178#define BOND_DOUBLE BOND_TYPE_DOUBLE
179#define BOND_TRIPLE BOND_TYPE_TRIPLE
180#define BOND_ALTERN BOND_TYPE_ALTERN
182#define BOND_ALT_123 5
186#define BOND_ALT12NS 9
189#define BOND_TYPE_MASK 0x0f
191#define BOND_MARK_ALL 0xf0
193#define BOND_MARK_ALT12 0x10
194#define BOND_MARK_ALT123 0x20
195#define BOND_MARK_ALT13 0x30
196#define BOND_MARK_ALT23 0x40
197#define BOND_MARK_ALT12NS 0x50
198#define BOND_MARK_MASK 0x70
200#define ACTUAL_ORDER(PBNS, IAT,IBOND, BTYPE) ( ((PBNS) && (PBNS)->edge && (PBNS)->vert &&\
201 ((BTYPE)==BOND_ALT_123 || (BTYPE)==BOND_ALT_13 || (BTYPE)==BOND_ALT_23))? (PBNS)->edge[(PBNS)->vert[IAT].iedge[IBOND]].flow+BOND_TYPE_SINGLE:(BTYPE))
204#define BITS_PARITY 0x07
205#define MASK_CUMULENE_LEN 0x38
206#define KNOWN_PARITIES_EQL 0x40
207#define MAX_CUMULENE_LEN 2
209#define MULT_STEREOBOND 0x08
212#define MAKE_BITS_CUMULENE_LEN(X) ((X)*MULT_STEREOBOND)
213#define GET_BITS_CUMULENE_LEN(X) ((X)&MASK_CUMULENE_LEN)
214#define BOND_CHAIN_LEN(X) (GET_BITS_CUMULENE_LEN(X)/MULT_STEREOBOND)
215#define IS_ALLENE_CHAIN(X) ((GET_BITS_CUMULENE_LEN(X)/MULT_STEREOBOND)%2)
218#define AB_PARITY_NONE 0
219#define AB_PARITY_ODD 1
220#define AB_PARITY_EVEN 2
221#define AB_PARITY_UNKN 3
222#define AB_PARITY_UNDF 4
223#define AB_PARITY_IISO 5
224#define AB_PARITY_CALC 6
225#define AB_PARITY_0D 8
227#define AB_INV_PARITY_BITS (AB_PARITY_ODD ^ AB_PARITY_EVEN)
230#define AB_MAX_KNOWN_PARITY 4
231#define AB_MIN_KNOWN_PARITY 1
233#define AB_MAX_PART_DEFINED_PARITY 3
234#define AB_MIN_PART_DEFINED_PARITY 1
236#define AB_MAX_WELL_DEFINED_PARITY 2
237#define AB_MIN_WELL_DEFINED_PARITY 1
239#define AB_MIN_ILL_DEFINED_PARITY 3
240#define AB_MAX_ILL_DEFINED_PARITY 4
242#define AB_MAX_ANY_PARITY 4
243#define AB_MIN_ANY_PARITY 1
245#define AMBIGUOUS_STEREO 1
246#define AMBIGUOUS_STEREO_ATOM 2
247#define AMBIGUOUS_STEREO_BOND 4
248#define AMBIGUOUS_STEREO_ATOM_ISO 8
249#define AMBIGUOUS_STEREO_BOND_ISO 16
250#define AMBIGUOUS_STEREO_ERROR 32
253#define MIN_DOT_PROD 50
255#define ATOM_PARITY_VAL(X) (X)
256#define ATOM_PARITY_PART_DEF(X) (AB_MIN_PART_DEFINED_PARITY <= (X) && (X) <= AB_MAX_PART_DEFINED_PARITY)
257#define ATOM_PARITY_ILL_DEF(X) (AB_MIN_ILL_DEFINED_PARITY <= (X) && (X) <= AB_MAX_ILL_DEFINED_PARITY)
258#define ATOM_PARITY_KNOWN(X) (AB_MIN_KNOWN_PARITY <= (X) && (X) <= AB_MAX_KNOWN_PARITY)
259#define ATOM_PARITY_WELL_DEF(X) (AB_MIN_WELL_DEFINED_PARITY <= (X) && (X) <= AB_MAX_WELL_DEFINED_PARITY)
260#define ATOM_PARITY_NOT_UNKN(X) (ATOM_PARITY_KNOWN(X) && (X) != AB_PARITY_UNKN)
262#define PARITY_VAL(X) ((X) & BITS_PARITY)
263#define PARITY_PART_DEF(X) (AB_MIN_PART_DEFINED_PARITY <= PARITY_VAL(X) && PARITY_VAL(X) <= AB_MAX_PART_DEFINED_PARITY)
264#define PARITY_ILL_DEF(X) (AB_MIN_ILL_DEFINED_PARITY <= PARITY_VAL(X) && PARITY_VAL(X) <= AB_MAX_ILL_DEFINED_PARITY)
265#define PARITY_KNOWN(X) (AB_MIN_KNOWN_PARITY <= PARITY_VAL(X) && PARITY_VAL(X) <= AB_MAX_KNOWN_PARITY)
266#define PARITY_WELL_DEF(X) (AB_MIN_WELL_DEFINED_PARITY <= PARITY_VAL(X) && PARITY_VAL(X) <= AB_MAX_WELL_DEFINED_PARITY)
267#define PARITY_CALCULATE(X) (AB_PARITY_CALC == PARITY_VAL(X))
268#define BOND_PARITY_PART_DEFINED(X) (PARITY_PART_DEF(X) || PARITY_CALCULATE(X))
269#define BOND_PARITY_PART_KNOWN(X) (PARITY_KNOWN(X) || PARITY_CALCULATE(X))
270#define ALL_BUT_PARITY(X) ((X)&~BITS_PARITY)
272#define ALWAYS_SET_STEREO_PARITY 0
273#define NO_ISOLATED_NON_6RING_AROM_BOND 0
274#define SAVE_6_AROM_CENTERS 0
struct tagStereoDble AT_STEREO_DBLE
AT_NUMB AT_STEREO
Definition extr_ct.h:63
struct tagIsotopicAtom AT_ISOTOPIC
long AT_ISO_SORT_KEY
Definition extr_ct.h:34
struct tagStereoCarb AT_STEREO_CARB
#define ATOM_EL_LEN
Definition ichicant.h:62
#define MAXVAL
Definition ichicant.h:60
unsigned short AT_NUMB
Definition ichisize.h:10
signed short NUM_H
Definition ichisize.h:14
signed char S_CHAR
Definition inchi_api.h:78
#define NUM_H_ISOTOPES
Definition inchi_api.h:72
unsigned char U_CHAR
Definition inchi_api.h:79
#define MAX_NUM_STEREO_BONDS
Definition inchi_api.h:1141
int maxvalence
Definition extr_ct.h:21
char element[3]
Definition extr_ct.h:20
AT_NUMB nBlockSystem
Definition extr_ct.h:166
AT_NUMB orig_at_number
Definition extr_ct.h:80
S_CHAR marked
Definition extr_ct.h:100
S_CHAR stereo_bond_z_prod2[MAX_NUM_STEREO_BONDS]
Definition extr_ct.h:118
S_CHAR num_iso_H[NUM_H_ISOTOPES]
Definition extr_ct.h:91
U_CHAR bond_type[MAXVAL]
Definition extr_ct.h:84
S_CHAR stereo_bond_ord2[MAX_NUM_STEREO_BONDS]
Definition extr_ct.h:115
S_CHAR valence
Definition extr_ct.h:88
AT_NUMB init_rank
Definition extr_ct.h:78
S_CHAR stereo_atom_parity2
Definition extr_ct.h:155
S_CHAR chem_bonds_valence
Definition extr_ct.h:89
S_CHAR bHasStereoOrEquToStereo2
Definition extr_ct.h:160
AT_NUMB neighbor[MAXVAL]
Definition extr_ct.h:77
S_CHAR bHasStereoOrEquToStereo
Definition extr_ct.h:159
AT_NUMB stereo_bond_neighbor[MAX_NUM_STEREO_BONDS]
Definition extr_ct.h:111
S_CHAR stereo_bond_parity2[MAX_NUM_STEREO_BONDS]
Definition extr_ct.h:120
char elname[ATOM_EL_LEN]
Definition extr_ct.h:76
S_CHAR stereo_bond_parity[MAX_NUM_STEREO_BONDS]
Definition extr_ct.h:119
AT_ISO_SORT_KEY iso_sort_key
Definition extr_ct.h:94
S_CHAR charge
Definition extr_ct.h:97
AT_NUMB nNumAtInRingSystem
Definition extr_ct.h:165
S_CHAR z_dir[3]
Definition extr_ct.h:174
AT_NUMB endpoint
Definition extr_ct.h:102
S_CHAR stereo_bond_z_prod[MAX_NUM_STEREO_BONDS]
Definition extr_ct.h:117
S_CHAR final_parity2
Definition extr_ct.h:157
S_CHAR num_H
Definition extr_ct.h:90
S_CHAR bCutVertex
Definition extr_ct.h:163
AT_NUMB orig_compt_at_numb
Definition extr_ct.h:81
S_CHAR parity2
Definition extr_ct.h:150
S_CHAR final_parity
Definition extr_ct.h:156
U_CHAR el_number
Definition extr_ct.h:85
S_CHAR stereo_atom_parity
Definition extr_ct.h:153
S_CHAR radical
Definition extr_ct.h:98
S_CHAR iso_atw_diff
Definition extr_ct.h:93
S_CHAR parity
Definition extr_ct.h:142
S_CHAR bAmbiguousStereo
Definition extr_ct.h:158
S_CHAR stereo_bond_ord[MAX_NUM_STEREO_BONDS]
Definition extr_ct.h:113
AT_NUMB nRingSystem
Definition extr_ct.h:164
S_CHAR cFlags
Definition extr_ct.h:92
AT_NUMB stereo_bond_neighbor2[MAX_NUM_STEREO_BONDS]
Definition extr_ct.h:112
AT_NUMB at_num
Definition extr_ct.h:56
NUM_H num_T
Definition extr_ct.h:59
NUM_H num_1H
Definition extr_ct.h:57
NUM_H num_D
Definition extr_ct.h:58
NUM_H iso_atw_diff
Definition extr_ct.h:60