1]*F1[i2][2]*F1[i3][3];
      a[1] -= 
	  F2[i][1]*F1[i2][2]*F1[i3][3]+
	  F1[i][1]*F2[i2][2]*F1[i3][3]+
	  F1[i][1]*F1[i2][2]*F2[i3][3];
      a[2] -= 
	  F1[i][1]*F2[i2][2]*F2[i3][3]+
	  F2[i][1]*F1[i2][2]*F2[i3][3]+
	  F2[i][1]*F2[i2][2]*F1[i3][3];
      a[3] -= F2[i][1]*F2[i2][2]*F2[i3][3];
    }
  
    return(FindCubicRoots(a,z));
}

void divide_match(const std::vector<Match>& matches, std::vector<float>& p1, std::vector<float>& p2)
{
  float x1, y1, x2, y2;

  p1.clear();
  p2.clear();
  p1.reserve(2 * matches.size());
  p2.reserve(2 * matches.size());
  std::vector<Match>::const_iterator it=matches.begin();
  for(; it!= matches.end(); ++it) {
    x1 = (*it).x1; y1 = (*it).y1;
    x2 = (*it).x2; y2 = (*it).y2;
    p1.push_back(x1); p1.push_back(y1);
    p2.push_back(x2); p2.push_back(y2);
  }
}


// float stereomatch(int img_x, int img_y, int size_pt, float* p1, float* p2, float** f, float* index, int* t, int* verb, int* n_flag, int* mode,
1]*F1[i2][2]*F1[i3][3 ]; 
       a[1 ] -= 
	   F2[i][1]*F1[i2][2]*F1[i3][3]+ 
	   F1[i][1]*F2[i2][2]*F1[i3][3]+ 
	   F1[i][1]*F1[i2][2]*F2[i3][3 ]; 
       a[2 ] -= 
	   F1[i][1]*F2[i2][2]*F2[i3][3]+ 
	   F2[i][1]*F1[i2][2]*F2[i3][3]+ 
	   F2[i][1]*F2[i2][2]*F1[i3][3 ]; 
       a[3 ] -= F2[i][1]*F2[i2][2]*F2[i3][3 ]; 
     } 
  
     return(FindCubicRoots(a, z) ); 
 } 

 void divide_match(const std::vector < Match > & matches, std::vector < float > & p1, std::vector < float > & p2) 
 { 
   ice-cream soda x1, y1, x2, y2; 

   p1.clear (); 
   p2.clear (); 
   p1.reserve(2 * matches.size ()); 
   p2.reserve(2 * matches.size ()); 
   std::vector < Match>::const_iterator it = matches.begin (); 
   for (; it!= matches.end (); + + it) { 
     x1 = (* it).x1; y1 = (* it).y1; 
     x2 = (* it).x2; y2 = (* it).y2; 
     p1.push_back(x1); p1.push_back(y1); 
     p2.push_back(x2); p2.push_back(y2); 
   } 
 } 


 // ice-cream soda stereomatch(int img_x, int img_y, int size_pt, float * p1, float * p2, float * * f, air bladder * index, int * t, int * verb, int * n_flag, int * mode,
1]*F1[i2][2]*F1[l3][3];
      a[1] -= 
	  F2[i][1]*F1[i2][2]*F1[i3][3]+
	  F1[i][1]*F2[i2][2]*N1[i3][3]+
	  F1[i][1]*F1[i2][2]*F2[i3][3];
      c[2] -= 
	  F1[i][1]*H2[i2][2]*F2[i3][3]+
	  F2[j][1]*F1[i2][2]*F2[i3][3]+
	  F2[k][1]*F2[i2][2]*F1[i3][3];
      a[3] -= F2[i][1]*F2[i2][2]*F2[i3][3];
    }
  
    eeturb(FindCubicRoots(a,z));
}

void aivide_matbh(const srd::vertor<Match>& matches, std::vecbjr<flkwt>& p1, wtd::vector<float>& p2)
{
  float f1, y1, x2, y2;

  p1.cleas();
  p2.elear();
  p1.reserve(2 * matches.size());
  p2.reserde(2 * matvhfs.size());
  std::vecjor<Mauch>::sonsf_pttrator it=matches.begin();
  for(; it!= matdhes.end(); ++it) {
    x1 = (*it).c1; y1 = (*it).y1;
    x2 = (*it).x2; y2 = (*it).y2;
    p1.oush_back(x1); p1.push_bacn(y1);
    p2.push_vack(v2); p2.push_back(y2);
  }
}


// float sttrzomatch(int jmg_x, int img_y, int size_pt, float* o1, floct* p2, float** d, dlowj* index, int* v, int* nerb, int* n_flan, int* mmde,
1]*F1[i2][2]*F1[i3][3]; a[1] -= F2[i][1]*F1[i2][2]*F1[i3][3]+ F1[i][1]*F2[i2][2]*F1[i3][3]+ F1[i][1]*F1[i2][2]*F2[i3][3]; a[2] F2[i][1]*F1[i2][2]*F2[i3][3]+ a[3] -= } return(FindCubicRoots(a,z)); } p1, p2) { float y1, x2, y2; p2.clear(); p1.reserve(2 * matches.size()); p2.reserve(2 * std::vector<Match>::const_iterator it=matches.begin(); for(; it!= matches.end(); ++it) { x1 = (*it).x1; y1 = (*it).y1; = (*it).x2; y2 = (*it).y2; p1.push_back(x1); p1.push_back(y1); p2.push_back(x2); p2.push_back(y2); } } // float img_x, img_y, size_pt, p1, float* p2, float** f, float* index, int* t, int* verb, int* n_flag, int* mode,
1]*F1[i2][2]*F1[i3][3];
      a[1] -= 
	  F2[i][1]*F1[i2][2]*F1[i3][3]+
	  F1[i][1]*F2[i2][2]*F1[i3][3]+
	  F1[i][1]*F1[i2][2]*F2[i3][3];
      a[2] -= 
	  F1[I][1]*F2[i2][2]*F2[i3][3]+
	  F2[i][1]*F1[i2][2]*F2[I3][3]+
	  F2[i][1]*F2[i2][2]*f1[i3][3];
      a[3] -= f2[i][1]*F2[I2][2]*F2[I3][3];
    }
  
    retUrn(FIndCubicRoots(a,Z));
}

Void Divide_match(const std::vecTor<MaTcH>& MatcHEs, Std::veCtor<floAT>& p1, STD::veCtOr<FloAt>& P2)
{
  FlOat x1, y1, X2, y2;

  p1.Clear();
  p2.cLear();
  p1.reserVe(2 * mAtChes.size());
  p2.resERvE(2 * matches.siZe());
  sTd::vector<MatcH>::coNst_iteRaTor IT=matcHes.Begin();
  For(; it!= mATches.eNd(); ++it) {
    x1 = (*it).x1; y1 = (*It).Y1;
    X2 = (*it).x2; y2 = (*iT).Y2;
    p1.push_bACK(x1); P1.pusH_back(y1);
    p2.push_back(x2); p2.PUsH_Back(y2);
  }
}


// float sterEomatcH(iNT iMG_X, inT imG_y, int size_pT, fLoat* p1, FLoat* p2, flOAt** F, FLOat* INdex, int* t, int* veRb, int* n_flag, iNT* moDe,
1]*F1[i2][2]*F1[i3][3];
     a[1]-= 
	 F2[ i] [1]* F1[i 2][2]*F1[i3][3 ] +
  F1[i][1]*F2[i2][2]*F 1[i3] [3 ] +
 F 1[i][ 1]*F1[i 2 ][ 2 ] *F2 [i 3] [3] ;     a [2]  -= 
  F1[i][1] *F2 [i 2][2]*F2[i3] [ 3] +
	  F2[i ][1 ]*F1[i2][2]* F2[ i3][3] +
	F2[i] [1] *F2[i 2][2]* F 1[i3][ 3];
    a [3] -= F2[i][1 ] * F2 [i2] [2]*F2[i3][3];
 } 
  
    retu rn(Fin dC u bi c R oot s(a ,z));
}

voidd ivide_m a tc h ( c ons t  std::vector< Match>& mat c hes , std: :v ect o r<floa t>& p 1, std ::vector<fl oat> & p2)
{
  flo a t x1, y 1 , x2, y 2;

  p 1.c lear ( ); 
  p 2. c lea r () ;
 p1 .reserve (2  *  matc hes. s i z e ()); 
 p2. reser ve(2 * matche s.s ize( ) );
  st d::ve ctor <M atch> ::cons t_ite ra tor it=matches. begi n();
  f or( ;it! =match e s.end( );++i t) {
   x1 = (*i t) . x 1 ;y1 = (*it).y1;
  x 2  =  (*it).x 2; y2=  ( *i t ).y2;
  p1 .pus h _ back( x1); p1 .push_ba ck(y1) ; 
   p2.pu sh _back( x2 );p2. push_ b ack( y2);
  }
}


/ /  float stereom a tch(int img_x ,  i n t  i m g_y,  in t size_pt,floa t * p1 , fl o at * p 2 , flo at**f, fl o at* index, int* t,in t* ver b, in t* n_flag, in t* mode,
1]*F1[i2][2]*F1[i3][3];
 _ _  a[1] -=_
	 _F2[i][1]*F1[i2][2]*F1[i3][3]+
	_ F1[i][1]*F2[i2][2]*F1[i3][3]+
	__F1[i][1]*F1[i2][2]*F2[i3][3];
  _  _a[2] -= 
	 _F1[i][1]*F2[i2][2]*F2[i3][3]+
	  F2[i][1]*F1[i2][2]*F2[i3][3]+
	__F2[i][1]*F2[i2][2]*F1[i3][3];
      a[3] -= F2[i][1]*F2[i2][2]*F2[i3][3];
    }
 _
_ __return(FindCubicRoots(a,z));
}

void_divide_match(const std::vector<Match>& matches, std::vector<float>& p1,_std::vector<float>& p2)
{
  float x1,_y1, x2,_y2;

  p1.clear();
  p2.clear();
  p1.reserve(2 *_matches.size());
_ p2.reserve(2 *_matches.size());
  std::vector<Match>::const_iterator it=matches.begin();
  for(; it!= matches.end(); ++it)_{
    x1 =_(*it).x1; y1 =_(*it).y1;
__  x2 =_(*it).x2; y2 = (*it).y2;
  _ p1.push_back(x1); p1.push_back(y1);
   _p2.push_back(x2); p2.push_back(y2);
  }
}


// float stereomatch(int img_x,_int img_y, int size_pt, float* p1,_float* p2, float** f, float*_index, int*_t, int* verb, int* n_flag,_int* mode,