message: Applying Peter's changes. All options now compile. We should be up to date
  with Gecko commit 'ff1bad12c'.
diff: @@ -363,7 +363,7 @@ private:
  Subnode::Index perm[GECKO_WINDOW_MAX]; // current permutation
  const Subnode* node[GECKO_WINDOW_MAX]; // pointers to precomputed nodes
  Subnode* cache; // precomputed node positions and costs
  -#if GECKO_SUBGRAPH_ADJLIST
  +#if GECKO_WITH_ADJLIST
  Subnode::Index
  adj[GECKO_WINDOW_MAX][GECKO_WINDOW_MAX]; // internal adjacency list
  #else
  @@ -463,11 +463,10 @@ Subgraph::swap(uint k, uint l)
  #if GECKO_WITH_NONRECURSIVE
  // Evaluate all permutations generated by Heap's nonrecursive algorithm.
  void
  -Subgraph::optimize()
  +Subgraph::optimize(WeightedSum, uint)
  {
  WeightedSum c[GECKO_WINDOW_MAX + 1];
  uint j[GECKO_WINDOW_MAX + 1];
  - Float min = GECKO_FLOAT_MAX;
  j[n] = 1;
  c[n] = 0;
  uint i = n;
  @@ -479,9 +478,9 @@ Subgraph::optimize()
  c[i] = f->sum(c[i + 1], cost(i));
  }
  while (i);
  - if (f->less(*c, min))
  + if (f->less(c[0], min))
  {
  - min = *c;
  + min = c[0];
  for (uint k = 0; k < n; k++)
  {
  best[k] = perm[k];
  