§
    fŠtjEç  ã                   óª  — d dl Z d dlmZ d dlmZmZ d dlZd dlZd dl	m
Z
mZmZmZ d dlmZ d dlmZ d dlmZmZ d dlmZ d d	lmZmZmZmZmZmZmZmZ  G d
„ d¦  «        Z G d„ d¦  «        Z  G d„ dej        ¦  «        Z!d„ Z"d„ Z#d„ Z$d„ Z% G d„ d¦  «        Z& G d„ de&¦  «        Z' G d„ de&¦  «        Z( G d„ de&¦  «        Z) G d„ d¦  «        Z* G d„ de&¦  «        Z+ G d „ d!¦  «        Z, G d"„ d#¦  «        Z- G d$„ d%¦  «        Z. G d&„ d'¦  «        Z/d(„ Z0ej1         2                    d)ej3        ej4        ej5        ej6        g¦  «        d*„ ¦   «         Z7dS )+é    N)ÚCounter)ÚcombinationsÚproduct)Úassert_allcloseÚassert_equalÚassert_array_equalÚassert_array_less)Údistance)Úshapiro)Ú_test_find_indexÚ_test_low_0_bit)Úqmc)Úvan_der_corputÚn_primesÚprimes_from_2_toÚupdate_discrepancyÚ	QMCEngineÚ_l1_normÚ_perturb_discrepancyÚ&_lloyd_centroidal_voronoi_tessellationc                   óÊ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ej                             d	d
¬¦  «        ej        j        d„ ¦   «         ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )Ú	TestUtilsc                 ó(  — dgdgdgg}dgdgdgg}t          j        |dd¬¦  «        }t          ||¦  «         ddgddgddgg}t          j        ddgddgg¦  «        }ddgddgdd	gg}t          j        ||d         |d         ¬¦  «        }t          ||¦  «         t          j        ||d         |d         d
¬¦  «        }t          ||¦  «         g d¢g d¢g d¢g}dg d¢}}g d¢g d¢g d¢g}t          j        |||¬¦  «        }t          ||¦  «         d S )Nr   é   ç      à?éþÿÿÿé   é   ©Úl_boundsÚu_boundsé   ç      @T©r    r!   Úreverse©r   r   r   )r   r   r   )r   r   r   )r   r"   é   )r'   r#   ç      ø?)r   Úscaler   ÚnpÚarray)ÚselfÚspaceÚoutÚscaled_spaceÚboundsÚscaled_back_spacer    r!   s           úX/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/stats/tests/test_qmc.pyÚ
test_scalezTestUtils.test_scale   so  € à��q�c˜C˜5Ð!ˆØˆt�a�S˜1˜#ÐˆÝ”y °¸aÐ@Ñ@Ô@ˆå˜ cÑ*Ô*Ð*ð �Q�˜!˜Q˜ # s Ð,ˆÝ”˜B ˜7 Q¨ FÐ+Ñ,Ô,ˆØ�Aˆw˜˜A˜  C Ð)ˆå”y °¸´ÀVÈAÄYÐOÑOÔOˆå˜ cÑ*Ô*Ð*åœI l¸VÀA¼YØ/5°a¬yÀ$ðHñ Hô HÐåÐ)¨5Ñ1Ô1Ð1ð ��˜I˜I˜I   Ð7ˆØ 	 	 	�(ˆØˆyˆy˜)˜)˜) ] ] ]Ð3ˆå”y °ÀHÐMÑMÔMˆå˜ cÑ*Ô*Ð*Ð*Ð*ó    c                 óP  — t           j                             d¦  «        }|                     d¦  «        }|                     d¦  «         dz  }|                     d¦  «        dz  }t          j        |||d¬¦  «        }t          j        |||d¬¦  «        }t          ||¦  «         d S )Nl	   Ea�T4ÇGõñ*­wÉvî ©é   é
   r8   F)r%   T)r*   ÚrandomÚdefault_rngr   r)   r   )r,   ÚrngÚsampleÚaÚbÚscaledÚunscaleds          r2   Útest_scale_randomzTestUtils.test_scale_random4   s™   € ÝŒi×#Ò#Ð$KÑLÔLˆØ—’˜HÑ%Ô%ˆØ�ZŠZ˜‰^Œ^ˆO˜bÑ ˆØ�JŠJ�r‰NŒN˜RÑˆÝ”˜6 1 a°Ð7Ñ7Ô7ˆÝ”9˜V Q¨°4Ð8Ñ8Ô8ˆÝ˜ &Ñ)Ô)Ð)Ð)Ð)r4   c                 ó8  — t          j        t          d¬¦  «        5  g d¢}t          j        |dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  ddgd	d	gd
d
gg}t          j        ddgddgg¦  «        }t          j        ||d         |d	         ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  ddgd	d	gd
d
gg}g d¢ddg}}t          j        |||¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  ddgd	d	gd
d
gg}t          j        g d¢g d¢g¦  «        }t          j        ||d         |d	         ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  ddgd	dgd
d
gg}t          j        ddgddgg¦  «        }t          j        ||d         |d	         ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  ddgddgddgg}t          j        ddgddgg¦  «        }t          j        ||d         |d	         d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NúSample is not a 2D array©Úmatch©r   r   r   r   r   r   zBounds are not consistentr   r   r   r"   z/'l_bounds' and 'u_bounds' must be broadcastable)r   r   r   )r   r"   r"   úSample is not in unit hypercuber(   zSample is out of boundsé   r#   Tr$   )ÚpytestÚraisesÚ
ValueErrorr   r)   r*   r+   )r,   r-   r0   r    r!   r.   s         r2   Útest_scale_errorszTestUtils.test_scale_errors=   s¸  € ÝŒ]�:Ð-HÐIÑIÔIð 	6ð 	6Ø�K�KˆEÝŒI�e b°1Ð5Ñ5Ô5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6õ Œ]�:Ð-IÐJÑJÔJð 	Eð 	EØ˜�V˜a ˜V c¨3 ZÐ0ˆEÝ”X  A˜w¨¨A¨Ð/Ñ0Ô0ˆFÝŒI�e f¨Q¤i¸&À¼)ÐDÑDÔDÐDð	Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eøøøð 	Eð 	Eð 	Eð 	Eõ
 Œ]�:ð .Gð Hñ Hô Hð 	Cð 	Cà˜�V˜a ˜V c¨3 ZÐ0ˆEØ!+  ¨a°¨V�hˆHÝŒI�e h¸ÐBÑBÔBÐBð		Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cõ Œ]�:ð .Gð Hñ Hô Hð 	Eð 	Eà˜�V˜a ˜V c¨3 ZÐ0ˆEÝ”X˜z˜z˜z¨9¨9¨9Ð5Ñ6Ô6ˆFÝŒI�e f¨Q¤i¸&À¼)ÐDÑDÔDÐDð		Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eøøøð 	Eð 	Eð 	Eð 	Eõ Œ]�:ð .:ð ;ñ ;ô ;ð 	Eð 	Eà˜�V˜a ˜X¨¨S zÐ2ˆEÝ”X  A˜w¨¨A¨Ð/Ñ0Ô0ˆFÝŒI�e f¨Q¤i¸&À¼)ÐDÑDÔDÐDð		Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eøøøð 	Eð 	Eð 	Eð 	Eõ Œ]�:Ð-GÐHÑHÔHð 	$ð 	$Ø˜�7˜Q ˜F Q¨ HÐ-ˆCÝ”X  A˜w¨¨A¨Ð/Ñ0Ô0ˆFÝŒI�c F¨1¤I¸¸q¼	Ø"ð$ñ $ô $ð $ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	$ð 	$so   œAÁAÁAÁ*A	B?Â?CÃCÃ%+DÄD Ä#D ÅA	FÆFÆFÆ=A	HÈHÈHÈ8A
JÊJÊJc           
      óV  — t          j        ddgddgddgddgddgddgg¦  «        }d|z  dz
  d	z  }t          j        ddgddgddgddgddgddgg¦  «        }d|z  dz
  d	z  }t          t          j        |¦  «        d
d¬¦  «         t          t          j        |¦  «        dd¬¦  «         t          j        g d¢g d¢g d¢g d¢g d¢g d¢g d¢g¦  «        }d|z  dz
  dz  }t          t          j        |d¬¦  «        dd¬¦  «         t          t          j        |d¬¦  «        dd¬¦  «         t          t          j        |d¬¦  «        dd¬¦  «         dD ]U}t          j        d| z  ¦  «        }t          t          j        t          j        dg|z  g¦  «        d¬¦  «        |¦  «         ŒVd S )Nr   r'   r   r   é   r"   ç       @ç      ð?ç      (@ç‚âÇ˜»–€?ç-Cëâ6?©Úatolg/Ý$�…?©r   r   r   r   r   r   ©r   r   r   r   r   r   ©r   r   r   r   r   r   ©r   r   r   r   r   r   ©r   r   r   r   r   r   ©r   r   r   r   r   r   ©r   r   r   r   r   r   ç      @ÚMD©Úmethodr#   ÚWDçÙÎ÷Sãõ?ÚCDç£’:MÔ?©r   rN   rH   é   é    é@   úL2-star)r*   r+   r   r   ÚdiscrepancyÚsqrt)r,   Úspace_1Úspace_2r<   ÚdimÚrefs         r2   Útest_discrepancyzTestUtils.test_discrepancy_   s?  € Ý”(˜Q ˜F Q¨ F¨Q°¨F°Q¸°F¸QÀ¸FÀQÈÀFÐKÑLÔLˆØ˜‘= 3Ñ&¨9Ñ5ˆÝ”(˜Q ˜F Q¨ F¨Q°¨F°Q¸°F¸QÀ¸FÀQÈÀFÐKÑLÔLˆØ˜‘= 3Ñ&¨9Ñ5ˆõ 	�œ¨Ñ0Ô0°&¸tÐDÑDÔDÐDÝ�œ¨Ñ0Ô0°&¸tÐDÑDÔDÐDõ
 ”Ð-Ð-Ð-Ø-Ð-Ð-Ø-Ð-Ð-Ø-Ð-Ð-Ø-Ð-Ð-Ø-Ð-Ð-Ø-Ð-Ð-ð/ñ 0ô 0ˆð ˜‘, Ñ$¨Ñ3ˆå�œ¨°tÐ<Ñ<Ô<¸fØ!ð	#ñ 	#ô 	#ð 	#å�œ¨°tÐ<Ñ<Ô<¸fØ!ð	#ñ 	#ô 	#ð 	#å�œ¨°tÐ<Ñ<Ô<¸fØ!ð	#ñ 	#ô 	#ð 	#ð )ð 	Dð 	DˆCÝ”'˜!˜s˜d™)Ñ$Ô$ˆCÝ�CœO­B¬H°q°c¸#±g°YÑ,?Ô,?Ø3<ð>ñ >ô >Ø?BñDô Dð Dð Dð	Dð 	Dr4   c           	      ó  — t          j        ddgddgddgddgddgddgg¦  «        }t          j        t          d¬¦  «        5  t          j        |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d	¬¦  «        5  t          j        ddg¦  «         d d d ¦  «         n# 1 swxY w Y   d
d
gddgddgg}t          j        t          d¬¦  «        5  t          j        |d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r'   r   r   rN   r"   rG   rD   rC   r   r   ú'toto' is not a valid ...Útotor_   )r*   r+   rI   rJ   rK   r   rj   ©r,   r<   s     r2   Útest_discrepancy_errorsz!TestUtils.test_discrepancy_errors„   sä  € Ý”˜A˜q˜6 A q 6¨A¨q¨6°A°q°6¸A¸q¸6ÀAÀqÀ6ÐJÑKÔKˆåŒ]ÝÐ@ð
ñ 
ô 
ð 	$ð 	$õ ŒO˜FÑ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$õ
 Œ]�:Ð-HÐIÑIÔIð 	$ð 	$ÝŒO˜Q ˜FÑ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð �a�&˜1˜a˜& 3¨ *Ð-ˆÝŒ]�:Ð-IÐJÑJÔJð 	3ð 	3ÝŒO˜F¨6Ð2Ñ2Ô2Ð2ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3ð 	3ð 	3s6   ÁA#Á#A'Á*A'Â	B,Â,B0Â3B0ÃDÄDÄDc           
      ój  — t          j        g d¢g d¢g d¢g d¢g d¢g d¢g d¢g¦  «        }d|z  d	z
  d
z  }t          t          j        |dd¬¦  «        dd¬¦  «         t          t          j        |dd¬¦  «        dd¬¦  «         t          t          j        |dd¬¦  «        dd¬¦  «         dD ]V}t          j        d| z  ¦  «        }t          t          j        t          j        dg|z  g¦  «        dd¬¦  «        |¦  «         ŒW|                     t          dd„ ¦  «         t          j	        t          d¬¦  «        5  t          j        |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j	        t          d¬¦  «        5  t          j        |d ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )!NrV   rW   rX   rY   rZ   r[   r\   rO   rP   r]   r^   rH   )r`   Úworkersr#   rS   rT   ra   rb   rc   rd   re   r'   r   ri   éÿÿÿÿÚ	cpu_countc                  ó   — d S ©N© r|   r4   r2   ú<lambda>z5TestUtils.test_discrepancy_parallel.<locals>.<lambda>¯   s   € °T€ r4   zCannot determine therD   ©rw   zInvalid number of workers...r   )r*   r+   r   r   rj   rk   ÚsetattrÚosrI   rJ   ÚNotImplementedErrorrK   )r,   Úmonkeypatchr<   rn   ro   s        r2   Útest_discrepancy_parallelz#TestUtils.test_discrepancy_parallel“   s£  € Ý”Ð-Ð-Ð-Ø-Ð-Ð-Ø-Ð-Ð-Ø-Ð-Ð-Ø-Ð-Ð-Ø-Ð-Ð-Ø-Ð-Ð-ð/ñ 0ô 0ˆð ˜‘, Ñ$¨Ñ3ˆå�œ¨°tÀQÐGÑGÔGØØ!ð	#ñ 	#ô 	#ð 	#õ 	�œ¨°tÀQÐGÑGÔGØØ!ð	#ñ 	#ô 	#ð 	#õ 	�œ¨°tÀQÐGÑGÔGØØ!ð	#ñ 	#ô 	#ð 	#ð )ð 	Pð 	PˆCÝ”'˜!  ™+Ñ&Ô&ˆCÝ�CœO­B¬H°q°c¸C±i°[Ñ,AÔ,AØ3<ÀbðJñ Jô JØKNñPô Pð Pð Pð 	×Ò�B ¨\¨\Ñ:Ô:Ð:ÝŒ]Õ.Ð6LÐMÑMÔMð 	0ð 	0ÝŒO˜F¨BÐ/Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0õ Œ]�:Ð-KÐLÑLÔLð 	0ð 	0ÝŒO˜F¨BÐ/Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0s$   Ä;EÅE"Å%E"ÆF(Æ(F,Æ/F,c           	      ó   — t          j        ddgddgddgddgddgddgg¦  «        }t          j        t          d¬¦  «        5  t          j        |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d	¬¦  «        5  t          j        ddg¦  «         d d d ¦  «         n# 1 swxY w Y   d
d
gddgddgg}t          j        t          d¬¦  «        5  t          j        |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        d
d
gd
d
gd
dgg¦  «        }t          j        t          d¬¦  «        5  t          j        |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        ddgg¦  «        }t          j        t          d¬¦  «        5  t          j        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r'   r   r   rN   r"   rG   rD   rC   r   r   rr   rs   r_   z!Sample contains duplicate points.z'Sample must contain at least two points)	r*   r+   rI   rJ   rK   r   Úgeometric_discrepancyÚwarnsÚUserWarningrt   s     r2   Ú!test_geometric_discrepancy_errorsz+TestUtils.test_geometric_discrepancy_errors¶   s  € Ý”˜A˜q˜6 A q 6¨A¨q¨6°A°q°6¸A¸q¸6ÀAÀqÀ6ÐJÑKÔKˆåŒ]�:Ð-OÐPÑPÔPð 	.ð 	.ÝÔ% fÑ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.õ Œ]�:Ð-HÐIÑIÔIð 	.ð 	.ÝÔ% q¨! fÑ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð �a�&˜1˜a˜& 3¨ *Ð-ˆÝŒ]�:Ð-IÐJÑJÔJð 	=ð 	=ÝÔ% f°VÐ<Ñ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=õ ”˜A˜q˜6 A q 6¨A¨q¨6Ð2Ñ3Ô3ˆÝŒ\�+Ð-PÐQÑQÔQð 	.ð 	.ÝÔ% fÑ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.õ ”˜C ˜:˜,Ñ'Ô'ˆÝŒ]�:Ð-VÐWÑWÔWð 	.ð 	.ÝÔ% fÑ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	.ð 	.sZ   ÁA#Á#A'Á*A'Â	B,Â,B0Â3B0ÃD Ä DÄDÅE$Å$E(Å+E(Æ!GÇGÇ
Gc                 óœ  — t          j        ddgddgg¦  «        }t          t          j        |¦  «        t          j        d¦  «        ¦  «         t          t          j        |d¬¦  «        t          j        d¦  «        ¦  «         t          j        ddgddgddgg¦  «        }t          t          j        |¦  «        d¦  «         t          t          j        |d¬¦  «        d¦  «         t          j        ddgddgddgg¦  «        }t          t          j        |¦  «        t          j        d¦  «        d	z  ¦  «         t          t          j        |d¬¦  «        t          j        d¦  «        dz  ¦  «         t          t          j        |d
¬¦  «        d¦  «         t          t          j        |dd
¬¦  «        d¦  «         t           j                             d¦  «        }t          j        d|¬¦  «                             d¦  «        }t          t          j        |¦  «        d¦  «         t          t          j        |d¬¦  «        d¦  «         d S )Nr   r   r   Úmstr_   r   ç      è?ç      Ð?rN   Ú	chebyshev)Úmetric)r`   rŽ   l	   ’sˆ;80øri�R$½� r'   ©Údr;   é2   g–˜Y�$ª?guÚ—¼8É?)	r*   r+   r   r   r…   rk   r9   r:   ÚLatinHypercube)r,   r<   r;   s      r2   Útest_geometric_discrepancyz$TestUtils.test_geometric_discrepancyË   s  € Ý”˜A˜q˜6 A q 6Ð*Ñ+Ô+ˆÝ�Ô1°&Ñ9Ô9½2¼7À1¹:¼:ÑFÔFÐFÝ�Ô1°&ÀÐGÑGÔGÍÌÐQRÉÌÑTÔTÐTå”˜A˜q˜6 A q 6¨C°¨8Ð4Ñ5Ô5ˆÝ�Ô1°&Ñ9Ô9¸3Ñ?Ô?Ð?Ý�Ô1°&ÀÐGÑGÔGÈÑNÔNÐNå”˜A˜q˜6 D¨$ <°!°Q°Ð8Ñ9Ô9ˆÝ�Ô1°&Ñ9Ô9½2¼7À1¹:¼:È¹>ÑJÔJÐJÝ�Ô1°&ÀÐGÑGÔGÍÌÐQRÉÌÐVWÉÑXÔXÐXÝ�Ô1°&ÀÐMÑMÔMÈtÑTÔTÐTÝÝÔ% f°UÀ;ÐOÑOÔOÐQTñ	
ô 	
ð 	
õ Œi×#Ò#Ð$KÑLÔLˆÝÔ# a¨SÐ1Ñ1Ô1×8Ò8¸Ñ<Ô<ˆÝ�Ô1°&Ñ9Ô9Ð;NÑOÔOÐOÝÝÔ% f°UÐ;Ñ;Ô;Ð=Pñ	
ô 	
ð 	
ð 	
ð 	
r4   z5minimum_spanning_tree ignores zero distances (#18892)T)ÚreasonÚstrictc                 óˆ   — t          j        ddgddgddgg¦  «        }t          t          j        |d¬¦  «        d¦  «         d S )Nr   r   rŠ   r_   r   )r*   r+   r   r   r…   rt   s     r2   Ú2test_geometric_discrepancy_mst_with_zero_distancesz<TestUtils.test_geometric_discrepancy_mst_with_zero_distancesã   sL   € õ ”˜A˜q˜6 A q 6¨A¨q¨6Ð2Ñ3Ô3ˆÝ�Ô1°&ÀÐGÑGÔGÈÑMÔMÐMÐMÐMr4   c           	      ób  — t          j        ddgddgddgddgddgddgg¦  «        }d|z  dz
  d	z  }t          j        |d d
…         d¬¦  «        }t	          |d
         |d d
…         |¦  «        }t          |dd¬¦  «         t           j                             d¦  «        }|                     d¦  «        }t          j        |¦  «        }t          j        |d d
…         d¬¦  «        }t	          |d
         |d d
…         |¦  «        }t          ||d¬¦  «         t          j	        t          d¬¦  «        5  t	          |d
         |d d
…         dz   |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j	        t          d¬¦  «        5  t	          |d
         |d         |¦  «         d d d ¦  «         n# 1 swxY w Y   ddg}t          j	        t          d¬¦  «        5  t	          ||d d
…         |¦  «         d d d ¦  «         n# 1 swxY w Y   ddgg}t          j	        t          d¬¦  «        5  t	          ||d d
…         |¦  «         d d d ¦  «         n# 1 swxY w Y   g d¢}t          j	        t          d¬¦  «        5  t	          ||d d
…         |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r'   r   r   rN   r"   rO   rP   rQ   rx   T)Ú	iterativerR   rS   rT   l	   gy°,!uUx‡FYo9"]µ )rN   r8   rG   rD   rC   r   zx_new is not in unit hypercuber   zx_new is not a 1D array)g333333Ó?çš™™™™™¹?r   z&x_new and sample must be broadcastable)r*   r+   r   rj   r   r   r9   r:   rI   rJ   rK   )r,   rl   Ú	disc_initÚ	disc_iterr;   Údisc_refÚx_news          r2   Útest_update_discrepancyz!TestUtils.test_update_discrepancyì   s/  € å”(˜Q ˜F Q¨ F¨Q°¨F°Q¸°F¸QÀ¸FÀQÈÀFÐKÑLÔLˆØ˜‘= 3Ñ&¨9Ñ5ˆå”O G¨C¨R¨C¤L¸DÐAÑAÔAˆ	Ý& w¨r¤{°G¸C¸R¸C´LÀ)ÑLÔLˆ	å˜	 6°Ð5Ñ5Ô5Ð5õ Œi×#Ò#Ð$KÑLÔLˆØ—*’*˜WÑ%Ô%ˆå”? 7Ñ+Ô+ˆÝ”O G¨C¨R¨C¤L¸DÐAÑAÔAˆ	Ý& w¨r¤{°G¸C¸R¸C´LÀ)ÑLÔLˆ	å˜	 8°$Ð7Ñ7Ô7Ð7õ Œ]�:ð .:ð ;ñ ;ô ;ð 	Ið 	Iå˜w rœ{¨G°C°R°C¬L¸1Ñ,<¸iÑHÔHÐHð	Ið 	Ið 	Iñ 	Iô 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Iøøøð 	Ið 	Ið 	Ið 	Iõ Œ]�:Ð-HÐIÑIÔIð 	Cð 	CÝ˜w rœ{¨G°A¬J¸	ÑBÔBÐBð	Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cð �A�ˆÝŒ]�:ð .:ð ;ñ ;ô ;ð 	?ð 	?å˜u g¨c¨r¨c¤l°IÑ>Ô>Ð>ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð �s��ˆÝŒ]�:Ð-GÐHÑHÔHð 	?ð 	?Ý˜u g¨c¨r¨c¤l°IÑ>Ô>Ð>ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð ��ˆÝŒ]�:ð .>ð ?ñ ?ô ?ð 	?ð 	?å˜u g¨c¨r¨c¤l°IÑ>Ô>Ð>ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð 	?ð 	?sZ   Ä3#E"Å"E&Å)E&ÆF2Æ2F6Æ9F6ÇHÈHÈ	HÈ-IÉIÉIÉ=J$Ê$J(Ê+J(c                 ó  — t           j                             d¦  «        }t          j        d|¬¦  «        }|                     d¦  «        }t          j        |¦  «        }t          d¦  «        D ]—}|                     d¦  «        }|                     d¦  «        }|                     d¦  «        }t          |||||¦  «        }|||f         |||f         c|||f<   |||f<   t          j        |¦  «        }	t          ||	¦  «         Œ˜d S )Nl	   ýPv’W®uW=�lêWêx" r"   ©r;   r8   éd   )
r*   r9   r:   r   r’   rj   ÚrangeÚintegersr   r   )
r,   r;   Úqmc_genr<   ÚdiscÚiÚrow_1Úrow_2ÚcolÚdisc_references
             r2   Útest_perm_discrepancyzTestUtils.test_perm_discrepancy  s  € ÝŒi×#Ò#Ð$JÑKÔKˆÝÔ$ Q¨CÐ0Ñ0Ô0ˆØ—’ Ñ#Ô#ˆÝŒ˜vÑ&Ô&ˆå�s‘”ð 		2ð 		2ˆAØ—L’L Ñ$Ô$ˆEØ—L’L Ñ$Ô$ˆEØ—,’,˜q‘/”/ˆCå'¨°°u¸cÀ4ÑHÔHˆDà�u˜c�zÔ" F¨5°#¨:Ô$6ð 3ˆF�5˜#�:Ñ  u¨c zÑ 2å œ_¨VÑ4Ô4ˆNÝ˜D .Ñ1Ô1Ð1Ð1ð		2ð 		2r4   c                 ó  — d„ }d„ }d„ }d„ }t           j                             d¦  «        }|                     d¦  «        }t          j        |d¬¦  «        } ||¦  «        }t          ||¦  «         t          j        |d	¬¦  «        } ||¦  «        }t          ||¦  «         t          j        |d
¬¦  «        } ||¦  «        }t          ||¦  «         t          j        |d¬¦  «        } ||¦  «        }t          ||¦  «         dS )z,Alternative definitions from Matt Haberland.c                 óf  — | j         \  }}| }t          j        t          j        ddt          j        |dz
  ¦  «        z  z   dt          j        |dz
  ¦  «        dz  z  z
  d¬¦  «        ¦  «        }| d d d …d d …f         }| d d …d d d …f         }t          j        t          j        t          j        ddt          j        |dz
  ¦  «        z  z   dt          j        |dz
  ¦  «        z  z   dt          j        ||z
  ¦  «        z  z
  d¬¦  «        d¬¦  «        ¦  «        }d|z  d|z  |z  z
  d|dz  z  |z  z   S )Nr   r   r   ©Úaxisr   gUUUUUUñ?©Úshaper*   ÚsumÚprodÚabs©ÚxÚnÚsÚxijÚdisc1ÚxkjÚdisc2s          r2   Údisc_c2zFTestUtils.test_discrepancy_alternative_implementation.<locals>.disc_c2*  so  € Ø”7‰DˆAˆqØˆCÝ”F�2œ7 AØ&)­"¬&°°S±©/¬/Ñ&9ñ%:à&)­"¬&°°S±©/¬/¸1Ñ*<Ñ&<ñ%=àDEðGñ Gô Gñ Hô HˆEð �D˜!˜!˜!˜Q˜Q˜Q�J”-ˆCØ�A�A�A�t˜Q˜Q˜Q�J”-ˆCÝ”F�2œ6¥"¤'¨!Ø,/µ´°s¸S±yÑ0AÔ0AÑ,Añ+Bà,/µ´°s¸S±yÑ0AÔ0AÑ,Añ+Bð -0µ´°s¸S±yÑ0AÔ0AÑ,Añ+Bð IJð#Kñ #Kô #Kð ()ð	*ñ *ô *ñ +ô +ˆEð
 ˜A‘:  !¡ e¡Ñ+¨a°°1±©f°U©lÑ:Ð:r4   c                 óT  — | j         \  }}| d d d …d d …f         }| d d …d d d …f         }t          j        t          j        t          j        dt          j        ||z
  ¦  «        z
  t          j        ||z
  ¦  «        dz  z   d¬¦  «        d¬¦  «        ¦  «        }d|z   d|dz  z  |z  z   S )Nr(   r   r¯   r   gUUUUUUõ?r   r±   )r·   r¸   r¹   rº   r¼   r¦   s         r2   Údisc_wdzFTestUtils.test_discrepancy_alternative_implementation.<locals>.disc_wd9  sÐ   € Ø”7‰DˆAˆqØ�D˜!˜!˜!˜Q˜Q˜Q�J”-ˆCØ�A�A�A�t˜Q˜Q˜Q�J”-ˆCÝ”6�"œ&¥¤¨Ý+-¬6°#¸±)Ñ+<Ô+<ñ*=å+-¬6°#¸±)Ñ+<Ô+<¸aÑ+?ñ*@àFGð"Iñ "Iô "Ið '(ð)ñ )ô )ñ *ô *ˆDð ˜1‘H�9˜q  A¡™v¨™}Ñ,Ð,r4   c                 ó¢  — | j         \  }}| }t          j        t          j        ddt          j        |dz
  ¦  «        z  z
  dt          j        |dz
  ¦  «        dz  z  z
  d¬¦  «        ¦  «        }| d d d …d d …f         }| d d …d d d …f         }t          j        t          j        t          j        ddt          j        |dz
  ¦  «        z  z
  dt          j        |dz
  ¦  «        z  z
  dt          j        ||z
  ¦  «        z  z
  dt          j        ||z
  ¦  «        dz  z  z   d¬¦  «        d	¬¦  «        ¦  «        }d
|z  d|z  |z  z
  d|dz  z  |z  z   S )Ng«ªªªªªú?rŒ   r   r   r   r¯   g      þ?r‹   r   gUUUUUUù?r±   r¶   s          r2   Údisc_mdzFTestUtils.test_discrepancy_alternative_implementation.<locals>.disc_mdC  s�  € Ø”7‰DˆAˆqØˆCÝ”F�2œ7 CØ&)­"¬&°°S±©/¬/Ñ&9ñ%:à&)­"¬&°°S±©/¬/¸1Ñ*<Ñ&<ñ%=àDEðGñ Gô Gñ Hô HˆEð �D˜!˜!˜!˜Q˜Q˜Q�J”-ˆCØ�A�A�A�t˜Q˜Q˜Q�J”-ˆCÝ”F�2œ6¥"¤'¨$Ø,/µ´°s¸S±yÑ0AÔ0AÑ,Añ+Bà,/µ´°s¸S±yÑ0AÔ0AÑ,Añ+Bð -0µ´°s¸S±yÑ0AÔ0AÑ,Añ+Bð -0µ´°s¸S±yÑ0AÔ0AÀ1Ñ0DÑ,Dñ	+Eð
 01ð#2ñ #2ô #2ð
 9:ð;ñ ;ô ;ñ <ô <ˆEð ˜A‘:  !¡ e¡Ñ+¨a°°1±©f°U©lÑ:Ð:r4   c                 ó*  ‡ ‡— ‰ j         \  Š}t          j        d| z  dd|z
  z  ‰z  t          j        t          j        d‰ dz  z
  d¬¦  «        ¦  «        z  z
  t          j        ˆˆ fd„t          ‰¦  «        D ¦   «         ¦  «        ‰dz  z  z   ¦  «        S )Nr'   r   r   r¯   c                 ó°   •— g | ]R}t          ‰¦  «        D ]@}t          j        d t          j        ‰|dd…f         ‰|dd…f         ¦  «        z
  ¦  «        ‘ŒAŒSS )r   N)r£   r*   r´   Úmaximum)Ú.0ÚkÚjr¸   r·   s      €€r2   ú
<listcomp>z_TestUtils.test_discrepancy_alternative_implementation.<locals>.disc_star_l2.<locals>.<listcomp>X  sv   ø€ ð ð ð à­u°Q©x¬xðð à*+õ ”G˜A¥¤
¨1¨Q°°°¨T¬7°A°a¸¸¸°d´GÑ <Ô <Ñ<Ñ=Ô=ðð ð ð r4   )r²   r*   rk   r³   r´   r£   )r·   r¹   r¸   s   ` @r2   Údisc_star_l2zKTestUtils.test_discrepancy_alternative_implementation.<locals>.disc_star_l2S  s¼   øø€ Ø”7‰DˆAˆqÝ”7Ø�q�b‘	˜A ! a¡%™L¨1Ñ,Ý”&�œ  Q¨!¡V¡°!Ð4Ñ4Ô4Ñ5Ô5ñ6ñ 6å”&ð ð ð ð ð å" 1™XœXðñ ô ñ ô ð ˜!‘Vñññô ð r4   l	   Áj¤;<Q`sºi—y—õX r6   rc   r_   ra   r^   ri   N)r*   r9   r:   r   rj   r   )	r,   r¾   rÀ   rÂ   rÊ   r;   r<   Ú	disc_currÚdisc_alts	            r2   Ú+test_discrepancy_alternative_implementationz5TestUtils.test_discrepancy_alternative_implementation'  s3  € ð	;ð 	;ð 	;ð	-ð 	-ð 	-ð	;ð 	;ð 	;ð 		ð 		ð 		õ Œi×#Ò#Ð$KÑLÔLˆØ—’˜HÑ%Ô%ˆå”O F°4Ð8Ñ8Ô8ˆ	Ø�7˜6‘?”?ˆÝ˜	 8Ñ,Ô,Ð,å”O F°4Ð8Ñ8Ô8ˆ	Ø�7˜6‘?”?ˆÝ˜	 8Ñ,Ô,Ð,å”O F°4Ð8Ñ8Ô8ˆ	Ø�7˜6‘?”?ˆÝ˜	 8Ñ,Ô,Ð,å”O F°9Ð=Ñ=Ô=ˆ	Ø�< Ñ'Ô'ˆÝ˜	 8Ñ,Ô,Ð,Ð,Ð,r4   c                 ó´   — t          d¦  «        }|d         dk    sJ ‚t          d¦  «        }|d         dk    sJ ‚t          d¦  «        }|d         dk    sJ ‚d S )Nr8   rx   é   é¨   iå  i^  i5	  )r   )r,   Úprimess     r2   Útest_n_primeszTestUtils.test_n_primesq  sh   € Ý˜"‘”ˆØ�bŒz˜RÒÐÐÐå˜#‘”ˆØ�bŒz˜SÒ Ð Ð Ð å˜#‘”ˆØ�bŒz˜TÒ!Ð!Ð!Ð!Ð!Ð!r4   c                 óL   — t          d¦  «        }g d¢}t          ||¦  «         d S )Nr‘   )r   r'   r"   é   é   é   é   é   é   rÏ   é   é%   é)   é+   é/   )r   r   )r,   rÑ   r.   s      r2   Útest_primeszTestUtils.test_primes{  s0   € Ý! "Ñ%Ô%ˆØFÐFÐFˆÝ˜ Ñ$Ô$Ð$Ð$Ð$r4   N)Ú__name__Ú
__module__Ú__qualname__r3   rA   rL   rp   ru   rƒ   rˆ   r“   rI   ÚmarkÚxfailÚthread_unsafer—   rŸ   r¬   rÍ   rÒ   rß   r|   r4   r2   r   r      s2  € € € € € ð+ð +ð +ð<*ð *ð *ð $ð  $ð  $ðD#Dð #Dð #DðJ3ð 3ð 3ð!0ð !0ð !0ðF.ð .ð .ð*
ð 
ð 
ð0 „[×ÒØJØð ñ ô ð „[ÔðNð Nñ Ôñ	ô ð
Nð(?ð (?ð (?ðT2ð 2ð 2ð"H-ð H-ð H-ðT"ð "ð "ð%ð %ð %ð %ð %r4   r   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestVDCc                 ó"  — t          d¦  «        }g d¢}t          ||¦  «         t          dd¬¦  «        }t          ||¦  «         t          dd¬¦  «        }t          ||¦  «         t          dd¬¦  «        }t          ||dd …         ¦  «         d S )	Nr8   )
ç        r   rŒ   r‹   ç      À?ç      ä?ç      Ø?ç      ì?g      °?g      â?rN   r~   rH   rÔ   r'   )Ústart_index©r   r   )r,   r<   r.   s      r2   Útest_van_der_corputzTestVDC.test_van_der_corput‚  s¤   € Ý Ñ#Ô#ˆð-ð -ð -ˆå˜ Ñ$Ô$Ð$å ¨AÐ.Ñ.Ô.ˆÝ˜ Ñ$Ô$Ð$å ¨AÐ.Ñ.Ô.ˆÝ˜ Ñ$Ô$Ð$å ¨qÐ1Ñ1Ô1ˆÝ˜  A B B¤Ñ(Ô(Ð(Ð(Ð(r4   c                 ó4  — d}t          dd|¬¦  «        }t          ddd|¬¦  «        }t          ||dd …         ¦  «         t          ddd|d¬	¦  «        }t          ||dd …         ¦  «         t          ddd|d
¬	¦  «        }t          ||dd …         ¦  «         d S )Nl	   	XCòf
Kl<{OÍ8þ r8   T©Úscrambler;   rÔ   r'   )rî   ró   r;   rN   )rî   ró   r;   rw   rH   rï   )r,   r;   r.   r<   s       r2   Útest_van_der_corput_scramblez$TestVDC.test_van_der_corput_scramble‘  sÁ   € Ø5ˆÝ˜R¨$°CÐ8Ñ8Ô8ˆå ¨q¸4ÀSÐIÑIÔIˆÝ˜  A B B¤Ñ(Ô(Ð(åØ˜1 t°¸að
ñ 
ô 
ˆõ 	˜  A B B¤Ñ(Ô(Ð(åØ˜1 t°¸að
ñ 
ô 
ˆõ 	˜  A B B¤Ñ(Ô(Ð(Ð(Ð(r4   c                 ó�   — t          j        t          d¬¦  «        5  t          dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz'base' must be at least 2rD   r8   r   )Úbase)rI   rJ   rK   r   ©r,   s    r2   Útest_invalid_base_errorzTestVDC.test_invalid_base_error¢  s�   € ÝŒ]�:Ð-IÐJÑJÔJð 	'ð 	'Ý˜2 AÐ&Ñ&Ô&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð 	'ð 	's   œ;»?Á?N)rà   rá   râ   rð   rô   rø   r|   r4   r2   rç   rç   �  sA   € € € € € ð)ð )ð )ð)ð )ð )ð"'ð 'ð 'ð 'ð 'r4   rç   c                   ó.   ‡ — e Zd Zdˆ fd„	Zdddœd„Zˆ xZS )ÚRandomEngineNc                 óP   •— t          ¦   «                              |||¬¦  «         d S )N)r�   Úoptimizationr;   )ÚsuperÚ__init__)r,   r�   rü   r;   Ú	__class__s       €r2   rþ   zRandomEngine.__init__¨  s(   ø€ Ý‰Œ×Ò˜1¨<¸SÐÑAÔAÐAÐAÐAr4   r   r~   c                óH   — | j                              || j        f¦  «        }|S r{   )r;   r9   r�   )r,   r¸   rw   r<   s       r2   Ú_randomzRandomEngine._random«  s    € Ø”—’ ! T¤V Ñ-Ô-ˆØˆr4   ©NN)r   )rà   rá   râ   rþ   r  Ú__classcell__)rÿ   s   @r2   rú   rú   §  sc   ø€ € € € € ðBð Bð Bð Bð Bð Bð að ð ð ð ð ð ð ð ð r4   rú   c                  óâ  — t          dd¬¦  «        } |                      d¬¦  «        }|                      d¬¦  «        }| j        dk    sJ ‚|                      ¦   «          | j        dk    sJ ‚|                      d¬¦  «        }t	          ||¦  «         |                      ¦   «          |                      d¬¦  «         |                      d¬¦  «        }t	          ||¦  «         | j        dk    sJ ‚d S )	Nr   l	   šF,@IY^ä+Geƒ r¡   r"   ©r¸   rÔ   é   r   )rú   r9   Únum_generatedÚresetr   Úfast_forward)ÚengineÚsample_1Úsample_2Úsample_1_testÚsample_2_tests        r2   Útest_subclassing_QMCEnginer  °  sø   € Ý˜!Ð!HÐIÑIÔI€Fà�}Š}˜qˆ}Ñ!Ô!€HØ�}Š}˜qˆ}Ñ!Ô!€HØÔ 2Ò%Ð%Ð%Ð%ð ‡L‚L�N„N€NØÔ 1Ò$Ð$Ð$Ð$à—M’M A�MÑ&Ô&€MÝ�˜=Ñ)Ô)Ð)ð ‡L‚L�N„N€NØ
×Ò˜!ÐÑÔÐØ—M’M A�MÑ&Ô&€Må�˜=Ñ)Ô)Ð)ØÔ 2Ò%Ð%Ð%Ð%Ð%Ð%r4   c                  óÆ  — t          j        t          d¬¦  «        5  t          d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          d¦  «         d d d ¦  «         n# 1 swxY w Y   d} t          j        t          | ¬¦  «        5  t          d¦  «        }|                     dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nz d must be a non-negative integerrD   )r   rx   z*'u_bounds' and 'l_bounds' must be integersr   çš™™™™™ñ?r   )rI   rJ   rK   rú   r¤   )Úmsgr
  s     r2   Útest_raisesr  Ç  s—  € å	Œ•zÐ)LÐ	MÑ	MÔ	Mð ð Ý�TÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ•zÐ)LÐ	MÑ	MÔ	Mð ð Ý�RÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð 8€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð 2ð 2Ý˜a‘”ˆØ�Š ¨SˆÑ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð 2s0   œ8¸<¿<ÁA:Á:A>ÂA>Â"'CÃCÃCc                  óè  — t          dd¬¦  «        } |                      dd¬¦  «        }t          t          j        |¦  «        dg¦  «         |j        t          j        d¦  «        k    sJ ‚|                      ddd¬	¦  «        }t          t          j        |¦  «        ddg¦  «         d
}d}|                      ¦   «          |                      d¦  «        }|||z
  z  |z   }t          j        |¦  «         	                    t          j
        ¦  «        }|                      ¦   «          |                      ||dd¬¦  «        }t          ||¦  «         |                      ||dd¬¦  «        }t          |                     ¦   «         |                     ¦   «         f||dz
  f¦  «         |                      ||dd¬¦  «        }t          |                     ¦   «         |                     ¦   «         f||f¦  «         d S )Nr   l	   llGíö[/Ww­ r¡   r8   r  r   Úint64T)r¸   ÚendpointéûÿÿÿrÔ   é   F©r!   r¸   r  r¢   )rú   r¤   r   r*   ÚuniqueÚdtyper  r9   ÚfloorÚastyper  ÚminÚmax)r
  r<   ÚlowÚhighÚ
ref_samples        r2   Útest_integersr#  Õ  s¼  € Ý˜!Ð!HÐIÑIÔI€Fð �_Š_˜Q "ˆ_Ñ%Ô%€FÝ•”˜6Ñ"Ô" Q CÑ(Ô(Ð(àŒ<�2œ8 GÑ,Ô,Ò,Ð,Ð,Ð,à�_Š_˜Q "¨tˆ_Ñ4Ô4€FÝ•”˜6Ñ"Ô" Q¨ FÑ+Ô+Ð+à
€CØ€Dð ‡L‚L�N„N€NØ—’˜rÑ"Ô"€JØ˜t c™zÑ*¨SÑ0€JÝ”˜*Ñ%Ô%×,Ò,­R¬XÑ6Ô6€Jà
‡L‚L�N„N€NØ�_Š_˜S¨4°2Àˆ_ÑFÔF€Få�˜Ñ$Ô$Ð$ð �_Š_˜S¨4°3Àˆ_ÑGÔG€FÝ�&—*’*‘,”, §
¢
¡¤Ð-°°T¸!±V¨}Ñ=Ô=Ð=à�_Š_˜S¨4°3Àˆ_ÑFÔF€FÝ�&—*’*‘,”, §
¢
¡¤Ð-°°T¨{Ñ;Ô;Ð;Ð;Ð;r4   c                  óV  — d} t           j                             d¦  «        }|                     dd| ¬¦  «        }|                     dd| d¬	¦  «        }t	          | |¬
¦  «        }|                     ||dd¬¦  «        }t          |                     d¬¦  «        |¦  «         t          |                     d¬¦  «        |dz
  ¦  «         |                     ||dd¬¦  «        }t          |                     d¬¦  «        |¦  «         t          |                     d¬¦  «        |¦  «         d S )Nr8   l	   G]	#0¦m$avâe r  rx   )r   r!  Úsizer   r"   T)r   r!  r%  r  r¡   r¢   Fr  r   r¯   )r*   r9   r:   r¤   rú   r   r  r  )r�   r;   r   r!  r
  r<   s         r2   Útest_integers_ndr&  ÷  s  € Ø
€AÝ
Œ)×
Ò
Ð EÑ
FÔ
F€CØ
�,Š,˜2 B¨Qˆ,Ñ
/Ô
/€CØ�<Š<˜A A¨A¸ˆ<Ñ=Ô=€DÝ˜! Ð%Ñ%Ô%€Fà�_Š_˜S¨4°3Àˆ_ÑGÔG€FÝ�—’ �Ñ#Ô# SÑ)Ô)Ð)Ý�—’ �Ñ#Ô# T¨!¡VÑ,Ô,Ð,à�_Š_˜S¨4°3Àˆ_ÑFÔF€FÝ�—’ �Ñ#Ô# SÑ)Ô)Ð)Ý�—’ �Ñ#Ô# TÑ*Ô*Ð*Ð*Ð*r4   c            
       óô  — e Zd ZdZeZeZeZeZddgZ	ddgZ
	 d dedefd	„Zdedej        fd
„Zej                             de	e
¬¦  «        d„ ¦   «         Zej                             de	e
¬¦  «        d„ ¦   «         Zej                             de	e
¬¦  «        d„ ¦   «         Zej                             de	e
¬¦  «        d„ ¦   «         Zej                             de	e
¬¦  «        d„ ¦   «         Zej                             de	e
¬¦  «        d„ ¦   «         Zej                             de	e
¬¦  «        ej                             ddd„  ej        dej        j        ¬¦  «        f¦  «        d„ ¦   «         ¦   «         Zej                             de	e
¬¦  «        d„ ¦   «         Zej                             ddg¦  «        d„ ¦   «         Zd„ Zej                             dde j!        fdd„ fg¦  «        d„ ¦   «         Z"d„ Z#dS )!ÚQMCEngineTestszGeneric tests for QMC engines.TFÚ	ScrambledÚUnscrambledì	   \v$PdËv†uL2+C€ ró   Úreturnc                 ó|   — | j         r | j        d||dœ|¤ŽS |rt          j        ¦   «          d S  | j        dd|i|¤ŽS )N)ró   Úseedr.  r|   )Úcan_scrambleÚqmcerI   Úskip)r,   ró   r;   Úkwargss       r2   r
  zQMCEngineTests.engine  sb   € ð Ôð 	5Ø�4”9ÐC h°SÐCÐC¸FÐCÐCÐCàð 5Ý”‘”���à �t”yÐ4Ð4 cÐ4¨VÐ4Ð4Ð4r4   c                 ó"   — |r| j         n| j        S r{   )Úscramble_ndÚunscramble_nd)r,   ró   s     r2   Ú	referencezQMCEngineTests.reference!  s   € Ø#+ÐCˆtÔÐ°Ô1CÐCr4   )Úidsc                 ó¢   — |                       d|¬¦  «        }|                     d¦  «        }t          t          j        d¦  «        |¦  «         d S )Nr   ©r�   ró   rN   )rN   r   ©r
  r9   r   r*   Úempty©r,   ró   r
  r<   s       r2   Ú	test_0dimzQMCEngineTests.test_0dim$  óH   € à—’˜q¨8�Ñ4Ô4ˆØ—’˜qÑ!Ô!ˆÝ�2œ8 FÑ+Ô+¨VÑ4Ô4Ð4Ð4Ð4r4   c                 ó¢   — |                       d|¬¦  «        }|                     d¦  «        }t          t          j        d¦  «        |¦  «         d S )Nr   r9  r   ©r   r   r:  r<  s       r2   Útest_0samplezQMCEngineTests.test_0sample*  r>  r4   c                 óx   — |                       d|¬¦  «        }|                     d¦  «        }d|j        k    sJ ‚d S )Nr   r9  r   ©r   r   )r
  r9   r²   r<  s       r2   Útest_1samplezQMCEngineTests.test_1sample0  sA   € à—’˜q¨8�Ñ4Ô4ˆØ—’˜qÑ!Ô!ˆØ˜œÒ%Ð%Ð%Ð%Ð%Ð%r4   c                 óÆ   — |                       d|¬¦  «        }|                     d¦  «        }t          j        |dk    ¦  «        sJ ‚t          j        |dk    ¦  «        sJ ‚d S )Nr¢   r9  é   r   r   )r
  r9   r*   Úallr<  s       r2   Útest_boundszQMCEngineTests.test_bounds6  sb   € à—’˜s¨X�Ñ6Ô6ˆØ—’˜sÑ#Ô#ˆÝŒv�f ’kÑ"Ô"Ð"Ð"Ð"ÝŒv�f ’kÑ"Ô"Ð"Ð"Ð"Ð"Ð"r4   c                 óþ   — |                       |¬¦  «        }|                      d|¬¦  «        }|                     t          |¦  «        ¬¦  «        }t	          ||d¬¦  «         |j        t          |¦  «        k    sJ ‚d S )N©ró   r   r9  r  rš   rT   )r6  r
  r9   Úlenr   r  )r,   ró   r"  r
  r<   s        r2   Útest_samplezQMCEngineTests.test_sample=  sx   € à—^’^¨X�^Ñ6Ô6ˆ
Ø—’˜q¨8�Ñ4Ô4ˆØ—’¥ Z¡¤�Ñ1Ô1ˆå˜ 
°Ð6Ñ6Ô6Ð6ØÔ#¥s¨:¡¤Ò6Ð6Ð6Ð6Ð6Ð6r4   c                 ó>  — |                       d|¬¦  «        }|                     d¬¦  «        }|                       d|¬¦  «        }t          |¦  «        dz  }|                     |¬¦  «        }|                     |¬¦  «        }t          |||d …         d¬¦  «         d S )Nr   r9  rH   r  rš   rT   )r
  r9   rK  r   )r,   ró   r
  r"  Ún_halfÚ_r<   s          r2   Útest_continuingzQMCEngineTests.test_continuingF  s™   € à—’˜q¨8�Ñ4Ô4ˆØ—]’] Q�]Ñ'Ô'ˆ
à—’˜q¨8�Ñ4Ô4ˆå�Z‘” AÑ%ˆà�MŠM˜FˆMÑ#Ô#ˆØ—’ �Ñ(Ô(ˆÝ˜ 
¨6¨7¨7Ô 3¸$Ð?Ñ?Ô?Ð?Ð?Ð?r4   r;   c                  ó@   — t           j                             d¦  «        S )Nr+  )r*   r9   r:   r|   r4   r2   r}   zQMCEngineTests.<lambda>X  s   € •B”I×)Ò)Ð*QÑRÔR€ r4   N)Úmarksc                 ó"  — t          |¦  «        r
 |¦   «         }|                      d||¬¦  «        }|                     d¬¦  «        }|                     ¦   «          |j        dk    sJ ‚|                     d¬¦  «        }t          ||¦  «         d S )Nr   ©r�   ró   r;   rH   r  r   )Úcallabler
  r9   r  r  r   )r,   ró   r;   r
  r"  r<   s         r2   Ú
test_resetzQMCEngineTests.test_resetS  s‘   € õ �C‰=Œ=ð 	à�#‘%”%ˆCØ—’˜q¨8¸�Ñ=Ô=ˆØ—]’] Q�]Ñ'Ô'ˆ
à�Š‰ŒˆØÔ# qÒ(Ð(Ð(Ð(à—’ �Ñ#Ô#ˆÝ˜ 
Ñ+Ô+Ð+Ð+Ð+r4   c                 óv  — |                       d|¬¦  «        }|                     d¬¦  «        }|                       d|¬¦  «        }|                     d¦  «         |                     d¬¦  «        }t          ||dd …         d¬¦  «         |                     ¦   «          g }t          d¦  «        D ]H}|dz  dk    r(|                     |                     ¦   «         ¦  «         Œ3|                     d	¦  «         ŒIt          |d
„ t          d¦  «        D ¦   «                  t          j        |¦  «        d¬¦  «         d S )Nr   r9  rH   r  rN   rš   rT   r   r   c                 ó$   — g | ]}|d z  dk    ¯|‘ŒS )r   r   r|   )rÆ   r§   s     r2   rÉ   z4QMCEngineTests.test_fast_forward.<locals>.<listcomp>~  s!   € Ð:Ð:Ð:˜a¨q°1©u¸ªz¨z˜¨z¨z¨zr4   çñhãˆµøä>)	r
  r9   r	  r   r  r£   Úappendr*   Úconcatenate)r,   ró   r
  r"  r<   Ú
even_drawsr§   s          r2   Útest_fast_forwardz QMCEngineTests.test_fast_forwardi  s=  € à—’˜q¨8�Ñ4Ô4ˆØ—]’] Q�]Ñ'Ô'ˆ
à—’˜q¨8�Ñ4Ô4ˆà×Ò˜AÑÔÐØ—’ �Ñ#Ô#ˆå˜ 
¨1¨2¨2¤°TÐ:Ñ:Ô:Ð:ð 	�Š‰ŒˆØˆ
Ý�q‘”ð 	'ð 	'ˆAØ�1‰u˜ŠzˆzØ×!Ò! &§-¢-¡/¤/Ñ2Ô2Ð2Ð2à×#Ò# AÑ&Ô&Ð&Ð&ÝØÐ:Ð:¥5¨¡8¤8Ð:Ñ:Ô:Ô;ÝŒN˜:Ñ&Ô&Øð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r4   c                 ó¼  — d}|                       ||¬¦  «        }|                     d¦  «        }t          t          j        |d¬¦  «        t          j        d|¦  «        d¬¦  «         t          t          j        |d	d¬¦  «        t          j        d
|¦  «        d¬¦  «         t          t          j        |dd¬¦  «        t          j        d|¦  «        d¬¦  «         d S )Nr‘   r9  i   r   r¯   r   ç{®Gáz„?rT   é   rŒ   éK   r‹   )r
  r9   r   r*   ÚmeanÚrepeatÚ
percentile)r,   ró   r�   r
  r<   s        r2   Útest_distributionz QMCEngineTests.test_distributionƒ  sê   € àˆØ—’˜q¨8�Ñ4Ô4ˆØ—’˜tÑ$Ô$ˆÝÝŒG�F Ð#Ñ#Ô#¥R¤Y¨s°AÑ%6Ô%6¸Tð	
ñ 	
ô 	
ð 	
õ 	ÝŒM˜& "¨1Ð-Ñ-Ô-­r¬y¸¸qÑ/AÔ/AÈð	
ñ 	
ô 	
ð 	
õ 	ÝŒM˜& "¨1Ð-Ñ-Ô-­r¬y¸¸qÑ/AÔ/AÈð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r4   c                 ó¢   — d}t          j        t          |¬¦  «        5  |                      ddd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz)'toto' is not a valid optimization methodrD   r   Frs   ©r�   ró   rü   )rI   rJ   rK   r
  ©r,   Úmessages     r2   Útest_raises_optimizerz$QMCEngineTests.test_raises_optimizer’  s¬   € Ø>ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	Bð 	BØ�KŠK˜! e¸&ˆKÑAÔAÐAð	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bs   žAÁAÁAzoptimization,metricú	random-CDÚlloydc                 ó"   — t          | ¦  «         S r{   )r   ©r<   s    r2   r}   zQMCEngineTests.<lambda>›  s   € ¥h¨vÑ&6Ô&6Ð%6€ r4   c                 óø   — |                       dd¬¦  «        }|                     d¬¦  «        } ||¦  «        }|                       dd|¬¦  «        }|                     d¬¦  «        } ||¦  «        }||k     sJ ‚d S )Nr   Fr9  rh   r  rg  )r
  r9   )	r,   rü   rŽ   r
  Ú
sample_refÚ
metric_refÚoptimal_Úsample_Úmetric_s	            r2   Útest_optimizerszQMCEngineTests.test_optimizers—  s‰   € ð —’˜q¨5�Ñ1Ô1ˆØ—]’] R�]Ñ(Ô(ˆ
Ø�V˜JÑ'Ô'ˆ
à—;’; ¨UÀ�;ÑNÔNˆØ—/’/ B�/Ñ'Ô'ˆØ�&˜‘/”/ˆà˜Ò#Ð#Ð#Ð#Ð#Ð#r4   c                 ó*  — t           j                             d¦  «        }g }t          d¦  «        D ]B}|                      dd|¬¦  «        }|                     |                     d¦  «        ¦  «         ŒCt          j        t          d¬¦  «        5  t          |d	         |d
         ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          |d	         |d         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nl	    B©û"V6ÿD¾GlUN¢ r'   r   TrT  rN   zArrays are not equalrD   r   r   )
r*   r9   r:   r£   r
  rZ  rI   rJ   ÚAssertionErrorr   )r,   r;   r<   r§   r
  s        r2   Útest_consume_prng_statez&QMCEngineTests.test_consume_prng_state¨  s  € ÝŒi×#Ò#Ð$FÑGÔGˆØˆÝ�q‘”ð 	,ð 	,ˆAØ—[’[ 1¨t¸�[Ñ=Ô=ˆFØ�MŠM˜&Ÿ-š-¨Ñ*Ô*Ñ+Ô+Ð+Ð+åŒ]�>Ð1GÐHÑHÔHð 	/ð 	/Ý˜ œ F¨1¤IÑ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/åŒ]�>Ð1GÐHÑHÔHð 	/ð 	/Ý˜ œ F¨1¤IÑ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð 	/ð 	/s$   ÂB8Â8B<Â?B<ÃDÄDÄD)r+  )$rà   rá   râ   Ú__doc__ÚNotImplementedr0  r/  r5  r4  ró   r7  Úboolr   r
  r*   Úndarrayr6  rI   rã   Úparametrizer=  rA  rD  rH  rL  rP  Úparamrå   rV  r]  re  rj  r   rj   ru  rx  r|   r4   r2   r(  r(    s  € € € € € Ø(Ð(Ø€DØ!€LØ"€MØ €Kà�eˆ}€HØ˜Ð
&€Cð 4ð5ð 5Øð5ð 
ð	5ð 5ð 5ð 5ð D $ð D¨2¬:ð Dð Dð Dð Dð „[×Ò˜Z¨°sÐÑ;Ô;ð5ð 5ñ <Ô;ð5ð
 „[×Ò˜Z¨°sÐÑ;Ô;ð5ð 5ñ <Ô;ð5ð
 „[×Ò˜Z¨°sÐÑ;Ô;ð&ð &ñ <Ô;ð&ð
 „[×Ò˜Z¨°sÐÑ;Ô;ð#ð #ñ <Ô;ð#ð „[×Ò˜Z¨°sÐÑ;Ô;ð7ð 7ñ <Ô;ð7ð „[×Ò˜Z¨°sÐÑ;Ô;ð
@ð 
@ñ <Ô;ð
@ð „[×Ò˜Z¨°sÐÑ;Ô;Ø„[×ÒØà3ØRÐRØˆFŒL˜ V¤[Ô%>Ð?Ñ?Ô?ð	
ñô ð,ð ,ñô ñ <Ô;ð,ð „[×Ò˜Z¨°sÐÑ;Ô;ð
ð 
ñ <Ô;ð
ð2 „[×Ò˜Z¨$¨Ñ0Ô0ð
ð 
ñ 1Ô0ð
ðBð Bð Bð
 „[×ÒØà˜#œ/Ð*ØÐ6Ð6Ð7ð	9ñô ð	$ð 	$ñô ð	$ð
/ð 
/ð 
/ð 
/ð 
/r4   r(  c                   óÆ   — e Zd Zej        ZdZ ej        ddgddgddgddgd	d
gddgddgddgg¦  «        Z	 ej        ddgddgddgddgddgddgddgdd gg¦  «        Z
d!„ Zd"S )#Ú
TestHaltonTr   r   gUUUUUUÕ?rŒ   gUUUUUUå?r‹   gÇqÇq¼?rê   gÇqÇqÜ?rë   g9Žã8Žãè?rì   gÇqÇqÌ?rí   grÇqÇá?g{�·¿'à?gØ–d‘äáí?gŒz�·¿'d?güGÑ?g{�·¿'è?gk„è97ã?gõ oO(Ð?g´o®«Sê?g{�·¿'ä?gg¸rYùÃ?gêAÞþžPÀ?gŽRß?g{�·¿'ì?g��yËrÅæ?gõ oO(Ø?gÍŸ¡E×§?c                 ó”  — |                       d¬¦  «        }|                      dd¬¦  «        }|                     t          |¦  «        d¬¦  «        }t	          ||d¬¦  «         |                     ¦   «          |                     d	¦  «        }|                     ¦   «          |                     d	d¬
¦  «        }t          ||¦  «         d S )NTrJ  r   r9  rH   )r¸   rw   gü©ñÒMbP?rT   r8   r~   )r6  r
  r9   rK  r   r  r¤   r   )r,   r"  r
  r<   s       r2   Útest_workerszTestHalton.test_workersÇ  s²   € Ø—^’^¨T�^Ñ2Ô2ˆ
Ø—’˜q¨4�Ñ0Ô0ˆØ—’¥ Z¡¤¸!�Ñ<Ô<ˆå˜ 
°Ð6Ñ6Ô6Ð6ð 	�Š‰ŒˆØ—_’_ RÑ(Ô(ˆ
Ø�Š‰ŒˆØ—’ ¨Q�Ñ/Ô/ˆÝ�V˜ZÑ(Ô(Ð(Ð(Ð(r4   N)rà   rá   râ   r   ÚHaltonr0  r/  r*   r+   r5  r4  r‚  r|   r4   r2   r€  r€  µ  sÓ   € € € € € ØŒ:€DØ€Là�B”H˜q !˜f u¨e nØ$ e˜n¨u°e¨nØ$ e˜n¨u°e¨nØ$ e˜n¨u°e¨nð>ñ ?ô ?€Mð
 �"”(˜Z¨Ð4Ø'¨Ð4Ø'¨Ð4Ø'¨Ð4Ø'¨Ð4Ø'¨Ð4Ø'¨Ð4Ø'¨Ð4ð6ñ 7ô 7€Kð)ð )ð )ð )ð )r4   r€  c                   ó  — e Zd Zej        ZdZd„ Zd„ Zd„ Z	e
j                             dddg¦  «        e
j                             dd	dg¦  «        e
j                             d
ddg¦  «        d„ ¦   «         ¦   «         ¦   «         Zd„ Zd„ ZdS )ÚTestLHSTc                 ó.   — t          j        d¦  «         d S ©NzNot applicable: not a sequence.©rI   r1  ©r,   Úargss     r2   rP  zTestLHS.test_continuingÚ  ó   € ÝŒÐ5Ñ6Ô6Ð6Ð6Ð6r4   c                 ó.   — t          j        d¦  «         d S r‡  rˆ  r‰  s     r2   r]  zTestLHS.test_fast_forwardÝ  r‹  r4   c                 ó.   — t          j        d¦  «         d S ©NzJNot applicable: the value of reference sample is implementation dependent.rˆ  r‰  s     r2   rL  zTestLHS.test_sampleà  ó%   € ÝŒð 1ñ 	2ô 	2ð 	2ð 	2ð 	2r4   Ústrengthr   r   ró   Frü   Nrk  c                 ó€  — t           j                             d¦  «        }d}|dz  }d}t          j        |||||¬¦  «        }|                     |¬¦  «        }	|	j        ||fk    sJ ‚|j        |k    sJ ‚t          j        |¦  «        dz   |z  }
t          j        |
||f¦  «        j	        }t          j
        |	|k    ¦  «        sJ ‚t          j        |	d¬	¦  «        }|rd|z  nd}t          |||¬
¦  «         t          j
        |	|z
  |k    ¦  «        sJ ‚|dk    r¢|€¢t          j        |¦  «        }t          t          ||¦  «        ¦  «        }t          t!          |j        ¦  «        d¦  «        D ]P\  }}|	d d …||gf         }||z                       t&          ¦  «        }d„ |D ¦   «         }t)          ||¦  «         ŒMd S d S d S )Nl	   pIrtS"×M¿d@B r"   r   r   )r�   ró   r�  rü   r;   r  r   r   r¯   rT   c                 ó,   — h | ]}t          |¦  «        ’ŒS r|   )Útuple)rÆ   Úrows     r2   ú	<setcomp>z1TestLHS.test_sample_stratified.<locals>.<setcomp>	  s   € Ð5Ð5Ð5¨#�5 ™:œ:Ð5Ð5Ð5r4   )r*   r9   r:   r   r’   r²   r  ÚarangeÚbroadcast_toÚTÚanyÚsortr   Úsetr   r   r£   r�   r  Úintr   )r,   rü   ró   r�  r;   Úpr¸   r�   r
  r<   Ú
expected1dÚexpectedÚsorted_sampleÚtolÚunique_elementsÚdesiredr§   rÈ   Ú
samples_2dÚresÚres_sets                        r2   Útest_sample_stratifiedzTestLHS.test_sample_stratifiedä  sù  € õ Œi×#Ò#Ð$JÑKÔKˆØˆØˆq‰DˆØˆåÔ# a°(Ø-5Ø1=Ø(+ð-ñ -ô -ˆð —’ �Ñ#Ô#ˆØŒ|  1˜vÒ%Ð%Ð%Ð%ØÔ# qÒ(Ð(Ð(Ð(õ
 ”i ‘l”l SÑ(¨AÑ-ˆ
Ý”? :°°1¨vÑ6Ô6Ô8ˆÝŒv�f Ò(Ñ)Ô)Ð)Ð)Ð)åœ ¨QÐ/Ñ/Ô/ˆØ!Ð(ˆc�A‰gˆg qˆå˜ x°cÐ:Ñ:Ô:Ð:ÝŒv�f˜xÑ'¨#Ò-Ñ.Ô.Ð.Ð.Ð.à�qŠ=ˆ=˜\Ð1Ý œi¨™lœlˆOÝ�' /°?ÑCÔCÑDÔDˆGå$¥U¨6¬8¡_¤_°aÑ8Ô8ð /ð /‘��1Ø# A A A¨¨1 v IÔ.�
Ø! A‘~×-Ò-­cÑ2Ô2�Ø5Ð5°Ð5Ñ5Ô5�Ý˜W gÑ.Ô.Ð.Ð.ð ˆ=Ð1Ð1ð/ð /r4   c                 óÜ   — |                       dd¬¦  «        }|                     d¬¦  «        }|                       ddd¬¦  «        }|                     d¬¦  «        }t          ||¦  «         d S )Nr   Fr9  rh   r  rk  rg  )r
  r9   r   )r,   r
  rp  rr  rs  s        r2   Útest_optimizer_1dzTestLHS.test_optimizer_1d  sj   € à—’˜q¨5�Ñ1Ô1ˆØ—]’] R�]Ñ(Ô(ˆ
à—;’; ¨UÀ�;ÑMÔMˆØ—/’/ B�/Ñ'Ô'ˆå˜: wÑ/Ô/Ð/Ð/Ð/r4   c                 óÞ  — d}t          j        t          |¬¦  «        5  t          j        dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          j        dd¬¦  «        }|                     d	¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          j        dd¬¦  «        }|                     d
¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          j        d
d¬¦  «        }|                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nznot a valid strengthrD   r   r'   )r�  z%n is not the square of a prime numberr   )r�   r�  rf   r"   zn is too small for dé	   )rI   rJ   rK   r   r’   r9   )r,   ri  r
  s      r2   r  zTestLHS.test_raises  s^  € Ø)ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	.ð 	.ÝÔ˜q¨1Ð-Ñ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð ;ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	ð 	ÝÔ'¨!°aÐ8Ñ8Ô8ˆFØ�MŠM˜"ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ;ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	ð 	ÝÔ'¨!°aÐ8Ñ8Ô8ˆFØ�MŠM˜!ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð *ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	ð 	ÝÔ'¨!°aÐ8Ñ8Ô8ˆFØ�MŠM˜!ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	sG   žAÁAÁAÁ),B!Â!B%Â(B%Ã	,DÄDÄDÄ),E"Å"E&Å)E&)rà   rá   râ   r   r’   r0  r/  rP  r]  rL  rI   rã   r}  r§  r©  r  r|   r4   r2   r…  r…  Ö  sã   € € € € € ØÔ€DØ€Lð7ð 7ð 7ð7ð 7ð 7ð2ð 2ð 2ð „[×Ò˜Z¨!¨Q¨Ñ0Ô0Ø„[×Ò˜Z¨%°¨Ñ7Ô7Ø„[×Ò˜^¨d°KÐ-@ÑAÔAð#/ð #/ñ BÔAñ 8Ô7ñ 1Ô0ð#/ðJ0ð 0ð 0ðð ð ð ð r4   r…  c                   ó*  — e Zd Zej        ZdZ ej        ddgddgddgddgddgddgdd	gd	dgg¦  «        Z	 ej        d
dgddgddgddgddgddgddgddgg¦  «        Z
d„ Zd„ Zd„ Zd„ Zej                             ddd g¦  «        d!„ ¦   «         Zd"„ Zd#S )$Ú	TestSobolTré   r   r‹   rŒ   rì   rí   rë   rê   gò�™Æa6Ð?gtAAzÚ?g´`˜ˆ±ë?gÊ_k €mï?gðsAdnæ?gò­rIÃ¢?g£´q£LÇ?gÝ”|ã?g+»&ÅCïº?g#‘*H;Ì?g¦&fb_÷à?gÈ]bnQå?gvD2¢¼(í?gt¤|µ!Ö?g›$\Ý?g™4>z@é?c                 óÀ   — t          j        t          d¬¦  «        5  t          j        d¦  «        }|                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nú'The balance properties of Sobol' pointsrD   r   r8   )rI   r†   r‡   r   ÚSobolr9   ©r,   r
  s     r2   Útest_warningzTestSobol.test_warningB  s£   € ÝŒ\�+ð .>ð ?ñ ?ô ?ð 	ð 	å”Y˜q‘\”\ˆFØ�MŠM˜"ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   œ*AÁAÁAc                 óŒ  — t          j        dd¬¦  «        }|                     d¦  «        }t          | j        d d…         |¦  «         |                     d¦  «        }t          | j        dd…         |¦  «         t          j        t          d¬¦  «        5  |                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   FrJ  rN   rH   r¯  rD   )r   r°  Úrandom_base2r   r5  rI   rJ   rK   ©r,   r
  r<   s      r2   Útest_random_base2zTestSobol.test_random_base2H  s  € Ý”˜1 uÐ-Ñ-Ô-ˆØ×$Ò$ QÑ'Ô'ˆÝ˜4Ô-¨b¨q¨bÔ1°6Ñ:Ô:Ð:ð ×$Ò$ QÑ'Ô'ˆÝ˜4Ô-¨a°¨cÔ2°FÑ;Ô;Ð;õ Œ]�:ð .>ð ?ñ ?ô ?ð 	#ð 	#à×Ò Ñ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	#ð 	#s   ÂB9Â9B=Ã B=c                 óL  — t          j        t          d¬¦  «        5  t          j        t          j        j        dz   ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          j        dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz Maximum supported dimensionalityrD   r   zMaximum supported 'bits' is 64éA   )Úbits)rI   rJ   rK   r   r°  ÚMAXDIMr÷   s    r2   Ú
test_raisezTestSobol.test_raiseV  s+  € ÝŒ]�:ð .?ð @ñ @ô @ð 	,ð 	,åŒI•c”iÔ&¨Ñ*Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,õ Œ]�:ð .=ð >ñ >ô >ð 	"ð 	"åŒI�a˜bÐ!Ñ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"s#   œ'AÁAÁAÁ5BÂBÂ Bc                 óÂ  — t          j        dd¬¦  «        }t          |                     ¦   «                              ¦   «                              ¦   «         ¦  «        }t          |                     ¦   «                              ¦   «                              ¦   «         ¦  «        }t          |t          ddi¦  «        ¦  «         t          |t          ddi¦  «        ¦  «         d S )NiW  FrJ  ré   r   )r   r°  r   r9   ÚflattenÚtolistr   )r,   r
  Úcount1Úcount2s       r2   Útest_high_dimzTestSobol.test_high_dim_  s®   € Ý”˜4¨%Ð0Ñ0Ô0ˆÝ˜Ÿš™œ×0Ò0Ñ2Ô2×9Ò9Ñ;Ô;Ñ<Ô<ˆÝ˜Ÿš™œ×0Ò0Ñ2Ô2×9Ò9Ñ;Ô;Ñ<Ô<ˆÝ�V�W c¨4 [Ñ1Ô1Ñ2Ô2Ð2Ý�V�W c¨4 [Ñ1Ô1Ñ2Ô2Ð2Ð2Ð2r4   r¹  r   r'   c                 ó2  — t          j        dd|¬¦  «        }d|z  }|                     |¦  «        }t          | j        d |…         |¦  «         t          j        t          d¬¦  «        5  |                     ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nr   F©ró   r¹  zincreasing `bits`rD   )r   r°  r9   r   r5  rI   rJ   rK   )r,   r¹  r
  Únsr<   s        r2   Ú	test_bitszTestSobol.test_bitsf  sÕ   € å”˜1 u°4Ð8Ñ8Ô8ˆØ�‰WˆØ—’˜rÑ"Ô"ˆÝ˜4Ô-¨c¨r¨cÔ2°FÑ;Ô;Ð;åŒ]�:Ð-@ÐAÑAÔAð 	ð 	Ø�MŠM‰OŒOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Á*BÂBÂBc                 óˆ   — t          j        ddd¬¦  «        }|                     d¦  «        }t          | j        |¦  «         d S )Nr   Frh   rÃ  rH   )r   r°  r9   r   r5  rµ  s      r2   Útest_64bitszTestSobol.test_64bitsp  sB   € Ý”˜1 u°2Ð6Ñ6Ô6ˆØ—’˜qÑ!Ô!ˆÝ˜4Ô-¨vÑ6Ô6Ð6Ð6Ð6r4   N)rà   rá   râ   r   r°  r0  r/  r*   r+   r5  r4  r²  r¶  r»  rÁ  rI   rã   r}  rÅ  rÇ  r|   r4   r2   r­  r­  +  sE  € € € € € ØŒ9€DØ€Là�B”H˜r 2˜hØ" C˜jØ# T˜lØ# T˜lØ$ e˜nØ$ e˜nØ$ e˜nØ$ e˜nð.ñ /ô /€Mð �"”(˜Z¨Ð4Ø&¨	Ð2Ø'¨Ð4Ø'¨Ð4Ø'¨Ð4Ø'¨Ð4Ø'¨Ð4Ø'¨Ð4ð6ñ 7ô 7€Kðð ð ð#ð #ð #ð"ð "ð "ð3ð 3ð 3ð „[×Ò˜V a¨ VÑ,Ô,ðð ñ -Ô,ðð7ð 7ð 7ð 7ð 7r4   r­  c                   ó   — e Zd Zd„ ZdS )ÚTestLow0Bitc                 óX   — g d¢}|D ]"\  }}t          t          |¦  «        |¦  «         Œ#d S )N)	©r   r   rC  )r   r   ©r"   r   )rÔ   rN   )l   ÿÿ é!   )l        r   )l   ÿÿ é"   )l   ÿÿÿÿ r¸  )r   r   )r,   Útest_vectorÚin_r.   s       r2   Útest_exampleszTestLow0Bit.test_examplesw  sM   € ð
ð 
ð 
ˆð $ð 	4ð 	4‰HˆC�Ý�¨Ñ-Ô-¨sÑ3Ô3Ð3Ð3ð	4ð 	4r4   N)rà   rá   râ   rÑ  r|   r4   r2   rÉ  rÉ  v  s#   € € € € € ð4ð 4ð 4ð 4ð 4r4   rÉ  c                   óú  — e Zd Zej        ZdZd„ Zd„ Zd„ Z	d„ Z
d„ Zej                             ddd	d	gd
d
gfddgddgfg¦  «        d„ ¦   «         Zd„ Zej                             dg d¢g d¢g¦  «        d„ ¦   «         Zej                             dg d¢g d¢g¦  «        d„ ¦   «         Zd„ Zej                             dg d¢ddgg¦  «        ej                             dddgg¦  «        d„ ¦   «         ¦   «         Zd„ ZdS )ÚTestPoissonFc                 ó.   — t          j        d¦  «         d S )NzToo costly in memory.rˆ  r‰  s     r2   rH  zTestPoisson.test_bounds�  s   € ÝŒÐ+Ñ,Ô,Ð,Ð,Ð,r4   c                 ó.   — t          j        d¦  «         d S )Nz"Not applicable: recursive process.rˆ  r‰  s     r2   r]  zTestPoisson.test_fast_forward�  s   € ÝŒÐ8Ñ9Ô9Ð9Ð9Ð9r4   c                 ó.   — t          j        d¦  «         d S rŽ  rˆ  r‰  s     r2   rL  zTestPoisson.test_sample“  r�  r4   c                 óÈ  — d}d}|                       d|d¬¦  «        }|                     |¬¦  «        }t          |¦  «        |k    sJ ‚t          |¦  «        |k    sJ ‚|                     |¬¦  «        }t          |¦  «        |k    sJ ‚t          |¦  «        |k    sJ ‚t	          j        ||gd¬¦  «        }t          |¦  «        |dz  k    sJ ‚t          |¦  «        |k    sJ ‚d S )	Nçš™™™™™©?r   r   F)r�   Úradiusró   r  r   r¯   )r
  r9   rK  Úl2_normr*   r[  )r,   rŠ  rÙ  rÄ  r
  Úsample_initÚsample_continuedr<   s           r2   rP  zTestPoisson.test_continuing—  s  € ð ˆØˆØ—’˜q¨¸%�Ñ@Ô@ˆà—m’m b�mÑ)Ô)ˆÝ�;ÑÔ 2Ò%Ð%Ð%Ð%Ý�{Ñ#Ô# vÒ-Ð-Ð-Ð-à!Ÿ=š=¨2˜=Ñ.Ô.ÐÝÐ#Ñ$Ô$¨Ò*Ð*Ð*Ð*ÝÐ'Ñ(Ô(¨FÒ2Ð2Ð2Ð2å” Ð.>Ð ?ÀaÐHÑHÔHˆÝ�6‰{Œ{˜b 1™fÒ$Ð$Ð$Ð$Ý�v‰Œ &Ò(Ð(Ð(Ð(Ð(Ð(r4   c                 ó‚  — t           j                             d¦  «        }d}d\  }}||z
  |                     d¦  «        z  |z   }g d¢}ddg}t          |||¦  «        }|D ]^\  }	}
}|                      |	|
||¬¦  «        }|                     |¦  «        }t          |¦  «        |k    sJ ‚t          |¦  «        |
k    sJ ‚Œ_d S )	Nl	   ïx¼_Ù4ê÷vZ.c r‘   )g{®Gáz´?çš™™™™™É?r"   )r   r'   rN   ÚvolumeÚsurface)r�   rÙ  Úhyperspherer;   )r*   r9   r:   r   r0  rK  rÚ  )r,   r;   rÄ  r   r!  ÚradiiÚ
dimensionsÚhypersphere_methodsÚgenr�   rÙ  rá  r
  r<   s                 r2   Útest_mindistzTestPoisson.test_mindistª  sî   € ÝŒi×#Ò#Ð$KÑLÔLˆØˆà‰	ˆˆTØ˜‘˜sŸzšz¨!™}œ}Ñ,¨sÑ2ˆà�Y�Yˆ
Ø'¨Ð3Ðå�j %Ð)<Ñ=Ô=ˆà&)ð 	-ð 	-Ñ"ˆAˆv�{Ø—Y’YØ˜F°Àð ñ ô ˆFð —]’] 2Ñ&Ô&ˆFå�v‘;”; "Ò$Ð$Ð$Ð$Ý˜6‘?”? fÒ,Ð,Ð,Ð,Ð,ð	-ð 	-r4   zl_bounds, u_boundsr  r  r"   r  gffffff@c                 óŽ   — d}|                       d|||¬¦  «        }|                     ¦   «         }t          |¦  «        |k    sJ ‚d S )NrÞ  r   ©r�   rÙ  r    r!   )r0  Ú
fill_spacerÚ  )r,   r    r!   rÙ  r
  r<   s         r2   Útest_fill_spacezTestPoisson.test_fill_space¿  sP   € ð ˆØ—’˜Q v¸È8�ÑTÔTˆà×"Ò"Ñ$Ô$ˆå�v‰Œ &Ò(Ð(Ð(Ð(Ð(Ð(r4   c                 óÌ  — d}t          j        ddg¦  «        }d}t           j                             d¦  «        }|                      d||z  ||||z   ¬¦  «        }|                     ¦   «         }t           j                             d¦  «        }|                      d||¬¦  «        }|                     ¦   «         }t          |¦  «        |k    sJ ‚t          |||z  |z   ¦  «         d S )	NrÞ  gÍÌÌÌÌÌ Àg333333@gÍÌÌÌÌÌ@l   �>Çu r   )r�   rÙ  r;   r    r!   )r�   rÙ  r;   )r*   Úasarrayr9   r:   r0  ré  rÚ  r   )r,   rÙ  Úshiftr)   r;   r
  r¥  ro   s           r2   Útest_bounds_shift_scalez#TestPoisson.test_bounds_shift_scaleÉ  sé   € ð ˆÝ”
˜D #˜;Ñ'Ô'ˆØˆåŒi×#Ò# JÑ/Ô/ˆØ—’˜Q v¨e¡|¸Ø$)°E¸E±Mð ñ Cô Cˆà×ÒÑ!Ô!ˆåŒi×#Ò# JÑ/Ô/ˆØ—’˜Q v°3�Ñ7Ô7ˆØ×ÒÑ!Ô!ˆõ �s‰|Œ|˜vÒ%Ð%Ð%Ð%Ý˜˜S ™Y¨Ñ.Ñ/Ô/Ð/Ð/Ð/r4   r    ©rx   r   rx   )r   r   r   c                 ó¸   — d}g d¢}|                       d|||¬¦  «        }|                     d¦  «        }|D ]"}t          ||¦  «         t          ||¦  «         Œ#d S )NrÞ  )r'   r'   r   r'   rè  r7   ©r0  r9   r	   )r,   r    rÙ  r!   r
  r<   Úpoints          r2   Útest_sample_inside_lower_boundsz+TestPoisson.test_sample_inside_lower_boundsÝ  s€   € àˆØ��ˆØ—’Ø˜¨¸Hð ñ 
ô 
ˆð —’˜rÑ"Ô"ˆàð 	/ð 	/ˆEÝ˜e XÑ.Ô.Ð.Ý˜h¨Ñ.Ô.Ð.Ð.ð	/ð 	/r4   r!   c                 ó¸   — d}g d¢}|                       d|||¬¦  «        }|                     d¦  «        }|D ]"}t          ||¦  «         t          ||¦  «         Œ#d S )NrÞ  )éýÿÿÿrõ  r   r'   rè  r7   rñ  )r,   r!   rÙ  r    r
  r<   rò  s          r2   Útest_sample_inside_upper_boundsz+TestPoisson.test_sample_inside_upper_boundsê  s€   € àˆØ��ˆØ—’Ø˜¨¸Hð ñ 
ô 
ˆð —’˜rÑ"Ô"ˆàð 	/ð 	/ˆEÝ˜e XÑ.Ô.Ð.Ý˜h¨Ñ.Ô.Ð.Ð.ð	/ð 	/r4   c                 ó´   — d}g d¢}g d¢}t          j        t          d¬¦  «        5  |                      d|||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrÞ  )r'   r   r   rï  z1Bounds are not consistent 'l_bounds' < 'u_bounds'rD   r'   rè  ©rI   rJ   rK   r0  )r,   rÙ  r    r!   s       r2   Útest_inconsistent_bound_valuez)TestPoisson.test_inconsistent_bound_value÷  sÍ   € ØˆØ��ˆØ��ˆÝŒ]ÝØEðGñ Gô Gð 	Pð 	Pð �IŠI˜ &°8ÀhˆIÑOÔOÐOð	Pð 	Pð 	Pñ 	Pô 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pøøøð 	Pð 	Pð 	Pð 	Pð 	Pð 	Ps   ¦AÁAÁArx   r   r'   r   c                 ó¤   — d}t          j        t          d¬¦  «        5  |                      d|||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrÞ  zP'l_bounds' and 'u_bounds' must be broadcastable and respect the sample dimensionrD   r'   rè  rø  )r,   r!   r    rÙ  s       r2   Útest_inconsistent_boundsz$TestPoisson.test_inconsistent_bounds   s³   € ð ˆÝŒ]Ýð$ð%ñ %ô %ð 	ð 	ð �IŠIØ˜FØ!¨Hð ñ ô ð ð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   žAÁA	ÁA	c                 óž   — d}t          j        t          |¬¦  «        5  t          j        dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz*'toto' is not a valid hypersphere samplingrD   r   rs   )rá  )rI   rJ   rK   r   ÚPoissonDiskrh  s     r2   r  zTestPoisson.test_raises  s•   € Ø?ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	3ð 	3ÝŒO˜A¨6Ð2Ñ2Ô2Ð2ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3ð 	3ð 	3s   žAÁAÁ	AN)rà   rá   râ   r   rý  r0  r/  rH  r]  rL  rP  ræ  rI   rã   r}  rê  rî  ró  rö  rù  rû  r  r|   r4   r2   rÓ  rÓ  ‰  sÍ  € € € € € ØŒ?€DØ€Lð-ð -ð -ð:ð :ð :ð2ð 2ð 2ð)ð )ð )ð&-ð -ð -ð* „[×ÒÐ1Ø	˜˜R˜ 1 a &Ð)¨c°3¨Z¸#¸s¸Ð,DÐEñGô Gð)ð )ñGô Gð)ð0ð 0ð 0ð( „[×Ò˜Z¨,¨,¨,¸	¸	¸	Ð)BÑCÔCð
/ð 
/ñ DÔCð
/ð „[×Ò˜Z¨,¨,¨,¸	¸	¸	Ð)BÑCÔCð
/ð 
/ñ DÔCð
/ðPð Pð Pð „[×Ò˜Z¨,¨,¨,¸¸R¸Ð)AÑBÔBØ„[×Ò˜Z¨1¨a¨&¨Ñ2Ô2ð	ð 	ñ 3Ô2ñ CÔBð	ð3ð 3ð 3ð 3ð 3r4   rÓ  c                   ó¬   — e Zd Zd„ Zej                             d¦  «        d„ ¦   «         Zd„ Zd„ Z	ej                             d¦  «        d„ ¦   «         Z
dS )ÚTestMultinomialQMCc                 óB  — t          j        g d¢¦  «        }t          j        t          d¬¦  «        5  t          j        |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        g d¢¦  «        }d}t          j        t          |¬¦  «        5  t          j        |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        g d¢¦  «        }d	}t          j        t          |¬¦  «        5  t          j        |dt          j        d
¬¦  «        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          j        |dt           j         	                    ¦   «         ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)ç¸…ëQ¸¾?ç¤p=
×£Ð?gš™™™™™©¿çffffffÖ?ç)\�Âõ(Ì?z'Elements of pvals must be non-negative.rD   r8   )Ún_trials)r  r  rš   r  r  z Elements of pvals must sum to 1.©r  r  rØ  r  r  z Dimension of `engine` must be 1.r   ©r�   )r  r
  ú"`engine` must be an instance of...)
r*   r+   rI   rJ   rK   r   ÚMultinomialQMCr°  r9   r:   )r,   r�  ri  s      r2   Útest_validationsz#TestMultinomialQMC.test_validations  s¶  € åŒHÐ4Ð4Ð4Ñ5Ô5ˆÝŒ]�:ð .Að Bñ Bô Bð 	/ð 	/åÔ˜q¨2Ð.Ñ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/õ
 ŒHÐ2Ð2Ð2Ñ3Ô3ˆØ5ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	/ð 	/ÝÔ˜q¨2Ð.Ñ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/õ ŒHÐ3Ð3Ð3Ñ4Ô4ˆà5ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	Fð 	FÝÔ˜q¨2µc´iÀ!°n±n´nÐEÑEÔEÐEð	Fð 	Fð 	Fñ 	Fô 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Føøøð 	Fð 	Fð 	Fð 	Fð 8ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	Oð 	OÝÔ˜q¨2µb´i×6KÒ6KÑ6MÔ6MÐNÑNÔNÐNð	Oð 	Oð 	Oñ 	Oô 	Oð 	Oð 	Oð 	Oð 	Oð 	Oð 	Oð 	Oøøøð 	Oð 	Oð 	Oð 	Oð 	Oð 	OsG   ²AÁAÁAÂB6Â6B:Â=B:Ã4+D+Ä+D/Ä2D/Å4FÆFÆFzignore::UserWarningc                 óJ  — t           j                             d¦  «        }t          j        g d¢¦  «        }d}t          j        ||z  ¦  «                             t          ¦  «        }t          j        |||¬¦  «        }t          |                     d¦  «        |d¬¦  «         d S )Nl	   ¡(uý@ÌgPù{-Î r  r¢   )r  r.  r   rT   )
r*   r9   r:   r+   Ú
atleast_2dr  rœ  r   r	  r   )r,   r;   r�  r  rŸ  r
  s         r2   Útest_MultinomialBasicDrawz,TestMultinomialQMC.test_MultinomialBasicDraw+  s’   € åŒi×#Ò#Ð$IÑJÔJˆÝŒHÐ3Ð3Ð3Ñ4Ô4ˆØˆÝ”= ¨A¡Ñ.Ô.×5Ò5µcÑ:Ô:ˆåÔ# A°¸sÐCÑCÔCˆÝ˜Ÿš aÑ(Ô(¨(¸Ð;Ñ;Ô;Ð;Ð;Ð;r4   c                 ó:  — t           j                             d¦  «        }t          j        g d¢¦  «        }t	          j        |d|¬¦  «        }|                     d¦  «        }t          |t          j        |¦  «        z  t          j        |¦  «        d¬¦  «         d S )Nl	   8X¸7:ct]+Ê¸©C: r  i    )r  r;   r   rS   rT   )	r*   r9   r:   r+   r   r	  r   r³   r  )r,   r;   r�  r
  Údrawss        r2   Útest_MultinomialDistributionz/TestMultinomialQMC.test_MultinomialDistribution5  sˆ   € ÝŒi×#Ò#Ð$JÑKÔKˆÝŒHÐ3Ð3Ð3Ñ4Ô4ˆÝÔ# A°¸#Ð>Ñ>Ô>ˆØ—’˜aÑ Ô ˆÝ˜¥¤ u¡¤Ñ-­r¬}¸QÑ/?Ô/?ÀdÐKÑKÔKÐKÐKÐKr4   c                 óŒ  — t          j        g d¢¦  «        }t          |¦  «        }t          t	          ||d¦  «        d¦  «         t          t	          ||d¦  «        d¦  «         t          t	          ||d¦  «        d¦  «         t          t	          ||d¦  «        d¦  «         t          t	          ||d	¦  «        |d
z
  ¦  «         d S )N)rš   çš™™™™™Ù?gÍÌÌÌÌÌÜ?g333333ã?r‹   çÍÌÌÌÌÌì?g®Gáz®ï?rP   ré   r   r  r   g»aÛ¢ÌÜ?g”Þ7¾öÌÜ?r'   rP   r   )r*   r+   rK  r   r   )r,   Úp_cumulativer%  s      r2   Útest_FindIndexz!TestMultinomialQMC.test_FindIndex<  sÀ   € Ý”xÐ KÐ KÐ KÑLÔLˆÝ�<Ñ Ô ˆÝÕ% l°D¸#Ñ>Ô>ÀÑBÔBÐBÝÕ% l°D¸#Ñ>Ô>ÀÑBÔBÐBÝÕ% l°D¸'ÑBÔBÀAÑFÔFÐFÝÕ% l°D¸'ÑBÔBÀAÑFÔFÐFÝÕ% l°D¸#Ñ>Ô>ÀÀqÁÑIÔIÐIÐIÐIr4   c                 óz  — t           j                             d¦  «        }t          j        g d¢¦  «        }d}t          j        ||z  ¦  «                             t          ¦  «        }t          j        dd|¬¦  «        }t          j	        ||||¬¦  «        }t          |                     d¦  «        |d¬¦  «         d S )	Nl	   aýFÇkýqñ|Ë‘'x<Õ r  r¢   r   Trò   )r  r
  r;   rT   )r*   r9   r:   r+   r  r  rœ  r   r°  r	  r   )r,   r;   r�  r  rŸ  Úbase_enginer
  s          r2   Útest_other_enginez$TestMultinomialQMC.test_other_engineE  s³   € õ Œi×#Ò#Ð$KÑLÔLˆÝŒHÐ3Ð3Ð3Ñ4Ô4ˆØˆÝ”= ¨A¡Ñ.Ô.×5Ò5µcÑ:Ô:ˆÝ”i ¨D°cÐ:Ñ:Ô:ˆÝÔ# A°ÀØ(+ð-ñ -ô -ˆå˜Ÿš aÑ(Ô(¨(¸Ð;Ñ;Ô;Ð;Ð;Ð;r4   N)rà   rá   râ   r
  rI   rã   Úfilterwarningsr  r  r  r  r|   r4   r2   rÿ  rÿ    s¤   € € € € € ðOð Oð Oð. „[×ÒÐ 5Ñ6Ô6ð<ð <ñ 7Ô6ð<ðLð Lð LðJð Jð Jð „[×ÒÐ 5Ñ6Ô6ð	<ð 	<ñ 7Ô6ð	<ð 	<ð 	<r4   rÿ  c                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚTestNormalQMCc                 óò  — t          j        t          j        d¦  «        ¬¦  «        }|                     ¦   «         }t          |j        d¦  «         |                     d¬¦  «        }t          |j        d¦  «         t          j        t          j        d¦  «        ¬¦  «        }|                     ¦   «         }t          |j        d¦  «         |                     d¬¦  «        }t          |j        d	¦  «         d S )
Nr   )rb  ©r   r   r"   r  ©r"   r   r   rC  rÌ  ©r   ÚMultivariateNormalQMCr*   Úzerosr9   r   r²   ©r,   r
  Úsampless      r2   Útest_NormalQMCzTestNormalQMC.test_NormalQMCS  sÆ   € åÔ*µ´¸±´Ð<Ñ<Ô<ˆØ—-’-‘/”/ˆÝ�W”] FÑ+Ô+Ð+Ø—-’- !�-Ñ$Ô$ˆÝ�W”] FÑ+Ô+Ð+åÔ*µ´¸±´Ð<Ñ<Ô<ˆØ—-’-‘/”/ˆÝ�W”] FÑ+Ô+Ð+Ø—-’- !�-Ñ$Ô$ˆÝ�W”] FÑ+Ô+Ð+Ð+Ð+r4   c                 óö  — t          j        t          j        d¦  «        d¬¦  «        }|                     ¦   «         }t          |j        d¦  «         |                     d¬¦  «        }t          |j        d¦  «         t          j        t          j        d¦  «        d¬¦  «        }|                     ¦   «         }t          |j        d	¦  «         |                     d¬¦  «        }t          |j        d
¦  «         d S )Nr   T)rb  Úinv_transformr  r"   r  r  r   rC  rÌ  r  r"  s      r2   Útest_NormalQMCInvTransformz(TestNormalQMC.test_NormalQMCInvTransforma  sØ   € åÔ*Ý”˜!‘”¨Dð2ñ 2ô 2ˆà—-’-‘/”/ˆÝ�W”] FÑ+Ô+Ð+Ø—-’- !�-Ñ$Ô$ˆÝ�W”] FÑ+Ô+Ð+åÔ*Ý”˜!‘”¨Dð2ñ 2ô 2ˆà—-’-‘/”/ˆÝ�W”] FÑ+Ô+Ð+Ø—-’- !�-Ñ$Ô$ˆÝ�W”] FÑ+Ô+Ð+Ð+Ð+r4   c                 ór  — t           j                             d¦  «        }t          j        t          j        d¦  «        d|¬¦  «        }|                     d¬¦  «        }t          j        ddgdd	gg¦  «        }t          ||d
¬¦  «         t           j                             d¦  «        }t          j        t          j        d¦  «        d|¬¦  «        }|                     d¬¦  «        }t          j        g d¢g d¢g¦  «        }t          ||d
¬¦  «         t           j                             d¦  «        }t          j        dd|¬¦  «        }t          j        t          j        d¦  «        d||¬¦  «        }|                     d¬¦  «        }t          j        g d¢g d¢g¦  «        }t          ||d
¬¦  «         d S )Nl	   q)í*s�yRóM¦@
KÎ r   F)rb  r&  r.  r  çƒÛÚÂóÒí¿çLpêÉ»à¿g†U¼‘y¤÷¿gx·²Dgë?rS   rT   r'   ©rb  r&  r;   )r)  r*  gÀ”�Zº¢?)g#ÚŽ©»rü¿gÎŒ~4œ2í?gÔ»x?n¿°¿rN   Trò   )rb  r&  r
  r;   )	r*   r9   r:   r   r   r!  r+   r   r°  )r,   r;   r
  r#  Úsamples_expectedr  s         r2   Útest_NormalQMCSeededz"TestNormalQMC.test_NormalQMCSeededq  sÔ  € åŒi×#Ò#Ð$KÑLÔLˆåÔ*Ý”˜!‘”¨E¸ð=ñ =ô =ˆà—-’- !�-Ñ$Ô$ˆÝœ8 i°Ð%;Ø&/°Ð%:ð%<ñ =ô =Ðå˜Ð!1¸Ð=Ñ=Ô=Ð=õ Œi×#Ò#Ð$KÑLÔLˆÝÔ*Ý”˜!‘”¨E°sð<ñ <ô <ˆà—-’- !�-Ñ$Ô$ˆÝœ8Ð%EÐ%EÐ%EØ%EÐ%EÐ%Eð%Gñ Hô HÐå˜Ð!1¸Ð=Ñ=Ô=Ð=õ Œi×#Ò#Ð$KÑLÔLˆÝ”i ¨D°cÐ:Ñ:Ô:ˆÝÔ*Ý”˜!‘”¨EØ Cð
ñ 
ô 
ˆð —-’- !�-Ñ$Ô$ˆÝœ8Ð%EÐ%EÐ%EØ%EÐ%EÐ%Eð%Gñ Hô HÐå˜Ð!1¸Ð=Ñ=Ô=Ð=Ð=Ð=r4   c                 ó.  — t           j                             d¦  «        }t          j        t          j        d¦  «        |d¬¦  «        }|                     d¬¦  «        }t          j        ddgdd	gg¦  «        }t          ||d
¬¦  «         t           j                             d¦  «        }t          j        t          j        d¦  «        |d¬¦  «        }|                     d¬¦  «        }t          j        g d¢g d¢g¦  «        }t          ||d
¬¦  «         d S )Nl	   9e)-%ÿ5ŸZµ%Ö_6Ù r   T)rb  r;   r&  r  ç«èÍ<9í¿ç\ÌÏMÙî¿gî˜º+»`Ð?g]‰@õ"i?rS   rT   r'   )r/  r0  g»,D‡ÀÖ?)gÁÈËšX`æ?g�ìõî�7@gaTR' ‰ä¿)r*   r9   r:   r   r   r!  r+   r   )r,   r;   r
  r#  r,  s        r2   Ú test_NormalQMCSeededInvTransformz.TestNormalQMC.test_NormalQMCSeededInvTransform‘  s&  € åŒi×#Ò#Ð$KÑLÔLˆÝÔ*Ý”˜!‘” #°Tð;ñ ;ô ;ˆà—-’- !�-Ñ$Ô$ˆÝœ8 i°Ð%;Ø&.°Ð%9ð%;ñ <ô <Ðå˜Ð!1¸Ð=Ñ=Ô=Ð=õ Œi×#Ò#Ð$KÑLÔLˆÝÔ*Ý”˜!‘” #°Tð;ñ ;ô ;ˆà—-’- !�-Ñ$Ô$ˆÝœ8Ð%EÐ%EÐ%EØ%BÐ%BÐ%Bð%Dñ Eô EÐå˜Ð!1¸Ð=Ñ=Ô=Ð=Ð=Ð=r4   c                 óä   — dD ]l}t          j        |d¬¦  «        }t          j        t          j        |¦  «        |d¬¦  «        }|                     ¦   «         }t          |j        d|f¦  «         Œmd S )N©r   r   r   Fr9  T)rb  r
  r&  r   )r   r°  r   r*   r!  r9   r   r²   )r,   r�   r  r
  r#  s        r2   r  zTestNormalQMC.test_other_engine¤  s�   € Øð 	0ð 	0ˆAÝœ) a°%Ð8Ñ8Ô8ˆKÝÔ.µB´H¸Q±K´KØ6AØ=AðCñ Cô CˆFð —m’m‘o”oˆGÝ˜œ¨¨A¨Ñ/Ô/Ð/Ð/ð	0ð 	0r4   c                 ó�  — t           j                             d¦  «        }t          j        t          j        d¦  «        |¬¦  «        }|                     d¬¦  «        }t          t          j        |                     d¬¦  «        ¦  «        dk     ¦  «        sJ ‚t          t          j        | 	                    d¬¦  «        d	z
  ¦  «        dk     ¦  «        sJ ‚d
D ]&}t          |d d …|f         ¦  «        \  }}|dk    sJ ‚Œ't          j        |                     ¦   «         ¦  «        }t          j        |d
         ¦  «        dk     sJ ‚d S )Niº3  r   )rb  r;   é   r  r   r¯   r_  r   rË  r  ©r*   r9   r:   r   r   r!  rG  rµ   rb  Ústdr   ÚcovÚ	transpose©r,   r;   r
  r#  r§   rO  Úpvalr8  s           r2   Útest_NormalQMCShapiroz#TestNormalQMC.test_NormalQMCShapiro­  s)  € ÝŒi×#Ò# EÑ*Ô*ˆÝÔ*µ´¸±´ÀÐEÑEÔEˆØ—-’- #�-Ñ&Ô&ˆÝ•2”6˜'Ÿ,š,¨A˜,Ñ.Ô.Ñ/Ô/°$Ò6Ñ7Ô7Ð7Ð7Ð7Ý•2”6˜'Ÿ+š+¨1˜+Ñ-Ô-°Ñ1Ñ2Ô2°TÒ9Ñ:Ô:Ð:Ð:Ð:àð 	ð 	ˆAÝ˜g a a a¨ dœmÑ,Ô,‰GˆAˆtØ˜#’:�:�:�:�:åŒf�W×&Ò&Ñ(Ô(Ñ)Ô)ˆÝŒv�c˜$”iÑ Ô  4Ò'Ð'Ð'Ð'Ð'Ð'r4   c                 ó’  — t           j                             d¦  «        }t          j        t          j        d¦  «        d|¬¦  «        }|                     d¬¦  «        }t          t          j        |                     d¬¦  «        ¦  «        d	k     ¦  «        sJ ‚t          t          j        | 	                    d¬¦  «        d
z
  ¦  «        d	k     ¦  «        sJ ‚dD ]&}t          |d d …|f         ¦  «        \  }}|dk    sJ ‚Œ't          j        |                     ¦   «         ¦  «        }t          j        |d         ¦  «        d	k     sJ ‚d S )Niê‰ír   Tr+  r5  r  r   r¯   r_  r   rË  r  r6  r:  s           r2   Ú!test_NormalQMCShapiroInvTransformz/TestNormalQMC.test_NormalQMCShapiroInvTransform»  s2  € ÝŒi×#Ò# HÑ-Ô-ˆÝÔ*Ý”˜!‘”¨D°cð;ñ ;ô ;ˆà—-’- #�-Ñ&Ô&ˆÝ•2”6˜'Ÿ,š,¨A˜,Ñ.Ô.Ñ/Ô/°$Ò6Ñ7Ô7Ð7Ð7Ð7Ý•2”6˜'Ÿ+š+¨1˜+Ñ-Ô-°Ñ1Ñ2Ô2°TÒ9Ñ:Ô:Ð:Ð:Ð:àð 	ð 	ˆAÝ˜g a a a¨ dœmÑ,Ô,‰GˆAˆtØ˜#’:�:�:�:�:åŒf�W×&Ò&Ñ(Ô(Ñ)Ô)ˆÝŒv�c˜$”iÑ Ô  4Ò'Ð'Ð'Ð'Ð'Ð'r4   N)
rà   rá   râ   r$  r'  r-  r1  r  r<  r>  r|   r4   r2   r  r  R  s~   € € € € € ð,ð ,ð ,ð,ð ,ð ,ð >ð >ð >ð@>ð >ð >ð&0ð 0ð 0ð(ð (ð (ð(ð (ð (ð (ð (r4   r  c                   óD   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
S )ÚTestMultivariateNormalQMCc                 óB  — d}t          j        t          |¬¦  «        5  t          j        dgt          j        d¬¦  «        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          j        g d¢t          j        d¬¦  «        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   d	}t          j        t          |¬¦  «        5  t          j        ddgt          j                             ¦   «         ¬¦  «         d d d ¦  «         n# 1 swxY w Y   d
}t          j        t          |¬¦  «        5  t          j        ddgddgddgg¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          j        ddgddgddgg¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          j        dgddgddgg¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz(Dimension of `engine` must be consistentrD   r   r   r  )r
  r&   rN   r  zCovariance matrix not PSD.r   z#Covariance matrix is not symmetric.z/Dimension mismatch between mean and covariance.)	rI   rJ   rK   r   r   r°  r*   r9   r:   rh  s     r2   r
  z*TestMultivariateNormalQMC.test_validationsÍ  sã  € à=ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	Bð 	BÝÔ% q cµ#´)¸a°.±.´.ÐAÑAÔAÐAð	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	Bð >ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	Hð 	HÝÔ% i i i½¼	ÀA¸¹¼ÐGÑGÔGÐGð	Hð 	Hð 	Hñ 	Hô 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Høøøð 	Hð 	Hð 	Hð 	Hð 8ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	Nð 	NÝÔ% q¨! fµR´Y×5JÒ5JÑ5LÔ5LÐMÑMÔMÐMð	Nð 	Nð 	Nñ 	Nô 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nøøøð 	Nð 	Nð 	Nð 	Nð 0ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	@ð 	@ÝÔ% q¨! f°°1¨v¸¸1°vÐ.>Ñ?Ô?Ð?ð	@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@ð 9ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	@ð 	@ÝÔ% q¨! f°°1¨v¸¸1°vÐ.>Ñ?Ô?Ð?ð	@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@ð EˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	=ð 	=ÝÔ% q c¨Q°¨F°Q¸°FÐ+;Ñ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=sk   ž+AÁAÁAÁ=,B5Â5B9Â<B9Ã5DÄD"Ä%D"ÅE0Å0E4Å7E4ÆGÇGÇ	GÇ*HÈHÈHc                 óX   — t          j        g d¢g d¢g d¢g d¢g¦  «        }|j        €J ‚d S )Nr&   )r   r   r   )r   r   r   )r   r   r   )r   r   Ú_corr_matrixr±  s     r2   Útest_MultivariateNormalQMCNonPDz9TestMultivariateNormalQMC.test_MultivariateNormalQMCNonPDç  sG   € åÔ*ØˆIˆI˜	˜	˜	 9 9 9¨i¨i¨iÐ8ñ
ô 
ˆð Ô"Ð.Ð.Ð.Ð.Ð.r4   c                 óö  — t          j        dd¬¦  «        }|                     ¦   «         }t          |j        d¦  «         |                     d¬¦  «        }t          |j        d¦  «         t          j        ddgddgddgg¬¦  «        }|                     ¦   «         }t          |j        d¦  «         |                     d¬¦  «        }t          |j        d	¦  «         t          j        g d
¢¦  «        }t          j        g d¢g d¢g d¢g¦  «        }t          j        ||¦  «        }|                     ¦   «         }t          |j        d¦  «         |                     d¬¦  «        }t          |j        d¦  «         d S )Nr   r"   )rb  r8  r  r  r  r   rC  rÌ  r3  ©r   r   r   ©r   r   r   ©r   r   r   ©r   r'   ©r"   r'   ©r   r   r9   r   r²   r*   r+   ©r,   r
  r#  rb  r8  s        r2   Útest_MultivariateNormalQMCz4TestMultivariateNormalQMC.test_MultivariateNormalQMCî  sZ  € åÔ*°°qÐ9Ñ9Ô9ˆØ—-’-‘/”/ˆÝ�W”] FÑ+Ô+Ð+Ø—-’- !�-Ñ$Ô$ˆÝ�W”] FÑ+Ô+Ð+õ Ô*°°A°¸aÀ¸VÀaÈÀVÐ<LÐMÑMÔMˆØ—-’-‘/”/ˆÝ�W”] FÑ+Ô+Ð+Ø—-’- !�-Ñ$Ô$ˆÝ�W”] FÑ+Ô+Ð+õ Œx˜	˜	˜	Ñ"Ô"ˆÝŒh˜	˜	˜	 9 9 9¨i¨i¨iÐ8Ñ9Ô9ˆÝÔ*¨4°Ñ5Ô5ˆØ—-’-‘/”/ˆÝ�W”] FÑ+Ô+Ð+Ø—-’- !�-Ñ$Ô$ˆÝ�W”] FÑ+Ô+Ð+Ð+Ð+r4   c                 óþ  — t          j        ddd¬¦  «        }|                     ¦   «         }t          |j        d¦  «         |                     d¬¦  «        }t          |j        d¦  «         t          j        ddgddgddggd¬¦  «        }|                     ¦   «         }t          |j        d	¦  «         |                     d¬¦  «        }t          |j        d
¦  «         t          j        g d¢¦  «        }t          j        g d¢g d¢g d¢g¦  «        }t          j        ||d¬¦  «        }|                     ¦   «         }t          |j        d¦  «         |                     d¬¦  «        }t          |j        d¦  «         d S )Nr   r"   T)rb  r8  r&  r  r  r  r   rC  rÌ  r3  rF  rG  rH  )r&  rI  rJ  rK  rL  s        r2   Ú&test_MultivariateNormalQMCInvTransformz@TestMultivariateNormalQMC.test_MultivariateNormalQMCInvTransform  sl  € åÔ*°°qÈÐMÑMÔMˆØ—-’-‘/”/ˆÝ�W”] FÑ+Ô+Ð+Ø—-’- !�-Ñ$Ô$ˆÝ�W”] FÑ+Ô+Ð+õ Ô*Ø�Q�˜q !˜f q¨! fÐ-¸Tð
ñ 
ô 
ˆð —-’-‘/”/ˆÝ�W”] FÑ+Ô+Ð+Ø—-’- !�-Ñ$Ô$ˆÝ�W”] FÑ+Ô+Ð+õ Œx˜	˜	˜	Ñ"Ô"ˆÝŒh˜	˜	˜	 9 9 9¨i¨i¨iÐ8Ñ9Ô9ˆÝÔ*¨4°ÀDÐIÑIÔIˆØ—-’-‘/”/ˆÝ�W”] FÑ+Ô+Ð+Ø—-’- !�-Ñ$Ô$ˆÝ�W”] FÑ+Ô+Ð+Ð+Ð+r4   c                 óŠ  — t           j                             d¦  «        }|                     d¦  «        }||                     ¦   «         z  t          j        |                     d¦  «        ¦  «        z   }t          j        t          j        ddg¦  «        |d|¬¦  «        }|                     d¬¦  «        }t          j        dd	gd
dgg¦  «        }t          ||d¬¦  «         t           j                             d¦  «        }|                     d¦  «        }||                     ¦   «         z  t          j        |                     d¦  «        ¦  «        z   }t          j        t          j        g d¢¦  «        |d|¬¦  «        }|                     d¬¦  «        }t          j        g d¢g d¢g¦  «        }t          ||d¬¦  «         d S )Nl	   èb·{1/YKë $`øF‡ ©r   r   r   r   F)r&  r;   r  g° ÍX4�ä¿gƒ0º<ì¿gÎ§ŽUÊê?gÏKÅÆ\ @rS   rT   ©r'   r'   r'   r&   )gZhç44æ¿gA-Ó>ô¿gÉZC©½ˆ¶¿)g~TÃ~Oìù?g*Ê¥ño@gc}“EÝ?©
r*   r9   r:   Ústandard_normalr9  Údiagr   r   r+   r   ©r,   r;   r=   ÚAr
  r#  r,  s          r2   Ú test_MultivariateNormalQMCSeededz:TestMultivariateNormalQMC.test_MultivariateNormalQMCSeeded   s¸  € åŒi×#Ò#Ð$KÑLÔLˆØ×Ò Ñ'Ô'ˆØ�—’‘”Ñ¥¤¨¯
ª
°1©¬Ñ 6Ô 6Ñ6ˆÝÔ*­2¬8°Q¸°FÑ+;Ô+;¸QØ9>ÀCðIñ Iô Iˆà—-’- !�-Ñ$Ô$ˆÝœ8 h°	Ð%:Ø&.°Ð%9ð%;ñ <ô <Ðå˜Ð!1¸Ð=Ñ=Ô=Ð=õ Œi×#Ò#Ð$KÑLÔLˆØ×Ò Ñ'Ô'ˆØ�—’‘”Ñ¥¤¨¯
ª
°1©¬Ñ 6Ô 6Ñ6ˆÝÔ*­2¬8°I°I°IÑ+>Ô+>ÀØ9>ÀCðIñ Iô Iˆà—-’- !�-Ñ$Ô$ˆÝœ8Ð%FÐ%FÐ%FØ%CÐ%CÐ%Cð%Eñ Fô FÐå˜Ð!1¸Ð=Ñ=Ô=Ð=Ð=Ð=r4   c                 óŠ  — t           j                             d¦  «        }|                     d¦  «        }||                     ¦   «         z  t          j        |                     d¦  «        ¦  «        z   }t          j        t          j        ddg¦  «        ||d¬¦  «        }|                     d¬¦  «        }t          j        dd	gd
dgg¦  «        }t          ||d¬¦  «         t           j                             d¦  «        }|                     d¦  «        }||                     ¦   «         z  t          j        |                     d¦  «        ¦  «        z   }t          j        t          j        g d¢¦  «        ||d¬¦  «        }|                     d¬¦  «        }t          j        g d¢g d¢g¦  «        }t          ||d¬¦  «         d S )Nl	   A^ª}�KT0zub‡N¨ rQ  r   r   T)r;   r&  r  g�òèFXÔå?gãý¸ýòéÀgRµÝß4¹¿gèO=Ò`å?rS   rT   rR  r'   r&   )go.2žï?gÛikD0Nú¿gÆPN´«ì¿)g4óäšYü¿gÒ«JC�ñ?g„-vû¬2 @rS  rV  s          r2   Ú,test_MultivariateNormalQMCSeededInvTransformzFTestMultivariateNormalQMC.test_MultivariateNormalQMCSeededInvTransform7  s¶  € åŒi×#Ò#Ð$KÑLÔLˆØ×Ò Ñ'Ô'ˆØ�—’‘”Ñ¥¤¨¯
ª
°1©¬Ñ 6Ô 6Ñ6ˆÝÔ*ÝŒH�a˜�VÑÔ˜a S¸ð
ñ 
ô 
ˆð —-’- !�-Ñ$Ô$ˆÝœ8 h°	Ð%:Ø&/°Ð%:ð%<ñ =ô =Ðå˜Ð!1¸Ð=Ñ=Ô=Ð=õ Œi×#Ò#Ð$KÑLÔLˆØ×Ò Ñ'Ô'ˆØ�—’‘”Ñ¥¤¨¯
ª
°1©¬Ñ 6Ô 6Ñ6ˆÝÔ*ÝŒH�Y�Y�YÑÔ ¨¸4ð
ñ 
ô 
ˆð —-’- !�-Ñ$Ô$ˆÝœ8Ð%EÐ%EÐ%EØ%DÐ%DÐ%Dð%Fñ Gô GÐå˜Ð!1¸Ð=Ñ=Ô=Ð=Ð=Ð=r4   c                 óì  — t           j                             d¦  «        }t          j        ddgddgddgg|¬¦  «        }|                     d¬¦  «        }t          t          j        |                     d¬¦  «        ¦  «        dk     ¦  «        sJ ‚t          t          j        |                     d¬¦  «        dz
  ¦  «        dk     ¦  «        sJ ‚d	D ]&}t          |d d …|f         ¦  «        \  }}|d
k    sJ ‚Œ't          j
        |                     ¦   «         ¦  «        }t          j        |d	         ¦  «        dk     sJ ‚t          j        ddgddgddgg|¬¦  «        }|                     d¬¦  «        }t          t          j        |                     d¬¦  «        ddgz
  ¦  «        dk     ¦  «        sJ ‚t          t          j        |                     d¬¦  «        t          j        d¦  «        z
  ¦  «        dk     ¦  «        sJ ‚d	D ]&}t          |d d …|f         ¦  «        \  }}|d
k    sJ ‚Œ't          j
        |                     ¦   «         ¦  «        }t          j        |d	         dz
  ¦  «        dk     sJ ‚d S )Nl   ¸–ÅVù^�Am%¦2r   r   ©rb  r8  r;   r5  r  r¯   r_  rË  r  rP   rO   r(   r   r   ©r*   r9   r:   r   r   rG  rµ   rb  r7  r   r8  r9  rk   r:  s           r2   Ú!test_MultivariateNormalQMCShapiroz;TestMultivariateNormalQMC.test_MultivariateNormalQMCShapiroP  su  € åŒi×#Ò#Ð$HÑIÔIˆÝÔ*Ø�Q�˜q !˜f q¨! fÐ-°3ð
ñ 
ô 
ˆð —-’- #�-Ñ&Ô&ˆÝ•2”6˜'Ÿ,š,¨A˜,Ñ.Ô.Ñ/Ô/°$Ò6Ñ7Ô7Ð7Ð7Ð7Ý•2”6˜'Ÿ+š+¨1˜+Ñ-Ô-°Ñ1Ñ2Ô2°TÒ9Ñ:Ô:Ð:Ð:Ð:àð 	ð 	ˆAÝ˜g a a a¨ dœmÑ,Ô,‰GˆAˆtØ˜#’:�:�:�:�:åŒf�W×&Ò&Ñ(Ô(Ñ)Ô)ˆÝŒv�c˜$”iÑ Ô  4Ò'Ð'Ð'Ð'õ Ô*Ø�s� 3¨ *¨s°C¨jÐ!9¸sð
ñ 
ô 
ˆð —-’- #�-Ñ&Ô&ˆÝ•2”6˜'Ÿ,š,¨A˜,Ñ.Ô.°!°Q°Ñ7Ñ8Ô8¸4Ò?Ñ@Ô@Ð@Ð@Ð@Ý•2”6˜'Ÿ+š+¨1˜+Ñ-Ô-µ´¸±´Ñ<Ñ=Ô=ÀÒDÑEÔEÐEÐEÐEàð 	ð 	ˆAÝ˜g a a a¨ dœmÑ,Ô,‰GˆAˆtØ˜#’:�:�:�:�:åŒf�W×&Ò&Ñ(Ô(Ñ)Ô)ˆÝŒv�c˜$”i #‘oÑ&Ô&¨Ò-Ð-Ð-Ð-Ð-Ð-r4   c                 óð  — t           j                             d¦  «        }t          j        ddgddgddgg|d¬¦  «        }|                     d¬¦  «        }t          t          j        |                     d¬¦  «        ¦  «        d	k     ¦  «        sJ ‚t          t          j        |                     d¬¦  «        dz
  ¦  «        d	k     ¦  «        sJ ‚d
D ]&}t          |d d …|f         ¦  «        \  }}|dk    sJ ‚Œ't          j
        |                     ¦   «         ¦  «        }t          j        |d
         ¦  «        d	k     sJ ‚t          j        ddgddgddgg|d¬¦  «        }|                     d¬¦  «        }t          t          j        |                     d¬¦  «        ddgz
  ¦  «        d	k     ¦  «        sJ ‚t          t          j        |                     d¬¦  «        t          j        d¦  «        z
  ¦  «        d	k     ¦  «        sJ ‚d
D ]&}t          |d d …|f         ¦  «        \  }}|dk    sJ ‚Œ't          j
        |                     ¦   «         ¦  «        }t          j        |d
         dz
  ¦  «        d	k     sJ ‚d S )Nl	   A"l7D#maxbwcuòC– r   r   T)rb  r8  r;   r&  r5  r  r¯   r_  rË  r  rP   rO   r(   r   r   r]  r:  s           r2   Ú-test_MultivariateNormalQMCShapiroInvTransformzGTestMultivariateNormalQMC.test_MultivariateNormalQMCShapiroInvTransformp  s|  € åŒi×#Ò#Ð$KÑLÔLˆÝÔ*Ø�Q�˜q !˜f q¨! fÐ-°3Àdð
ñ 
ô 
ˆð —-’- #�-Ñ&Ô&ˆÝ•2”6˜'Ÿ,š,¨A˜,Ñ.Ô.Ñ/Ô/°$Ò6Ñ7Ô7Ð7Ð7Ð7Ý•2”6˜'Ÿ+š+¨1˜+Ñ-Ô-°Ñ1Ñ2Ô2°TÒ9Ñ:Ô:Ð:Ð:Ð:àð 	ð 	ˆAÝ˜g a a a¨ dœmÑ,Ô,‰GˆAˆtØ˜#’:�:�:�:�:åŒf�W×&Ò&Ñ(Ô(Ñ)Ô)ˆÝŒv�c˜$”iÑ Ô  4Ò'Ð'Ð'Ð'õ Ô*Ø�s�Ø�s�˜c 3˜ZÐ(ØØð	
ñ 
ô 
ˆð —-’- #�-Ñ&Ô&ˆÝ•2”6˜'Ÿ,š,¨A˜,Ñ.Ô.°!°Q°Ñ7Ñ8Ô8¸4Ò?Ñ@Ô@Ð@Ð@Ð@Ý•2”6˜'Ÿ+š+¨1˜+Ñ-Ô-µ´¸±´Ñ<Ñ=Ô=ÀÒDÑEÔEÐEÐEÐEàð 	ð 	ˆAÝ˜g a a a¨ dœmÑ,Ô,‰GˆAˆtØ˜#’:�:�:�:�:åŒf�W×&Ò&Ñ(Ô(Ñ)Ô)ˆÝŒv�c˜$”i #‘oÑ&Ô&¨Ò-Ð-Ð-Ð-Ð-Ð-r4   c                 ó^  — t           j                             d¦  «        }t          j        g d¢g d¢g d¢g d¢g|¬¦  «        }|                     d¬¦  «        }t          t          j        |                     d	¬
¦  «        ¦  «        dk     ¦  «        sJ ‚t          j        t          j        |d d …d	f         ¦  «        dz
  ¦  «        dk     sJ ‚t          j        t          j        |d d …df         ¦  «        dz
  ¦  «        dk     sJ ‚t          j        t          j        |d d …df         ¦  «        t          j	        d¦  «        z
  ¦  «        dk     sJ ‚dD ]&}t          |d d …|f         ¦  «        \  }}|dk    sJ ‚Œ't          j        |                     ¦   «         ¦  «        }t          j        |d         ¦  «        dk     sJ ‚t          j        |d         dz
  ¦  «        dk     sJ ‚t          t          j        |d d …d	f         |d d …df         z   |d d …df         z
  ¦  «        dk     ¦  «        sJ ‚d S )Nl	   ì@ÁjŒSÆmÆ-\1:cž# )ré   ré   ré   )rP   ré   rP   )ré   rP   rP   )rP   rP   rO   r\  rF  r  r   r¯   r_  r   r   r3  gš™™™™™é?rË  r@  rY  )r*   r9   r:   r   r   rG  rµ   rb  r7  rk   r   r8  r9  r:  s           r2   Ú$test_MultivariateNormalQMCDegeneratez>TestMultivariateNormalQMC.test_MultivariateNormalQMCDegenerate“  s?  € åŒi×#Ò#Ð$JÑKÔKˆÝÔ*Ø ��Ø �� / / /°?°?°?ÐCØð
ñ 
ô 
ˆð
 —-’- #�-Ñ&Ô&ˆÝ•2”6˜'Ÿ,š,¨A˜,Ñ.Ô.Ñ/Ô/°$Ò6Ñ7Ô7Ð7Ð7Ð7ÝŒv•b”f˜W Q Q Q¨ Tœ]Ñ+Ô+¨aÑ/Ñ0Ô0°4Ò7Ð7Ð7Ð7ÝŒv•b”f˜W Q Q Q¨ Tœ]Ñ+Ô+¨aÑ/Ñ0Ô0°4Ò7Ð7Ð7Ð7ÝŒv•b”f˜W Q Q Q¨ Tœ]Ñ+Ô+­b¬g°a©j¬jÑ8Ñ9Ô9¸DÒ@Ð@Ð@Ð@Øð 	ð 	ˆAÝ˜g a a a¨ dœmÑ,Ô,‰GˆAˆtØ˜#’:�:�:�:�:ÝŒf�W×&Ò&Ñ(Ô(Ñ)Ô)ˆÝŒv�c˜$”iÑ Ô  4Ò'Ð'Ð'Ð'ÝŒv�c˜$”i !‘mÑ$Ô$ tÒ+Ð+Ð+Ð+å•2”6˜' ! ! ! Q $œ-¨'°!°!°!°Q°$¬-Ñ7¸'À!À!À!ÀQÀ$¼-ÑGÑHÔHØòñ ô ð 	ð 	ð ð 	ð 	r4   N)rà   rá   râ   r
  rD  rM  rO  rX  rZ  r^  r`  rb  r|   r4   r2   r@  r@  Ë  s�   € € € € € ð=ð =ð =ð4/ð /ð /ð,ð ,ð ,ð0,ð ,ð ,ð4>ð >ð >ð.>ð >ð >ð2.ð .ð .ð@!.ð !.ð !.ðFð ð ð ð r4   r@  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )Ú	TestLloydc                 ó^  — t           j                             d¦  «        }|                     ddd¬¦  «        }t	          |¦  «        }t          |¦  «        }t          d¦  «        D ]G}t          |d¬¦  «        }t	          |¦  «        }t          |¦  «        }||k     sJ ‚||k     sJ ‚|}|}|}ŒHd S )Ni§� r   r   )é€   r   )r%  rN   )Úmaxiter)r*   r9   ÚRandomStateÚuniformr   rÚ  r£   r   )	r,   r;   r<   Úbase_l1Úbase_l2rO  Úsample_lloydÚcurr_l1Úcurr_l2s	            r2   Ú
test_lloydzTestLloyd.test_lloyd¬  sÏ   € åŒi×#Ò# GÑ,Ô,ˆØ—’˜Q ¨�Ñ1Ô1ˆÝ˜6Ñ"Ô"ˆÝ˜&‘/”/ˆå�q‘”ð 	"ð 	"ˆAÝAØ Aðñ ô ˆLõ ˜|Ñ,Ô,ˆGÝ˜lÑ+Ô+ˆGð ˜WÒ$Ð$Ð$Ð$Ø˜WÒ$Ð$Ð$Ð$àˆGØˆGà!ˆFˆFð	"ð 	"r4   c                 óÜ   — t          j        ddgddgddgddgg¦  «        }|                     ¦   «         }t          |¬¦  «        }t	          ||¦  «         t          j        ||¦  «        rJ ‚dS )zƒ
        Verify that the input samples are not mutated in place and that they do
        not share memory with the output.
        rš   rÞ  rn  N)r*   r+   Úcopyr   r   Úmay_share_memory)r,   Úsample_origÚsample_copyÚ
new_samples       r2   Útest_lloyd_non_mutatingz!TestLloyd.test_lloyd_non_mutatingÃ  s�   € õ
 ”h  c 
Ø!$ c 
Ø!$ c 
Ø!$ c 
ð ,ñ -ô -ˆð "×&Ò&Ñ(Ô(ˆÝ;Øð
ñ 
ô 
ˆ
õ 	˜ [Ñ1Ô1Ð1ÝÔ& {°JÑ?Ô?Ð?Ð?Ð?Ð?Ð?r4   c                 óÊ  — t          j        t          d¬¦  «        5  g d¢}t          |¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  dgdgdgg}t          |¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  d	dgd
dgddgg}t          |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz`sample` is not a 2D arrayrD   rF   z`sample` dimension is not >= 2r   r  r   z!`sample` is not in unit hypercubegš™™™™™ñ¿rš   r   )rI   rJ   rK   r   )r,   r<   r  s      r2   Útest_lloyd_errorszTestLloyd.test_lloyd_errorsÓ  s»  € ÝŒ]�:Ð-JÐKÑKÔKð 	;ð 	;Ø �[�[ˆFÝ2°6Ñ:Ô:Ð:ð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;ð 0ˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	;ð 	;Ø�c˜C˜5 1 #Ð&ˆFÝ2°6Ñ:Ô:Ð:ð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;ð 3ˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	;ð 	;Ø˜Q�i # s ¨a°¨VÐ4ˆFÝ2°6Ñ:Ô:Ð:ð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;ð 	;ð 	;s3   œ<¼A ÁA Á$BÂBÂBÂ0CÃCÃCN)rà   rá   râ   ro  rv  rx  r|   r4   r2   rd  rd  «  sD   € € € € € ð"ð "ð "ð.@ð @ð @ð ;ð ;ð ;ð ;ð ;r4   rd  c                 óN   — t          j        | ¦  «                             ¦   «         S r{   )r
   Úpdistr  rn  s    r2   rÚ  rÚ  ä  s   € ÝŒ>˜&Ñ!Ô!×%Ò%Ñ'Ô'Ð'r4   r
  c                 óJ  — d}t           j                             |¦  «        } | d|¬¦  «                             d¦  «        }t           j                             |¦  «        } | d|¬¦  «                             d¦  «        }t          ||¦  «         t           j                             |¦  «        } | d|¬¦  «                             d¦  «        } | d|¬¦  «                             d¦  «        }t          ||¦  «         t           j                             |¦  «        } | d|¬¦  «                             d¦  «        }t          ||¦  «         t          ||¦  «         d}t          j        t          |¬¦  «        5   | d||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nl   Ø7P r   )r�   r.  rN   r�   z3got multiple values for argument now known as `rng`rD   )r�   r;   r.  )r*   r9   rh  r   r:   rI   rJ   Ú	TypeError)r
  Úseed_numberr;   Úres1Úres2Úres3ri  s          r2   Útest_deterministicr�  è  sÜ  € ð €Kå
Œ)×
Ò
 Ñ
,Ô
,€CØˆ6�A˜CÐ Ñ Ô ×'Ò'¨Ñ*Ô*€DÝ
Œ)×
Ò
 Ñ
,Ô
,€CØˆ6�A˜CÐ Ñ Ô ×'Ò'¨Ñ*Ô*€DÝ��tÑÔÐå
Œ)×
Ò
 Ñ
,Ô
,€CØˆ6�A˜CÐ Ñ Ô ×'Ò'¨Ñ*Ô*€DØˆ6�A˜;Ð'Ñ'Ô'×.Ò.¨qÑ1Ô1€DÝ��tÑÔÐÝ
Œ)×
Ò
 Ñ
,Ô
,€CØˆ6�A˜3ÐÑÔ×&Ò& qÑ)Ô)€DÝ��tÑÔÐÝ��tÑÔÐàC€GÝ	Œ•y¨Ð	0Ñ	0Ô	0ð 7ð 7Øˆ�˜¨+Ð6Ñ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð 7ð 7s   Å<FÆFÆF)8r€   Úcollectionsr   Ú	itertoolsr   r   rI   Únumpyr*   Únumpy.testingr   r   r   r	   Úscipy.spatialr
   Úscipy.statsr   Úscipy.stats._sobolr   r   r   Úscipy.stats._qmcr   r   r   r   r   r   r   r   r   rç   rú   r  r  r#  r&  r(  r€  r…  r­  rÉ  rÓ  rÿ  r  r@  rd  rÚ  rã   r}  rƒ  r°  r’   rý  r�  r|   r4   r2   ú<module>rŠ     s8  ðØ 	€	€	€	Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +à €€€Ø Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð #Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ði%ð i%ð i%ð i%ð i%ñ i%ô i%ð i%ðX#'ð #'ð #'ð #'ð #'ñ #'ô #'ð #'ðLð ð ð ð �3”=ñ ô ð ð&ð &ð &ð.2ð 2ð 2ð<ð <ð <ðD+ð +ð +ð k/ð k/ð k/ð k/ð k/ñ k/ô k/ð k/ð\)ð )ð )ð )ð )�ñ )ô )ð )ðBRð Rð Rð Rð Rˆnñ Rô Rð RðjH7ð H7ð H7ð H7ð H7�ñ H7ô H7ð H7ðV4ð 4ð 4ð 4ð 4ñ 4ô 4ð 4ð&G3ð G3ð G3ð G3ð G3�.ñ G3ô G3ð G3ðT<<ð <<ð <<ð <<ð <<ñ <<ô <<ð <<ð~v(ð v(ð v(ð v(ð v(ñ v(ô v(ð v(ðr]ð ]ð ]ð ]ð ]ñ ]ô ]ð ]ð@5;ð 5;ð 5;ð 5;ð 5;ñ 5;ô 5;ð 5;ðr(ð (ð (ð „×Ò˜ C¤J°´	Ø$'Ô$6¸¼ð$Iñ Jô Jð7ð 7ñJô Jð7ð 7ð 7r4   