def wigner3j(l2, m2, l3, m3):
    '\n    Wigner 3j symbols computed for all valid values of ``L``, as in:\n\n    .. math::\n\n        \\begin{pmatrix}\n         \\ell_2 & \\ell_3 & L \\\\\n         m_2 & m_3 & 0 \\\\\n        \\end{pmatrix}\n\n    Arguments\n    ---------\n    l2, m2, l3, m3 : int\n        The ell and m values for which to compute the symbols.\n\n    Returns\n    -------\n    fj : array_like\n        Array of size ``l2 + l3 + 2``, indexed by ``L``\n    lmin : int\n        The minimum value of ``L`` for which ``fj`` is non-zero.\n    lmax : int\n        The maximum value of ``L`` for which ``fj`` is non-zero.\n    '
    import camb
    try:
        from camb.mathutils import threej
    except ImportError:
        from camb.bispectrum import threej
    arr = threej(l2, l3, m2, m3)
    lmin = np.max([np.abs((l2 - l3)), np.abs((m2 + m3))])
    lmax = (l2 + l3)
    fj = np.zeros((lmax + 2), dtype=arr.dtype)
    fj[lmin:(lmax + 1)] = arr
    return (fj, lmin, lmax)
Wigner 3j symbols computed for all valid values of ``L``, as in:

.. math::

    \begin{pmatrix}
     \ell_2 & \ell_3 & L \\
     m_2 & m_3 & 0 \\
    \end{pmatrix}

Arguments
---------
l2, m2, l3, m3 : int
    The ell and m values for which to compute the symbols.

Returns
-------
fj : array_like
    Array of size ``l2 + l3 + 2``, indexed by ``L``
lmin : int
    The minimum value of ``L`` for which ``fj`` is non-zero.
lmax : int
    The maximum value of ``L`` for which ``fj`` is non-zero.
def wigner3j(l2, m2, l3, m3):
    '\n    Wigner 3j symbols computed for all valid values of ``L``, as in:\n\n    .. math::\n\n        \\begin{pmatrix}\n         \\ell_2 & \\ell_3 & L \\\\\n         m_2 & m_3 & 0 \\\\\n        \\end{pmatrix}\n\n    Arguments\n    ---------\n    l2, m2, l3, m3 : int\n        The ell and m values for which to compute the symbols.\n\n    Returns\n    -------\n    fj : array_like\n        Array of size ``l2 + l3 + 2``, indexed by ``L``\n    lmin : int\n        The minimum value of ``L`` for which ``fj`` is non-zero.\n    lmax : int\n        The maximum value of ``L`` for which ``fj`` is non-zero.\n    '
    import camb
    try:
        from camb.mathutils import threej
    except ImportError:
        from camb.bispectrum import threej
    arr = threej(l2, l3, m2, m3)
    lmin = np.max([np.abs((l2 - l3)), np.abs((m2 + m3))])
    lmax = (l2 + l3)
    fj = np.zeros((lmax + 2), dtype=arr.dtype)
    fj[lmin:(lmax + 1)] = arr
    return (fj, lmin, lmax)