Include dependency graph for extr_ct.h:
 This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Data Structures | |
| struct | AtData | 
| struct | tagStereoCarb | 
| struct | tagStereoDble | 
| struct | tagIsotopicAtom | 
| struct | tagAtom | 
Macros | |
| #define | NUM_CHEM_ELEMENTS 127 /* well above number of known chem. elements */ | 
| #define | AT_ISO_SORT_KEY_MULT 32 /* up to 32 identical hydrogen isotopes */ | 
| #define | BYTE_BITS 8 /* number of bits in one byte */ | 
| #define | BOND_MASK 0xf /* 4 bits */ | 
| #define | BOND_BITS 4 /* 3 or 4 does not matter; 2 is too small for BOND_TAUTOM */ | 
| #define | BOND_ADD (BOND_BITS==2?-1:0) /* subtract 1 from bonds stored in CT */ | 
| #define | BOND_SINGLE BOND_TYPE_SINGLE /* 1 */ | 
| #define | BOND_DOUBLE BOND_TYPE_DOUBLE /* 2 */ | 
| #define | BOND_TRIPLE BOND_TYPE_TRIPLE /* 3 */ | 
| #define | BOND_ALTERN BOND_TYPE_ALTERN /* 4 single/double */ | 
| #define | BOND_ALT_123 5 /* single/double/triple */ | 
| #define | BOND_ALT_13 6 /* single/triple */ | 
| #define | BOND_ALT_23 7 /* double/triple */ | 
| #define | BOND_TAUTOM 8 | 
| #define | BOND_ALT12NS 9 | 
| #define | BOND_NUMDIF 9 /* number of different kinds of bonds */ | 
| #define | BOND_TYPE_MASK 0x0f | 
| #define | BOND_MARK_ALL 0xf0 /* complement to BOND_TYPE_MASK */ | 
| #define | BOND_MARK_ALT12 0x10 | 
| #define | BOND_MARK_ALT123 0x20 | 
| #define | BOND_MARK_ALT13 0x30 | 
| #define | BOND_MARK_ALT23 0x40 | 
| #define | BOND_MARK_ALT12NS 0x50 /* 1 or 2, non-stereo */ | 
| #define | BOND_MARK_MASK 0x70 | 
| #define | ACTUAL_ORDER(PBNS, IAT, IBOND, BTYPE) | 
| #define | BITS_PARITY 0x07 /* mask to retrieve half-bond parity */ | 
| #define | MASK_CUMULENE_LEN 0x38 /* mask to retrieve (cumulene chain length - 1)*MULT_STEREOBOND */ | 
| #define | KNOWN_PARITIES_EQL 0x40 /* parity is same for all pairs of constit. equivalent atoms */ | 
| #define | MAX_CUMULENE_LEN 2 /* max number of bonds in a cumulene chain - 1 */ | 
| #define | MULT_STEREOBOND | 
| #define | MAKE_BITS_CUMULENE_LEN(X) ((X)*MULT_STEREOBOND) | 
| #define | GET_BITS_CUMULENE_LEN(X) ((X)&MASK_CUMULENE_LEN) | 
| #define | BOND_CHAIN_LEN(X) (GET_BITS_CUMULENE_LEN(X)/MULT_STEREOBOND) /* 0 => double bond, 1 => allene, 2 => cumulene,..*/ | 
| #define | IS_ALLENE_CHAIN(X) ((GET_BITS_CUMULENE_LEN(X)/MULT_STEREOBOND)%2) | 
| #define | AB_PARITY_NONE 0 /* 0 => no parity; also parity&0x38 = 0 */ | 
| #define | AB_PARITY_ODD 1 /* 1 => odd parity */ | 
| #define | AB_PARITY_EVEN 2 /* 2 => even parity */ | 
| #define | AB_PARITY_UNKN 3 /* 3 => user marked as unknown parity */ | 
| #define | AB_PARITY_UNDF 4 /* 4 => parity cannot be defined because of symmetry or not well defined geometry */ | 
| #define | AB_PARITY_IISO 5 /* 5 => no parity because of identical atoms */ | 
| #define | AB_PARITY_CALC 6 /* 6 => calculate parity later */ | 
| #define | AB_PARITY_0D 8 /* 8 => bit signifies 0D case -- not used */ | 
| #define | AB_INV_PARITY_BITS (AB_PARITY_ODD ^ AB_PARITY_EVEN) | 
| #define | AB_MAX_KNOWN_PARITY 4 /* precalculated from const. equivalence parities */ | 
| #define | AB_MIN_KNOWN_PARITY 1 | 
| #define | AB_MAX_PART_DEFINED_PARITY 3 /* 1, 2, 3 => defined parities, uncluding 'unknown' */ | 
| #define | AB_MIN_PART_DEFINED_PARITY 1 /* min(AB_PARITY_ODD, AB_PARITY_EVEN, AB_PARITY_UNKN) */ | 
| #define | AB_MAX_WELL_DEFINED_PARITY 2 /* 1, 2 => well defined parities, uncluding 'unknown' */ | 
| #define | AB_MIN_WELL_DEFINED_PARITY 1 /* min(AB_PARITY_ODD, AB_PARITY_EVEN) */ | 
| #define | AB_MIN_ILL_DEFINED_PARITY 3 | 
| #define | AB_MAX_ILL_DEFINED_PARITY 4 | 
| #define | AB_MAX_ANY_PARITY 4 | 
| #define | AB_MIN_ANY_PARITY 1 | 
| #define | AMBIGUOUS_STEREO 1 | 
| #define | AMBIGUOUS_STEREO_ATOM 2 | 
| #define | AMBIGUOUS_STEREO_BOND 4 | 
| #define | AMBIGUOUS_STEREO_ATOM_ISO 8 | 
| #define | AMBIGUOUS_STEREO_BOND_ISO 16 | 
| #define | AMBIGUOUS_STEREO_ERROR 32 | 
| #define | MIN_DOT_PROD 50 /* min value of at->stereo_bond_z_prod[i] to define parity */ | 
| #define | ATOM_PARITY_VAL(X) (X) | 
| #define | ATOM_PARITY_PART_DEF(X) (AB_MIN_PART_DEFINED_PARITY <= (X) && (X) <= AB_MAX_PART_DEFINED_PARITY) | 
| #define | ATOM_PARITY_ILL_DEF(X) (AB_MIN_ILL_DEFINED_PARITY <= (X) && (X) <= AB_MAX_ILL_DEFINED_PARITY) | 
| #define | ATOM_PARITY_KNOWN(X) (AB_MIN_KNOWN_PARITY <= (X) && (X) <= AB_MAX_KNOWN_PARITY) | 
| #define | ATOM_PARITY_WELL_DEF(X) (AB_MIN_WELL_DEFINED_PARITY <= (X) && (X) <= AB_MAX_WELL_DEFINED_PARITY) | 
| #define | ATOM_PARITY_NOT_UNKN(X) (ATOM_PARITY_KNOWN(X) && (X) != AB_PARITY_UNKN) | 
| #define | PARITY_VAL(X) ((X) & BITS_PARITY) | 
| #define | PARITY_PART_DEF(X) (AB_MIN_PART_DEFINED_PARITY <= PARITY_VAL(X) && PARITY_VAL(X) <= AB_MAX_PART_DEFINED_PARITY) | 
| #define | PARITY_ILL_DEF(X) (AB_MIN_ILL_DEFINED_PARITY <= PARITY_VAL(X) && PARITY_VAL(X) <= AB_MAX_ILL_DEFINED_PARITY) | 
| #define | PARITY_KNOWN(X) (AB_MIN_KNOWN_PARITY <= PARITY_VAL(X) && PARITY_VAL(X) <= AB_MAX_KNOWN_PARITY) | 
| #define | PARITY_WELL_DEF(X) (AB_MIN_WELL_DEFINED_PARITY <= PARITY_VAL(X) && PARITY_VAL(X) <= AB_MAX_WELL_DEFINED_PARITY) | 
| #define | PARITY_CALCULATE(X) (AB_PARITY_CALC == PARITY_VAL(X)) | 
| #define | BOND_PARITY_PART_DEFINED(X) (PARITY_PART_DEF(X) || PARITY_CALCULATE(X)) | 
| #define | BOND_PARITY_PART_KNOWN(X) (PARITY_KNOWN(X) || PARITY_CALCULATE(X)) | 
| #define | ALL_BUT_PARITY(X) ((X)&~BITS_PARITY) | 
| #define | ALWAYS_SET_STEREO_PARITY 0 | 
| #define | NO_ISOLATED_NON_6RING_AROM_BOND 0 /* for Yuri */ | 
| #define | SAVE_6_AROM_CENTERS 0 /* for Yuri */ | 
Typedefs | |
| typedef long | AT_ISO_SORT_KEY | 
| typedef struct tagStereoCarb | AT_STEREO_CARB | 
| typedef struct tagStereoDble | AT_STEREO_DBLE | 
| typedef struct tagIsotopicAtom | AT_ISOTOPIC | 
| typedef AT_NUMB | AT_STEREO | 
| typedef struct tagAtom | sp_ATOM | 
| #define AB_INV_PARITY_BITS (AB_PARITY_ODD ^ AB_PARITY_EVEN) | 
| #define AB_MAX_ANY_PARITY 4 | 
| #define AB_MAX_ILL_DEFINED_PARITY 4 | 
| #define AB_MAX_KNOWN_PARITY 4 /* precalculated from const. equivalence parities */ | 
| #define AB_MAX_PART_DEFINED_PARITY 3 /* 1, 2, 3 => defined parities, uncluding 'unknown' */ | 
| #define AB_MAX_WELL_DEFINED_PARITY 2 /* 1, 2 => well defined parities, uncluding 'unknown' */ | 
| #define AB_MIN_ANY_PARITY 1 | 
| #define AB_MIN_ILL_DEFINED_PARITY 3 | 
| #define AB_MIN_KNOWN_PARITY 1 | 
| #define AB_MIN_PART_DEFINED_PARITY 1 /* min(AB_PARITY_ODD, AB_PARITY_EVEN, AB_PARITY_UNKN) */ | 
| #define AB_MIN_WELL_DEFINED_PARITY 1 /* min(AB_PARITY_ODD, AB_PARITY_EVEN) */ | 
| #define AB_PARITY_0D 8 /* 8 => bit signifies 0D case -- not used */ | 
| #define AB_PARITY_CALC 6 /* 6 => calculate parity later */ | 
| #define AB_PARITY_EVEN 2 /* 2 => even parity */ | 
| #define AB_PARITY_IISO 5 /* 5 => no parity because of identical atoms */ | 
| #define AB_PARITY_NONE 0 /* 0 => no parity; also parity&0x38 = 0 */ | 
| #define AB_PARITY_ODD 1 /* 1 => odd parity */ | 
| #define AB_PARITY_UNDF 4 /* 4 => parity cannot be defined because of symmetry or not well defined geometry */ | 
| #define AB_PARITY_UNKN 3 /* 3 => user marked as unknown parity */ | 
| #define ACTUAL_ORDER | ( | PBNS, | |
| IAT, | |||
| IBOND, | |||
| BTYPE | |||
| ) | 
| #define ALL_BUT_PARITY | ( | X | ) | ((X)&~BITS_PARITY) | 
| #define ALWAYS_SET_STEREO_PARITY 0 | 
| #define AMBIGUOUS_STEREO 1 | 
| #define AMBIGUOUS_STEREO_ATOM 2 | 
| #define AMBIGUOUS_STEREO_ATOM_ISO 8 | 
| #define AMBIGUOUS_STEREO_BOND 4 | 
| #define AMBIGUOUS_STEREO_BOND_ISO 16 | 
| #define AMBIGUOUS_STEREO_ERROR 32 | 
| #define AT_ISO_SORT_KEY_MULT 32 /* up to 32 identical hydrogen isotopes */ | 
| #define ATOM_PARITY_ILL_DEF | ( | X | ) | (AB_MIN_ILL_DEFINED_PARITY <= (X) && (X) <= AB_MAX_ILL_DEFINED_PARITY) | 
| #define ATOM_PARITY_KNOWN | ( | X | ) | (AB_MIN_KNOWN_PARITY <= (X) && (X) <= AB_MAX_KNOWN_PARITY) | 
| #define ATOM_PARITY_NOT_UNKN | ( | X | ) | (ATOM_PARITY_KNOWN(X) && (X) != AB_PARITY_UNKN) | 
| #define ATOM_PARITY_PART_DEF | ( | X | ) | (AB_MIN_PART_DEFINED_PARITY <= (X) && (X) <= AB_MAX_PART_DEFINED_PARITY) | 
| #define ATOM_PARITY_VAL | ( | X | ) | (X) | 
| #define ATOM_PARITY_WELL_DEF | ( | X | ) | (AB_MIN_WELL_DEFINED_PARITY <= (X) && (X) <= AB_MAX_WELL_DEFINED_PARITY) | 
| #define BITS_PARITY 0x07 /* mask to retrieve half-bond parity */ | 
| #define BOND_ADD (BOND_BITS==2?-1:0) /* subtract 1 from bonds stored in CT */ | 
| #define BOND_ALT12NS 9 | 
| #define BOND_ALT_123 5 /* single/double/triple */ | 
| #define BOND_ALT_13 6 /* single/triple */ | 
| #define BOND_ALT_23 7 /* double/triple */ | 
| #define BOND_ALTERN BOND_TYPE_ALTERN /* 4 single/double */ | 
| #define BOND_BITS 4 /* 3 or 4 does not matter; 2 is too small for BOND_TAUTOM */ | 
| #define BOND_CHAIN_LEN | ( | X | ) | (GET_BITS_CUMULENE_LEN(X)/MULT_STEREOBOND) /* 0 => double bond, 1 => allene, 2 => cumulene,..*/ | 
| #define BOND_DOUBLE BOND_TYPE_DOUBLE /* 2 */ | 
| #define BOND_MARK_ALL 0xf0 /* complement to BOND_TYPE_MASK */ | 
| #define BOND_MARK_ALT12 0x10 | 
| #define BOND_MARK_ALT123 0x20 | 
| #define BOND_MARK_ALT12NS 0x50 /* 1 or 2, non-stereo */ | 
| #define BOND_MARK_ALT13 0x30 | 
| #define BOND_MARK_ALT23 0x40 | 
| #define BOND_MARK_MASK 0x70 | 
| #define BOND_MASK 0xf /* 4 bits */ | 
| #define BOND_NUMDIF 9 /* number of different kinds of bonds */ | 
| #define BOND_PARITY_PART_DEFINED | ( | X | ) | (PARITY_PART_DEF(X) || PARITY_CALCULATE(X)) | 
| #define BOND_PARITY_PART_KNOWN | ( | X | ) | (PARITY_KNOWN(X) || PARITY_CALCULATE(X)) | 
| #define BOND_SINGLE BOND_TYPE_SINGLE /* 1 */ | 
| #define BOND_TAUTOM 8 | 
| #define BOND_TRIPLE BOND_TYPE_TRIPLE /* 3 */ | 
| #define BOND_TYPE_MASK 0x0f | 
| #define BYTE_BITS 8 /* number of bits in one byte */ | 
| #define GET_BITS_CUMULENE_LEN | ( | X | ) | ((X)&MASK_CUMULENE_LEN) | 
| #define IS_ALLENE_CHAIN | ( | X | ) | ((GET_BITS_CUMULENE_LEN(X)/MULT_STEREOBOND)%2) | 
| #define KNOWN_PARITIES_EQL 0x40 /* parity is same for all pairs of constit. equivalent atoms */ | 
| #define MAKE_BITS_CUMULENE_LEN | ( | X | ) | ((X)*MULT_STEREOBOND) | 
| #define MASK_CUMULENE_LEN 0x38 /* mask to retrieve (cumulene chain length - 1)*MULT_STEREOBOND */ | 
| #define MAX_CUMULENE_LEN 2 /* max number of bonds in a cumulene chain - 1 */ | 
| #define MIN_DOT_PROD 50 /* min value of at->stereo_bond_z_prod[i] to define parity */ | 
| #define MULT_STEREOBOND | 
| #define NO_ISOLATED_NON_6RING_AROM_BOND 0 /* for Yuri */ | 
| #define NUM_CHEM_ELEMENTS 127 /* well above number of known chem. elements */ | 
| #define PARITY_CALCULATE | ( | X | ) | (AB_PARITY_CALC == PARITY_VAL(X)) | 
| #define PARITY_ILL_DEF | ( | X | ) | (AB_MIN_ILL_DEFINED_PARITY <= PARITY_VAL(X) && PARITY_VAL(X) <= AB_MAX_ILL_DEFINED_PARITY) | 
| #define PARITY_KNOWN | ( | X | ) | (AB_MIN_KNOWN_PARITY <= PARITY_VAL(X) && PARITY_VAL(X) <= AB_MAX_KNOWN_PARITY) | 
| #define PARITY_PART_DEF | ( | X | ) | (AB_MIN_PART_DEFINED_PARITY <= PARITY_VAL(X) && PARITY_VAL(X) <= AB_MAX_PART_DEFINED_PARITY) | 
| #define PARITY_VAL | ( | X | ) | ((X) & BITS_PARITY) | 
| #define PARITY_WELL_DEF | ( | X | ) | (AB_MIN_WELL_DEFINED_PARITY <= PARITY_VAL(X) && PARITY_VAL(X) <= AB_MAX_WELL_DEFINED_PARITY) | 
| #define SAVE_6_AROM_CENTERS 0 /* for Yuri */ | 
| typedef long AT_ISO_SORT_KEY | 
| typedef struct tagIsotopicAtom AT_ISOTOPIC | 
| typedef struct tagStereoCarb AT_STEREO_CARB | 
| typedef struct tagStereoDble AT_STEREO_DBLE |