1 /* 2 * International Chemical Identifier (InChI) 3 * Version 1 4 * Software version 1.04 5 * September 9, 2011 6 * 7 * The InChI library and programs are free software developed under the 8 * auspices of the International Union of Pure and Applied Chemistry (IUPAC). 9 * Originally developed at NIST. Modifications and additions by IUPAC 10 * and the InChI Trust. 11 * 12 * IUPAC/InChI-Trust Licence for the International Chemical Identifier (InChI) 13 * Software version 1.0. 14 * Copyright (C) IUPAC and InChI Trust Limited 15 * 16 * This library is free software; you can redistribute it and/or modify it under the 17 * terms of the IUPAC/InChI Trust Licence for the International Chemical Identifier 18 * (InChI) Software version 1.0; either version 1.0 of the License, or 19 * (at your option) any later version. 20 * 21 * This library is distributed in the hope that it will be useful, 22 * but WITHOUT ANY WARRANTY; without even the implied warranty of 23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 24 * See the IUPAC/InChI Trust Licence for the International Chemical Identifier (InChI) 25 * Software version 1.0 for more details. 26 * 27 * You should have received a copy of the IUPAC/InChI Trust Licence for the 28 * International Chemical Identifier (InChI) Software version 1.0 along with 29 * this library; if not, write to: 30 * 31 * The InChI Trust 32 * c/o FIZ CHEMIE Berlin 33 * Franklinstrasse 11 34 * 10587 Berlin 35 * GERMANY 36 * 37 */ 38 39 40 #ifndef __INCHIRING_H__ 41 #define __INCHIRING_H__ 42 #define QUEUE_QINT 1 43 typedef AT_RANK qInt; /* queue optimization: known type */ 44 45 #if ( QUEUE_QINT == 1 ) 46 #define QINT_TYPE qInt 47 #else 48 #define QINT_TYPE void 49 #endif 50 51 typedef struct tagQieue { 52 QINT_TYPE *Val; 53 int nTotLength; 54 int nFirst; /* element to remove if nLength > 0 */ 55 int nLength; /* (nFirst + nLength) is next free position */ 56 #if ( QUEUE_QINT != 1 ) 57 int nSize; 58 #endif 59 }QUEUE; 60 61 #ifndef COMPILE_ALL_CPP 62 #ifdef __cplusplus 63 extern "C" { 64 #endif 65 #endif 66 67 QUEUE *QueueCreate( int nTotLength, int nSize ); 68 QUEUE *QueueDelete( QUEUE *q ); 69 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 ); 70 int is_atom_in_3memb_ring( inp_ATOM* atom, int at_no ); 71 72 #ifndef COMPILE_ALL_CPP 73 #ifdef __cplusplus 74 } 75 #endif 76 #endif 77 78 79 #endif /* __INCHIRING_H__ */ 80