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 )