v = (newValue == 0) ? 0 : Math.Min( Math.Max( v.lower, newValue ), v.upper );