def METHOD_NAME():
    sdfg = dace.SDFG("gemm")
    state = sdfg.add_state()
    A, A_arr = sdfg.add_array("A", [M, K], dace.float64)
    B, B_arr = sdfg.add_array("B", [L, N], dace.float64)
    C, C_arr = sdfg.add_array("C", [O, N], dace.float64)
    rA = state.add_read("A")
    rB = state.add_read("B")
    wC = state.add_write("C")
    libnode = Gemm('_Gemm_', transA=False, transB=False, alpha=1.0, beta=0.0)
    state.add_node(libnode)
    state.add_edge(rA, None, libnode, '_a', dace.Memlet.from_array(A, A_arr))
    state.add_edge(rB, None, libnode, '_b', dace.Memlet.from_array(B, B_arr))
    state.add_edge(libnode, '_c', wC, None, dace.Memlet.from_array(C, C_arr))
    sdfg.validate()