def METHOD_NAME(cast_func, in_layout_str, out_layout_str):
    """Schedule for f16 to f32 cast: top level function"""
    f32_layout_transform_func, split_factor = get_layout_transform_for_f32(out_layout_str)
    f16_layout_transform_func = get_layout_transform_fn(in_layout_str)
    if in_layout_str == "nhwc-8h2w32c2w-2d":
        return cast_f16_f32_stir_schedule_nhwc(
            cast_func,
            f16_layout_transform_func,
            f32_layout_transform_func,
            split_factor,
        )
    if in_layout_str == "nc-1024c-2d":
        return cast_f16_f32_stir_schedule_nc(
            cast_func, f16_layout_transform_func, f32_layout_transform_func, split_factor
        )
    raise RuntimeError(f"Unexpected input_layout, output_layout '{input_layout, output_layout}'")