modified SoftClipping algorithm
use floating point arithmetic to replace division