Exemple #1
0
texture_2d tangent_flow_map(const texture_2d& src, float sigma) {
    texture_2d tmp0(src.clone_format());
    texture_2d tmp1(src.clone_format());
    texture_2d dst(src.clone_format());
    
    glsl_program sst("sst_fs.glsl");
    sst.use();
    sst.bind_sampler("img", src);
    sst.set_uniform_2f("img_size", (float)src.get_width(), (float)src.get_height());
    sst.draw(&tmp0);

    glsl_program gauss("gauss_fs.glsl");
    gauss.use();
    gauss.bind_sampler("img", tmp0);
    gauss.set_uniform_2f("img_size", (float)src.get_width(), (float)src.get_height());
    gauss.set_uniform_1f("sigma", sigma);
    gauss.draw(&tmp1);                  

    glsl_program tfm("tfm_fs.glsl");
    tfm.use();
    tfm.bind_sampler("img", tmp1);
    tfm.set_uniform_2f("img_size", (float)src.get_width(), (float)src.get_height());
    tfm.draw(&dst);

    return dst;
}
//**********************************************************************
double stringToDouble(string str)
// Return the 1st doubles number read from the string "str". "str" should be a string containing a line of data.
{
  stringstream sst(str+" "); // add a blank at the end so the last data will be read
  double val;
  sst >> val;
  return val;
}
Exemple #3
0
void TransferForm::saveConfig()
{
	QString sst(SET_SEC_TRANS);
	Setting::save(sst+SET_KEY_CMBSA, SET_PFX_CMBITM, *m_ui.cmbSrcAddr, false);
	Setting::save(sst+SET_KEY_CMBDA, SET_PFX_CMBITM, *m_ui.cmbDstAddr);
	Setting::save(sst+SET_KEY_CMBSP, SET_PFX_CMBITM, *m_ui.cmbSrcPort);
	Setting::save(sst+SET_KEY_CMBDP, SET_PFX_CMBITM, *m_ui.cmbDstPort);

	QString skl(SET_SEC_DIR); skl += SET_KEY_LOG;
	Setting::set(skl, SET_KEY_TRANS, property(SET_SEC_DIR).toString());
}
Exemple #4
0
void TestPlat::run() {
    SelectMenu();
    string str1;
    getline(cin,str1);
    while(str1 != "q"){
        int j = 0;
        stringstream sst(str1);
        sst >> j;
        if(!sst || !sst.eof()){
            cerr << "Not Number or there's space ! Try Again!" <<endl;
            getline(cin,str1);
            continue;
        }
        if(j >= TestPlat::SlnList.size() || j < 0){
            cerr << "Invalid number(should < " << TestPlat::SlnList.size() << ")! Try again!" << endl;
            getline(cin,str1);
            continue;
        }
        int i = 0;

        for(auto& it : TestPlat::SlnList){
            if(i == j){
                SlnBase* p = it.second();
                cout << "---------------------------" << endl;
                cout << it.first << endl;
                cout << "---------------------------" << endl;
                Start(p);
                delete p;
                cout << "------------DONE-----------" << endl;
                break;
            }
            i++;
        }
        cout << " 'r or enter'(re-run) 'm' (menu) 'q' (quit) or Alogorithm id!" << endl;
        string tmp;
        getline(cin,tmp);
        //cout << "your enter: " << tmp << endl;
        if(tmp == "" || tmp == "r") continue;
        if(tmp == "q") {
            cout<< "Quit the TestPlat" << endl;
            return;
        }
        if(tmp == "m"){
            SelectMenu();
            getline(cin,str1);
            continue;
        }
        str1 = tmp;
    }
}
//**********************************************************************
vector<double> stringToDoubles(string str)
// Return a vector of doubles from the string "str". "str" should
// be a string containing a line of data.
{
  stringstream sst(str+" "); // add a blank at the end so the last data will be read
  vector<double> valueList;
  double val;
  sst >> val;
  while (sst.eof()==false)
  {
    valueList.push_back(val);
    sst >> val;
  }
  return valueList;
}
Exemple #6
0
void TransferForm::initConfig()
{
	QString sst(SET_SEC_TRANS);
	Setting::lord(sst+SET_KEY_CMBSA, SET_PFX_CMBITM, *m_ui.cmbSrcAddr, false);
	Setting::lord(sst+SET_KEY_CMBDA, SET_PFX_CMBITM, *m_ui.cmbDstAddr);
	Setting::lord(sst+SET_KEY_CMBSP, SET_PFX_CMBITM, *m_ui.cmbSrcPort);
	Setting::lord(sst+SET_KEY_CMBDP, SET_PFX_CMBITM, *m_ui.cmbDstPort);

	QString skl(SET_SEC_DIR); skl += SET_KEY_LOG;
	skl = Setting::get(skl, SET_KEY_TRANS, SET_VAL_LGTAN);
	setProperty(SET_SEC_DIR, skl);

	TK::initNetworkInterfaces(m_ui.cmbSrcAddr, true);
	TK::initNetworkInterfaces(m_ui.cmbDstAddr);
}
Exemple #7
0
std::vector< std::wstring >
SharedStringTable::parse( Record & record )
{
	int totalStrings = 0;
	int uniqueStrings = 0;

	record.dataStream().read( totalStrings, 4 );
	record.dataStream().read( uniqueStrings, 4 );

	std::vector< std::wstring > sst( uniqueStrings );

	if(MAX_SST_SIZE)
		uniqueStrings = min(MAX_SST_SIZE, uniqueStrings) ;
	for( int i = 0; i < uniqueStrings; ++i )
		sst[ i ] = loadString( record.dataStream(), record.borders() );

	return sst;
}
Exemple #8
0
// build a set of SPECULATION_CNT graphs, each of which consists of a broadcast_node,
//    xranges x yranges function_nodes, and one queue_node for output.
//    once speculation starts, if i % SPECULATION_CNT is the current graph, (i+1) % SPECULATION_CNT
//    is the first speculation, and so on.
void
build_BMU_graph(SOMap &map1) {
    // build current graph
    xsize = ((int)map1.size() + xranges - 1) / xranges;
    ysize = ((int)map1[0].size() + yranges - 1) / yranges;
    function_node_execs.clear();
    function_node_execs.reserve(xranges*yranges+1);
    for(int ii = 0; ii < xranges*yranges+1;++ii) function_node_execs.push_back(0);

    for(int scnt = 0; scnt < SPECULATION_CNT; ++scnt) {
        g[scnt] = new graph;
        send_to[scnt] = new b_node(*(g[scnt]));  // broadcast node to the function_nodes
        q[scnt] = new queue_node<search_result_type>(*(g[scnt]));  // output queue

        // create the function_nodes, tie to the graph
        s_array[scnt] = new search_node_array_type;
        s_array[scnt]->reserve(xranges);
        g_array[scnt] = new graph_array_type;
        g_array[scnt]->reserve(xranges);
        for(int i = 0; i < (int)map1.size(); i += xsize) {
            int xindex = i / xsize;
            s_array[scnt]->push_back(search_node_vector_type());
            (*s_array[scnt])[xindex].reserve(yranges);
            g_array[scnt]->push_back(graph_vector_type());
            (*g_array[scnt])[xindex].reserve(yranges);
            for( int j = 0; j < (int)map1[0].size(); j += ysize) {
                int offset = (i/xsize)*yranges + (j / ysize);
                int xmax = (i + xsize) > (int)map1.size() ? (int)map1.size() : i + xsize;
                int ymax = (j + ysize) > (int)map1[0].size() ? (int)map1[0].size() : j + ysize;
                subsquare_type sst(i,xmax,1,j,ymax,1);
                BMU_search_body bb(map1,sst,function_node_execs[offset]);
                graph *g_local = new graph;
                search_node *s = new search_node(*g_local, serial, bb); // copies Body
                (*g_array[scnt])[xindex].push_back(g_local);
                (*s_array[scnt])[xindex].push_back(s);
                make_edge(*(send_to[scnt]), *s);  // broadcast_node -> function_node
                make_edge(*s, *(q[scnt]));   // function_node -> queue_node
            }
        }
    }
}
//_________________________________________________________________
void SelectPPCoincMapRegions::SlaveBegin(TTree* /*tree*/)
{
#ifdef DEBUG
    std::cout << "slave begin" << std::endl;
#endif

    TH1::SetDefaultSumw2(true);

    TString option = GetOption();

    std::map<UInt_t,TH1D*>::iterator it;
    it=regional_coinc.begin();

    UInt_t i;
    std::ostringstream ss("",std::ios::out | std::ios::app);
    std::ostringstream sst("",std::ios::out | std::ios::app);

    for (; it!=regional_coinc.end(); it++)
    {
        ss.str("mult"); ss << fChLow << "to" << fChHigh << "_" << it->first;

        sst.str("Multiplicity "); sst << it->first;
        sst << ": Chs. " << fChLow << " to " << fChHigh;
        sst << " Events;Multiplicity Mask; Counts";
        it->second = new TH1D(ss.str().data(),
                              ss.str().data(),
                              regional_coinc_map[it->first].size(),
                              0,
                              regional_coinc_map[it->first].size());

        std::set<std::string>::reverse_iterator it2 = regional_coinc_map[it->first].rbegin();
//        std::cout << "\nMultiplicity " << it->first;
//        std::cout << "\n--------------------" << std::endl;
        for (UInt_t j=1; j<=it->second->GetNbinsX(); j++, it2++)
        {
//            std::cout << j << "\t" << *it2 << std::endl;
            it->second->GetXaxis()->SetBinLabel(j,it2->data());
        }
    }

}
Exemple #10
0
int main() {
  scanf("%d", &t);
  while (t--) {
    initialize();
    sort(edge, edge + m);
    kruskal();
    for (int i = 1; i <= n; i++) {
      int s = adj[i].size(), w;
      memset(check, false, sizeof(check));
      check[i] = true;
      for (int j = 0; j < s; j++) {
        w = adj[i][j].w;
        dfs(w, i, 0, adj[i][j].val);
      }
    }
    if (sst())
      printf("%d\n", mst);
    else
      printf("Not Unique!\n");
  }
  return 0;
}