2
* International Union of Pure and Applied Chemistry (IUPAC)
3
* International Chemical Identifier (InChI)
5
* Software version 1.00
10
#ifndef __INCHINORM_H__
11
#define __INCHINORM_H__
22
/* main normalization procedure */
23
int mark_alt_bonds_and_taut_groups ( inp_ATOM *at, inp_ATOM *at_fixed_bonds_out, int num_atoms,
24
T_GROUP_INFO *t_group_info, INCHI_MODE *inpbTautFlags, INCHI_MODE *inpbTautFlagsDone );
26
int MarkTautomerGroups( inp_ATOM *at, int num_atoms, T_GROUP_INFO *t_group_info, C_GROUP_INFO *c_group_info,
27
struct BalancedNetworkStructure *pBNS, struct BalancedNetworkData *pBD);
28
int MarkChargeGroups ( inp_ATOM *at, int num_atoms, C_GROUP_INFO *c_group_info, T_GROUP_INFO *t_group_info,
29
struct BalancedNetworkStructure *pBNS, struct BalancedNetworkData *pBD );
30
int MarkSaltChargeGroups ( inp_ATOM *at, int num_atoms, S_GROUP_INFO *s_group_info,
31
T_GROUP_INFO *t_group_info, C_GROUP_INFO *c_group_info,
32
struct BalancedNetworkStructure *pBNS, struct BalancedNetworkData *pBD );
33
int MarkSaltChargeGroups2 ( inp_ATOM *at, int num_atoms, S_GROUP_INFO *s_group_info,
34
T_GROUP_INFO *t_group_info, C_GROUP_INFO *c_group_info,
35
struct BalancedNetworkStructure *pBNS, struct BalancedNetworkData *pBD );
36
int MergeSaltTautGroups( inp_ATOM *at, int num_atoms, S_GROUP_INFO *s_group_info,
37
T_GROUP_INFO *t_group_info, C_GROUP_INFO *c_group_info,
38
struct BalancedNetworkStructure *pBNS );
39
int MakeIsotopicHGroup( inp_ATOM *at, int num_atoms, S_GROUP_INFO *s_group_info,
40
T_GROUP_INFO *t_group_info );
42
int remove_terminal_HDT( int num_atoms, inp_ATOM *at );
43
int RemoveExcessiveImplicitH( int num_atoms, int num_removed_H, inp_ATOM *at );
44
int add_DT_to_num_H( int num_atoms, inp_ATOM *at );
45
int MarkRingSystemsInp( inp_ATOM *at, int num_atoms );
46
int free_t_group_info( T_GROUP_INFO *t_group_info );
47
int make_a_copy_of_t_group_info( T_GROUP_INFO *t_group_info, T_GROUP_INFO *t_group_info_orig );
48
int set_tautomer_iso_sort_keys( T_GROUP_INFO *t_group_info );
49
int CountTautomerGroups( sp_ATOM *at, int num_atoms, T_GROUP_INFO *t_group_info );
50
int SortTautomerGroupsAndEndpoints( T_GROUP_INFO *t_group_info, int num_atoms, int num_at_tg, AT_RANK *nRank );
51
int FillIsotopicAtLinearCT( int num_atoms, sp_ATOM* at, const AT_RANK *nAtomNumber,
52
AT_ISOTOPIC *LinearCTIsotopic, int nMaxLenLinearCTIsotopic, int *pnLenLinearCTIsotopic );
54
int FillTautLinearCT2( int num_atoms, int num_at_tg, int bIsoTaut,
55
const AT_RANK *nRank, const AT_RANK *nAtomNumber, const AT_RANK *nSymmRank,
56
const AT_RANK *nRankIso, const AT_RANK *nAtomNumberIso, const AT_RANK *nSymmRankIso,
57
AT_TAUTOMER *LinearCTTautomer, int nMaxLenLinearCTTautomer, int *pnLenLinearCTTautomer,
58
AT_ISO_TGROUP *LinearCTIsotopicTautomer, int nMaxLenLinearCTIsotopicTautomer, int *pnLenLinearCTIsotopicTautomer,
59
T_GROUP_INFO *t_group_info );
67
#endif /* __INCHINORM_H__ */