ó
    ˆ*£hÑ  ã                   óX   • S SK JrJr  \SS j5       r\S 5       r\S 5       r\S 5       rg)é   )ÚdefunÚdefun_wrappedNc                 ó�  ^ ^^^^	• T R                  T5      mTc  T R                  mOT R                  T5      mTS:  a  [        S5      eTc  TmOT R                  T5      mTS:X  a  T R                  STT-   -  -   $ TT R                  :H  nTT:H  nU(       aQ  [	        T5      S:¼  a-  U(       a  TS:X  d  TS:X  a  T R
                  T-  $ [        S5      eTS:X  a  T R                  T-
  $ UR                  SST R                  -  5      m	U(       a   U(       a  U U	U4S jnT R                  U5      $ UU U	UU4S	 jnT R                  U5      $ )
aK  
Evaluates the q-Pochhammer symbol (or q-rising factorial)

.. math ::

    (a; q)_n = \prod_{k=0}^{n-1} (1-a q^k)

where `n = \infty` is permitted if `|q| < 1`. Called with two arguments,
``qp(a,q)`` computes `(a;q)_{\infty}`; with a single argument, ``qp(q)``
computes `(q;q)_{\infty}`. The special case

.. math ::

    \phi(q) = (q; q)_{\infty} = \prod_{k=1}^{\infty} (1-q^k) =
        \sum_{k=-\infty}^{\infty} (-1)^k q^{(3k^2-k)/2}

is also known as the Euler function, or (up to a factor `q^{-1/24}`)
the Dedekind eta function.

**Examples**

If `n` is a positive integer, the function amounts to a finite product::

    >>> from mpmath import *
    >>> mp.dps = 25; mp.pretty = True
    >>> qp(2,3,5)
    -725305.0
    >>> fprod(1-2*3**k for k in range(5))
    -725305.0
    >>> qp(2,3,0)
    1.0

Complex arguments are allowed::

    >>> qp(2-1j, 0.75j)
    (0.4628842231660149089976379 + 4.481821753552703090628793j)

The regular Pochhammer symbol `(a)_n` is obtained in the
following limit as `q \to 1`::

    >>> a, n = 4, 7
    >>> limit(lambda q: qp(q**a,q,n) / (1-q)**n, 1)
    604800.0
    >>> rf(a,n)
    604800.0

The Taylor series of the reciprocal Euler function gives
the partition function `P(n)`, i.e. the number of ways of writing
`n` as a sum of positive integers::

    >>> taylor(lambda q: 1/qp(q), 0, 10)
    [1.0, 1.0, 2.0, 3.0, 5.0, 7.0, 11.0, 15.0, 22.0, 30.0, 42.0]

Special values include::

    >>> qp(0)
    1.0
    >>> findroot(diffun(qp), -0.4)   # location of maximum
    -0.4112484791779547734440257
    >>> qp(_)
    1.228348867038575112586878

The q-Pochhammer symbol is related to the Jacobi theta functions.
For example, the following identity holds::

    >>> q = mpf(0.5)    # arbitrary
    >>> qp(q)
    0.2887880950866024212788997
    >>> root(3,-2)*root(q,-24)*jtheta(2,pi/6,root(q,6))
    0.2887880950866024212788997

é    zn cannot be negativer   éÿÿÿÿz#q-function only defined for |q| < 1Úmaxtermsé2   c               3   ó¾   >#   • Sn U v •  SnTnTS-  n SU-  U-  v •  SU-  U-  v •  UTSU-  S-   -  -  nUTSU-  S-   -  -  nUS-  nUT:”  a  TR                   eMI  7f)Nr   é   r   é   )ÚNoConvergence)ÚtÚkÚx1Úx2Úctxr   Úqs       €€€ÚX/home/mande/repo/quber/.venv/lib/python3.13/site-packages/mpmath/functions/qfunctions.pyÚtermsÚqp.<locals>.termsf   s�   øé € ØˆAØŠGØˆAØˆBØ�A‘ˆBØØ˜A‘g ‘lÒ"Ø˜A‘g ‘lÒ"Ø�a˜!˜A™#˜a™%‘jÑ �Ø�a˜!˜A™#˜a™%‘jÑ �Ø�Q‘�Ø�x“<Ø×+Ñ+Ð+ñ ùs   ƒAAc               3   óˆ   >#   • Sn TR                   n STU-  -
  v •  UT-  nU S-  n U T:¼  a  g U T:”  a  TR                  eM/  7f)Nr   r   )Úoner   )r   ÚrÚar   r   Únr   s     €€€€€r   ÚfactorsÚqp.<locals>.factorsv   sX   øé € ØˆØ�G‰GˆØØ�a˜‘c‘'ŠMØ�‰FˆAØ�‰FˆAØ�A‹vØØ�8‹|Ø×'Ñ'Ð'ñ ùs   ƒ?A)
ÚconvertÚinfÚ
ValueErrorr   ÚabsÚzeroÚgetÚprecÚsum_accuratelyÚmul_accurately)
r   r   r   r   ÚkwargsÚinfiniteÚsamer   r   r   s
   ````     @r   Úqpr*      s*  ü€ ðT 	�‰�A‹€AØ�yØ�G‰G‰à�K‰K˜‹NˆØˆ1ƒuÜÐ/Ó0Ð0Ø�yØ‰à�K‰K˜‹NˆØˆAƒvØ�w‰w˜˜A˜a™C™Ñ Ð Ø�S—W‘W‘€HØ�‰F€DÞÜˆq‹6�Q‹;Þ˜˜b› A¨£FØ—x‘x !‘|Ð#ÜÐBÓCÐCØ�!‹VØ—7‘7˜Q‘;ÐØ�z‰z˜* b¨¯©¡kÓ2€HÞ–D÷	,ð ×!Ñ! %Ó(Ð(÷
(ñ 
(ð ×Ñ˜gÓ&Ð&ó    c                 óÜ   • [        U5      S:”  a&  U R                  USU-  5      X!S-
  US-
  -  S-  -  -  $ U R                  " X"S40 UD6U R                  " X!-  US40 UD6-  SU-
  SU-
  -  -  $ )a¦  
Evaluates the q-gamma function

.. math ::

    \Gamma_q(z) = \frac{(q; q)_{\infty}}{(q^z; q)_{\infty}} (1-q)^{1-z}.


**Examples**

Evaluation for real and complex arguments::

    >>> from mpmath import *
    >>> mp.dps = 25; mp.pretty = True
    >>> qgamma(4,0.75)
    4.046875
    >>> qgamma(6,6)
    121226245.0
    >>> qgamma(3+4j, 0.5j)
    (0.1663082382255199834630088 + 0.01952474576025952984418217j)

The q-gamma function satisfies a functional equation similar
to that of the ordinary gamma function::

    >>> q = mpf(0.25)
    >>> z = mpf(2.5)
    >>> qgamma(z+1,q)
    1.428277424823760954685912
    >>> (1-q**z)/(1-q)*qgamma(z,q)
    1.428277424823760954685912

r   r   g      à?N)r!   Úqgammar*   )r   Úzr   r'   s       r   r-   r-   ƒ   s…   € ôD ˆ1ƒv�ƒzØ�z‰z˜!˜A˜a™CÓ  ¨¡c¨A¨a©C¡[°¡_Ñ!5Ñ5Ð5Ø�6Š6�!˜Ñ' Ñ'Ø�Šˆq‰t�Q˜Ñ' Ñ'ñ(Ø+,¨Q©3°!°A±#©,ñ7ð 7r+   c                 óô   • U R                  U5      (       aL  U R                  U5      S:”  a7  [        U R                  U5      5      nU R                  " X"U40 UD6SU-
  U-  -  $ U R                  " US-   U40 UD6$ )a«  
Evaluates the q-factorial,

.. math ::

    [n]_q! = (1+q)(1+q+q^2)\cdots(1+q+\cdots+q^{n-1})

or more generally

.. math ::

    [z]_q! = \frac{(q;q)_z}{(1-q)^z}.

**Examples**

    >>> from mpmath import *
    >>> mp.dps = 25; mp.pretty = True
    >>> qfac(0,0)
    1.0
    >>> qfac(4,3)
    2080.0
    >>> qfac(5,6)
    121226245.0
    >>> qfac(1+1j, 2+1j)
    (0.4370556551322672478613695 + 0.2609739839216039203708921j)

r   r   )ÚisintÚ_reÚintr*   r-   )r   r.   r   r'   r   s        r   Úqfacr3   ª   sm   € ð: ‡y�y�‡|�|˜Ÿ™ ›
 Q›Ü�—‘˜“
‹OˆØ�vŠv�a˜AÑ( Ñ(¨A¨a©C°!©8Ñ3Ð3Ø�:Š:�a˜‘c˜1Ñ' Ñ'Ð'r+   c                 ó¤  ^ ^^^^^^• T Vs/ s H  nT R                  U5      PM     snmT Vs/ s H  nT R                  U5      PM     snmT R                  T5      mT R                  T5      m[        T5      n[        T5      n	SU	-   U-
  mUR                  SST R                  -  5      mUUU UUUU4S jn
T R	                  U
5      $ s  snf s  snf )a–  
Evaluates the basic hypergeometric series or hypergeometric q-series

.. math ::

    \,_r\phi_s \left[\begin{matrix}
        a_1 & a_2 & \ldots & a_r \\
        b_1 & b_2 & \ldots & b_s
    \end{matrix} ; q,z \right] =
    \sum_{n=0}^\infty
    \frac{(a_1;q)_n, \ldots, (a_r;q)_n}
         {(b_1;q)_n, \ldots, (b_s;q)_n}
    \left((-1)^n q^{n\choose 2}\right)^{1+s-r}
    \frac{z^n}{(q;q)_n}

where `(a;q)_n` denotes the q-Pochhammer symbol (see :func:`~mpmath.qp`).

**Examples**

Evaluation works for real and complex arguments::

    >>> from mpmath import *
    >>> mp.dps = 25; mp.pretty = True
    >>> qhyper([0.5], [2.25], 0.25, 4)
    -0.1975849091263356009534385
    >>> qhyper([0.5], [2.25], 0.25-0.25j, 4)
    (2.806330244925716649839237 + 3.568997623337943121769938j)
    >>> qhyper([1+j], [2,3+0.5j], 0.25, 3+4j)
    (9.112885171773400017270226 - 1.272756997166375050700388j)

Comparing with a summation of the defining series, using
:func:`~mpmath.nsum`::

    >>> b, q, z = 3, 0.25, 0.5
    >>> qhyper([], [b], q, z)
    0.6221136748254495583228324
    >>> nsum(lambda n: z**n / qp(q,q,n)/qp(b,q,n) * q**(n*(n-1)), [0,inf])
    0.6221136748254495583228324

r   r   r	   c               3   ó"  >#   • T	R                   n U v •  SnSnSn T H  nSXA-  -
  nX-  n M     T H  nSXa-  -
  nU(       d  [        eX-  n M     U T-  n UST
-  UT
-  -  -  nUT-  nU SU-
  -  n US-  nX-  v •  UT:”  a  T	R                  eMt  7f)Nr   r   r   )r   r    r   )r   Úqkr   Úxr   ÚpÚbÚa_sÚb_sr   Údr   r   r.   s          €€€€€€€r   r   Úqhyper.<locals>.terms  sÉ   øé € Ø�G‰GˆØŠØˆØˆØˆØÛ�Ø˜™‘H�Ø‘’ñ ó �Ø˜™‘H�ÞÜ$Ð$Ø‘’ñ	 ð
 �‰FˆAØ�"�q‘˜2 ™7Ñ"Ñ"ˆAØ�!‰GˆBØ�!�b‘&‰MˆAØ�‰FˆAØ‘%ŠKØ�8‹|Ø×'Ñ'Ð'ñ! ùs   ƒBB)r   Úlenr#   r$   r%   )r   r:   r;   r   r.   r'   r   r9   r   Úsr   r<   r   s   `````      @@r   Úqhyperr@   Ì   s´   þ€ ñZ $'Ó
'¢3˜aˆ3�;‰;�qŽ>¡3Ñ
'€CÙ#&Ó
'¢3˜aˆ3�;‰;�qŽ>¡3Ñ
'€CØ�‰�A‹€AØ�‰�A‹€AÜˆC‹€AÜˆC‹€AØ	ˆ!‰ˆA‰€AØ�z‰z˜* b¨¯©¡kÓ2€H÷(ó (ð. ×Ñ˜eÓ$Ð$ùò? (ùÚ
's
   ŒC®C)NN)Ú	functionsr   r   r*   r-   r3   r@   © r+   r   Ú<module>rC      s]   ðß +àó}'ó ð}'ð~ ñ$7ó ð$7ðL ñ(ó ð(ðB ñK%ó ñK%r+   