My Project
sif.c
Go to the documentation of this file.
1
/******************************************************************************
2
3
File: sif.c
4
Description: Routines for Scan Information Files (SIF).
5
6
Copyright (c) 2000-2005 Turku PET Centre
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
License as published by the Free Software Foundation; either
11
version 2.1 of the License, or (at your option) any later version.
12
13
This library is distributed in the hope that it will be useful,
14
but WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16
See the GNU Lesser General Public License for more details:
17
http://www.gnu.org/copyleft/lesser.html
18
19
You should have received a copy of the GNU Lesser General Public License
20
along with this library/program; if not, write to the Free Software
21
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22
23
Turku PET Centre, Turku, Finland, http://www.turkupetcentre.fi
24
25
Modification history:
26
2000-09-04 Vesa Oikonen
27
2000-09-08 VO
28
malloc->calloc.
29
2000-09-18 VO
30
weightSIF() can calculate weights for decay corrected data.
31
2000-12-13 VO
32
Included function writeSIF().
33
2002-07-30 VO
34
memset() added to initSIF().
35
2004-09-17 VO
36
Doxygen style comments.
37
2004-10-13 VO
38
tm_isdst=-1 (unknown Daylight saving time).
39
2005-01-12 VO
40
Changed and additional comments not affecting compiled code.
41
2005-01-15 VO
42
SIF related stuff moved from libpet to new libsif.
43
Function names changed, although old names can still be used.
44
2005-01-16 VO
45
studynr and isotope_name were added to SIF structure.
46
2005-04-26 CL
47
Merged libsif to libtpcimio
48
49
******************************************************************************/
50
51
/*****************************************************************************/
52
#include "
sif.h
"
53
/*****************************************************************************/
54
55
/*****************************************************************************/
61
void
sifInit
(
SIF
*data) {
62
if
(
SIF_TEST
) printf(
"sifInit()\n"
);
63
memset(data, 0,
sizeof
(
SIF
));
64
data->
frameNr
=data->
colNr
=0;
65
}
66
/*****************************************************************************/
67
68
/*****************************************************************************/
74
void
sifEmpty
(
SIF
*data) {
75
if
(
SIF_TEST
) printf(
"sifEmpty()\n"
);
76
if
(data->
frameNr
>0) {
77
free((
char
*)(data->
x1
)); free((
char
*)(data->
x2
));
78
free((
char
*)(data->
prompts
)); free((
char
*)(data->
randoms
));
79
free((
char
*)(data->
trues
)); free((
char
*)(data->
weights
));
80
data->
frameNr
=data->
colNr
=0;
81
}
82
data->
scantime
=(time_t)0; data->
version
=0;
83
strcpy(data->
studynr
,
""
); strcpy(data->
isotope_name
,
""
);
84
}
85
/*****************************************************************************/
86
87
/*****************************************************************************/
95
int
sifSetmem
(
SIF
*data,
int
frameNr) {
96
if
(
SIF_TEST
) printf(
"sifSetmem()\n"
);
97
/* Clear previous data, if necessary */
98
if
(data->
frameNr
>0)
sifEmpty
(data);
99
if
(frameNr<1)
return
(0);
100
101
/* Allocate memory */
102
data->
x1
=(
double
*)calloc(frameNr,
sizeof
(
double
));
103
data->
x2
=(
double
*)calloc(frameNr,
sizeof
(
double
));
104
data->
prompts
=(
double
*)calloc(frameNr,
sizeof
(
double
));
105
data->
randoms
=(
double
*)calloc(frameNr,
sizeof
(
double
));
106
data->
trues
=(
double
*)calloc(frameNr,
sizeof
(
double
));
107
data->
weights
=(
double
*)calloc(frameNr,
sizeof
(
double
));
108
if
(data->
x1
==NULL || data->
x2
==NULL || data->
prompts
==NULL ||
109
data->
randoms
==NULL || data->
trues
==NULL || data->
weights
==NULL) {
110
strcpy(
siferrmsg
,
"out of memory"
);
return
(1);}
111
data->
frameNr
=frameNr;
112
113
return
(0);
114
}
115
/*****************************************************************************/
116
117
/*****************************************************************************/
118
sifInit
void sifInit(SIF *data)
Definition
sif.c:61
sifSetmem
int sifSetmem(SIF *data, int frameNr)
Definition
sif.c:95
sifEmpty
void sifEmpty(SIF *data)
Definition
sif.c:74
sif.h
SIF_TEST
int SIF_TEST
Definition
sif.h:63
siferrmsg
char siferrmsg[128]
Definition
sif.h:33
SIF
Definition
sif.h:36
SIF::x1
double * x1
Definition
sif.h:50
SIF::prompts
double * prompts
Definition
sif.h:54
SIF::studynr
char studynr[11]
Definition
sif.h:46
SIF::frameNr
int frameNr
Definition
sif.h:40
SIF::x2
double * x2
Definition
sif.h:52
SIF::version
int version
Definition
sif.h:44
SIF::scantime
time_t scantime
Definition
sif.h:38
SIF::isotope_name
char isotope_name[8]
Definition
sif.h:48
SIF::weights
double * weights
Definition
sif.h:60
SIF::colNr
int colNr
Definition
sif.h:42
SIF::randoms
double * randoms
Definition
sif.h:56
SIF::trues
double * trues
Definition
sif.h:58
Generated by
1.11.0