
int gmbl_matrices_and_expense(
    grequest *greq, 
    float **ins, 
    float **outs, 
    int indim, 
    int outdim, 
    int npts, 
    float *query, 
    float **xtx,
    float **xty_transpose,
    float **yty,
    int *num_significant_points,
    float *squared_weights
  )

#if 0
void crappy_posn_to_averager_vector(Game *g, vdeacon *vdc, Posn *p, float *vec)
	/*  wouldn't a kd-tree be nice?  */
{
  const int MAX_SAMPLES = 10000;
  float query[MAX_INPUTS];
  float dist[MAX_SAMPLES];

  int num_feats = vdc->ggf->fh->num_feats;
  char *gms = vdc->ggf->fh->gmstring;
  
  static float scales[MAX_INPUTS];
  static bool did_scales = FALSE;

  int i,f;

  if (!did_scales) {  /* precompute the weighting factors for each dim. */
    for (f=0; f<num_feats; f++) {
      scales[f] = pow(2.0, (float) (gms[4+f] - '0'));
    }
    did_scales = TRUE;
  }
  
  get_feats_ggfitter(g, vdc->fit_id, p, query);

  for (i=0; i<vdc->num_samples; i++) {
    float d=0.0;

    for (f=0; f<vdc->ggf->fh->num_feats; f++) {
      if (scales[f] = 0.0) next;
      
      d += scales[f] * real_square(vdc->posnfeats[i][f] - query[f]);
    }
    dist[i] = exp(- real_square(d) / sq_kern_width);
  }
  /* have computed distances to each point */
}
#endif
