Hmm,... I'm not sure I understand why it's necessary to force the low contribution (rather than let `direction` do it's own thing, i.e. get smaller and smaller as the vectors become closer to perpendicular). Is this because some other value blows up as these vectors become perpendicular?