InChI
 
Loading...
Searching...
No Matches
ichimake.h
Go to the documentation of this file.
1/*
2 * SPDX-License-Identifier: MIT
3 * Copyright (c) 2024 IUPAC and InChI Trust
4 */
5
6
7#ifndef _ICHIMAKE_H_
8#define _ICHIMAKE_H_
9
10#include "ichisize.h"
11#include "ichi.h"
12#include "extr_ct.h"
13#include "ichicant.h"
14
15/***********************************************************************/
16/* replace all ' ' delimiters with ',' */
17#define ITEM_DELIMETER ","
18#define EXTRA_SPACE ""
19#define COMMA_EXTRA_SPACE ","
20#define LEN_EXTRA_SPACE 0
21
22/**********************************************************************************************/
23/* nCtMode for output INChI */
24
25#define CT_MODE_NO_ORPHANS 1 /* no orphans, that CT should have only atoms with neighbors */
26#define CT_MODE_ABC_NUMBERS 2
27#define CT_MODE_ATOM_COUNTS 4
28#define CT_MODE_PREDECESSORS 8
29#define CT_MODE_EQL_H_TOGETHER 16
30#define CT_MODE_ABC_NUM_CLOSURES 32 /* in CT_MODE_ABC_NUMBERS output AB1AC2AB instead of AB-AC-A-B */
31
32
33/*************** Macros for retrieving requested INChI and INChI_Aux *****************************/
34/* S->pINChI[TAUT_YES] has info: */
35#define HAS_T(S) (S->pINChI[TAUT_YES] && S->pINChI[TAUT_YES]->nNumberOfAtoms)
36/* S->pINChI[TAUT_NON] has info: */
37#define HAS_N(S) (S->pINChI[TAUT_NON] && S->pINChI[TAUT_NON]->nNumberOfAtoms)
38
39/* S->pINChI[TAUT_YES] has tautomeric info: */
40#define HAS_TT(S) (S->pINChI[TAUT_YES] && S->pINChI[TAUT_YES]->nNumberOfAtoms && S->pINChI[TAUT_YES]->lenTautomer>0)
41/* S->pINChI[TAUT_YES] has non-taitomeric info: */
42#define HAS_TN(S) (S->pINChI[TAUT_YES] && S->pINChI[TAUT_YES]->nNumberOfAtoms && !S->pINChI[TAUT_YES]->lenTautomer)
43/* S->pINChI[TAUT_NON] has non-tautomeric info: */
44#define HAS_NN(S) (S->pINChI[TAUT_NON] && S->pINChI[TAUT_NON]->nNumberOfAtoms && !S->pINChI[TAUT_NON]->lenTautomer)
45#define GET_II(M,S) ((M==OUT_N1)? (HAS_TN(S)? TAUT_YES : HAS_NN(S)? TAUT_NON : -1): \
46 (M==OUT_T1 || M==OUT_TN)? (HAS_T(S) ? TAUT_YES : HAS_N(S) ? TAUT_NON : -1): \
47 (M==OUT_NN)? (HAS_NN(S)? TAUT_NON : HAS_TN(S)? TAUT_YES : -1): \
48 (M==OUT_NT)? ((HAS_TT(S) && HAS_NN(S)) ? TAUT_NON : -1) : -1)
49
50/*********************************/
51/* Equivalence flags definitions */
52/*********************************/
53
54/* What is equal (ii = INChI_ITEM) */
55#define iiSTEREO 0x0001 /* stereo (sp2 or sp3) */
56#define iiSTEREO_INV 0x0002 /* inverted stereo (sp3) */
57#define iiNUMB 0x0004 /* numbering or inverted stereo numbering */
58#define iiEQU 0x0008 /* equivalence info */
59/* derived:
60 (iiSTEREO_INV | iiNUMB) = numbering of inverted stereo
61*/
62
63/* Additional info to what is equal (INCHI_ITEM_TYPE = iit) */
64#define iitISO 0x0010 /* Isotopic */
65#define iitNONTAUT 0x0020 /* Non-tautomeric */
66/* derived:
67 (iitISO | iitNONTAUT) = isotopic non-tautomeric
68*/
69
70/* Where is the equivalent item located (INChI_ITEM_EQUAL_TO = iiEq2) */
71#define iiEq2NONTAUT 0x0040 /* non-tautomeric */
72#define iiEq2ISO 0x0080 /* isotopic */
73#define iiEq2INV 0x0100 /* equal to inverted (stereo sp3) or to numbering of inverted stereo */
74
75#define iiEmpty 0x0200 /* item is empty while in the preceding layer the item is not empty */
76
77/*********************** Printing strings external declarations *******************************/
78
79extern const char sCompDelim[];
80
81#ifndef COMPILE_ALL_CPP
82#ifdef __cplusplus
83extern "C" {
84#endif
85#endif
86
87/**********************************************************************************************/
89 const INChI *i2 );
90const char *EquString( int EquVal );
91 int FillOutINChI( INChI *pINChI,
92 INChI_Aux *pINChI_Aux,
93 int num_atoms,
94 int num_at_tg,
95 int num_removed_H,
96 sp_ATOM *at,
97 inp_ATOM *norm_at,
98 CANON_STAT *pCS,
99 CANON_GLOBALS *pCG,
100 int bTautomeric,
101 INCHI_MODE nUserMode,
102 char *pStrErrStruct,
103 int bNoWarnings );
104 int MakeHillFormulaString( char *szHillFormula,
105 INCHI_IOS_STRING *strbuf,
106 int *bOverflow );
107 int bHasOrigInfo( ORIG_INFO *OrigInfo,
108 int num_atoms );
109 int EqlOrigInfo( INChI_Aux *a1,
110 INChI_Aux *a2 );
111 int MakeAbcNumber( char *szString,
112 int nStringLen,
113 const char *szLeadingDelim,
114 int nValue );
115 int MakeDecNumber( char *szString,
116 int nStringLen,
117 const char *szLeadingDelim,
118 int nValue );
120 AT_NUMB *LinearCT,
121 int nLenCT,
122 int bAddDelim,
123 S_CHAR *nNum_H,
124 int num_atoms,
125 INCHI_IOS_STRING *strbuf,
126 int nCtMode,
127 int *bOverflow );
128 int MakeCtStringOld( AT_NUMB *LinearCT,
129 int nLenCT,
130 int bAddDelim,
131 INCHI_IOS_STRING *strbuf,
132 int nCtMode,
133 int *bOverflow );
134 int MakeCtString( CANON_GLOBALS *pCG,
135 AT_NUMB *LinearCT,
136 int nLenCT,
137 int bAddDelim,
138 S_CHAR *nNum_H, /* not used here */
139 int num_atoms, /* not used here */
140 INCHI_IOS_STRING *strbuf,
141 int nCtMode,
142 int *bOverflow );
143 int MakeTautString( AT_NUMB *LinearCT,
144 int nLenCT,
145 int bAddDelim,
146 INCHI_IOS_STRING *strbuf,
147 int nCtMode,
148 int *bOverflow );
149 int MakeEquString( AT_NUMB *LinearCT,
150 int nLenCT,
151 int bAddDelim,
152 INCHI_IOS_STRING *strbuf,
153 int nCtMode,
154 int *bOverflow );
155 int MakeIsoAtomString( INChI_IsotopicAtom *IsotopicAtom,
156 int nNumberOfIsotopicAtoms,
157 INCHI_IOS_STRING *strbuf,
158 int nCtMode,
159 int *bOverflow );
160 int MakeIsoTautString( INChI_IsotopicTGroup *IsotopicTGroup,
161 int nNumberOfIsotopicTGroups,
162 INCHI_IOS_STRING *strbuf,
163 int nCtMode,
164 int *bOverflow );
165 int MakeIsoHString( int num_iso_H[],
166 INCHI_IOS_STRING *strbuf,
167 int nCtMode, int *bOverflow );
168 int MakeStereoString( AT_NUMB *at1,
169 AT_NUMB *at2,
170 S_CHAR *parity,
171 int bAddDelim,
172 int nLenCT,
173 INCHI_IOS_STRING *buf,
174 int nCtMode,
175 int *bOverflow );
177 INCHI_IOS_STRING *strbuf,
178 const char* conf_stereo_string,
179 int **enh_stereo,
180 int nof_stereo_groups,
181 int nCtMode,
182 int *bOverflow );
183 int MakeSlayerString( ORIG_ATOM_DATA *orig_inp_data,
184 INCHI_SORT *pINChISort,
185 INCHI_IOS_STRING *strbuf,
186 int bOutType,
187 int num_components,
188 int nCtMode,
189 int *bOverflow );
190 int MakeCRVString( ORIG_INFO *OrigInfo,
191 int nLenCT,
192 int bAddDelim,
193 INCHI_IOS_STRING *strbuf,
194 int nCtMode,
195 int *bOverflow );
196 int MakeMult( int mult,
197 const char *szTailingDelim,
198 INCHI_IOS_STRING *buf,
199 int nCtMode,
200 int *bOverflow );
201 int MakeDelim( const char *szTailingDelim,
202 INCHI_IOS_STRING *buf,
203 int *bOverflow );
204 int MakeEqStr( const char *szTailingDelim,
205 int mult,
206 INCHI_IOS_STRING *buf,
207 int *bOverflow );
208 int MakeHString( int bAddDelim,
209 S_CHAR *LinearCT,
210 int nLenCT,
211 INCHI_IOS_STRING *buf,
212 int nCtMode,
213 int *bOverflow );
215 AT_NUMB *LinearCT,
216 int nLenCT,
217 S_CHAR *nNum_H,
218 int num_atoms,
219 int nCtMode );
220 int str_HillFormula( INCHI_SORT *pINChISort,
221 INCHI_IOS_STRING *strbuf,
222 int *bOverflow,
223 int bOutType,
224 int num_components,
225 int bUseMulipliers );
226 int str_HillFormula2( INCHI_SORT *pINChISort /* non-taut */,
227 INCHI_SORT *pINChISort2 /* taut */,
228 INCHI_IOS_STRING *strbuf,
229 int *bOverflow,
230 int bOutType,
231 int num_components,
232 int bUseMulipliers );
234 INCHI_SORT *pINChISort,
235 INCHI_IOS_STRING *strbuf,
236 int *bOverflow,
237 int bOutType,
238 int ATOM_MODE,
239 int num_components,
240 int bUseMulipliers );
241 int str_H_atoms( INCHI_SORT *pINChISort,
242 INCHI_IOS_STRING *strbuf,
243 int *bOverflow,
244 int bOutType,
245 int ATOM_MODE,
246 int TAUT_MODE,
247 int num_components,
248 int bUseMulipliers );
249 int str_Charge2( INCHI_SORT *pINChISort,
250 INCHI_SORT *pINChISort2,
251 INCHI_IOS_STRING *strbuf,
252 int *bOverflow,
253 int bOutType,
254 int num_components,
255 int bSecondNonTautPass,
256 int bOmitRepetitions,
257 int bUseMulipliers );
258 int str_Sp2( INCHI_SORT *pINChISort,
259 INCHI_SORT *pINChISort2,
260 INCHI_IOS_STRING *strbuf,
261 int *bOverflow,
262 int bOutType,
263 int TAUT_MODE,
264 int num_components,
265 int bSecondNonTautPass,
266 int bOmitRepetitions,
267 int bUseMulipliers );
268 int str_IsoSp2( INCHI_SORT *pINChISort,
269 INCHI_SORT *pINChISort2,
270 INCHI_IOS_STRING *strbuf,
271 int *bOverflow,
272 int bOutType, int TAUT_MODE,
273 int num_components,
274 int bSecondNonTautPass,
275 int bOmitRepetitions,
276 int bUseMulipliers );
277 int str_Sp3( INCHI_SORT *pINChISort,
278 INCHI_SORT *pINChISort2,
279 INCHI_IOS_STRING *strbuf,
280 int *bOverflow,
281 int bOutType,
282 int TAUT_MODE,
283 int num_components,
284 int bRelRac,
285 int bSecondNonTautPass,
286 int bOmitRepetitions,
287 int bUseMulipliers );
288 int str_IsoSp3( INCHI_SORT *pINChISort,
289 INCHI_SORT *pINChISort2,
290 INCHI_IOS_STRING *strbuf,
291 int *bOverflow,
292 int bOutType,
293 int TAUT_MODE,
294 int num_components,
295 int bRelRac,
296 int bSecondNonTautPass,
297 int bOmitRepetitions,
298 int bUseMulipliers );
299 int str_StereoAbsInv( INCHI_SORT *pINChISort,
300 INCHI_IOS_STRING *strbuf,
301 int *bOverflow,
302 int bOutType,
303 int num_components );
304 int str_IsoStereoAbsInv( INCHI_SORT *pINChISort,
305 INCHI_IOS_STRING *strbuf,
306 int *bOverflow,
307 int bOutType,
308 int num_components );
309 int str_IsoAtoms( 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 bAbcNumbers,
317 int bSecondNonTautPass,
318 int bOmitRepetitions,
319 int bUseMulipliers );
320 int str_FixedH_atoms( INCHI_SORT *pINChISort,
321 INCHI_IOS_STRING *strbuf,
322 int *bOverflow,
323 int bOutType,
324 int ATOM_MODE,
325 int num_components,
326 int bUseMulipliers );
327 int str_AuxNumb( CANON_GLOBALS *pCG,
328 INCHI_SORT *pINChISort,
329 INCHI_SORT *pINChISort2,
330 INCHI_IOS_STRING *strbuf,
331 int *bOverflow,
332 int bOutType,
333 int TAUT_MODE,
334 int num_components,
335 int bSecondNonTautPass,
336 int bOmitRepetitions );
337 int str_AuxEqu( INCHI_SORT *pINChISort,
338 INCHI_SORT *pINChISort2,
339 INCHI_IOS_STRING *strbuf,
340 int *bOverflow,
341 int bOutType,
342 int TAUT_MODE,
343 int num_components,
344 int bSecondNonTautPass,
345 int bOmitRepetitions,
346 int bUseMulipliers );
347 int str_AuxTgroupEqu( INCHI_SORT *pINChISort,
348 INCHI_IOS_STRING *strbuf,
349 int *bOverflow,
350 int bOutType,
351 int TAUT_MODE,
352 int num_components,
353 int bUseMulipliers );
354 int str_AuxIsoTgroupEqu( INCHI_SORT *pINChISort,
355 INCHI_IOS_STRING *strbuf,
356 int *bOverflow,
357 int bOutType,
358 int TAUT_MODE,
359 int num_components,
360 int bOmitRepetitions,
361 int bUseMulipliers );
362 int str_AuxInvSp3( INCHI_SORT *pINChISort,
363 INCHI_SORT *pINChISort2,
364 INCHI_IOS_STRING *strbuf,
365 int *bOverflow,
366 int bOutType,
367 int TAUT_MODE,
368 int num_components,
369 int bSecondNonTautPass,
370 int bOmitRepetitions,
371 int bUseMulipliers );
373 INCHI_SORT *pINChISort,
374 INCHI_SORT *pINChISort2,
375 INCHI_IOS_STRING *strbuf,
376 int *bOverflow,
377 int bOutType,
378 int TAUT_MODE,
379 int num_components,
380 int bSecondNonTautPass,
381 int bOmitRepetitions );
383 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 str_AuxIsoEqu( INCHI_SORT *pINChISort,
393 INCHI_SORT *pINChISort2,
394 INCHI_IOS_STRING *strbuf,
395 int *bOverflow,
396 int bOutType,
397 int TAUT_MODE,
398 int num_components,
399 int bSecondNonTautPass,
400 int bOmitRepetitions,
401 int bUseMulipliers );
402 int str_AuxInvIsoSp3( INCHI_SORT *pINChISort,
403 INCHI_SORT *pINChISort2,
404 INCHI_IOS_STRING *strbuf,
405 int *bOverflow, int bOutType,
406 int TAUT_MODE,
407 int num_components,
408 int bSecondNonTautPass,
409 int bOmitRepetitions,
410 int bUseMulipliers );
412 INCHI_SORT *pINChISort,
413 INCHI_SORT *pINChISort2,
414 INCHI_IOS_STRING *strbuf,
415 int *bOverflow,
416 int bOutType,
417 int TAUT_MODE,
418 int num_components,
419 int bSecondNonTautPass,
420 int bOmitRepetitions );
421 int str_AuxChargeRadVal( INCHI_SORT *pINChISort,
422 INCHI_IOS_STRING *strbuf,
423 int *bOverflow,
424 int bOutType,
425 int TAUT_MODE,
426 int num_components,
427 int bUseMulipliers );
428 int bin_AuxTautTrans( INCHI_SORT *pINChISort,
429 INCHI_SORT *pINChISort2,
430 AT_NUMB **pTrans_n,
431 AT_NUMB **pTrans_s,
432 int bOutType,
433 int num_components );
435 AT_NUMB *nTrans_n,
436 AT_NUMB *nTrans_s,
437 INCHI_IOS_STRING *strbuf,
438 int *bOverflow,
439 int TAUT_MODE,
440 int num_components );
441
443
444#ifndef COMPILE_ALL_CPP
445#ifdef __cplusplus
446}
447#endif
448#endif
449
450
451
452#endif /* _ICHIMAKE_H_ */
int MakeIsoHString(int num_iso_H[], INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:1945
int MakeDecNumber(char *szString, int nStringLen, const char *szLeadingDelim, int nValue)
Definition ichiprt2.c:2585
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:4180
int EqlOrigInfo(INChI_Aux *a1, INChI_Aux *a2)
Definition ichiprt2.c:352
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:572
int MakeEnhStereoString(INChI_Aux *pAux, INCHI_IOS_STRING *strbuf, const char *conf_stereo_string, int **enh_stereo, int nof_stereo_groups, int nCtMode, int *bOverflow)
Creates the enhanced stereochemistry string for the s - layer.
Definition ichiprt2.c:2178
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:1472
const char * EquString(int EquVal)
Definition ichiprt1.c:522
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:3811
int MakeCRVString(ORIG_INFO *OrigInfo, int nLenCT, int bAddDelim, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:1329
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:4006
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:1090
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:2040
int bHasOrigInfo(ORIG_INFO *OrigInfo, int num_atoms)
Definition ichiprt2.c:334
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:2577
int CompareTautNonIsoPartOfINChI(const INChI *i1, const INChI *i2)
Definition ichimake.c:281
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:1761
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:2762
int MakeCtStringOld(AT_NUMB *LinearCT, int nLenCT, int bAddDelim, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:724
int str_IsoStereoAbsInv(INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int num_components)
Definition ichiprt3.c:2051
AT_NUMB * GetDfsOrder4CT(CANON_GLOBALS *pCG, AT_NUMB *LinearCT, int nLenCT, S_CHAR *nNum_H, int num_atoms, int nCtMode)
Definition ichimake.c:2118
int MergeZzInHillFormula(INCHI_IOS_STRING *strbuf)
Definition ichiprt1.c:5543
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:4084
int MakeHString(int bAddDelim, S_CHAR *LinearCT, int nLenCT, INCHI_IOS_STRING *buf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:810
const char sCompDelim[]
Definition ichiprt1.c:206
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)
Produce tetrahedral stereo substring of the whole structure InChI string.
Definition ichiprt3.c:945
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)
Produce double bond stereo substring of the whole structure InChI string.
Definition ichiprt3.c:701
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:2308
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:1222
int MakeEquString(AT_NUMB *LinearCT, int nLenCT, int bAddDelim, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:1580
int MakeMult(int mult, const char *szTailingDelim, INCHI_IOS_STRING *buf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:396
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:274
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:102
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:3568
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:189
int MakeSlayerString(ORIG_ATOM_DATA *orig_inp_data, INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int bOutType, int num_components, int nCtMode, int *bOverflow)
Creates the string for the s - layer based on the enhanced stereochemistry information.
Definition ichiprt2.c:2292
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:1037
int MakeIsoTautString(INChI_IsotopicTGroup *IsotopicTGroup, int nNumberOfIsotopicTGroups, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:1824
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:2099
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:3206
int str_StereoAbsInv(INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int num_components)
Output absolute stereo inversion substring of the whole structure InChI string.
Definition ichiprt3.c:1184
int str_HillFormula(INCHI_SORT *pINChISort, INCHI_IOS_STRING *strbuf, int *bOverflow, int bOutType, int num_components, int bUseMulipliers)
Definition ichiprt3.c:25
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:3946
int MakeHillFormulaString(char *szHillFormula, INCHI_IOS_STRING *strbuf, int *bOverflow)
Definition ichimak2.c:86
int MakeIsoAtomString(INChI_IsotopicAtom *IsotopicAtom, int nNumberOfIsotopicAtoms, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:1666
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:583
int MakeTautString(AT_NUMB *LinearCT, int nLenCT, int bAddDelim, INCHI_IOS_STRING *strbuf, int nCtMode, int *bOverflow)
Definition ichiprt2.c:1132
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:4229
int MakeDelim(const char *szTailingDelim, INCHI_IOS_STRING *buf, int *bOverflow)
Adds the delimiter to the string buffer if it is not empty and there is no overflow.
Definition ichiprt2.c:497
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:392
int MakeAbcNumber(char *szString, int nStringLen, const char *szLeadingDelim, int nValue)
Definition ichiprt2.c:2426
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:2955
int MakeEqStr(const char *szTailingDelim, int mult, INCHI_IOS_STRING *buf, int *bOverflow)
Definition ichiprt2.c:527
#define nNum_H(ICOMPONENT)
unsigned short AT_NUMB
Definition ichisize.h:10
unsigned long INCHI_MODE
Definition ichisize.h:25
signed char S_CHAR
Definition inchi_api.h:78
Definition extr_ct.h:75
Definition ichicant.h:303
Definition ichicant.h:169
Definition ichi.h:232
Definition ichi.h:60
Definition ichi.h:76
Definition ichi.h:174
Definition ichi.h:270
Structure describing an input atom.
Definition inpdef.h:107
Structure describing original atom data.
Definition inpdef.h:398
Definition ichi.h:226
Definition mode.h:985