Thanks, see 5db7597.

I think using allow_input_downcast=True
is a more elegant solition than casting explicitly. Also, this won't break
GPU execution on double precision, if supported in future.

Thanks for the hint, Ian!