kernel also works on floats