InChI
 
Loading...
Searching...
No Matches
ichicant.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 _INCHICANT_H_
43#define _INCHICANT_H_
44
45
46#include "ichisize.h"
47#include "ichinorm.h"
48
49
50/*
51 Canonicalization definitions
52*/
53
54#ifndef INCHI_US_SHORT_DEF
55typedef signed short S_SHORT;
56typedef unsigned short U_SHORT;
57#define INCHI_US_SHORT_DEF
58#endif
59
60/*typedef unsigned long INCHI_MODE;*/
61
62typedef union tagSplitLong {
63 unsigned long ul;
66
67#define _HI 1 /* Intel platform */
68#define _LO 0
69
70#define NEIGH_LIST_LEN 4
71#define U_LONG_LEN 2
72
73#ifndef defined_NEIGH_LIST
75#define defined_NEIGH_LIST
76#endif
77
78typedef struct tagEQUIV_INFO {
80 int *nCutVertexAtom; /* cut-vertex atom for the set of equivalent atoms */
81 int *nFirstInSet; /* first of equivalent atoms in the connected to the cut-vertex atom parts of the structure */
82 int *nNumInSet; /* number of the equivalent atoms connected to the cut-vertex atom */
83 int *nAtomNo; /* eqivalent atom number */
84 int *nAddToRank; /* number to add to the rank to normalize */
86
87#define MOL_PART_MASK (~0x0U ^ 0x07U)
88
89typedef struct tagAtData_dch {
90 char element[3];
93
94
95#define MAXVAL 20 /* maximum valence */
96
97#define ATOM_EL_LEN 6
98
99typedef struct tagAtomInvariantBytes {
102 /* S_CHAR cNumberOfNonHydrogenBonds; */
104#if ( HYDROGENS_IN_INIT_RANKS == 1 )
106#endif
108
109typedef struct tagAtomInvariant {
110 /* non-isotopic part */
111#if ( USE_DISTANCES_FOR_RANKING == 1 )
112 AT_RANK nDistanceFromTerminal;
113#endif
115 AT_RANK cNum_tautomer; /* 0 or for tautomer endpoint: number of endpoints in the group */
116 AT_RANK cNum_tautomer_num[T_NUM_NO_ISOTOPIC]; /* 0 or numbers from t_gtroup */
117 /* isotopic part */
119 AT_RANK cNum_tautomer_iso[T_NUM_ISOTOPIC]; /* 0 or numbers from t_group */
121/**********************************/
135
141
142/******************* Partition **********************************/
147
148/********************* BFCN *************************************/
150
151 int num_at_tg; /* = num_atoms for non-taut */
154 NEIGH_LIST *NeighList; /* length = num_at_tg */
155 /****************************/
156 /* base structure */
157 /****************************/
158 AT_RANK *LinearCt; /* connection table atoms (+taut. groups, directed graph)*/
162
163 Partition PartitionCt; /* canonical numbering */
164 AT_RANK *nSymmRankCt; /* orbits */
165
166 /* orig. fixed by tautomerism H positions */
167 NUM_H *nNumHOrig; /* original H atoms positions + taut. info, excluding tautomeric H */
168 NUM_H *nNumH; /* canonical H atoms positions + taut. info, excluding tautomeric H */
169 int nLenNumH; /* length = num_atoms + 2*num_taut_groups */
170
171 /* fixed H: original positions of tautomeric H; exists obly for tautomeric structures */
172 NUM_H *nNumHOrigFixH; /* original fixed positions of tautomeric H */
173 NUM_H *nNumHFixH; /* canonical fixed positions of tautomeric H */
174 int nLenNumHFixH; /* length = num_atoms */
175
176 /*******************************************************************************/
177 /* the following exists only if isotopic and isotopic results requested */
178 /*******************************************************************************/
179 Partition PartitionCtIso; /* canonical numbering of isotopic base structure, defined later */
180 AT_RANK *nSymmRankCtIso; /* orbits of isotopic structure */
181 AT_ISO_SORT_KEY *iso_sort_keys; /* original isotopic sort keys for atoms and taut groups */
182 AT_ISO_SORT_KEY *iso_sort_keysOrig; /* canonical isotopic sort keys for atoms and taut groups */
184 S_CHAR *iso_exchg_atnos; /* canonical: 0=> tautomeric or may have isotopic H exchanged */
185 S_CHAR *iso_exchg_atnosOrig; /* original: 0=> tautomeric or may have isotopic H exchanged */
187
188/******************** BCN *************************************/
189typedef struct tagBaseCanonNumbering {
190
193 int num_max; /* allocated nRank[] arrays lengths in pRankStack */
194 int num_at_tg; /* all of the following arrays have this length */
199
200/***********************************
201 *
202 * CANON_STAT
203 */
204typedef struct tagCanonStat {
205 /* statistics */
214
215 /* control */
219
221
222 /* data : */
223
224 AT_NUMB *LinearCT; /* connection table only */
236
237/* second copies of line notation arrays */
238
239 AT_NUMB *LinearCT2; /* to save non-isotopic CT */
240
244
245 int bCmpStereo; /* 0 => no stereo to invert;
246 1 => StereoCtInv < StereoCt;
247 2 => StereoCtInv = StereoCt;
248 3 => StereoCtInv > StereoCt;
249 */
253
256
259
260 int nLenLinearCT; /* connection table only */
261 int nLenLinearCT2; /* connection table only, non-isotopic result */
262 int nLenLinearCTAtOnly; /* connection table only without tautomeric pseudoatoms */
263 int nLenLinearCTAtOnly2; /* connection table only, non-isotopic result without tautomeric pseudoatoms */
264 int nMaxLenLinearCT; /* connection table only */
265
268
269 int bCmpIsotopicStereo; /* 0 => no stereo to invert;
270 1 => StereoCtInv < StereoCt;
271 2 => StereoCtInv = StereoCt;
272 3 => StereoCtInv > StereoCt;
273 */
277
281 S_CHAR *bRankUsedForStereo; /* canon. rank used for stereo mapping */
282 S_CHAR *bAtomUsedForStereo; /* 0 if not a stereo atom or during a canon. rank being mapped on this atom; */
283 /* STEREO_AT_MARK if an unpapped stereogenic atom */
284 /* or a number of stereogenic bonds adjacent to an atom */
285
287
288 AT_RANK *nCanonOrd; /* atom numbers in order of increasing canon. ranks */
289 AT_RANK *nSymmRank; /* symmetry numbers in order of atoms */
290 AT_RANK *nCanonOrdTaut; /* t-group numbers numbers in order of increasing canon. ranks */
291 AT_RANK *nSymmRankTaut; /* t-group symmetry numbers in order of t-groups */
292
293 AT_RANK *nCanonOrdStereo; /* atom numbers in order of increasing canon. ranks */
294 AT_RANK *nCanonOrdStereoInv; /* atom numbers in order of increasing canon. ranks */
295 AT_RANK *nCanonOrdStereoTaut; /* t-group numbers in order of increasing canon. ranks */
296
298 AT_RANK *nCanonOrdIsotopic; /* atom numbers in order of increasing canon. ranks */
300 AT_RANK *nCanonOrdIsotopicTaut; /*/ t-group numbers in order of increasing canon. ranks */
301
305
306 /* actual lengths if successfully calculated */
307
308 int nLenCanonOrd; /* Superceded by any of the following > 0 */
309 int nLenCanonOrdTaut; /* !!! Superceded by any of the following > 0 */
316
317 /* other */
318
322 int bDoubleBondSquare; /* 0 or 2 */
324#if ( bRELEASE_VERSION == 0 )
325 int bExtract; /* for debug only */
326#endif
329 S_CHAR *nNum_H; /* number of terminal hydrogen atoms on each atom except tautomeric [num_atoms], in order of canonical numbers */
330 S_CHAR *nNum_H_fixed;/* number of terminal hydrogen atoms on tautomeric atoms (for non-atautomeric representation) [num_atoms] */
333
334
335
336
349
350int SetBitCreate( struct tagCANON_GLOBALS *pCG );
351
352void inchi_qsort( void *pParam, void *base, size_t num, size_t width, int( *comp )( const void *, const void *, void * ) );
353
354
355
356
357
358/**************************************************/
359typedef struct tagCanonData {
360
361 /* same names/types as in ConTable; here the order is from original numbering */
362
363 AT_NUMB *LinearCT; /* output ?? */
364
369 /* hydrogen atoms fixed in tautomeric representation:
370 compare before diff sign inversion: (+) <=> Ct1->() > Ct2->() */
372 int lenNumH; /* used length */
373 int maxlenNumH; /* n + T_NUM_NO_ISOTOPIC*(n_tg-n) + 1 */
374
375 /* hydrogen atoms fixed in non-tautomeric representation only:
376 compare before diff sign inversion: (+) <=> Ct1->() > Ct2->() */
378 int lenNumHfixed; /* used length */
379 int maxlenNumHfixed; /* max length = n+1 */
380
381 /* isotopic atoms (without tautomeric H) and isotopic tautomeric groups */
382 /* note: AT_ISO_SORT_KEY and T_GROUP_ISOWT are identical types: long */
384 int len_iso_sort_key; /* used length */
385 int maxlen_iso_sort_key; /* max length = n_tg+1 */
387 int len_iso_exchg_atnos; /* used length */
389
390 /* isotopic hydrogen atoms fixed in non-tautomeric representation only */
391#if ( USE_ISO_SORT_KEY_HFIXED == 1 )
392 AT_ISO_SORT_KEY *iso_sort_key_Hfixed;
393 int len_iso_sort_key_Hfixed; /* used length */
394 int maxlen_iso_sort_key_Hfixed; /* max length = n+1 */
395#endif
396 /* auxiliary ranking */
397
399
400 struct tagInchiTime *ulTimeOutTime; /* timeout */
402/**************************************************/
403
414/***********************************************
415 tree structure: one segment
416
417 canon. rank
418 at.no orig. atom numbers on which the canon. rank has been successfully mapped
419 ...
420 at.no except the last at.no: it is not known if it has been mapped until all atoms are mapped
421 num.at+1 number of atoms in this segment
422*/
423
424typedef struct tagCurTree {
426 int max_len; /* allocated length of tree in sizeof(tree[0]) units */
427 int cur_len; /* currently used length */
428 int incr_len; /* reallocation increment */
430
431
432#endif /* _INCHICANT_H_ */
long AT_ISO_SORT_KEY
Definition extr_ct.h:69
U_SHORT bitWord
Definition ichi_bns.h:377
struct tagEQUIV_INFO EQUIV_INFO
struct tagCurTree CUR_TREE
tagAtInvariantIndexes
Definition ichicant.h:122
@ AT_INV_NUM_H_FIX
Definition ichicant.h:129
@ AT_INV_HILL_ORDER
Definition ichicant.h:123
@ AT_INV_TG_NUMBERS
Definition ichicant.h:128
@ AT_INV_TAUT_ISO
Definition ichicant.h:132
@ AT_INV_BREAK1
Definition ichicant.h:130
@ AT_INV_LENGTH
Definition ichicant.h:133
@ AT_INV_NUM_H
Definition ichicant.h:125
@ AT_INV_NUM_CONNECTIONS
Definition ichicant.h:124
@ AT_INV_NUM_TG_ENDPOINTS
Definition ichicant.h:127
AT_RANK * NEIGH_LIST
Definition ichicant.h:74
struct tagCanonData CANON_DATA
struct tagFixHOrTautCanonNumbering FTCN
struct tagCanonStat CANON_STAT
struct tagPartition Partition
struct tagAtomInvariant2 ATOM_INVARIANT2
struct tagCANON_GLOBALS CANON_GLOBALS
struct tagBaseCanonNumbering BCN
union tagSplitLong SU_LONG
struct tagAtData_dch AT_DATA
void inchi_qsort(void *pParam, void *base, size_t num, size_t width, int(*comp)(const void *, const void *, void *))
Definition ichisort.c:66
struct tagCanonCounts CANON_COUNTS
struct tagAtomInvariantBytes ATOM_INVARIANT_BYTES
enum tagAtInvariantIndexes AT_INV_INDEXES
struct tagAtomInvariant ATOM_INVARIANT
int SetBitCreate(struct tagCANON_GLOBALS *pCG)
Definition ichican2.c:3205
unsigned short AT_NUMB
Definition ichisize.h:45
unsigned short AT_RANK
Definition ichisize.h:46
signed short NUM_H
Definition ichisize.h:49
unsigned long INCHI_MODE
Definition ichisize.h:60
#define T_NUM_NO_ISOTOPIC
Definition ichitaut.h:104
#define T_NUM_ISOTOPIC
Definition ichitaut.h:105
AT_NUMB AT_TAUTOMER
Definition ichitaut.h:109
signed char S_CHAR
Definition inchi_api.h:113
unsigned short U_SHORT
Definition inchi_api.h:120
signed short S_SHORT
Definition inchi_api.h:119
#define TAUT_NUM
Definition mode.h:593
Definition ichicant.h:89
char element[3]
Definition ichicant.h:90
int valence
Definition ichicant.h:91
Definition ichicant.h:136
AT_NUMB val[AT_INV_LENGTH]
Definition ichicant.h:137
AT_ISO_SORT_KEY iso_sort_key
Definition ichicant.h:138
S_CHAR iso_aux_key
Definition ichicant.h:139
Definition ichicant.h:99
S_CHAR cNumberOfAttachedHydrogens
Definition ichicant.h:105
S_CHAR cNumberOfConnections
Definition ichicant.h:101
S_CHAR cNotExactlyHillOrderNumber
Definition ichicant.h:100
S_CHAR cAtomicNumber
Definition ichicant.h:103
Definition ichicant.h:109
AT_RANK cNum_tautomer_num[T_NUM_NO_ISOTOPIC]
Definition ichicant.h:116
ATOM_INVARIANT_BYTES b
Definition ichicant.h:114
AT_ISO_SORT_KEY iso_sort_key
Definition ichicant.h:118
AT_RANK cNum_tautomer_iso[T_NUM_ISOTOPIC]
Definition ichicant.h:119
AT_RANK cNum_tautomer
Definition ichicant.h:115
Definition ichicant.h:189
int num_max
Definition ichicant.h:193
AT_RANK ** pRankStack
Definition ichicant.h:191
int nMaxLenRankStack
Definition ichicant.h:192
FTCN ftcn[TAUT_NUM]
Definition ichicant.h:197
struct tagInchiTime * ulTimeOutTime
Definition ichicant.h:196
int num_atoms
Definition ichicant.h:195
int num_at_tg
Definition ichicant.h:194
Definition ichicant.h:338
const AT_NUMB * m_pNeighborsForSort
Definition ichicant.h:341
const ATOM_INVARIANT2 * m_pAtomInvariant2ForSort
Definition ichicant.h:340
bitWord * m_bBit
Definition ichicant.h:345
int m_nNumCompNeighborsRanksCountEql
Definition ichicant.h:344
int m_bBitInitialized
Definition ichicant.h:346
const NEIGH_LIST * m_pNeighList_RankForSort
Definition ichicant.h:339
const AT_RANK * m_pn_RankForSort
Definition ichicant.h:342
int m_num_bit
Definition ichicant.h:347
AT_RANK m_nMaxAtNeighRankForSort
Definition ichicant.h:343
Definition ichicant.h:404
long lNumEqualCT
Definition ichicant.h:408
long lNumTotCT
Definition ichicant.h:409
long lNumGenerators
Definition ichicant.h:411
double dGroupSize
Definition ichicant.h:410
long lNumRejectedCT
Definition ichicant.h:407
long lNumBreakTies
Definition ichicant.h:405
long lNumStoredIsomorphisms
Definition ichicant.h:412
long lNumDecreasedCT
Definition ichicant.h:406
Definition ichicant.h:359
AT_NUMB * LinearCT
Definition ichicant.h:363
int maxlenNumHfixed
Definition ichicant.h:379
S_CHAR * iso_exchg_atnos
Definition ichicant.h:386
int maxlenNumH
Definition ichicant.h:373
int maxlen_iso_exchg_atnos
Definition ichicant.h:388
int len_iso_sort_key
Definition ichicant.h:384
AT_ISO_SORT_KEY * iso_sort_key
Definition ichicant.h:383
int nMaxLenLinearCT
Definition ichicant.h:365
NUM_H * NumHfixed
Definition ichicant.h:377
int nCanonFlags
Definition ichicant.h:368
int lenNumH
Definition ichicant.h:372
int lenNumHfixed
Definition ichicant.h:378
int len_iso_exchg_atnos
Definition ichicant.h:387
int maxlen_iso_sort_key
Definition ichicant.h:385
NUM_H * NumH
Definition ichicant.h:371
int nLenCTAtOnly
Definition ichicant.h:367
struct tagInchiTime * ulTimeOutTime
Definition ichicant.h:400
AT_RANK * nAuxRank
Definition ichicant.h:398
int nLenLinearCT
Definition ichicant.h:366
Definition ichicant.h:204
int bCmpIsotopicStereo
Definition ichicant.h:269
int nMaxLenLinearCTIsotopicStereoCarb
Definition ichicant.h:280
NEIGH_LIST * NeighList
Definition ichicant.h:327
AT_RANK * nCanonOrdIsotopicStereoInv
Definition ichicant.h:303
AT_RANK * nPrevAtomNumber
Definition ichicant.h:286
int nMaxLenLinearCTIsotopicTautomer
Definition ichicant.h:258
AT_RANK * nSymmRankIsotopicTaut
Definition ichicant.h:299
AT_NUMB * LinearCT
Definition ichicant.h:224
AT_RANK * nCanonOrd
Definition ichicant.h:288
int nLenCanonOrdIsotopic
Definition ichicant.h:310
int bCmpStereo
Definition ichicant.h:245
int nLenLinearCT
Definition ichicant.h:260
AT_RANK * nCanonOrdIsotopicStereoTaut
Definition ichicant.h:304
int nMaxLenLinearCTTautomer
Definition ichicant.h:267
int nMaxLenLinearCTIsotopicStereoDble
Definition ichicant.h:276
long lNumRejectedCT
Definition ichicant.h:210
int nCanonFlags
Definition ichicant.h:220
AT_TAUTOMER * LinearCTTautomer
Definition ichicant.h:235
int nLenCanonOrdStereo
Definition ichicant.h:312
int nLenCanonOrdStereoTaut
Definition ichicant.h:313
T_GROUP_INFO * t_group_info
Definition ichicant.h:320
int bDoubleBondSquare
Definition ichicant.h:322
int nLenCanonOrdIsotopicStereo
Definition ichicant.h:314
AT_STEREO_DBLE * LinearCTIsotopicStereoDble
Definition ichicant.h:231
AT_RANK * nCanonOrdStereoInv
Definition ichicant.h:294
AT_RANK * nCanonOrdIsotopicTaut
Definition ichicant.h:300
INCHI_MODE nMode
Definition ichicant.h:323
int nLenLinearCTIsotopicTautomer
Definition ichicant.h:257
int nLenLinearCTAtOnly
Definition ichicant.h:262
AT_RANK * nSymmRank
Definition ichicant.h:289
int bIgnoreIsotopic
Definition ichicant.h:321
S_CHAR * nNum_H
Definition ichicant.h:329
int nLenLinearCTIsotopic
Definition ichicant.h:254
BCN * pBCN
Definition ichicant.h:328
AT_STEREO_DBLE * LinearCTIsotopicStereoDbleInv
Definition ichicant.h:233
int nLenLinearCTIsotopicStereoCarbInv
Definition ichicant.h:279
long lNumEqualCT
Definition ichicant.h:211
int bStereoIsBetter
Definition ichicant.h:218
AT_RANK * nCanonOrdTaut
Definition ichicant.h:290
int nLenLinearCTStereoDble
Definition ichicant.h:241
S_CHAR * bAtomUsedForStereo
Definition ichicant.h:282
int nLenLinearCTIsotopicStereoDbleInv
Definition ichicant.h:275
AT_STEREO_DBLE * LinearCTStereoDbleInv
Definition ichicant.h:229
AT_STEREO_CARB * LinearCTStereoCarbInv
Definition ichicant.h:230
AT_RANK * nSymmRankIsotopic
Definition ichicant.h:297
int nMaxLenLinearCT
Definition ichicant.h:264
AT_RANK * nSymmRankTaut
Definition ichicant.h:291
long lNumBreakTies
Definition ichicant.h:206
int nLenLinearCTAtOnly2
Definition ichicant.h:263
AT_NUMB * LinearCT2
Definition ichicant.h:239
int nLenLinearCTTautomer
Definition ichicant.h:266
AT_STEREO_CARB * LinearCTIsotopicStereoCarb
Definition ichicant.h:232
S_CHAR * bRankUsedForStereo
Definition ichicant.h:281
AT_RANK * nCanonOrdIsotopicStereo
Definition ichicant.h:302
int bKeepSymmRank
Definition ichicant.h:217
struct tagInchiTime * ulTimeOutTime
Definition ichicant.h:212
int nLenCanonOrdIsotopicStereoTaut
Definition ichicant.h:315
int nLenCanonOrdTaut
Definition ichicant.h:309
AT_ISOTOPIC * LinearCTIsotopic
Definition ichicant.h:225
int nLenLinearCTIsotopicStereoCarb
Definition ichicant.h:278
int nMaxLenLinearCTIsotopic
Definition ichicant.h:255
int nMaxLenLinearCTStereoCarb
Definition ichicant.h:252
AT_STEREO_CARB * LinearCTIsotopicStereoCarbInv
Definition ichicant.h:234
AT_STEREO_DBLE * LinearCTStereoDble
Definition ichicant.h:227
int nLenLinearCT2
Definition ichicant.h:261
S_CHAR * nExchgIsoH
Definition ichicant.h:331
AT_ISO_TGROUP * LinearCTIsotopicTautomer
Definition ichicant.h:226
int nLenCanonOrdIsotopicTaut
Definition ichicant.h:311
int nMaxLenLinearCTStereoDble
Definition ichicant.h:243
S_CHAR * nNum_H_fixed
Definition ichicant.h:330
long lNumDecreasedCT
Definition ichicant.h:209
int nLenCanonOrd
Definition ichicant.h:308
AT_STEREO_CARB * LinearCTStereoCarb
Definition ichicant.h:228
int bFirstCT
Definition ichicant.h:216
long lNumNeighListIter
Definition ichicant.h:207
AT_RANK * nCanonOrdStereo
Definition ichicant.h:293
int nLenLinearCTStereoCarbInv
Definition ichicant.h:251
AT_RANK * nCanonOrdStereoTaut
Definition ichicant.h:295
long lTotalTime
Definition ichicant.h:213
long lNumTotCT
Definition ichicant.h:208
int nLenLinearCTStereoCarb
Definition ichicant.h:250
int bHasIsotopicInTautomerGroups
Definition ichicant.h:319
int nLenLinearCTIsotopicStereoDble
Definition ichicant.h:274
int nLenLinearCTStereoDbleInv
Definition ichicant.h:242
AT_RANK * nCanonOrdIsotopic
Definition ichicant.h:298
Definition ichicant.h:424
AT_NUMB * tree
Definition ichicant.h:425
int max_len
Definition ichicant.h:426
int incr_len
Definition ichicant.h:428
int cur_len
Definition ichicant.h:427
Definition ichicant.h:78
int * nAtomNo
Definition ichicant.h:83
int * nAddToRank
Definition ichicant.h:84
int nNumSets
Definition ichicant.h:79
int * nCutVertexAtom
Definition ichicant.h:80
int * nNumInSet
Definition ichicant.h:82
int * nFirstInSet
Definition ichicant.h:81
Definition ichicant.h:149
AT_RANK * LinearCt
Definition ichicant.h:158
int nLenLinearCtAtOnly
Definition ichicant.h:159
int nCanonFlags
Definition ichicant.h:153
int num_atoms
Definition ichicant.h:152
Partition PartitionCtIso
Definition ichicant.h:179
Partition PartitionCt
Definition ichicant.h:163
NUM_H * nNumHOrig
Definition ichicant.h:167
int len_iso_sort_keys
Definition ichicant.h:183
AT_ISO_SORT_KEY * iso_sort_keysOrig
Definition ichicant.h:182
S_CHAR * iso_exchg_atnosOrig
Definition ichicant.h:185
NEIGH_LIST * NeighList
Definition ichicant.h:154
S_CHAR * iso_exchg_atnos
Definition ichicant.h:184
int num_at_tg
Definition ichicant.h:151
NUM_H * nNumHFixH
Definition ichicant.h:173
AT_ISO_SORT_KEY * iso_sort_keys
Definition ichicant.h:181
int nLenLinearCt
Definition ichicant.h:160
AT_RANK * nSymmRankCt
Definition ichicant.h:164
AT_RANK * nSymmRankCtIso
Definition ichicant.h:180
int nLenNumH
Definition ichicant.h:169
int nMaxLenLinearCt
Definition ichicant.h:161
NUM_H * nNumH
Definition ichicant.h:168
int nLenNumHFixH
Definition ichicant.h:174
NUM_H * nNumHOrigFixH
Definition ichicant.h:172
Definition ichitime.h:69
Definition extr_ct.h:90
Definition ichitaut.h:121
Definition ichicant.h:143
AT_NUMB * AtNumber
Definition ichicant.h:145
AT_RANK * Rank
Definition ichicant.h:144
Definition extr_ct.h:77
Definition extr_ct.h:83
Definition ichitaut.h:222
Definition ichicant.h:62
U_SHORT us[2]
Definition ichicant.h:64
unsigned long ul
Definition ichicant.h:63