Also, rename the "floatok" parameter to "NegativeIsOk" because that's how it is used. I don't know why it was called floatok, but I suspect this was a vestige from long ago.
I also make the vector_4_arg() consistent with the other routines in allowing floating point numbers. This condition is currently unused, but if it does get used in the future, it'll be nice to have consistent behavior.