void StarFinder::fitStellarSizes(
    Function2D *f, int order, double sig_clip,
    const std::vector<PotentialStar*>& star_list, double *out_sigma)
{
    // Make list of positions
    std::vector<Position> pos_list(star_list.size());
    std::transform(star_list.begin(),star_list.end(),pos_list.begin(),
                   std::mem_fun(&PotentialStar::getPos));

    // Make list of sizes
    std::vector<double> sizelist(star_list.size());
    std::transform(star_list.begin(),star_list.end(),sizelist.begin(),
                   std::mem_fun(&PotentialStar::getSize));

    // Use all stars in list (to start with anyway), so all true
    std::vector<bool> use_list(star_list.size(),true);

    if (int(star_list.size()) <= (order+1)*(order+2)/2) {
        std::ostringstream err;
        err<<"Not enough stars to do fit.  ";
        err<<"Increase stars_per_bin or decrease fit_order.";
        throw StarFinderException(err.str());
    }

    // Do the fit.
    double chisq;
    int dof;
    xdbg<<"before outlier fit\n";
    f->outlierFit(order,sig_clip,pos_list,sizelist,&use_list,0,&chisq,&dof,0);
    xdbg<<"after outlier fit\n";

    xdbg<<"chisq,dof,sigma = "<<chisq<<','<<dof<<','<<
        sqrt(chisq/dof)<<std::endl;
    *out_sigma = sqrt(chisq/dof);
}
void call_list()
{
  use_list(&g_list);
}