48    virtual int select(
Chip *inputChip,
Chip *selectionChip)=0;  
 
   51    virtual int elipticalReduction(
Chip *selectionChip, 
double percent_selected, 
double play, 
int patience_limit);    
 
   54    int centerOfMass(
Chip *selectionChip, 
double *sample, 
double *line);
 
   55    int centerOfMassWeighted(
Chip *inputChip, 
Chip *selectionChip, 
double *sample, 
double *line);
 
   58    bool ellipseFrom5Pts(
Ellipse *ell,
double pts[5][2]);
 
   59    double elipsePercentSelected(
Chip *selectionChip,
Ellipse *ell);
 
   60    std::vector<double> minimumBoundingElipse( std::vector< std::vector<int> > pts,
Ellipse *ell);  
 
   61    bool ellipseFromCubic(
Ellipse *ell, 
double cubic[6]);            
 
   62    bool ellipseAxesAreaFromMatrix(
Ellipse *ell);
 
   63    bool bestFitEllipse(
Ellipse *ell, std::vector < std::vector<int> > *pts,
double play,
unsigned int max_iter);
 
   64    bool pointInEllipse(
Ellipse *ell, 
double pt[2],
double play);
 
   66    bool ellipseFromCenterAxesAngle(
Ellipse *ell, 
double centerSample, 
double centerLine, 
double semiMajor, 
double semiMinor, 
double theta);
 
   68    void selectionEdge(
Chip *selectionChip, std::vector < std::vector <int> > *pts);