
    tKg                     P    d dl Z d dlZd dlmZ d dlmZ d Zd Zd Z	d Z
d Zd	 Zy)
    N)special)primes_from_2_toc                 >    t        t        j                  |             S N)r   mathceil)ns    _/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/stats/tests/data/_mvt.py_primesr      s     DIIaL))    c                 .    t        j                  ||       S r   )r   gammaincinv)abs     r
   _gaminvr      s     q!$$r   c                 x   t        dt        j                  |            }t        |||z  ||z        \  }}}	t	        |      }
d}t        j
                  | |z        }t        j                  |      }d}d}t        j                  t        d|
z  t        j                  |
dz         z  dz              }|ddt        j                  f   }d}d}t        |      D ]  }|j                         }t        j                  |
|f      }t        |
      D ]W  }t        j                  dt        j                  ||   t        j                   d|dz         z  |j#                         z   d      z  dz
        }|dk(  r-|}|dkD  rTt        j                  dt%        ||dz        z        }n.t'        |||z  z         }||dxxx ||d|dz
  |f   |z  z  ccc ||ddf   }|j                         }||   z  |z
  }|j                         }|	|   |z  |z
  }d||dk  <   t        |      d	k  }t)        ||         ||<   d||dk  <   t        |      d	k  }t)        ||         ||<   ||z
  }||z  }Z t        j*                  |      |z
  |dz   z  }||z   }|dz
  |z  |dz   z  |dz  z   } t        j                  |      }||fS )
a  Estimates the multivariate t CDF using randomized QMC

    Parameters
    ----------
    m : int
        The number of points
    nu : float
        Degrees of freedom
    sigma : ndarray
        A 2D positive semidefinite covariance matrix
    a : ndarray
        Lower integration limits
    b : ndarray
        Upper integration limits.
    rng : Generator
        Pseudorandom number generator

    Returns
    -------
    p : float
        The estimated CDF.
    e : float
        An absolute error estimate.

       
   r         N   i	   )maxr   sqrt_chlrpslenr   nponesr   lognewaxisrangecopyzerosabsmodarangerandomr   _Phinv_Phimean) mnusigmar   r   rngsnchazbzr	   NPonpepsqcdcSvpsixrysiaidbitls                                    r
   _qsimvtvrH      s   P 
Q		"	BWUAbD!B$-G
BE
AA		!A#ARWWQZQA	1TXXac]*1,-	.BBq"**}4E 	A4b1XWWYBHHaV,qAq!RYYq!A#%6 6 EqII!KLAAv6'!RT"2 23A1qt8$!"AB!AI**1a4Bbggi!beAgl	APRSTPUVWPWZ\P\2AbBhK#b'A+RtBrF|quAbBhK#b'A+RtBrF|quQBR"W  WWR[1_q1u%1q5qq1uaiQ6G!Q$6N!   			!Aa4Kr   c                 ,    t        j                  |       S r   )r   ndtr)zs    r
   r)   r)   v   s    <<?r   c                 ,    t        j                  |       S r   )r   ndtri)r6   s    r
   r(   r(   z   s    ==r   c           	          d}t        j                  | j                        j                  }t	        |       }| j                         }|j                         }|j                         }t        j                  t        j                  t        j                  |      d            }	t        |      D ]S  }
|	|
   dkD  s|dd|
fxx   |	|
   z  cc<   ||
ddfxx   |	|
   z  cc<   ||
xx   |	|
   z  cc<   ||
xx   |	|
   z  cc<   U t        j                  |df      }t        j                  dt        j                  z        }t        |      D ]  }|}d}d}d}t        ||      D ]  }
||
|
f   |kD  st        j                  t        ||
|
f   d            }|
dkD  r||
d|f   |d| z  }||
   |z
  |z  }||
   |z
  |z  }t        |      t        |      z
  }||k  sy|}|}|}|}|
} ||kD  r|||g   |||g<   |||g   |||g<   |||f   |||f<   ||d|f   j                         }||d|f   ||d|f<   |||d|f<   ||dz   d|f   j                         }||dz   d|f   ||dz   d|f<   |||dz   d|f<   ||dz   ||f   j                         }|||dz   |f   j                  ||dz   ||f<   |j                  |||dz   |f<   |||dz   z  kD  r||||f<   d|||dz   df<   t        |dz   |      D ]O  }
||
|f   |z  ||
|f<   ||
|dz   |
dz   f   ||
|f   ||dz   |
dz   |f   j                  z  z
  ||
|dz   |
dz   f<   Q t!        |      |kD  rCt        j"                  dz   dz        t        j"                  dz   dz        z
  ||z  z  ||<   n z   dz  ||<   |dk  r|||<   n
|dkD  r|||<   ||d|dz   fxx   |z  cc<   ||xx   |z  cc<   ||xx   |z  cc<   nd||d|f<   ||   ||   z   dz  ||<    |||fS )z
    Computes permuted and scaled lower Cholesky factor c for R which may be
    singular, also permuting and scaling integration limit vectors a and b.
    g|=r   Nr   r   ir   )r   finfodtypeepsr   r"   r   maximumdiagr!   r#   r   pir   r)   Tr$   exp)Rr   r   eprQ   r	   r:   apbprE   r?   rB   sqtpkimckkdemr>   ciirD   rF   deambmts                            r
   r   r   ~   s   
 
B
((177


CAAAFFH1668b!&&(R

SUSZSZ[\S]_`Ha@bA1XQ4!8adGqtOGQq!tW!_WqEQqTME2a5AaD=5  	!QA1TWW9!5$1Xaqa!q!AAw}iiAadGQ0q5a2A2h2A.!eAgs]"Q%'3BT"Xd2h=N9CRsbr"2  6aW+BAwKRB[r2q'{aPQSTPTg!BF)"bqb&	 Aa2A2h!BF)1!RaR%"Q$%)!!#AAbdeQhKQr!tuby\q2a45!8!A#b&!)!!#AAb!A#b&jMOOQqs2vqy\UVUXUXQr1Q3r6z]QqS>AadG1Q!W:1Q3]AqD'#+!Q$qAaC!G}qAwqQRSTQTUVWXUXQXZ[Q[}G^7^qAaC!G} #3x"}Avax(2662q5&(+;;SI!R1}!8AaD"WAaDa!A#gJ#Jr!u|uRUc\UAab!eH"Q%"Q%-!2!A$; < b"9r   )r   numpyr   scipyr   scipy.stats._qmcr   r   r   rH   r)   r(   r    r   r
   <module>ri      s1       -*%_F-r   