コード例 #1
0
ファイル: mtch_pnm.c プロジェクト: Hao-HUST/NBIS
char mtch_pnm(NVEOL *nveol, char *a_namestr, void *a_member,
              char a_type, char *legal_values_str)
{
  char legal_valname_str[10][50], *legal_valname_p[10],
    legal_valcode_str[10][2], str[500], legal_min_str[20],
    legal_max_str[20], value_is_legal;
  int n_legal, i, n_scanned;
  float a;
  SSL *sslp;

  if(strcmp(a_namestr, nveol->namestr))
    return FALSE;
  if(a_type == MP_FILENAME)
    sslp = &(((PARM_FILENAME *)a_member)->ssl);
  else if(a_type == MP_INT)
    sslp = &(((PARM_INT *)a_member)->ssl);
  else if(a_type == MP_FLOAT)
    sslp = &(((PARM_FLOAT *)a_member)->ssl);
  else /* a_type == MP_SWITCH */
    sslp = &(((PARM_SWITCH *)a_member)->ssl);
  if(sslp->set_tried) {
    sprintf(str, "ERROR, line %d: %s set, but it was already set in \
line %d", nveol->linenum, a_namestr, sslp->linenum);
    strm_fmt(str, nveol->errstr);
  }
コード例 #2
0
// Test operator forwarding
BOOST_AUTO_TEST_CASE_TEMPLATE(operator_forwarding, CharT, char_types)
{
    typedef CharT char_type;
    typedef std::basic_string< char_type > string_type;
    typedef std::basic_ostringstream< char_type > ostream_type;
    typedef logging::basic_formatting_ostream< char_type > formatting_ostream_type;

    string_type str_fmt;
    formatting_ostream_type strm_fmt(str_fmt);

    const my_namespace::A a = my_namespace::A(); // const lvalue
    my_namespace::B b; // lvalue
    strm_fmt << a << b << my_namespace::C(); // rvalue
    strm_fmt.flush();

    ostream_type strm_correct;
    strm_correct << a << b << my_namespace::C();

    BOOST_CHECK(equal_strings(strm_fmt.str(), strm_correct.str()));
}
コード例 #3
0
ファイル: got_blk.c プロジェクト: bluefore/nbis
int got_blk(FILE *fp, PARMS *parms, char *gb_any_error,
            int *runblock_start_linenum)
{
    char namestr[200], valstr[200], illegal_phrase[500], errstr[500],
         errstr2[500], some_content = FALSE, ret;
    int linenum;

    *gb_any_error = FALSE;
    memset(parms, 0, sizeof(PARMS));
    while(1) {
        ret = get_phr(fp, namestr, valstr, illegal_phrase, &linenum);
        if(ret == WORD_PAIR) {
            if(!some_content)
                *runblock_start_linenum = linenum;
            some_content = TRUE;
            if(!st_nv_ok(namestr, valstr, linenum, parms, errstr)) {
                eb_cat(errstr);
                *gb_any_error = TRUE;
            }
        }
        else if(ret == NEWRUN) {
            if(some_content)
                return TRUE;
            else
                continue;
        }
        else if(ret == ILLEGAL_PHRASE) {
            if(!some_content)
                *runblock_start_linenum = linenum;
            some_content = TRUE;
            sprintf(errstr2, "ERROR, line %d: illegal phrase %s", linenum,
                    illegal_phrase);
            strm_fmt(errstr2, errstr);
            eb_cat(errstr);
            *gb_any_error = TRUE;
        }
        else /* ret == FINISHED */
            return some_content;
    }
}
コード例 #4
0
ファイル: st_nv_ok.c プロジェクト: Hao-HUST/NBIS
char st_nv_ok(char *namestr, char *valstr, int linenum, PARMS *parms,
              char *errstr)
{
  char errstr2[200];
  NVEOL nveol;

  nveol.namestr = namestr;
  nveol.valstr = valstr;
  nveol.errstr = errstr;
  nveol.ok = FALSE;
  nveol.linenum = linenum;

  if(
     !mtch_pnm(&nveol,
      "long_outfile", &(parms->long_outfile), MP_FILENAME, NULL)
     && !mtch_pnm(&nveol,
       "short_outfile", &(parms->short_outfile), MP_FILENAME, NULL)
     && !mtch_pnm(&nveol,
       "errfunc", &(parms->errfunc), MP_SWITCH,
       "mse 0 type_1 1 pos_sum 2")
     && !mtch_pnm(&nveol,
       "regfac", &(parms->regfac), MP_FLOAT, "0. +inf")
     && !mtch_pnm(&nveol,
       "alpha", &(parms->alpha), MP_FLOAT, NULL)
     && !mtch_pnm(&nveol,
       "purpose", &(parms->purpose), MP_SWITCH,
       "classifier 0 fitter 1")
     && !mtch_pnm(&nveol,
       "boltzmann", &(parms->boltzmann), MP_SWITCH,
       "no_prune 0 abs_prune 2 square_prune 3")
     && !mtch_pnm(&nveol,
       "temperature", &(parms->temperature), MP_FLOAT, "0. +inf")
     && !mtch_pnm(&nveol,
       "patterns_infile", &(parms->patterns_infile), MP_FILENAME,
       NULL)
     && !mtch_pnm(&nveol,
       "wts_infile", &(parms->wts_infile), MP_FILENAME, NULL)
     && !mtch_pnm(&nveol,
       "wts_outfile", &(parms->wts_outfile), MP_FILENAME, NULL)
     && !mtch_pnm(&nveol,
       "npats", &(parms->npats), MP_INT, "1 +inf")
     && !mtch_pnm(&nveol,
       "ninps", &(parms->ninps), MP_INT, "1 +inf")
     && !mtch_pnm(&nveol,
       "nhids", &(parms->nhids), MP_INT, "1 +inf")
     && !mtch_pnm(&nveol,
       "nouts", &(parms->nouts), MP_INT, "1 +inf")
     && !mtch_pnm(&nveol,
       "seed", &(parms->seed), MP_INT, "1 +inf")
     && !mtch_pnm(&nveol,
       "niter_max", &(parms->niter_max), MP_INT, "1 +inf")
     && !mtch_pnm(&nveol,
       "egoal", &(parms->egoal), MP_FLOAT, NULL)
     && !mtch_pnm(&nveol,
       "gwgoal", &(parms->gwgoal), MP_FLOAT, NULL)
     && !mtch_pnm(&nveol,
       "nfreq", &(parms->nfreq), MP_INT, NULL)
     && !mtch_pnm(&nveol,
       "errdel", &(parms->errdel), MP_FLOAT, NULL)
     && !mtch_pnm(&nveol,
       "oklvl", &(parms->oklvl), MP_FLOAT, "0. 1.")
     && !mtch_pnm(&nveol,
       "nokdel", &(parms->nokdel), MP_INT, NULL)
     && !mtch_pnm(&nveol,
       "train_or_test", &(parms->train_or_test), MP_SWITCH,
       "train 0 test 1")
     && !mtch_pnm(&nveol,
       "acfunc_hids", &(parms->acfunc_hids), MP_SWITCH,
       "sinusoid 0 sigmoid 1 linear 2")
     && !mtch_pnm(&nveol,
       "acfunc_outs", &(parms->acfunc_outs), MP_SWITCH,
       "sinusoid 0 sigmoid 1 linear 2")
     && !mtch_pnm(&nveol,
       "priors", &(parms->priors), MP_SWITCH,
       "allsame 0 class 1 pattern 2 both 3")
     && !mtch_pnm(&nveol,
       "class_wts_infile", &(parms->class_wts_infile), MP_FILENAME,
       NULL)
     && !mtch_pnm(&nveol,
       "pattern_wts_infile", &(parms->pattern_wts_infile), MP_FILENAME,
       NULL)
     && !mtch_pnm(&nveol,
       "lcn_scn_infile", &(parms->lcn_scn_infile), MP_FILENAME, NULL)
     && !mtch_pnm(&nveol,
       "patsfile_ascii_or_binary", &(parms->patsfile_ascii_or_binary),
       MP_SWITCH, "ascii 0 binary 1")
     && !mtch_pnm(&nveol,
       "trgoff", &(parms->trgoff), MP_FLOAT, "0. 1.")
     && !mtch_pnm(&nveol,
       "lbfgs_mem", &(parms->lbfgs_mem), MP_INT, "1 +inf")
     && !mtch_pnm(&nveol,
       "scg_earlystop_pct", &(parms->scg_earlystop_pct), MP_FLOAT,
       "0. +inf")
     && !mtch_pnm(&nveol,
       "lbfgs_gtol", &(parms->lbfgs_gtol), MP_FLOAT, "1.e-04 +inf")
     && !mtch_pnm(&nveol,
       "do_confuse", &(parms->do_confuse), MP_SWITCH,
       "false 0 true 1")
     && !mtch_pnm(&nveol,
       "show_acs_times_1000", &(parms->show_acs_times_1000),
       MP_SWITCH, "false 0 true 1")
     && !mtch_pnm(&nveol,
       "do_cvr", &(parms->do_cvr), MP_SWITCH, "false 0 true 1")

     ) {

    /* supposed parm-name does not match any legal parm-name */
    sprintf(errstr2, "ERROR, line %d: illegal parm name %s",
      linenum, namestr);
    strm_fmt(errstr2, errstr);
    nveol.ok = FALSE;
  }

  return nveol.ok;
}