|
#define | ZTYPE_DOWN (-1) /* should be equal to -ZTYPE_UP */ |
|
#define | ZTYPE_NONE 0 |
|
#define | ZTYPE_UP 1 /* should be equal to -ZTYPE_DOWN */ |
|
#define | ZTYPE_3D 3 |
|
#define | ZTYPE_EITHER 9999 |
|
#define | ARR_DIM 3 /* djb-rwth: default dimension of arrays */ |
|
#define | MIN_ANGLE 0.10 /* 5.73 degrees */ /* treshold for proximity to in-line angle of 180 deg */ |
|
#define | MIN_SINE 0.03 /*min edge/plane angle in case the tetrahedra has significantly different edge length */ |
|
#define | MIN_ANGLE_RELAXED 0.001 |
|
#define | MIN_SINE_RELAXED 0.001 |
|
#define | MIN_ANGLE_DBOND 0.087156 /* 5 degrees = max angle considered as too small for unambiguous double bond stereo */ |
|
#define | MIN_SINE_OUTSIDE 0.06 /* min edge/plane angle to determine whether the central atom is outside of the tetrahedra */ |
|
#define | MIN_SINE_SQUARE 0.125 /* min edge/plane angle in case the tetrahedra is somewhat close to a parallelogram */ |
|
#define | MIN_SINE_EDGE 0.167 /* min sine/(min.edge) ratio to avoid undefined in case of long edges */ |
|
#define | MIN_LEN_STRAIGHT 1.900 /* min length of two normalized to 1 bonds in a straight line */ |
|
#define | MAX_SINE 0.70710678118654752440084436210485 /* 1/sqrt(2)=sin(pi/4) */ |
|
#define | MIN_BOND_LEN 0.000001 |
|
#define | ZERO_LENGTH MIN_BOND_LEN |
|
#define | ZERO_FLOAT 1.0e-12 |
|
#define | BOND_PARITY_UNDEFINED 64 |
|
#define | MPY_SINE 1.00 /* was 3.0 */ |
|
#define | MAX_EDGE_RATIO 2.50 /* max max/min edge ratio for a tetrahedra close to a parallelogram */ |
|
#define | T2D_OKAY 1 |
|
#define | T2D_WARN 2 |
|
#define | T2D_UNDF 4 |
|
#define | ZERO_ANGLE 0.000001 |
|
#define | SZELEM1 "C\000","Si", "Ge", "Sn", "As", "B\000", |
|
#define | CCHARGE1 0, 0, 0, 0, 1, -1, |
|
#define | CNUMBONDSANDH1 4, 4, 4, 4, 4, 4, |
|
#define | CCHEMVALENCEH1 4, 4, 4, 4, 4, 4, |
|
#define | CHAS3MEMBRING1 0, 0, 0, 0, 0, 0, |
|
#define | CREQUIRDNEIGH1 0, 0, 0, 0, 3, 0, |
|
#define | SZELEM2 "S\000","S\000","S\000","S\000","Se", "Se", "Se", "Se", |
|
#define | CCHARGE2 0, 0, 1, 1, 0, 0, 1, 1, |
|
#define | CNUMBONDSANDH2 3, 4, 3, 4, 3, 4, 3, 4, |
|
#define | CCHEMVALENCEH2 4, 6, 3, 5, 4, 6, 3, 5, |
|
#define | CHAS3MEMBRING2 0, 0, 0, 0, 0, 0, 0, 0, |
|
#define | CREQUIRDNEIGH2 3, 3, 3, 3, 3, 3, 3, 3, |
|
#define | SZELEM3 "N\000","N\000","N\000","P\000","P\000","P\000", "As", |
|
#define | CCHARGE3 0, 1, 0, 1, 0, 0, 0, |
|
#define | CNUMBONDSANDH3 4, 4, 3, 4, 4, 3, 3, |
|
#define | CCHEMVALENCEH3 5, 4, 3, 4, 5, 3, 3, |
|
#define | CHAS3MEMBRING3 0, 0, 1, 0, 0, 0, 0, |
|
#define | CREQUIRDNEIGH3 3, 3, 1, 3, 3, 2, 2, |
|
#define | PHOSPHINE_STEREO 19 /* the number must match Phosphine number in the comments, see above */ |
|
#define | ARSINE_STEREO 20 /* the number must match Arsine number in the comments, see above */ |
|
#define | AB_NEGATIVE 0x10 |
|
#define | AB_UNKNOWN 0x20 |
|
#define | ADD_EXPLICIT_HYDROGEN_NEIGH 1 |
|
#define | ADD_EXPLICIT_LONE_PAIR_NEIGH 2 |
|
|
static int | save_a_stereo_bond (int z_prod, int result_action, int at1, int ord1, AT_NUMB *stereo_bond_neighbor1, S_CHAR *stereo_bond_ord1, S_CHAR *stereo_bond_z_prod1, S_CHAR *stereo_bond_parity1, int at2, int ord2, AT_NUMB *stereo_bond_neighbor2, S_CHAR *stereo_bond_ord2, S_CHAR *stereo_bond_z_prod2, S_CHAR *stereo_bond_parity2) |
|
static double | get_z_coord (inp_ATOM *at, int cur_atom, int neigh_no, int *nType, int bPointedEdgeStereo) |
|
static double | len3 (const double c[]) |
|
static double | len2 (const double c[]) |
|
static void * | diff3 (const double a[], const double b[], double result[]) |
|
static void | add3 (const double a[], const double b[], double result[]) |
|
static void | mult3 (const double a[], double b, double result[]) |
|
static void | change_sign3 (const double a[], double result[]) |
|
double | dot_prod3 (const double a[], const double b[]) |
|
static int | dot_prodchar3 (const S_CHAR a[], const S_CHAR b[]) |
|
static double | triple_prod (double a[], double b[], double c[], double *sine_value) |
|
static double | triple_prod_and_min_abs_sine (double at_coord[][3], double *min_sine) |
|
static int | are_3_vect_in_one_plane (double at_coord[][3], double min_sine) |
|
static int | triple_prod_char (inp_ATOM *at, int at_1, int i_next_at_1, S_CHAR *z_dir1, int at_2, int i_next_at_2, S_CHAR *z_dir2) |
|
static int | CompDble (const void *a1, const void *a2, void *) |
|
static int | Get2DTetrahedralAmbiguity (CANON_GLOBALS *pCG, double at_coord[][3], int bAddExplicitNeighbor, int bFix2DstereoBorderCase, double vMinAngle) |
|
static double | triple_prod_and_min_abs_sine2 (double at_coord[][3], double central_at_coord[], int bAddedExplicitNeighbor, double *min_sine, int *bAmbiguous, double vMinSine) |
|
static int | are_4at_in_one_plane (double at_coord[][3], double min_sine) |
|
static int | bInpAtomHasRequirdNeigh (inp_ATOM *at, int cur_at, int RequirdNeighType, int NumDbleBonds, int bStereoAtZz) |
|
static int | bIsSuitableHeteroInpAtom (inp_ATOM *at) |
|
static int | bIsOxide (inp_ATOM *at, int cur_at) |
|
static int | half_stereo_bond_parity (inp_ATOM *at, int cur_at, inp_ATOM *at_removed_H, int num_removed_H, S_CHAR *z_dir, int bPointedEdgeStereo, int vABParityUnknown) |
|
static int | get_allowed_stereo_bond_type (int bond_type) |
|
static int | can_be_a_stereo_bond_with_isotopic_H (inp_ATOM *at, int cur_at, INCHI_MODE nMode) |
|
static int | half_stereo_bond_action (int nParity, int bUnknown, int bIsotopic, int vABParityUnknown) |
|
static int | set_stereo_bonds_parity (sp_ATOM *out_at, inp_ATOM *at, int at_1, inp_ATOM *at_removed_H, int num_removed_H, INCHI_MODE nMode, QUEUE *q, AT_RANK *nAtomLevel, S_CHAR *cSource, AT_RANK min_sb_ring_size, int bPointedEdgeStereo, int vABParityUnknown) |
|
static int | can_be_a_stereo_atom_with_isotopic_H (inp_ATOM *at, int cur_at, int bPointedEdgeStereo, int bStereoAtZz) |
|
static int | set_stereo_atom_parity (CANON_GLOBALS *pCG, sp_ATOM *out_at, inp_ATOM *at, int cur_at, inp_ATOM *at_removed_H, int num_removed_H, int bPointedEdgeStereo, int vABParityUnknown, int LooseTSACheck, int bStereoAtZz) |
|
int | ReconcileCmlIncidentBondParities (inp_ATOM *at, int cur_atom, int prev_atom, S_CHAR *visited, int bDisconnected) |
|
int | comp_AT_NUMB (const void *a1, const void *a2, void *) |
|
int | GetHalfStereobond0DParity (inp_ATOM *at, int cur_at, AT_NUMB nSbNeighOrigAtNumb[], int nNumExplictAttachments, int bond_parity, int nFlag) |
|
int | GetStereocenter0DParity (CANON_GLOBALS *pCG, inp_ATOM *at, int cur_at, int j1, AT_NUMB nSbNeighOrigAtNumb[], int nFlag) |
|
int | GetSbNeighOrigAtNumb (inp_ATOM *at, int cur_at, inp_ATOM *at_removed_H, int num_removed_H, AT_NUMB nSbNeighOrigAtNumb[]) |
|
int | FixSb0DParities (inp_ATOM *at, int chain_length, int at_1, int i_next_at_1, S_CHAR z_dir1[], int at_2, int i_next_at_2, S_CHAR z_dir2[], int *pparity1, int *pparity2) |
|
void * | cross_prod3 (const double a[], const double b[], double result[]) |
|
int | bCanInpAtomBeAStereoCenter (inp_ATOM *at, int cur_at, int bPointedEdgeStereo, int bStereoAtZz) |
|
int | bAtomHasValence3 (char *elname, S_CHAR charge, S_CHAR radical) |
|
int | bCanAtomHaveAStereoBond (char *elname, S_CHAR charge, S_CHAR radical) |
|
int | bCanAtomBeMiddleAllene (char *elname, S_CHAR charge, S_CHAR radical) |
|
int | bCanAtomBeTerminalAllene (char *elname, S_CHAR charge, S_CHAR radical) |
|
int | FixUnkn0DStereoBonds (inp_ATOM *at, int num_at) |
|
int | set_stereo_parity (CANON_GLOBALS *pCG, inp_ATOM *at, sp_ATOM *at_output, int num_at, int num_removed_H, int *nMaxNumStereoAtoms, int *nMaxNumStereoBonds, INCHI_MODE nMode, int bPointedEdgeStereo, int vABParityUnknown, int bLooseTSACheck, int bStereoAtZz) |
|
int | ReconcileAllCmlBondParities (inp_ATOM *at, int num_atoms, int bDisconnected) |
|
int | get_opposite_sb_atom (inp_ATOM *at, int cur_atom, int icur2nxt, int *pnxt_atom, int *pinxt2cur, int *pinxt_sb_parity_ord) |
|