§
    OŠtj¦”  ã                   óÐ  — 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 d dlmZ d dl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m Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& d dl'm(Z( d dl)m*Z+ d dl,m-Z- d dl.m/Z/m0Z0  e
dd¬¦  «        Z1 e
dd¬¦  «        Z2 e
dd¬¦  «        Z3 e
dd¬¦  «        Z4 e
dd¬¦  «        Z5 e
dd¬¦  «        Z6 e
dd¬¦  «        Z7 edd¬¦  «        \  Z8Z9 edd¬¦  «        Z:d„ Z;d„ Z<d„ Z=d„ Z>d„ Z?d„ Z@d „ ZAd!„ ZBd"„ ZCd#„ ZDd$„ ZEd%„ ZFd&„ ZGd'„ ZHd(„ ZId)„ ZJd*„ ZKd+„ ZLd,„ ZMd-„ ZNd.„ ZOd/„ ZPd0„ ZQd1„ ZRd2„ ZSd3„ ZTd4„ ZUd5„ ZVd6„ ZWd7„ ZXd8„ ZYd9„ ZZd:„ Z[d;„ Z\d<„ Z]d=„ Z^d>„ Z_d?S )@é    )ÚFloatÚRationalÚooÚpi)ÚEq)ÚS)ÚSymbolÚsymbols)Úsqrt)ÚacosÚcosÚsin)ÚEmptySet)Úsimplify)Útan)ÚCircleÚGeometryErrorÚLineÚPointÚRayÚSegmentÚTriangleÚintersectionÚPoint3DÚLine3DÚRay3DÚ	Segment3DÚPoint2DÚLine2DÚPlane)ÚUndecidable)Ú_asa)Úcartes)ÚraisesÚwarnsÚxT©ÚrealÚyÚzÚkÚx1Úy1Útúa,bÚmc                  óh  ‡ ‡‡‡— ddl mŠmŠmŠ mŠ t          d‰z  ‰z   dz   ¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        k    sJ ‚t          d‰z  d‰z  z   dz   ¦  «        t          t          dt          d	d¦  «        ¦  «        t          dt          d
d¦  «        ¦  «        ¦  «        k    sJ ‚t          d‰ z  ‰z   dz   dd¬¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        k    sJ ‚t          d‰z  ‰z   ¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        k    sJ ‚t          ‰‰z   ¦  «        t          t          dd¦  «        t          dd	¦  «        ¦  «        k    sJ ‚t          t          d‰ z  ‰z   d¦  «        d‰¬¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        k    sJ ‚t          ‰dz
  ¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        k    sJ ‚t          d‰z  dz
  ‰¬¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        k    sJ ‚t          ‰¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        k    sJ ‚t          d‰z  ‰¬¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        k    sJ ‚t          ‰‰¬¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        k    sJ ‚t          t          ˆˆfd„¦  «         t          t          ˆ ˆfd„¦  «         t          t          ˆˆfd„¦  «         t          t          ˆ ˆfd„¦  «         t          t          ˆˆfd„¦  «         d S )Nr   )r&   r)   ÚaÚbé   é   iîÿÿÿé   iëÿÿÿé   éÿÿÿÿéüÿÿÿr2   r3   ©r&   r)   éýÿÿÿé   )r)   )r&   c                  ó(   •— t          ‰ ‰z  ¦  «        S ©N©r   r:   s   €€ú\/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/geometry/tests/test_line.pyú<lambda>z+test_object_from_equation.<locals>.<lambda>/   ó   ø€ �t A¨¡E™{œ{€ ó    c                  ó.   •— t          ‰ ‰z  dd¬¦  «        S ©Nr2   r3   r:   r?   ©r2   r3   s   €€r@   rA   z+test_object_from_equation.<locals>.<lambda>0   ó   ø€ �t A¨¡E¨S°CÐ8Ñ8Ô8€ rC   c                  ó(   •— t          ‰‰ z  ¦  «        S r>   r?   r:   s   €€r@   rA   z+test_object_from_equation.<locals>.<lambda>1   rB   rC   c                  ó.   •— t          ‰‰ z  dd¬¦  «        S rE   r?   rF   s   €€r@   rA   z+test_object_from_equation.<locals>.<lambda>2   rG   rC   c                  ó4   •— t          ‰ dz   dz  ‰z   ¦  «        S )Nr6   r<   r?   r:   s   €€r@   rA   z+test_object_from_equation.<locals>.<lambda>3   s   ø€ �t Q¨¡U¨Q¡J°¡NÑ3Ô3€ rC   )Ú	sympy.abcr&   r)   r2   r3   r   r   r   r   r   r$   Ú
ValueError)r2   r3   r&   r)   s   @@@@r@   Útest_object_from_equationrM      sš  øøøø€ Ø$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ý��!‘�a‘˜"‘ÑÔ¥­°°3©¬½ÀÀC¹¼Ñ!IÔ!IÒIÐIÐIÐIÝ��!‘�a˜!‘e‘˜a‘Ñ Ô ¥FÝ�•8˜B ‘?”?Ñ#Ô#¥W¨Qµ¸¸Q±´Ñ%@Ô%@ñ%Bô %Bò Bð Bð Bð Bå��!‘�a‘˜"‘  sÐ+Ñ+Ô+­vÝ��3‰Œ�  C™œñ0*ô 0*ò *ð *ð *ð *å��!‘�a‘‰=Œ=�F¥7¨1¨a¡=¤=µ'¸!¸R±.´.ÑAÔAÒAÐAÐAÐAÝ��A‘‰;Œ;�&¥¨¨A¡¤µ¸¸2±´Ñ?Ô?Ò?Ð?Ð?Ð?Ý•�1�Q‘3˜‘7˜CÑ Ô  C¨1Ð-Ñ-Ô-µÝ��3‰Œ�  C™œñ2*ô 2*ò *ð *ð *ð *õ ��A‘‰;Œ;�&¥¨¨A¡¤µ¸¸1±´Ñ>Ô>Ò>Ð>Ð>Ð>Ý��!‘�a‘˜1ÐÑÔ¥­°°1©¬µw¸qÀ!±}´}Ñ!EÔ!EÒEÐEÐEÐEÝ�‰7Œ7•f�W Q¨™]œ]­G°A°q©M¬MÑ:Ô:Ò:Ð:Ð:Ð:Ý��!‘�qˆ>‰>Œ>�V¥G¨A¨q¡M¤Mµ7¸1¸a±=´=ÑAÔAÒAÐAÐAÐAÝ��Qˆ<‰<Œ<�6¥'¨!¨Q¡-¤-µ¸¸A±´Ñ?Ô?Ò?Ð?Ð?Ð?Ý
�:Ð*Ð*Ð*Ð*Ð*Ñ+Ô+Ð+Ý
�:Ð8Ð8Ð8Ð8Ð8Ñ9Ô9Ð9Ý
�:Ð*Ð*Ð*Ð*Ð*Ñ+Ô+Ð+Ý
�:Ð8Ð8Ð8Ð8Ð8Ñ9Ô9Ð9Ý
�:Ð3Ð3Ð3Ð3Ð3Ñ4Ô4Ð4Ð4Ð4rC   c                 óH   — t          d¦  «        }| | |z
  cxk     o|k     nc S )z.Test if two floating point values are 'equal'.z1.0E-10)r   )r2   r3   Út_floats      r@   ÚfeqrP   6   s7   € å�IÑÔ€GØˆ8�a˜!‘eÐ%Ð%Ò%Ð%˜gÒ%Ð%Ð%Ð%Ð%rC   c                  óî  — t          dddd¦  «        } | j        }| j        }t          t	          j        t	          t          dd¦  «        t          dd¦  «        ¦  «        t	          t          dd¦  «        t          dd¦  «        ¦  «        ¦  «                             ¦   «         t          j        ¦   «         dz  ¦  «        sJ ‚t	          | |¦  «                             t	          ||¦  «        ¦  «        t          dz  k    sJ ‚t          ddd¦  «        }t          j        t          |t          ddd¦  «        ¦  «        t          |t          ddd¦  «        ¦  «        ¦  «        t          t          d¦  «        dz  ¦  «        k    sJ ‚t          j        t          |t          ddd¦  «        ¦  «        t          t          ddd¦  «        |¦  «        ¦  «        t          t          d¦  «         dz  ¦  «        k    sJ ‚d S )Nr6   r<   r4   é   r   r7   )r   Úorthogonal_directionÚoriginrP   r   Úangle_betweenÚevalfr   r   r   r   r   )r2   r3   Úor*   s       r@   Útest_angle_betweenrX   <   sÖ  € Ýˆa��A�qÑÔ€AØ	Ô€AØ	Œ€AÝ�tÔ!¥$¥u¨Q°¡{¤{µE¸!¸Q±K´KÑ"@Ô"@Ý"&¥u¨Q°¡{¤{µE¸!¸Q±K´KÑ"@Ô"@ñBô BßBGÂ%Á'Ä'Í2Ì8É:Ì:ÐXYÉ>ñ[ô [ð [ð [ð [å��1‰:Œ:×#Ò#¥D¨¨A¡J¤JÑ/Ô/µ2¸±6Ò9Ð9Ð9Ð9Ý��1�aÑÔ€AÝÔ¥ q­'°!°Q¸Ñ*:Ô*:Ñ ;Ô ;Ý & q­'°!°Q¸Ñ*:Ô*:Ñ ;Ô ;ñ=ô =Ý@DÅTÈ!ÁWÄWÈqÁ[Ñ@QÔ@QòRð Rð Rð Rõ Ô¥ q­'°!°Q¸Ñ*:Ô*:Ñ ;Ô ;Ý &¥w¨q°!°QÑ'7Ô'7¸Ñ ;Ô ;ñ=ô =Ý@DÅdÈ1ÁgÄgÀXÐPQÁ\Ñ@RÔ@RòSð Sð Sð Sð Sð SrC   c                  ó  — t          dd¬¦  «        } t          dt          dz  ¬¦  «        }|                      |¦  «        t           dz  k    sJ ‚|                     | ¦  «        t          dz  k    sJ ‚|                      | ¦  «        dk    sJ ‚d S )N©r   r   r   ©Úangle©r6   r<   r<   )r   r   Úclosing_anglerF   s     r@   Útest_closing_angler_   K   s‘   € ÝˆF˜!ÐÑÔ€AÝˆF�"˜Q™$ÐÑÔ€AØ�?Š?˜1ÑÔ¥"  Q¡Ò&Ð&Ð&Ð&Ø�?Š?˜1ÑÔ¥ A¡Ò%Ð%Ð%Ð%Ø�?Š?˜1ÑÔ Ò"Ð"Ð"Ð"Ð"Ð"rC   c                  ó,  — t          t          dd¦  «        t          dd¦  «        ¦  «        } t          t          dd¦  «        t          dd¦  «        ¦  «        }|                      |¦  «        t          dt	          d¦  «        z  dz  ¦  «        k    sJ ‚d S )Nr6   r<   r4   r7   )r   r   Úsmallest_angle_betweenr   r   rF   s     r@   Útest_smallest_anglerb   S   s{   € Ý�U�1�a‰[Œ[�%  1™+œ+Ñ&Ô&€AÝ�U�1�a‰[Œ[�˜q !™œÑ%Ô%€AØ×#Ò# AÑ&Ô&­$¨qµ°a±´©y¸©{Ñ*;Ô*;Ò;Ð;Ð;Ð;Ð;Ð;rC   c                  óª  — t          t          dd¦  «        t          dd¦  «        ¦  «        } |                      ¦   «         dk    sJ ‚t          t          dd¦  «        t          dd¦  «        ¦  «        } |                      ¦   «         dk    sJ ‚t	          t          dd¦  «        t          dd¦  «        ¦  «        } |                      ¦   «         dk    sJ ‚d S )	Nr6   r<   zï<path fill-rule="evenodd" fill="#66cc99" stroke="#555555" stroke-width="2.0" opacity="0.6" d="M 1.00000000000000,1.00000000000000 L 1.00000000000000,2.00000000000000" marker-start="url(#markerReverseArrow)" marker-end="url(#markerArrow)"/>r   zš<path fill-rule="evenodd" fill="#66cc99" stroke="#555555" stroke-width="2.0" opacity="0.6" d="M 1.00000000000000,0 L 1.00000000000000,1.00000000000000" />r4   r7   zé<path fill-rule="evenodd" fill="#66cc99" stroke="#555555" stroke-width="2.0" opacity="0.6" d="M 2.00000000000000,3.00000000000000 L 3.00000000000000,5.00000000000000" marker-start="url(#markerCircle)" marker-end="url(#markerArrow)"/>)r   r   Ú_svgr   r   )r2   s    r@   Útest_svgre   Y   sæ   € Ý�U�1�a‰[Œ[�˜q !™œÑ%Ô%€AØ�6Š6‰8Œ8ð  Iò  Ið  Ið  Ið  IÝ•�a˜‘”�E ! Q™KœKÑ(Ô(€AØ�6Š6‰8Œ8ð  tò  tð  tð  tð  tÝ�E�!�Q‰KŒK�˜q !™œÑ%Ô%€AØ�6Š6‰8Œ8ð  Cò  Cð  Cð  Cð  Cð  Cð  CrC   c                  ó  — t          t          ddd¦  «        t          ddd¦  «        ¦  «        } t          t          t          t          ¦  «        t          t
          t
          ¦  «        ¦  «        }|                     ¦   «         |v sJ ‚t          dt          dz  ¬¦  «                             ¦   «         t          t          dz   t          dz   ¦  «        k    sJ ‚t          dd¦  «                             ¦   «         t          dt          z   ddt          z  z   ¦  «        k    sJ ‚|                      |                      ¦   «         ¦  «        |                      ¦   «         k    sJ ‚t          dg d	¢¬
¦  «                             ¦   «         t          t          dz   dt          z  dz   dt          z  dz   ¦  «        k    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «        j        t          t          j        t          j        t          j        ¦  «        k    sJ ‚t          t          t          t          t          ¦  «        t          t
          t
          t
          ¦  «        ¦  «        j        t%          d¦  «        t%          t          t
          z
  dz  ¦  «        z  k    sJ ‚t          dd¦  «                             ¦   «         t          t          dz   dt          z  dz   dt          z  dz   ¦  «        k    sJ ‚t'          t(          d„ ¦  «         d S )Nr   r6   ©r6   r6   rR   r[   ©r<   r4   r<   ©r6   r6   r6   ©r6   r<   r4   ©Údirection_ratior4   ©r<   r4   rR   c                  ó`   — t          t          dfd¦  «                             t          ¦  «        S )Nr6   rh   )r   r&   Úarbitrary_point© rC   r@   rA   z&test_arbitrary_point.<locals>.<lambda>q   s"   € ¥¥a¨ V¨VÑ 4Ô 4× DÒ DÅQÑ GÔ G€ rC   )r   r   r   r   r,   r-   ro   r   r   r.   r   Úperpendicular_segmentr   r   Úmidpointr   ÚHalfÚlengthr   r$   rL   ©Úl1Úl2s     r@   Útest_arbitrary_pointrx   b   s‹  € Ý	•˜˜1˜aÑ Ô ¥'¨!¨Q°Ñ"2Ô"2Ñ	3Ô	3€BÝ	�e•B�‰mŒm�U¥2¥r™]œ]Ñ	+Ô	+€BØ×ÒÑÔ 2Ð%Ð%Ð%Ð%Ýˆv�R !™VÐ$Ñ$Ô$×4Ò4Ñ6Ô6Ý•�Q‘�˜A™ÑÔòð ð ð å�6˜6Ñ"Ô"×2Ò2Ñ4Ô4½¸aÅ!¹eÀQÈÍQÉÁYÑ8OÔ8OÒOÐOÐOÐOØ×#Ò# B×$6Ò$6Ñ$8Ô$8Ñ9Ô9¸R×=OÒ=OÑ=QÔ=QÒQÐQÐQÐQÝ�¨I¨I¨IÐ6Ñ6Ô6×FÒFÑHÔHÝ•1�q‘5˜!�a™% !™) Q­¡U¨Q¡YÑ/Ô/ò0ð 0ð 0ð 0å•W˜Q  1Ñ%Ô%¥w¨q°!°QÑ'7Ô'7Ñ8Ô8ÔAÝ•1”6�1œ6¥1¤6Ñ*Ô*ò+ð +ð +ð +å•W�R¥¥RÑ(Ô(­'µ"µb½"Ñ*=Ô*=Ñ>Ô>ÔEÍÈaÉÌÕSWÕY[Õ^`ÑY`ÐefÑXfÑSgÔSgÑIgÒgÐgÐgÐgÝ�Y 	Ñ*Ô*×:Ò:Ñ<Ô<Ý•1�q‘5˜!�a™% !™) Q­¡U¨Q¡YÑ/Ô/ò0ð 0ð 0ð 0å
�:ÐGÐGÑIÔIÐIÐIÐIrC   c                  óÆ  — t          t          dd¦  «        t          dd¦  «        ¦  «        } t          t          t          t          ¦  «        t          t          dt          z   ¦  «        ¦  «        }t          j        | ¦  «        du sJ ‚t          j        | |¦  «        sJ ‚t          j        | | | |¦  «        sJ ‚t          j        | |t          t          dt          ¦  «        t          t	          dd¦  «        t          ¦  «        ¦  «        ¦  «        sJ ‚t          j        | t          t          dd¦  «        t          t           t          ¦  «        ¦  «        |¦  «        du sJ ‚d S )Nr   r6   Fr7   r;   )r   r   r,   Úare_concurrentr   ru   s     r@   Útest_are_concurrent_2dr{   t   s  € Ý	�e�A�q‰kŒk�5  A™;œ;Ñ	'Ô	'€BÝ	�e•B�‰mŒm�U¥2 q­2¡vÑ.Ô.Ñ	/Ô	/€BÝÔ˜rÑ"Ô" eÐ+Ð+Ð+Ð+ÝÔ˜r 2Ñ&Ô&Ð&Ð&Ð&ÝÔ˜r 2 r¨2Ñ.Ô.Ð.Ð.Ð.ÝÔ˜r 2¥t­E°!µR©L¬L½%ÅÈÈQÁÄÕQSÑ:TÔ:TÑ'UÔ'UÑVÔVÐVÐVÐVÝÔ˜r¥4­¨a°©¬µU½B¸3Å±^´^Ñ#DÔ#DÀbÑIÔIÈUÐRÐRÐRÐRÐRÐRrC   c                  ób  — t          ddd¦  «        } t          | t          ddd¦  «        ¦  «        }t          t          ddd¦  «        t          ddd¦  «        ¦  «        }t          t          ddd¦  «        t          ddd¦  «        ¦  «        }t          j        |¦  «        du sJ ‚t          j        |t          t          t          t          t          ¦  «        t          t
          t
          t
          ¦  «        ¦  «        ¦  «        du sJ ‚t          j        |t          | t          t          t          t          ¦  «        ¦  «        t          t          t          t          t          ¦  «        t          t          dt          z   d¦  «        ¦  «        ¦  «        du sJ ‚t          j        ||¦  «        du sJ ‚d S ©Nr   r6   FT)r   r   r   rz   r,   r-   )Úp1rv   Ú
parallel_1Ú
parallel_2s       r@   Útest_are_concurrent_3dr�   ~   sm  € Ý	��A�qÑ	Ô	€BÝ	ˆb•'˜!˜Q Ñ"Ô"Ñ	#Ô	#€BÝ�  1 aÑ(Ô(­'°!°Q¸Ñ*:Ô*:Ñ;Ô;€JÝ�  1 aÑ(Ô(­'°!°Q¸Ñ*:Ô*:Ñ;Ô;€JÝÔ  Ñ$Ô$¨Ð-Ð-Ð-Ð-ÝÔ  ¥T­'µ"µb½"Ñ*=Ô*=½wÅrÍ2ÍrÑ?RÔ?RÑ%SÔ%SÑTÔTÐX]Ð]Ð]Ð]Ð]ÝÔ  ¥V¨Bµ½½BÅÑ0CÔ0CÑ%DÔ%DÝ!%¥g­bµ"µbÑ&9Ô&9½7Å2ÀqÍ2ÁvÈqÑ;QÔ;QÑ!RÔ!RñTô TØW[ð\ð \ð \ð \åÔ  ¨ZÑ8Ô8¸EÐAÐAÐAÐAÐAÐArC   c            	      ó   — ddl m}  dddgt          dd¦  «        f} | |d¦  «        }t          t	          dd¦  «        t	          dd¦  «        ¦  «        }dg d	¢t          ddd
¦  «        f} | |d¦  «        }t          t          ddd¦  «        t          ddd¦  «        ¦  «        }dg d¢t          dddd¦  «        f} | |d¦  «        }t          t          dddd¦  «        t          dddd¦  «        ¦  «        }	g d¢}
|D ]}t          |Ž  Œ|
D ] }|D ]} t          ||¦  «        |¦  «         ŒŒ!|D ]}t          |Ž  Œ|
D ] }|D ]} t          ||¦  «        |¦  «         ŒŒ!|D ]}t          |Ž  Œ|
D ] }|D ]} t          |	|¦  «        |¦  «         ŒŒ!dS )z”Functions accepting `Point` objects in `geometry`
    should also accept tuples, lists, and generators and
    automatically convert them to points.r   )Úsubsetsr]   r6   r4   r7   r<   rj   )r6   r<   rR   é   )r6   r<   r4   rR   )r6   r<   r4   r7   é   rR   )ÚcontainsÚdistanceÚequalsÚparallel_lineÚperpendicular_linerq   Ú
projectionr   N)	Úsympy.utilities.iterablesrƒ   r   r   r   r   r   Úgetattrr   )rƒ   Ú	singles2dÚ	doubles2dÚl2dÚ	singles3dÚ	doubles3dÚl3dÚ	singles4dÚ	doubles4dÚl4dÚtest_singleÚpÚfuncs                r@   Útest_argumentsrš   Š   s7  € ð 2Ð1Ð1Ð1Ð1Ð1à˜!˜Q˜¥ q¨!¡¤Ð-€IØ�˜	 1Ñ%Ô%€IÝ
�w�q˜!‰}Œ}�g a¨™mœmÑ
,Ô
,€CØ˜I˜I˜I¥u¨Q°°1¡~¤~Ð6€IØ�˜	 1Ñ%Ô%€IÝ
�w�q˜!˜QÑÔ¥¨¨A¨qÑ!1Ô!1Ñ
2Ô
2€CØ˜|˜|˜|­U°1°a¸¸AÑ->Ô->Ð?€IØ�˜	 1Ñ%Ô%€IÝ
�u�Q˜˜1˜aÑ Ô ¥%¨¨1¨a°Ñ"3Ô"3Ñ
4Ô
4€Cð1ð 1ð 1€Kàð ð ˆÝ�ˆ
ˆ
ˆ
Øð "ð "ˆØð 	"ð 	"ˆAØ�G�C˜ÑÔ˜qÑ!Ô!Ð!Ð!ð	"ð ð ð ˆÝ�ˆ
ˆ
ˆ
Øð "ð "ˆØð 	"ð 	"ˆAØ�G�C˜ÑÔ˜qÑ!Ô!Ð!Ð!ð	"ð ð ð ˆÝˆaˆˆˆØð "ð "ˆØð 	"ð 	"ˆAØ�G�C˜ÑÔ˜qÑ!Ô!Ð!Ð!ð	"ð"ð "rC   c            
      óH  — t          dd¦  «        } t          dd¦  «        }t          dd¦  «        }t          | |¦  «                             ¦   «         }t          || ¦  «                             ¦   «         }t          | |¦  «        }t          t          t          t          ¦  «        t          t          dt          z   ¦  «        ¦  «        }t          | t          dd¦  «        ¦  «        }t          | t          dd¦  «        ¦  «        }t          t          dd¦  «        | ¦  «        }	t          | |¦  «        }
|
                     ¦   «         }t          dd¬¦  «        t          dd¦  «        k    sJ ‚t          dt          ¬¦  «        t          dd¦  «        k    sJ ‚t          dt          ¬¦  «        j        dk    sJ ‚t          dt           ¬¦  «        t          dd¦  «        k    sJ ‚t          | |¦  «                             d	d¦  «        t          | t          d	d¦  «        ¦  «        k    sJ ‚t          | |¦  «        t          | |¦  «        k    sJ ‚t          | |¦  «        t          || ¦  «        k    sJ ‚|t          t          t          t          ¦  «        t          t          t          ¦  «        ¦  «        k    sJ ‚||k    sJ ‚t          | |¦  «        t          || ¦  «        k    sJ ‚t          | |¦  «        | k    sJ ‚| |v sJ ‚| |vsJ ‚|
t          | |¦  «        v sJ ‚t          t          dd¦  «        t          dd¦  «        ¦  «        t          t          dd¦  «        t          dd	¦  «        ¦  «        v sJ ‚t          t          dd¦  «        t          dd	¦  «        ¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        v sJ ‚t          t          dd¦  «        t          dd	¦  «        ¦  «        j
        t          j        k    sJ ‚t          t          dd¦  «        t          dd	¦  «        ¦  «        j
        t          j        k    sJ ‚t          t          dd¦  «        t          d
d	¦  «        ¦  «        j
        t          j        k    sJ ‚t          t          dd¦  «        t          d	d¦  «        ¦  «        j        t          j        k    sJ ‚t          t          dd¦  «        t          d	d	¦  «        ¦  «        j        t          j        k    sJ ‚t          t          dd¦  «        t          d	d¦  «        ¦  «        j        t          j        k    sJ ‚||
v du sJ ‚t          | |¦  «        |
v sJ ‚t          t          t          t          ¦  «        t          t          dt          z   ¦  «        ¦  «        t          | t          d
d¦  «        ¦  «        k    sJ ‚t          | |¦  «        j        t          t          j        t          j        ¦  «        k    sJ ‚t          | t          t           t          ¦  «        ¦  «        j        t'          d	t          d	z  z  ¦  «        k    sJ ‚|j        dk    sJ ‚|j        t          u sJ ‚|j        dk    sJ ‚t          | t          dd¦  «        ¦  «        j        t          u sJ ‚t          |j        |                     ¦   «         ¦  «        j        |j        k    sJ ‚t          |	j        |	                     ¦   «         ¦  «        j        |	j        k    sJ ‚t          t          dd
¦  «        t          | t          dd¦  «        ¦  «                             ¦   «         ¦  «        j        t          | t          dd¦  «        ¦  «        j        k    sJ ‚|j        dk    sJ ‚t          t.           t.          ft.           dz   t.          dz
  f¦  «        j        dk    sJ ‚t          | t          dd¦  «        ¦  «        j        dk    sJ ‚t          dt.          ¬¦  «        }|                     t.          dt2          z  dz  ¦  «        t          dd¦  «        k    sJ ‚|                     t.          dt2          z  dz  ¦  «        t          dd¦  «        k    sJ ‚|                     t.          t2           dz  ¦  «        t          dd¦  «        k    sJ ‚|                     t.          t2          d	z  ¦  «        t          dd¦  «        k    sJ ‚|                     t.          t2           d	z  ¦  «        t          dd¦  «        k    sJ ‚t5          dd¦  «        D ]}|                     ¦   «         |v sJ ‚Œ|j        | j        k    r|j        | j        k    sJ ‚|j        |j        k    r|j        |j        k    sJ ‚| j        |j        cxk    r|j        k    r!n n| j        |j        cxk    r|j        k    sn J ‚t9          |
¦  «        t9          t          || ¦  «        ¦  «        k    sJ ‚|
                     ¦   «         t<          ddgk    sJ ‚t          | |¦  «                             ¦   «         t<          ddgk    sJ ‚t          dt2          dz  ¬¦  «                             ¦   «         t<          ddgk    sJ ‚d S )Nr   r6   éÐ  rg   ©Úslope©r<   r<   r]   )r6   r6   r6   r<   r<   r8   éþÿÿÿFr7   ©r   r6   r   ©r6   r6   r   ©r6   r   r   rZ   r[   r4   rR   ©r8   r6   )r8   r8   )r6   r8   ©r   r6   ©r   r8   éûÿÿÿé
   )r   r   Úrandom_pointr   r,   r   r   ÚboundsÚscaler-   Ú
xdirectionr   ÚZeroÚInfinityÚNegativeInfinityÚ
ydirectionrr   rs   rt   r   rž   ÚsourceÚcoefficientsr&   Úsubsr   Úranger)   ÚhashÚplot_intervalr.   )r~   Úp2Úp10Úp_r3Úp_r4rv   Úl3Úl4Úr1Úr2Ús1Úp_s1ÚrÚinds                 r@   Útest_basic_properties_2drÃ   ¯   s	  € Ý	ˆq�!‰Œ€BÝ	ˆq�!‰Œ€BÝ
��dÑ
Ô
€CÝˆr�2‰;Œ;×#Ò#Ñ%Ô%€DÝˆr�2‰;Œ;×#Ò#Ñ%Ô%€Då	ˆb�"‰Œ€BÝ	�e•B�‰mŒm�U¥2 q­2¡vÑ.Ô.Ñ	/Ô	/€BÝ	ˆb•%˜˜1‘+”+Ñ	Ô	€Bå	ˆR•�q˜!‘”Ñ	Ô	€BÝ	�U�1�a‰[Œ[˜"Ñ	Ô	€Bå	��SÑ	Ô	€BØ�?Š?ÑÔ€Då�˜aÐ Ñ Ô ¥D¨°Ñ$8Ô$8Ò8Ð8Ð8Ð8Ý��bÐ!Ñ!Ô!¥T¨&°&Ñ%9Ô%9Ò9Ð9Ð9Ð9Ý��bÐ!Ñ!Ô!Ô(¨LÒ8Ð8Ð8Ð8Ý��r˜cÐ"Ñ"Ô"¥d¨6°6Ñ&:Ô&:Ò:Ð:Ð:Ð:Ý��B‰<Œ<×Ò˜a Ñ#Ô#¥t¨Bµ°a¸±´Ñ'<Ô'<Ò<Ð<Ð<Ð<Ý��B‰<Œ<�4  B™<œ<Ò'Ð'Ð'Ð'Ý��B‰<Œ<�4  B™<œ<Ò'Ð'Ð'Ð'Ø••e�B¥‘m”m¥U­2­r¡]¤]Ñ3Ô3Ò3Ð3Ð3Ð3Ø�Š8ˆ8ˆ8ˆ8Ý��C‰=Œ=�D  b™MœMÒ)Ð)Ð)Ð)Ý��C‰=Œ=˜BÒÐÐÐØ�ˆ8ˆ8ˆ8ˆ8Ø�Rˆ<ˆ<ˆ<ˆ<Ø•�b˜#‘”ÐÐÐÐÝ�u�Q˜‰{Œ{�E ! Q™KœKÑ(Ô(­Cµ°a¸±´½UÀ1Àa¹[¼[Ñ,IÔ,IÐIÐIÐIÐIÝ�u�Q˜‰{Œ{�E ! Q™KœKÑ(Ô(­Cµ°a¸±´½UÀ1Àa¹[¼[Ñ,IÔ,IÐIÐIÐIÐIÝ�u�Q˜‰{Œ{�E ! Q™KœKÑ(Ô(Ô3µq´vÒ=Ð=Ð=Ð=Ý�u�Q˜‰{Œ{�E ! Q™KœKÑ(Ô(Ô3µq´zÒAÐAÐAÐAÝ�u�Q˜‰{Œ{�E " a™LœLÑ)Ô)Ô4½Ô8JÒJÐJÐJÐJÝ�u�Q˜‰{Œ{�E ! Q™KœKÑ(Ô(Ô3µq´vÒ=Ð=Ð=Ð=Ý�u�Q˜‰{Œ{�E ! Q™KœKÑ(Ô(Ô3µq´zÒAÐAÐAÐAÝ�u�Q˜‰{Œ{�E ! R™LœLÑ)Ô)Ô4½Ô8JÒJÐJÐJÐJØ�"ˆH˜ÐÐÐÐÝ�2�r‰?Œ?˜bÐ Ð Ð Ð Ý�u•R�‰}Œ}�e¥B¨­B©Ñ/Ô/Ñ0Ô0µC¸½EÀ"Àa¹L¼LÑ4IÔ4IÒIÐIÐIÐIÝ�2�r‰?Œ?Ô#¥u­Q¬VµQ´VÑ'<Ô'<Ò<Ð<Ð<Ð<Ý�2•u�b˜S¥"‘~”~Ñ&Ô&Ô-µ°a½2À¹7±mÑ1DÔ1DÒDÐDÐDÐDàŒ8�qŠ=ˆ=ˆ=ˆ=ØŒ8•rˆ>ˆ>ˆ>ˆ>ØŒ8�qŠ=ˆ=ˆ=ˆ=Ý�•E˜!˜Q‘K”KÑ Ô Ô&­"Ð,Ð,Ð,Ð,Ý�”	˜2Ÿ?š?Ñ,Ô,Ñ-Ô-Ô3°r´xÒ?Ð?Ð?Ð?Ý�”	˜2Ÿ?š?Ñ,Ô,Ñ-Ô-Ô3°r´xÒ?Ð?Ð?Ð?Ý•5˜˜B‘<”<¥¨­U°1°a©[¬[Ñ!9Ô!9×!FÒ!FÑ!HÔ!HÑIÔIÔOÕSZÐ[]Õ_dÐefÐhiÑ_jÔ_jÑSkÔSkÔSqÒqÐqÐqÐqàŒ?˜iÒ'Ð'Ð'Ð'Ý•!�•Q��1˜"˜q™&¥! a¡%˜Ñ)Ô)Ô6¸)ÒCÐCÐCÐCÝ�•E˜!˜Q‘K”KÑ Ô Ô-°Ò:Ð:Ð:Ð:åˆF�!ÐÑÔ€AØ�6Š6•!�Q�‘V˜a‘ZÑ Ô ¥C¨°Ñ$8Ô$8Ò8Ð8Ð8Ð8Ø�6Š6•!�Q�‘V˜a‘ZÑ Ô ¥C¨°Ñ$9Ô$9Ò9Ð9Ð9Ð9Ø�6Š6•!•b�S˜1‘WÑÔ¥ V¨WÑ!5Ô!5Ò5Ð5Ð5Ð5Ø�6Š6•!•R˜!‘VÑÔ¥ F¨FÑ 3Ô 3Ò3Ð3Ð3Ð3Ø�6Š6•!•b�S˜1‘WÑÔ¥ V¨WÑ!5Ô!5Ò5Ð5Ð5Ð5å�Q˜‰{Œ{ð 'ð 'ˆØ�ŠÑ Ô  BÐ&Ð&Ð&Ð&Ð&àŒ6�R”TŠ>ˆ>˜dœf¨¬šn˜n˜nÐ,ØŒ6�R”TŠ>ˆ>˜dœf¨¬šn˜n˜nÐ,ØŒ4�4”6Ð"Ð"Ò"Ð"˜SœUÒ"Ð"Ð"Ð"Ð" r¤t¨t¬vÐ'>Ð'>Ò'>Ð'>¸¼Ò'>Ð'>Ð'>Ð'>Ð'>Ð>Ý�‰8Œ8•t�G C¨Ñ,Ô,Ñ-Ô-Ò-Ð-Ð-Ð-à×ÒÑÔ¥! Q¨ Ò*Ð*Ð*Ð*Ý��C‰=Œ=×&Ò&Ñ(Ô(­Q°°A¨JÒ6Ð6Ð6Ð6Ýˆv�R !™VÐ$Ñ$Ô$×2Ò2Ñ4Ô4½¸A¸r¸
ÒBÐBÐBÐBÐBÐBrC   c            
      óþ  — t          ddd¦  «        } t          ddd¦  «        }t          t          t          t          ¦  «        }t          t          dt          z   d¦  «        }t          | |¦  «        }t          ||¦  «        }t          | t          ddd¦  «        ¦  «        }t          | |¦  «        }t	          | |¦  «        }t          dg d¢¬¦  «        t          t          ddd¦  «        t          dd	d¦  «        ¦  «        k    sJ ‚t          dg d
¢¬¦  «        t          t          ddd¦  «        t          ddd¦  «        ¦  «        k    sJ ‚t          dg d¢¬¦  «        t          t          ddd¦  «        t          ddd	¦  «        ¦  «        k    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «        j        g d¢k    sJ ‚t          t          | t          ddd¦  «        ¦  «        ¦  «        t          | t          ddd¦  «        ¦  «        k    sJ ‚t          t          t          ddd¦  «        t          ddd¦  «        ¦  «        ¦  «        t          | t          ddd¦  «        ¦  «        k    sJ ‚t          | |¦  «        t          || ¦  «        k    sJ ‚||k    sJ ‚|t          |t          t          t          t          ¦  «        ¦  «        k    sJ ‚||k    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «        t          t          ddd¦  «        t          ddd¦  «        ¦  «        v sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «        t          t          ddd¦  «        t          ddd¦  «        ¦  «        v sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «        j        t          j	        k    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «        j
        t          j	        k    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «        j        t          j	        k    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «        j        t          j        k    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «        j
        t          j        k    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «        j        t          j        k    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «        j        t          j        k    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «        j
        t          j        k    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «        j        t          j        k    sJ ‚| |v sJ ‚| |vsJ ‚|j        g d¢k    sJ ‚|j        t          t          j        t          j        t          j        ¦  «        k    sJ ‚t          | t          ddd¦  «        ¦  «        j        t          j        u sJ ‚d S )Nr   r6   r8   r7   ri   rm   rk   r4   rR   )r6   r7   r…   r<   r„   é   rj   r£   r    )r   r,   r   r   r   Údirection_cosiner-   r¬   r   r®   r°   Ú
zdirectionr¯   r­   rl   rr   rs   )	r~   r·   Úp3Úp5rv   r»   r½   Úr3r¿   s	            r@   Útest_basic_properties_3drË   ü   sâ  € Ý	��A�qÑ	Ô	€BÝ	��A�qÑ	Ô	€BÝ	••R�Ñ	Ô	€BÝ	•�Q�‘V˜QÑ	Ô	€Bå	��B‰Œ€BÝ	��B‰Œ€Bå	ˆr•7˜2˜q !Ñ$Ô$Ñ	%Ô	%€BÝ	ˆr�2‰Œ€Bå	�2�rÑ	Ô	€Bå�)¨Y¨Y¨YÐ7Ñ7Ô7½6Å'È!ÈQÐPQÑBRÔBRÕT[Ð\]Ð_`ÐbcÑTdÔTdÑ;eÔ;eÒeÐeÐeÐeÝ�)¨Y¨Y¨YÐ7Ñ7Ô7½6Å'È!ÈQÐPQÑBRÔBRÕT[Ð\]Ð_`ÐbcÑTdÔTdÑ;eÔ;eÒeÐeÐeÐeÝ�)¨Y¨Y¨YÐ7Ñ7Ô7½6Å'È!ÈQÐPQÑBRÔBRÕT[Ð\]Ð_`ÐbcÑTdÔTdÑ;eÔ;eÒeÐeÐeÐeÝ•'˜!˜Q Ñ"Ô"¥G¨A¨q°!Ñ$4Ô$4Ñ5Ô5ÔFÈ)È)È)ÒSÐSÐSÐSÝ•&˜�W Q¨¨1Ñ-Ô-Ñ.Ô.Ñ/Ô/µ6¸"½gÀaÈÈAÑ>NÔ>NÑ3OÔ3OÒOÐOÐOÐOÝ•�  1 aÑ(Ô(­'°!°Q¸Ñ*:Ô*:Ñ;Ô;Ñ<Ô<ÅÀbÍ'ÐRSÐUVÐXYÑJZÔJZÑ@[Ô@[Ò[Ð[Ð[Ð[Ý�"�b‰>Œ>�V B¨™^œ^Ò+Ð+Ð+Ð+Ø�Š8ˆ8ˆ8ˆ8Ø•˜�G¥B­­BÑ/Ô/Ñ0Ô0Ò0Ð0Ð0Ð0Ø�Š8ˆ8ˆ8ˆ8Ý•˜˜A˜qÑ!Ô!¥7¨1¨a°Ñ#3Ô#3Ñ4Ô4½½gÀaÈÈAÑ>NÔ>NÕPWÐXYÐ[\Ð^_ÑP`ÔP`Ñ8aÔ8aÐaÐaÐaÐaÝ•˜˜A˜qÑ!Ô!¥7¨1¨a°Ñ#3Ô#3Ñ4Ô4½½gÀaÈÈAÑ>NÔ>NÕPWÐXYÐ[\Ð^_ÑP`ÔP`Ñ8aÔ8aÐaÐaÐaÐaÝ•˜˜A˜qÑ!Ô!¥7¨1¨a°Ñ#3Ô#3Ñ4Ô4Ô?Å1Ä:ÒMÐMÐMÐMÝ•˜˜A˜qÑ!Ô!¥7¨1¨a°Ñ#3Ô#3Ñ4Ô4Ô?Å1Ä:ÒMÐMÐMÐMÝ•˜˜A˜qÑ!Ô!¥7¨1¨a°Ñ#3Ô#3Ñ4Ô4Ô?Å1Ä:ÒMÐMÐMÐMÝ•˜˜A˜qÑ!Ô!¥7¨2¨q°!Ñ#4Ô#4Ñ5Ô5Ô@ÅAÔDVÒVÐVÐVÐVÝ•˜˜A˜qÑ!Ô!¥7¨1¨b°!Ñ#4Ô#4Ñ5Ô5Ô@ÅAÔDVÒVÐVÐVÐVÝ•˜˜A˜qÑ!Ô!¥7¨1¨a°Ñ#4Ô#4Ñ5Ô5Ô@ÅAÔDVÒVÐVÐVÐVÝ•˜˜A˜qÑ!Ô!¥7¨1¨a°Ñ#3Ô#3Ñ4Ô4Ô?Å1Ä6ÒIÐIÐIÐIÝ•˜˜A˜qÑ!Ô!¥7¨1¨a°Ñ#3Ô#3Ñ4Ô4Ô?Å1Ä6ÒIÐIÐIÐIÝ•˜˜A˜qÑ!Ô!¥7¨1¨a°Ñ#3Ô#3Ñ4Ô4Ô?Å1Ä6ÒIÐIÐIÐIØ�ˆ8ˆ8ˆ8ˆ8Ø�Rˆ<ˆ<ˆ<ˆ<àÔ   Ò*Ð*Ð*Ð*àŒ;�'¥!¤&­!¬&µ!´&Ñ9Ô9Ò9Ð9Ð9Ð9å�•W˜Q  2Ñ&Ô&Ñ'Ô'Ô2µaÔ6HÐHÐHÐHÐHÐHÐHrC   c            
      óD  — t          dd¦  «        } t          | t          dd¦  «        ¦  «        }t          | t          ddd¦  «        ¦  «        }t          | t          ddd¦  «        ¦  «        }t          | t          ddd¦  «        ¦  «        }t	          t          dd¦  «        t          dd¦  «        ¦  «        }t          dt
          t          z   dz  ¦  «        t          dt
          fdt          f¦  «        v sJ ‚t          t
          t          z   dz  d¦  «        t          t
          dft          df¦  «        v sJ ‚t          ddd¦  «        t          dd¦  «        v sJ ‚t          ddd¦  «        t          dd¦  «        v sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «         	                    g ¦  «        d	u sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «         	                    t          t          ddd¦  «        t          ddd¦  «        ¦  «        ¦  «        d
u sJ ‚| 	                    t          dd¦  «        ¦  «        d	u sJ ‚| 	                    d¦  «        d	u sJ ‚| 	                    d¦  «        d
u sJ ‚| 	                    | ¦  «        d	u sJ ‚| 	                    d¦  «        d	u sJ ‚| 	                    d¦  «        d
u sJ ‚| 	                    t          dd¦  «        ¦  «        d	u sJ ‚| 	                    t          dd¦  «        ¦  «        d
u sJ ‚| 	                    t          dd¦  «        ¦  «        d	u sJ ‚| 	                    t          dd¦  «        ¦  «        d
u sJ ‚| 	                    t          | t          ddd¦  «        ¦  «        ¦  «        d	u sJ ‚| 	                    t          t          ddd¦  «        t          ddd¦  «        ¦  «        ¦  «        d
u sJ ‚| 	                    t          ddd¦  «        ¦  «        d	u sJ ‚| 	                    t          ddd¦  «        ¦  «        d	u sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «         	                    g ¦  «        d
u sJ ‚t          dt          t          t          f¦  «         	                    dt          z  dt          z  dt          z  f¦  «        sJ ‚t          t          d
¬¦  «        5  t          | t          ddd¦  «        ¦  «         	                    t          dd¦  «        ¦  «        d
u sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          t          d
¬¦  «        5  | 	                    t          dd¦  «        ¦  «        d
u sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr   rR   r8   r6   r4   r<   r¡   r£   TFr¥   rZ   rg   )r6   r4   rŸ   r]   )r<   r7   )r4   r4   )r4   r7   éöÿÿÿ©r   r   r   ©Útest_stacklevelç      ð?)r   r   r   r   r   r2   r3   r   r   r†   r   r&   r)   r*   r%   ÚUserWarning)r~   rÁ   r½   r¾   rÊ   Úls         r@   Útest_containsrÔ   )  sò  € Ý	ˆq�!‰Œ€BåˆB•�a˜‘”ÑÔ€AÝ	ˆr•7˜1˜a Ñ$Ô$Ñ	%Ô	%€BÝ	ˆr•7˜1˜a Ñ#Ô#Ñ	$Ô	$€BÝ	ˆr•7˜1˜a Ñ#Ô#Ñ	$Ô	$€Bå�U�1�a‰[Œ[�%  1™+œ+Ñ&Ô&€Aå�•Q�‘U˜a‘KÑ Ô ¥G¨Qµ¨F°Q½°FÑ$;Ô$;Ð;Ð;Ð;Ð;Ý•!•a‘%˜1‘˜aÑ Ô ¥G­Q°¨FµQ¸°FÑ$;Ô$;Ð;Ð;Ð;Ð;Ý�1�a˜ÑÔ�y¨°IÑ>Ô>Ð>Ð>Ð>Ð>Ý�1�a˜ÑÔ�y¨°IÑ>Ô>Ð>Ð>Ð>Ð>Ý•W˜Q  1Ñ%Ô%¥w¨q°!°QÑ'7Ô'7Ñ8Ô8×AÒAÀ"ÑEÔEÈÐMÐMÐMÐMÝ•W˜Q  1Ñ%Ô%¥w¨q°!°QÑ'7Ô'7Ñ8Ô8×AÒAÝ•'˜!˜Q Ñ"Ô"¥G¨A¨q°!Ñ$4Ô$4Ñ5Ô5ñ7ô 7Ø:?ð@ð @ð @ð @ð �:Š:•e˜A˜q‘k”kÑ"Ô" dÐ*Ð*Ð*Ð*Ø�:Š:�fÑÔ Ð%Ð%Ð%Ð%Ø�:Š:�fÑÔ Ð&Ð&Ð&Ð&à�:Š:�b‰>Œ>˜TÐ!Ð!Ð!Ð!Ø�:Š:�fÑÔ Ð%Ð%Ð%Ð%Ø�:Š:�fÑÔ Ð&Ð&Ð&Ð&Ø�:Š:•g˜f fÑ-Ô-Ñ.Ô.°$Ð6Ð6Ð6Ð6Ø�:Š:•g˜f fÑ-Ô-Ñ.Ô.°%Ð7Ð7Ð7Ð7Ø�:Š:•c˜& &Ñ)Ô)Ñ*Ô*¨dÐ2Ð2Ð2Ð2Ø�:Š:•c˜& &Ñ)Ô)Ñ*Ô*¨eÐ3Ð3Ð3Ð3Ø�;Š;•y ¥W¨Q°°3Ñ%7Ô%7Ñ8Ô8Ñ9Ô9¸TÐAÐAÐAÐAØ�;Š;•y¥¨¨A¨qÑ!1Ô!1µ7¸1¸aÀÑ3CÔ3CÑDÔDÑEÔEÈÐNÐNÐNÐNØ�;Š;•w˜q ! QÑ'Ô'Ñ(Ô(¨DÐ0Ð0Ð0Ð0Ø�;Š;•w˜q ! QÑ'Ô'Ñ(Ô(¨DÐ0Ð0Ð0Ð0Ý•˜˜A˜qÑ!Ô!¥7¨1¨a°Ñ#3Ô#3Ñ4Ô4×=Ò=¸bÑAÔAÀUÐJÐJÐJÐJÝ�)�a¥¥A˜YÑ'Ô'×0Ò0°!µa±%¸½Q¹ÀÅAÁÐ1FÑGÔGÐGÐGÐGÝ	�{¨EÐ	2Ñ	2Ô	2ð Oð OÝ�b�' ! Q¨Ñ*Ô*Ñ+Ô+×4Ò4µU¸3À±_´_ÑEÔEÈÐNÐNÐNÐNÐNðOð Oð Oñ Oô Oð Oð Oð Oð Oð Oð Oøøøð Oð Oð Oð Oõ 
�{¨EÐ	2Ñ	2Ô	2ð 5ð 5Ø�{Š{�5  c™?œ?Ñ+Ô+¨uÐ4Ð4Ð4Ð4Ð4ð5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5ð 5ð 5s%   Ó,AT>Ô>UÕUÕ(VÖVÖVc                  ó0  — t          d¦  «        \  } }}}t          t          | |¦  «        t          ||¦  «        ¦  «        }t          | t          dd¦  «        z  |dz  z   |t          dd¦  «        z  |dz  z   ¦  «        }|                     |¦  «        sJ ‚d S )Nz
u, v, w, zr<   r4   )r
   r   r   r   r†   )ÚuÚvÚwr*   rÓ   r˜   s         r@   Útest_contains_nonreal_symbolsrÙ   S  sŒ   € Ý˜Ñ&Ô&�J€A€qˆ!ˆQÝ•�a˜‘”�U 1 a™[œ[Ñ)Ô)€AÝˆa•˜˜A‘”Ñ  1¡Ñ$ a­°°A©¬Ñ&6¸¸1¹Ñ&<Ñ=Ô=€AØ�:Š:�a‰=Œ=ÐÐˆ=ÐÐrC   c                  óÒ  — t          dd¦  «        } t          dd¦  «        }t          j        }t          t          dd¦  «        t          dd¦  «        ¦  «        }t          t          ||¦  «        t          dd¦  «        ¦  «        }t	          | |¦  «        }|                     t          dd¦  «        ¦  «        dk    sJ ‚|                     d¦  «        dk    sJ ‚|                     t          dd¦  «        ¦  «        d|z  dz  k    sJ ‚|                     t          t          d¦  «        dz  t          d¦  «        dz  ¦  «        ¦  «        d|z  k    sJ ‚t          | |¦  «                             t          dd¦  «        ¦  «        t          d¦  «        k    sJ ‚t          | |¦  «                             t          dd¦  «        ¦  «        t          d¦  «        k    sJ ‚t          | |¦  «                             t          dd¦  «        ¦  «        dk    sJ ‚t          | |¦  «                             d¦  «        t          d¦  «        k    sJ ‚t          dd¦  «                             | ¦  «        dk    sJ ‚t          dd¦  «                             |¦  «        dk    sJ ‚t          dd	¦  «                             | ¦  «        dk    sJ ‚t          dd	¦  «                             |¦  «        dk    sJ ‚|                     t          dd¦  «        ¦  «        t          d¦  «        k    sJ ‚|                     t          dd¦  «        ¦  «        dk    sJ ‚|                     t          dd¦  «        ¦  «        t          d¦  «        k    sJ ‚t	          d
d¦  «                             t          dd¦  «        ¦  «        dt          d¦  «        z  dz  k    sJ ‚|                     d
¦  «        dk    sJ ‚d S )Nr   r6   rZ   r<   r4   r8   r¤   r¥   ©r6   r   rg   rŸ   ç      ø?rR   )	r   r   rs   r   r   r‡   r   r   r   )r~   r·   Úhalfr¿   Ús2rÁ   s         r@   Útest_distance_2drß   Z  se  € Ý	ˆq�!‰Œ€BÝ	ˆq�!‰Œ€BÝŒ6€Då	•�q˜!‘”�e A q™kœkÑ	*Ô	*€BÝ	•�t˜TÑ"Ô"¥E¨!¨Q¡K¤KÑ	0Ô	0€BåˆB�‰Œ€Aà�;Š;•u˜Q ‘{”{Ñ#Ô# qÒ(Ð(Ð(Ð(Ø�;Š;�vÑÔ !Ò#Ð#Ð#Ð#Ø�;Š;•u˜Q ‘{”{Ñ#Ô# q¨D¡y°1¡}Ò4Ð4Ð4Ð4Ø�;Š;•u�X a™[œ[¨1™_­h°q©k¬k¸A©oÑ>Ô>Ñ?Ô?À1ÈÁ9ÒLÐLÐLÐLÝ��B‰<Œ<× Ò ¥ r¨1¡¤Ñ.Ô.µ$°q±'´'Ò9Ð9Ð9Ð9Ý��B‰<Œ<× Ò ¥ q¨"¡¤Ñ.Ô.µ$°q±'´'Ò9Ð9Ð9Ð9Ý��B‰<Œ<× Ò ¥ q¨!¡¤Ñ-Ô-°Ò2Ð2Ð2Ð2Ý��B‰<Œ<× Ò  Ñ)Ô)­T°!©W¬WÒ4Ð4Ð4Ð4Ý�˜ÑÔ×(Ò(¨Ñ,Ô,°Ò1Ð1Ð1Ð1Ý�˜ÑÔ×(Ò(¨Ñ,Ô,°Ò1Ð1Ð1Ð1Ý�˜ÑÔ×(Ò(¨Ñ,Ô,°Ò1Ð1Ð1Ð1Ý�˜ÑÔ×(Ò(¨Ñ,Ô,°Ò1Ð1Ð1Ð1Ø�:Š:•e˜B ‘m”mÑ$Ô$­¨Q©¬Ò/Ð/Ð/Ð/Ø�:Š:•e˜A˜q‘k”kÑ"Ô" aÒ'Ð'Ð'Ð'Ø�:Š:•e˜B ‘l”lÑ#Ô#¥t¨A¡w¤wÒ.Ð.Ð.Ð.Ýˆv�vÑÔ×'Ò'­¨c°1©¬Ñ6Ô6¸!½dÀ1¹g¼g¹+È¹/ÒIÐIÐIÐIØ�:Š:�fÑÔ Ò"Ð"Ð"Ð"Ð"Ð"rC   c                  ó®   — t          t          d¬¦  «        5  t          dd¦  «        t          dd¦  «        k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )NFrÏ   rg   )r<   r6   r<   r¢   )r%   rÒ   r   rp   rC   r@   Útest_dimension_normalizationrá   w  sµ   € Ý	�{¨EÐ	2Ñ	2Ô	2ð Cð CÝ�6˜9Ñ%Ô%­¨Y¸	Ñ)BÔ)BÒBÐBÐBÐBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð Cð Cs   —%A
Á
AÁAc                  óŒ  — t          ddd¦  «        t          ddd¦  «        }} t          t          d¦  «        dz  t          d¦  «        dz  t          d¦  «        dz  ¦  «        }t          t          ddd¦  «        t          ddd¦  «        ¦  «        }t          t          t          j        t          j        t          j        ¦  «        t          ddd¦  «        ¦  «        }t          | |¦  «        }|                     | ¦  «        dk    sJ ‚|                     | ¦  «        t          d¦  «        dz  k    sJ ‚|                     |¦  «        dt          d¦  «        z  dz  k    sJ ‚|                     d¦  «        dk    sJ ‚|                     d¦  «        t          d¦  «        dz  k    sJ ‚|                     | ¦  «        dk    sJ ‚|                     | ¦  «        t          d¦  «        dz  k    sJ ‚|                     |¦  «        dt          d¦  «        z  dz  k    sJ ‚|                     d¦  «        dk    sJ ‚|                     d¦  «        t          d¦  «        dz  k    sJ ‚t          | |¦  «                             t          ddd¦  «        ¦  «        dt          d¦  «        z  dz  k    sJ ‚t          | |¦  «                             t          ddd¦  «        ¦  «        dt          d¦  «        z  dz  k    sJ ‚t          | |¦  «                             t          ddd¦  «        ¦  «        dk    sJ ‚t          | |¦  «                             d¦  «        dk    sJ ‚t          | |¦  «                             d	¦  «        dt          d¦  «        z  dz  k    sJ ‚t          dd
¦  «                             | ¦  «        dk    sJ ‚t          dd
¦  «                             |¦  «        t          d¦  «        k    sJ ‚t          dd¦  «                             | ¦  «        dk    sJ ‚t          dd¦  «                             |¦  «        t          d¦  «        k    sJ ‚t          dd¦  «                             t          dd¦  «        ¦  «        dk    sJ ‚t          dd¦  «                             t          dd¦  «        ¦  «        dk    sJ ‚t          dd¦  «                             t          dd¦  «        ¦  «        dk    sJ ‚t          dd¦  «                             t          d
d¦  «        ¦  «        dk    sJ ‚t          dd¦  «                             t          dd¦  «        ¦  «        dk    sJ ‚t          dd¦  «                             t          d
d
¦  «        ¦  «        dk    sJ ‚t          dd¦  «                             t          dd¦  «        ¦  «        dk    sJ ‚|                     t          ddd¦  «        ¦  «        t          d¦  «        k    sJ ‚|                     t          ddd¦  «        ¦  «        dk    sJ ‚|                     d¦  «        t          d¦  «        k    sJ ‚|                     d¦  «        dk    sJ ‚t          dd¦  «                             d¦  «        dt          d¦  «        z  dz  k    sJ ‚t          dd¦  «                             t          ddd¦  «        ¦  «        t          d¦  «        dz  k    sJ ‚t          dd¦  «                             t          ddd¦  «        ¦  «        t          d¦  «        dz  k    sJ ‚d S )Nr   r6   r4   r<   r„   rÎ   r8   )r<   r<   r<   )r6   r8   r6   r¡   r£   ©r   r6   r<   )r¨   r   r   )r¨   r6   r<   ©r   r6   r6   )r<   r   r   ©r   r   r6   )r6   r6   r4   )r8   r8   r8   ri   )r6   r6   r<   )r8   r8   r<   rR   rÜ   r;   é	   éN   )
r   r   r   r   rs   r   r‡   r   r   r    )r~   r·   rÈ   r¿   rÞ   rÁ   s         r@   Útest_distance_3drè   |  s�  € Ý�Q˜˜1ÑÔ�w q¨!¨QÑ/Ô/ˆ€BÝ	•˜!‘”˜q‘¥(¨1¡+¤+°¡/µ8¸A±;´;À±?Ñ	CÔ	C€Bå	•7˜1˜a Ñ#Ô#¥W¨Q°°1Ñ%5Ô%5Ñ	6Ô	6€BÝ	•7�1œ6¥1¤6­1¬6Ñ2Ô2µG¸A¸qÀ!Ñ4DÔ4DÑ	EÔ	E€Båˆb�"‰Œ€Aà�;Š;�r‰?Œ?˜aÒÐÐÐØ�;Š;�r‰?Œ?�d 1™gœg¨™kÒ)Ð)Ð)Ð)Ø�;Š;�r‰?Œ?˜a¥$ q¡'¤'™k¨A™oÒ-Ð-Ð-Ð-Ø�;Š;�yÑ!Ô! QÒ&Ð&Ð&Ð&Ø�;Š;�yÑ!Ô!¥T¨!¡W¤W¨q¡[Ò0Ð0Ð0Ð0Ø�;Š;�r‰?Œ?˜aÒÐÐÐØ�;Š;�r‰?Œ?�d 1™gœg¨™kÒ)Ð)Ð)Ð)Ø�;Š;�r‰?Œ?˜a¥$ q¡'¤'™k¨A™oÒ-Ð-Ð-Ð-Ø�;Š;�yÑ!Ô! QÒ&Ð&Ð&Ð&Ø�;Š;�yÑ!Ô!¥T¨!¡W¤W¨q¡[Ò0Ð0Ð0Ð0å�"�b‰>Œ>×"Ò"¥7¨2¨q°!Ñ#4Ô#4Ñ5Ô5¸½TÀ!¹W¼W¹Àq¹ÒHÐHÐHÐHÝ�"�b‰>Œ>×"Ò"¥7¨1¨b°!Ñ#4Ô#4Ñ5Ô5¸½TÀ!¹W¼W¹Àq¹ÒHÐHÐHÐHÝ�"�b‰>Œ>×"Ò"¥7¨1¨a°Ñ#3Ô#3Ñ4Ô4¸Ò9Ð9Ð9Ð9Ý�"�b‰>Œ>×"Ò" 9Ñ-Ô-°Ò2Ð2Ð2Ð2Ý�"�b‰>Œ>×"Ò" :Ñ.Ô.°!µd¸1±g´g±+À±/ÒAÐAÐAÐAÝ�)˜YÑ'Ô'×0Ò0°Ñ4Ô4¸Ò9Ð9Ð9Ð9Ý�)˜YÑ'Ô'×0Ò0°Ñ4Ô4½¸Q¹¼Ò?Ð?Ð?Ð?Ý�)˜YÑ'Ô'×0Ò0°Ñ4Ô4¸Ò9Ð9Ð9Ð9Ý�)˜YÑ'Ô'×0Ò0°Ñ4Ô4½¸Q¹¼Ò?Ð?Ð?Ð?å�)˜YÑ'Ô'×0Ò0µ¸	À9Ñ1MÔ1MÑNÔNÐRSÒSÐSÐSÐSÝ�)˜YÑ'Ô'×0Ò0µ¸	À9Ñ1MÔ1MÑNÔNÐRSÒSÐSÐSÐSÝ�)˜YÑ'Ô'×0Ò0µ¸
ÀJÑ1OÔ1OÑPÔPÐTUÒUÐUÐUÐUÝ�)˜YÑ'Ô'×0Ò0µ¸	À9Ñ1MÔ1MÑNÔNÐRSÒSÐSÐSÐSå�)˜YÑ'Ô'×0Ò0µ°yÀ)Ñ1LÔ1LÑMÔMÐQRÒRÐRÐRÐRÝ�)˜YÑ'Ô'×0Ò0µ°yÀ)Ñ1LÔ1LÑMÔMÐQRÒRÐRÐRÐRÝ�)˜YÑ'Ô'×0Ò0µ°yÀ)Ñ1LÔ1LÑMÔMÐQRÒRÐRÐRÐRà�:Š:•g˜b " bÑ)Ô)Ñ*Ô*­d°1©g¬gÒ5Ð5Ð5Ð5Ø�:Š:•g˜a  AÑ&Ô&Ñ'Ô'¨1Ò,Ð,Ð,Ð,Ø�:Š:�lÑ#Ô#¥t¨A¡w¤wÒ.Ð.Ð.Ð.Ø�:Š:�iÑ Ô  AÒ%Ð%Ð%Ð%Ý�˜IÑ&Ô&×/Ò/°Ñ<Ô<ÀÅDÈÁGÄGÁÈaÁÒOÐOÐOÐOÝ�˜IÑ&Ô&×/Ò/µ¸¸RÀÑ0DÔ0DÑEÔEÍÐRSÉÌÐWXÉÒXÐXÐXÐXÝ�˜IÑ&Ô&×/Ò/µ¸¸QÀÑ0BÔ0BÑCÔCÅtÈBÁxÄxÐRSÁ|ÒSÐSÐSÐSÐSÐSrC   c            
      ó8  — t          dd¦  «        } t          dd¦  «        }t          | |¦  «        }t          dt          ¬¦  «        }t          t          t          t          ¦  «        t          t          dt          z   ¦  «        ¦  «        }|                     | j        ¦  «                             t          t          dd¦  «        t          dd¦  «        ¦  «        ¦  «        sJ ‚|                     | ¦  «                             t          t          dd¦  «        t          dd¦  «        ¦  «        ¦  «        sJ ‚t          t          t          t          ¦  «        t          t          t          ¦  «        ¦  «                             t          t           t          ¦  «        ¦  «                             t          t          t           t          ¦  «        t          t           dt          z  t          z
  ¦  «        ¦  «        ¦  «        sJ ‚|                     | j        ¦  «                             t          t          dd¦  «        t          dd¦  «        ¦  «        ¦  «        sJ ‚|                     | ¦  «                             t          t          dd¦  «        t          dd¦  «        ¦  «        ¦  «        sJ ‚| 	                    t          dd¦  «        ¦  «        dt          t          dz   ¦  «        z  t          t          dz  dz   ¦  «        z  z
                       d¦  «        sJ ‚t          | t          ddd¦  «        ¦  «                             t          dd¦  «        ¦  «        d	u sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «                             t          t          d
dd¦  «        t          ddd¦  «        ¦  «        ¦  «        du sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «                             t          | t          ddd¦  «        ¦  «        ¦  «        d	u sJ ‚t          | t          ddd¦  «        ¦  «                             t          dd¦  «        ¦  «        d	u sJ ‚t          | t          ddd¦  «        ¦  «                             t          | t          ddd¦  «        ¦  «        ¦  «        du sJ ‚t          dt          t          f¦  «                             t          ddd¦  «        ¦  «                             t          t          ddd¦  «        t          t           j        t           j        d¦  «        ¦  «        ¦  «        sJ ‚t          dt          t          f¦  «                             t          ddd¦  «        ¦  «                             t'          dt           j        t           j        f¦  «        ¦  «        sJ ‚t          | t          ddd¦  «        ¦  «                             t          dd¦  «        ¦  «        d	u sJ ‚d S )Nr   r6   )r   r7   r�   r8   r<   r4   rÑ   Fr§   TrZ   r¥   )r   r   r0   r,   rŠ   Úargsrˆ   r-   r‰   r‡   Úabsr   r   r   r   r.   r   rs   rq   r   )r~   r·   rv   rw   r»   s        r@   Útest_equalsrì   ¬  sÓ  € Ý	ˆq�!‰Œ€BÝ	ˆq�!‰Œ€Bå	ˆb�"‰Œ€BÝ	ˆf�AÐ	Ñ	Ô	€BÝ	�e•B�‰mŒm�U¥2 q­2¡vÑ.Ô.Ñ	/Ô	/€Bà× Ò  ¤Ñ)Ô)×0Ò0µµe¸A¸q±k´kÅ5ÈÈBÁ<Ä<Ñ1PÔ1PÑQÔQÐQÐQÐQØ× Ò  Ñ$Ô$×+Ò+­Dµ°q¸!±´½eÀAÀr¹l¼lÑ,KÔ,KÑLÔLÐLÐLÐLÝ••b�"‘”�u¥R­™}œ}Ñ-Ô-×;Ò;½EÅ2À#År¹N¼NÑKÔKßŠ�t•E�2˜#�r‘N”N¥E­2¨#¨qµ2©v½©{Ñ$;Ô$;Ñ<Ô<Ñ=Ô=ð>ð >ð >à×Ò˜BœGÑ$Ô$×+Ò+­Dµ°q¸!±´½eÀAÀr¹l¼lÑ,KÔ,KÑLÔLÐLÐLÐLØ×Ò˜BÑÔ×&Ò&¥t­E°!°Q©K¬K½¸qÀ"¹¼Ñ'FÔ'FÑGÔGÐGÐGÐGØ�KŠK�˜a ™œÑ$Ô$ q­3­q°1©u©:¬:¡~½½QÀ!¹VÀa¹ZÑ8HÔ8HÑ'HÑH×PÒPÐQRÑSÔSÐSÐSÐSÝ�"•g˜a  AÑ&Ô&Ñ'Ô'×.Ò.­u°S¸#©¬Ñ?Ô?À5ÐHÐHÐHÐHÝ•'˜!˜Q Ñ"Ô"¥G¨A¨q°!Ñ$4Ô$4Ñ5Ô5×<Ò<½VÅGÈBÐPQÐSTÑDUÔDUÕW^Ð_aÐcdÐfgÑWhÔWhÑ=iÔ=iÑjÔjÐnrÐrÐrÐrÐrÝ•'˜!˜Q Ñ"Ô"¥G¨A¨q°!Ñ$4Ô$4Ñ5Ô5×<Ò<½VÀBÍÐPQÐSTÐVWÑHXÔHXÑ=YÔ=YÑZÔZÐ^cÐcÐcÐcÐcÝ�•W˜Q  2Ñ&Ô&Ñ'Ô'×.Ò.­u°S¸#©¬Ñ?Ô?À5ÐHÐHÐHÐHÝ�•W˜Q  2Ñ&Ô&Ñ'Ô'×.Ò.­u°R½ÀÀAÀrÑ9JÔ9JÑ/KÔ/KÑLÔLÐPTÐTÐTÐTÐTÝ�&�1�a˜&Ñ!Ô!×4Ò4µU¸1¸aÀ±^´^ÑDÔD×KÒKÝ�w�q˜!˜QÑÔ¥­¬µ´¸Ñ!;Ô!;Ñ<Ô<ñ>ô >ð >ð >ð >å�&�1�a˜&Ñ!Ô!×7Ò7½¸aÀÀA¹¼ÑGÔG×NÒNÍyÐY_ÕbcÔbhÕjkÔjpÐaqÑOrÔOrÑsÔsÐsÐsÐsÝ�"•g˜a  AÑ&Ô&Ñ'Ô'×.Ò.­u°S¸#©¬Ñ?Ô?À5ÐHÐHÐHÐHÐHÐHrC   c                  ó<  — t          dd¦  «        } t          dd¦  «        }t          | |¦  «        }t          t          t          t          ¦  «        t          t          dt          z   ¦  «        ¦  «        }t          |                     ¦   «         ¦  «        t
          t          z
  t          t
          z
  fv sJ ‚t          |                     ¦   «         ¦  «        t
          t          z
  t          t
          z
  fv sJ ‚t          |                     ¦   «         ¦  «        t
          t          z
  t          t
          z
  fv sJ ‚t          |                     ¦   «         ¦  «        t
          t          z
  t          t
          z
  fv sJ ‚t          | t          dd¦  «        ¦  «                             t
          t          ¬¦  «        t          k    sJ ‚t          | t          dd¦  «        ¦  «                             ¦   «         t
          k    sJ ‚t          t          dd¦  «        t          dd¦  «        ¦  «                             ¦   «         t
          dz
  k    sJ ‚t          |t          dd¦  «        ¦  «                             ¦   «         t          dz
  k    sJ ‚t          t          t          t          t          ¦  «        t          t          t          t          ¦  «        ¦  «                             ¦   «         t
           t          z   t
           t          z   fk    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «                             ¦   «         t
           t          z   dz
  t
           t          z   dz
  fk    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «                             ¦   «         t
          dz
  t           t          z   dz
  fk    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «                             ¦   «         t          dz
  t
           t          z   dz
  fk    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «                             ¦   «         t
           t          z   dz
  t          dz
  fk    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «                             ¦   «         t
          dz
  t          dz
  fk    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «                             ¦   «         t
          dz
  t          dz
  fk    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «                             ¦   «         t          dz
  t          dz
  fk    sJ ‚d S )Nr   r6   r:   r<   r4   rR   )
r   r   r,   r   Úequationr&   r)   r   r-   r*   )r~   r·   rv   r»   s       r@   Útest_equationrï   Æ  sŒ  € Ý	ˆq�!‰Œ€BÝ	ˆq�!‰Œ€BÝ	ˆb�"‰Œ€BÝ	�e•B�‰mŒm�U¥2 q­2¡vÑ.Ô.Ñ	/Ô	/€Bå�B—K’K‘M”MÑ"Ô"¥q­1¡u­aµ!©e nÐ4Ð4Ð4Ð4Ý�B—K’K‘M”MÑ"Ô"¥q­2¡v­rµA©vÐ&6Ð6Ð6Ð6Ð6Ý�B—K’K‘M”MÑ"Ô"¥q­1¡u­aµ!©e nÐ4Ð4Ð4Ð4Ý�B—K’K‘M”MÑ"Ô"¥q­2¡v­rµA©vÐ&6Ð6Ð6Ð6Ð6å�•E˜!˜Q‘K”KÑ Ô ×)Ò)­AµÐ)Ñ3Ô3µqÒ8Ð8Ð8Ð8Ý�•E˜!˜Q‘K”KÑ Ô ×)Ò)Ñ+Ô+­qÒ0Ð0Ð0Ð0Ý•�a˜‘”�U 1 a™[œ[Ñ)Ô)×2Ò2Ñ4Ô4½¸A¹Ò=Ð=Ð=Ð=Ý�•E˜!˜Q‘K”KÑ Ô ×)Ò)Ñ+Ô+­q°1©uÒ4Ð4Ð4Ð4å•%��B¥Ñ#Ô#¥U­2­rµ2Ñ%6Ô%6ñ 
ô 
ß
Š(‰*Œ*�!˜�a™¥! ¥a¡Ð(ò)ð )ð )ð )å•%˜˜1˜a‘.”.¥%¨¨1¨a¡.¤.ñ 
ô 
ß
Š(‰*Œ*�!˜�a™ !™¥a R­!¡V¨a¡ZÐ0ò1ð 1ð 1ð 1å•%˜˜1˜a‘.”.¥%¨¨1¨a¡.¤.ñ 
ô 
ß
Š(‰*Œ*�˜Q™¥ ¥Q¡¨¡
Ð+ò,ð ,ð ,ð ,å•%˜˜1˜a‘.”.¥%¨¨1¨a¡.¤.ñ 
ô 
ß
Š(‰*Œ*�˜Q™¥ ¥Q¡¨¡
Ð+ò,ð ,ð ,ð ,å•%˜˜1˜a‘.”.¥%¨¨1¨a¡.¤.ñ 
ô 
ß
Š(‰*Œ*�!˜�a™ !™¥Q¨¡UÐ+ò,ð ,ð ,ð ,å•%˜˜1˜a‘.”.¥%¨¨1¨a¡.¤.ñ 
ô 
ß
Š(‰*Œ*�˜Q™¥ A¡˜ò'ð 'ð 'ð 'å•%˜˜1˜a‘.”.¥%¨¨1¨a¡.¤.ñ 
ô 
ß
Š(‰*Œ*�˜Q™¥ A¡˜ò'ð 'ð 'ð 'å•%˜˜1˜a‘.”.¥%¨¨1¨a¡.¤.ñ 
ô 
ß
Š(‰*Œ*�˜Q™¥ A¡˜ò'ð 'ð 'ð 'ð 'ð 'rC   c                  ó2  — t          dd¦  «        } t          dd¦  «        }t          t          t          ¦  «        }t          t          t          ¦  «        }t          | |¦  «        }t          t          dd¦  «        t          dd¦  «        ¦  «        }t	          t          dd¦  «        t          dd¦  «        ¦  «        }t	          t          dd¦  «        t          dd¦  «        ¦  «        }t	          | |¦  «        }t	          t          dd¦  «        t          dd¦  «        ¦  «        }	t	          t          dd¦  «        t          dd¦  «        ¦  «        }
t          | |¦  «        }t          t          dd¦  «        t          dd¦  «        ¦  «        }t          t          dd¦  «        t          dd¦  «        ¦  «        }t          || ¦  «        | gk    sJ ‚t          |t          t          dt          z   ¦  «        ¦  «        g k    sJ ‚t          |t          ||¦  «        ¦  «        |gt          ||¦  «        gfv sJ ‚t          ||                     t          t          dt          z   ¦  «        ¦  «        ¦  «        g k    sJ ‚t          ||¦  «        |gk    sJ ‚t          ||¦  «        |gk    sJ ‚t          ||¦  «        |gk    sJ ‚t          ||¦  «        |gk    sJ ‚t          t          t          dd	¦  «        t          d	d	¦  «        ¦  «        t          t          d
d
¦  «        t          d
d¦  «        ¦  «        ¦  «        g k    sJ ‚t          ||¦  «        |gk    sJ ‚t          |t	          t          dd¦  «        t          dd¦  «        ¦  «        ¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        gk    sJ ‚t          |t	          t          dd¦  «        t          dd¦  «        ¦  «        ¦  «        t          dd¦  «        gk    sJ ‚t          |t          t          dd¦  «        t          dd¦  «        ¦  «        ¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        gk    sJ ‚|                     |¦  «        |gk    sJ ‚|                     t          t          dd¦  «        t          dd¦  «        ¦  «        ¦  «        g k    sJ ‚|                     t          t          dd¦  «        t          dd¦  «        ¦  «        ¦  «        t          | t          dd¦  «        ¦  «        gk    sJ ‚|                     t	          || ¦  «        ¦  «        |gk    sJ ‚t	          || ¦  «                             |	¦  «        g k    sJ ‚|                     |
¦  «        |
                     |¦  «        cxk    r|
gk    sn J ‚t          dd¦  «                             t          dd¦  «        ¦  «        t          dd¦  «        gk    sJ ‚t          dd¦  «                             t          dd¦  «        ¦  «        t          dd¦  «        gk    sJ ‚t	          t          dd¦  «        t          dd¦  «        ¦  «                             t	          t          dd¦  «        t          dd¦  «        ¦  «        ¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        gk    sJ ‚t          dd¦  «                             t          dd¦  «        ¦  «        t          dd¦  «        gk    sJ ‚t          dd¦  «                             t          dd¦  «        ¦  «        t          dd¦  «        gk    sJ ‚t          dd¦  «                             t          dd¦  «        ¦  «        t          d¦  «        gk    sJ ‚t          dd¦  «                             t          dd¦  «        ¦  «        t          dd¦  «        gk    sJ ‚t          dd¦  «                             t          dd¦  «        ¦  «        t          dd¦  «        gk    sJ ‚t          dd¦  «                             t          dd¦  «        ¦  «        t          dd¦  «        gk    sJ ‚|                     t          t          dd¦  «        t          dd¦  «        ¦  «        ¦  «        t          dd¦  «        gk    sJ ‚|                     t          t          dd¦  «        t          dd¦  «        ¦  «        ¦  «        t          t          dd¦  «        |¦  «        gk    sJ ‚|                     t          t          dd¦  «        t          dd¦  «        ¦  «        ¦  «        g k    sJ ‚|                     t          t          dd¦  «        | ¦  «        ¦  «        | gk    sJ ‚|                     t          t          dd¦  «        t          dd¦  «        ¦  «        ¦  «        t          | t          dd¦  «        ¦  «        gk    sJ ‚|                     t          t          dd¦  «        t          dd¦  «        ¦  «        ¦  «        g k    sJ ‚|                     |¦  «        |gk    sJ ‚|                     |¦  «        |gk    sJ ‚t          ddd¦  «        t          t          dd¦  «        t          dd¦  «        t          dt          dt          z  dz  ¦  «        z  t          dt          z  dz  ¦  «        z  dt!          d¦  «        z  t          dt          z  dz  ¦  «        z  t          dt          z  dz  ¦  «        z  ¦  «        ¦  «        k    sJ ‚t          dd¦  «                             t	          dd¦  «        ¦  «        t          dd¦  «        gk    sJ ‚t          dd¦  «                             t          dd¦  «        ¦  «        t          dd¦  «        gk    sJ ‚t	          dd¦  «                             t	          dd¦  «        ¦  «        t          dd¦  «        gk    sJ ‚t	          dd¦  «                             t          dd¦  «        ¦  «        t          dd¦  «        gk    sJ ‚t	          dd¦  «                             t          dd¦  «        ¦  «        d u sJ ‚t          dd¦  «        t          dd¦  «        v sJ ‚|                     t	          dd!¦  «        ¦  «        t          dd¦  «        gk    sJ ‚d S )"Nr   r6   r4   rR   r<   ç      à?g      Ð?rÍ   r¨   r§   r7   r8   rZ   )r4   r   rÛ   )r<   r   )rR   r   )r7   r   ©r    r   rÜ   éx   rÅ   é4   r9   é   éZ   é-   rg   r]   )r¨   r¨   rŸ   T)rR   rR   )r   r,   r-   r   r   r   r   r‰   r   r   r   Úasar   r   r   r   r   r†   )r~   r·   rÈ   Úp4rv   r»   r½   r¾   Úr4Úr6Úr7r¿   rÞ   Ús3s                 r@   Útest_intersection_2drþ   è  sÖ  € Ý	ˆq�!‰Œ€BÝ	ˆq�!‰Œ€BÝ	�r•2‰Œ€BÝ	�r•2‰Œ€Bå	ˆb�"‰Œ€BÝ	�e�A�q‰kŒk�5  A™;œ;Ñ	'Ô	'€Bå	�U�1�a‰[Œ[�%  1™+œ+Ñ	&Ô	&€BÝ	�U�1�a‰[Œ[�%  1™+œ+Ñ	&Ô	&€BÝ	ˆR�‰Œ€BÝ	�U�1�a‰[Œ[�%  1™+œ+Ñ	&Ô	&€BÝ	�U�3˜‰_Œ_�e A q™kœkÑ	*Ô	*€Bå	��R‰Œ€BÝ	•�t˜TÑ"Ô"¥E¨#¨s¡O¤OÑ	4Ô	4€BÝ	•�q˜!‘”�e A q™kœkÑ	*Ô	*€Bå˜˜BÑÔ B 4Ò'Ð'Ð'Ð'Ý˜�E¥" a­"¡fÑ-Ô-Ñ.Ô.°"Ò4Ð4Ð4Ð4Ý˜�D  R™LœLÑ)Ô)¨r¨dµT¸"¸b±\´\°NÐ-CÐCÐCÐCÐCÝ˜˜B×,Ò,­Uµ2°q½2±vÑ->Ô->Ñ?Ô?Ñ@Ô@ÀBÒFÐFÐFÐFÝ˜˜BÑÔ B 4Ò'Ð'Ð'Ð'Ý˜˜BÑÔ B 4Ò'Ð'Ð'Ð'Ý˜˜BÑÔ B 4Ò'Ð'Ð'Ð'Ý˜˜BÑÔ B 4Ò'Ð'Ð'Ð'Ý�¥ c¨2¡¤µ°b¸"±´Ñ>Ô>ÅÍÈbÐRTÉÌÕW\Ð]_ÐabÑWcÔWcÑ@dÔ@dÑeÔeÐikÒkÐkÐkÐkÝ˜˜BÑÔ B 4Ò'Ð'Ð'Ð'Ý˜�C¥ a¨¡¤­U°1°a©[¬[Ñ9Ô9Ñ:Ô:½wÅuÈQÐPQÁ{Ä{ÕTYÐZ[Ð]^ÑT_ÔT_Ñ?`Ô?`Ð>aÒaÐaÐaÐaÝ˜�C¥ a¨¡¤­U°2°r©]¬]Ñ;Ô;Ñ<Ô<ÅÀqÈ!ÁÄÀÒMÐMÐMÐMÝ˜�G¥E¨!¨Q¡K¤Kµ°q¸!±´Ñ=Ô=Ñ>Ô>Å7Í5ÐQRÐTUÉ;Ì;ÕX]Ð^_ÐabÑXcÔXcÑCdÔCdÐBeÒeÐeÐeÐeà�?Š?˜2ÑÔ 2 $Ò&Ð&Ð&Ð&Ø�?Š?�7¥5¨¨A¡;¤;µ°a¸±´Ñ<Ô<Ñ=Ô=ÀÒCÐCÐCÐCØ�?Š?�7¥5¨¨R¡=¤=µ%¸¸S±/´/ÑBÔBÑCÔCÍÐPRÕTYÐZ]Ð_bÑTcÔTcÑHdÔHdÐGeÒeÐeÐeÐeØ�?Š?�3˜r 2™;œ;Ñ'Ô'¨B¨4Ò/Ð/Ð/Ð/Ýˆr�2‰;Œ;×#Ò# BÑ'Ô'¨2Ò-Ð-Ð-Ð-Ø�?Š?˜2ÑÔ "§/¢/°"Ñ"5Ô"5Ð=Ð=Ò=Ð=¸"¸Ò=Ð=Ð=Ð=Ð=Ð=Ý�˜Ñ Ô ×-Ò-­e°F¸FÑ.CÔ.CÑDÔDÍÈvÐW]ÑI^ÔI^ÐH_Ò_Ð_Ð_Ð_Ý�˜Ñ Ô ×-Ò-­e°F¸FÑ.CÔ.CÑDÔDÍÈvÐW]ÑI^ÔI^ÐH_Ò_Ð_Ð_Ð_Ý�u�Q˜‰{Œ{�E ! Q™KœKÑ(Ô(×5Ò5µc½%ÀÀ1¹+¼+ÅuÈQÐPRÁ|Ä|Ñ6TÔ6TÑUÔUÝ•E˜!˜Q‘K”K¥ q¨!¡¤Ñ-Ô-Ð.ò/ð /ð /ð /õ �V˜VÑ$Ô$×1Ò1Ý�&˜&Ñ!Ô!ñ#ô #Ý'0°¸Ñ'@Ô'@Ð&AòBð Bð Bð Bå�V˜VÑ$Ô$×1Ò1Ý�&˜&Ñ!Ô!ñ#ô #Ý'0°¸Ñ'@Ô'@Ð&AòBð Bð Bð Bå�V˜VÑ$Ô$×1Ò1Ý�&˜&Ñ!Ô!ñ#ô #Ý'.¨v¡¤Ð&7ò8ð 8ð 8ð 8å�V˜VÑ$Ô$×1Ò1Ý�&˜&Ñ!Ô!ñ#ô #Ý'0°¸Ñ'@Ô'@Ð&AòBð Bð Bð Bå�V˜VÑ$Ô$×1Ò1Ý�'˜6Ñ"Ô"ñ$ô $Ý(1°&¸&Ñ(AÔ(AÐ'BòCð Cð Cð Cå�V˜VÑ$Ô$×1Ò1Ý�'˜6Ñ"Ô"ñ$ô $Ý(/°°1©¬ ò7ð 7ð 7ð 7à�?Š?�7¥5¨¨A¡;¤;µ°a¸±´Ñ<Ô<Ñ=Ô=Å%ÈÈ1Á+Ä+ÀÒNÐNÐNÐNØ�?Š?�7¥5¨¨c¡?¤?µE¸#¸s±O´OÑDÔDÑEÔEÍ'ÕRWÐX[Ð]`ÑRaÔRaÐceÑJfÔJfÐIgÒgÐgÐgÐgØ�?Š?�7¥5¨¨A¡;¤;µ°a¸±´Ñ<Ô<Ñ=Ô=ÀÒCÐCÐCÐCØ�?Š?�7¥5¨¨R¡=¤=°"Ñ5Ô5Ñ6Ô6¸2¸$Ò>Ð>Ð>Ð>Ø�?Š?�7¥5¨¨R¡=¤=µ%¸¸S±/´/ÑBÔBÑCÔCÍÐPRÕTYÐZ]Ð_bÑTcÔTcÑHdÔHdÐGeÒeÐeÐeÐeØ�?Š?�4¥ a¨¡¤­U°1°a©[¬[Ñ9Ô9Ñ:Ô:¸bÒ@Ð@Ð@Ð@Ø�?Š?˜2ÑÔ 2 $Ò&Ð&Ð&Ð&Ø�?Š?˜2ÑÔ 2 $Ò&Ð&Ð&Ð&åˆs�A�r‰?Œ?ÝÝ�Q˜‰{Œ{Ý�Q˜‰{Œ{Ý�R�#˜b¥2™g¨™lÑ+Ô+Ñ+­c°!µb±&¸2±+Ñ.>Ô.>Ñ>Ø�˜a™œ‘[¥3 r­B¡w°¡|Ñ#4Ô#4Ñ4µs¸1½r¹6ÀB¹;Ñ7GÔ7GÑGñIô IñJô JòJð Jð Jð Jõ �˜ÑÔ×,Ò,­S°¸Ñ-@Ô-@ÑAÔAÅeÈAÈqÁkÄkÀ]ÒRÐRÐRÐRÝ�˜ÑÔ×,Ò,­W°V¸VÑ-DÔ-DÑEÔEÍ%ÐPQÐSTÉ+Ì+ÈÒVÐVÐVÐVÝˆv�vÑÔ×+Ò+­C°¸Ñ,?Ô,?Ñ@Ô@ÅUÈ1ÈaÁ[Ä[ÀMÒQÐQÐQÐQÝˆv�vÑÔ×+Ò+­G°F¸FÑ,CÔ,CÑDÔDÍÈqÐRSÉÌÈÒUÐUÐUÐUÝˆv�xÑ Ô ×)Ò)­'°&¸&Ñ*AÔ*AÑBÔBÀdÐJÐJÐJÐJÝ�6˜6Ñ"Ô"¥d¨6°8Ñ&<Ô&<Ð<Ð<Ð<Ð<Ø�?Š?�3˜v vÑ.Ô.Ñ/Ô/µE¸!¸Q±K´K°=Ò@Ð@Ð@Ð@Ð@Ð@rC   c            	      óz  — t          t          t          dd¦  «        z  ¦  «        } t          d¦  «        }| dz  }d| z  | |z   z  d| z  d|z  |z  z
  |dz
  z  g\  }}t	          t          dd¦  «        t          dt          d¦  «         ¦  «        ¦  «                             t          ||¦  «        ¦  «        d	u sJ ‚d S )
Né   r÷   r4   r<   rÅ   é   r   r6   T)r   r   r   r   r   r   r†   )Úx0r,   Úx2r&   r)   s        r@   Útest_line_intersectionr  R  s¶   € å	�R•˜˜RÑ Ô Ñ Ñ	!Ô	!€BÝ	ˆa‰Œ€BØ	ˆQ‰€BØˆb‰D�"�r‘'‰N˜R ™U Q r¡T¨"¡W™_¨r°A©vÑ6Ð7�D€A€qÝ•�a˜‘”�U 1¥t¨A¡w¤w hÑ/Ô/Ñ0Ô0×9Ò9½%ÀÀ1¹+¼+ÑFÔFÈ$ÐNÐNÐNÐNÐNÐNrC   c                  óv
  — t          ddd¦  «        } t          ddd¦  «        }t          | |¦  «        }t          t          ddd¦  «        t          ddd¦  «        ¦  «        }t          t          ddd¦  «        t          ddd¦  «        ¦  «        }t          t          ddd¦  «        t          ddd¦  «        ¦  «        }t          t          ddd¦  «        t          ddd¦  «        ¦  «        }t	          || ¦  «        | gk    sJ ‚t	          |t          t
          dt
          z   d¦  «        ¦  «        g k    sJ ‚t	          ||                     | ¦  «        ¦  «        t          t          ddd¦  «        t          ddd¦  «        ¦  «        gk    sJ ‚t	          ||¦  «        |gk    sJ ‚t	          ||¦  «        |gk    sJ ‚t	          ||¦  «        |gk    sJ ‚t	          |t          t          ddd¦  «        t          ddd¦  «        ¦  «        ¦  «        t          ddd¦  «        gk    sJ ‚t	          |t          t          ddd¦  «        t          ddd¦  «        ¦  «        ¦  «        t          t          ddd¦  «        t          ddd¦  «        ¦  «        gk    sJ ‚t	          t          t          ddd¦  «        t          ddd¦  «        ¦  «        t          t          ddd¦  «        t          ddd¦  «        ¦  «        ¦  «        t          ddd¦  «        gk    sJ ‚t	          |t          t          ddd¦  «        t          ddd¦  «        ¦  «        ¦  «        t          t          ddd¦  «        t          ddd¦  «        ¦  «        gk    sJ ‚t	          ||¦  «        |gk    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «                             t          t          ddd¦  «        t          ddd¦  «        ¦  «        ¦  «        t          ddd¦  «        gk    sJ ‚t          dd¦  «                             t          dd	¦  «        ¦  «        t          ddd¦  «        gk    sJ ‚t          d
t          t          f¦  «                             t          dt          t          f¦  «        ¦  «        t          t          t          ¦  «        gk    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «                             t          t          ddd¦  «        t          ddd¦  «        ¦  «        ¦  «        g k    sJ ‚d S )Nr   r6   r4   rR   r<   r8   rã   )r   r<   r4   rä   rZ   r¥   )r   r   r   r   r   r,   r‰   r.   )r~   r·   rv   rw   r½   r¾   r¿   s          r@   Útest_intersection_3dr  [  s	  € Ý	��A�qÑ	Ô	€BÝ	��A�qÑ	Ô	€Bå	��B‰Œ€BÝ	•˜˜1˜aÑ Ô ¥'¨!¨Q°Ñ"2Ô"2Ñ	3Ô	3€Bå	�w�q˜!˜QÑÔ¥¨¨A¨qÑ!1Ô!1Ñ	2Ô	2€BÝ	�w�q˜!˜QÑÔ¥¨¨A¨qÑ!1Ô!1Ñ	2Ô	2€Bå	•7˜1˜a Ñ#Ô#¥W¨Q°°1Ñ%5Ô%5Ñ	6Ô	6€Bå˜˜BÑÔ B 4Ò'Ð'Ð'Ð'Ý˜�G¥B¨­B©°Ñ2Ô2Ñ3Ô3°rÒ9Ð9Ð9Ð9Ý˜˜B×,Ò,¨RÑ0Ô0Ñ1Ô1µf½WÀQÈÈ1Ñ=MÔ=MÍwÐWXÐZ[Ð]^ÑO_ÔO_Ñ6`Ô6`Ð5aÒaÐaÐaÐaÝ˜˜BÑÔ B 4Ò'Ð'Ð'Ð'Ý˜˜BÑÔ B 4Ò'Ð'Ð'Ð'Ý˜˜BÑÔ B 4Ò'Ð'Ð'Ð'Ý˜�E¥'¨!¨Q°Ñ"2Ô"2µG¸BÀÀBÑ4GÔ4GÑHÔHÑIÔIÍgÐVWÐYZÐ\]ÑN^ÔN^ÐM_Ò_Ð_Ð_Ð_Ý˜�I¥g¨a°°AÑ&6Ô&6½ÀÀ1ÀaÑ8HÔ8HÑIÔIÑJÔJÝ•'˜!˜Q Ñ"Ô"¥G¨A¨q°!Ñ$4Ô$4Ñ5Ô5ðO7ò 7ð 7ð 7ð 7å��g a¨¨AÑ.Ô.µ¸¸A¸qÑ0AÔ0AÑBÔBÅEÍ'ÐRSÐUVÐXYÑJZÔJZÕ\cÐdeÐgiÐklÑ\mÔ\mÑDnÔDnÑoÔoÝ�q˜!˜QÑÔÐ ò!ð !ð !ð !å˜�E¥'¨!¨Q°Ñ"2Ô"2µG¸A¸qÀ!Ñ4DÔ4DÑEÔEÑFÔFÝ•g˜a  AÑ&Ô&­°°1°aÑ(8Ô(8Ñ9Ô9Ð:ò;ð ;ð ;ð ;å˜˜BÑÔ B 4Ò'Ð'Ð'Ð'å•'˜!˜Q Ñ"Ô"¥G¨A¨q°!Ñ$4Ô$4Ñ5Ô5×BÒBÅ6Í'ÐRSÐUVÐXYÑJZÔJZÕ\cÐdeÐghÐjkÑ\lÔ\lÑCmÔCmÑnÔnÝ�A�q˜!ÑÔÐòð ð ð å�)˜YÑ'Ô'×4Ò4µV¸IÀyÑ5QÔ5QÑRÔRÕW^Ð_`ÐbcÐefÑWgÔWgÐVhÒhÐhÐhÐhÝ�&�1�a˜&Ñ!Ô!×.Ò.­v°f½qÅ!¸fÑ/EÔ/EÑFÔFÝ•A•q‰MŒMˆ?òð ð ð õ •˜˜A˜qÑ!Ô!¥7¨1¨a°Ñ#3Ô#3Ñ4Ô4×AÒAÅ%ÍÐPQÐSTÐVWÑHXÔHXÕZaÐbcÐegÐijÑZkÔZkÑBlÔBlÑmÔmÐqsÒsÐsÐsÐsÐsÐsrC   c                  óà  — t          ddd¦  «        } t          ddd¦  «        }t          t          t          t          ¦  «        }t          t          t          t          ¦  «        t          t          t          ¦  «        ¦  «        }t          t          t          t          ¦  «        t          t          dt          z   ¦  «        ¦  «        }t          j        t          t          dd¦  «        t          dd¦  «        ¦  «        |¦  «        sJ ‚t          j        |t          t          t          t          ¦  «        t          t          dt          z   ¦  «        ¦  «        ¦  «        du sJ ‚t          j        ||                     t          t           t          ¦  «        ¦  «        ¦  «        sJ ‚t          j        ||                     t          dd¦  «        ¦  «        ¦  «        sJ ‚t          | |¦  «                             t          | |¦  «        ¦  «        sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «                             t          t          ddd¦  «        t          ddd¦  «        ¦  «        ¦  «        du sJ ‚t          | |¦  «                             |¦  «        t          t          t          t          t          ¦  «        t          t          dz   t          dz   t          dz   ¦  «        ¦  «        k    sJ ‚t          | |¦  «                             |j        ¦  «        t          t          t          t          t          ¦  «        t          t          dz   t          dz   t          dz   ¦  «        ¦  «        k    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «                             t          t          ddd¦  «        t          ddd¦  «        ¦  «        ¦  «        du sJ ‚d S )Nr   r6   FrR   )	r   r,   r   r   r-   Úis_parallelr‰   r   rê   )r~   r·   rÈ   rw   Úl2_1s        r@   Útest_is_parallelr
    s  € Ý	��A�qÑ	Ô	€BÝ	��A�qÑ	Ô	€BÝ	••R�Ñ	Ô	€Bå	�e•B�‰mŒm�U¥2¥r™]œ]Ñ	+Ô	+€BÝ••b�"‘”�u¥R¨­R©Ñ0Ô0Ñ1Ô1€DåÔ�D¥ q¨!¡¤­e°A°q©k¬kÑ:Ô:¸BÑ?Ô?Ð?Ð?Ð?ÝÔ˜B¥¥U­2­r¡]¤]µE½"¸aÅ"¹fÑ4EÔ4EÑ FÔ FÑGÔGÈ5ÐPÐPÐPÐPÝÔ˜B × 0Ò 0µ½°s½B±´Ñ @Ô @ÑAÔAÐAÐAÐAÝÔ˜D $×"4Ò"4µU¸1¸a±[´[Ñ"AÔ"AÑBÔBÐBÐBÐBÝ�"�b‰>Œ>×%Ò%¥f¨R°¡n¤nÑ5Ô5Ð5Ð5Ð5Ý•'˜!˜Q Ñ"Ô"¥G¨A¨q°!Ñ$4Ô$4Ñ5Ô5×AÒAÅ&ÍÐQRÐTUÐWXÑIYÔIYÕ[bÐcdÐfgÐijÑ[kÔ[kÑBlÔBlÑmÔmÐqvÐvÐvÐvÐvÝ�"�b‰>Œ>×'Ò'¨Ñ+Ô+­vµg½bÅ"ÅbÑ6IÔ6IÝ6=½bÀ1¹fÅbÈ1ÁfÍbÐSTÉfÑ6UÔ6Uñ0Wô 0Wò Wð Wð Wð Wå�"�b‰>Œ>×'Ò'¨¬Ñ0Ô0Ý•'�"�b¥"Ñ%Ô%¥w­r°A©vµr¸A±v½rÀA¹vÑ'FÔ'FÑGÔGòHð Hð Hð Hå•'˜!˜Q Ñ"Ô"¥G¨A¨q°!Ñ$4Ô$4Ñ5Ô5×AÒAÅ&ÍÐQRÐTUÐWXÑIYÔIYÕ[bÐcdÐfgÐijÑ[kÔ[kÑBlÔBlÑmÔmÐqvÐvÐvÐvÐvÐvÐvrC   c                  óØ  — t          dd¦  «        } t          dd¦  «        }t          | |¦  «        }t          t          t          t          ¦  «        t          t          t          ¦  «        ¦  «        }t          | t          t           t          ¦  «        ¦  «        }t          j        ||¦  «        sJ ‚t          j        ||¦  «        du sJ ‚|                     ¦   «         }|                     |¦  «        |k    sJ ‚t          j        t          t          ddd¦  «        t          ddd¦  «        ¦  «        t          t          ddd¦  «        t          ddd¦  «        ¦  «        ¦  «        du sJ ‚t          j        t          t          ddd¦  «        t          ddd¦  «        ¦  «        t          t          ddd¦  «        t          ddd¦  «        ¦  «        ¦  «        du sJ ‚t          j        t          t          ddd¦  «        t          ddd¦  «        ¦  «        t          t          t          t          t          ¦  «        t          t          t          t          ¦  «        ¦  «        ¦  «        du sJ ‚d S r}   )	r   r   r,   r-   Úis_perpendicularr©   rq   r   r   )r~   r·   rv   rw   Úl1_1r˜   s         r@   Útest_is_perpendicularr  ”  s4  € Ý	ˆq�!‰Œ€BÝ	ˆq�!‰Œ€Bå	ˆb�"‰Œ€BÝ	�e•B�‰mŒm�U¥2¥r™]œ]Ñ	+Ô	+€BÝ�•E�2˜#�r‘N”NÑ#Ô#€DåÔ   TÑ*Ô*Ð*Ð*Ð*ÝÔ   RÑ(Ô(¨EÐ1Ð1Ð1Ð1Ø
�ŠÑÔ€AØ×#Ò# AÑ&Ô&¨!Ò+Ð+Ð+Ð+åÔ"¥6­'°!°Q¸Ñ*:Ô*:½GÀAÀqÈ!Ñ<LÔ<LÑ#MÔ#MÝ#)­'°!°Q¸Ñ*:Ô*:½GÀAÀqÈ!Ñ<LÔ<LÑ#MÔ#MñOô OØRVðWð Wð Wð WåÔ"¥6­'°!°Q¸Ñ*:Ô*:½GÀAÀqÈ!Ñ<LÔ<LÑ#MÔ#MÝ#)­'°!°Q¸Ñ*:Ô*:½GÀAÀqÈ!Ñ<LÔ<LÑ#MÔ#MñOô OØRWðXð Xð Xð XåÔ"¥6­'°!°Q¸Ñ*:Ô*:½GÀAÀqÈ!Ñ<LÔ<LÑ#MÔ#MÝ#)­'µ"µb½"Ñ*=Ô*=½wÅrÍ2ÍrÑ?RÔ?RÑ#SÔ#SñUô UØX]ð^ð ^ð ^ð ^ð ^ð ^rC   c            
      óÒ  — t          dd¦  «        } |                      dd¦  «        }t          t          ddd¦  «        t          ddd¦  «        ¦  «        }t	          t          dd¦  «        t          dd¦  «        ¦  «        }t          t          dd¦  «        | ¦  «        }|                     t          | |¦  «        ¦  «        sJ ‚|                     |¦  «        du sJ ‚|                     t          t          ddd¦  «        t          ddd¦  «        ¦  «        ¦  «        du sJ ‚|                     t          t          ddd¦  «        t          ddd¦  «        ¦  «        ¦  «        du sJ ‚d S )Nrœ   r<   r6   r   FT)r   r«   r   r   r   r   Ú
is_similarr   )r~   r·   r½   r¾   r¿   s        r@   Útest_is_similarr  ©  s@  € Ý	ˆt�TÑ	Ô	€BØ	�Š�!�Q‰Œ€Bå	�w�q˜!˜QÑÔ¥¨¨A¨qÑ!1Ô!1Ñ	2Ô	2€BÝ	�U�1�a‰[Œ[�%  1™+œ+Ñ	&Ô	&€Bå	•�q˜!‘”˜bÑ	!Ô	!€Bà�=Š=�  R™œÑ)Ô)Ð)Ð)Ð)Ø�=Š=˜ÑÔ Ð%Ð%Ð%Ð%Ø�=Š=�¥¨¨1¨aÑ 0Ô 0µ'¸!¸QÀÑ2BÔ2BÑCÔCÑDÔDÈÐLÐLÐLÐLØ�=Š=�¥¨¨1¨aÑ 0Ô 0µ'¸!¸QÀÑ2BÔ2BÑCÔCÑDÔDÈÐMÐMÐMÐMÐMÐMrC   c                  óþ  — t          t          t          t          t          ¦  «        t          t          t          t          ¦  «        ¦  «        } t	          t          dd¦  «        t          dd¦  «        ¦  «        j        t          u sJ ‚| j        t          d¦  «        t          t          t          z
  dz  ¦  «        z  k    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «        j        t          u sJ ‚d S )Nr   r6   r4   r<   )
r   r   r,   r-   r   r   rt   r   r   r   )rÞ   s    r@   Útest_lengthr  ¸  sÁ   € Ý	•7�2�r¥2Ñ&Ô&­µµB½Ñ(;Ô(;Ñ	<Ô	<€BÝ•�a˜‘”�U 1 a™[œ[Ñ)Ô)Ô0µBÐ6Ð6Ð6Ð6ØŒ9�˜Q™œ¥$­­R©°A¡~Ñ"6Ô"6Ñ6Ò6Ð6Ð6Ð6Ý•'˜!˜Q Ñ"Ô"¥G¨A¨q°!Ñ$4Ô$4Ñ5Ô5Ô<ÅÐBÐBÐBÐBÐBÐBrC   c                  óâ  — t          dd¦  «        } t          ddd¦  «        }t          t           t          ¦  «        }t          | t          dd¦  «        ¦  «        }t	          t          ddd¦  «        t          ddd¦  «        ¦  «        }t	          |t          ddd¦  «        ¦  «        }t          t          dd¦  «        t          dd¦  «        ¦  «        }t          t          dd¦  «        t          dd¦  «        ¦  «        }t          t          dd¦  «        t          dd¦  «        ¦  «        }t          t          t          t          ¦  «        t          t          t          ¦  «        ¦  «         	                    t          t          t          ¦  «        ¦  «        t          t          t          ¦  «        k    sJ ‚t          t          t          t          ¦  «        t          t          dt          z   ¦  «        ¦  «         	                    t          dd¦  «        ¦  «        t          t          d¦  «        k    sJ ‚t          t          dd¦  «        t          dd¦  «        ¦  «         	                    |¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        k    sJ ‚t          t          dd¦  «        t          dd¦  «        ¦  «         	                    |¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        k    sJ ‚| 	                    |¦  «        t          k    sJ ‚| 	                    |¦  «        | k    sJ ‚| 	                    t          | t          dd	¦  «        ¦  «        ¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        k    sJ ‚| 	                    t          | t          dd¦  «        ¦  «        ¦  «        | k    sJ ‚| 	                    t          t          dd¦  «        t          dd¦  «        ¦  «        ¦  «        t          dd¦  «        k    sJ ‚| 	                    t          t          dd¦  «        t          dd
¦  «        ¦  «        ¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        k    sJ ‚| 	                    t          t          dd	¦  «        t          d
d¦  «        ¦  «        ¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        k    sJ ‚| 	                    t          t          dd¦  «        t          dd¦  «        ¦  «        ¦  «        t          dd¦  «        k    sJ ‚| 	                    t          t          dd¦  «        t          dd
¦  «        ¦  «        ¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        k    sJ ‚| 	                    t          t          dd	¦  «        t          d
d¦  «        ¦  «        ¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        k    sJ ‚| 	                    t          |t          dd	d¦  «        ¦  «        ¦  «        t          t          ddd¦  «        t          t          dd¦  «        t          dd¦  «        t          dd¦  «        ¦  «        ¦  «        k    sJ ‚| 	                    t          |t          ddd¦  «        ¦  «        ¦  «        t          t          ddd¦  «        t          t          dd¦  «        t          dd¦  «        t          dd¦  «        ¦  «        ¦  «        k    sJ ‚| 	                    t          d	d	d¦  «        ¦  «        t          d	d¦  «        k    sJ ‚| 	                    t	          t          ddd¦  «        t          ddd¦  «        ¦  «        ¦  «                             |¦  «        sJ ‚d S )Nr   r6   r<   rñ   r    rR   r8   r4   r7   r§   rÍ   )r   r   r,   r   r   r   r   r   r-   r‹   r   r   r   rˆ   )	r~   r·   rÈ   rv   rw   r»   r½   r¿   rÞ   s	            r@   Útest_projectionr  ¿  s”  € Ý	ˆq�!‰Œ€BÝ	��A�qÑ	Ô	€BÝ	•ˆs•B‰Œ€Bå	ˆb•%˜˜1‘+”+Ñ	Ô	€BÝ	•˜˜1˜aÑ Ô ¥'¨!¨Q°Ñ"2Ô"2Ñ	3Ô	3€BÝ	�•G˜A˜q !Ñ$Ô$Ñ	%Ô	%€Bå	�U�1�a‰[Œ[�%  1™+œ+Ñ	&Ô	&€Bå	•˜˜A‘”¥¨¨1¡¤Ñ	.Ô	.€BÝ	•˜˜A‘”¥¨¨3¡¤Ñ	0Ô	0€Bå••b�"‘”�u¥R­™}œ}Ñ-Ô-×8Ò8½½rÅ2¹¼ÑGÔGÍ5ÕQSÕUWÉ=Ì=ÒXÐXÐXÐXÝ••b�"‘”�u¥R¨­R©Ñ0Ô0Ñ1Ô1×<Ò<½UÀ1Àa¹[¼[ÑIÔIÍUÕSUÐWXÉ\Ì\ÒYÐYÐYÐYÝ•5˜˜Q‘<”<¥ q¨!¡¤Ñ-Ô-×8Ò8¸Ñ<Ô<ÅÍÈbÐRSÉÌÕV[Ð\]Ð_`ÑVaÔVaÑ@bÔ@bÒbÐbÐbÐbÝ•5˜˜A‘;”;¥ b¨!¡¤Ñ-Ô-×8Ò8¸Ñ<Ô<ÅÍÈaÐQRÉÌÕUZÐ[]Ð_`ÑUaÔUaÑ@bÔ@bÒbÐbÐbÐbØ�=Š=˜ÑÔ¥Ò(Ð(Ð(Ð(Ø�=Š=˜ÑÔ Ò"Ð"Ð"Ð"Ø�=Š=�˜R¥ r¨1¡¤Ñ.Ô.Ñ/Ô/µ3µu¸QÀ±{´{ÅEÈ!ÈQÁKÄKÑ3PÔ3PÒPÐPÐPÐPØ�=Š=�˜R¥ r¨1¡¤Ñ.Ô.Ñ/Ô/°2Ò5Ð5Ð5Ð5Ø�=Š=��U 1 a™[œ[­%°°B©-¬-Ñ8Ô8Ñ9Ô9½UÀ1Àa¹[¼[ÒHÐHÐHÐHØ�=Š=��U 1 a™[œ[­%°°B©-¬-Ñ8Ô8Ñ9Ô9½WÅUÈ1ÈaÁ[Ä[ÕRWÐXYÐ[\ÑR]ÔR]Ñ=^Ô=^Ò^Ð^Ð^Ð^Ø�=Š=�¥ r¨1¡¤­u°R¸©~¬~Ñ>Ô>Ñ?Ô?Å7Í5ÐQRÐTUÉ;Ì;ÕX]Ð^_ÐabÑXcÔXcÑCdÔCdÒdÐdÐdÐdØ�=Š=��U 1 a™[œ[­%°°B©-¬-Ñ8Ô8Ñ9Ô9½UÀ1Àa¹[¼[ÒHÐHÐHÐHØ�=Š=��U 1 a™[œ[­%°°B©-¬-Ñ8Ô8Ñ9Ô9½WÅUÈ1ÈaÁ[Ä[ÕRWÐXYÐ[\ÑR]ÔR]Ñ=^Ô=^Ò^Ð^Ð^Ð^Ø�=Š=�¥ r¨1¡¤­u°R¸©~¬~Ñ>Ô>Ñ?Ô?Å7Í5ÐQRÐTUÉ;Ì;ÕX]Ð^_ÐabÑXcÔXcÑCdÔCdÒdÐdÐdÐdà�=Š=�˜r¥7¨2¨q°!Ñ#4Ô#4Ñ5Ô5Ñ6Ô6½%ÅÈÈ1ÈaÑ@PÔ@PÕRYÕZbÐcdÐfgÑZhÔZhÕjrÐstÐvwÑjxÔjxõ  {Cð  DEð  GHñ  {Iô  {Iñ  SJô  SJñ  ;Kô  ;Kò  Kð  Kð  Kð  KØ�=Š=�˜r¥7¨2¨q°!Ñ#4Ô#4Ñ5Ô5Ñ6Ô6½%ÅÈÈ1ÈaÑ@PÔ@PÕRYÕZbÐcdÐfgÑZhÔZhÕjrÐstÐvwÑjxÔjxõ  {Cð  DEð  GHñ  {Iô  {Iñ  SJô  SJñ  ;Kô  ;Kò  Kð  Kð  Kð  KØ�=Š=�  A qÑ)Ô)Ñ*Ô*­g°a¸©m¬mÒ;Ð;Ð;Ð;Ø�=Š=�¥¨¨1¨aÑ 0Ô 0µ'¸!¸QÀÑ2BÔ2BÑCÔCÑDÔD×KÒKÈBÑOÔOÐOÐOÐOÐOÐOrC   c                  ó  — t          ddd¦  «        t          ddd¦  «        t          ddd¦  «        }}} t          | |¦  «        }|                     |¦  «        }|j        |k    sJ ‚|j        |v sJ ‚t          dd¦  «        t          dd¦  «        t          dd¦  «        }}} t          | |¦  «        }|                     |¦  «        }|j        |k    sJ ‚|j        j        ||                     |¦  «        z
  j        k    sJ ‚d S )Nr   r<   r4   rR   r    )r   r   rŠ   r~   r·   Ú	directionÚunitr‹   )r~   r·   rÈ   rÓ   r˜   s        r@   Útest_perpendicular_liner  â  sï   € å�q˜!˜Q‘”¥ q¨!¨Q¡¤µ°r¸1¸a±´ˆBˆ€BÝˆR�‰Œ€AØ	×Ò˜RÑ Ô €AØŒ4�2Š:ˆ:ˆ:ˆ:ØŒ4�1ˆ9ˆ9ˆ9ˆ9å�q˜!‘”�e A q™kœk­5°°Q©<¬<ˆBˆ€BÝˆR�‰Œ€AØ	×Ò˜RÑ Ô €AØŒ4�2Š:ˆ:ˆ:ˆ:àŒ;Ô  Q§\¢\°"Ñ%5Ô%5Ñ 5Ô;Ò;Ð;Ð;Ð;Ð;Ð;rC   c            
      óþ  — t          t          dd¦  «        t          dd¦  «        ¦  «        } t          t          t          j        t          j        ¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        ¦  «        }t          t          t          j        t          j        ¦  «        t          t          dd¦  «        t          dd¦  «        ¦  «        ¦  «        j        }|                      ¦   «                              |¦  «        sJ ‚|                      |¦  «                             t          | j        |¦  «        ¦  «        sJ ‚|                      |dz   ¦  «                             |¦  «        sJ ‚d S )Nr   r6   r4   r<   r8   rÛ   )	r   r   r   r   rs   r   rr   Úperpendicular_bisectorrˆ   )r¿   ÚalineÚon_lines      r@   Útest_perpendicular_bisectorr  ò  s   € Ý	•�q˜!‘”�e A q™kœkÑ	*Ô	*€BÝ••q”v�qœvÑ&Ô&­­h°q¸!©n¬n½hÀrÈ1¹o¼oÑ(NÔ(NÑOÔO€EÝ•e�AœF¥A¤FÑ+Ô+­Uµ8¸A¸q±>´>Å8ÈBÐPQÁ?Ä?Ñ-SÔ-SÑTÔTÔ]€Gà×$Ò$Ñ&Ô&×-Ò-¨eÑ4Ô4Ð4Ð4Ð4Ø×$Ò$ WÑ-Ô-×4Ò4µW¸R¼[È'Ñ5RÔ5RÑSÔSÐSÐSÐSØ×$Ò$ W¨vÑ%5Ñ6Ô6×=Ò=¸eÑDÔDÐDÐDÐDÐDÐDrC   c                  óì  ‡‡— t          dd¬¦  «        \  Š} t          ‰df| df¦  «        Št          t          d„ ¦  «         t          t          d„ ¦  «         t          t
          ˆˆfd„¦  «         t          t          d„ ¦  «         t          t          d	„ ¦  «         t          t          d
„ ¦  «         t          t          d„ ¦  «         t          t          d„ ¦  «         t          t          d„ ¦  «         d S )Nr/   Tr'   r   c                  ó"   — t          dd¦  «        S ©Nrg   r6   r?   rp   rC   r@   rA   ztest_raises.<locals>.<lambda>   s   € �d 6¨1™oœo€ rC   c                  óZ   — t          t          dd¦  «        t          dd¦  «        ¦  «        S ©Nr   )r   r   rp   rC   r@   rA   ztest_raises.<locals>.<lambda>  s    € �t¥E¨!¨Q¡K¤Kµ°q¸!±´Ñ=Ô=€ rC   c                  ó.   •— t          d‰ z  d¦  «        ‰v S )Nr<   r   )r   )ÚdÚss   €€r@   rA   ztest_raises.<locals>.<lambda>  s   ø€ ¥ a¨!¡e¨Q¡¤°1Ð 4€ rC   c                  ó<   — t          t          dd¦  «        ¦  «        S )NrÑ   )r   r   rp   rC   r@   rA   ztest_raises.<locals>.<lambda>  s   € �u¥U¨3°¡_¤_Ñ5Ô5€ rC   c                  ó^   — t          t          ddd¦  «        t          ddd¦  «        ¦  «        S r#  ©r   r   rp   rC   r@   rA   ztest_raises.<locals>.<lambda>  s(   € �v¥g¨a°°AÑ&6Ô&6½ÀÀ1ÀaÑ8HÔ8HÑIÔI€ rC   c                  ó"   — t          dd¦  «        S r!  )r   rp   rC   r@   rA   ztest_raises.<locals>.<lambda>  s   € �f V¨QÑ/Ô/€ rC   c                  ó>   — t          t          ddd¦  «        ¦  «        S r#  r)  rp   rC   r@   rA   ztest_raises.<locals>.<lambda>  s   € �v¥g¨a°°AÑ&6Ô&6Ñ7Ô7€ rC   c                  ó"   — t          dd¦  «        S r!  )r   rp   rC   r@   rA   ztest_raises.<locals>.<lambda>  s   € �c &¨!™nœn€ rC   c                  ó¸   — t          t          dd¦  «        t          dd¦  «        ¦  «                             t          t          dd¦  «        d¦  «        ¦  «        S )Nr   r6   )r   r   r‹   r   rp   rC   r@   rA   ztest_raises.<locals>.<lambda>  sB   € ¥$¥u¨Q°¡{¤{µE¸!¸Q±K´KÑ"@Ô"@ßŠJ•v�e A q™kœk¨1Ñ-Ô-Ñ.Ô.ð rC   )r
   r   r$   Ú	TypeErrorrL   r!   r   )Úer%  r&  s    @@r@   Útest_raisesr0  ü  s  øø€ Ý�5˜tÐ$Ñ$Ô$�D€A€qÝ��A�˜˜A˜ÑÔ€Aå
�9Ð-Ð-Ñ.Ô.Ð.Ý
�:Ð=Ð=Ñ>Ô>Ð>Ý
�;Ð4Ð4Ð4Ð4Ð4Ñ5Ô5Ð5Ý
�:Ð5Ð5Ñ6Ô6Ð6Ý
�:ÐIÐIÑJÔJÐJÝ
�9Ð/Ð/Ñ0Ô0Ð0Ý
�:Ð7Ð7Ñ8Ô8Ð8Ý
�9Ð,Ð,Ñ-Ô-Ð-Ý
�=ð /ð /ñ 0ô 0ð 0ð 0ð 0rC   c                  óÂ  — t          dt          dz  ¬¦  «        t          dd¦  «        k    sJ ‚t          dt          dz  ¬¦  «        t          dd¦  «        k    sJ ‚t          dt           dz  ¬¦  «        t          dd¦  «        k    sJ ‚t          ddt          z  dz  ¬¦  «        t          dd¦  «        k    sJ ‚t          dd	t          z  dz  ¬¦  «        t          dd¦  «        k    sJ ‚t          dd
t          z  dz  ¬¦  «        t          dd¦  «        k    sJ ‚t          dt          ¬¦  «        t          dd¦  «        k    sJ ‚t          ddt          z  ¬¦  «        t          dd¦  «        k    sJ ‚t          ddt          z  ¬¦  «        t          dd¦  «        k    sJ ‚t          dd¬¦  «        t          dd¦  «        k    sJ ‚t          ddt          z  ¬¦  «        t          t          dd¦  «        t          dt          d	¦  «         t          dt          d	¦  «        z  dz   ¦  «        z  dz  t          dt          d	¦  «        z  dz   ¦  «        dz  z
  dz   t          d	¦  «        z   ¦  «        ¦  «        k    sJ ‚t          ddt          z  ¬¦  «        t          t          dd¦  «        t          ddt	          dt          z  ¦  «        z   ¦  «        ¦  «        k    sJ ‚t          dd	¬¦  «        t          dddt	          d	¦  «        z   f¦  «        k    sJ ‚t          dg d¢¬¦  «        t          t          ddd¦  «        t          d	d	d	¦  «        ¦  «        k    sJ ‚t          dg d¢¬¦  «        t          t          ddd¦  «        t          ddd¦  «        ¦  «        k    sJ ‚t          dg d¢¬¦  «        t          t          ddd¦  «        t          ddd¦  «        ¦  «        k    sJ ‚d S )Nrg   rR   r[   rŸ   r<   r]   rÛ   r;   r7   g      @r¥   g      @g      @)r<   r6   r   g333333@r6   r¨   g®Gáz@ri   )rR   rR   rR   rk   rj   r4   )r   r   r   r   r   r   r   rp   rC   r@   Útest_ray_generationr2    s  € Ýˆv�R !™VÐ$Ñ$Ô$­¨F°FÑ(;Ô(;Ò;Ð;Ð;Ð;Ýˆv�R !™VÐ$Ñ$Ô$­¨F°FÑ(;Ô(;Ò;Ð;Ð;Ð;Ýˆv�b˜S 1™WÐ%Ñ%Ô%­¨V°VÑ)<Ô)<Ò<Ð<Ð<Ð<Ýˆv˜R¥"™W q™[Ð)Ñ)Ô)­S°¸Ñ-@Ô-@Ò@Ð@Ð@Ð@Ýˆv˜Q¥™V a™ZÐ(Ñ(Ô(­C°¸Ñ,?Ô,?Ò?Ð?Ð?Ð?Ýˆv˜S¥2™X¨™\Ð*Ñ*Ô*­c°&¸&Ñ.AÔ.AÒAÐAÐAÐAÝˆv�RÐ Ñ Ô ¥C¨°Ñ$7Ô$7Ò7Ð7Ð7Ð7Ýˆv˜S¥2™XÐ&Ñ&Ô&­#¨f°fÑ*=Ô*=Ò=Ð=Ð=Ð=Ýˆv˜S¥2™XÐ&Ñ&Ô&­#¨f°fÑ*=Ô*=Ò=Ð=Ð=Ð=Ýˆv˜QÐÑÔ¥3 v¨vÑ#6Ô#6Ò6Ð6Ð6Ð6Ýˆv˜T¥B™YÐ'Ñ'Ô'­3­u°Q¸©{¬{Ý/4°Q½¸a¹¼¸Å4ÈÍDÐQRÉGÌGÉÐVXÑHXÑCYÔCYÑ8YÐ\]Ñ8]Õ`dØ34µt¸A±w´w±;ÀÑ3CñaEô aEØGHñaIñ 9IØKLñ9MÝOSÐTUÉwÌwñ9Wñ 0Xô 0Xñ,Yô ,Yò Yð Yð Yð Yõ ˆv˜T¥B™YÐ'Ñ'Ô'­3­u°Q¸©{¬{Ý/4°Q¸½CÀÅrÁ	¹N¼NÑ8JÑ/KÔ/Kñ,Mô ,Mò Mð Mð Mð Måˆv˜QÐÑÔ¥3 v°°1µs¸1±v´v±:¨Ñ#?Ô#?Ò?Ð?Ð?Ð?å�¨I¨I¨IÐ6Ñ6Ô6½%ÅÈÈ1ÈaÑ@PÔ@PÕRYÐZ[Ð]^Ð`aÑRbÔRbÑ:cÔ:cÒcÐcÐcÐcÝ�¨I¨I¨IÐ6Ñ6Ô6½%ÅÈÈ1ÈaÑ@PÔ@PÕRYÐZ[Ð]^Ð`aÑRbÔRbÑ:cÔ:cÒcÐcÐcÐcÝ�¨I¨I¨IÐ6Ñ6Ô6½%ÅÈÈ1ÈaÑ@PÔ@PÕRYÐZ[Ð]^Ð`aÑRbÔRbÑ:cÔ:cÒcÐcÐcÐcÐcÐcrC   c                  ó¦  — t          t          t          d¦  «        t          ¦  «        } t	          t          t
          t          ¦  «        d¬¦  «        }t          t          t          z
  t          t          z   z  ¦  «        }|                     | ¦  «        t          t          |z   t          ¦  «        t          t          |z
  t          ¦  «        gk    sJ ‚d S )Nr   r�   )
r   r   r&   r)   r   r+   r*   r   r   r   )ÚcircleÚlineÚ_ss      r@   Útest_issue_7814r7  #  s’   € Ý•E�!˜Q‘K”K¥Ñ#Ô#€FÝ••a�‘” 1Ð%Ñ%Ô%€DÝ	�q•1‰u•q�1‘u‰oÑ	Ô	€BØ×Ò˜VÑ$Ô$­µ°R±½Ñ);Ô);½WÅQÈÁVÍQÑ=OÔ=OÐ(PÒPÐPÐPÐPÐPÐPrC   c                  ód   ‡‡‡‡— ˆˆˆˆfd„} d\  ŠŠd\  ŠŠ | ¦   «          d\  ŠŠ | ¦   «          d S )Nc                  óÞ   •— t          t          t          t          fgdz  Ž D ]K\  } } | ‰‰¦  «        } |‰‰¦  «        }|                     |¦  «        |                     |¦  «        k    sJ ‚ŒLd S )Nr<   )r#   r   r   r   r   )ÚfÚgrv   rw   r2   r3   Úcr%  s       €€€€r@   Ú_checkztest_issue_2941.<locals>._check+  s~   ø€ Ý�d¥C­Ð1Ð2°QÑ6Ð7ð 	>ð 	>‰DˆAˆqØ��1�a‘”ˆBØ��1�a‘”ˆBØ—?’? 2Ñ&Ô&¨"¯/ª/¸"Ñ*=Ô*=Ò=Ð=Ð=Ð=Ð=ð	>ð 	>rC   ))r    r    rò   )rZ   rg   ))r    r;   rò   rp   )r=  r2   r3   r<  r%  s    @@@@r@   Útest_issue_2941r>  *  se   øøøø€ ð>ð >ð >ð >ð >ð >ð >ð >ð �D€A€qØ�D€A€qØ
€F�H„H€Hà�D€A€qØ
€F�H„H€H€H€HrC   c                  óö   ‡‡— t          d¦  «        Št          dd¦  «        t          dd¦  «        }} t          | |¦  «        Š‰                     d‰¦  «        ‰dik    sJ ‚t	          t
          ˆˆfd„¦  «         d S )Nr.   r   r6   r7   r„   )r7   r„   c                  ó0   •— ‰                       d‰¦  «        S )NrZ   )Úparameter_value)rÓ   r.   s   €€r@   rA   z&test_parameter_value.<locals>.<lambda>>  s   ø€ ˜q×0Ò0°¸Ñ;Ô;€ rC   )r	   r   r   rA  r$   rL   )r~   r·   rÓ   r.   s     @@r@   Útest_parameter_valuerB  9  s}   øø€ Ýˆs‰Œ€AÝ�1�a‰[Œ[�%  1™+œ+ˆ€BÝˆR�‰Œ€AØ×Ò˜V QÑ'Ô'¨A¨q¨6Ò1Ð1Ð1Ð1Ý
�:Ð;Ð;Ð;Ð;Ð;Ñ<Ô<Ð<Ð<Ð<rC   c            
      ó   — t          t          ddd¦  «        t          ddd¦  «        ¦  «        } t          t          ddd¦  «        t          ddd¦  «        ¦  «        }|                      |¦  «        }|t          t          ddd¦  «        t          ddd¦  «        ¦  «        t          t          ddd¦  «        t          ddd¦  «        ¦  «        gk    sJ ‚t          t          ddd¦  «        t          ddd¦  «        ¦  «        t          t          ddd¦  «        t          ddd¦  «        ¦  «        g}d}d}t          t          t
          t          fd¬¦  «        D ]&\  }} ||Ž                       ||Ž ¦  «        |k    sJ ‚Œ'd S )Nr   r6   r8   )rÎ   rå   )rZ   rÛ   r<   )Úrepeat)r   r   Ú	bisectorsr#   r   r   r   )r½   r¾   Ú
bisectionsÚansrv   rw   r2   r3   s           r@   Útest_bisectorsrH  A  s€  € Ý	•˜˜1˜aÑ Ô ¥'¨!¨Q°Ñ"2Ô"2Ñ	3Ô	3€BÝ	•˜˜1˜aÑ Ô ¥'¨!¨Q°Ñ"2Ô"2Ñ	3Ô	3€BØ—’˜bÑ!Ô!€JØ�&¥¨¨A¨qÑ!1Ô!1µ7¸1¸aÀÑ3CÔ3CÑDÔDÝ�w�q˜!˜QÑÔ¥¨¨B°Ñ!2Ô!2Ñ3Ô3ð5ò 5ð 5ð 5ð 5å•'˜!˜Q Ñ"Ô"¥G¨A¨q°!Ñ$4Ô$4Ñ5Ô5Ý�w�q˜!˜QÑÔ¥¨¨Q°Ñ!2Ô!2Ñ3Ô3ð5€Cà	€BØ	€BÝ��g¥sÐ+°AÐ6Ñ6Ô6ð /ð /‰ˆˆ1Øˆq�"ˆv×Ò   2 Ñ'Ô'¨3Ò.Ð.Ð.Ð.Ð.ð/ð /rC   c                  ó  — t          t          ddd¦  «        t          ddd¦  «        ¦  «        } t          t          ddd¦  «        t          ddd¦  «        ¦  «        }|                      |¦  «        t          ddd¦  «        gk    sJ ‚d S )Nr„   r7   r   iúÿÿÿr8   gffffffþ?)r   r   r   rF   s     r@   Útest_issue_8615rJ  O  s‚   € Ý�w�q˜!˜QÑÔ¥¨¨B°Ñ!2Ô!2Ñ3Ô3€AÝ�w�q˜"˜eÑ$Ô$¥g¨a°°QÑ&7Ô&7Ñ8Ô8€AØ�>Š>˜!ÑÔ¥¨¨B°Ñ!2Ô!2Ð 3Ò3Ð3Ð3Ð3Ð3Ð3rC   c                  ó”  — t          t          dd¦  «        t          dd¦  «                             d¦  «        ¦  «        } t          t          dd¦  «        t          dd¦  «                             d¦  «        ¦  «        }t          |                      |¦  «        d         ¦  «        dk    sJ ‚t          dd	¦  «        }t          d
d¦  «                             d¦  «        }t          |                     |¦  «        d         ¦  «        dk    sJ ‚t          d
d¦  «                             d¦  «        }|                     |¦  «        rJ ‚d S )Nr   r6   g\�Âõ(\ï?gHáz®Gé?r<   g¸…ëQ¸æ?zPoint2D(0.82, 0.82)rZ   rg   r¤   r¦   zPoint2D(-0.33, -0.33))g      à¿rñ   )r   r   ÚnÚstrr   r   r   )r½   r¾   rv   rw   s       r@   Útest_issue_12598rN  U  s  € Ý	�U�1�a‰[Œ[�%  dÑ+Ô+×-Ò-¨aÑ0Ô0Ñ	1Ô	1€BÝ	�U�1�a‰[Œ[�%  dÑ+Ô+×-Ò-¨aÑ0Ô0Ñ	1Ô	1€BÝˆr�Š˜rÑ"Ô" 1Ô%Ñ&Ô&Ð*?Ò?Ð?Ð?Ð?Ý	ˆf�fÑ	Ô	€BÝ	�˜'Ñ	"Ô	"×	$Ò	$ QÑ	'Ô	'€BÝˆr�Š˜rÑ"Ô" 1Ô%Ñ&Ô&Ð*AÒAÐAÐAÐAÝ	�˜+Ñ	&Ô	&×	(Ò	(¨Ñ	+Ô	+€BØ�Š˜rÑ"Ô"Ð"Ð"Ð"Ð"Ð"rC   N)`Úsympy.core.numbersr   r   r   r   Úsympy.core.relationalr   Úsympy.core.singletonr   Úsympy.core.symbolr	   r
   Ú(sympy.functions.elementary.miscellaneousr   Ú(sympy.functions.elementary.trigonometricr   r   r   Ú
sympy.setsr   Úsympy.simplify.simplifyr   r   Úsympy.geometryr   r   r   r   r   r   r   r   r   r   r   r   r   r   r    Úsympy.geometry.liner!   Úsympy.geometry.polygonr"   rø   rŒ   r#   Úsympy.testing.pytestr$   r%   r&   r)   r*   r+   r,   r-   r.   r2   r3   r0   rM   rP   rX   r_   rb   re   rx   r{   r�   rš   rÃ   rË   rÔ   rÙ   rß   rá   rè   rì   rï   rþ   r  r  r
  r  r  r  r  r  r  r0  r2  r7  r>  rB  rH  rJ  rN  rp   rC   r@   ú<module>r[     s  ðØ 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø $Ð $Ð $Ð $Ð $Ð $Ø "Ð "Ð "Ð "Ð "Ð "Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ,Ð +Ð +Ð +Ð +Ð +Ø .Ð .Ð .Ð .Ð .Ð .Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .ð €Fˆ3�TÐÑÔ€Ø
€Fˆ3�TÐÑÔ€Ø
€Fˆ3�TÐÑÔ€Ø
€Fˆ3�TÐÑÔ€Ø€VˆD�tÐÑÔ€Ø€VˆD�tÐÑÔ€Ø
€Fˆ3�TÐÑÔ€Ø€wˆu˜4Ð Ñ Ô �€€1Ø€GˆC�dÐÑÔ€ð5ð 5ð 5ð0&ð &ð &ðSð Sð Sð#ð #ð #ð<ð <ð <ðCð Cð CðJð Jð Jð$Sð Sð Sð	Bð 	Bð 	Bð""ð ""ð ""ðJJCð JCð JCðZ*Ið *Ið *IðZ'5ð '5ð '5ðTð ð ð#ð #ð #ð:Cð Cð Cð
-Tð -Tð -Tð`Ið Ið Ið4'ð 'ð 'ðDMAð MAð MAðTOð Oð Oð!tð !tð !tðHwð wð wð*^ð ^ð ^ð*Nð Nð NðCð Cð Cð Pð  Pð  PðF<ð <ð <ð Eð Eð Eð0ð 0ð 0ð dð dð dð.Qð Qð Qðð ð ð=ð =ð =ð/ð /ð /ð4ð 4ð 4ð#ð #ð #ð #ð #rC   