void PasteWorker::Execute () { try { CImg<unsigned char> pst(_pixels, _width, _height, 1, 4, true); for (size_t x = _left ; x < _left + pst.width() ; x++) { for (size_t y = _top ; y < _top + pst.height() ; y++) { float a = ((float) (*_cimg)(x, y, 0, 3)) / 100.0, pa = ((float) pst(x - _left, y - _top, 0, 3)) / 100.0, acpa = a * (1 - pa), na = pa + acpa; unsigned char r = (*_cimg)(x, y, 0, 0), g = (*_cimg)(x, y, 0, 1), b = (*_cimg)(x, y, 0, 2), pr = pst(x - _left, y - _top, 0, 0), pg = pst(x - _left, y - _top, 0, 1), pb = pst(x - _left, y - _top, 0, 2), nr = 0, ng = 0, nb = 0; if (na != 0) { nr = (unsigned char) ((((float) pr) * pa + ((float) r) * acpa) / na); ng = (unsigned char) ((((float) pg) * pa + ((float) g) * acpa) / na); nb = (unsigned char) ((((float) pb) * pa + ((float) b) * acpa) / na); } _cimg->fillC(x, y, 0, nr, ng, nb, (unsigned char) (na * 100.0)); } } } catch (CImgException e) { SetErrorMessage("Unable to paste image"); return; } }
// example using a PreparedStatement object : update void ex4() { sqlite::Connection con(db); con.transactionBegin(); int id = 1; std::string full_name = "John Doe Jr."; std::string upd = "UPDATE TEST SET NAME = ? WHERE ID = ?"; boost::scoped_ptr<sqlite::PreparedStatement> pst( con.prepareStatement( upd ) ); pst->setString(1,full_name); pst->setInt(2,id); pst->executeUpdate(); con.transactionCommit(); }
// example using a PreparedStatement object : insert void ex2() { sqlite::Connection con(db); con.transactionBegin(); int id = 1; std::string full_name = "John Doe"; std::string ins = "INSERT INTO TEST(ID,NAME) VALUES(?, ?)"; boost::scoped_ptr<sqlite::PreparedStatement> pst( con.prepareStatement( ins ) ); pst->setInt(1,id); pst->setString(2,full_name); pst->executeUpdate(); con.transactionCommit(); }
int main(int argc, char** argv){ ros::init(argc, argv, "pose_stamped_transformer"); ros::NodeHandle nh("~"); std::string frame_id; if (!nh.getParam("frame_id", frame_id)) { ROS_ERROR("Parameter 'frame_id' not found in namespace '%s'.", nh.getNamespace().c_str()); return 0; } PoseStampedTransformer pst(nh, "/tf2_buffer_server", frame_id); if (!pst.start(ros::Duration(2.0))) return 0; ros::spin(); return 0; }
int main(int argc, char *argv[]) { struct rlimit core_limits; core_limits.rlim_cur = 0; core_limits.rlim_max = 0; setrlimit( RLIMIT_CORE, &core_limits ); ECArgs args( argc, argv ); assert(args.nargs() == 2); conditionedType = args.arg(0); cerr << "start trainRs: " << conditionedType << endl; ECString path( args.arg( 1 ) ); if(args.isset('L')) Feature::setLM(); Term::init(path); readHeadInfo(path); Pst pst(path); if(Feature::isLM) ClassRule::readCRules(path); addSubFeatureFns(); Feature::init(path, conditionedType); whichInt = Feature::whichInt; int ceFunInt = Feature::conditionedFeatureInt[Feature::whichInt]; Feature::conditionedEvent = SubFeature::Funs[ceFunInt]; Feat::Usage = PARSE; ECString ftstr(path); ftstr += conditionedType; ftstr += ".g"; ifstream fts(ftstr.c_str()); if(!fts) { cerr << "Could not find " << ftstr << endl; assert(fts); } tRoot = new FeatureTree(fts); //puts it in root; cout.precision(3); cerr.precision(3); lamInit(); InputTree* trainingData[1001]; int usedCount = 0; sentenceCount = 0; for( ; ; sentenceCount++) { if(sentenceCount%10000 == 1) { // cerr << conditionedType << ".tr " //<< sentenceCount << endl; } if(usedCount >= 1000) break; InputTree* correct = new InputTree; cin >> (*correct); if(correct->length() == 0) break; if(!cin) break; EcSPairs wtList; correct->make(wtList); InputTree* par; par = correct; trainingData[usedCount++] = par; } if(Feature::isLM) pickLogBases(trainingData,sentenceCount); procGSwitch = true; for(pass = 0 ; pass < 10 ; pass++) { if(pass%2 == 1) cout << "Pass " << pass << endl; goThroughSents(trainingData, sentenceCount); updateLambdas(); //printLambdas(cout); zeroData(); } ECString resS(path); resS += conditionedType; resS += ".lambdas"; ofstream res(resS.c_str()); res.precision(3); printLambdas(res); printLambdas(cout); cout << "Total params = " << FeatureTree::totParams << endl; cout << "Done: " << (int)sbrk(0) << endl; }
int main(int argc, char *argv[]) { struct rlimit core_limits; core_limits.rlim_cur = 0; core_limits.rlim_max = 0; setrlimit( RLIMIT_CORE, &core_limits ); ECArgs args( argc, argv ); assert(args.nargs() == 2); if(args.isset('N')) numGram = atoi(args.value('N').c_str()); Feature::setLM(); if(args.isset('L')) Term::Language = args.value('L'); string path( args.arg( 1 ) ); if(Term::Language == "Ch") readHeadInfoCh(path); else readHeadInfo(path); string conditionedType( args.arg(0) ); cerr << "start kn3Counts " << conditionedType << endl; int minCount = 1; if(args.isset('m')) minCount = atoi(args.value('m').c_str()); Feat::Usage = KNCOUNTS; FeatureTree::minCount = minCount; Term::init(path); readHeadInfo(path); Pst pst(path); addSubFeatureFns(); Feature::assignCalc(conditionedType); FeatureTree::root() = new FeatureTree(); Feature::init(path, conditionedType); int wI = Feature::whichInt; int ceFunInt = Feature::conditionedFeatureInt[wI]; Feature::conditionedEvent = SubFeature::Funs[ceFunInt]; string trainingString( path ); int sentenceCount = 0; for( ; ; sentenceCount++) { if(sentenceCount%10000 == 1) { cerr << "rCounts " << sentenceCount << endl; } InputTree correct; cin >> correct; //if(sentenceCount > 1000) break; if(correct.length() == 0) break; //cerr <<sentenceCount << correct << endl; EcSPairs wtList; correct.make(wtList); InputTree* par; int strt = 0; par = &correct; makeSent(par); curS = par; gatherFfCounts(par, 0); if(wI == TTCALC || wI == WWCALC) { list<InputTree*> dummy2; InputTree stopInputTree(par->finish(),par->finish(), wI==TTCALC ? "" : "^^", "STOP","", dummy2,NULL,NULL); stopInputTree.headTree() = &stopInputTree; TreeHist treeh(&stopInputTree,0); treeh.hpos = 0; callProcG(&treeh); } } finalProbComputation(); string resS(path); resS += conditionedType; resS += ".g"; ofstream res(resS.c_str()); assert(res); FTreeMap& fts = FeatureTree::root()->subtree; FTreeMap::iterator fti = fts.begin(); for( ; fti != fts.end() ; fti++) { int asVal = (*fti).first; (*fti).second->printFTree(asVal, res); } res.close(); cout << "Tot words: " << totWords << endl; cout << "Total params for " << conditionedType << " = " << FeatureTree::totParams << endl; }
int main(int argc, char **argv) { int c; unsigned i, j; unsigned tm = 0; struct state *s; char *buf; while((c = getopt(argc, argv, "r::R::w::W::dsb:n:i:t:h")) != EOF) switch(c) { case 'r': nt[LinRd] = optarg ? atoi(optarg) : 1; break; case 'R': nt[RndRd] = optarg ? atoi(optarg) : 1; break; case 'w': nt[LinWr] = optarg ? atoi(optarg) : 1; break; case 'W': nt[RndWr] = optarg ? atoi(optarg) : 1; break; case 'd': oflags |= O_DIRECT; break; case 's': oflags |= O_SYNC; break; case 'b': bs = atoi(optarg); break; case 'n': bc = atoi(optarg); break; case 'i': bm = atoi(optarg); break; case 't': tm = atoi(optarg); break; case 'h': puts( "iotest: perform I/O speed test\n" "Usage is: iotest [options] device-or-file\n" "options:\n" " -r[n] - linear read test (n readers)\n" " -R[n] - random read test (n readers)\n" " -w[n] - linear write test (n writers)\n" " -W[n] - random write test (n writers)\n" " -d - use direct I/O (O_DIRECT)\n" " -s - use syncronous I/O (O_SYNC)\n" " -b bs - blocksize (default is 8192)\n" " -n bc - block count (default is whole device/file)\n" " -i nb - number of I/O iterations to perform\n" " -t sec - time to spend on all I/O\n" " -h - this help\n" "It's ok to specify all, one or some of -r,-R,-w and -W\n" ); return 0; default: fprintf(stderr, "try `iotest -h' for help\n"); exit(1); } if (optind + 1 != argc) { fprintf(stderr, "exactly one device/file argument expected\n"); return 1; } fn = argv[optind]; ntt = nt[0] + nt[1] + nt[2] + nt[3]; if (!ntt) nt[LinRd] = ntt = 1; c = open(fn, (nt[LinWr] + nt[RndWr] ? O_RDWR : O_RDONLY) | oflags); if (c < 0) edie(fn); if (!bc) { unsigned long long sz; struct stat st; fstat(c, &st); if (st.st_size) sz = st.st_size; else ioctl(c, BLKGETSIZE64, &sz); bc = sz / bs; // fprintf(stderr, "size = %lld (%u blocks)\n", sz, bc); } close(c); if (nt[RndRd] || nt[RndWr]) { #ifdef USE_DEV_URANDOM randfd = open("/dev/urandom", O_RDONLY); if (randfd < 0) edie("/dev/urandom"); #else #if 0 struct timeval tv; gettimeofday(&tv, NULL); srand48(tv.tv_usec ^ getpid()); #else srand48(0xfeda432); // arbitrary, to get repeated values on repeated runs #endif #endif } states = calloc(ntt, sizeof(*states)); s = states; buf = valloc(ntt * bs); if (tm) { signal(SIGALRM, sig); alarm(tm); } running = ntt; for(j = 0; j < 4; ++j) for(i = 0; i < nt[j]; ++i) { pthread_t t; s->buf = buf; buf += bs; s->opi = j; s->i = i; pthread_create(&t, NULL, worker, s++); } while(running) { pthread_cond_wait(&rncond, &rnmtx); putc('\r', stderr); pst(stderr); } putc('\r', stderr); pst(stdout); putc('\n', stdout); return 0; }
int main(int argc, char *argv[]) { ECArgs args( argc, argv ); assert(args.nargs() == 1); ECString path(args.arg(0)); cerr << "At start of pSfgt" << endl; for(int n = 0 ; n < 140 ; n++) numTerm[n] = 0; ECString resultsString(path); resultsString += "endings.txt"; Term::init( path ); if(args.isset('L')) Term::Language = args.value('L'); readHeadInfo(path); Pst pst(path); //???; int sentenceCount = 0; int wordCount = 0; int processedCount = 0; /*int i, j; for(i = 0 ; i < 60 ; i++) for(j = 0 ; j < 30 ; j++) data[i][j] = 0; */ int i = 0; while(cin) { if(i++%5000 == 1) cerr << i << endl; InputTree parse; cin >> parse; if(!cin) break; if(parse.length() == 0 && cin) continue; if(parse.length()==0 ||!cin) break; addWwData(&parse); processedCount++; wordCount += parse.length(); } ofstream resultsStream(resultsString.c_str()); assert(resultsStream); /*int totNt[30]; for(i = 0 ; i < 30 ; i++) totNt[i] = 0; for(i = 0 ; i <= Term::lastTagInt() ; i++) { for(j = 0 ; j < (Term::lastNTInt() - Term::lastTagInt()) ; j++) totNt[j] += data[i][j]; } */ resultsStream << numEndings << "\n"; for(i = 0 ; i < 140 ; i++) { endMap::iterator emi = endData[i].begin(); for( ; emi != endData[i].end() ; emi++) { ECString ending = (*emi).first; int cnt = (*emi).second; resultsStream << i << "\t" << ending << "\t" << (float) cnt / (float) numTerm[i] << endl; //<< "\n"; } } cout<<"totol sentence:"<<processedCount<<endl; cout<<"total suffix:"<<numEndings<<endl; return 0; }
int main(int argc, char *argv[]) { ECArgs args( argc, argv ); assert(args.nargs() == 1); ECString path(args.arg(0)); cerr << "At start of pTgNt" << endl; for(int n = 0 ; n < MAXNUMTS ; n++) numTerm[n] = 0; ECString resultsString(path); resultsString += "endings.txt"; Term::init( path ); if(args.isset('L')) Term::Language = args.value('L'); readHeadInfo(path); Pst pst(path); int sentenceCount = 0; int wordCount = 0; int processedCount = 0; int i, j; for(i = 0 ; i < MAXNUMTS ; i++) for(j = 0 ; j < MAXNUMNTS ; j++) data[i][j] = 0; i = 0; while(cin) { if(i%10000 == 0) cerr << i << endl; //if(i > 1000) break; InputTree parse; cin >> parse; if(!cin) break; if(parse.length() == 0) break; const Term* resTerm = addWwData(&parse); processedCount++; wordCount += parse.length(); i++; } ofstream resultsStream(resultsString.c_str()); assert(resultsStream); int totNt[MAXNUMTS]; for(i = 0 ; i < MAXNUMTS ; i++) totNt[i] = 0; for(i = 0 ; i <= Term::lastTagInt() ; i++) { for(j = 0 ; j < (Term::lastNTInt() - Term::lastTagInt()) ; j++) totNt[j] += data[i][j]; } resultsStream << numEndings << "\n"; for(i = 0 ; i < MAXNUMTS ; i++) { endMap::iterator emi = endData[i].begin(); for( ; emi != endData[i].end() ; emi++) { ECString ending = (*emi).first; int cnt = (*emi).second; resultsStream << i << "\t" << ending << "\t" << (float) cnt / (float) numTerm[i] << endl; //<< "\n"; } } return 0; }
int main(int argc, char *argv[]) { ECArgs args( argc, argv ); ECString path(args.arg(0)); cerr << "At start of pUgT" << endl; Term::init( path ); if(args.isset('L')) Term::Language = args.value('L'); readHeadInfo(path); Pst pst(path); int sentenceCount = 0; int i, j; for(i = 0 ; i < MAXNUMTS ; i++) { posCounts[i] = 0; posCapCounts[i] = 0; posDenoms[i] = 0; posUCounts[i] = 0; posDashCounts[i] = 0; } for(i = 0 ; i < MAXNUMTS ; i++) totCounts[i] = 0; i = 0; for( ; ; ) { if(i++%10000 == 1) cerr << i << endl; //if(i > 1000) break; InputTree parse; cin >> parse; //cerr << parse << endl; if(parse.length() == 0) break; if(!cin) break; curSent = &parse; addWwData(&parse); sentenceCount++; } ECString resultsString(path); resultsString += "pUgT.txt"; ofstream resultsStream(resultsString.c_str()); assert(resultsStream); /* we print out p(unknown|tag) p(Capital|tag) p(hasDash|tag, unknown) note for Capital the denom is different because we ignore the first two words of the sentence */ int nm = Term::lastTagInt()+1; for(i = 0 ; i < nm ; i++) { resultsStream << i << "\t"; float pugt = 0; float pudenom = (float)posDenoms[i]; if(pudenom > 0) pugt = (float)posUCounts[i]/pudenom; resultsStream << pugt << "\t"; if(posCounts[i] == 0) resultsStream << 0 << "\t"; else resultsStream << (float) posCapCounts[i]/ (float)posCounts[i] << "\t"; if(posUCounts[i] == 0) resultsStream << 0; else resultsStream << (float)posDashCounts[i]/posUCounts[i] ; resultsStream << endl; } ECString resultsString2(path); resultsString2 += "nttCounts.txt"; ofstream resultsStream2(resultsString2.c_str()); assert(resultsStream2); for(i = 0 ; i <= Term::lastNTInt() ; i++) { resultsStream2 << i << "\t"; resultsStream2 << totCounts[i] << "\n"; } return 0; }
static gnm_float pst1 (gnm_float x, const gnm_float params[], gboolean lower_tail, gboolean log_p) { return pst (x, params[0], params[1], lower_tail, log_p); }
gnm_float pst (gnm_float x, gnm_float n, gnm_float shape, gboolean lower_tail, gboolean log_p) { gnm_float p; if (n <= 0 || gnm_isnan (x) || gnm_isnan (n) || gnm_isnan (shape)) return gnm_nan; if (shape == 0.) return pt (x, n, lower_tail, log_p); if (n > 100) { /* Approximation */ return psnorm (x, shape, 0.0, 1.0, lower_tail, log_p); } /* Flip to a lower-tail problem. */ if (!lower_tail) { x = -x; shape = -shape; lower_tail = !lower_tail; } /* Generic fallback. */ if (log_p) gnm_log (pst (x, n, shape, TRUE, FALSE)); if (n != gnm_floor (n)) { /* We would need numerical integration for this. */ return gnm_nan; } /* * Use recurrence formula from "Recurrent relations for * distributions of a skew-t and a linear combination of order * statistics form a bivariate-t", Computational Statistics * and Data Analysis volume 52, 2009 by Jamallizadeh, * Khosravi, Balakrishnan. * * This brings us down to n==1 or n==2 for which explicit formulas * are available. */ p = 0; while (n > 2) { double a, lb, c, d, pv, v = n - 1; d = v == 2 ? M_LN2gnum - gnm_log (M_PIgnum) + gnm_log (3) / 2 : (0.5 + M_LN2gnum / 2 - gnm_log (M_PIgnum) / 2 + v / 2 * (gnm_log1p (-1 / (v - 1)) + gnm_log (v + 1)) - 0.5 * (gnm_log (v - 2) + gnm_log (v + 1)) + stirlerr (v / 2 - 1) - stirlerr ((v - 1) / 2)); a = v + 1 + x * x; lb = (d - gnm_log (a) * v / 2); c = pt (gnm_sqrt (v) * shape * x / gnm_sqrt (a), v, TRUE, FALSE); pv = x * gnm_exp (lb) * c; p += pv; n -= 2; x *= gnm_sqrt ((v - 1) / (v + 1)); } g_return_val_if_fail (n == 1 || n == 2, gnm_nan); if (n == 1) { gnm_float p1; p1 = (gnm_atan (x) + gnm_acos (shape / gnm_sqrt ((1 + shape * shape) * (1 + x * x)))) / M_PIgnum; p += p1; } else if (n == 2) { gnm_float p2, f; f = x / gnm_sqrt (2 + x * x); p2 = (gnm_atan_mpihalf (shape) + f * gnm_atan_mpihalf (-shape * f)) / -M_PIgnum; p += p2; } else { return gnm_nan; } /* * Negatives can occur due to rounding errors and hopefully for no * other reason. */ p = CLAMP (p, 0.0, 1.0); return p; }