InChI
 
Loading...
Searching...
No Matches
ichiring.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 _INCHIRING_H_
8#define _INCHIRING_H_
9
10#include "extr_ct.h"
11
12#define QUEUE_QINT 1
13typedef AT_RANK qInt; /* queue optimization: known type */
14
15#if ( QUEUE_QINT == 1 )
16#define QINT_TYPE qInt
17#else
18#define QINT_TYPE void
19#endif
20
21typedef struct tagQieue {
24 int nFirst; /* element to remove if nLength > 0 */
25 int nLength; /* (nFirst + nLength) is next free position */
26#if ( QUEUE_QINT != 1 )
27 int nSize;
28#endif
30
31#ifndef COMPILE_ALL_CPP
32#ifdef __cplusplus
33extern "C" {
34#endif
35#endif
36
37 QUEUE *QueueCreate( int nTotLength, int nSize );
38 QUEUE *QueueDelete( QUEUE *q );
39 int is_bond_in_Nmax_memb_ring( inp_ATOM* atom, int at_no, int neigh_ord, QUEUE *q, AT_RANK *nAtomLevel, S_CHAR *cSource, AT_RANK nMaxRingSize );
40 int is_atom_in_3memb_ring( inp_ATOM* atom, int at_no );
41
42#ifndef COMPILE_ALL_CPP
43#ifdef __cplusplus
44}
45#endif
46#endif
47
48
49#endif /* _INCHIRING_H_ */
int is_atom_in_3memb_ring(inp_ATOM *atom, int at_no)
Definition ichiring.c:385
QUEUE * QueueCreate(int nTotLength, int nSize)
Definition ichiring.c:32
QUEUE * QueueDelete(QUEUE *q)
Definition ichiring.c:168
#define QINT_TYPE
Definition ichiring.h:16
AT_RANK qInt
Definition ichiring.h:13
struct tagQieue QUEUE
int is_bond_in_Nmax_memb_ring(inp_ATOM *atom, int at_no, int neigh_ord, QUEUE *q, AT_RANK *nAtomLevel, S_CHAR *cSource, AT_RANK nMaxRingSize)
Definition ichiring.c:327
unsigned short AT_RANK
Definition ichisize.h:11
signed char S_CHAR
Definition inchi_api.h:78
Structure describing an input atom.
Definition inpdef.h:107
Definition ichiring.h:21
int nLength
Definition ichiring.h:25
int nFirst
Definition ichiring.h:24
QINT_TYPE * Val
Definition ichiring.h:22
int nTotLength
Definition ichiring.h:23