
Differences compared to the thesis
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. LAA, step II

Instead of placing 1..5 vias "randomly" on 2nets, an rtree is build of
all 2nets and crossings are mapped, then possible via sites are determined so
that:
 - there's a via between any two possible 2net crossings on each 2net
 - if a terminal is not a via accessing all layers, there would be a
   a possible via site placed between the terminal and the first crossing
   (to give the 2net a chance to leave the terminal's initial layer)
 - special case: if a 2net has only a single branch between two non-via
   terminals, a possible via site is inserted in the middle so that
   swithcing layers is possible (typical example: 2 SMD pads on opposite layers)

2. LAA, step III

Instead of doing anything clever in the initial branch assignment, every
brnach is assigned to layer 0. This means there is no 'free branch' concept.
The steepest descent algorithm should still find the same solution. Net result:
simpler code.

TODO: cached crossings and detours.
