U
    9vf§  ã                   @   s"   d dl ZdgZejddd„ƒZdS )é    NÚs_metricTc                    s,   |rt  d¡‚tt‡ fdd„ˆ  ¡ D ƒƒƒS )a  Returns the s-metric of graph.

    The s-metric is defined as the sum of the products deg(u)*deg(v)
    for every edge (u,v) in G. If norm is provided construct the
    s-max graph and compute it's s_metric, and return the normalized
    s value

    Parameters
    ----------
    G    : graph
           The graph used to compute the s-metric.
    normalized : bool (optional)
           Normalize the value.

    Returns
    -------
    s : float
        The s-metric of the graph.

    References
    ----------
    .. [1] Lun Li, David Alderson, John C. Doyle, and Walter Willinger,
           Towards a Theory of Scale-Free Graphs:
           Definition, Properties, and  Implications (Extended Version), 2005.
           https://arxiv.org/abs/cond-mat/0501169
    zNormalization not implementedc                 3   s&   | ]\}}ˆ   |¡ˆ   |¡ V  qd S )N)Zdegree)Ú.0ÚuÚv©ÚG© ú?/tmp/pip-unpacked-wheel-_lngutwb/networkx/algorithms/smetric.pyÚ	<genexpr>'   s     zs_metric.<locals>.<genexpr>)ÚnxZNetworkXErrorÚfloatÚsumÚedges)r   Ú
normalizedr   r   r	   r      s    
)T)Znetworkxr   Ú__all__Ú	_dispatchr   r   r   r   r	   Ú<module>   s   