human
Complete this python program:
def _fixed_np_round(arr, decimals=0, out=None):
assistant
#Here is the Python program you requested.

    """A slightly bugfixed version of np.round().
    """
    if ((out is not None) and (arr.dtype.kind == 'c')):
        _fixed_np_round(arr.real, decimals, out.real)
        _fixed_np_round(arr.imag, decimals, out.imag)
        return out
    else:
        res = np.round(arr, decimals, out)
        if (out is None):
            def fixup_signed_zero(arg, res):
                if ((res == 0.0) and (arg < 0)):
                    return (- np.abs(res))
                else:
                    return res
            if isinstance(arr, (complex, np.complexfloating)):
                res = complex(fixup_signed_zero(arr.real, res.real), fixup_signed_zero(arr.imag, res.imag))
            else:
                res = fixup_signed_zero(arr, res)
        return res