Ë
    7^(hñZ  ã                   óä   — d dl mZmZmZ d dlmZ d dlmZ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 d dlmZ d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(y)é    )ÚFloatÚIÚRational)ÚS)ÚSymbolÚsymbols)ÚAbs)ÚPurePoly)	ÚMatrixÚMutableSparseMatrixÚImmutableSparseMatrixÚSparseMatrixÚeyeÚonesÚzerosÚ
ShapeErrorÚNonSquareMatrixError)Úraisesc                  óø   — t        dddddgddggi«      } | t        ddgddgg«      k(  sJ ‚t        dddddggi«      } | t        ddgddgg«      k(  sJ ‚t        dddddgi«      } | t        ddgddgg«      k(  sJ ‚y )Né   ©r   r   é   é   é   r   ©r   )Úas    ú^/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/matrices/tests/test_sparse.pyÚtest_sparse_creationr      s²   € Ü�Q˜˜F a¨ V¨a°¨VÐ$4Ð5Ó6€AØ”˜q !˜f q¨! fÐ-Ó.Ò.Ð.Ð.Ü�Q˜˜F a¨ V HÐ-Ó.€AØ”˜q !˜f q¨! fÐ-Ó.Ò.Ð.Ð.Ü�Q˜˜F Q¨ FÐ+Ó,€AØ”˜q !˜f q¨! fÐ-Ó.Ò.Ð.Ñ.ó    c                  óâ,  ‡"— d„ } d„ }t        t        d„ «       t        d«      }t        |«      |k(  sJ ‚ddlm} t        g «      } |ddg«      }|j                  |«      |k(  sJ ‚|j                  |«      |k(  sJ ‚t        |j                  |«      «      t        |«      k(  sJ ‚t        |j                  |«      «      t        |«      k(  sJ ‚t        d	«      D �cg c]  }t        j                  d|«      ‘Œ }}t        j                  |Ž t        dd
g «      k(  sJ ‚t        d	«      D �cg c]  }t        j                  |d«      ‘Œ }}t        j                  |Ž t        d
dg «      k(  sJ ‚t        d«      }d	|d<   |d   d	k(  sJ ‚d|d<   d|d<   |t        d«      k(  sJ ‚d|d<   |t        d«      k(  sJ ‚d|d<   |t        d«      k(  sJ ‚|j                  «       dddœk(  sJ ‚t        d«      }t        d«      }||z  }|d   dk(  sJ ‚|d   dk(  sJ ‚|d   d
k(  sJ ‚|d   d
k(  sJ ‚|d   dk(  sJ ‚|d   dk(  sJ ‚	 t        d«       |d   dk(  sJ ‚|d   dk(  sJ ‚|d   d
k(  sJ ‚|d   d
k(  sJ ‚|d   dk(  sJ ‚|d   dk(  sJ ‚t#        d«      }|t#        d«      z  }t%        |t        «      sJ ‚|d   |k(  sJ ‚|d   d|z  k(  sJ ‚|d   d|z  k(  sJ ‚|d   dk(  sJ ‚d|z  }t%        |t        «      sJ ‚|d   dk(  sJ ‚|d   dk(  sJ ‚|d   dk(  sJ ‚|d   dk(  sJ ‚t        ddgd	dgg«      }	|	dz  d d  g d¢k(  sJ ‚t        g d ¢g d!¢g d"¢g«      }	|	dz  d d  g d#¢k(  sJ ‚t#        d«      }t        |dgddgg«      }|}
|
j&                  |
j(                  k(  sJ ‚|
j&                  dk(  sJ ‚|
d d  |dddgk(  sJ ‚t        dd|dddg«      }|}
|
j&                  |
j(                  k(  sJ ‚|
j&                  dk(  sJ ‚|
d d  |dddgk(  sJ ‚||k(  sJ ‚ | d«      } |j*                  d«       |t        g d$¢g d%¢g«      k(  sJ ‚ | d«      } |j,                  d«       |t        ddgddgddgg«      k(  sJ ‚t        j.                  d«      }d|d<    |j0                  dd«       |t        g d&¢g d$¢g d'¢g«      k(  sJ ‚ |j2                  dd«       |t        g d$¢g d&¢g d'¢g«      k(  sJ ‚t        ddddg«      }|j5                  «       }|j5                  «       }|d   dk(  sJ ‚|j+                  d«       |t        ddg «      k(  sJ ‚|j-                  d«       |t        dddg«      k(  sJ ‚t        g d(¢ddgdgg«      t        g d(¢g d)¢g d$¢g«      k(  sJ ‚t        d	d	d | d«      i«      t        g d*¢g d+¢g d,¢g d*¢g«      k(  sJ ‚t        t6        d-„ «       t        ddddg«      j9                  «       ddggk(  sJ ‚t        dddddgg«      j9                  «       ddgddggk(  sJ ‚t        t6        d.„ «       t        t6        d/„ «       t        d0g«      j;                  t<        «      sJ ‚t        d ddi«      j>                  dk(  sJ ‚t        d ddi«      j>                  d1k(  sJ ‚t        d d ddi«      j>                  d1k(  sJ ‚t        t6        d2„ «       t        t6        d3„ «       t        t6        d4„ «       t#        d«      t#        d5«      }}t        dddg«      jA                  «       dk(  sJ ‚t        dgg«      jA                  «       dk(  sJ ‚t        d6«      jA                  «       d7k(  sJ ‚t        |df|d|z  ff«      jA                  «       d|z  |z  |z
  k(  sJ ‚t        d8«      jA                  «       dk(  sJ ‚t        d9«      jA                  «       d:k(  sJ ‚t        d;«      jA                  «       dk(  sJ ‚t        d<«      jA                  «       d=k(  sJ ‚t        d>«      jA                  «       d?k(  sJ ‚t        d@«      jA                  «       dAk(  sJ ‚t        dB«      jA                  «       dCk(  sJ ‚t        dD«      jA                  «       dk(  sJ ‚t        dE«      jA                  «       dFk(  sJ ‚t        dG«      jA                  «       dHk(  sJ ‚ | d	«      }|d d…d d…f    | d«      k(  sJ ‚|dd	…dd…f    |d«      k(  sJ ‚t        dddI„ «      }|dd d …f   t        dddJ«      k(  sJ ‚|dd…df   t        dddK«      k(  sJ ‚t        g dL¢g dM¢g dN¢g dO¢g«      }|d d …d7f   t        d	dg dP¢«      k(  sJ ‚|dQd …d d …f   t        g dN¢g dO¢g«      k(  sJ ‚t        ddgdd	gg«      dgdgf   t        d	gg«      k(  sJ ‚ |d	«      }
 | d«      |
dd	…dd	…f<   |
t        g dR¢«      k(  sJ ‚tC        |
j                  «       «      dk(  sJ ‚ | d«      |
d d…d d…f<   |
 | d	«      k(  sJ ‚t        d	ddS«      |
d d …df<   |
t        g dT¢«      k(  sJ ‚ |d	«      |
d d …d d …f<   |
 |d	«      k(  sJ ‚d;|
d d …d d …f<   |
t        d;«      k(  sJ ‚ddg|
d d…df<   |
t        dU«      k(  sJ ‚ | d«      }|jE                  ddV«      t        ddVdW«      k(  sJ ‚t        dd	dX„ «      }|jE                  d	d«      t        g dY¢«      k(  sJ ‚|jE                  dd
«      t        dZd[g«      k(  sJ ‚ | d«      }|jG                  d\„ «       | d«      dz  k(  sJ ‚|jG                  d]„ «       |d«      k(  sJ ‚tI        t        |df|d|z  ff«      «      t        tK        |«      dftK        |«      dtK        |«      z  ff«      k(  sJ ‚t        g d^¢g d_¢g d`¢g da¢g«      }|jM                  «       \  }}}|jN                  sJ ‚|jP                  sJ ‚||z  jS                  |db«      |z
   |d	«      k(  sJ ‚t        g dc¢g dd¢g de¢g df¢g«      }|jM                  «       \  }}}|jN                  sJ ‚|jP                  sJ ‚||z  jS                  |db«      |z
   |d	«      k(  sJ ‚t#        d«      t#        d5«      t#        dg«      }}}t        d|dfd|df|d|ff«      Š"‰"jM                  «       \  }}}|jN                  sJ ‚|jP                  sJ ‚||z  jS                  |db«      ‰"z
   |d«      k(  sJ ‚t        g dh¢g di¢g dj¢g«      }	t        ddg dk¢«      }|	|z  }|	jU                  |«      }||k(  sJ ‚t        g dl¢g dm¢g dn¢g«      }	t        ddg do¢«      }|	|z  }|	jU                  |«      }||k(  sJ ‚ | d	«      }	|	jW                  «        | d	«      k(  sJ ‚|	jW                  dp¬q«       | d	«      k(  sJ ‚|	jW                  dr¬q«       | d	«      k(  sJ ‚t        g dh¢g di¢g ds¢g«      }	t        t        |	«      jW                  «       «      }|	|z   | d«      k(  sJ ‚|	jW                  dp¬q«      |k(  sJ ‚|	jW                  dr¬q«      |k(  sJ ‚t        g dh¢g di¢g dt¢g«      }	t        t        |	«      jW                  «       «      }|	|z   | d«      k(  sJ ‚|	jW                  dp¬q«      |k(  sJ ‚|	jW                  dr¬q«      |k(  sJ ‚t        ddg d(¢«      }t        ddg du¢«      }|jY                  |«      t        ddg dv¢«      k(  sJ ‚|j[                  d«      dz  dwk(  sJ ‚t        ddt\        z   fdxf«      }|j^                  t        ddt\        z
  gdd	gg«      k(  sJ ‚|t        ddg dy¢«      z  |k(  sJ ‚|t        ddg dz¢«      z   t        ddt\        z   gd	dgg«      k(  sJ ‚|j                   | d«      «      t        ddt\        z   gdd	gddgddgg«      k(  sJ ‚|ja                  d | d«      «      t        ddt\        z   gdd	gddgddgg«      k(  sJ ‚|jc                  dt        j                  dd«      «      t        ddt\        z   dgg d{¢g«      k(  sJ ‚|je                  d|¬}«      rJ ‚t        j.                  d«      dz  Š"d7‰"d<   ‰"jg                  dˆ"fd~„«       ‰"t        g d¢g d€¢g d�¢g«      k(  sJ ‚t        j.                  d«      Š"‰"ji                  d«       ‰"t        g d‚¢g d‚¢g d‚¢g«      k(  sJ ‚ | d«       | d«      jk                  «       k(  sJ ‚t        g dƒ¢g d„¢g d…¢g«      }|jk                  «       t        g d†¢g d‡¢g dˆ¢g«      k(  sJ ‚t        g d(¢g d‰¢g dŠ¢g«      }|jk                  «       t        g d‹¢g dŒ¢g d‹¢g«      k(  sJ ‚t#        d«      }t#        d5«      }t        dd|dz  |z  d|dz  z  ||z  z   g«      }||g}|jm                  |«      t        d|z  |z  |dz  g|d	|z  |z   gg«      k(  sJ ‚t        dd||dz  |dz  z  g«      }|jm                  |«      t        ddgd|z  |dz  z  |dz  dz  |dz  z  gg«      k(  sJ ‚t        ddgddgg«      }	|	jo                  «       \  }}tp        }|t        d |d7d«      z   |d«      dz   |d«      dz   |d7d«      z  z  gdd |d7d«      z  z   |d«       dz   |d«      dz   |d7d«      z  z  gg«      k(  sJ ‚|t        d |dd«      z  d�d |d7d«      z  z  gd |d«      dz   |dd«      z  gg«      k(  sJ ‚||z  |	k(  sJ ‚|jr                  |z   | d«      k(  sJ ‚tp        }t        g dŽ¢g d�¢g«      Š"‰"ju                  «       \  }}|t        dd |d«       d�z   |d‘«      d�z  gdd |d�«      d�z   |d’«      d�z  gg«      k(  sJ ‚t        g d“¢g d”¢g d•¢g d–¢g«      Š"‰"ju                  «       \  }}|t        g d—¢g d˜¢dddddd |d«      dz  gg d™¢g«      k(  sJ ‚‰"jw                  «       }|d   t        g dš¢«      k(  sJ ‚|d   t        g d›¢«      k(  sJ ‚|d   t        g dœ¢«      k(  sJ ‚|d   t        ddddd |d7«      dz  dg«      k(  sJ ‚t#        d«      }t#        d5«      } | d«      } | jy                  |«      t{        |dz
  dz  «      k(  sJ ‚| jy                  |«      t{        |dz
  dz  «      k(  sJ ‚t        g d�¢«      Š"‰"j}                  «       }!t        |!j�                  «       «      g dž¢k(  sJ ‚tp        }t        g d$¢g d&¢g d%¢g«      Š"‰"jƒ                  «       ddt        g d$¢«      t        g d&¢«      t        g d%¢«      gfgk(  sJ ‚t        g dŸ¢g d ¢g d%¢g«      Š"‰"jƒ                  «       ddt         |d7«      dz   |d«      dz  dg«      gfddt        g d&¢«      gfddt        g d¡¢«      gfgk(  sJ ‚‰"j                  dd«      t        ddi «      k(  sJ ‚t        dddd¢dd£d¢d¤d£d¢dd¥œ	«      }	|	j…                  «       g d¦¢k(  sJ ‚|	j‡                  «       g d§¢k(  sJ ‚t        j.                  d«      j‰                  «       dk(  sJ ‚y c c}w c c}w # t         $ r Y �Œñw xY w)¨Nc                 ó,   — t        j                  | «      S ©N)r   r   ©Úns    r   Ú
sparse_eyez&test_sparse_matrix.<locals>.sparse_eye   s   € Ü×Ñ Ó"Ð"r   c                 ó,   — t        j                  | «      S r"   )r   r   r#   s    r   Úsparse_zerosz(test_sparse_matrix.<locals>.sparse_zeros   s   € Ü×!Ñ! !Ó$Ð$r   c                  ó   — t        dd«      S ©Nr   r   r   © r   r   ú<lambda>z$test_sparse_matrix.<locals>.<lambda>   s   € œl¨1¨aÓ0€ r   ©©r   r   ©r   r   r   )ÚMutableDenseMatrixr   r   r   é   r   ©r   r   r   )©r   r   r.   é   r-   )r2   )r3   r   )r2   )r3   r   )r   r-   )©r   r   )r   r   )r   r0   )r4   )r   r   é   r.   r2   é   )r   r   z	c = a @ bÚxé
   é   )iü  i¡  i,*  i�7  )r   r   r   )r   r   r   )r0   é   r   )	i"  i  éû   iÀ  i¸  ip  i¾  iº  i±  )r   r   r   ©r   r   r   ©r   r   r   )r   r   r   ©r   r   r   ©r   r   r   ©r   r   r   r   )r   r   r   r   ©r   r   r   r   c                  ó    — t        ddddi«      S )Nr   r1   r   r*   r   r   r+   z$test_sparse_matrix.<locals>.<lambda>¼   s   € œ|¨A¨q°6¸1°+Ó>€ r   c                  ó   — t        dddg«      S )Nr   r   r   r*   r   r   r+   z$test_sparse_matrix.<locals>.<lambda>¿   s   € œ|¨A¨q°1°#Ó6€ r   c                  ó"   — t        ddddgg«      S r)   r   r*   r   r   r+   z$test_sparse_matrix.<locals>.<lambda>À   s   € œ|¨A¨q°A°q°6°(Ó;€ r   gš™™™™™¹?r4   c                  ó"   — t        d dddgg«      S r)   r   r*   r   r   r+   z$test_sparse_matrix.<locals>.<lambda>Æ   s   € œ|¨D°!°q¸!°f°XÓ>€ r   c                  ó"   — t        dd ddgg«      S r)   r   r*   r   r   r+   z$test_sparse_matrix.<locals>.<lambda>Ç   s   € œ|¨A¨t°q¸!°f°XÓ>€ r   c                  ó4   — t        ddt        d«      ddœ«      S )Nr   r   )r   r1   )r   r   r*   r   r   r+   z$test_sparse_matrix.<locals>.<lambda>È   s   € œ|¨A¨q¼4À»7ÈAÑ2NÓO€ r   Úy))éýÿÿÿr   )é   éûÿÿÿéÿÿÿÿ)©r   r   r   r>   )r   r   r0   ))r   éþÿÿÿr   r3   )rN   r   rN   r   ©r   rN   r3   r   ©r3   r   r   r   ißþÿÿ)©r   r   r   r   )r3   r0   r5   rJ   ©é	   r8   é   r:   ©é   é   r9   é   )©r   r   r   r   r   ©r   r   r   r   r   ©r   r   r   r   r   ©r   r   r   r   r   )r   r   r   r   r   i  ))r   r   r   r   r:   )r   r   r   r   r   )r   r   r   rL   r   )r   r   rL   r   rJ   )r   r   r   r   r0   iÉÿÿÿ))rK   r   r   r   r3   )r   éüÿÿÿr   r   r3   )r   r   rI   r   r3   )r   r   r   rN   r3   )r   r   r   r   rL   i�-  ))r   r   r   r   )rN   r   r   r   rO   rP   é<   )©r   r   r   r   )r3   r   r   r   )rS   r8   rT   r   rU   )rY   rZ   r[   r\   )r   r   r   r   r   éó   ))r   r5   rL   r   r   )r   r   r   r   r   )rN   r   r5   r   r   )rI   rN   r   r3   r   )r   r   r   r   r   é{   c                 ó   — | |z   S r"   r*   ©ÚiÚjs     r   r+   z$test_sparse_matrix.<locals>.<lambda>  ó
   € ¨¨Q©€ r   ©r   r   r   )r   r   )r   r   r   r   )r   r3   r0   r5   )rJ   rS   r8   rT   )r:   rV   rW   r9   )r   r5   rT   r9   rN   )r@   r@   rA   )r   r   r   r   rQ   )r_   )r   r   r   r   )r   r   r   r   )r   r   r   r   ))r   r   r   r   )r   r0   r5   rJ   rR   rU   rS   )	r   r   r   r   r   r   r   r   r   c                 ó   — | |z   S r"   r*   rc   s     r   r+   z$test_sparse_matrix.<locals>.<lambda>:  rf   r   )rg   )r   r   r   )r   r   r   ©r   r   r3   )r   r   r   r   r   r   )r   r   r   r   r   r3   c                 ó   — d| z  S )Nr   r*   ©r7   s    r   r+   z$test_sparse_matrix.<locals>.<lambda>B  s
   €  ! A¡#€ r   c                  ó   — y©Nr   r*   rk   s    r   r+   z$test_sparse_matrix.<locals>.<lambda>C  ó   � r   )r   r   r3   r   )r   r   r5   r   )rJ   r   r   r   )rN   r0   r   r   Úbackward)r0   rN   r5   r   )r   r   r0   r5   )r   rN   r5   r   )i÷ÿÿÿr   r0   r   Úz)r   r   r3   )r   r0   r   )rJ   r   r0   )r   r5   r3   )r   rL   r   )r3   r8   r5   )rJ   r   r   )rL   r   r3   ÚCH©ÚmethodÚLDL)r5   r   r0   )r3   r   r0   ri   )rN   r   rN   rW   ©r   r   )r   r   r   r   )r   r   r   r   )r   r   r   F)Úsimplifyc                 ó   •— | d‰|df   z  z   S )Nr   r   r*   )Úvrd   ÚMs     €r   r+   z$test_sparse_matrix.<locals>.<lambda>¸  s   ø€ ˜Q  1 Q¨ T¡7¡™]€ r   )r   r   r   )rL   r   r   ©r   r   r   )r   r   r   )r   r   r   )r   r0   r   )r   r   r0   )é   éúÿÿÿr|   )éôÿÿÿr   r   )rI   r   r   )r   r3   r0   )r5   rJ   rS   )rI   r0   rI   )r0   r}   r0   rJ   )r3   r5   r   r   )r   r0   r   rL   é   rV   r|   )r   r   r   r   r0   r   r   )rN   r|   r   rN   iøÿÿÿr   r   )r   rS   r   r   r0   r0   r   )rL   rI   r   r   r   rS   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )rI   r   r   r   r   r   r   )r   r   r   r   r   r   r   )rN   r   r   rN   r   r   r   ))r   r   rL   ©r   r   r   )rL   r   r   )rL   r   r   )r3   r   r   )r   r   r   r   r:   rX   é   )	r   )r   rS   )r   r   )r   r5   )r   rS   )r   r   )r3   r5   )r0   r   )rS   r5   )	©r   r   r6   ©r   rS   r:   ©r   r   r6   ©r   r5   rX   ©r   rS   r:   ©r   r   r€   ©r3   r5   rX   ©r0   r   r:   ©rS   r5   r6   )	r�   r†   rˆ   rƒ   r„   r‡   r‰   r‚   r…   )Er   Ú	TypeErrorr   Úsympy.matricesr/   r   Úrow_joinÚcol_joinÚtypeÚranger   Úhstackr   ÚvstackÚtodokÚevalÚSyntaxErrorr   Ú
isinstanceÚcolsÚrowsÚrow_delÚcol_delr   Úcol_swapÚrow_swapÚcopyÚ
ValueErrorÚtolistÚhasr   ÚshapeÚdetÚlenÚreshapeÚ	applyfuncÚabsr	   ÚLUdecompositionÚis_lowerÚis_upperÚpermute_rowsÚLUsolveÚinvÚcrossÚnormr   ÚCÚ
row_insertÚ
col_insertÚis_symmetricÚcol_opÚfillÚcofactor_matrixÚjacobianÚQRdecompositionr   ÚTÚrrefÚ	nullspaceÚcharpolyr
   Ú	eigenvalsÚsortedÚkeysÚ
eigenvectsÚrow_listÚcol_listÚnnz)#r%   r'   r   r/   Úbr$   Úsparse_matricesÚcr7   ÚAÚmr   rH   Úm0Úm1Úm2ÚtestmatÚLÚUÚprp   ÚsolnÚAinvÚv1Úv2ÚtestÚsymsÚQÚRÚoutÚtmpÚbasisÚsparse_eye3Úvalsry   s#                                     @r   Útest_sparse_matrixrÛ      st  ø€ ò#ò%ô Œ9Ñ0Ô1äð ó 	€Aô ˜‹?˜aÒÐÐå1Ü˜BÓ€AÙ˜A˜q˜6Ó"€AØ�:‰:�a‹=˜AÒÐÐØ�:‰:�a‹=˜AÒÐÐÜ�—
‘
˜1“Ó¤$ q£'Ò)Ð)Ð)Ü�—
‘
˜1“Ó¤$ q£'Ò)Ð)Ð)ô :?¸q»ÖB°A”|×)Ñ)¨!¨QÕ/ÐB€OÐBÜ×Ñ Ð0´F¸1¸aÀÓ4DÒDÐDÐDÜ9>¸q»ÖB°A”|×)Ñ)¨!¨QÕ/ÐB€OÐBÜ×Ñ Ð0´F¸1¸aÀÓ4DÒDÐDÐDô 	ð ó 	€Að
 €A€a�DØˆT‰7�aŠ<Ðˆ<Ø€A€a�Dà€A€d�GØ”ð ó ò ð ð ð €A€d�GØ”ð ó ò ð ð ð €A€d�GØ”ð ó ò ð ð ð �7‰7‹9 ¨AÑ.Ò.Ð.Ð.ô 	ð ó 	€Aô 	ð ó 	€Að
 	
ˆ!‰€AØˆT‰7�aŠ<Ðˆ<ØˆT‰7�aŠ<Ðˆ<ØˆT‰7�aŠ<Ðˆ<ØˆT‰7�aŠ<Ðˆ<ØˆT‰7�bŠ=Ðˆ=ØˆT‰7�aŠ<Ðˆ<ð
Üˆ[Ôð �‰w˜!Š|Ðˆ|Ø�‰w˜!Š|Ðˆ|Ø�‰w˜!Š|Ðˆ|Ø�‰w˜!Š|Ðˆ|Ø�‰w˜"Š}Ðˆ}Ø�‰w˜!Š|Ðˆ|äˆs‹€Aà	ŒF�3‹K‰€AÜ�aœÔ&Ð&Ð&ØˆT‰7�aŠ<Ðˆ<ØˆT‰7�a˜‘cŠ>Ðˆ>ØˆT‰7�a˜‘cŠ>Ðˆ>ØˆT‰7�aŠ<Ðˆ<à	ˆA‰€AÜ�aœÔ&Ð&Ð&ØˆT‰7�aŠ<Ðˆ<ØˆT‰7�cŠ>Ðˆ>ØˆT‰7�cŠ>Ðˆ>ØˆT‰7�aŠ<Ðˆ<ô 	�q˜!�f˜q !˜fÐ%Ó&€AØˆq‰D‘!ˆ9Ò2Ò2Ð2Ð2Ü’i¢ªJÐ7Ó8€AØˆq‰D‘!ˆ9ÒEÒEÐEÐEô 	ˆs‹€AÜ�q˜!�f˜q !˜fÐ%Ó&€AØ	€AØ�6‰6�Q—V‘VÒÐÐØ�6‰6�QŠ;Ðˆ;Ø‰Qˆ4�A�q˜!˜Q�<ÒÐÐÜ�Q˜˜A˜q ! Q˜<Ó(€AØ	€AØ�6‰6�Q—V‘VÒÐÐØ�6‰6�QŠ;Ðˆ;Ø‰Qˆ4�A�q˜!˜Q�<ÒÐÐà�Š6€Mˆ6Ù�1‹€AØ€A‡I�Iˆa„LØ”Ú&Úðó ò ð ð ñ 	�1‹€AØ€A‡I�Iˆa„LØ”Ø ˜VØˆ€FØˆ€Fðó ò ð ð ô 	×Ñ˜Ó€AØ€A€d�GØ€A‡J�Jˆq�!ÔØ”ÚÚÚðó ò ð ð ð €A‡J�Jˆq�!ÔØ”ÚÚÚðó ò ð ð ô
 	�Q˜˜A˜q˜6Ó"€AØ	�‰‹€AØ	�‰‹€AØˆQ‰4�1Š9Ðˆ9Ø‡I�Iˆa„LØ”˜Q  2Ó&Ò&Ð&Ð&Ø‡I�Iˆa„LØ”˜Q  A 3Ó'Ò'Ð'Ð'äš Q¨ F¨Q¨CÐ0Ó1´VÚÚÚð=ó 6ò ð ð ô ˜˜1˜v¡z°!£}Ð5Ó6¼&ÚÚÚÚð	Bó ;ò ð ð ô
 Œ:Ñ>Ô?Ü˜˜1˜q !˜fÓ%×,Ñ,Ó.°A°q°6°(Ò:Ð:Ð:Ü˜˜1˜q 1 a &˜kÓ*×1Ñ1Ó3¸¸A¸ÀÀAÀÐ7GÒGÐGÐGÜ
Œ:Ñ6Ô7Ü
Œ:Ñ;Ô<Ü˜˜Ó×!Ñ!¤%Ô(Ð(Ð(ä˜˜v q˜kÓ*×0Ñ0°FÒ:Ð:Ð:Ü˜˜v q˜kÓ*×0Ñ0°FÒ:Ð:Ð:Ü˜˜d V¨Q KÓ0×6Ñ6¸&Ò@Ð@Ð@Ü
Œ:Ñ>Ô?Ü
Œ:Ñ>Ô?Ü
Œ:ÑOÔPô �#‹;œ˜s›€q€Aä˜˜1˜q˜cÓ"×&Ñ&Ó(¨AÒ-Ð-Ð-ä˜!˜˜Ó×"Ñ"Ó$¨Ò)Ð)Ð)äÐ*Ó+×/Ñ/Ó1°RÒ7Ð7Ð7ä˜!˜Q˜ ! Q q¡S Ð*Ó+×/Ñ/Ó1°Q°q±S¸±U¸Q±YÒ>Ð>Ð>äð &ó 'ç'*¡s£u°ò2ð 2ð 2ô ð ,ó -÷ .1©S«U°dò;ð ;ð ;ô
 ð -ó .÷ /2©c«e°qò9ð 9ð 9ô
 ð ,ó -÷ .1©S«U°cò	:ð :ð :ô ð /ó 0÷ 14±³¸ò	=ð =ð =ô ð 1ó 2÷ 36±#³%¸5ò	Að Að Aô ð ,ó -÷ .1©S«U°bò9ð 9ð 9ô
 ð -ó .÷ /2©c«e°qò9ð 9ð 9ô
 ð ,ó -÷ .1©S«U°cò	:ð :ð :ô ð /ó 0÷ 14±³¸ò	=ð =ð =ñ 
�A‹€BØˆbˆqˆb�"�1�"ˆf‰:™ A›Ò&Ð&Ð&Øˆa�ˆc�1�Q�3ˆh‰<™<¨›?Ò*Ð*Ð*ä	�a˜Ñ.Ó	/€BØˆa’ˆd‰8”| A q¨)Ó4Ò4Ð4Ð4Øˆa�ˆc�1ˆf‰:œ a¨¨FÓ3Ò3Ð3Ð3ä	Ú	’|¢^Ò5EÐFó
H€BàŠa�ˆe‰9œ Q¨ª>Ó:Ò:Ð:Ð:Øˆb‰c’1ˆf‰:œ¢~Ò7GÐ&HÓIÒIÐIÐIä˜!˜Q˜ ! Q Ð(Ó)¨1¨#°¨s¨(Ñ3´vÀ¸s¸e³}ÒDÐDÐDñ 	�Q‹€AÙ˜Q“-€A€aˆ€cˆ1ˆQˆ3€h�KØ”ò ,ó -ò -ð -ð -ô ˆq�w‰w‹y‹>˜QÒÐÐÙ˜1“€A€b€q€bˆ"ˆ1ˆ"€f�IØ‘
˜1“ÒÐÐÜ˜1˜a Ó.€A‚aˆ€d�GØ”ò ,ó -ò -ð -ð -ñ ˜1‹o€A‚aŠ€d�GØ‘˜Q“ÒÐÐØM€A‚aŠ€d�GØ”ð 0ó 1ò 1ð 1ð 1ð �1ˆv€A€b€q€bˆ!€e�HØ”ð 0ó 1ò 1ð 1ð 1ñ 
�A‹€BØ�:‰:�a˜Óœ|¨A¨qÐ2MÓNÒNÐNÐNÜ	�a˜Ñ.Ó	/€BØ�:‰:�a˜ÓÜÒAÓBòCð Cð Cà�:‰:�a˜ÓÜÐ(Ð*<Ð=Ó>ò?ð ?ð ?ñ 
�A‹€BØ�<‰<™Ó&©*°Q«-¸©/Ò9Ð9Ð9Ø�<‰<™Ó%©°a«Ò8Ð8Ð8ô Œ|˜a ˜V a¨¨1© XÐ.Ó/Ó0´LÄ3ÀqÃ6È1À+ÔPSÐTUÓPVÐXYÔZ]Ð^_ÓZ`ÑX`ÐOaÐAbÓ4cÒcÐcÐcô šMÚ)Ú)Ú)ð+ó ,€Gð ×%Ñ%Ó'�G€A€qˆ!Ø�:Š:Ðˆ:Ø�:Š:Ðˆ:Øˆa‰C×Ñ˜a Ó,¨wÑ6¹,Àq»/ÒIÐIÐIäšNÚ*Ú*Ú*ð,ó -€Gð ×%Ñ%Ó'�G€A€qˆ!Ø�:Š:Ðˆ:Ø�:Š:Ðˆ:Øˆa‰C×Ñ˜a Ó,¨wÑ6¹,Àq»/ÒIÐIÐIä�S‹kœ6 #›;¬¨s«ˆ!€q€AÜ��A�q�	˜A˜q !˜9 q¨!¨Q iÐ0Ó1€AØ×ÑÓ!�G€A€qˆ!Ø�:Š:Ðˆ:Ø�:Š:Ðˆ:Øˆa‰C×Ñ˜a Ó,¨qÑ0±LÀ³OÒCÐCÐCô 	’iÚÚð!ó 	"€Aô 	�Q˜š9Ó%€AØ	ˆ!‰€AØ�9‰9�Q‹<€DØ�1Š9Ðˆ9Ü’jÚ Ú ð"ó 	#€Aô 	�Q˜š:Ó&€AØ	ˆ!‰€AØ�9‰9�Q‹<€DØ�1Š9Ðˆ9ñ 	�1‹€AØ�5‰5‹7‘j “mÒ#Ð#Ð#Ø�5‰5˜ˆ5Ó¡¨A£Ò.Ð.Ð.Ø�5‰5˜ˆ5Ó¡*¨Q£-Ò/Ð/Ð/ä’iÚÚð!ó 	"€Aô œ˜q›	Ÿ™›Ó(€DØˆT‰6‘Z “]Ò"Ð"Ð"Ø�5‰5˜ˆ5Ó Ò%Ð%Ð%Ø�5‰5˜ˆ5Ó $Ò&Ð&Ð&ä’iÚÚð!ó 	"€Aô œ˜q›	Ÿ™›Ó(€DØˆT‰6‘Z “]Ò"Ð"Ð"Ø�5‰5˜ˆ5Ó Ò%Ð%Ð%Ø�5‰5˜ˆ5Ó $Ò&Ð&Ð&ô 
��1’iÓ	 €BÜ	��1’iÓ	 €BØ�8‰8�B‹<œ6 ! QªÓ4Ò4Ð4Ð4Ø�7‰7�1‹:�q‰=˜BÒÐÐô 	�q˜!œa™%�j &Ð)Ó*€AØ�3‰3”,Ø	
ˆA”‰Eˆ
Ø	
�ˆ
ð ó ò ð ð ð ŒV�A�qš,Ó'Ñ'¨1Ò,Ð,Ð,ØŒv�a˜šLÓ)Ñ)¬\Ø	
ˆA”‰Eˆ
Ø	
�ˆ
ð;ó .ò ð ð ð �:‰:‘j “mÓ$¬Ø	
ˆA”‰Eˆ
Ø	
�ˆ
Ø	
�ˆ
Ø	
�ˆ
ð	6ó )ò ð ð ð �<‰<˜™: a›=Ó)¬\Ø	
ˆA”‰Eˆ
Ø	
�ˆ
Ø	
�ˆ
Ø	
�ˆ
ð	;ó .ò ð ð ð �<‰<˜œ<×-Ñ-¨a°Ó3Ó4¼Ø	
ˆA”‰E�1ˆÚðFó 9ò ð ð ð �~‰~ uˆ~Ô-Ð-Ð-ô 	×Ñ˜Ó˜AÑ€AØ€A€d�GØ‡H�HˆQÓ*Ô+Ø”ÚÚÚðó ò ð ð ô 	×Ñ˜Ó€AØ‡F�Fˆ1„IØ”ÚÚÚðó ò ð ð ñ �a‹=™J q›M×9Ñ9Ó;Ò;Ð;Ð;Üš¢IªyÐ9Ó:€DØ×ÑÓ!Ü’l¢K²Ð<Ó=ò>ð >ð >äš¢IªyÐ9Ó:€DØ×ÑÓ!Ü’k¢;²Ð<Ó=ò>ð >ð >ô 	ˆs‹€AÜˆs‹€AÜ�Q˜˜A˜q™D ™F A a¨¡d¡F¨Q¨q©S¡LÐ1Ó2€AØˆqˆ6€DØ�:‰:�dÓœv¨¨!©¨A©¨q°!©t }°q¸!¸A¹#À¹'°lÐ&CÓDÒDÐDÐDä�Q˜˜A˜q !™t A q¡D™y˜>Ó*€AØ�:‰:�dÓœ|¨a°¨V°a¸±c¸!¸Q¹$±hÀÀ1ÁÀQÁÀqÈ!ÁtÁÐ5LÐ,MÓNÒNÐNÐNô 	��A�˜˜A˜ÐÓ €AØ×ÑÓ�D€A€qÜ€AØ”Ø‰a��A‹h‰;™!˜A›$˜q™&¡1 Q£4¨¡6©A¨b°!«HÑ"4Ñ4Ð5Ø	
ˆ1‰a��A‹h‰;‰™!˜A›$˜˜q™¡1 Q£4¨¡6©A¨b°!«HÑ"4Ñ4Ð5ð7ó 8ò 8ð 8ð 8ð ”Ø	
‰Aˆa�‹G‰˜˜1™a  A›h™;™Ð'Ø‘a˜“d˜1‘f™q  A›wÑ&Ð'ð)ó *ò *ð *ð *ð ˆQ‰3�!Š8€Oˆ8Ø�3‰3�‰7‘j “mÒ#Ð#Ð#ä€Aô 	’lÚðó 	€Aà�v‰v‹x�H€CˆØ”&˜1˜a¡! A£$  r¡©1¨R«5°©8Ð4Ø˜a¡! A£$ r¡'©1¨R«5°©8Ð4ð6ó 7ò 7ð 7ð 7ô 	Ò/Ú/Ú/Ú/ð1ó 	2€Að
 �v‰v‹x�H€CˆØ”&Ò/Ú/Ø˜a  A q¨!©Q¨q«T°!©VÐ4Ú/ð1ó 2ò 2ð 2ð 2ð
 �K‰K‹M€EØ�‰8”vÒ4Ó5Ò5Ð5Ð5Ø�‰8”vÒ3Ó4Ò4Ð4Ð4Ø�‰8”vÒ5Ó6Ò6Ð6Ð6Ø�‰8”v˜q ! Q¨¨1©a°«e°A©g°qÐ9Ó:Ò:Ð:Ð:ô 	ˆs‹€AÜˆs‹€AÙ˜Q“-€KØ×Ñ Ó"¤h°°A±¸©zÓ&:Ò:Ð:Ð:Ø×Ñ Ó"¤h°°A±¸©zÓ&:Ò:Ð:Ð:ô 	ò ó 	€Að �;‰;‹=€DÜ�$—)‘)“+Ó¢*Ò,Ð,Ð,ä€AÜ’	ÚÚðó 	€Að �<‰<‹>˜q !ÜŠyÓÜŠyÓÜŠyÓð&ð ð ò ð ð ô 	’	ÚÚðó 	€Að �<‰<‹>˜q !¤f©a°«e°A©g±q¸³t¸A±v¸qÐ-AÓ&BÐ%CÐDØ  !¤fªYÓ&7Ð%8Ð9Ø  !¤fªYÓ&7Ð%8Ð9ð;ò ;ð ;ð ;ð �7‰7�1�a‹=œL¨¨A¨rÓ2Ò2Ð2Ð2Ü	�b˜" r°2¸rÈ2ÐWYÐceÐoqÐ{}ð  HJñ  Kó  
L€AØ�:‰:‹<ò  Hò  Hð  Hð  HØ�:‰:‹<ò  Hò  Hð  Hð  HÜ×Ñ˜AÓ×"Ñ"Ó$¨Ò)Ð)Ñ)ùòm CùâBøôh ò Úðús%   ÃAYÄ&AYÈ5AY! ÁY!	AY.ÁY-AY.c                  ó`   — t        ddgg«      j                  d«      t        ddgg«      k(  sJ ‚y )Nr   r   r   r0   )r   Úscalar_multiplyr*   r   r   Útest_scalar_multiplyrÞ   '  s1   € Ü˜!˜Q˜˜Ó!×1Ñ1°!Ó4¼ÀqÈ!ÀfÀXÓ8NÒNÐNÑNr   c                  óR   — t        d«      j                  «       t        d«      k(  sJ ‚y )N©r4   ru   ))r   r   )r   r   )r   Ú	transposer*   r   r   Útest_transposerâ   +  s,   € ÜÐ(Ó)×3Ñ3Ó5ÜÐ%Ó&ò'ð 'ñ 'r   c                  ó|   — t        d«      j                  «       dk(  sJ ‚t        d«      j                  «       dk(  sJ ‚y )Nrà   r3   )r   )r   r   r   )r   Útracer*   r   r   Ú
test_tracerå   0  s<   € ÜÐ(Ó)×/Ñ/Ó1°QÒ6Ð6Ð6ÜÐ(Ó)×/Ñ/Ó1°QÒ6Ð6Ñ6r   c                  ó„   — t        d«      j                  «       g d¢k(  sJ ‚t        d«      j                  «       g d¢k(  sJ ‚y )Nrà   )r<   rg   ©r   r   r   ©r   r   r   )r<   rç   rg   rè   )r   r¿   rÀ   r*   r   r   Ú
test_CL_RLré   5  sJ   € ÜÐ(Ó)×2Ñ2Ó4Ú4ò5ð 5ð 5äÐ(Ó)×2Ñ2Ó4Ú4ò5ð 5ñ 5r   c                  ó0  — t        d«      t        d«      z   t        d«      k(  sJ ‚t        ddd„ «      } t        ddd„ «      }t        | j                  «       «      t        |j                  «       «      z   t        | |z   j                  «       «      z
  dkD  sJ ‚y )Nr,   )r.   r-   )r1   r1   éd   c                 ó2   — t        |dk7  xr | |z  dk(  «      S rm   ©Úintrc   s     r   r+   ztest_add.<locals>.<lambda>?  ó   € ¬C°°Q±Ò0E¸1¸q¹5ÀA¹:Ó,F€ r   c                 ó2   — t        | dk7  xr || z  dk(  «      S rm   rí   rc   s     r   r+   ztest_add.<locals>.<lambda>@  rï   r   r   )r   r¢   r’   )r   rÂ   s     r   Útest_addrñ   <  s‡   € ÜÐ(Ó)¬LÐ9IÓ,JÑJÜÐ%Ó&ò'ð 'ð 'ä�S˜#ÑFÓG€AÜ�S˜#ÑFÓG€AÜ�—‘“	‹NœS §¡£›^Ñ+¬c°1°q±5·-±-³/Ó.BÑBÀQÒFÐGÑFr   c                  óX  — t        t        d„ «       t        t        d„ «       t        t        d„ «       t        t        d„ «       t        t        d„ «       t        t        d„ «       t        t        d„ «       t        t        d„ «       t        t        d	„ «       t        t        d
„ «       y )Nc                  ó   — t        ddd„ «      S )Ngffffffö?r   c                  ó   — yrm   r*   rc   s     r   r+   z/test_errors.<locals>.<lambda>.<locals>.<lambda>E  rn   r   r   r*   r   r   r+   ztest_errors.<locals>.<lambda>E  s   € œ|¨C°±NÓC€ r   c                  ó"   — t        g d¢ddg«      S )Nr>   r   r   r   r*   r   r   r+   ztest_errors.<locals>.<lambda>F  s   € œlª9°q¸!°fÓ=€ r   c                  ó*   — t        ddgddgg«      d   S ©Nr   r   r   r   r>   r   r*   r   r   r+   ztest_errors.<locals>.<lambda>G  s   € œ|¨a°¨V°a¸°VÐ,<Ó=¸iÑH€ r   c                  ó*   — t        ddgddgg«      d   S )Nr   r   r   r   r3   r   r*   r   r   r+   ztest_errors.<locals>.<lambda>H  s   € œ|¨a°¨V°a¸°VÐ,<Ó=¸aÑ@€ r   c                  ó*   — t        ddgddgg«      d   S r÷   r   r*   r   r   r+   ztest_errors.<locals>.<lambda>I  s   € œ|¨a°¨V°a¸°VÐ,<Ó=¸gÑF€ r   c                  óX   — t        ddgddgg«      j                  ddgt        «       «      S )Nr   r   r   r   r   )r   Úcopyin_listÚsetr*   r   r   r+   ztest_errors.<locals>.<lambda>K  s+   € ”˜q !˜f q¨! fÐ-Ó.×:Ñ:¸A¸q¸6Ä3Ã5ÓI€ r   c                  ó*   — t        ddgddgg«      d   S )Nr   r   r   r   r4   r   r*   r   r   r+   ztest_errors.<locals>.<lambda>M  s   € œL¨1¨a¨&°1°a°&Ð)9Ó:¸4Ñ@€ r   c                  ó:   — t        g d¢«      j                  d«      S )Nr>   r   )r   r¬   r*   r   r   r+   ztest_errors.<locals>.<lambda>N  s   € œlª9Ó5×;Ñ;¸AÓ>€ r   c                  ó&   — t        ddddg«      d   S )Nr   r   r   r   r*   r   r   r+   ztest_errors.<locals>.<lambda>O  s   € œ|¨A¨q°1°a°&Ó9¸!Ñ<€ r   c                  ó@   — t        ddddg«      t        ddddg«      z   S r)   r   r*   r   r   r+   ztest_errors.<locals>.<lambda>Q  s%   € ”˜Q  A q 6Ó*¬\¸!¸QÀÀAÀÓ-GÑG€ r   )r   r�   rŠ   Ú
IndexErrorr   r*   r   r   Útest_errorsr  D  sz   € Ü
Œ:ÑCÔDÜ
Œ9Ñ=Ô>Ü
Œ:ÑHÔIÜ
Œ:Ñ@ÔAÜ
Œ:ÑFÔGÜ
Œ9ÙIôKä
ÜÑ@ôBä
Œ9Ñ>Ô?Ü
Œ:Ñ<Ô=Ü
Œ:ÙGõIr   c                  ó~   — t        «       rJ ‚t        «       t        g «      k(  sJ ‚t        «       t        g g«      k(  sJ ‚y r"   r   r*   r   r   Útest_lenr  T  s9   € ÜŒ~ÐÐÜ‹>œ\¨"Ó-Ò-Ð-Ð-Ü‹>œ\¨2¨$Ó/Ò/Ð/Ñ/r   c                  ól  — t        j                  d«      t        dt         ¬«      k(  sJ ‚t        t        j                  d«      j                  «       «      dk(  sJ ‚t        j                  d«      t	        dt         ¬«      k(  sJ ‚t        t        j                  d«      j                  «       «      dk(  sJ ‚y )Nr   )Úclsr   )r   r   r¢   r’   r   r*   r   r   Útest_sparse_zeros_sparse_eyer  Z  s�   € Ü×Ñ˜AÓ¤# a¬\Ô":Ò:Ð:Ð:ÜŒ|×Ñ Ó"×(Ñ(Ó*Ó+¨qÒ0Ð0Ð0Ü×Ñ˜aÓ ¤E¨!´Ô$>Ò>Ð>Ð>ÜŒ|×!Ñ! !Ó$×*Ñ*Ó,Ó-°Ò2Ð2Ñ2r   c                  ó¶  — t        ddi «      } d| d<   | d d …df   t        t        g d¢«      «      k(  sJ ‚| d   dk(  sJ ‚| dd dgk(  sJ ‚d| d<   | d   dk(  sJ ‚| ddd …f   t        ddgg«      k(  sJ ‚t        d	d
gg«      | ddd …f<   | dd d …f   t        g d¢g«      k(  sJ ‚ddgg| ddd …f<   | dd d …f   t        g d¢g«      k(  sJ ‚d| d<   | d d …d d…f   t        g d¢«      k(  sJ ‚g d¢| d<   | d d …df   t        g d¢«      k(  sJ ‚t        g d¢«      | d<   | d d …df   t        g d¢«      k(  sJ ‚t        g d¢«      | d<   | d d …df   t        g d¢«      k(  sJ ‚y )Nr   r   r-   r   r=   r   é*   r1   r3   r0   )r   r3   r0   é+   )r   r	  r
  é   r   )r  r   r   rM   )r   r   )Úss    r   Útest_copyinr  a  s   € Ü�Q˜˜2Ó€AØ€A€d�GØŠQ�ˆT‰7”l¤6ª)Ó#4Ó5Ò5Ð5Ð5ØˆQ‰4�1Š9Ðˆ9ØˆQ�ˆ7�q�cŠ>Ðˆ>Ø€A€d�GØˆT‰7�bŠ=Ðˆ=ØˆQ�‘ˆU‰8”| b¨! W IÓ.Ò.Ð.Ð.Ü˜˜1�v�hÓ€A€aˆ‰€e�HØˆQ’ˆT‰7”l¢I ;Ó/Ò/Ð/Ð/Ø�R�ˆz€A€aˆ‰€e�HØˆQ’ˆT‰7”l¢K =Ó1Ò1Ð1Ð1Ø€A€d�GØŠQ���ˆU‰8”|¢JÓ/Ò/Ð/Ð/Ú€A€d�GØŠQ�ˆT‰7”l¢9Ó-Ò-Ð-Ð-Ü’YÓ€A€d�GØŠQ�ˆT‰7”l¢9Ó-Ò-Ð-Ð-Üš9Ó%€A€d�GØŠQ�ˆT‰7”l¢9Ó-Ò-Ð-Ñ-r   c            	      ó  — t        d«      } | j                  «       t        g d¢g d¢g d¢g«      k(  sJ ‚| j                  «       | j                  «       j                  z  t        g d¢g d¢g d¢g«      k(  sJ ‚t        d«      } | j	                  «       \  }}d|z  t        g d	¢g d
¢g d¢g«      k(  sJ ‚|t        g d¢g d¢g d¢g«      k(  sJ ‚||z  |j                  z  | k(  sJ ‚t        d«      } | j                  «       | z  t        t        d«      «      k(  sJ ‚t        g d¢g d¢g d¢g«      } t        t        dd«      t        dd«      t        dd«      gt        dd«      t        dd«      t        dd«      gddt        j                  gg«      }| j                  d¬«      |k(  sJ ‚| j                  d¬«      |k(  sJ ‚| |z  t        t        d«      «      k(  sJ ‚| j                  | d d …df   d«      }| |z  | d d …df   k(  sJ ‚| j                  | d d …df   d«      }| |z  | d d …df   k(  sJ ‚| j                  | «      } | j                  | d d …df   d«      }| |z  | d d …df   k(  sJ ‚| j                  | d d …df   d«      }| |z  | d d …df   k(  sJ ‚y )N)©é   r9   rK   ©r9   r6   r   ©rK   r   rT   )r3   r   r   )r   r   r   )rL   r   r   r  r  r  r9   )r9   r   r   )rS   r9   r   )rI   r3   r9   )r  r   r   )r   rS   r   )r   r   rS   ))r   r   r   r<   r?   r   )r   rL   r   )rL   r   rL   rz   r   r   r0   r   rq   rr   rt   )r   Úcholeskyr   r·   ÚLDLdecompositionr«   r   r   r   ÚHalfÚsolver�   Úsolve_least_squares)rÅ   rË   ÚDÚansr  s        r   Útest_sparse_solver  x  sÂ  € ÜÐ=Ó>€AØ�:‰:‹<œ6ÚÚÚð#ó ò ð ð ð �:‰:‹<˜!Ÿ*™*›,Ÿ.™.Ñ(¬FÚÚÚð4ó -ò ð ð ô
 	Ð=Ó>€AØ×ÑÓ�D€A€qØˆa‰4”6ÚÚÚðó ò ð ð ð ”ÚÚÚðó ò ð ð ð ˆq‰5�1—3‘3‰;˜!ÒÐÐäÐ6Ó7€AØ�5‰5‹7�Q‰;œ,¤s¨1£vÓ.Ò.Ð.Ð.äÚÚÚðó 	€Aô Ü	�!�Q‹œ ! Q›¬°!°Q«Ð8Ü	�!�Q‹œ ! Q›¬°!°Q«Ð8Ø a´·±Ð7ð9ó :€Cð �5‰5˜ˆ5Ó Ò$Ð$Ð$Ø�5‰5˜ˆ5Ó #Ò%Ð%Ð%Øˆs‰7”l¤3 q£6Ó*Ò*Ð*Ð*à	�‰�’!�Q�$‘˜Ó€AØˆQ‰3�!’A�q�D‘'Š>Ðˆ>Ø	�‰�’!�Q�$‘˜Ó€AØˆQ‰3�!’A�q�D‘'Š>Ðˆ>Ø	�
‰
�1‹€AØ	×Ñ˜a¢ 1 ™g tÓ,€AØˆQ‰3�!’A�q�D‘'Š>Ðˆ>Ø	×Ñ˜a¢ 1 ™g uÓ-€AØˆQ‰3�!’A�q�D‘'Š>Ð‰>r   c                  óÆ  — t        t        d„ «       t        t        d„ «       t        t        d„ «       t	        d«      \  } }}}t	        d«      \  }}}}t        | dg||gg«      }t        ||g||gg«      }	t        ||g||gg«      }
t        || z  || z  g|||z  | z  z
  |z  |||z  | z  z
  |z  gg«      }|j                  |	«      |k(  sJ ‚|j                  |
«      |k(  sJ ‚y )Nc                  óT   — t        ddgg«      j                  t        ddgg«      «      S r)   ©r   Úlower_triangular_solver   r*   r   r   r+   z-test_lower_triangular_solve.<locals>.<lambda>ª  ó+   € Ü�q˜!�f�XÓ×5Ñ5´f¸qÀ!¸f¸XÓ6FÓGð r   c                  óV   — t        ddgddgg«      j                  t        dg«      «      S ©Nr   r   r   r   r  r*   r   r   r+   z-test_lower_triangular_solve.<locals>.<lambda>¬  ó-   € Ü�q˜!�f˜q !˜fÐ%Ó&×=Ñ=¼fÀaÀS»kÓJð r   c                  ó`   — t        ddgddgg«      j                  t        ddgddgg«      «      S ©Nr   r   r   r   r  r*   r   r   r+   z-test_lower_triangular_solve.<locals>.<lambda>®  ó:   € Ü�q˜!�f˜q !˜fÐ%Ó&×=Ñ=¼fÀqÈ!ÀfÈqÐRSÈfÐEUÓ>VÓWð r   úa:dúu:xr   )
r   r   r   r�   r   r   r   r   r   r  ©r   rÂ   rÄ   ÚdÚurx   Úwr7   rÅ   ÚBr®   Úsols               r   Útest_lower_triangular_solver.  ©  s  € Ü
Ôñ "Hô Iä
Œ:ñ Kô Lä
Œ:ñ Xô Yô ˜“�J€A€qˆ!ˆQÜ˜“�J€A€qˆ!ˆQä�q˜!�f˜q !˜fÐ%Ó&€AÜ˜a ˜V a¨ VÐ,Ó-€AÜ  1˜v¨¨1 vÐ.Ó/€Aä
�1�Q‘3˜˜!™�*  A a¡C¨¡E¡	¨1™}¨q°1°Q±3°q±5©y¸!©mÐ<Ð=Ó
>€CØ×#Ñ# AÓ&¨#Ò-Ð-Ð-Ø×#Ñ# AÓ&¨#Ò-Ð-Ñ-r   c                  óÆ  — t        t        d„ «       t        t        d„ «       t        t        d„ «       t	        d«      \  } }}}t	        d«      \  }}}}t        | |gd|gg«      }t        ||g||gg«      }	t        ||g||gg«      }
t        |||z  |z  z
  | z  |||z  |z  z
  | z  g||z  ||z  gg«      }|j                  |	«      |k(  sJ ‚|j                  |
«      |k(  sJ ‚y )Nc                  óT   — t        ddgg«      j                  t        ddgg«      «      S r)   ©r   Úupper_triangular_solver   r*   r   r   r+   z-test_upper_triangular_solve.<locals>.<lambda>¾  r  r   c                  óV   — t        ddgddgg«      j                  t        dg«      «      S r!  r1  r*   r   r   r+   z-test_upper_triangular_solve.<locals>.<lambda>À  r"  r   c                  ó`   — t        ddgddgg«      j                  t        ddgddgg«      «      S r$  r1  r*   r   r   r+   z-test_upper_triangular_solve.<locals>.<lambda>Â  r%  r   r&  r'  r   )
r   r   r   rŠ   r   r   r   r   r   r2  r(  s               r   Útest_upper_triangular_solver5  ½  s  € Ü
Ôñ "Hô Iä
Œ:ñ Kô Lä
Œ9ñ Xô Yô ˜“�J€A€qˆ!ˆQÜ˜“�J€A€qˆ!ˆQä�q˜!�f˜q !˜fÐ%Ó&€AÜ˜a ˜V a¨ VÐ,Ó-€AÜ  1˜v¨¨1 vÐ.Ó/€Aä
�A˜˜!™˜A™‘I˜q‘= 1 q¨¡s¨1¡u¡9¨a¡-Ð0°1°Q±3¸¸!¹°*Ð=Ó
>€CØ×#Ñ# AÓ&¨#Ò-Ð-Ð-Ø×#Ñ# AÓ&¨#Ò-Ð-Ñ-r   c                  ó8  — t        d«      \  } }t        d«      \  }}}}t        | dgd|gg«      }t        ||g||gg«      }t        ||g||gg«      }t	        || z  || z  g||z  ||z  gg«      }	|j                  |«      |	k(  sJ ‚|j                  |«      |	k(  sJ ‚y )Nza dr'  r   )r   r   r   r   r   Údiagonal_solve)
r   r)  r*  rx   r+  r7   rÅ   r,  r®   r-  s
             r   Útest_diagonal_solver8  Ñ  s¾   € Ü�5‹>�D€A€qÜ˜“�J€A€qˆ!ˆQä�q˜!�f˜q !˜fÐ%Ó&€AÜ˜a ˜V a¨ VÐ,Ó-€AÜ  1˜v¨¨1 vÐ.Ó/€Aä
�1�Q‘3˜˜!™�*˜q ™s A a¡C˜jÐ)Ó
*€CØ×Ñ˜AÓ #Ò%Ð%Ð%Ø×Ñ˜AÓ #Ò%Ð%Ñ%r   c                  óV  — t        d«      } t        dt        gt         dgg«      }|j                  sJ ‚t        dt        gt         dgg«      }|j                  sJ ‚dt        z  |d<   |j                  du sJ ‚| |d<   |j                  �J ‚|d   t        z  |d<   |j                  du sJ ‚y )	Nr7   r   r   r   r   Fr-   r.   )r   r   r   Úis_hermitian)r7   r   s     r   Útest_hermitianr;  Þ  s°   € Üˆs‹€AÜ�qœ!�f¤˜r 1˜gÐ&Ó'€AØ�>Š>Ðˆ>Ü�qœ!�f¤˜r 1˜gÐ&Ó'€AØ�>Š>Ðˆ>Ø”‰c€A€d�GØ�>‰>˜UÑ"Ð"Ð"Ø€A€d�GØ�>‰>Ð!Ð!Ð!Ø�‰g”a‰i€A€d�GØ�>‰>˜UÑ"Ð"Ñ"r   N))Úsympy.core.numbersr   r   r   Úsympy.core.singletonr   Úsympy.core.symbolr   r   Ú$sympy.functions.elementary.complexesr	   Úsympy.polys.polytoolsr
   r‹   r   r   r   r   r   r   r   r   r   Úsympy.testing.pytestr   r   rÛ   rÞ   râ   rå   ré   rñ   r  r  r  r  r  r.  r5  r8  r;  r*   r   r   ú<module>rB     s�   ðß 3Ñ 3Ý "ß /Ý 4Ý *÷2÷ 2õ 2õ (ò/òO*òdOò'ò
7ò
5òHòIò 0ò3ò.ò..òb.ò(.ò(
&ó#r   