took another shot at fixing the precision on the shaders.  first normalized all ranges of data so the upper bound sent in was around 1 or 10 or so, then baked those normalizations into (most) the data sent into the shader (G and M ... not distance just yet).  still has too much noise.  last trick will be to bake normalization into distances, and then store log+sign of values and only convert back and forth when adding.