def METHOD_NAME(self, sdfg, state):
    """
    :return: A two-tuple (x, res) of the two data descriptors in the
             parent SDFG.
    """
    in_edges = state.in_edges(self)
    if len(in_edges) != 1:
        raise ValueError("Expected exactly one input to potrf")
    in_memlets = [in_edges[0].data]
    out_edges = state.out_edges(self)
    if len(out_edges) != 2:
        raise ValueError("Expected exactly two outputs from potrf product")
    out_memlet = out_edges[0].data
    # Squeeze input memlets
    squeezed1 = copy.deepcopy(in_memlets[0].subset)
    sqdims1 = squeezed1.squeeze()
    desc_xin, desc_xout, desc_res = None, None, None
    for e in state.in_edges(self):
        if e.dst_conn == "_xin":
            desc_xin = sdfg.arrays[e.data.data]
    for e in state.out_edges(self):
        if e.src_conn == "_xout":
            desc_xout = sdfg.arrays[e.data.data]
        if e.src_conn == "_result":
            desc_res = sdfg.arrays[e.data.data]
    if desc_xin.dtype.base_type != desc_xout.dtype.base_type:
        raise ValueError("Basetype of input and output must be equal!")
    stride_x = desc_xin.strides[sqdims1[0]]
    shape_x = squeezed1.size()
    rows_x = shape_x[0]
    cols_x = shape_x[1]
    if len(squeezed1.size()) != 2:
        print(str(squeezed1))
        raise ValueError("potrf only supported on 2-dimensional arrays")
    return (desc_xin, stride_x, rows_x, cols_x), desc_res