Exemplo n.º 1
0
    void WebImage::loaded(Event* e)
    {
        if (_ref_counter <= 1)//if it is already dead
        {
            releaseRef();
            return;
        }


        dispatchEvent(e);

        file::buffer bf;
        _http->getResponseSwap(bf.data);

        Image mt;
        if (mt.init(bf, true))
        {
            _rs.init(&mt);
            _image->setResAnim(&_rs);

            fit();
        }

        _http = 0;
        releaseRef();
    }
polynomFitDialog::polynomFitDialog( QWidget* parent, const char* name, bool modal, WFlags fl )
    : QDialog( parent, name, modal, fl )
{
    if ( !name )
	setName( "polynomFitDialog" );
	setCaption(tr("QtiPlot - Polynomial Fit Options"));
    setSizeGripEnabled(true);
	setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
	
	GroupBox1 = new QButtonGroup( 2,QGroupBox::Horizontal,tr(""),this,"GroupBox1" );
	GroupBox1->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
	
	new QLabel( tr("Polynomial Fit of"), GroupBox1, "TextLabel1",0 );
	boxName = new QComboBox(GroupBox1, "boxShow" );
	
	new QLabel( tr("Order (1 - 9, 1 = linear)"), GroupBox1, "TextLabel2",0 );
	boxOrder = new QSpinBox(1,9,1,GroupBox1, "boxOrder" );
	boxOrder->setValue(2);
	
	new QLabel( tr("Fit curve # pts"), GroupBox1, "TextLabel3",0 );
	boxPoints = new QSpinBox(1,1000,50,GroupBox1, "boxPoints" );
	
	new QLabel( tr("Fit curve Xmin"), GroupBox1, "TextLabel4",0 );
	boxStart = new QLineEdit(GroupBox1, "boxStart" );
	boxStart->setText(tr("0"));
	
	new QLabel( tr("Fit curve Xmax"), GroupBox1, "TextLabel5",0 );
	boxEnd = new QLineEdit(GroupBox1, "boxEnd" );

	new QLabel( tr("Color"), GroupBox1, "TextLabel52",0 );
	boxColor = new ColorBox( FALSE, GroupBox1);
	boxColor->setColor(QColor(red));

	new QLabel( tr( "Show Formula on Graph?" ), GroupBox1, "TextLabel6",0 );
    boxShowFormula = new QCheckBox(GroupBox1, "boxShow" );
    boxShowFormula->setChecked( FALSE );
	
	GroupBox2 = new QButtonGroup(1,QGroupBox::Horizontal,tr(""),this,"GroupBox2" );
	GroupBox2->setFlat (TRUE);
	GroupBox2->setLineWidth (0);

	buttonFit = new QPushButton(GroupBox2, "buttonFit" );
    buttonFit->setAutoDefault( TRUE );
    buttonFit->setDefault( TRUE );
   
    buttonCancel = new QPushButton(GroupBox2, "buttonCancel" );
    buttonCancel->setAutoDefault( TRUE );
	
	QHBoxLayout* hlayout = new QHBoxLayout(this,5,5, "hlayout");
    hlayout->addWidget(GroupBox1);
	hlayout->addWidget(GroupBox2);

    languageChange();
	setMaximumHeight(GroupBox1->height());
   
    // signals and slots connections
	connect( buttonFit, SIGNAL( clicked() ), this, SLOT( fit() ) );
    connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
	connect( boxName, SIGNAL( activated(int) ), this, SLOT(activateCurve(int)));
}
Exemplo n.º 3
0
int pathfinder_prepare(Waypoint *path, int path_length, void (*fit)(Waypoint,Waypoint,Spline*), int sample_count, double dt,
        double max_velocity, double max_acceleration, double max_jerk, TrajectoryCandidate *cand) {
    if (path_length < 2) return -1;
    
    cand->saptr = malloc((path_length - 1) * sizeof(Spline));
    cand->laptr = malloc((path_length - 1) * sizeof(double));
    double totalLength = 0;
    
    int i;
    for (i = 0; i < path_length-1; i++) {
        Spline s;
        fit(path[i], path[i+1], &s);
        double dist = pf_spline_distance(&s, sample_count);
        cand->saptr[i] = s;
        cand->laptr[i] = dist;
        totalLength += dist;
    }
    
    TrajectoryConfig config = {dt, max_velocity, max_acceleration, max_jerk, 0, path[0].angle,
        totalLength, 0, path[0].angle, sample_count};
    TrajectoryInfo info = pf_trajectory_prepare(config);
    int trajectory_length = info.length;
    
    cand->totalLength = totalLength;
    cand->length = trajectory_length;
    cand->path_length = path_length;
    cand->info = info;
    cand->config = config;
    
    return 0;
}
Exemplo n.º 4
0
int main()
{
	int i;
	int max, mid, min;

	while(scanf("%d",&n)==1,n)
	{
		memset(map,0,sizeof(map));
		for(i = 0; i < n; i++)
		{
			scanf("%s",adj[i]);
		}
		get_graph();
		min = 1;max = n;
		while(min<max)
		{
			memset(c,-1,sizeof(c));
			mid = (max+min)/2;
			if(fit(0,mid))
				max = mid;
			else
				min = mid+(min==mid);
		}
		printf("%d channel",min);
		if(min!=1)
			putchar('s');
		puts(" needed.");
	}
	return 1;
}
Exemplo n.º 5
0
/* ---------------------------------------------------------------------- */
float Population::get_best_fitness() {
  int size=this->get_size();

  std::vector<float> fit(size);
  for(int i=0; i<size; i++) { fit[i]=flock[i].get_fitness(); }
  return *(std::min_element(fit.begin(), fit.end())); 
}
Exemplo n.º 6
0
void LMS::fit_quadratic(                          //fit sample
                        float outlier_threshold,  //min outlier size
                        double &out_a,            //x squared
                        float &out_b,             //output line
                        float &out_c) {
  inT32 trials;                  //no of medians
  double test_a;
  float test_b, test_c;          //candidate line
  float test_error;              //error of test line

  if (samplecount < 3) {
    out_a = 0;
    fit(out_b, out_c);
    return;
  }
  pick_quadratic(a, m, c);
  line_error = compute_quadratic_errors (outlier_threshold, a, m, c);
  for (trials = 1; trials < lms_line_trials * 2; trials++) {
    pick_quadratic(test_a, test_b, test_c);
    test_error = compute_quadratic_errors (outlier_threshold,
      test_a, test_b, test_c);
    if (test_error < line_error) {
      line_error = test_error;   //find least median
      a = test_a;
      m = test_b;
      c = test_c;
    }
  }
  fitted = TRUE;
  out_a = a;
  out_b = m;
  out_c = c;
}
Exemplo n.º 7
0
int Row::insert_string(CHAR *str, int inlen) {
  register int c;
  
  
  // xpand the buffer if needed
  fit( inlen );
  
  // we are growing
  len += inlen;
  
  // slide right
  for( c = len ; c > pos; c-- )
    text[c] = text[c-inlen];
  
  // termination
  text[len+1] = EOT;
  
  // new string at current position
  for( c = 0; c < inlen; c++ )
    text[pos+c] = str[c];
  
  // advance position
  // pos += inlen;
  
  return len;
  
}
Exemplo n.º 8
0
void fincr(_MIPD_ flash x,int n,int d,flash y)
{ /* increment x by small fraction n/d - y=x+(n/d) */
#ifdef MR_OS_THREADS
    miracl *mr_mip=get_mip();
#endif
    if (mr_mip->ERNUM) return;

    MR_IN(43)

    if (d<0)
    {
        d=(-d);
        n=(-n);
    }
    numer(_MIPP_ x,mr_mip->w1);
    denom(_MIPP_ x,mr_mip->w2);
    mr_mip->check=OFF;
    premult(_MIPP_ mr_mip->w1,d,mr_mip->w5);
    premult(_MIPP_ mr_mip->w2,d,mr_mip->w6);
    premult(_MIPP_ mr_mip->w2,n,mr_mip->w0);
    add(_MIPP_ mr_mip->w5,mr_mip->w0,mr_mip->w5);
    mr_mip->check=ON;
    if (d==1 && fit(mr_mip->w5,mr_mip->w6,mr_mip->nib))
        fpack(_MIPP_ mr_mip->w5,mr_mip->w6,y);
    else
        mround(_MIPP_ mr_mip->w5,mr_mip->w6,y);
    MR_OUT
}
Exemplo n.º 9
0
void main(void)
{
	static char mesg[] = "Привет! Я Ваша тетя.";
	puts(Rus(mesg));
	fit(mesg, 10);
	puts(Rus(mesg));
}
Exemplo n.º 10
0
int main(int argc, const char * argv[])
{
	BloomFilter fit(10, 8);

	fit.add("aaaaaaaaaaaaaaaaaa");
	fit.add("grhuifdhgfhduighruid");
	fit.add("re98y5uygr7wtyn985igh");
	fit.add("FHUIEWTN4Y8NRHUGFHKD");
	fit.add("^&TT*GJGTY%*&*%^FJVHJ");
	fit.add("5479692065892067586754092");
	fit.add("1");

	printf("%d, %d, %d, %d, %d, %d, %d\n",
	fit.find("aaaaaaaaaaaaaaaaaa"),
	fit.find("grhuifdhgfhduighruid"),
	fit.find("re98y5uygr7wtyn985igh"),
	fit.find("FHUIEWTN4Y8NRHUGFHKD"),
	fit.find("^&TT*GJGTY%*&*%^FJVHJ"),
	fit.find("5479692065892067586754092"),
	fit.find("1"));


	char str[10];
	while(std::cin >> str)
	{
		std::string s(str);
		if (s == "1")
		{
			return 0;
		}
	}

    return 0;
}
Exemplo n.º 11
0
int main(void)
{
	long idum=(-1984);
	int i,mwt=1;
	float a,abdev,b,chi2,q,siga,sigb;
	float *x,*y,*sig;

	x=vector(1,NDATA);
	y=vector(1,NDATA);
	sig=vector(1,NDATA);
	for (i=1;i<=NPT;i++) {
		x[i]=0.1*i;
		y[i] = -2.0*x[i]+1.0+SPREAD*gasdev(&idum);
		sig[i]=SPREAD;
	}
	fit(x,y,NPT,sig,mwt,&a,&b,&siga,&sigb,&chi2,&q);
	printf("\nAccording to routine FIT the result is:\n");
	printf("   a =  %8.4f   uncertainty:  %8.4f\n",a,siga);
	printf("   b =  %8.4f   uncertainty:  %8.4f\n",b,sigb);
	printf("   chi-squared:  %8.4f  for  %4d  points\n",chi2,NPT);
	printf("   goodness-of-fit:  %8.4f\n",q);
	printf("\nAccording to routine MEDFIT the result is:\n");
	medfit(x,y,NPT,&a,&b,&abdev);
	printf("   a =  %8.4f\n",a);
	printf("   b =  %8.4f\n",b);
	printf("   absolute deviation (per data point): %8.4f\n",abdev);
	printf("   (note: gaussian SPREAD is %8.4f)\n",SPREAD);
	free_vector(sig,1,NDATA);
	free_vector(y,1,NDATA);
	free_vector(x,1,NDATA);
	return 0;
}
Exemplo n.º 12
0
int
main (int argc, char *argv[])
{
  std::string pcd_file;

  if (argc > 1)
  {
    pcd_file = argv[1];
  }
  else
  {
    printf ("\nUsage: pcl_example_nurbs_fitting_curve pcd-file \n\n");
    printf ("  pcd-file    point-cloud file\n");
    exit (0);
  }

  // #################### LOAD FILE #########################
  printf ("  loading %s\n", pcd_file.c_str ());
  pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);
  pcl::PCLPointCloud2 cloud2;

  if (pcl::io::loadPCDFile (pcd_file, cloud2) == -1)
    throw std::runtime_error ("  PCD file not found.");

  fromPCLPointCloud2 (cloud2, *cloud);

  // convert to NURBS data structure
  pcl::on_nurbs::NurbsDataCurve2d data;
  PointCloud2Vector2d (cloud, data.interior);

  viewer.setSize (800, 600);
  viewer.addPointCloud<pcl::PointXYZ> (cloud, "cloud");

  // #################### CURVE PARAMETERS #########################
  unsigned order (3);
  unsigned n_control_points (10);

  pcl::on_nurbs::FittingCurve2d::Parameter curve_params;
  curve_params.smoothness = 0.000001;
  curve_params.rScale = 1.0;

  // #################### CURVE FITTING #########################
  ON_NurbsCurve curve = pcl::on_nurbs::FittingCurve2d::initNurbsPCA (order, &data, n_control_points);

  pcl::on_nurbs::FittingCurve2d fit (&data, curve);
  fit.assemble (curve_params);

  Eigen::Vector2d fix1 (0.1, 0.1);
  Eigen::Vector2d fix2 (1.0, 0.0);
//  fit.addControlPointConstraint (0, fix1, 100.0);
//  fit.addControlPointConstraint (curve.CVCount () - 1, fix2, 100.0);

  fit.solve ();

  // visualize
  VisualizeCurve (fit.m_nurbs, 1.0, 0.0, 0.0, true);
  viewer.spin ();

  return 0;
}
Exemplo n.º 13
0
vector< ASMFitResult > ASMModel::fitAll(
        const Mat & img,
        const vector< cv::Rect > & detectedObjs,
        int verbose) {
    vector< ASMFitResult > fitResultV;
    for (uint i=0; i<detectedObjs.size(); i++){
        cv::Rect r = detectedObjs[i];
        r.y -= r.height*searchYOffset;
        r.x -= r.width*searchXOffset;
        if (r.x<0) r.x = 0;
        if (r.y<0) r.y = 0;
        r.width *= searchWScale;
        r.height *= searchHScale;
        if (r.x+r.width>img.cols) r.width = img.cols-r.x;
        if (r.y+r.height>img.rows) r.height = img.rows-r.y;

        // Fit it!
        ASMFitResult fitResult = fit(img(r), verbose);
        SimilarityTrans s2;
        s2.Xt = r.x;
        s2.Yt = r.y;
        s2.a = 1;
        fitResult.transformation = s2 * fitResult.transformation;
        fitResultV.push_back(fitResult);
    }
    return fitResultV;
}
Exemplo n.º 14
0
cv::Mat fourier::convolve(const cv::Mat &data, const cv::Mat &kernel) {
    cv::Size size = data.size();
    cv::Size optimal = fit(size);
    cv::Mat data_f = transform(data, optimal);
    cv::Mat kernel_f = transform(kernel, optimal);
    cv::Mat fourier = data_f.mul(kernel_f);
    return inverse(fourier, size);
}
Exemplo n.º 15
0
/**
 * \brief Constructor.
 * \param f The font used to display the text.
 * \param label The text displayed in the button.
 */
bear::gui::button::button( const font_type& f, const std::string& label )
  : visual_component(), m_text( NULL ), m_icon( NULL ), m_margin(0)
{
  create();
  m_text->set_font(f);
  m_text->set_text(label);
  fit(m_margin);
} // button::button()
Exemplo n.º 16
0
std::auto_ptr<FitResult> Fitter::fit(const DataVector &data, IFMLFunction &f) const
{
  std::auto_ptr<IFMLDataIterator> it = data.createIterator();

  if(!it.get()) return std::auto_ptr<FitResult>();

  return fit(*it.get(),f);
}
Exemplo n.º 17
0
void fitall(){
double p0[4],p[4],half,width;
int i,j,k,ud,info;
char str1[256];

	FitGraceinit();
	half=0.0;
	GracePrintf("focus g0");
	
	for(j=0;j<4;j++){
		for(k=0;k<NCH;k++){
			mn=10000000;
			mx=0;
			for(i=0;i<NPOINTS;i++){
				fitdat[i]=data[j][k][i];
				if(fitdat[i]>=mx) mx=fitdat[i];
				if(fitdat[i]<=mn) mn=fitdat[i];
				}
			half=(mn+mx)/2.0;
			if((j==0) || (j==2)){
			  fitud=1;
			  for(i=0;i<NPOINTS-1;i++){
                        	if((fitdat[i]>=half) && (fitdat[i+1]<=half)){
                                	/*printf("LoMid = %i\n",i);*/
                                	p0[1]=x[i]; /* center */
                                	p0[2]=60.0; /* width (V) */
					p0[0]=(mx-mn)/2;/* height */
					p0[3]=mn;   /* baseline */
					}
				}
			  }

			if((j==1) || (j==3)){
			  fitud=-1;
                  	  for(i=0;i<NPOINTS-1;i++){
                        	if((fitdat[i]<=half) && (fitdat[i+1]>=half)){
                                	/*printf("LoMid = %i\n",i);*/
                                	p0[1]=x[i]; /* center */
                                	p0[2]=60.0; /* width (V) */
					p0[0]=(mx-mn)/2;/* height */
					p0[3]=mn;   /* baseline */
					}
				}
			  }

			printf("Before: p0=%g p1=%g p2=%g p3=%g\n",p0[0],p0[1],p0[2],p0[3]);
			fit(p0,&info);
			printf("After: p0=%g p1=%g p2=%g p3=%g info=%i\n",p0[0],p0[1],p0[2],p0[3],info);
			for(i=0;i<4;i++) fits[j][k][i]=p0[i];
                        /*printf("Center=%g  width=%g  max=%g  min=%g  info=%i\n",fits[j][k][1],fits[j][k][2],fits[j][k][0]+fits[j][k][3],info);*/
                        sprintf(str1,"g0.s%i point %g, %g",j,fits[j][k][1],fits[j][k][2]);
			GracePrintf(str1);
			}
	GracePrintf("autoscale");
	GracePrintf("redraw");
	}
	if(save_fits()) printf("save fits error\n");
}
Exemplo n.º 18
0
void TypeInferenceVisitor::visitBlockNode(BlockNode* node) {
	_scopes.push(node->scope());
	Scope::FunctionIterator fit(node->scope());
	while(fit.hasNext()) {
		processFunction(fit.next());
	}
	node->visitChildren(this);
	_scopes.pop();
}
Exemplo n.º 19
0
PolynomFitDialog::PolynomFitDialog(QWidget *parent, Qt::WFlags fl)
    : QDialog(parent, fl) {
  setWindowTitle(tr("Polynomial Fit Options"));
  setSizeGripEnabled(true);

  QGroupBox *gb1 = new QGroupBox();
  QGridLayout *gl1 = new QGridLayout(gb1);
  gl1->addWidget(new QLabel(tr("Polynomial Fit of")), 0, 0);

  boxName = new QComboBox();
  gl1->addWidget(boxName, 0, 1);

  gl1->addWidget(new QLabel(tr("Order (1 - 9, 1 = linear)")), 1, 0);
  boxOrder = new QSpinBox();
  boxOrder->setRange(1, 9);
  boxOrder->setValue(2);
  gl1->addWidget(boxOrder, 1, 1);

  gl1->addWidget(new QLabel(tr("Fit curve Xmin")), 2, 0);
  boxStart = new QLineEdit(tr("0"));
  gl1->addWidget(boxStart, 2, 1);

  gl1->addWidget(new QLabel(tr("Fit curve Xmax")), 3, 0);
  boxEnd = new QLineEdit();
  gl1->addWidget(boxEnd, 3, 1);

  gl1->addWidget(new QLabel(tr("Color")), 4, 0);
  boxColor = new ColorBox();
  boxColor->setColor(QColor(Qt::red));
  gl1->addWidget(boxColor, 4, 1);

  boxShowFormula = new QCheckBox(tr("Show Formula on Graph?"));
  boxShowFormula->setChecked(false);
  gl1->addWidget(boxShowFormula, 5, 1);
  gl1->setRowStretch(6, 1);

  buttonFit = new QPushButton(tr("&Fit"));
  buttonFit->setDefault(true);

  buttonCancel = new QPushButton(tr("&Close"));

  QVBoxLayout *vl = new QVBoxLayout();
  vl->addWidget(buttonFit);
  vl->addWidget(buttonCancel);
  vl->addStretch();

  QHBoxLayout *hlayout = new QHBoxLayout(this);
  hlayout->addWidget(gb1);
  hlayout->addLayout(vl);

  languageChange();

  connect(buttonFit, SIGNAL(clicked()), this, SLOT(fit()));
  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
  connect(boxName, SIGNAL(activated(const QString &)), this,
          SLOT(activateCurve(const QString &)));
}
Exemplo n.º 20
0
/**
 * \brief Constructs a button with an icon and no text.
 * \param icon The icon.
 */
bear::gui::button::button( const visual::sprite& icon )
  : visual_component(), m_text( NULL ), m_icon( NULL ), m_margin(0)
{
  create();

  m_icon->set_size( icon.get_size() );
  m_icon->set_picture( icon );
  fit(m_margin);
} // button::button()
Exemplo n.º 21
0
int main(int argc, char *argv[])
{
    setIO("sample");
    while(~scanf("%d%d",&m,&n)){
     if(n == 0 && m == 0) break;
     init();
     for(int i=1;i<=m;++i) scanf("%s",map[i]+1);
     for(int i = 1;i<=m;++i){
      cur[i] = 0;
      for(int j = 1 ; j <= n; ++ j)
       if(map[i][j] == 'H') 
       cur[i] += (1<<(j-1));
       
     }
     CLEAR(dp,0xff);
     for(int i = 1;i<=top;++i)
     {
      num[i] = count(stk[i]);
      if(fit(stk[i],1))
       dp[1][1][i] = num[i];
     }
     for(int i =2;i<=m;++i)
      for(int t = 1;t<=top;++t){
       if(!fit(stk[t],i)) continue;
       for(int j = 1;j<=top;++j){
        if(stk[t]&stk[j]) continue;
        for(int k = 1;k<=top;++k)
        {
         if(stk[t] & stk[k]) continue;
         if(dp[i-1][j][k]==-1)continue;
         dp[i][k][t] = max(dp[i][k][t],dp[i-1][j][k]+num[t]);
        }
       }
      }
    
    int ans = 0;
    for(int i = 1;i<=m;++i)
     for(int j =1;j<=top;++j)
      for(int k = 1;k<=top;++k)
       ans = max(ans,dp[i][j][k]);
    printf("%d\n",ans);}
    closeIO();
    return EXIT_SUCCESS;
}
Exemplo n.º 22
0
void PluginCollection::scanPlugins() {
  QMap<QString,QString> backup = _installedPluginNames;
  bool changed = false;
  _installedPlugins.clear();
  _installedPluginNames.clear();

  QStringList dirs = KGlobal::dirs()->resourceDirs("kstplugins");
  dirs += KGlobal::dirs()->resourceDirs("kstpluginlib");
  for (QStringList::ConstIterator it = dirs.begin(); it != dirs.end(); ++it) {
    //kdDebug() << "Scanning [" << *it << "] for plugins." << endl;
    QDir d(*it);

    d.setFilter(QDir::Files | QDir::NoSymLinks);
    d.setNameFilter("*.xml");

    const QFileInfoList *list = d.entryInfoList();
    if (!list) {
      continue;
    }

    QFileInfoListIterator fit(*list);
    QFileInfo *fi;

    while ((fi = fit.current()) != 0L) {
      if (_parser->parseFile(*it + fi->fileName()) == 0) {
        // dupe? - prefer earlier installations
        if (_installedPluginNames.contains(_parser->data()._name)) {
          ++fit;
          continue;
        }
        _installedPlugins[*it + fi->fileName()] = _parser->data();
        _installedPluginNames[_parser->data()._name] = *it + fi->fileName();
        if (!backup.contains(_parser->data()._name)) {
          emit pluginInstalled(_parser->data()._name);
          changed = true;
        } else {
          backup.remove(_parser->data()._name);
        }
      } else {
        KstDebug::self()->log(i18n("Error parsing XML file '%1'; skipping.").arg(*it + fi->fileName()), KstDebug::Warning);
      }
      ++fit;
    }
  }

  while (!backup.isEmpty()) {
    KstDebug::self()->log(i18n("Detected disappearance of '%1'.").arg(backup.begin().key()));
    emit pluginRemoved(backup.begin().key());
    backup.remove(backup.begin());
    changed = true;
  }

  if (changed) {
    emit pluginListChanged();
  }
}
Exemplo n.º 23
0
    void ClosureAnalyzer::visitBlockNode(BlockNode *node) {
        _scope = node->scope();
        embraceVars(node->scope());
        node->visitChildren(this);
        Scope::FunctionIterator fit(node->scope());
        while( fit.hasNext())
            visitAstFunction(fit.next());

        _scope = node->scope()->parent();
    }
Exemplo n.º 24
0
void
WorkerStemFit::run()
{
    Stem_fit fit(_cloud,_min_height, _bin_width, _epsilon);
    std::vector<pcl::ModelCoefficients> cylinders = fit.getCylinders();
    std::vector<float> distances = compute_distances(cylinders);
    std::vector<float> distances_only_fitted_points = reduce_distances(distances,cylinders);
    float dist = squared_mean(distances_only_fitted_points);
    get_optimization()->updateCoeff(dist, _bin_width, _epsilon);
}
Exemplo n.º 25
0
void AABoundingBox::fit(vector<AABoundingBox> AABBList)
{
	vector<Vector> pointList;
	for(vector<AABoundingBox>::iterator i = AABBList.begin(); i != AABBList.end(); i++)
	{
		pointList.push_back(i->getMinVertex());
		pointList.push_back(i->getMaxVertex());
	}
	fit(pointList);
}
 /*
  * perform the actual conversion
  * return true if the conversion is successfull, false on the contrary
  */
 bool operator()()
 {
     // initialize the reference
     const NL::Vector & coeff = fitter.result();
     fit();
     if ( !check_bound(1, coeff[0], coeff[1], coeff[2], coeff[3], coeff[4]) )
         return false;
     if ( !(make_elliptiarc()) ) return false;
     return true;
 }
Exemplo n.º 27
0
BSpline<T> fitBSpline( const std::vector<T> &samples, int degree, int outputSamples )
{
	BSplineFit<typename T::TYPE> fit( T::DIM, (int)samples.size(), &(samples[0].x), degree, outputSamples );

	vector<T> points;
	for( int c = 0; c < fit.getControlQuantity(); ++c ) {
		points.push_back( ( T( &fit.getControlData()[c * T::DIM] ) ) );
	}
	return BSpline<T>( points, fit.getDegree(), false, true );
}
Exemplo n.º 28
0
int dag(int x){
	if(dp[x]>-1)return dp[x];
	dp[x]=0;
	int i;
	for(i=1;i<=m;i++){
		if(i==x)continue;
		if(fit(x,i))dp[x]=max(dp[x],dag(i)+1);
		}
	return dp[x];
	}
Exemplo n.º 29
0
FittedLearner* CGBMEngine::FitLearner(double* func_estimate) {
  // Initialize adjustments to function estimate
  std::vector<double> delta_estimates(datacontainer_.get_data().nrow(), 0);

  // Bag data
  datacontainer_.BagData();

  // Set up tree
  std::auto_ptr<CCARTTree> tree(new CCARTTree(tree_params_));

  // Compute Residuals and fit tree
  datacontainer_.ComputeResiduals(&func_estimate[0], residuals_);
  tree->Grow(residuals_, datacontainer_.get_data(), datacontainer_.get_bag(),
             delta_estimates);

  // Now I have adF, adZ, and vecpTermNodes (new node assignments)
  // Fit the best constant within each terminal node

  // Adjust terminal node predictions and shrink
  datacontainer_.ComputeBestTermNodePreds(&func_estimate[0], residuals_,
                                          *tree.get());
  tree->Adjust(delta_estimates);

  // Compute the error improvement within bag
  double oobag_improv = datacontainer_.ComputeBagImprovement(
      &func_estimate[0], tree->get_shrinkage_factor(), delta_estimates);

// Update the function estimate
#pragma omp parallel for schedule(static, tree->get_array_chunk_size()) \
  num_threads(tree->get_num_threads())
  for (unsigned long i = 0; i < datacontainer_.get_data().get_trainsize();
       i++) {
    func_estimate[i] += tree->get_shrinkage_factor() * delta_estimates[i];
  }

  // Make validation predictions
  double train_error = datacontainer_.ComputeDeviance(&func_estimate[0], false);
  tree->PredictValid(datacontainer_.get_data(),
                     datacontainer_.get_data().get_validsize(),
                     delta_estimates);

#pragma omp parallel for schedule(static, tree->get_array_chunk_size()) \
  num_threads(tree->get_num_threads())
  for (unsigned long i = datacontainer_.get_data().get_trainsize();
       i < datacontainer_.get_data().get_trainsize() +
               datacontainer_.get_data().get_validsize();
       i++) {
    func_estimate[i] += delta_estimates[i];
  }

  double valid_error = datacontainer_.ComputeDeviance(&func_estimate[0], true);
  std::auto_ptr<FittedLearner> fit(new FittedLearner(
      tree, datacontainer_.get_data(), train_error, valid_error, oobag_improv));
  return fit.release();
}
Exemplo n.º 30
0
int main()
{
	FILE *fi = fopen("ttwo.in", "r");
	FILE *fo = fopen("ttwo.out", "w");
	int i, j, fx, fy, cx, cy, cd, fd, rst = 0;
	char temp[20];
	for(i = 0; i < 10; ++i) {
		fscanf(fi, "%s", temp);
		for(j = 0; j < 10; ++j) {
			if(temp[j] == '*')
				map[j][i] = 0;
			else map[j][i] = 1;
			if (temp[j] == 'F') {
				fx = j;
				fy = i;
			}
			else if (temp[j] == 'C') {
					cx = j;
					cy = i;
			}
		}
	}
	cd = fd = 0;
	while (!flag[fx][fy][fd][cx][cy][cd]) {
		flag[fx][fy][fd][cx][cy][cd] = 1;
		++rst;
		if(fit(fx, fy, fd)) {
			fx += di[fd][0];
			fy += di[fd][1];
		} else fd = (fd + 1) % 4;
		if(fit(cx, cy, cd)) {
			cx += di[cd][0];
			cy += di[cd][1];
		} else cd = (cd + 1) % 4;
		if ((cx == fx) && (cy == fy)) {
			fprintf(fo, "%d\n", rst);
			return 0;
		}
	}
	fprintf(fo, "%d\n", 0);
	return 0;	
}