def METHOD_NAME(log2_size, null_density, name, op):
    size = 2**log2_size
    values, validity = get_f32(size, null_density)
    array = pa.array(values, pa.float32(), mask=validity)
    def f():
        op(array)
    microseconds = measured_us(f)
    print(f"{name} f32 2^{log2_size}     time: {microseconds:.2f} us")
    return {
        "operation": name,
        "log2_size": log2_size,
        "type": "float32",
        "time (us)": microseconds,
        "null_density": null_density,
        "backend": "pyarrow",
    }