def METHOD_NAME(outs, ins, output_layout: str, input_layout: str):
    """Schedule for dense op.
    Parameters
    ----------
    outs: Array of Tensor
        The computation graph description of dense in the format
        of an array of tensors.
    ins: Array of Tensor
        Input tensors into graph.
    output_layout: str
        Descriptor string for physical layout
    input_layout: str
        Descriptor string for physical layout
    Returns
    -------
    sch: Schedule
        The computation schedule for the op.
    """
    if not isinstance(ins, list):
        ins = [ins]
    if not isinstance(outs, list):
        outs = [outs]
    func = te.create_prim_func([*ins, *outs])
    s = tir.Schedule(func)
    matmul = s.get_block("qmatmul_sliced")
    try:
        requantize = s.get_block("requantize")
    except tir.schedule.schedule.ScheduleError:
        requantize = None
    try:
        bias = s.get_block("bias")
    except tir.schedule.schedule.ScheduleError:
        bias = None
    input_transform_fn = get_layout_transform_fn(input_layout)
    output_transform_fn = get_layout_transform_fn(output_layout)
    # Transform input and output buffer
    s.transform_layout(matmul, ("read", 0), input_transform_fn)
    if requantize is not None:
        s.transform_layout(requantize, ("write", 0), output_transform_fn)
    elif bias is not None:
        s.transform_layout(bias, ("write", 0), output_transform_fn)
    else:
        s.transform_layout(matmul, ("write", 0), output_transform_fn)
    # Vectorize
    _, matmul_c, _ = s.get_loops(matmul)
    _, matmul_c_inner = s.split(matmul_c, [None, 128])
    s.vectorize(matmul_c_inner)
    # Compute everything inline
    if bias is not None and requantize is not None:
        _, bias_c = s.get_loops(bias)
        s.compute_at(matmul, bias_c)
        _, out_c = s.get_loops(requantize)
        s.compute_at(bias, out_c)
    elif bias is not None and requantize is None:
        _, out_c = s.get_loops(bias)
        s.compute_at(matmul, out_c)
    return s