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; }
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); }
/* 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; }
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; }
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); }
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); }
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; }
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; }
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; }