// get the distance between two V2
// get a new V2 from two coordinate pairs
// get a new V2, that goes from v0 to v1
// get the dot product between two V2
// get the square length of a V2
// get the length of a V2
// update a V2 to have a length of 1
// update a V2 to have a length of 1 or less
// update a V2 to have a length of 1 or less
// add `add` to the target
// add `add` to the target
// substract `sub` to the target
// substract `sub` to the target
// multiply the target with `mul`
// multiply the target with `mul`
// divide the target by `div`
// divide the target by `div`
// map value from one range to another if the value exceeds the input range, it will also exceed the output range
// map value from one range to another the output value is clamped, and will be inside the output range
// blend between value `a` and `b`, with the normalized value `t`
// get the relative, normalized position of `value` between `a` and `b` the result is unclamped, and can exceed 0..1
// get the relative, normalized position of `value` between `a` and `b` the result is clamped, and can not exceed 0..1
// get the clamped value of `value` between `min` and `max`
// get the clamped value of `value` between `0` and `1`
// get the Power of Two, closed to `value` it can be lower or bigger than value
// get next larger/equal Power of Two to `value`
// bounce `value` between itself and `length` generates a triangle wave