InChI
 
Loading...
Searching...
No Matches
ichister.h
Go to the documentation of this file.
1/*
2 * International Chemical Identifier (InChI)
3 * Version 1
4 * Software version 1.07
5 * April 30, 2024
6 *
7 * MIT License
8 *
9 * Copyright (c) 2024 IUPAC and InChI Trust
10 *
11 * Permission is hereby granted, free of charge, to any person obtaining a copy
12 * of this software and associated documentation files (the "Software"), to deal
13 * in the Software without restriction, including without limitation the rights
14 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15 * copies of the Software, and to permit persons to whom the Software is
16 * furnished to do so, subject to the following conditions:
17 *
18 * The above copyright notice and this permission notice shall be included in all
19 * copies or substantial portions of the Software.
20 *
21 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27 * SOFTWARE.
28*
29* The InChI library and programs are free software developed under the
30 * auspices of the International Union of Pure and Applied Chemistry (IUPAC).
31 * Originally developed at NIST.
32 * Modifications and additions by IUPAC and the InChI Trust.
33 * Some portions of code were developed/changed by external contributors
34 * (either contractor or volunteer) which are listed in the file
35 * 'External-contributors' included in this distribution.
36 *
37 * info@inchi-trust.org
38 *
39*/
40
41
42#ifndef _ICHISTER_H_
43#define _ICHISTER_H_
44
45#include "ichicomn.h"
46
47#ifndef COMPILE_ALL_CPP
48#ifdef __cplusplus
49extern "C" {
50#endif
51#endif
52 int bCanAtomBeAStereoCenter( char *elname, S_CHAR charge, S_CHAR radical );
53 int bCanInpAtomBeAStereoCenter( inp_ATOM *at, int cur_at, int bPointedEdgeStereo, int bStereoAtZz );
54 int bCanAtomHaveAStereoBond( char *elname, S_CHAR charge, S_CHAR radical );
55 int bCanAtomBeTerminalAllene( char *elname, S_CHAR charge, S_CHAR radical );
56 int bCanAtomBeMiddleAllene( char *elname, S_CHAR charge, S_CHAR radical );
57 int bAtomHasValence3( char *elname, S_CHAR charge, S_CHAR radical );
58
59 double dot_prod3(const double a[], const double b[]);
60 void* cross_prod3(const double a[], const double b[], double result[]);
61
62 struct tagCANON_GLOBALS;
63 int set_stereo_parity( struct tagCANON_GLOBALS *pCG,
64 inp_ATOM* at,
65 sp_ATOM* at_output,
66 int num_at,
67 int num_removed_H,
68 int *nMaxNumStereoAtoms,
69 int *nMaxNumStereoBonds,
70 INCHI_MODE nMode,
71 int bPointedEdgeStereo,
72 int vABParityUnknown,
73 int bLooseTSACheck,
74 int bStereoAtZz );
75
76 int get_opposite_sb_atom( inp_ATOM *at, int cur_atom, int icur2nxt,
77 int *pnxt_atom, int *pinxt2cur, int *pinxt_sb_parity_ord );
78
79#define PES_BIT_POINT_EDGE_STEREO 1
80#define PES_BIT_PHOSPHINE_STEREO 2
81#define PES_BIT_ARSINE_STEREO 4
82#define PES_BIT_FIX_SP3_BUG 8
83
84#ifndef COMPILE_ALL_CPP
85#ifdef __cplusplus
86}
87#endif
88#endif
89
90
91#endif /* _ICHISTER_H_ */
unsigned long INCHI_MODE
Definition ichisize.h:60
int bAtomHasValence3(char *elname, S_CHAR charge, S_CHAR radical)
Definition ichister.c:1574
int bCanAtomBeTerminalAllene(char *elname, S_CHAR charge, S_CHAR radical)
Definition ichister.c:1705
int bCanAtomHaveAStereoBond(char *elname, S_CHAR charge, S_CHAR radical)
Definition ichister.c:1594
void * cross_prod3(const double a[], const double b[], double result[])
Definition ichister.c:330
int bCanAtomBeMiddleAllene(char *elname, S_CHAR charge, S_CHAR radical)
Definition ichister.c:1615
int bCanAtomBeAStereoCenter(char *elname, S_CHAR charge, S_CHAR radical)
int bCanInpAtomBeAStereoCenter(inp_ATOM *at, int cur_at, int bPointedEdgeStereo, int bStereoAtZz)
Definition ichister.c:1432
double dot_prod3(const double a[], const double b[])
Definition ichister.c:303
int get_opposite_sb_atom(inp_ATOM *at, int cur_atom, int icur2nxt, int *pnxt_atom, int *pinxt2cur, int *pinxt_sb_parity_ord)
Definition ichister.c:4852
int set_stereo_parity(struct tagCANON_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)
Definition ichister.c:4390
signed char S_CHAR
Definition inchi_api.h:113
Definition extr_ct.h:110
Definition ichicant.h:338
Definition inpdef.h:110