InChI
 
Loading...
Searching...
No Matches
ichicano.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 _INCHICANO_H_
43#define _INCHICANO_H_
44
45
46#include "ichicant.h"
47
48#ifndef COMPILE_ALL_CPP
49#ifdef __cplusplus
50extern "C" {
51#endif
52#endif
53
54
55 int GetCanonLengths( int num_at,
56 sp_ATOM* at,
57 ATOM_SIZES *s,
58 T_GROUP_INFO *t_group_info );
59 int AllocateCS( CANON_STAT *pCS,
60 int num_at,
61 int num_at_tg,
62 int nLenCT,
63 int nLenCTAtOnly,
64 int nLenLinearCTStereoDble,
65 int nLenLinearCTIsotopicStereoDble,
66 int nLenLinearCTStereoCarb,
67 int nLenLinearCTIsotopicStereoCarb,
68 int nLenLinearCTTautomer,
69 int nLenLinearCTIsotopicTautomer,
70 int nLenIsotopic,
71 INCHI_MODE nMode,
72 BCN *pBCN );
73 int DeAllocateCS( CANON_STAT *pCS );
74 void DeAllocBCN( BCN *pBCN );
75
76 struct tagINCHI_CLOCK;
77
78 int Canon_INChI( struct tagINCHI_CLOCK *ic,
79 int num_atoms,
80 int num_at_tg,
81 sp_ATOM* at,
82 CANON_STAT* pCS,
83 CANON_GLOBALS *pCG,
84 INCHI_MODE nMode,
85 int bTautFtcn );
86 int GetBaseCanonRanking( struct tagINCHI_CLOCK *ic,
87 int num_atoms,
88 int num_at_tg,
89 sp_ATOM* at[],
90 T_GROUP_INFO *t_group_info,
91 ATOM_SIZES s[],
92 BCN *pBCN,
93 struct tagInchiTime *ulTimeOutTime,
94 CANON_GLOBALS *pCG,
95 int bFixIsoFixedH,
96 int LargeMolecules );
98 sp_ATOM* at,
99 AT_RANK *nSymmRank );
100 int UpdateFullLinearCT( int num_atoms,
101 int num_at_tg,
102 sp_ATOM* at,
103 AT_RANK *nRank,
104 AT_RANK *nAtomNumber,
105 CANON_STAT* pCS,
106 CANON_GLOBALS *pCG,
107 int bFirstTime );
109 int num_at_tg,
110 AT_RANK *nSymmRank,
111 AT_RANK *nCurrRank,
112 AT_RANK *nTempRank,
113 AT_NUMB *nAtomNumber,
114 int *bChanged );
115#ifndef COMPILE_ALL_CPP
116#ifdef __cplusplus
117}
118#endif
119#endif
120
121
122#endif /* _INCHICANO_H_ */
int GetCanonLengths(int num_at, sp_ATOM *at, ATOM_SIZES *s, T_GROUP_INFO *t_group_info)
Definition ichicano.c:418
int Canon_INChI(struct tagINCHI_CLOCK *ic, int num_atoms, int num_at_tg, sp_ATOM *at, CANON_STAT *pCS, CANON_GLOBALS *pCG, INCHI_MODE nMode, int bTautFtcn)
Definition ichicano.c:2726
int UpdateFullLinearCT(int num_atoms, int num_at_tg, sp_ATOM *at, AT_RANK *nRank, AT_RANK *nAtomNumber, CANON_STAT *pCS, CANON_GLOBALS *pCG, int bFirstTime)
Definition ichicano.c:1050
int DeAllocateCS(CANON_STAT *pCS)
Definition ichicano.c:491
int AllocateCS(CANON_STAT *pCS, int num_at, int num_at_tg, int nLenCT, int nLenCTAtOnly, int nLenLinearCTStereoDble, int nLenLinearCTIsotopicStereoDble, int nLenLinearCTStereoCarb, int nLenLinearCTIsotopicStereoCarb, int nLenLinearCTTautomer, int nLenLinearCTIsotopicTautomer, int nLenIsotopic, INCHI_MODE nMode, BCN *pBCN)
Definition ichicano.c:575
int bCanonIsFinerThanEquitablePartition(int num_atoms, sp_ATOM *at, AT_RANK *nSymmRank)
void DeAllocBCN(BCN *pBCN)
Definition ichican2.c:4960
int FixCanonEquivalenceInfo(CANON_GLOBALS *pCG, int num_at_tg, AT_RANK *nSymmRank, AT_RANK *nCurrRank, AT_RANK *nTempRank, AT_NUMB *nAtomNumber, int *bChanged)
Definition ichicano.c:1278
int GetBaseCanonRanking(struct tagINCHI_CLOCK *ic, int num_atoms, int num_at_tg, sp_ATOM *at[], T_GROUP_INFO *t_group_info, ATOM_SIZES s[], BCN *pBCN, struct tagInchiTime *ulTimeOutTime, CANON_GLOBALS *pCG, int bFixIsoFixedH, int LargeMolecules)
Definition ichican2.c:5105
unsigned short AT_NUMB
Definition ichisize.h:45
unsigned short AT_RANK
Definition ichisize.h:46
unsigned long INCHI_MODE
Definition ichisize.h:60
Definition ichitaut.h:331
Definition extr_ct.h:110
Definition ichicant.h:189
Definition ichicant.h:338
Definition ichicant.h:204
Definition ichitime.h:85
Definition ichitime.h:69
Definition ichitaut.h:222