code: def edge_current_flow_betweenness_centrality(
      G, normalized=True, weight=None, dtype=float, solver="full"
  ):
      r"""Compute current-flow betweenness centrality for edges.
  
      Current-flow betweenness centrality uses an electrical current
      model for information spreading in contrast to betweenness
      centrality which uses shortest paths.
  
      Current-flow betweenness centrality is also known as
      random-walk betweenness centrality [2]_.
  
      Parameters
      ----------
      G : graph
        A NetworkX graph
  
      normalized : bool, optional (default=True)
        If True the betweenness values are normalized by 2/[(n-1)(n-2)] where
        n is the number of nodes in G.
  
      weight : string or None, optional (default=None)
        Key for edge data used as the edge weight.
        If None, then use 1 as each edge weight.
        The weight reflects the capacity or the strength of the
        edge.
  
      dtype : data type (default=float)
        Default data type for internal matrices.
        Set to np.float32 for lower memory consumption.
  
      solver : string (default='full')
         Type of linear solver to use for computing the flow matrix.
         Options are "full" (uses most memory), "lu" (recommended), and
         "cg" (uses least memory).
  
      Returns
      -------
      nodes : dictionary
         Dictionary of edge tuples with betweenness centrality as the value.
  
      Raises
      ------
      NetworkXError
          The algorithm does not support DiGraphs.
          If the input graph is an instance of DiGraph class, NetworkXError
          is raised.
  
      See Also
      --------
      betweenness_centrality
      edge_betweenness_centrality
      current_flow_betweenness_centrality
  
      Notes
      -----
      Current-flow betweenness can be computed in $O(I(n-1)+mn \log n)$
      time [1]_, where $I(n-1)$ is the time needed to compute the
      inverse Laplacian.  For a full matrix this is $O(n^3)$ but using
      sparse methods you can achieve $O(nm{\sqrt k})$ where $k$ is the
      Laplacian matrix condition number.
  
      The space required is $O(nw)$ where $w$ is the width of the sparse
      Laplacian matrix.  Worse case is $w=n$ for $O(n^2)$.
  
      If the edges have a 'weight' attribute they will be used as
      weights in this algorithm.  Unspecified weights are set to 1.
  
      References
      ----------
      .. [1] Centrality Measures Based on Current Flow.
         Ulrik Brandes and Daniel Fleischer,
         Proc. 22nd Symp. Theoretical Aspects of Computer Science (STACS '05).
         LNCS 3404, pp. 533-544. Springer-Verlag, 2005.
         https://doi.org/10.1007/978-3-540-31856-9_44
  
      .. [2] A measure of betweenness centrality based on random walks,
         M. E. J. Newman, Social Networks 27, 39-54 (2005).
      """
      if not nx.is_connected(G):
          raise nx.NetworkXError("Graph not connected.")
      n = G.number_of_nodes()
      ordering = list(reverse_cuthill_mckee_ordering(G))
      # make a copy with integer labels according to rcm ordering
      # this could be done without a copy if we really wanted to
      H = nx.relabel_nodes(G, dict(zip(ordering, range(n))))
      edges = (tuple(sorted((u, v))) for u, v in H.edges())
      betweenness = dict.fromkeys(edges, 0.0)
      if normalized:
          nb = (n - 1.0) * (n - 2.0)  # normalization factor
      else:
          nb = 2.0
      for row, (e) in flow_matrix_row(
          H, weight=weight, dtype=dtype, solver=solver
      ):
          pos = dict(zip(row.argsort()[::-1], range(1, n + 1)))
          for i in range(n):
              betweenness[e] += (i + 1 - pos[i]) * row[i]
              betweenness[e] += (n - i - pos[i]) * row[i]
          betweenness[e] /= nb
      return {
          (ordering[s], ordering[t]): v
          for (s, t), v in betweenness.items()
      }
  
imports: import networkx
  from networkx.algorithms.centrality.flow_matrix import CGInverseLaplacian, FullInverseLaplacian, SuperLUInverseLaplacian, flow_matrix_row
  from networkx.utils import not_implemented_for, py_random_state, reverse_cuthill_mckee_ordering
label_desc: Use image node_id 3 for calling a global function with example usage: edge_current_flow_betweenness_centrality(G, normalized, weight, dtype, solver) and returns: unknown