Exemplo n.º 1
0
int main(int argc, char *argv[])
{
	int l, i, c;
	long long cnt[5], tot;
	kseq_t *seq;
	gzFile fp;
	cnt[0] = cnt[1] = cnt[2] = cnt[3] = cnt[4] = 0;
	while ((c = getopt(argc, argv, "l:r:")) >= 0) {
		switch (c) {
		case 'l': g_len = atoi(optarg); break;
		case 'r': g_ratio = atof(optarg); break;
		}
	}
	if (argc == optind) {
		fprintf(stderr, "Usage: gen_mask [-l %d] [-r %.2lf] <in.rawMask.fa>\n", g_len, g_ratio);
		return 1;
	}
	fp = gzopen(argv[optind], "r");
	seq = kseq_init(fp);
	while ((l = kseq_read(seq)) >= 0) {
		int n_good = 0, n_all = 0, n_mid = 0;
		printf(">%s %d %.3lf", seq->name.s, g_len, g_ratio);
		for (i = 0; i < l + g_len - 1; ++i) {
			int c1, c2;
			unsigned x = i < l? get_cnt(seq->seq.s[i]) : 0;
			c1 = x>>16; c2 = x&0xffff;
			if (c1 == 1) ++cnt[4];
			if (c1) {
				++n_all;
				if (is_good(c1, c2)) ++n_good;
				if (c1 == 1) ++n_mid;
			}
			x = i >= g_len? get_cnt(seq->seq.s[i - g_len]) : 0;
			c1 = x>>16; c2 = x&0xffff;
			if (c1) {
				--n_all;
				if (is_good(c1, c2)) --n_good;
				if (c1 == 1) --n_mid;
			}
			assert(n_all <= g_len && n_good <= n_all);
			if (i % 60 == 0) putchar('\n');
			x = n_all == 0? 0 : (double)n_good/n_all >= g_ratio? 3 : (double)n_mid/n_all >= g_ratio? 2 : 1;
			putchar(x + '0');
			cnt[x]++;
		}
		putchar('\n');
	}
	tot = cnt[1] + cnt[2] + cnt[3];
	fprintf(stderr, "%lld, %lld, %lld, %lld, %lld\n", cnt[0], cnt[1], cnt[2], cnt[3], cnt[4]);
	fprintf(stderr, "%lf, %lf, %lf\n", (double)cnt[3] / tot, (double)(cnt[2] + cnt[3]) / tot, (double)cnt[4] / tot);
	kseq_destroy(seq);
	gzclose(fp);
	return 0;
}
Exemplo n.º 2
0
void scan_meas_cnt(ViSession *pvi, FILE *fp)
{
	int cnt = 0;
	int actualCnt;
	int i;

	viPrintf(*pvi, "init\n");
	do{
		Sleep(10);
		viPrintf(*pvi, "*trg\n");
		Sleep(MEAS_INTERVAL);
		while(get_cnt(pvi) < NUMOFSLAVES){
			Sleep(10);
		}
		cnt++;

		viPrintf(*pvi, "r?\n");
		viRead (*pvi, (ViBuf)buf, bufLen, &len);
		buf[len]='\0';
		for(i = 0; i < len; ++i){
			if(buf[i] == ',')
				buf[i] = ' ';
		}
		fprintf(fp, "%s", buf + 2 + buf[1] - '0');

	}while(cnt != MEAS_CNT);
}
Exemplo n.º 3
0
/* Find cpe for function f, which allows cnt up to maxcnt, using
   specified number of sample points.
   If data_file, then print data so that can plot points with Excel
   smethod determines method for generating samples
*/
double find_cpe_full(elem_fun_t f, int maxcnt, int samples, FILE *data_file,
		     sample_t smethod, double bias, int verbose)
{
  int i;
  int cnt;
  double cpe;
  double overhead = 0.0;
  double *cnt_val = calloc(samples, sizeof(double));
  double *cycle_val = calloc(samples, sizeof(double));
  /* Do the samples */

  srandom(SEED);
  for (i = 0; i < samples; i++) {
    cnt = get_cnt(i, samples, maxcnt, smethod, bias);
    cnt_val[i] = cnt;
    cycle_val[i] = measure_function(f, cnt);
  }
  /* Fit data */
  cpe = ls_slope(cnt_val, cycle_val, samples);
  if (data_file)
    overhead = ls_intercept(cnt_val, cycle_val, samples);
  if (data_file && verbose) {
    /* Print x values */
    fprintf(data_file, "Cnt\t0");
    for (i = 0; i < samples; i++) 
      fprintf(data_file, "\t%.0f", cnt_val[i]);
    fprintf(data_file, "\n");
    /* Print y values */
    fprintf(data_file, "Cycs.\t");
    for (i = 0; i < samples; i++) 
      fprintf(data_file, "\t%.2f", cycle_val[i]);
    fprintf(data_file, "\n");
#if 0
    /* Print (y-b)/x values */
    fprintf(data_file, "CPE");
    for (i = 0; i < samples; i++) 
      fprintf(data_file, "\t%.2f", (cycle_val[i]-overhead)/cnt_val[i]);
    fprintf(data_file, "\n");
#endif
    /* Print ax*b values */
    fprintf(data_file, "Interp.\t%.2f", overhead);
    for (i = 0; i < samples; i++) 
      fprintf(data_file, "\t%.2f", cpe*cnt_val[i]+overhead);
    fprintf(data_file, "\n");
  }
  if (data_file && verbose) {
    /* Print results */
    fprintf(data_file, "cpe\t%.2f\tovhd\t%.2f\tavgerr\t\%.3f\tmaxerr\t\%.3f\n",
	    cpe, overhead,
	    ls_error(cnt_val, cycle_val, samples, LS_AVG),
	    ls_error(cnt_val, cycle_val, samples, LS_MAX));
  }
  free(cnt_val);
  free(cycle_val);
  return cpe;
}
Exemplo n.º 4
0
static data_t *seq_by_pow(double fst, double lst, double amt)
{
    uint i;
    data_t *val = xcalloc(1, sizeof(data_t));

    val->cnt = get_cnt(fst, lst, amt);
    val->data = xcalloc(val->cnt, sizeof(double));

    for (i = 0; i < val->cnt; i += 1)
	val->data[i] = pow(10, fst + i * amt);

    return val;
}
Exemplo n.º 5
0
void scan_meas_cnt(ViSession *pvi, FILE *fp)
{
	int cnt = 0;
	int actualCnt;
	int i;
	if(!fpAll){
		sprintf(buf, "%s%c%c%s", mydatedir, '\\', '\\', "allData.txt");
		fpAll = fopen("buf", "w");
	}
	sprintf(visa_cmd, trig_coun_form, MEAS_CNT);
	viPrintf(*pvi, visa_cmd);Sleep(10);
	viPrintf(*pvi, "trig:sour bus\n");Sleep(10);
	viPrintf(*pvi, "init\n");

	do{
		Sleep(10);
		viPrintf(*pvi, "*trg\n");
		Sleep(MEAS_INTERVAL);
		while(get_cnt(pvi) < 1){
			Sleep(10);
		}
		cnt++;

		//////////////////////////////////////////////////////////////////////////注意器件过多或者重复次数过多可能会导致存储器溢出

	}while(cnt != MEAS_CNT);

	viPrintf(*pvi, "fetc?\n");
	//viPrintf(*pvi, "r?\n");
	viRead (*pvi, (ViBuf)buf, bufLen, &len);
	buf[len]='\0';

	for(i = 0; i < len; ++i){
		if(buf[i] == ',')
			buf[i] = '\n';
	}
	fprintf(fp, "%s", buf);//////////////////////////////////////////////////////////////////////////
	viPrintf(*pvi, "*rst\n");

	for(i = 0; i < len; ++i){
		if(buf[i] == '\n')
			buf[i] = ' ';
	}
	fprintf(fpAll, "%s -- %s\n", strToSend2, buf);
	fflush(fpAll);
}
Exemplo n.º 6
0
void esp_show_rcstatus(struct sip_rc_status *rcstatus)
{
        int i;
        char msg[82];
        char rcstr[16];
        u32 cnt_store = rcstatus->rc_cnt_store;

        memset(msg, 0 ,sizeof(msg));
        memset(rcstr, 0 ,sizeof(rcstr));

        printk(KERN_INFO "rcstatus map 0x%08x cntStore 0x%08x\n", rcstatus->rc_map, rcstatus->rc_cnt_store);

        for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) {
                if (rcstatus->rc_map & BIT(i)) {
                        sprintf(rcstr, "rcIdx %d, cnt %d ", i, get_cnt(cnt_store, i));
                        strcat(msg, rcstr);
                }
        }
        printk(KERN_INFO "%s \n", msg);
}
Exemplo n.º 7
0
Arquivo: main.c Projeto: barosl/b-tree
int get_cnt(int node_idx) {
	node_t node;
	node.idx = node_idx;
	load_node(&node);

	int res = 0;

	int i;
	i = 0;
	while (i < ORDER_3) {
		if (i < node.child_cnt) {
			res += get_cnt(node.childs[i]);
		}

		if (i < node.rec_cnt) {
			res++;
		}

		i++;
	}

	return res;
}
Exemplo n.º 8
0
long fpga_unlocked_ioctl(struct file *fp, unsigned int cmd, unsigned long arg)
{
    switch (cmd) {
    case FPGA_IOCTL_ALL_IN: {
        struct fpga_ram *raw_data = (struct fpga_ram *)arg;
        if (!access_ok(VERIFY_WRITE, raw_data, sizeof(struct fpga_ram)))
            return -EFAULT;
        if (__get_ti(raw_data->ti_raw) || __get_ai(raw_data->ai_raw)
                || __get_di(raw_data->di_raw) || __get_cnt(raw_data->cnt_raw))
            return -EFAULT;
        FPGA_IOCTL_MSG("FPGA_IOCTL_ALL_IN");
        break;
    }
    case FPGA_IOCTL_ALL_TI: {
        fpga_ti_t __user *ti_dat = (fpga_ti_t __user *)arg;
        /* int j; */
        if (get_ti(ti_dat))
            return -EFAULT;
        /* for (j = 0; j < TI_PORT_SIZE ;j++) */
        /* 	printk(KERN_NOTICE "#%d : %x,  ", j, ti_dat[j]); */
        /* printk(KERN_NOTICE "\n"); */
        FPGA_IOCTL_MSG("FPGA_IOCTL_ALL_TI");
        break;
    }
    case FPGA_IOCTL_ALL_AI: {
        fpga_ai_t __user *ai_dat = (fpga_ai_t __user *)arg;
        if (get_ai(ai_dat))
            return -EFAULT;
        FPGA_IOCTL_MSG("FPGA_IOCTL_ALL_AI");
        break;
    }
    case FPGA_IOCTL_ALL_CNT: {
        fpga_cnt_t __user *cnt_dat = (fpga_cnt_t __user *)arg;
        if (get_cnt(cnt_dat))
            return -EFAULT;
        FPGA_IOCTL_MSG("FPGA_IOCTL_ALL_CNT");
        break;
    }
    case FPGA_IOCTL_ALL_DI: {
        fpga_di_t __user *di_dat = (fpga_di_t __user *)arg;
        if (get_di(di_dat))
            return -EFAULT;
        FPGA_IOCTL_MSG("FPGA_IOCTL_ALL_DI");
        break;
    }
    case FPGA_IOCTL_ALL_AO: {
        fpga_ao_t __user *ao_dat = (fpga_ao_t __user *)arg;
        if (put_ao(ao_dat))
            return -EFAULT;
        FPGA_IOCTL_MSG("FPGA_IOCTL_ALL_AO");
        break;
    }
    case FPGA_IOCTL_ALL_DO: {
        fpga_do_t __user *do_dat = (fpga_do_t __user *)arg;
        if (put_do(do_dat))
            return -EFAULT;
        FPGA_IOCTL_MSG("FPGA_IOCTL_ALL_DO");
        break;
    }
    case FPGA_IOCTL_CONF_DI: {
        fpga_di_cnf_t __user *di_cnf = (fpga_di_cnf_t __user *)arg;
        if (put_di_conf(di_cnf))
            return -EFAULT;
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_DI");
        break;
    }
    case FPGA_IOCTL_CONF_DO: {
        fpga_do_cnf_t __user *do_cnf = (fpga_do_cnf_t __user *)arg;
        if (put_do_conf(do_cnf))
            return -EFAULT;
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_DO");
        break;
    }
    case FPGA_IOCTL_CONF_TI: {
        fpga_ti_cnf_t __user *ti_cnf = (fpga_ti_cnf_t __user *)arg;
        if (put_ti_conf(ti_cnf))
            return -EFAULT;
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_TI");
        break;
    }
    case FPGA_IOCTL_CONF_AI: {
        fpga_ai_cnf_t __user *ai_cnf = (fpga_ai_cnf_t __user *)arg;
        if (put_ai_conf(ai_cnf))
            return -EFAULT;
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AI");
        break;
    }
    case FPGA_IOCTL_CONF_CNT: {
        fpga_cnt_cnf_t __user *cnt_cnf = (fpga_cnt_cnf_t __user *)arg;
        if (put_cnt_conf(cnt_cnf))
            return -EFAULT;
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_CNT");
        break;
    }
    case FPGA_IOCTL_CONF_AO_GAIN_A: {
        if(arg)
            dac8228_config_reg |= 1<<DAC8228_GAIN_A;
        else
            dac8228_config_reg &= ~(1<<DAC8228_GAIN_A);
        fpga_write32(FPGA_ADD_AO_CONF_GAIN_A, dac8228_config_reg);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_GAIN_A");
        break;
    }
    case FPGA_IOCTL_CONF_AO_GAIN_B: {
        if(arg)
            dac8228_config_reg |= 1<<DAC8228_GAIN_B;
        else
            dac8228_config_reg &= ~(1<<DAC8228_GAIN_B);
        fpga_write32(FPGA_ADD_AO_CONF_GAIN_B, dac8228_config_reg);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_GAIN_B");
        break;
    }
    case FPGA_IOCTL_CONF_AO_SCE: {
        if(arg)
            dac8228_config_reg |= 1<<DAC8228_SCE;
        else
            dac8228_config_reg &= ~(1<<DAC8228_SCE);
        fpga_write32(FPGA_ADD_AO_CONF_SCE, dac8228_config_reg);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_SCE");
        break;
    }
    case FPGA_IOCTL_CONF_AO_CLEAR: {
        PUT_CONF(fpga_ao_clear_t, arg, FPGA_ADD_AO_CONF_CLEAR);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_CLEAR");
        break;
    }
    case FPGA_IOCTL_CONF_AO_OFFSET_A: {
        PUT_CONF(fpga_ao_offset_a_t, arg, FPGA_ADD_AO_CONF_OFFSET_A);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_OFFSET_A");
        break;
    }
    case FPGA_IOCTL_CONF_AO_OFFSET_B: {
        PUT_CONF(fpga_ao_offset_b_t, arg, FPGA_ADD_AO_CONF_OFFSET_B);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_OFFSET_B");
        break;
    }
    case FPGA_IOCTL_CONF_AO_ZERO_0: {
        PUT_CONF(fpga_ao_zero_t, arg, FPGA_ADD_AO_CONF_ZERO_0);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_ZERO_0");
        break;
    }
    case FPGA_IOCTL_CONF_AO_ZERO_1: {
        PUT_CONF(fpga_ao_zero_t, arg, FPGA_ADD_AO_CONF_ZERO_1);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_ZERO_1");
        break;
    }
    case FPGA_IOCTL_CONF_AO_ZERO_2: {
        PUT_CONF(fpga_ao_zero_t, arg, FPGA_ADD_AO_CONF_ZERO_2);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_ZERO_2");
        break;
    }
    case FPGA_IOCTL_CONF_AO_ZERO_3: {
        PUT_CONF(fpga_ao_zero_t, arg, FPGA_ADD_AO_CONF_ZERO_3);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_ZERO_3");
        break;
    }
    case FPGA_IOCTL_CONF_AO_ZERO_4: {
        PUT_CONF(fpga_ao_zero_t, arg, FPGA_ADD_AO_CONF_ZERO_4);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_ZERO_4");
        break;
    }
    case FPGA_IOCTL_CONF_AO_ZERO_5: {
        PUT_CONF(fpga_ao_zero_t, arg, FPGA_ADD_AO_CONF_ZERO_5);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_ZERO_5");
        break;
    }
    case FPGA_IOCTL_CONF_AO_ZERO_6: {
        PUT_CONF(fpga_ao_zero_t, arg, FPGA_ADD_AO_CONF_ZERO_6);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_ZERO_6");
        break;
    }
    case FPGA_IOCTL_CONF_AO_ZERO_7: {
        PUT_CONF(fpga_ao_zero_t, arg, FPGA_ADD_AO_CONF_ZERO_7);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_ZERO_7");
        break;
    }
    case FPGA_IOCTL_CONF_AO_GAIN_0: {
        PUT_CONF(fpga_ao_gain_t, arg, FPGA_ADD_AO_CONF_GAIN_0);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_GAIN_0");
        break;
    }
    case FPGA_IOCTL_CONF_AO_GAIN_1: {
        PUT_CONF(fpga_ao_gain_t, arg, FPGA_ADD_AO_CONF_GAIN_1);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_GAIN_1");
        break;
    }
    case FPGA_IOCTL_CONF_AO_GAIN_2: {
        PUT_CONF(fpga_ao_gain_t, arg, FPGA_ADD_AO_CONF_GAIN_2);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_GAIN_2");
        break;
    }
    case FPGA_IOCTL_CONF_AO_GAIN_3: {
        PUT_CONF(fpga_ao_gain_t, arg, FPGA_ADD_AO_CONF_GAIN_3);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_GAIN_3");
        break;
    }
    case FPGA_IOCTL_CONF_AO_GAIN_4: {
        PUT_CONF(fpga_ao_gain_t, arg, FPGA_ADD_AO_CONF_GAIN_4);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_GAIN_4");
        break;
    }
    case FPGA_IOCTL_CONF_AO_GAIN_5: {
        PUT_CONF(fpga_ao_gain_t, arg, FPGA_ADD_AO_CONF_GAIN_5);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_GAIN_5");
        break;
    }
    case FPGA_IOCTL_CONF_AO_GAIN_6: {
        PUT_CONF(fpga_ao_gain_t, arg, FPGA_ADD_AO_CONF_GAIN_6);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_GAIN_6");
        break;
    }
    case FPGA_IOCTL_CONF_AO_GAIN_7: {
        PUT_CONF(fpga_ao_gain_t, arg, FPGA_ADD_AO_CONF_GAIN_7);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_GAIN_7");
        break;
    }
    case FPGA_IOCTL_CONF_AO_FORM: {
        PUT_CONF(fpga_ao_form_t, arg, FPGA_ADD_AO_CONF_FORM);
        FPGA_IOCTL_MSG("FPGA_IOCTL_CONF_AO_FORM");
        break;
    }

    default :
        printk(KERN_WARNING "fpga: ERROR ioctl command : %u.\n", cmd);
        return -EINVAL;
        break;
    }

    return 0;
}
Exemplo n.º 9
0
double scan_meas_cnt_aver(ViSession *pvi, FILE *fp)
{
	int cnt = 0;
	int actualCnt;
	int i;
	char *pbuf = buf+1;
	double res = 0, tmp;

	if(!fpAll){
		sprintf(buf, "%s%c%c%s", mydatedir, '\\', '\\', "allData.txt");
		fpAll = fopen("buf", "w");
	}
	sprintf(visa_cmd, trig_coun_form, MEAS_CNT);
	viPrintf(*pvi, visa_cmd);Sleep(10);
	viPrintf(*pvi, "trig:sour bus\n");Sleep(10);
	viPrintf(*pvi, "init\n");

	do{
		Sleep(10);
		viPrintf(*pvi, "*trg\n");
		Sleep(MEAS_INTERVAL);
		while(get_cnt(pvi) < 1){
			Sleep(10);
		}
		cnt++;

		//////////////////////////////////////////////////////////////////////////注意器件过多或者重复次数过多可能会导致存储器溢出

	}while(cnt != MEAS_CNT);

	viPrintf(*pvi, "fetc?\n");
	//viPrintf(*pvi, "r?\n");
	viRead (*pvi, (ViBuf)buf, bufLen, &len);
	buf[len]='\0';
	for(i = 0; i < len; ++i){
		if(buf[i] == ',')
			buf[i] = ' ';
	}



	for(i = 0; i < MEAS_CNT; ++i){

		sscanf(pbuf, "%lf", &tmp);
		printf("%lf\n", tmp);
		res+=tmp;
		for(;*pbuf;++pbuf){
			if(*pbuf == ' '){
				pbuf++;pbuf++;
				break;
			}
		}
		if(!*pbuf){
			i++;
			break;
		}
	}
	
	fprintf(fp, "%s", buf);//////////////////////////////////////////////////////////////////////////
	viPrintf(*pvi, "*rst\n");
	fprintf(fpAll, "%s -- %s\n", strToSend2, buf);
	fflush(fpAll);
	return res / i;
}