46#define EL_NUMBER_H  ((U_CHAR)1) 
   47#define EL_NUMBER_B  ((U_CHAR)5) 
   48#define EL_NUMBER_C  ((U_CHAR)6) 
   49#define EL_NUMBER_N  ((U_CHAR)7) 
   50#define EL_NUMBER_O  ((U_CHAR)8) 
   51#define EL_NUMBER_F  ((U_CHAR)9) 
   52#define EL_NUMBER_SI ((U_CHAR)14) 
   53#define EL_NUMBER_P  ((U_CHAR)15) 
   54#define EL_NUMBER_S  ((U_CHAR)16) 
   55#define EL_NUMBER_CL ((U_CHAR)17) 
   56#define EL_NUMBER_GE ((U_CHAR)32) 
   57#define EL_NUMBER_AS ((U_CHAR)33) 
   58#define EL_NUMBER_SE ((U_CHAR)34) 
   59#define EL_NUMBER_BR ((U_CHAR)35) 
   60#define EL_NUMBER_SB ((U_CHAR)51) 
   61#define EL_NUMBER_TE ((U_CHAR)52) 
   62#define EL_NUMBER_I  ((U_CHAR)53) 
   63#define EL_NUMBER_PO ((U_CHAR)84) 
   64#define EL_NUMBER_AT ((U_CHAR)85) 
   66#define EL_NUMBER_ZY ((U_CHAR)119) 
   67#define EL_NUMBER_ZZ ((U_CHAR)120) 
   69#ifndef COMPILE_ALL_CPP 
  106int get_num_H(
const char *elname, 
int inp_num_H, 
S_CHAR num_iso_H[], 
int charge, 
int radical, 
int chem_bonds_valence, 
int atom_input_valence, 
int bAliased, 
int bDoNotAddH, 
int bHasMetalNeighbor);
 
  144int read_upto_delim(
char **pstring, 
char *field, 
int maxlen, 
char *delims);
 
  170char *
lrtrim(
char *p, 
int *nLen);
 
  196int mystrncpy(
char *target, 
const char *source, 
unsigned maxlen);
 
  208int inchi_memicmp(
const void *p1, 
const void *p2, 
size_t length);
 
  245long inchi_strtol(
const char *str, 
const char **p, 
int base);
 
  386int get_unusual_el_valence(
int nPeriodicNum, 
int charge, 
int radical, 
int bonds_valence, 
int num_H, 
int num_bonds);
 
  415int needed_unusual_el_valence(
int nPeriodicNum, 
int charge, 
int radical, 
int bonds_valence, 
int actual_bonds_val, 
int num_H, 
int num_bonds);
 
  588#if (KETO_ENOL_TAUT == 1) 
  620#ifndef COMPILE_ALL_CPP 
  626#ifndef INCHI_BUILD_PLATFORM 
  631#define INCHI_BUILD_PLATFORM "Windows 64-bit" 
  633#define INCHI_BUILD_PLATFORM "Windows 32-bit" 
  636#elif defined(__linux__) 
  638#if defined(__x86_64__) || defined(__ppc64__) || defined(__aarch64__)  
  639#define INCHI_BUILD_PLATFORM "Linux 64-bit" 
  641#define INCHI_BUILD_PLATFORM "Linux 32-bit" 
  644#elif defined(__APPLE__) 
  645#define INCHI_BUILD_PLATFORM "OSX" 
  648#define INCHI_BUILD_PLATFORM "" 
  652#ifndef INCHI_BUILD_DEBUG 
  654#define INCHI_BUILD_DEBUG " Debug" 
  656#define INCHI_BUILD_DEBUG "" 
  662#define INCHI_SRC_REV "rev. 9b6f1414ebf3+" 
  664#define INCHI_SRC_REV "" 
  668#ifndef INCHI_BUILD_COMPILER 
  673#define INCHI_BUILD_COMPILER "MS VS 2017 or later" 
  674#elif _MSC_VER == 1900 
  675#define INCHI_BUILD_COMPILER "MS VS 2015" 
  676#elif _MSC_VER == 1800 
  677#define INCHI_BUILD_COMPILER "MS VS 2013" 
  678#elif _MSC_VER == 1700 
  679#define INCHI_BUILD_COMPILER "MS VS 2012" 
  680#elif _MSC_VER == 1600 
  681#define INCHI_BUILD_COMPILER "MS VS 2010" 
  682#elif _MSC_VER == 1500 
  683#define INCHI_BUILD_COMPILER "MS VS 2008" 
  684#elif _MSC_VER == 1400 
  685#define INCHI_BUILD_COMPILER "MS VS 2005" 
  686#elif _MSC_VER == 1310 
  687#define INCHI_BUILD_COMPILER "MS VS 2003" 
  688#elif _MSC_VER == 1300 
  689#define INCHI_BUILD_COMPILER "MS VS 2002" 
  690#elif _MSC_VER == 1200 
  691#define INCHI_BUILD_COMPILER "MS VS 6.0" 
  693#define INCHI_BUILD_COMPILER "MS VC++ 5.0 or earlier" 
  699#define INCHI_BUILD_COMPILER "gcc " __VERSION__ "" 
  701#define INCHI_BUILD_COMPILER "" 
unsigned short AT_NUMB
Definition ichisize.h:45
 
signed short NUM_H
Definition ichisize.h:49
 
signed char S_CHAR
Definition inchi_api.h:113
 
unsigned char U_CHAR
Definition inchi_api.h:114
 
Definition ichicant.h:338
 
int num_of_H(inp_ATOM *at, int iat)
Get the number of hydrogens.
Definition util.c:1087
 
int get_element_chemical_symbol(int nAtNum, char *szElement)
Finds chemical symbol for element of given number.
Definition util.c:284
 
int get_el_type(int nPeriodicNum)
Get the el type object.
Definition util.c:652
 
int extract_H_atoms(char *elname, S_CHAR num_iso_H[])
Extract H atoms from element name.
Definition util.c:743
 
char * inchi__strnset(char *s, int val, size_t length)
Set a string to a specified value for a given length.
Definition util.c:1983
 
AT_NUMB * is_in_the_list(AT_NUMB *pathAtom, AT_NUMB nNextAtom, int nPathLen)
Checks if an atom is in the list/path.
Definition util.c:1021
 
int get_num_H(const char *elname, int inp_num_H, S_CHAR num_iso_H[], int charge, int radical, int chem_bonds_valence, int atom_input_valence, int bAliased, int bDoNotAddH, int bHasMetalNeighbor)
Get the number of attached hydrogens.
Definition util.c:830
 
int detect_unusual_el_valence(int nPeriodicNum, int charge, int radical, int bonds_valence, int num_H, int num_bonds)
Output valence that does not fit any known valences.
Definition util.c:594
 
int if_skip_add_H(int nPeriodicNum)
Check if no H addition allowed.
Definition util.c:407
 
int is_el_a_metal(int nPeriodicNum)
Check if an element is a metal.
Definition util.c:661
 
int extract_charges_and_radicals(char *elname, int *pnRadical, int *pnCharge)
Extract charges and radicals from element name.
Definition util.c:671
 
void extract_inchi_substring(char **buf, const char *str, size_t slen)
Extract InChI substring embedded into a longer string.
Definition util.c:1814
 
void WriteCoord(char *str, double x)
Write coordinate (double) to string.
 
int extract_orig_nums_from_auxinfo_string(char *saux, int *orig)
Parse AuxInfostring and get a list of original atom numbers orig[cano_num].
Definition runichi2.c:1389
 
int nNoMetalNeighIndex(inp_ATOM *at, int at_no)
Get the index of the first element that is not a metal.
Definition util.c:1346
 
int get_atomic_mass(const char *elname)
Get the atomic mass object.
Definition util.c:1003
 
int mystrncpy(char *target, const char *source, unsigned maxlen)
Copies up to maxlen characters INCLUDING end null from source to target. Fills out the rest of the ta...
Definition util.c:1712
 
int has_other_ion_in_sphere_2(inp_ATOM *at, int iat, int iat_ion_neigh)
Check whether an atom has ion neighbors within sphere (breath first search (BFS) up to r=2)
Definition util.c:1164
 
double inchi_strtod(const char *str, const char **p)
Convert string to double.
Definition ichiprt2.c:2211
 
int inchi_stricmp(const char *s1, const char *s2)
Case-insensitive string comparison.
Definition util.c:1957
 
int nBondsValenceInpAt(const inp_ATOM *at, int *nNumAltBonds, int *nNumWrongBonds)
Gets the number of bond valences.
Definition ichi_bns.c:1671
 
void remove_one_lf(char *p)
Remove one line feed character from the end of a string.
Definition util.c:1689
 
char * lrtrim(char *p, int *nLen)
Trim leading and trailing spaces from a string.
Definition util.c:1759
 
int extract_stereo_info_from_inchi_string(char *sinchi, int nat, int *orig, int *at_stereo_mark)
Extract stereo information from InChI string.
Definition ichiread.c:12487
 
int get_unusual_el_valence(int nPeriodicNum, int charge, int radical, int bonds_valence, int num_H, int num_bonds)
Output valence needed to unambiguosly reconstruct bonds.
Definition util.c:431
 
int nNoMetalOtherNeighIndex(inp_ATOM *at, int at_no, int cur_neigh)
Get the index of an element that is not a metal excluding a given index.
Definition util.c:1364
 
int extract_all_backbone_bonds_from_inchi_string(char *sinchi, int *n_all_bkb_orig, int *orig, int *all_bkb_orig)
Extract all backbone bonds from InChI string.
Definition ichiread.c:12535
 
int get_endpoint_valence_KET(U_CHAR el_number)
Get the endpoint valence KET object.
Definition util.c:1482
 
const int nElDataLen
Definition util.c:274
 
int nBondsValToMetal(inp_ATOM *at, int iat)
Gets the number of bond valences to a metal atom.
Definition util.c:1059
 
int get_el_valence(int nPeriodicNum, int charge, int val_num)
Get reference value of atom valence at given charge.
Definition util.c:417
 
long inchi_strtol(const char *str, const char **p, int base)
Convert string to long integer.
Definition ichiprt2.c:2192
 
int is_matching_any_delim(char c, char *delims)
Check if a character is in the list of possible delimiters.
Definition util.c:1655
 
int * is_in_the_ilist(int *pathAtom, int nNextAtom, int nPathLen)
Checks if an integer is in the list/path.
Definition util.c:1033
 
int get_endpoint_valence(U_CHAR el_number)
Get the endpoint valence object.
Definition util.c:1463
 
int nNoMetalOtherNeighIndex2(inp_ATOM *at, int at_no, int cur_neigh, int cur_neigh2)
Get the index of an element that is not a metal excluding a 2 given indexes.
Definition util.c:1384
 
int extract_nonstereo_eq_classes_from_auxinfo_string(char *saux, int nat, int *orig, int *have_eclass_info, int *eclass, int *eclass_by_origs)
Parse AuxInfostring and get non-stereo equivalence classes.
Definition runichi2.c:1427
 
char * inchi__strdup(const char *string)
Duplicate a string.
Definition util.c:1995
 
U_CHAR ion_el_group(int el)
Get the element group of an element. The base element rather than the periodic group is used to aid r...
Definition util.c:1115
 
int is_ilist_inside(int *ilist, int nlist, int *ilist2, int nlist2)
Checks if one list of integers is inside another list (ilist in ilist2)
Definition util.c:1045
 
int get_periodic_table_number(const char *elname)
Get the periodic table number object.
Definition util.c:355
 
int nNoMetalBondsValence(inp_ATOM *at, int at_no)
Returns the number of non-metal bond valences.
Definition util.c:1281
 
void remove_trailing_spaces(char *p)
Remove trailing spaces from a string.
Definition util.c:1674
 
int read_upto_delim(char **pstring, char *field, int maxlen, char *delims)
Read up to any delimiter from the string.
Definition util.c:1602
 
int has_other_ion_neigh(inp_ATOM *at, int iat, int iat_ion_neigh)
Check whether an atom has ion neighbors.
Definition util.c:1139
 
int get_atomic_mass_from_elnum(int nAtNum)
Get the atomic mass from elnum object.
Definition util.c:973
 
int SetBitFree(struct tagCANON_GLOBALS *pCG)
Frees bit string in canonicalisation data structure.
Definition ichican2.c:3259
 
const int ERR_ELEM
Definition util.c:273
 
int needed_unusual_el_valence(int nPeriodicNum, int charge, int radical, int bonds_valence, int actual_bonds_val, int num_H, int num_bonds)
Output valence needed to unambiguosly reconstruct number of H.
Definition util.c:494
 
int bHeteroAtomMayHaveXchgIsoH(inp_ATOM *atom, int iat)
Checks whether a hetero atom may have exchangeable isotopic hydrogens.
Definition strutil.c:4040
 
int nNoMetalNumBonds(inp_ATOM *at, int at_no)
Returns the number of non-metal bonds.
Definition util.c:1215
 
int MakeRemovedProtonsString(int nNumRemovedProtons, NUM_H *nNumExchgIsotopicH, NUM_H *nNumRemovedProtonsIsotopic, int bIsotopic, char *szRemovedProtons, int *num_removed_iso_H)
Creates a string from the removed protons (?)
 
void extract_auxinfo_substring(char **buf, const char *str, size_t slen)
Extract AuxInfo substring embedded into a longer string.
Definition util.c:1879
 
int inchi_memicmp(const void *p1, const void *p2, size_t length)
Compare two memory blocks in a case-insensitive manner.
Definition util.c:1934
 
int dotify_non_printable_chars(char *line)
Replace non-ASCII characters with '.',.
Definition util.c:1575
 
void mystrrev(char *p)
Reverse a string in place.
Definition ichimake.c:2090
 
int get_element_or_pseudoelement_symbol(int nAtNum, char *szElement)
Finds symbol for element of given number. Accounts for (translates)pseudoelements.
Definition util.c:310
 
int normalize_string(char *name)
Normalize string (remove leading & trailing spaces, replace consecutive spaces with a single space,...
Definition util.c:1535