TPCCLIB
Loading...
Searching...
No Matches
libtpcmisc.h
Go to the documentation of this file.
1
5#ifndef _LIBTPCMISC_H_
6#define _LIBTPCMISC_H_
7/*****************************************************************************/
8
9/*****************************************************************************/
10#include "tpcclibConfig.h"
11/*****************************************************************************/
12#include <errno.h>
13#include <stdio.h>
14#include <math.h>
15#include <time.h>
16#include <stdlib.h>
17#include <string.h>
18#include <strings.h>
19#include <ctype.h>
20#include <stdint.h>
21#include <unistd.h>
22/*****************************************************************************/
23
24/*****************************************************************************/
26#define BRANCHING_O 0.999
28#define BRANCHING_C 0.998
30#define BRANCHING_Cu64 0.174
32#define BRANCHING_N 0.998
34#define BRANCHING_F 0.967
36#define BRANCHING_Ge 0.891
38#define BRANCHING_Ga 0.891
40#define BRANCHING_Rb 0.950
41/*****************************************************************************/
43#define HL_O15 2.05 /* 123 s */
45#define HL_N13 10.0
47#define HL_C11 20.4
49#define HL_F18 109.8
51#define HL_Ge68 396000.0 /* 275 d */
53#define HL_Ga68 68.0
54/*****************************************************************************/
55/* The following half-lives have not been checked from the reference; */
56/* they are thus meant to be used only during program development period */
58#define HL_Br75 98.0
60#define HL_Br76 978.33 /* 58700 s */
62#define HL_Cu62 9.7 /* 582 s */
64#define HL_Cu64 762.018 /* 12.7003 h */
66#define HL_Fe52 4980.0
68#define HL_Na22 1368000.0
70#define HL_O14 1.1818
72#define HL_Rb82 1.25 /* 75 s */
74#define HL_Zn62 558.0
76#define HL_I124 6013.44 /* 4.176 */
77/*****************************************************************************/
79enum {
80 TPCISOT_BR_75, TPCISOT_BR_76, TPCISOT_CU_62, TPCISOT_CU_64,
81 TPCISOT_FE_52, TPCISOT_GA_68, TPCISOT_GE_68, TPCISOT_NA_22,
82 TPCISOT_RB_82, TPCISOT_ZN_62, TPCISOT_F_18, TPCISOT_C_11,
83 TPCISOT_N_13, TPCISOT_O_15, TPCISOT_O_14, TPCISOT_I_124,
84 TPCISOT_UNKNOWN
85};
86/*****************************************************************************/
87/* Add ln(2) if it is not defined */
88#ifndef M_LN2
90#define M_LN2 0.69314718055994530942
91#endif
92/*****************************************************************************/
93#ifndef MAX_UNITS_LEN
95#define MAX_UNITS_LEN 31
96#endif
97/*****************************************************************************/
99enum {
100 /* 0 */ CUNIT_UNKNOWN,
101 /* 1 */ CUNIT_CPS,
102 /* 2 */ CUNIT_COUNTS,
103 /* 3 */ CUNIT_KBQ_PER_ML,
104 /* 4 */ CUNIT_SEC_KBQ_PER_ML,
105 /* 5 */ CUNIT_PER_SEC,
106 /* 6 */ CUNIT_PER_MIN,
107 /* 7 */ CUNIT_ML_PER_ML,
108 /* 8 */ CUNIT_ML_PER_DL,
109 /* 9 */ CUNIT_ML_PER_ML_PER_MIN,
110 /* 10 */ CUNIT_ML_PER_DL_PER_MIN,
111 /* 11 */ CUNIT_UNITLESS,
112 /* 12 */ CUNIT_NCI_PER_ML,
113 /* 13 */ CUNIT_MBQ_PER_ML,
114 /* 14 */ CUNIT_BQ_PER_ML,
115 /* 15 */ CUNIT_UCI_PER_ML,
116 /* 16 */ CUNIT_UMOL_PER_MIN_PER_100G,
117 /* 17 */ CUNIT_MG_PER_MIN_PER_100G,
118 /* 18 */ CUNIT_UMOL_PER_MIN_PER_DL,
119 /* 19 */ CUNIT_MG_PER_MIN_PER_DL,
120 /* 20 */ CUNIT_PERCENTAGE,
121 /* 21 */ CUNIT_KCPS,
122 /* 22 */ CUNIT_MIN_KBQ_PER_ML,
123 /* 23 */ CUNIT_BQ,
124 /* 24 */ CUNIT_KBQ,
125 /* 25 */ CUNIT_MBQ,
126 /* 26 */ CUNIT_GBQ,
127 /* 27 */ CUNIT_NCI,
128 /* 28 */ CUNIT_UCI,
129 /* 29 */ CUNIT_MCI,
130 /* 30 */ CUNIT_PID,
131 /* 31 */ CUNIT_PIDM,
132 /* 32 */ CUNIT_PIDV,
133 /* 33 */ CUNIT_G_PER_ML, // SUV unit
134 /* 34 */ CUNIT_ML_PER_G, // SUV unit
135 /* 35 */ CUNIT_HU // Hounsfield unit
136};
138enum {
139 /* 0 */ TUNIT_UNKNOWN,
140 /* 1 */ TUNIT_SEC,
141 /* 2 */ TUNIT_MIN,
142 /* 3 */ TUNIT_UM,
143 /* 4 */ TUNIT_MM,
144 /* 5 */ TUNIT_CM,
145 /* 6 */ TUNIT_M,
146 /* 7 */ TUNIT_HOUR,
147 /* 8 */ TUNIT_MONTH,
148 /* 9 */ TUNIT_YEAR,
149 /* 10 */ TUNIT_MSEC
150};
151/*****************************************************************************/
152#ifndef MAX_REGIONNAME_LEN
154#define MAX_REGIONNAME_LEN 20
155#endif
156#ifndef MAX_REGIONSUBNAME_LEN
158#define MAX_REGIONSUBNAME_LEN 6
159#endif
160/*****************************************************************************/
161#ifndef MAX_STUDYNR_LEN
163#define MAX_STUDYNR_LEN 255
164#endif
165/*****************************************************************************/
166
167/*****************************************************************************/
168/* backup */
169extern int backupExistingFile(char *filename, char *backup_ext, char *status);
170extern int fileCopy(char *filename1, char *filename2, char *status);
171/*****************************************************************************/
172
173/*****************************************************************************/
174/* branch */
175float branchingFraction(int isotope);
176/*****************************************************************************/
177
178/*****************************************************************************/
179/* datetime */
180#ifndef HAVE_GMTIME_R
181extern struct tm* gmtime_r(const time_t* t, struct tm* tm);
182#endif
183#ifndef HAVE_LOCALTIME_R
184extern struct tm* localtime_r(const time_t* t, struct tm* tm);
185#endif
186//#ifndef HAVE_TIMEGM
187extern time_t timegm(struct tm *tm); // always needed at least in macOS
188//#endif
189extern char* ctime_r_int(const time_t *t, char *buf);
190extern int isdate(char *str);
191extern int isdate2(char *str, char *intdate);
192extern int isdate3(char *str, char *intdate);
193extern int isdate4(int dateint, int *year, int *month, int *day);
194extern int istime(char *str);
195extern int isdatetime(char *str, char *intdate);
196extern int get_datetime(char *str, struct tm *date, int verbose);
197extern int get_date(char *str, struct tm *date);
198extern long int math_div(long int a, long int b);
199extern int isleapyear(long int year);
200extern long int leaps_between(long int year1, long int year2);
201extern void time_to_tm(time_t totalsecs, int offset, struct tm *result);
202extern double tmDifference(struct tm *tm1, struct tm *tm0);
203extern void tmAdd(int s, struct tm *d);
204/*****************************************************************************/
205
206/*****************************************************************************/
207/* decpoint */
208extern int dec_comma_is(char *str);
209extern int dec_separator(char *str);
210extern void dec_separator_change(char *str, int decsep);
211extern double atof_dpi(char *str);
212extern int dec_nr(char *str);
213extern int atof_with_check(char *double_as_string, double *result_value);
214extern char *strPtrToNextValue(char *str, char **nxtp);
215extern int atoi_with_check(const char *int_as_string, int *result_value);
216/*****************************************************************************/
217
218/*****************************************************************************/
219/* filename */
220extern void filenameRmPath(char *s);
221extern int filenameRmExtension(char *s);
222extern void filenameRmExtensions(char *s);
223extern int fnmatch(const char *fname, const char *key);
224extern int fncasematch(const char *fname, const char *key);
225extern char *filenameGetExtension(char *s);
226extern char *filenameGetExtensions(char *s);
227/*****************************************************************************/
228
229/*****************************************************************************/
230/* halflife */
231extern char *hlIsotopeCode(int isotope);
232extern double hlFromIsotope(char *isocode);
233extern double hl2lambda(double halflife);
234extern double hlLambda2factor(double lambda, double frametime, double framedur);
235extern float hlLambda2factor_float(float lambda, float frametime, float framedur);
236extern char *hlCorrectIsotopeCode(char *isocode);
237extern int hlIsotopeFromHalflife(double halflife);
238/*****************************************************************************/
239
240/*****************************************************************************/
241/* idcrypt (deprecated) */
242extern const char *libpet_idcrypt_version(void);
243extern int id_crypt(const char *string,const char *key,char *out,int decrypt);
244/*****************************************************************************/
245
246/*****************************************************************************/
247/* ift */
249enum {IFT_OK, IFT_FAULT, IFT_NOMEMORY, IFT_CANNOTREAD, IFT_CANNOTWRITE,
250 IFT_UNKNOWNFORMAT, IFT_KEYNOTFOUND, IFT_NODATA, IFT_VALUENOTFOUND};
251/*****************************************************************************/
253typedef struct {
255 char type;
257 short int sw;
259 char *key;
261 char *value;
264typedef struct {
266
267 int _memNr;
269
270 int keyNr;
275 int type;
277 const char *status;
281 size_t datasize;
283 unsigned char *data;
284} IFT;
285/*****************************************************************************/
286
287/*****************************************************************************/
288//void libift_printdate(FILE *fp);
289extern void iftSetStatus(IFT *ift, int status);
290extern void iftInit(IFT *ift);
291extern void iftEmpty(IFT *ift);
292extern int iftPut(IFT *ift, char *key, char *value, char *cmt_type, int verbose);
293extern int iftPutDouble(IFT *ift, char *key, double value, char *cmt_type, int verbose);
294extern int iftRead(IFT *ift, char *filename, int is_key_required, int verbose);
295extern char *iftReadValue(char *filename, char *keystr, int verbose);
296extern int iftWriteItem(IFT *ift, int item, FILE *fp, int verbose);
297extern int iftWrite(IFT *ift, char *filename, int verbose);
298extern int defRead(IFT *ift, char *filename, int verbose);
299extern int iftGet(IFT *ift, char *key, int verbose);
300extern int iftGetNth(IFT *ift, char *key, int n, int verbose);
301extern int iftFindNthKey(IFT *ift, char *str, int n, int verbose);
302extern int iftFindNthValue(IFT *ift, char *str, int n, int verbose);
303extern int iftGetKeyNr(IFT *ift, const char *key, int verbose);
304extern int iftGetFrom(IFT *ift, int si, const char *key, int verbose);
305extern int iftGetFullmatchFrom(IFT *ift, int si, const char *key, const char *value, int verbose);
306extern int iftGetFloatValue(IFT *ift, int si, const char *key, float *value, int verbose);
307extern int iftGetDoubleValue(IFT *ift, int si, const char *key, double *value, int verbose);
308extern int iftGetIntValue(IFT *ift, int si, const char *key, int *value, int verbose);
309extern int iftDeleteItem(IFT *ift, int item, int verbose);
310extern int iftReplaceNthValue(IFT *ift, int item, char *value, int verbose);
311extern int iftdup(IFT *ift1, IFT *ift2, int verbose);
312/*****************************************************************************/
313
314/*****************************************************************************/
315/* intex */
318typedef struct {
320 int nr;
322 int *i;
323} INT_list;
324
327typedef struct {
329 int nr;
333 int *list;
335/*****************************************************************************/
336/* Deprecated functions. */
337extern void intInit(INT_list *list);
338extern void intEmpty(INT_list *list);
339extern int intExpand(char *text, INT_list *list);
340extern INT_list intMerge(INT_list *list1,INT_list *list2);
341extern int _intexadd(INT_list *list, int a);
342/* Recommended functions */
343extern int integerListInit(INTEGER_LIST *l);
344extern int integerListEmpty(INTEGER_LIST *l);
345extern int integerListAdd(INTEGER_LIST *l, int v, int ifnew);
346extern int integerListSort(INTEGER_LIST *l);
347extern int integerListAddFromString(
348 const char *s1, const char *s2, INTEGER_LIST *l, const int ifnew
349);
351 const char *s1, const char *s2, INTEGER_LIST *l, const int ifnew
352);
353/*****************************************************************************/
354
355/*****************************************************************************/
356/* petc99 */
357extern int temp_roundf(float e);
358/*****************************************************************************/
359
360/*****************************************************************************/
361/* petunits */
362extern int petCunitId(const char *unit);
363extern int petTunitId(const char *timeunit);
364extern char *petCunit(int cunit);
365extern char *petTunit(int tunit);
366extern int cunitFromFilename(char *fname);
367/*****************************************************************************/
368
369/*****************************************************************************/
370/* proginfo */
371extern int tpcProcessStdOptions(const char *s, int *print_usage, int *print_version, int *verbose_level);
372extern void tpcProgramName(const char *program, int version, int copyright, char *prname, int n);
373extern void tpcPrintUsage(const char *program, char *text[], FILE *fp);
374extern int tpcHtmlUsage(const char *program, char *text[], const char *path);
375extern void tpcPrintBuild(const char *program, FILE *fp);
376/*****************************************************************************/
377
378/*****************************************************************************/
379/* quots */
380extern char *strstr_noquotation(const char *str1, const char *str2);
381extern int strnCopyClean(char *str1, const char *str2, int maxlen);
382/*****************************************************************************/
383
384/*****************************************************************************/
385/* readfile */
387typedef struct {
393 char **tok;
395
396extern void str_token_list_init(STR_TOKEN_LIST *lst);
397extern void str_token_list_empty(STR_TOKEN_LIST *lst);
398extern int str_token_list_add(STR_TOKEN_LIST *lst, char *new_item);
399extern int str_token_list_del(STR_TOKEN_LIST *lst, int item);
400extern int str_token_list_read(const char *filename, STR_TOKEN_LIST *lst);
401extern int textfileReadLines(const char *filename, STR_TOKEN_LIST *lst);
402extern int readStrtokens(const char *filename, char ***toklist);
403extern int asciiCommentLine(const char *line, int *cont);
404/*****************************************************************************/
405
406/*****************************************************************************/
407/* rname */
408extern int rnameSplit(char *rname, char *name1, char *name2, char *name3, int max_name_len);
409extern int rnameMatch(char *rname, int rnr, char *test_str);
410extern int rnameRmDots(char *rname1, char *rname2);
411extern int rnameCatenate(char *rname, int max_rname_len, char *name1, char *name2, char *name3, char space);
412extern int roinameExists(char *roiname);
413/*****************************************************************************/
414
415/*****************************************************************************/
416/* strext */
417extern int strTokenNr(const char *str1, const char *str2);
418extern int strTokenNCpy(
419 const char *str1, const char *str2, int i, char *str3, int count
420);
421extern char *strTokenDup(const char *s1, const char *s2, int *next);
422extern int strChrCount(const char *str1, const char *str2);
423extern int strUppercaseCount(const char *s);
424extern void strReplaceChar(char *str, char c1, char c2);
425//#ifndef HAVE_STRNLEN
426extern size_t strnlen(const char *s, size_t n);
427//#endif
428//#ifndef HAVE_STRLCAT
429extern size_t strlcat(char *dst, const char *src, size_t dstsize);
430//#endif
431//#ifndef HAVE_STRLCPY
432extern size_t strlcpy(char *dst, const char *src, size_t dstsize);
433//#endif
434extern char *strcasestr(const char *haystack, const char *needle); // still missing in MinGW GCC
435extern int strncpyCleanSpaces(char *s1, const char *s2, int maxlen);
436extern int strCleanSpaces(char *s);
437extern char *strEncodeForXML(const char *s);
438extern void strCleanForXML(char *s);
439/*****************************************************************************/
440
441/*****************************************************************************/
442/* studynr */
443extern int studynr_in_fname(char *fname, char *studynr);
444extern int studynr_from_fname(char *fname, char *studynr);
445extern int studynr_from_fname2(char *fname, char *studynr, int force);
446extern int studynr_match(char *studynr1, char *studynr2);
447extern int studynr_validity_check2(char *studynr, int zero_ok);
448extern int studynr_validity_check(char *studynr);
449extern int studynr_rm_zeroes(char *studynr);
450extern int studynr_to_lowercase(char *studynr);
451/*****************************************************************************/
452
453/*****************************************************************************/
454/* swap */
455extern int little_endian();
456extern void swap(void *orig, void *new, int size);
457extern void swabip(void *buf, long long int size);
458extern void swawbip(void *buf, long long int size);
459extern void swawip(void *buf, long long int size);
460extern void printf32bits(void *buf);
461/*****************************************************************************/
462
463/*****************************************************************************/
464/* doubleutil */
465extern int doubleMatch(const double v1, const double v2, const double lim);
466extern int doubleMatchRel(const double v1, const double v2, const double lim);
467extern double doubleMachEps();
468extern void doubleCopy(double *t, double *s, const unsigned int n);
469extern unsigned int doubleMaxIndex(double *a, const unsigned int n);
470extern double doubleSum(double *a, const unsigned int n);
471extern double doubleMean(double *a, const unsigned int n);
472extern int doubleSpanPositives(double *a, const int n);
473extern int doubleCSpanPositives(double *a, const int n);
474extern double inverfc(double x);
475extern void statSortDouble(double *data, unsigned int n, int order);
476extern void statSortFloat(float *data, unsigned int n, int order);
477/*****************************************************************************/
478
479/*****************************************************************************/
480#endif /* LIBTPCMISC */
int iftFindNthValue(IFT *ift, char *str, int n, int verbose)
Definition iftsrch.c:120
int atof_with_check(char *double_as_string, double *result_value)
Definition decpoint.c:107
int rnameRmDots(char *rname1, char *rname2)
Definition rname.c:99
char * strstr_noquotation(const char *str1, const char *str2)
Definition quots.c:17
int tpcProcessStdOptions(const char *s, int *print_usage, int *print_version, int *verbose_level)
Definition proginfo.c:40
int integerListEmpty(INTEGER_LIST *l)
Definition intex.c:175
int studynr_from_fname2(char *fname, char *studynr, int force)
Definition studynr.c:67
int iftGetFloatValue(IFT *ift, int si, const char *key, float *value, int verbose)
Definition iftsrch.c:228
int doubleSpanPositives(double *a, const int n)
Definition doubleutil.c:168
int studynr_in_fname(char *fname, char *studynr)
Definition studynr.c:18
int rnameCatenate(char *rname, int max_rname_len, char *name1, char *name2, char *name3, char space)
Definition rname.c:189
int get_datetime(char *str, struct tm *date, int verbose)
Definition datetime.c:322
void swawip(void *buf, long long int size)
Definition swap.c:114
char * ctime_r_int(const time_t *t, char *buf)
Convert calendard time t into a null-terminated string of the form YYYY-MM-DD hh:mm:ss,...
Definition datetime.c:110
void str_token_list_empty(STR_TOKEN_LIST *lst)
Definition readfile.c:26
int integerListInit(INTEGER_LIST *l)
Definition intex.c:161
int iftWriteItem(IFT *ift, int item, FILE *fp, int verbose)
Definition iftfile.c:221
double doubleMachEps()
Definition doubleutil.c:83
int studynr_to_lowercase(char *studynr)
Definition studynr.c:233
int str_token_list_del(STR_TOKEN_LIST *lst, int item)
Definition readfile.c:70
int petCunitId(const char *unit)
Definition petunits.c:74
double hl2lambda(double halflife)
Definition halflife.c:84
int iftdup(IFT *ift1, IFT *ift2, int verbose)
Definition ift.c:235
int doubleCSpanPositives(double *a, const int n)
Definition doubleutil.c:186
int studynr_validity_check2(char *studynr, int zero_ok)
Definition studynr.c:166
int isdate2(char *str, char *intdate)
Definition datetime.c:168
int defRead(IFT *ift, char *filename, int verbose)
Definition iftfile.c:321
void dec_separator_change(char *str, int decsep)
Definition decpoint.c:40
char * iftReadValue(char *filename, char *keystr, int verbose)
Definition iftfile.c:180
char * filenameGetExtension(char *s)
Get the last extension of a filename.
Definition filename.c:139
int integerListSort(INTEGER_LIST *l)
Definition intex.c:219
char * hlIsotopeCode(int isotope)
Definition halflife.c:36
void filenameRmPath(char *s)
Definition filename.c:13
int fileCopy(char *filename1, char *filename2, char *status)
Definition backup.c:65
int doubleMatch(const double v1, const double v2, const double lim)
Definition doubleutil.c:28
int doubleMatchRel(const double v1, const double v2, const double lim)
Definition doubleutil.c:55
int integerListAddFromString(const char *s1, const char *s2, INTEGER_LIST *l, const int ifnew)
Definition intex.c:242
void swabip(void *buf, long long int size)
Definition swap.c:72
INT_list intMerge(INT_list *list1, INT_list *list2)
Definition intex.c:124
int rnameMatch(char *rname, int rnr, char *test_str)
Definition rname.c:144
time_t timegm(struct tm *tm)
Inverse of gmtime, converting struct tm to time_t.
Definition datetime.c:69
int iftGetDoubleValue(IFT *ift, int si, const char *key, double *value, int verbose)
Definition iftsrch.c:268
double hlLambda2factor(double lambda, double frametime, double framedur)
Definition halflife.c:98
unsigned int doubleMaxIndex(double *a, const unsigned int n)
Definition doubleutil.c:111
int textfileReadLines(const char *filename, STR_TOKEN_LIST *lst)
Definition readfile.c:136
void filenameRmExtensions(char *s)
Definition filename.c:51
int backupExistingFile(char *filename, char *backup_ext, char *status)
Definition backup.c:14
int iftPutDouble(IFT *ift, char *key, double value, char *cmt_type, int verbose)
Definition ift.c:145
int intExpand(char *text, INT_list *list)
Definition intex.c:43
void strCleanForXML(char *s)
Definition strext.c:402
double atof_dpi(char *str)
Definition decpoint.c:59
void intInit(INT_list *list)
Definition intex.c:12
double inverfc(double x)
Definition doubleutil.c:205
char * petCunit(int cunit)
Definition petunits.c:211
int strCleanSpaces(char *s)
Definition strext.c:343
int integerListExpandFromString(const char *s1, const char *s2, INTEGER_LIST *l, const int ifnew)
Definition intex.c:278
int iftPut(IFT *ift, char *key, char *value, char *cmt_type, int verbose)
Definition ift.c:82
int atoi_with_check(const char *int_as_string, int *result_value)
Definition decpoint.c:238
int iftDeleteItem(IFT *ift, int item, int verbose)
Definition ift.c:169
int rnameSplit(char *rname, char *name1, char *name2, char *name3, int max_name_len)
Definition rname.c:14
int iftFindNthKey(IFT *ift, char *str, int n, int verbose)
Definition iftsrch.c:84
void tmAdd(int s, struct tm *d)
Definition datetime.c:514
int roinameExists(char *roiname)
Verifies whether TAC name exists or not.
Definition rname.c:241
int isleapyear(long int year)
Definition datetime.c:423
int studynr_match(char *studynr1, char *studynr2)
Definition studynr.c:142
char * strEncodeForXML(const char *s)
Definition strext.c:364
int strChrCount(const char *str1, const char *str2)
Definition strext.c:126
int isdate(char *str)
Definition datetime.c:146
int iftRead(IFT *ift, char *filename, int is_key_required, int verbose)
Definition iftfile.c:24
void time_to_tm(time_t totalsecs, int offset, struct tm *result)
Definition datetime.c:452
void strReplaceChar(char *str, char c1, char c2)
Definition strext.c:159
void str_token_list_init(STR_TOKEN_LIST *lst)
Definition readfile.c:13
size_t strnlen(const char *s, size_t n)
Definition strext.c:181
int strTokenNCpy(const char *str1, const char *str2, int i, char *str3, int count)
Definition strext.c:45
int strncpyCleanSpaces(char *s1, const char *s2, int maxlen)
Definition strext.c:308
int str_token_list_add(STR_TOKEN_LIST *lst, char *new_item)
Definition readfile.c:42
void swawbip(void *buf, long long int size)
Definition swap.c:93
void iftEmpty(IFT *ift)
Definition ift.c:60
int strTokenNr(const char *str1, const char *str2)
Definition strext.c:17
size_t strlcpy(char *dst, const char *src, size_t dstsize)
Definition strext.c:245
int dec_nr(char *str)
Definition decpoint.c:81
void printf32bits(void *buf)
Definition swap.c:133
void tpcProgramName(const char *program, int version, int copyright, char *prname, int n)
Definition proginfo.c:101
int little_endian()
Definition swap.c:14
int str_token_list_read(const char *filename, STR_TOKEN_LIST *lst)
Definition readfile.c:93
int studynr_rm_zeroes(char *studynr)
Definition studynr.c:211
int istime(char *str)
Definition datetime.c:259
int asciiCommentLine(const char *line, int *cont)
Definition readfile.c:246
int iftGet(IFT *ift, char *key, int verbose)
Definition iftsrch.c:15
int iftGetFullmatchFrom(IFT *ift, int si, const char *key, const char *value, int verbose)
Definition iftsrch.c:191
char * strTokenDup(const char *s1, const char *s2, int *next)
Definition strext.c:89
char * petTunit(int tunit)
Definition petunits.c:226
int get_date(char *str, struct tm *date)
Definition datetime.c:377
int isdate4(int dateint, int *year, int *month, int *day)
Definition datetime.c:230
long int math_div(long int a, long int b)
Definition datetime.c:409
void iftSetStatus(IFT *ift, int status)
Definition ift.c:29
int strUppercaseCount(const char *s)
Definition strext.c:146
void iftInit(IFT *ift)
Definition ift.c:45
int iftGetIntValue(IFT *ift, int si, const char *key, int *value, int verbose)
Definition iftsrch.c:309
void statSortDouble(double *data, unsigned int n, int order)
Definition doubleutil.c:267
int isdatetime(char *str, char *intdate)
Definition datetime.c:280
int iftWrite(IFT *ift, char *filename, int verbose)
Definition iftfile.c:282
int filenameRmExtension(char *s)
Definition filename.c:34
struct tm * gmtime_r(const time_t *t, struct tm *tm)
Convert time_t to GMT struct tm.
Definition datetime.c:22
float hlLambda2factor_float(float lambda, float frametime, float framedur)
Definition halflife.c:118
void intEmpty(INT_list *list)
Definition intex.c:23
int _intexadd(INT_list *list, int a)
Definition intex.c:92
char * filenameGetExtensions(char *s)
Get all extensions of a filename.
Definition filename.c:164
char * strPtrToNextValue(char *str, char **nxtp)
Definition decpoint.c:134
int fnmatch(const char *fname, const char *key)
Definition filename.c:66
int dec_comma_is(char *str)
Definition decpoint.c:14
int id_crypt(const char *string, const char *key, char *out, int decrypt)
Definition idcrypt.c:23
char * strcasestr(const char *haystack, const char *needle)
Definition strext.c:279
int tpcHtmlUsage(const char *program, char *text[], const char *path)
Definition proginfo.c:213
int readStrtokens(const char *filename, char ***toklist)
Definition readfile.c:181
int isdate3(char *str, char *intdate)
Definition datetime.c:199
long int leaps_between(long int year1, long int year2)
Definition datetime.c:435
int iftGetFrom(IFT *ift, int si, const char *key, int verbose)
Definition iftsrch.c:156
double doubleSum(double *a, const unsigned int n)
Definition doubleutil.c:130
int iftGetKeyNr(IFT *ift, const char *key, int verbose)
Definition iftsrch.c:350
int studynr_from_fname(char *fname, char *studynr)
Definition studynr.c:119
void doubleCopy(double *t, double *s, const unsigned int n)
Definition doubleutil.c:93
int iftReplaceNthValue(IFT *ift, int item, char *value, int verbose)
Definition ift.c:206
int dec_separator(char *str)
Definition decpoint.c:28
size_t strlcat(char *dst, const char *src, size_t dstsize)
Definition strext.c:206
int petTunitId(const char *timeunit)
Definition petunits.c:187
char * hlCorrectIsotopeCode(char *isocode)
Definition halflife.c:141
int strnCopyClean(char *str1, const char *str2, int maxlen)
Definition quots.c:52
float branchingFraction(int isotope)
Definition branch.c:14
int studynr_validity_check(char *studynr)
Definition studynr.c:196
double hlFromIsotope(char *isocode)
Definition halflife.c:55
double doubleMean(double *a, const unsigned int n)
Definition doubleutil.c:148
int temp_roundf(float e)
Definition petc99.c:20
void tpcPrintBuild(const char *program, FILE *fp)
Definition proginfo.c:383
int hlIsotopeFromHalflife(double halflife)
Definition halflife.c:195
int integerListAdd(INTEGER_LIST *l, int v, int ifnew)
Definition intex.c:190
void statSortFloat(float *data, unsigned int n, int order)
Definition imgqntls.c:76
struct tm * localtime_r(const time_t *t, struct tm *tm)
Convert time_t to local time in struct tm.
Definition datetime.c:46
int fncasematch(const char *fname, const char *key)
Definition filename.c:100
const char * libpet_idcrypt_version(void)
Definition idcrypt.c:15
double tmDifference(struct tm *tm1, struct tm *tm0)
Definition datetime.c:502
void tpcPrintUsage(const char *program, char *text[], FILE *fp)
Definition proginfo.c:158
int iftGetNth(IFT *ift, char *key, int n, int verbose)
Definition iftsrch.c:48
void swap(void *orig, void *new, int size)
Definition swap.c:31
int cunitFromFilename(char *fname)
Definition petunits.c:242
unsigned char * data
Definition libtpcmisc.h:283
size_t datasize
Definition libtpcmisc.h:281
int type
Definition libtpcmisc.h:275
int keyNr
Definition libtpcmisc.h:270
const char * status
Definition libtpcmisc.h:277
IFT_KEY_AND_VALUE * item
Definition libtpcmisc.h:279
int * i
Definition libtpcmisc.h:322