Use more efficient addition/subtraction/multiplication for ints/uints

This also is the first function which tries to take in account
that Clong is not always Int.