InChI
 
Loading...
Searching...
No Matches
ichister.c File Reference
#include <math.h>
#include <string.h>
#include "mode.h"
#include "ichister.h"
#include "ichiring.h"
#include "ichi.h"
#include "ichitaut.h"
#include "ichicomp.h"
#include "ichicant.h"
#include "util.h"
#include "bcf_s.h"
+ Include dependency graph for ichister.c:

Macros

#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
 

Functions

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)
 

Macro Definition Documentation

◆ AB_NEGATIVE

#define AB_NEGATIVE   0x10

◆ AB_UNKNOWN

#define AB_UNKNOWN   0x20

◆ ADD_EXPLICIT_HYDROGEN_NEIGH

#define ADD_EXPLICIT_HYDROGEN_NEIGH   1

◆ ADD_EXPLICIT_LONE_PAIR_NEIGH

#define ADD_EXPLICIT_LONE_PAIR_NEIGH   2

◆ ARR_DIM

#define ARR_DIM   3 /* djb-rwth: default dimension of arrays */

◆ ARSINE_STEREO

#define ARSINE_STEREO   20 /* the number must match Arsine number in the comments, see above */

◆ BOND_PARITY_UNDEFINED

#define BOND_PARITY_UNDEFINED   64

◆ CCHARGE1

#define CCHARGE1   0, 0, 0, 0, 1, -1,

◆ CCHARGE2

#define CCHARGE2   0, 0, 1, 1, 0, 0, 1, 1,

◆ CCHARGE3

#define CCHARGE3   0, 1, 0, 1, 0, 0, 0,

◆ CCHEMVALENCEH1

#define CCHEMVALENCEH1   4, 4, 4, 4, 4, 4,

◆ CCHEMVALENCEH2

#define CCHEMVALENCEH2   4, 6, 3, 5, 4, 6, 3, 5,

◆ CCHEMVALENCEH3

#define CCHEMVALENCEH3   5, 4, 3, 4, 5, 3, 3,

◆ CHAS3MEMBRING1

#define CHAS3MEMBRING1   0, 0, 0, 0, 0, 0,

◆ CHAS3MEMBRING2

#define CHAS3MEMBRING2   0, 0, 0, 0, 0, 0, 0, 0,

◆ CHAS3MEMBRING3

#define CHAS3MEMBRING3   0, 0, 1, 0, 0, 0, 0,

◆ CNUMBONDSANDH1

#define CNUMBONDSANDH1   4, 4, 4, 4, 4, 4,

◆ CNUMBONDSANDH2

#define CNUMBONDSANDH2   3, 4, 3, 4, 3, 4, 3, 4,

◆ CNUMBONDSANDH3

#define CNUMBONDSANDH3   4, 4, 3, 4, 4, 3, 3,

◆ CREQUIRDNEIGH1

#define CREQUIRDNEIGH1   0, 0, 0, 0, 3, 0,

◆ CREQUIRDNEIGH2

#define CREQUIRDNEIGH2   3, 3, 3, 3, 3, 3, 3, 3,

◆ CREQUIRDNEIGH3

#define CREQUIRDNEIGH3   3, 3, 1, 3, 3, 2, 2,

◆ MAX_EDGE_RATIO

#define MAX_EDGE_RATIO   2.50 /* max max/min edge ratio for a tetrahedra close to a parallelogram */

◆ MAX_SINE

#define MAX_SINE   0.70710678118654752440084436210485 /* 1/sqrt(2)=sin(pi/4) */

◆ MIN_ANGLE

#define MIN_ANGLE   0.10 /* 5.73 degrees */ /* treshold for proximity to in-line angle of 180 deg */

◆ MIN_ANGLE_DBOND

#define MIN_ANGLE_DBOND   0.087156 /* 5 degrees = max angle considered as too small for unambiguous double bond stereo */

◆ MIN_ANGLE_RELAXED

#define MIN_ANGLE_RELAXED   0.001

◆ MIN_BOND_LEN

#define MIN_BOND_LEN   0.000001

◆ MIN_LEN_STRAIGHT

#define MIN_LEN_STRAIGHT   1.900 /* min length of two normalized to 1 bonds in a straight line */

◆ MIN_SINE

#define MIN_SINE   0.03 /*min edge/plane angle in case the tetrahedra has significantly different edge length */

◆ MIN_SINE_EDGE

#define MIN_SINE_EDGE   0.167 /* min sine/(min.edge) ratio to avoid undefined in case of long edges */

◆ MIN_SINE_OUTSIDE

#define MIN_SINE_OUTSIDE   0.06 /* min edge/plane angle to determine whether the central atom is outside of the tetrahedra */

◆ MIN_SINE_RELAXED

#define MIN_SINE_RELAXED   0.001

◆ MIN_SINE_SQUARE

#define MIN_SINE_SQUARE   0.125 /* min edge/plane angle in case the tetrahedra is somewhat close to a parallelogram */

◆ MPY_SINE

#define MPY_SINE   1.00 /* was 3.0 */

◆ PHOSPHINE_STEREO

#define PHOSPHINE_STEREO   19 /* the number must match Phosphine number in the comments, see above */

◆ SZELEM1

#define SZELEM1   "C\000","Si", "Ge", "Sn", "As", "B\000",

◆ SZELEM2

#define SZELEM2   "S\000","S\000","S\000","S\000","Se", "Se", "Se", "Se",

◆ SZELEM3

#define SZELEM3   "N\000","N\000","N\000","P\000","P\000","P\000", "As",

◆ T2D_OKAY

#define T2D_OKAY   1

◆ T2D_UNDF

#define T2D_UNDF   4

◆ T2D_WARN

#define T2D_WARN   2

◆ ZERO_ANGLE

#define ZERO_ANGLE   0.000001

◆ ZERO_FLOAT

#define ZERO_FLOAT   1.0e-12

◆ ZERO_LENGTH

#define ZERO_LENGTH   MIN_BOND_LEN

◆ ZTYPE_3D

#define ZTYPE_3D   3

◆ ZTYPE_DOWN

#define ZTYPE_DOWN   (-1) /* should be equal to -ZTYPE_UP */

◆ ZTYPE_EITHER

#define ZTYPE_EITHER   9999

◆ ZTYPE_NONE

#define ZTYPE_NONE   0

◆ ZTYPE_UP

#define ZTYPE_UP   1 /* should be equal to -ZTYPE_DOWN */

Function Documentation

◆ add3()

void add3 ( const double  a[],
const double  b[],
double  result[] 
)
static
+ Here is the caller graph for this function:

◆ are_3_vect_in_one_plane()

int are_3_vect_in_one_plane ( double  at_coord[][3],
double  min_sine 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ are_4at_in_one_plane()

int are_4at_in_one_plane ( double  at_coord[][3],
double  min_sine 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bAtomHasValence3()

int bAtomHasValence3 ( char *  elname,
S_CHAR  charge,
S_CHAR  radical 
)
+ Here is the caller graph for this function:

◆ bCanAtomBeMiddleAllene()

int bCanAtomBeMiddleAllene ( char *  elname,
S_CHAR  charge,
S_CHAR  radical 
)
+ Here is the caller graph for this function:

◆ bCanAtomBeTerminalAllene()

int bCanAtomBeTerminalAllene ( char *  elname,
S_CHAR  charge,
S_CHAR  radical 
)
+ Here is the caller graph for this function:

◆ bCanAtomHaveAStereoBond()

int bCanAtomHaveAStereoBond ( char *  elname,
S_CHAR  charge,
S_CHAR  radical 
)
+ Here is the caller graph for this function:

◆ bCanInpAtomBeAStereoCenter()

int bCanInpAtomBeAStereoCenter ( inp_ATOM at,
int  cur_at,
int  bPointedEdgeStereo,
int  bStereoAtZz 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bInpAtomHasRequirdNeigh()

int bInpAtomHasRequirdNeigh ( inp_ATOM at,
int  cur_at,
int  RequirdNeighType,
int  NumDbleBonds,
int  bStereoAtZz 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bIsOxide()

int bIsOxide ( inp_ATOM at,
int  cur_at 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bIsSuitableHeteroInpAtom()

int bIsSuitableHeteroInpAtom ( inp_ATOM at)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ can_be_a_stereo_atom_with_isotopic_H()

int can_be_a_stereo_atom_with_isotopic_H ( inp_ATOM at,
int  cur_at,
int  bPointedEdgeStereo,
int  bStereoAtZz 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ can_be_a_stereo_bond_with_isotopic_H()

int can_be_a_stereo_bond_with_isotopic_H ( inp_ATOM at,
int  cur_at,
INCHI_MODE  nMode 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ change_sign3()

void change_sign3 ( const double  a[],
double  result[] 
)
static
+ Here is the caller graph for this function:

◆ comp_AT_NUMB()

int comp_AT_NUMB ( const void *  a1,
const void *  a2,
void *  p 
)
+ Here is the caller graph for this function:

◆ CompDble()

int CompDble ( const void *  a1,
const void *  a2,
void *  p 
)
static
+ Here is the caller graph for this function:

◆ cross_prod3()

void * cross_prod3 ( const double  a[],
const double  b[],
double  result[] 
)
+ Here is the caller graph for this function:

◆ diff3()

void * diff3 ( const double  a[],
const double  b[],
double  result[] 
)
static
+ Here is the caller graph for this function:

◆ dot_prod3()

double dot_prod3 ( const double  a[],
const double  b[] 
)
+ Here is the caller graph for this function:

◆ dot_prodchar3()

int dot_prodchar3 ( const S_CHAR  a[],
const S_CHAR  b[] 
)
static
+ Here is the caller graph for this function:

◆ FixSb0DParities()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FixUnkn0DStereoBonds()

int FixUnkn0DStereoBonds ( inp_ATOM at,
int  num_at 
)
+ Here is the caller graph for this function:

◆ Get2DTetrahedralAmbiguity()

int Get2DTetrahedralAmbiguity ( CANON_GLOBALS pCG,
double  at_coord[][3],
int  bAddExplicitNeighbor,
int  bFix2DstereoBorderCase,
double  vMinAngle 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get_allowed_stereo_bond_type()

int get_allowed_stereo_bond_type ( int  bond_type)
static
+ Here is the caller graph for this function:

◆ get_opposite_sb_atom()

int get_opposite_sb_atom ( inp_ATOM at,
int  cur_atom,
int  icur2nxt,
int *  pnxt_atom,
int *  pinxt2cur,
int *  pinxt_sb_parity_ord 
)
+ Here is the caller graph for this function:

◆ get_z_coord()

double get_z_coord ( inp_ATOM at,
int  cur_atom,
int  neigh_no,
int *  nType,
int  bPointedEdgeStereo 
)
static
+ Here is the caller graph for this function:

◆ GetHalfStereobond0DParity()

int GetHalfStereobond0DParity ( inp_ATOM at,
int  cur_at,
AT_NUMB  nSbNeighOrigAtNumb[],
int  nNumExplictAttachments,
int  bond_parity,
int  nFlag 
)
+ Here is the caller graph for this function:

◆ GetSbNeighOrigAtNumb()

int GetSbNeighOrigAtNumb ( inp_ATOM at,
int  cur_at,
inp_ATOM at_removed_H,
int  num_removed_H,
AT_NUMB  nSbNeighOrigAtNumb[] 
)

◆ GetStereocenter0DParity()

int GetStereocenter0DParity ( CANON_GLOBALS pCG,
inp_ATOM at,
int  cur_at,
int  j1,
AT_NUMB  nSbNeighOrigAtNumb[],
int  nFlag 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ half_stereo_bond_action()

int half_stereo_bond_action ( int  nParity,
int  bUnknown,
int  bIsotopic,
int  vABParityUnknown 
)
static
+ Here is the caller graph for this function:

◆ half_stereo_bond_parity()

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
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ len2()

double len2 ( const double  c[])
static
+ Here is the caller graph for this function:

◆ len3()

double len3 ( const double  c[])
static
+ Here is the caller graph for this function:

◆ mult3()

void mult3 ( const double  a[],
double  b,
double  result[] 
)
static
+ Here is the caller graph for this function:

◆ ReconcileAllCmlBondParities()

int ReconcileAllCmlBondParities ( inp_ATOM at,
int  num_atoms,
int  bDisconnected 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ReconcileCmlIncidentBondParities()

int ReconcileCmlIncidentBondParities ( inp_ATOM at,
int  cur_atom,
int  prev_atom,
S_CHAR visited,
int  bDisconnected 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ save_a_stereo_bond()

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
+ Here is the caller graph for this function:

◆ set_stereo_atom_parity()

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 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ set_stereo_bonds_parity()

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
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ set_stereo_parity()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ triple_prod()

double triple_prod ( double  a[],
double  b[],
double  c[],
double *  sine_value 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ triple_prod_and_min_abs_sine()

double triple_prod_and_min_abs_sine ( double  at_coord[][3],
double *  min_sine 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ triple_prod_and_min_abs_sine2()

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
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ triple_prod_char()

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
+ Here is the call graph for this function:
+ Here is the caller graph for this function: