as said, pls handle other float sizes here.

In addition, pls output a warning if the parameter is no float. In fact, gradient parameters should only be allowed to be floats by design. Adding non-floats should give an error. Maybe this can be done in the macro? Doesnt have to be now. Finish the rest first