This allows sharing of the blas implementation with floats and opens the possibility of an assembly implementation of this function.