TPCCLIB
Toggle main menu visibility
Loading...
Searching...
No Matches
libtpccurveio
fitres.c
Go to the documentation of this file.
1
6
/*****************************************************************************/
7
#include "
libtpccurveio.h
"
8
/*****************************************************************************/
9
10
/*****************************************************************************/
14
int
fit_allocate_with_dft
(
16
FIT
*fit,
18
DFT
*dft
19
) {
20
int
ri;
21
22
//printf("fit_allocate_with_dft()\n"); fflush(stdout);
23
// Check the input data
24
if
(fit==NULL || dft==NULL || dft->
voiNr
<1)
return
1;
25
// Allocate memory
26
if
(
fitSetmem
(fit, dft->
voiNr
)!=0)
return
2;
27
fit->
voiNr
=dft->
voiNr
;
28
/* Set header contents */
29
fit->
time
=time(NULL);
// Set current time to results
30
strcpy(fit->
unit
, dft->
unit
);
31
fit->
timeunit
=dft->
timeunit
;
32
strcpy(fit->
studynr
, dft->
studynr
);
33
/* Copy region names, etc */
34
for
(ri=0; ri<dft->
voiNr
; ri++) {
35
strcpy(fit->
voi
[ri].
name
, dft->
voi
[ri].
name
);
36
strcpy(fit->
voi
[ri].
voiname
, dft->
voi
[ri].
voiname
);
37
strcpy(fit->
voi
[ri].
hemisphere
, dft->
voi
[ri].
hemisphere
);
38
strcpy(fit->
voi
[ri].
place
, dft->
voi
[ri].
place
);
39
fit->
voi
[ri].
dataNr
=dft->
frameNr
;
40
if
(dft->
timetype
==
DFT_TIME_STARTEND
) {
41
fit->
voi
[ri].
start
=dft->
x1
[0]; fit->
voi
[ri].
end
=dft->
x2
[dft->
frameNr
-1];
42
}
else
{
43
fit->
voi
[ri].
start
=dft->
x
[0]; fit->
voi
[ri].
end
=dft->
x
[dft->
frameNr
-1];
44
}
45
}
46
47
return
0;
48
}
49
/*****************************************************************************/
50
51
/*****************************************************************************/
56
int
fitToResult
(
58
FIT
*fit,
61
RES
*res,
64
char
*status
65
) {
66
int
pi, ri, maxParNr, ret;
67
68
69
//printf("fitToResult()\n"); fflush(stdout);
70
/* Check input */
71
if
(status!=NULL) sprintf(status,
"invalid data"
);
72
if
(fit==NULL || res==NULL)
return
1;
73
if
(fit->
voiNr
<1)
return
2;
74
75
/* Determine max parameter number in fits */
76
for
(ri=0, maxParNr=0; ri<fit->
voiNr
; ri++)
77
if
(fit->
voi
[ri].
parNr
>maxParNr) maxParNr=fit->
voi
[ri].
parNr
;
78
//printf("maxParNr := %d\n", maxParNr); fflush(stdout);
79
80
/* Allocate memory for results */
81
resEmpty
(res); ret=
resSetmem
(res, fit->
voiNr
);
82
if
(ret) {
83
if
(status!=NULL) sprintf(status,
"cannot allocate memory"
);
84
return
11;
85
}
86
/* Copy titles & filenames */
87
//printf("copy header contents\n"); fflush(stdout);
88
if
(strlen(fit->
program
)>0 && strlen(fit->
program
)<512)
89
snprintf(res->
program
, 1024,
"%.512s (c) 2014"
, fit->
program
);
90
else
91
strcpy(res->
program
,
"fitToResult (c) 2014"
);
92
strcpy(res->
datafile
, fit->
datafile
);
93
strcpy(res->
studynr
, fit->
studynr
);
94
res->
time
=fit->
time
;
95
/* Copy region names, etc */
96
//printf("copy region names\n"); fflush(stdout);
97
res->
voiNr
=fit->
voiNr
;
98
for
(ri=0; ri<fit->
voiNr
; ri++) {
99
strcpy(res->
voi
[ri].
name
, fit->
voi
[ri].
name
);
100
strcpy(res->
voi
[ri].
voiname
, fit->
voi
[ri].
voiname
);
101
strcpy(res->
voi
[ri].
hemisphere
, fit->
voi
[ri].
hemisphere
);
102
strcpy(res->
voi
[ri].
place
, fit->
voi
[ri].
place
);
103
}
104
/* Copy sample number, if equal in all TACs */
105
for
(ri=1, ret=0; ri<fit->
voiNr
; ri++)
106
if
(fit->
voi
[ri].
dataNr
!=fit->
voi
[0].
dataNr
) ret++;
107
if
(ret==0) res->
datanr
=fit->
voi
[0].
dataNr
;
108
/* Set parameter names */
109
//printf("set parameter names\n"); fflush(stdout);
110
res->
parNr
=maxParNr+2;
// function id and wss too
111
strcpy(res->
parname
[0],
"Func"
);
112
for
(pi=0; pi<maxParNr; pi++) sprintf(res->
parname
[pi+1],
"p%d"
, pi+1);
113
strcpy(res->
parname
[pi+1],
"WSS"
);
114
/* Copy parameter values */
115
//printf("copy parameter values\n"); fflush(stdout);
116
for
(ri=0; ri<fit->
voiNr
; ri++) {
117
res->
voi
[ri].
parameter
[0]=fit->
voi
[ri].
type
;
// function id
118
for
(pi=0; pi<maxParNr; pi++) {
// function parameters
119
if
(pi>=fit->
voi
[ri].
parNr
) res->
voi
[ri].
parameter
[pi+1]=0.0;
120
else
res->
voi
[ri].
parameter
[pi+1]=fit->
voi
[ri].
p
[pi];
121
}
122
res->
voi
[ri].
parameter
[pi+1]=fit->
voi
[ri].
wss
;
// wss
123
}
124
/* Set also deprecated parameter name and unit representations, for now */
125
//printf("set deprecated info\n"); fflush(stdout);
126
resFixParnames
(res);
127
return
(0);
128
}
129
/*****************************************************************************/
130
131
/*****************************************************************************/
fitToResult
int fitToResult(FIT *fit, RES *res, char *status)
Definition
fitres.c:56
fit_allocate_with_dft
int fit_allocate_with_dft(FIT *fit, DFT *dft)
Definition
fitres.c:14
libtpccurveio.h
Header file for libtpccurveio.
resSetmem
int resSetmem(RES *res, int voiNr)
Definition
result.c:70
fitSetmem
int fitSetmem(FIT *fit, int voiNr)
Definition
mathfunc.c:154
resFixParnames
void resFixParnames(RES *res)
Definition
result.c:107
DFT_TIME_STARTEND
#define DFT_TIME_STARTEND
Definition
libtpccurveio.h:439
resEmpty
void resEmpty(RES *res)
Definition
result.c:22
DFT
Definition
libtpccurveio.h:73
DFT::timetype
int timetype
Definition
libtpccurveio.h:99
DFT::voi
Voi * voi
Definition
libtpccurveio.h:108
DFT::timeunit
int timeunit
Definition
libtpccurveio.h:85
DFT::studynr
char studynr[MAX_STUDYNR_LEN+1]
Definition
libtpccurveio.h:80
DFT::x1
double * x1
Definition
libtpccurveio.h:104
DFT::voiNr
int voiNr
Definition
libtpccurveio.h:78
DFT::x2
double * x2
Definition
libtpccurveio.h:106
DFT::frameNr
int frameNr
Definition
libtpccurveio.h:76
DFT::x
double * x
Definition
libtpccurveio.h:102
DFT::unit
char unit[MAX_UNITS_LEN+1]
Definition
libtpccurveio.h:83
FIT
Definition
libtpccurveio.h:310
FIT::timeunit
int timeunit
Definition
libtpccurveio.h:320
FIT::voiNr
int voiNr
Definition
libtpccurveio.h:312
FIT::datafile
char datafile[FILENAME_MAX]
Definition
libtpccurveio.h:314
FIT::program
char program[1024]
Definition
libtpccurveio.h:326
FIT::unit
char unit[MAX_UNITS_LEN+1]
Definition
libtpccurveio.h:318
FIT::studynr
char studynr[MAX_STUDYNR_LEN+1]
Definition
libtpccurveio.h:316
FIT::voi
FitVOI * voi
Definition
libtpccurveio.h:322
FIT::time
time_t time
Definition
libtpccurveio.h:324
FitVOI::parNr
int parNr
Definition
libtpccurveio.h:290
FitVOI::wss
double wss
Definition
libtpccurveio.h:300
FitVOI::end
double end
Definition
libtpccurveio.h:294
FitVOI::place
char place[MAX_REGIONSUBNAME_LEN+1]
Definition
libtpccurveio.h:286
FitVOI::hemisphere
char hemisphere[MAX_REGIONSUBNAME_LEN+1]
Definition
libtpccurveio.h:284
FitVOI::type
int type
Definition
libtpccurveio.h:288
FitVOI::voiname
char voiname[MAX_REGIONSUBNAME_LEN+1]
Definition
libtpccurveio.h:282
FitVOI::name
char name[MAX_REGIONNAME_LEN+1]
Definition
libtpccurveio.h:280
FitVOI::start
double start
Definition
libtpccurveio.h:292
FitVOI::dataNr
int dataNr
Definition
libtpccurveio.h:296
FitVOI::p
double p[MAX_FITPARAMS]
Definition
libtpccurveio.h:298
RES
Definition
libtpccurveio.h:168
RES::studynr
char studynr[MAX_STUDYNR_LEN+1]
Definition
libtpccurveio.h:178
RES::parNr
int parNr
Definition
libtpccurveio.h:176
RES::parname
char parname[MAX_RESPARAMS][MAX_RESPARNAME_LEN+1]
Definition
libtpccurveio.h:216
RES::voiNr
int voiNr
Definition
libtpccurveio.h:174
RES::datanr
int datanr
Definition
libtpccurveio.h:195
RES::voi
ResVOI * voi
Definition
libtpccurveio.h:224
RES::program
char program[1024]
Definition
libtpccurveio.h:170
RES::datafile
char datafile[FILENAME_MAX]
Definition
libtpccurveio.h:181
RES::time
time_t time
Definition
libtpccurveio.h:172
ResVOI::parameter
double parameter[MAX_RESPARAMS]
Definition
libtpccurveio.h:154
ResVOI::hemisphere
char hemisphere[MAX_REGIONSUBNAME_LEN+1]
Definition
libtpccurveio.h:149
ResVOI::place
char place[MAX_REGIONSUBNAME_LEN+1]
Definition
libtpccurveio.h:151
ResVOI::name
char name[MAX_REGIONNAME_LEN+1]
Definition
libtpccurveio.h:145
ResVOI::voiname
char voiname[MAX_REGIONSUBNAME_LEN+1]
Definition
libtpccurveio.h:147
Voi::voiname
char voiname[MAX_REGIONSUBNAME_LEN+1]
Definition
libtpccurveio.h:50
Voi::name
char name[MAX_REGIONNAME_LEN+1]
Definition
libtpccurveio.h:48
Voi::hemisphere
char hemisphere[MAX_REGIONSUBNAME_LEN+1]
Definition
libtpccurveio.h:52
Voi::place
char place[MAX_REGIONSUBNAME_LEN+1]
Definition
libtpccurveio.h:54
Generated on
for TPCCLIB by
1.17.0