InChI
 
Loading...
Searching...
No Matches
ichimake.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 _ICHIMAKE_H_
43#define _ICHIMAKE_H_
44
45#include "ichisize.h"
46#include "ichi.h"
47#include "extr_ct.h"
48#include "ichicant.h"
49
50/***********************************************************************/
51/* replace all ' ' delimiters with ',' */
52#define ITEM_DELIMETER ","
53#define EXTRA_SPACE ""
54#define COMMA_EXTRA_SPACE ","
55#define LEN_EXTRA_SPACE 0
56
57/**********************************************************************************************/
58/* nCtMode for output INChI */
59
60#define CT_MODE_NO_ORPHANS 1 /* no orphans, that CT should have only atoms with neighbors */
61#define CT_MODE_ABC_NUMBERS 2
62#define CT_MODE_ATOM_COUNTS 4
63#define CT_MODE_PREDECESSORS 8
64#define CT_MODE_EQL_H_TOGETHER 16
65#define CT_MODE_ABC_NUM_CLOSURES 32 /* in CT_MODE_ABC_NUMBERS output AB1AC2AB instead of AB-AC-A-B */
66
67
68/*************** Macros for retrieving requested INChI and INChI_Aux *****************************/
69/* S->pINChI[TAUT_YES] has info: */
70#define HAS_T(S) (S->pINChI[TAUT_YES] && S->pINChI[TAUT_YES]->nNumberOfAtoms)
71/* S->pINChI[TAUT_NON] has info: */
72#define HAS_N(S) (S->pINChI[TAUT_NON] && S->pINChI[TAUT_NON]->nNumberOfAtoms)
73
74/* S->pINChI[TAUT_YES] has tautomeric info: */
75#define HAS_TT(S) (S->pINChI[TAUT_YES] && S->pINChI[TAUT_YES]->nNumberOfAtoms && S->pINChI[TAUT_YES]->lenTautomer>0)
76/* S->pINChI[TAUT_YES] has non-taitomeric info: */
77#define HAS_TN(S) (S->pINChI[TAUT_YES] && S->pINChI[TAUT_YES]->nNumberOfAtoms && !S->pINChI[TAUT_YES]->lenTautomer)
78/* S->pINChI[TAUT_NON] has non-tautomeric info: */
79#define HAS_NN(S) (S->pINChI[TAUT_NON] && S->pINChI[TAUT_NON]->nNumberOfAtoms && !S->pINChI[TAUT_NON]->lenTautomer)
80#define GET_II(M,S) ((M==OUT_N1)? (HAS_TN(S)? TAUT_YES : HAS_NN(S)? TAUT_NON : -1): \
81 (M==OUT_T1 || M==OUT_TN)? (HAS_T(S) ? TAUT_YES : HAS_N(S) ? TAUT_NON : -1): \
82 (M==OUT_NN)? (HAS_NN(S)? TAUT_NON : HAS_TN(S)? TAUT_YES : -1): \
83 (M==OUT_NT)? ((HAS_TT(S) && HAS_NN(S)) ? TAUT_NON : -1) : -1)
84
85/*********************************/
86/* Equivalence flags definitions */
87/*********************************/
88
89/* What is equal (ii = INChI_ITEM) */
90#define iiSTEREO 0x0001 /* stereo (sp2 or sp3) */
91#define iiSTEREO_INV 0x0002 /* inverted stereo (sp3) */
92#define iiNUMB 0x0004 /* numbering or inverted stereo numbering */
93#define iiEQU 0x0008 /* equivalence info */
94/* derived:
95 (iiSTEREO_INV | iiNUMB) = numbering of inverted stereo
96*/
97
98/* Additional info to what is equal (INCHI_ITEM_TYPE = iit) */
99#define iitISO 0x0010 /* Isotopic */
100#define iitNONTAUT 0x0020 /* Non-tautomeric */
101/* derived:
102 (iitISO | iitNONTAUT) = isotopic non-tautomeric
103*/
104
105/* Where is the equivalent item located (INChI_ITEM_EQUAL_TO = iiEq2) */
106#define iiEq2NONTAUT 0x0040 /* non-tautomeric */
107#define iiEq2ISO 0x0080 /* isotopic */
108#define iiEq2INV 0x0100 /* equal to inverted (stereo sp3) or to numbering of inverted stereo */
109
110#define iiEmpty 0x0200 /* item is empty while in the preceding layer the item is not empty */
111
112/*********************** Printing strings external declarations *******************************/
113
114extern const char sCompDelim[];
115
116#ifndef COMPILE_ALL_CPP
117#ifdef __cplusplus
118extern "C" {
119#endif
120#endif
121
122/**********************************************************************************************/
124 const INChI *i2 );
125const char *EquString( int EquVal );
126 int FillOutINChI( INChI *pINChI,
127 INChI_Aux *pINChI_Aux,
128 int num_atoms,
129 int num_at_tg,
130 int num_removed_H,
131 sp_ATOM *at,
132 inp_ATOM *norm_at,
133 CANON_STAT *pCS,
134 CANON_GLOBALS *pCG,
135 int bTautomeric,
136 INCHI_MODE nUserMode,
137 char *pStrErrStruct,
138 int bNoWarnings );
139 int MakeHillFormulaString( char *szHillFormula,
140 INCHI_IOS_STRING *strbuf,
141 int *bOverflow );
142 int bHasOrigInfo( ORIG_INFO *OrigInfo,
143 int num_atoms );
144 int EqlOrigInfo( INChI_Aux *a1,
145 INChI_Aux *a2 );
146 int MakeAbcNumber( char *szString,
147 int nStringLen,
148 const char *szLeadingDelim,
149 int nValue );
150 int MakeDecNumber( char *szString,
151 int nStringLen,
152 const char *szLeadingDelim,
153 int nValue );
155 AT_NUMB *LinearCT,
156 int nLenCT,
157 int bAddDelim,
158 S_CHAR *nNum_H,
159 int num_atoms,
160 INCHI_IOS_STRING *strbuf,
161 int nCtMode,
162 int *bOverflow );
163 int MakeCtStringOld( AT_NUMB *LinearCT,
164 int nLenCT,
165 int bAddDelim,
166 INCHI_IOS_STRING *strbuf,
167 int nCtMode,
168 int *bOverflow );
169 int MakeCtString( CANON_GLOBALS *pCG,
170 AT_NUMB *LinearCT,
171 int nLenCT,
172 int bAddDelim,
173 S_CHAR *nNum_H, /* not used here */
174 int num_atoms, /* not used here */
175 INCHI_IOS_STRING *strbuf,
176 int nCtMode,
177 int *bOverflow );
178 int MakeTautString( AT_NUMB *LinearCT,
179 int nLenCT,
180 int bAddDelim,
181 INCHI_IOS_STRING *strbuf,
182 int nCtMode,
183 int *bOverflow );
184 int MakeEquString( AT_NUMB *LinearCT,
185 int nLenCT,
186 int bAddDelim,
187 INCHI_IOS_STRING *strbuf,
188 int nCtMode,
189 int *bOverflow );
190 int MakeIsoAtomString( INChI_IsotopicAtom *IsotopicAtom,
191 int nNumberOfIsotopicAtoms,
192 INCHI_IOS_STRING *strbuf,
193 int nCtMode,
194 int *bOverflow );
195 int MakeIsoTautString( INChI_IsotopicTGroup *IsotopicTGroup,
196 int nNumberOfIsotopicTGroups,
197 INCHI_IOS_STRING *strbuf,
198 int nCtMode,
199 int *bOverflow );
200 int MakeIsoHString( int num_iso_H[],
201 INCHI_IOS_STRING *strbuf,
202 int nCtMode, int *bOverflow );
203 int MakeStereoString( AT_NUMB *at1,
204 AT_NUMB *at2,
205 S_CHAR *parity,
206 int bAddDelim,
207 int nLenCT,
208 INCHI_IOS_STRING *buf,
209 int nCtMode,
210 int *bOverflow );
211 int MakeCRVString( ORIG_INFO *OrigInfo,
212 int nLenCT,
213 int bAddDelim,
214 INCHI_IOS_STRING *strbuf,
215 int nCtMode,
216 int *bOverflow );
217 int MakeMult( int mult,
218 const char *szTailingDelim,
219 INCHI_IOS_STRING *buf,
220 int nCtMode,
221 int *bOverflow );
222 int MakeDelim( const char *szTailingDelim,
223 INCHI_IOS_STRING *buf,
224 int *bOverflow );
225 int MakeEqStr( const char *szTailingDelim,
226 int mult,
227 INCHI_IOS_STRING *buf,
228 int *bOverflow );
229 int MakeHString( int bAddDelim,
230 S_CHAR *LinearCT,
231 int nLenCT,
232 INCHI_IOS_STRING *buf,
233 int nCtMode,
234 int *bOverflow );
236 AT_NUMB *LinearCT,
237 int nLenCT,
238 S_CHAR *nNum_H,
239 int num_atoms,
240 int nCtMode );
241 int str_HillFormula( INCHI_SORT *pINChISort,
242 INCHI_IOS_STRING *strbuf,
243 int *bOverflow,
244 int bOutType,
245 int num_components,
246 int bUseMulipliers );
247 int str_HillFormula2( INCHI_SORT *pINChISort /* non-taut */,
248 INCHI_SORT *pINChISort2 /* taut */,
249 INCHI_IOS_STRING *strbuf,
250 int *bOverflow,
251 int bOutType,
252 int num_components,
253 int bUseMulipliers );
255 INCHI_SORT *pINChISort,
256 INCHI_IOS_STRING *strbuf,
257 int *bOverflow,
258 int bOutType,
259 int ATOM_MODE,
260 int num_components,
261 int bUseMulipliers );
262 int str_H_atoms( INCHI_SORT *pINChISort,
263 INCHI_IOS_STRING *strbuf,
264 int *bOverflow,
265 int bOutType,
266 int ATOM_MODE,
267 int TAUT_MODE,
268 int num_components,
269 int bUseMulipliers );
270 int str_Charge2( INCHI_SORT *pINChISort,
271 INCHI_SORT *pINChISort2,
272 INCHI_IOS_STRING *strbuf,
273 int *bOverflow,
274 int bOutType,
275 int num_components,
276 int bSecondNonTautPass,
277 int bOmitRepetitions,
278 int bUseMulipliers );
279 int str_Sp2( INCHI_SORT *pINChISort,
280 INCHI_SORT *pINChISort2,
281 INCHI_IOS_STRING *strbuf,
282 int *bOverflow,
283 int bOutType,
284 int TAUT_MODE,
285 int num_components,
286 int bSecondNonTautPass,
287 int bOmitRepetitions,
288 int bUseMulipliers );
289 int str_IsoSp2( INCHI_SORT *pINChISort,
290 INCHI_SORT *pINChISort2,
291 INCHI_IOS_STRING *strbuf,
292 int *bOverflow,
293 int bOutType, int TAUT_MODE,
294 int num_components,
295 int bSecondNonTautPass,
296 int bOmitRepetitions,
297 int bUseMulipliers );
298 int str_Sp3( INCHI_SORT *pINChISort,
299 INCHI_SORT *pINChISort2,
300 INCHI_IOS_STRING *strbuf,
301 int *bOverflow,
302 int bOutType,
303 int TAUT_MODE,
304 int num_components,
305 int bRelRac,
306 int bSecondNonTautPass,
307 int bOmitRepetitions,
308 int bUseMulipliers );
309 int str_IsoSp3( INCHI_SORT *pINChISort,
310 INCHI_SORT *pINChISort2,
311 INCHI_IOS_STRING *strbuf,
312 int *bOverflow,
313 int bOutType,
314 int TAUT_MODE,
315 int num_components,
316 int bRelRac,
317 int bSecondNonTautPass,
318 int bOmitRepetitions,
319 int bUseMulipliers );
320 int str_StereoAbsInv( INCHI_SORT *pINChISort,
321 INCHI_IOS_STRING *strbuf,
322 int *bOverflow,
323 int bOutType,
324 int num_components );
325 int str_IsoStereoAbsInv( INCHI_SORT *pINChISort,
326 INCHI_IOS_STRING *strbuf,
327 int *bOverflow,
328 int bOutType,
329 int num_components );
330 int str_IsoAtoms( INCHI_SORT *pINChISort,
331 INCHI_SORT *pINChISort2,
332 INCHI_IOS_STRING *strbuf,
333 int *bOverflow,
334 int bOutType,
335 int TAUT_MODE,
336 int num_components,
337 int bAbcNumbers,
338 int bSecondNonTautPass,
339 int bOmitRepetitions,
340 int bUseMulipliers );
341 int str_FixedH_atoms( INCHI_SORT *pINChISort,
342 INCHI_IOS_STRING *strbuf,
343 int *bOverflow,
344 int bOutType,
345 int ATOM_MODE,
346 int num_components,
347 int bUseMulipliers );
348 int str_AuxNumb( CANON_GLOBALS *pCG,
349 INCHI_SORT *pINChISort,
350 INCHI_SORT *pINChISort2,
351 INCHI_IOS_STRING *strbuf,
352 int *bOverflow,
353 int bOutType,
354 int TAUT_MODE,
355 int num_components,
356 int bSecondNonTautPass,
357 int bOmitRepetitions );
358 int str_AuxEqu( INCHI_SORT *pINChISort,
359 INCHI_SORT *pINChISort2,
360 INCHI_IOS_STRING *strbuf,
361 int *bOverflow,
362 int bOutType,
363 int TAUT_MODE,
364 int num_components,
365 int bSecondNonTautPass,
366 int bOmitRepetitions,
367 int bUseMulipliers );
368 int str_AuxTgroupEqu( INCHI_SORT *pINChISort,
369 INCHI_IOS_STRING *strbuf,
370 int *bOverflow,
371 int bOutType,
372 int TAUT_MODE,
373 int num_components,
374 int bUseMulipliers );
375 int str_AuxIsoTgroupEqu( INCHI_SORT *pINChISort,
376 INCHI_IOS_STRING *strbuf,
377 int *bOverflow,
378 int bOutType,
379 int TAUT_MODE,
380 int num_components,
381 int bOmitRepetitions,
382 int bUseMulipliers );
383 int str_AuxInvSp3( INCHI_SORT *pINChISort,
384 INCHI_SORT *pINChISort2,
385 INCHI_IOS_STRING *strbuf,
386 int *bOverflow,
387 int bOutType,
388 int TAUT_MODE,
389 int num_components,
390 int bSecondNonTautPass,
391 int bOmitRepetitions,
392 int bUseMulipliers );
394 INCHI_SORT *pINChISort,
395 INCHI_SORT *pINChISort2,
396 INCHI_IOS_STRING *strbuf,
397 int *bOverflow,
398 int bOutType,
399 int TAUT_MODE,
400 int num_components,
401 int bSecondNonTautPass,
402 int bOmitRepetitions );
404 INCHI_SORT *pINChISort,
405 INCHI_SORT *pINChISort2,
406 INCHI_IOS_STRING *strbuf,
407 int *bOverflow,
408 int bOutType,
409 int TAUT_MODE,
410 int num_components,
411 int bSecondNonTautPass,
412 int bOmitRepetitions );
413 int str_AuxIsoEqu( INCHI_SORT *pINChISort,
414 INCHI_SORT *pINChISort2,
415 INCHI_IOS_STRING *strbuf,
416 int *bOverflow,
417 int bOutType,
418 int TAUT_MODE,
419 int num_components,
420 int bSecondNonTautPass,
421 int bOmitRepetitions,
422 int bUseMulipliers );
423 int str_AuxInvIsoSp3( INCHI_SORT *pINChISort,
424 INCHI_SORT *pINChISort2,
425 INCHI_IOS_STRING *strbuf,
426 int *bOverflow, int bOutType,
427 int TAUT_MODE,
428 int num_components,
429 int bSecondNonTautPass,
430 int bOmitRepetitions,
431 int bUseMulipliers );
433 INCHI_SORT *pINChISort,
434 INCHI_SORT *pINChISort2,
435 INCHI_IOS_STRING *strbuf,
436 int *bOverflow,
437 int bOutType,
438 int TAUT_MODE,
439 int num_components,
440 int bSecondNonTautPass,
441 int bOmitRepetitions );
442 int str_AuxChargeRadVal( INCHI_SORT *pINChISort,
443 INCHI_IOS_STRING *strbuf,
444 int *bOverflow,
445 int bOutType,
446 int TAUT_MODE,
447 int num_components,
448 int bUseMulipliers );
449 int bin_AuxTautTrans( INCHI_SORT *pINChISort,
450 INCHI_SORT *pINChISort2,
451 AT_NUMB **pTrans_n,
452 AT_NUMB **pTrans_s,
453 int bOutType,
454 int num_components );
456 AT_NUMB *nTrans_n,
457 AT_NUMB *nTrans_s,
458 INCHI_IOS_STRING *strbuf,
459 int *bOverflow,
460 int TAUT_MODE,
461 int num_components );
462
464
465#ifndef COMPILE_ALL_CPP
466#ifdef __cplusplus
467}
468#endif
469#endif
470
471
472
473#endif /* _ICHIMAKE_H_ */
int MakeIsoHString(int num_iso_H[], INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:1847
int MakeDecNumber(char *szString, int nStringLen, const char *szLeadingDelim, int nValue)
Definition ichiprt2.c:2225
int str_AuxTautTrans(CANON_GLOBALS *pCG, AT_NUMB *nTrans_n, AT_NUMB *nTrans_s, INCHI_IOS_STRING *strbuf, int *bOverflow, int TAUT_MODE, int num_components)
Definition ichiprt3.c:4184
int EqlOrigInfo(INChI_Aux *a1, INChI_Aux *a2)
Definition ichiprt2.c:387
int MakeCtStringNew(CANON_GLOBALS *pCG, AT_NUMB *LinearCT, int nLenCT, int bAddDelim, S_CHAR *nNum_H, int num_atoms, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:551
int str_IsoSp2(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bSecondNonTautPass, int bOmitRepetitions, int bUseMulipliers)
Definition ichiprt3.c:1479
const char * EquString(int EquVal)
Definition ichiprt1.c:564
int str_AuxNumb(CANON_GLOBALS *pCG, INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bSecondNonTautPass, int bOmitRepetitions)
Definition ichiprt3.c:3818
int MakeCRVString(ORIG_INFO *OrigInfo, int nLenCT, int bAddDelim, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:1308
int str_AuxChargeRadVal(INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bUseMulipliers)
Definition ichiprt3.c:4013
int MakeCtString(CANON_GLOBALS *pCG, AT_NUMB *LinearCT, int nLenCT, int bAddDelim, S_CHAR *nNum_H, int num_atoms, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:1069
int MakeStereoString(AT_NUMB *at1, AT_NUMB *at2, S_CHAR *parity, int bAddDelim, int nLenCT, INCHI_IOS_STRING *buf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:1942
int bHasOrigInfo(ORIG_INFO *OrigInfo, int num_atoms)
Definition ichiprt2.c:369
int str_AuxInvSp3Numb(CANON_GLOBALS *pCG, INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bSecondNonTautPass, int bOmitRepetitions)
Definition ichiprt3.c:2584
int CompareTautNonIsoPartOfINChI(const INChI *i1, const INChI *i2)
Definition ichimake.c:316
int str_IsoSp3(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bRelRac, int bSecondNonTautPass, int bOmitRepetitions, int bUseMulipliers)
Definition ichiprt3.c:1768
int str_AuxIsoNumb(CANON_GLOBALS *pCG, INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bSecondNonTautPass, int bOmitRepetitions)
Definition ichiprt3.c:2769
int MakeCtStringOld(AT_NUMB *LinearCT, int nLenCT, int bAddDelim, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:703
int str_IsoStereoAbsInv(INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int num_components)
Definition ichiprt3.c:2058
AT_NUMB * GetDfsOrder4CT(CANON_GLOBALS *pCG, AT_NUMB *LinearCT, int nLenCT, S_CHAR *nNum_H, int num_atoms, int nCtMode)
Definition ichimake.c:2154
int MergeZzInHillFormula(INCHI_IOS_STRING *strbuf)
Definition ichiprt1.c:5428
int bin_AuxTautTrans(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, AT_NUMB **pTrans_n, AT_NUMB **pTrans_s, int bOutType, int num_components)
Definition ichiprt3.c:4091
int MakeHString(int bAddDelim, S_CHAR *LinearCT, int nLenCT, INCHI_IOS_STRING *buf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:789
const char sCompDelim[]
Definition ichiprt1.c:234
int str_Sp3(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bRelRac, int bSecondNonTautPass, int bOmitRepetitions, int bUseMulipliers)
Definition ichiprt3.c:957
int str_Sp2(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bSecondNonTautPass, int bOmitRepetitions, int bUseMulipliers)
Definition ichiprt3.c:725
int str_AuxInvSp3(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bSecondNonTautPass, int bOmitRepetitions, int bUseMulipliers)
Definition ichiprt3.c:2315
int str_IsoAtoms(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bAbcNumbers, int bSecondNonTautPass, int bOmitRepetitions, int bUseMulipliers)
Definition ichiprt3.c:1229
int MakeEquString(AT_NUMB *LinearCT, int nLenCT, int bAddDelim, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:1482
int MakeMult(int mult, const char *szTailingDelim, INCHI_IOS_STRING *buf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:431
int str_H_atoms(INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int ATOM_MODE, int TAUT_MODE, int num_components, int bUseMulipliers)
Definition ichiprt3.c:309
int str_HillFormula2(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int num_components, int bUseMulipliers)
Definition ichiprt3.c:137
int str_AuxInvIsoSp3Numb(CANON_GLOBALS *pCG, INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bSecondNonTautPass, int bOmitRepetitions)
Definition ichiprt3.c:3575
int str_Connections(CANON_GLOBALS *pCG, INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int ATOM_MODE, int num_components, int bUseMulipliers)
Definition ichiprt3.c:224
int FillOutINChI(INChI *pINChI, INChI_Aux *pINChI_Aux, int num_atoms, int num_at_tg, int num_removed_H, sp_ATOM *at, inp_ATOM *norm_at, CANON_STAT *pCS, CANON_GLOBALS *pCG, int bTautomeric, INCHI_MODE nUserMode, char *pStrErrStruct, int bNoWarnings)
Definition ichimak2.c:1071
int MakeIsoTautString(INChI_IsotopicTGroup *IsotopicTGroup, int nNumberOfIsotopicTGroups, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:1726
int str_AuxEqu(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bSecondNonTautPass, int bOmitRepetitions, int bUseMulipliers)
Definition ichiprt3.c:2106
int str_AuxInvIsoSp3(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bSecondNonTautPass, int bOmitRepetitions, int bUseMulipliers)
Definition ichiprt3.c:3213
int str_StereoAbsInv(INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int num_components)
Definition ichiprt3.c:1191
int str_HillFormula(INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int num_components, int bUseMulipliers)
Definition ichiprt3.c:60
int str_AuxTgroupEqu(INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bUseMulipliers)
Definition ichiprt3.c:3953
int MakeHillFormulaString(char *szHillFormula, INCHI_IOS_STRING *strbuf, int *bOverflow)
Definition ichimak2.c:121
int MakeIsoAtomString(INChI_IsotopicAtom *IsotopicAtom, int nNumberOfIsotopicAtoms, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:1568
int str_FixedH_atoms(INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int ATOM_MODE, int num_components, int bUseMulipliers)
Definition ichiprt3.c:618
int MakeTautString(AT_NUMB *LinearCT, int nLenCT, int bAddDelim, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:1111
int str_AuxIsoTgroupEqu(INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bOmitRepetitions, int bUseMulipliers)
Definition ichiprt3.c:4233
int MakeDelim(const char *szTailingDelim, INCHI_IOS_STRING *buf, int *bOverflow)
Definition ichiprt2.c:476
int str_Charge2(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int num_components, int bSecondNonTautPass, int bOmitRepetitions, int bUseMulipliers)
Definition ichiprt3.c:427
int MakeAbcNumber(char *szString, int nStringLen, const char *szLeadingDelim, int nValue)
Definition ichiprt2.c:2066
int str_AuxIsoEqu(INCHI_SORT *pINChISort, INCHI_SORT *pINChISort2, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int TAUT_MODE, int num_components, int bSecondNonTautPass, int bOmitRepetitions, int bUseMulipliers)
Definition ichiprt3.c:2962
int MakeEqStr(const char *szTailingDelim, int mult, INCHI_IOS_STRING *buf, int *bOverflow)
Definition ichiprt2.c:506
#define nNum_H(ICOMPONENT)
unsigned short AT_NUMB
Definition ichisize.h:45
unsigned long INCHI_MODE
Definition ichisize.h:60
signed char S_CHAR
Definition inchi_api.h:113
Definition extr_ct.h:110
Definition ichicant.h:338
Definition ichicant.h:204
Definition ichi.h:267
Definition ichi.h:95
Definition ichi.h:111
Definition ichi.h:209
Definition ichi.h:305
Definition inpdef.h:110
Definition ichi.h:261
Definition mode.h:1016