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 |