I tracked the problem down to the "penalty" function used to build the
tree. Basically, it compares the area of the bounding boxes.
There wasnt enough precision in the area calculations - instead of
giving 0.0 it would give numbers in the[+-]10^-6 range. This really
screwed up how the tree was being built.
I cast the float to doubles when calculating area, and it all works well
now.
dave