17#define ITEM_DELIMETER ","
19#define COMMA_EXTRA_SPACE ","
20#define LEN_EXTRA_SPACE 0
25#define CT_MODE_NO_ORPHANS 1
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
35#define HAS_T(S) (S->pINChI[TAUT_YES] && S->pINChI[TAUT_YES]->nNumberOfAtoms)
37#define HAS_N(S) (S->pINChI[TAUT_NON] && S->pINChI[TAUT_NON]->nNumberOfAtoms)
40#define HAS_TT(S) (S->pINChI[TAUT_YES] && S->pINChI[TAUT_YES]->nNumberOfAtoms && S->pINChI[TAUT_YES]->lenTautomer>0)
42#define HAS_TN(S) (S->pINChI[TAUT_YES] && S->pINChI[TAUT_YES]->nNumberOfAtoms && !S->pINChI[TAUT_YES]->lenTautomer)
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)
55#define iiSTEREO 0x0001
56#define iiSTEREO_INV 0x0002
65#define iitNONTAUT 0x0020
71#define iiEq2NONTAUT 0x0040
72#define iiEq2ISO 0x0080
73#define iiEq2INV 0x0100
81#ifndef COMPILE_ALL_CPP
113 const char *szLeadingDelim,
117 const char *szLeadingDelim,
156 int nNumberOfIsotopicAtoms,
161 int nNumberOfIsotopicTGroups,
167 int nCtMode,
int *bOverflow );
178 const char* conf_stereo_string,
180 int nof_stereo_groups,
197 const char *szTailingDelim,
201 int MakeDelim(
const char *szTailingDelim,
204 int MakeEqStr(
const char *szTailingDelim,
225 int bUseMulipliers );
232 int bUseMulipliers );
240 int bUseMulipliers );
248 int bUseMulipliers );
255 int bSecondNonTautPass,
256 int bOmitRepetitions,
257 int bUseMulipliers );
265 int bSecondNonTautPass,
266 int bOmitRepetitions,
267 int bUseMulipliers );
272 int bOutType,
int TAUT_MODE,
274 int bSecondNonTautPass,
275 int bOmitRepetitions,
276 int bUseMulipliers );
285 int bSecondNonTautPass,
286 int bOmitRepetitions,
287 int bUseMulipliers );
296 int bSecondNonTautPass,
297 int bOmitRepetitions,
298 int bUseMulipliers );
303 int num_components );
308 int num_components );
317 int bSecondNonTautPass,
318 int bOmitRepetitions,
319 int bUseMulipliers );
326 int bUseMulipliers );
335 int bSecondNonTautPass,
336 int bOmitRepetitions );
344 int bSecondNonTautPass,
345 int bOmitRepetitions,
346 int bUseMulipliers );
353 int bUseMulipliers );
360 int bOmitRepetitions,
361 int bUseMulipliers );
369 int bSecondNonTautPass,
370 int bOmitRepetitions,
371 int bUseMulipliers );
380 int bSecondNonTautPass,
381 int bOmitRepetitions );
390 int bSecondNonTautPass,
391 int bOmitRepetitions );
399 int bSecondNonTautPass,
400 int bOmitRepetitions,
401 int bUseMulipliers );
405 int *bOverflow,
int bOutType,
408 int bSecondNonTautPass,
409 int bOmitRepetitions,
410 int bUseMulipliers );
419 int bSecondNonTautPass,
420 int bOmitRepetitions );
427 int bUseMulipliers );
433 int num_components );
440 int num_components );
444#ifndef COMPILE_ALL_CPP
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 ichicant.h:303
Definition ichicant.h:169
Structure describing original atom data.
Definition inpdef.h:398