issue reported by nsz, but it's actually not just pedantic. the functions can take input of any arithmetic type, including floating point, and the behavior needs to be as if the conversion implicit in the function call took place.
thanks to Peter Mazinger (psm) for pointing many of these issues out and submitting a patch on which this commit is loosely based