fixing a floating point bug for very small signals