Wurst
view release on metacpan or search on metacpan
src/wurstsrc/fx.h view on Meta::CPAN
*/
#ifndef FX_H
#define FX_H
typedef struct FXParam {
size_t nr_groups, nr_inst, nr_dbins;
float *cw;
float **Ijk, **Ijk_nbr, **Ijk_psi, *Ijk_dist;
float ***paa, ***pna;
float **psi, **dpsi, *pdav, *pdsig;
float *dbin;
} FXParam;
#endif /* FX_H */
src/wurstsrc/param_fx.c view on Meta::CPAN
sscanf(line, "%lu", &lutmp);
if (lutmp > MAX_NR_GROUPS)
err_printf (this_sub, broke_continuing, "nr_groups", lutmp, filename);
fx->nr_groups = lutmp;
fx->cw = E_MALLOC (fx->nr_groups * sizeof (fx->cw[0]));
fx->Ijk = f_matrix(fx->nr_groups, fx->nr_inst);
fx->Ijk_nbr = f_matrix(fx->nr_groups, fx->nr_inst);
fx->Ijk_psi = f_matrix(fx->nr_groups, fx->nr_inst);
fx->Ijk_dist = E_MALLOC (fx->nr_groups * sizeof (fx->Ijk_dist[0]));
fx->pdav = E_MALLOC (fx->nr_groups * sizeof (fx->pdav[0]));
fx->pdsig = E_MALLOC (fx->nr_groups * sizeof (fx->pdsig[0]));
fx->psi = f_matrix(fx->nr_groups, fx->nr_inst);
fx->dpsi = f_matrix(fx->nr_groups, fx->nr_inst);
fx->paa = E_MALLOC (fx->nr_groups * sizeof (fx->paa[0]));
fx->pna = E_MALLOC (fx->nr_groups * sizeof (fx->pna[0]));
for (i = 0; i < fx->nr_groups; i++) {
fx->paa[i] = f_matrix(fx->nr_inst, 21);
fx->pna[i] = f_matrix(fx->nr_inst, 20);
}
for (i = 0; i < fx->nr_groups; i++) {
if (fgets(line, MAX_LINE_LEN, f) == NULL)
src/wurstsrc/param_fx.c view on Meta::CPAN
for (i = 0; i < fx->nr_groups; i++) {
int rr;
if (fgets(line, MAX_LINE_LEN, f) == NULL)
return NULL;
if (fgets(line, MAX_LINE_LEN, f) == NULL)
return NULL;
/* end distance parameters */
if (fgets(line, MAX_LINE_LEN, f) == NULL)
return NULL;
rr =
sscanf(line, "%f%f%f", &fx->Ijk_dist[i], &fx->pdav[i], &fx->pdsig[i]);
if (rr != 3) {
err_printf (this_sub, scanf_fail, 3, line);
fclose (f);
return (NULL);
}
for (j = 0; j < fx->nr_inst; j++) {
int r;
if (fgets(line, MAX_LINE_LEN, f) == NULL)
return NULL;
r = sscanf(line, "%f%f%f%f%f", &fx->Ijk[i][j],
src/wurstsrc/param_fx.c view on Meta::CPAN
return;
free(fx->cw);
free(fx->Ijk[0]);
free(fx->Ijk);
free(fx->Ijk_nbr[0]);
free(fx->Ijk_nbr);
free(fx->Ijk_psi[0]);
free(fx->Ijk_psi);
free(fx->Ijk_dist);
free(fx->pdav);
free(fx->pdsig);
free(fx->psi[0]);
free(fx->psi);
free(fx->dpsi[0]);
free(fx->dpsi);
for (i = 0; i < fx->nr_groups; i++) {
free(fx->paa[i][0]);
free(fx->paa[i]);
free(fx->pna[i][0]);
free(fx->pna[i]);
}
src/wurstsrc/score_fx.c view on Meta::CPAN
/* because we use a non-linear scale
we have to find the right bin */
for ( k = 0; k < fx->nr_dbins; k++)
if (fx->dbin[k] > d)
break;
if (k)
k--;
dpsi = k - fx->pdav[j];
tmp = 2 * fx->pdsig[j] * fx->pdsig[j];
ppsi = exp(-dpsi*dpsi/tmp) / sqrt(M_PI*tmp);
if (ppsi > FX_TINY)
ej += log(ppsi);
else
ej += log(FX_TINY);
if (ej > emax) {
emax = ej;
( run in 2.176 seconds using v1.01-cache-2.11-cpan-71847e10f99 )