Ë
    êÿæi‘  ã                   ó  — d dl Zd dl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 d dlmZ d dlmZmZ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  d d	l!m"Z"m#Z#m$Z$m%Z% ejL                  jO                  d
e«      ejL                  jO                  de«      ejL                  jO                  de«      d„ «       «       «       Z(ejL                  jO                  dejR                  ejT                  g«      ejL                  jO                  deez   «      d„ «       «       Z+ejL                  jO                  d
e«      ejL                  jO                  de«      ejL                  jO                  de«      d„ «       «       «       Z,ejL                  jO                  g d¢g d¢g d¢gg d¢g d¢gg d¢fg d¢g d¢gg d¢g d¢gg d¢fg d¢g d¢gg d¢g d¢gdfd ejZ                  dgd ejZ                  ejZ                  ggd ejZ                  dgd ejZ                  ejZ                  ggg d¢fd d gdejZ                  gdd gd dgejZ                  ejZ                  gejZ                  dggg d¢ddejZ                  gg d¢g d ¢ejZ                  ejZ                  ejZ                  gejZ                  ejZ                  dggd!d"gfg d#¢g d$¢gg d%¢g d&¢g ej\                  g d'¢«      fg«      ejL                  jO                  deez   «      ejL                  jO                  dejR                  ejT                  g«      d(„ «       «       «       Z/ejL                  jO                  g d¢g d¢g d¢gg d¢g d¢gddgfg d¢g d¢gg d¢g d¢g d¢gddgfg d¢g d¢gg d¢g d¢gdfd ejZ                  dgd ejZ                  ejZ                  ggd ejZ                  dgd ejZ                  ejZ                  ggd"d"gfd d dejZ                  dd gd dejZ                  ejZ                  ejZ                  dggd d dejZ                  dd gd d dejZ                  dd gd dejZ                  ejZ                  ejZ                  dggd!d"gfg d#¢g d¢gg d#¢g d¢g d¢g d¢g ej\                  ddg«      fg«      ejL                  jO                  deez   «      ejL                  jO                  dejR                  ejT                  g«      d)„ «       «       «       Z0ejL                  jO                  d
e«      ejL                  jO                  de«      ejL                  jO                  de«      d*„ «       «       «       Z1ejL                  jO                  deez   «      d+„ «       Z2ejL                  jO                  d, ejf                  d-dd.d/d ¬0«       ejf                  d1dd.d/d ¬0«      f ejf                  d-dd.d/d ¬0«       ejh                   ejj                  d2ejZ                  ¬3«       ejf                  d1dd.d4¬5«      gd/¬6«      fg«      ejL                  jO                  de«      d7„ «       «       Z6d8„ Z7d9„ Z8ejL                  jO                  d:d dg«      ejL                  jO                  deez   «      d;„ «       «       Z9ejL                  jO                  de«      d<„ «       Z:ejL                  jO                  de«      d=„ «       Z;d>„ Z<d?„ Z=ejL                  jO                  d
e«      ejL                  jO                  de«      d@„ «       «       Z>ejL                  jO                  d
e«      ejL                  jO                  de«      dA„ «       «       Z?ejL                  jO                  dejR                  ejT                  g«      ejL                  jO                  d:g dB¢«      ejL                  jO                  dCeez   «      ejL                  jO                  dDd ej€                  ej‚                  dEfejZ                  ej„                  ej†                  dFfg«      ejL                  jO                  dGdFdEg«      dH„ «       «       «       «       «       ZDejL                  jO                  d
e«      ejL                  jO                  de«      dI„ «       «       ZEejL                  jO                  d
e«      ejL                  jO                  de«      dJ„ «       «       ZFejL                  jO                  d
e«      ejL                  jO                  de«      dK„ «       «       ZGejL                  jO                  dLe$e%f«      ejL                  jO                  de«      dM„ «       «       ZHejL                  jO                  dejR                  ejT                  g«      dN„ «       ZI ej”                  dOeez   ¬P«      dQ„ «       ZKdR„ ZLdS„ ZMdT„ ZNdU„ ZOejL                  jO                  g dV¢ ej                   dd/¬6«       ej                   dd/¬6«      ddWf ej                   dd/¬6«       ej                   dd/¬6«       ej                   d«      dXf ej                   ddY¬6«       ej                   dd/¬6«      ddZf ej                   dd/¬6«       ej                   ddY¬6«      dd[f ej                   dd/ej¢                  ¬\«       ej                   dd/¬6«      dd]f ej                   dd/ejR                  ¬\«       ej                   dd/ejT                  ¬\«      dd]fg«      d^„ «       ZRejL                  jO                  d_dEdFg«      ejL                  jO                  d`eez   «      ejL                  jO                  daeez   «      ejL                  jO                  dejR                  ejT                  g«      db„ «       «       «       «       ZSy)cé    N)ÚRandomState)Úassert_array_almost_equalÚassert_array_equal)Úlinalg)Úmake_classification)Úassert_allclose)ÚCSC_CONTAINERSÚCSR_CONTAINERSÚLIL_CONTAINERS)Ú_implicit_column_offsetÚcount_nonzeroÚcsc_median_axis_0Úincr_mean_variance_axisÚinplace_column_scaleÚinplace_row_scaleÚinplace_swap_columnÚinplace_swap_rowÚmean_variance_axisÚmin_max_axisÚsparse_matmul_to_dense)Úassign_rows_csrÚcsr_row_normsÚinplace_csr_row_normalize_l1Úinplace_csr_row_normalize_l2Úcsc_containerÚcsr_containerÚlil_containerc           	      óN  — t        ddd¬«      \  }}d|d<   d|d<   d|d<    ||«      }d|d<   d|d<   t        j                  t        «      5  t	        |d¬	«       d d d «        ||«      } | |«      }t
        j                  t
        j                  ft
        j                  t
        j                  ft
        j                  t
        j                  ft
        j                  t
        j                  fg}|D ]¤  \  }	}
|j                  |	«      }||fD ]‡  }|j                  |	«      }t	        |d¬	«      \  }}|j                  |
k(  sJ ‚|j                  |
k(  sJ ‚t        |t        j                  |d¬	«      «       t        |t        j                  |d¬	«      «       Œ‰ Œ¦ y # 1 sw Y   �ŒBxY w)
Né   é   r   ©Úrandom_state©r   r   ©é   é   ©r    é   ©r&   r   ©Úaxis©r   ÚpytestÚraisesÚ	TypeErrorr   ÚnpÚfloat32Úfloat64Úint32Úint64ÚastypeÚdtyper   ÚmeanÚvar©r   r   r   ÚXÚ_ÚX_lilÚX_csrÚX_cscÚexpected_dtypesÚinput_dtypeÚoutput_dtypeÚX_testÚX_sparseÚX_meansÚX_varss                  úy/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/sklearn/utils/tests/test_sparsefuncs.pyÚtest_mean_variance_axis0rG       ói  € ô ˜q !°!Ô4�D€A€qà€A€d�GØ€A€d�GØ€A€d�GÙ˜!Ó€EØ€Eˆ$�KØ€A€d�Gä	�‰”yÕ	!Ü˜5 qÕ)÷ 
"ñ ˜%Ó €EÙ˜%Ó €Eô 
�‰”R—Z‘ZÐ Ü	�‰”R—Z‘ZÐ Ü	�‰”2—:‘:ÐÜ	�‰”2—:‘:Ðð	€Oó &5Ñ!ˆ�\Ø—‘˜+Ó&ˆØ ›ˆHØ—‘ {Ó3ˆHÜ0°ÀÔB‰OˆG�VØ—=‘= LÒ0Ð0Ð0Ø—<‘< <Ò/Ð/Ð/Ü% g¬r¯w©w°vÀAÔ/FÔGÜ% f¬b¯f©f°VÀ!Ô.DÕEñ 'ñ &5÷ 
"Ñ	!úó   ÁFÆF$r6   Úsparse_constructorc                 óØ  — t         j                  j                  d«      }t        j                  dd| ¬«      }|j	                  t        j
                  |j                  d   «      dd¬«      }t         j                  ||df<    ||«      }|j                  |j                  d   «      j                  | «      }t        ||d¬«      \  }}|t        j                  | «      j                  k  sJ ‚y )	Nr   g      Y@)iè  r&   )Ú
fill_valueÚshaper6   é
   F)Úreplace)Úweightsr+   )r0   Úrandomr   ÚfullÚchoiceÚarangerM   ÚnanÚrandr5   r   ÚfinfoÚeps)r6   rJ   Úrngr:   Úmissing_indicesÚsample_weightr;   r8   s           rF   Ú"test_mean_variance_axis0_precisionr\   E   s½   € ô
 �)‰)×
Ñ
 Ó
"€CÜ
�‰˜5¨	¸Ô?€Aà—j‘j¤§¡¨1¯7©7°1©:Ó!6¸ÀE�jÓJ€OÜŸF™F€A€o�qÐÑÙ˜1Ó€Að —H‘H˜QŸW™W Q™ZÓ(×/Ñ/°Ó6€Mä ¨=¸qÔA�F€A€sà”—‘˜%“×$Ñ$Ò$Ð$Ñ$ó    c           	      óN  — t        ddd¬«      \  }}d|d<   d|d<   d|d<    ||«      }d|d<   d|d<   t        j                  t        «      5  t	        |d	¬
«       d d d «        ||«      } | |«      }t
        j                  t
        j                  ft
        j                  t
        j                  ft
        j                  t
        j                  ft
        j                  t
        j                  fg}|D ]¤  \  }	}
|j                  |	«      }||fD ]‡  }|j                  |	«      }t	        |d¬
«      \  }}|j                  |
k(  sJ ‚|j                  |
k(  sJ ‚t        |t        j                  |d¬
«      «       t        |t        j                  |d¬
«      «       Œ‰ Œ¦ y # 1 sw Y   �ŒBxY w)Nr   r    r   r!   r#   r$   r'   r)   r&   r*   r,   r9   s                  rF   Útest_mean_variance_axis1r_   Y   rH   rI   )ÚXwr:   rP   )r   r   r&   ©r   r%   r(   )r&   r&   r&   )r   r&   r&   )r   r   r   r&   )r   r&   r&   r&   )r&   r%   r&   r%   )ç      ð?rb   rb   r&   r(   ©r   r   r   )r%   r%   r   )r   r   r(   g       @rb   )r&   r   r&   )r   r(   r&   )r&   r   r   r   r&   )r   r(   r(   r(   r&   )r&   r(   r&   c                 óŠ  — d} || «      j                  |«      } ||«      j                  |«      }t        j                  t        j                  | «      d   |¬«      }t        j                  ||¬«      }	t        j                  |t        j
                  ¬«      }
t        ||||	|
d ¬«      \  }}}t        ||||	|
|¬«      \  }}}|j                  |k(  sJ ‚|j                  |k(  sJ ‚|j                  |k(  sJ ‚t        ||¬«      \  }}t        ||«       t        ||«       t        ||«       t        ||«       t        ||«       t        |||||d ¬«      \  }}}t        ||||||¬«      \  }}}t        ||«       t        ||«       t        ||«       |j                  |k(  sJ ‚|j                  |k(  sJ ‚|j                  |k(  sJ ‚y )Nr&   r   ©r6   ©r:   r+   Ú	last_meanÚlast_varÚlast_nrP   ©r:   r+   )
r5   r0   ÚzerosrM   Ú
zeros_liker4   r   r6   r   r   ©r`   r:   rP   rJ   r6   r+   Ú	Xw_sparserC   rg   rh   ri   Úmeans0Úvars0Ún_incr0Úmeans_w0Úvars_w0Ú	n_incr_w0Úmeans_simpleÚvars_simpleÚmeans1Úvars1Ún_incr1Úmeans_w1Úvars_w1Ú	n_incr_w1s                            rF   Ú+test_incr_mean_variance_axis_weighted_axis1r}   ~   s×  € ðF €DÙ" 2Ó&×-Ñ-¨eÓ4€IÙ! !Ó$×+Ñ+¨EÓ2€Hä—‘œŸ™ "› a™°Ô6€IÜ�}‰}˜Y¨eÔ4€HÜ�]‰]˜9¬B¯H©HÔ5€FÜ4Ø
ØØØØØôÑ€FˆE�7ô $;Ø
ØØØØØô$Ñ €Hˆg�yð �>‰>˜UÒ"Ð"Ð"Ø�=‰=˜EÒ!Ð!Ð!Ø�?‰?˜eÒ#Ð#Ð#ä 2°XÀDÔ IÑ€L�+ä˜f hÔ/Ü˜f lÔ3Ü˜e WÔ-Ü˜e [Ô1Ü˜g yÔ1ô 5Ø
ØØØØØôÑ€FˆE�7ô $;Ø
ØØØØØô$Ñ €Hˆg�yô ˜f hÔ/Ü˜e WÔ-Ü˜g yÔ1à�>‰>˜UÒ"Ð"Ð"Ø�=‰=˜EÒ!Ð!Ð!Ø�?‰?˜eÒ#Ð#Ñ#r]   c                 ó‚  — d} || «      j                  |«      } ||«      j                  |«      }t        j                  t        j                  | d«      |¬«      }t        j                  |«      }	t        j                  |t        j
                  ¬«      }
t        ||||	|
d ¬«      \  }}}t        ||||	|
|¬«      \  }}}|j                  |k(  sJ ‚|j                  |k(  sJ ‚|j                  |k(  sJ ‚t        ||¬«      \  }}t        ||«       t        ||«       t        ||«       t        ||«       t        ||«       t        |||||d ¬«      \  }}}t        ||||||¬«      \  }}}t        ||«       t        ||«       t        ||«       |j                  |k(  sJ ‚|j                  |k(  sJ ‚|j                  |k(  sJ ‚y )Nr   r&   re   rf   rj   )
r5   r0   rk   Úsizerl   r4   r   r6   r   r   rm   s                            rF   Ú+test_incr_mean_variance_axis_weighted_axis0r€   â   sÓ  € ð@ €DÙ" 2Ó&×-Ñ-¨eÓ4€IÙ! !Ó$×+Ñ+¨EÓ2€Hä—‘œŸ™  Q›¨uÔ5€IÜ�}‰}˜YÓ'€HÜ�]‰]˜9¬B¯H©HÔ5€FÜ4Ø
ØØØØØôÑ€FˆE�7ô $;Ø
ØØØØØô$Ñ €Hˆg�yð �>‰>˜UÒ"Ð"Ð"Ø�=‰=˜EÒ!Ð!Ð!Ø�?‰?˜eÒ#Ð#Ð#ä 2°XÀDÔ IÑ€L�+ä˜f hÔ/Ü˜f lÔ3Ü˜e WÔ-Ü˜e [Ô1Ü˜g yÔ1ô 5Ø
ØØØØØôÑ€FˆE�7ô $;Ø
ØØØØØô$Ñ €Hˆg�yô ˜f hÔ/Ü˜e WÔ-Ü˜g yÔ1à�>‰>˜UÒ"Ð"Ð"Ø�=‰=˜EÒ!Ð!Ð!Ø�?‰?˜eÒ#Ð#Ñ#r]   c           
      ó¼  — dD �]²  }t         j                  j                  d«      }d}d}|dk(  r+t        |«      D �cg c]  }|j	                  dd|¬«      ‘Œ }}n*t        |«      D �cg c]  }|j	                  dd|¬«      ‘Œ }}|dk(  rt        j
                  |«      nt        j
                  |«      }	t        j                  |	«      }
t        j                  |	t         j                  ¬«      }t        j                  |d   «      }t        j                  |«      }|dk(  r|j                  n|} ||«      } ||«      }t        j                  t        «      5  t        ||	|
|¬	«       d d d «       t        j                  t        «      5  t        |||	|
|¬
«       d d d «       t        ||«      \  }}t        |||	|
|¬
«      \  }}}t!        ||«       t!        ||«       t#        |j$                  |   |«        | |«      }t        ||«      \  }}t!        ||«       t!        ||«       t#        |j$                  |   |«       t        j&                  |«      }|dk(  r|j                  n|} ||«      } ||«      } | |«      }t         j(                  t         j(                  ft         j*                  t         j*                  ft         j,                  t         j*                  ft         j                  t         j*                  fg}|D ]·  \  }}||fD ]«  }|j/                  |«      }|	j/                  |«      }	|
j/                  |«      }
t        ||«      \  }}t        |||	|
|¬
«      \  }}}|j0                  |k(  sJ ‚|j0                  |k(  sJ ‚t!        ||«       t!        ||«       t#        |j$                  |   |«       Œ­ Œ¹ �Œµ y c c}w c c}w # 1 sw Y   �Œ`xY w# 1 sw Y   �Œ;xY w)N)r   r&   r   é2   rN   r%   )r   re   r&   )r:   r+   rg   rh   ©r+   rg   rh   ri   )r0   rQ   r   ÚrangeÚrandintrk   rl   r4   ÚarrayÚ
atleast_2dÚTr-   r.   r/   r   r   r   r   rM   Úvstackr1   r2   r3   r5   r6   )r   r   r   r+   rY   Ú
n_featuresÚ	n_samplesÚiÚdata_chunksrg   rh   ri   r:   r<   r=   rD   rE   ÚX_means_incrÚX_vars_incrÚn_incrr>   r?   r@   rA   rC   s                            rF   Útest_incr_mean_variance_axisr‘   C  s_  € ô ˆÜ�i‰i×#Ñ# AÓ&ˆØˆ
Øˆ	Ø�1Š9ÜGLÈYÔGWÓXÑGWÀ!˜3Ÿ;™; q¨!°*˜;Õ=ÐGWˆKÑXäFKÈJÔFWÓXÑFWÀ˜3Ÿ;™; q¨!°)˜;Õ<ÐFWˆKÐXð -1°AªI”B—H‘H˜ZÔ(¼2¿8¹8ÀIÓ;Nˆ	Ü—=‘= Ó+ˆÜ—‘˜y´·±Ô9ˆô �H‰H�[ ‘^Ó$ˆÜ�M‰M˜!ÓˆØ˜1’9ˆA�CŠC !ˆÙ˜aÓ ˆÙ˜eÓ$ˆä�]‰]œ9Õ%Ü#Ø˜Y°(ÀVõ÷ &ô �]‰]œ9Õ%Ü#Ø˜D¨IÀÐQWõ÷ &ô -¨U°DÓ9‰ˆ�Ü,CØ˜¨	¸HÈVô-
Ñ)ˆ�k 6ô 	" '¨<Ô8Ü! &¨+Ô6ä˜1Ÿ7™7 4™=¨&Ô1á˜eÓ$ˆÜ,¨U°DÓ9‰ˆ�Ü! '¨<Ô8Ü! &¨+Ô6Ü˜1Ÿ7™7 4™=¨&Ô1ô �I‰I�kÓ"ˆØ˜1’9ˆA�CŠC !ˆÙ˜aÓ ˆÙ˜eÓ$ˆÙ˜eÓ$ˆô �Z‰ZœŸ™Ð$Ü�Z‰ZœŸ™Ð$Ü�X‰X”r—z‘zÐ"Ü�X‰X”r—z‘zÐ"ð	
ˆó *9Ñ%ˆK˜Ø" E›N�Ø#Ÿ?™?¨;Ó7�Ø%×,Ñ,¨\Ó:�	Ø#Ÿ?™?¨<Ó8�Ü"4°X¸tÓ"D‘�˜Ü4KØØØ'Ø%Ø!ô5Ñ1�˜k¨6ð $×)Ñ)¨\Ò9Ð9Ð9Ø"×(Ñ(¨LÒ8Ð8Ð8Ü)¨'°<Ô@Ü)¨&°+Ô>Ü" 1§7¡7¨4¡=°&Õ9ñ! +ò *9ñy ùò
 YùâX÷ &Ñ%ú÷ &Ñ%ús#   ¼N:Á'N?ÅOÆOÏO	ÏO	c                 ó<  — d\  }}t         j                  j                  d«      } | |j                  ||«      «      }t        j                  |«      }t        j
                  |«      }t        j                  |j                  t         j                  ¬«      }t        |||¬«      }t        |fddi|¤Ž\  }	}
}t        t        j                  |j                  «       d¬«      |	«       t        t        j                  |j                  «       d¬«      |
«       t        j                  t         «      5  t        |fddi|¤Ž d	d	d	«       t        |d	d
 ||¬«      }t        j                  t         «      5  t        |fddi|¤Ž d	d	d	«       y	# 1 sw Y   ŒKxY w# 1 sw Y   y	xY w)z¦Check that we raise proper error when axis=1 and the dimension mismatch.
    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/pull/18655
    )é<   r    é*   re   )rg   rh   ri   r+   r   r*   r&   Néÿÿÿÿ)r0   rQ   r   rV   rk   rl   rM   r4   Údictr   r   r7   Útoarrayr8   r-   r.   Ú
ValueError)rJ   r‹   rŠ   rY   r:   rg   rh   ri   ÚkwargsÚmean0Úvar0r;   s               rF   Ú)test_incr_mean_variance_axis_dim_mismatchrœ   —  s<  € ð "Ñ€IˆzÜ
�)‰)×
Ñ
 Ó
#€CÙ˜3Ÿ8™8 I¨zÓ:Ó;€Aä—‘˜Ó$€IÜ�}‰}˜YÓ'€HÜ�X‰X�i—o‘o¬R¯X©XÔ6€Fä˜I°ÀÔH€FÜ,¨QÑA°QÐA¸&ÑA�N€Eˆ4�Ü”B—G‘G˜AŸI™I›K¨aÔ0°%Ô8Ü”B—F‘F˜1Ÿ9™9›;¨QÔ/°Ô6ô 
�‰”zÕ	"Ü Ñ4¨Ð4¨VÒ4÷ 
#ô ˜I c r˜N°XÀfÔM€FÜ	�‰”zÕ	"Ü Ñ4¨Ð4¨VÒ4÷ 
#Ð	"÷ 
#Ð	"ú÷
 
#Ð	"ús   Ä-FÅ.FÆFÆFzX1, X2r   çš™™™™™é?Úcsr©ÚdensityÚformatr"   é   )r¢   r&   )rL   r”   ©r    r"   )r¡   c           	      óÔ  —  || «      }  ||«      }d}t        j                  | j                  d   «      t        j                  | j                  d   «      }}t        j                  | j                  d   t         j                  ¬«      }t	        | ||||¬«      \  }}}	t	        |||||	¬«      \  }}}	t        j                  | |g«      }
t        |t        j                  |
j                  «       |¬«      «       t        |t        j                  |
j                  «       |¬«      «       t        |	t        j                  t        j                  |
j                  «       «       d¬«      «       y )Nr   r&   re   rƒ   r*   )r0   rk   rM   r4   r   Úspr‰   r   Únanmeanr—   Únanvarr   Úisnan)ÚX1ÚX2r   r+   rg   rh   ri   Úupdated_meanÚupdated_varÚ	updated_nr:   s              rF   Ú6test_incr_mean_variance_axis_equivalence_mean_variancer®   ´  s  € ñ2 
�rÓ	€BÙ	�rÓ	€BØ€DÜŸ(™( 2§8¡8¨A¡;Ó/´·±¸"¿(¹(À1¹+Ó1Fˆx€IÜ�X‰X�b—h‘h˜q‘k¬¯©Ô2€FÜ+BØ
� °XÀfô,Ñ(€L�+˜yô ,CØ
� ¸ÈIô,Ñ(€L�+˜yô 	�	‰	�2�r�(Ó€AÜ�L¤"§*¡*¨Q¯Y©Y«[¸tÔ"DÔEÜ�K¤§¡¨1¯9©9«;¸TÔ!BÔCÜ�Iœr×/Ñ/´·±¸!¿)¹)»+Ó1FÐ0FÈQÔOÕPr]   c                  ó(  — d} t        j                  dddd¬«      j                  «       }t        j                  dddd¬«      j                  «       }t        j                  |j
                  d   «      t        j                  |j
                  d   «      }}t        j                  |j
                  d   t        j                  ¬«      }t        || |||¬«      \  }}}t        || |||¬«      \  }}}t        ||«       t        ||«       t        ||«       y )Nr   r   r&   r�   r£   re   rƒ   )	r¥   rQ   Útocsrr0   rk   rM   r4   r   r   )	r+   r©   rª   rg   rh   ri   r«   r¬   r­   s	            rF   Ú test_incr_mean_variance_no_new_nr±   Þ  sã   € à€DÜ	�‰�1�a °1Ô	5×	;Ñ	;Ó	=€BÜ	�‰�1�a °1Ô	5×	;Ñ	;Ó	=€BÜŸ(™( 2§8¡8¨A¡;Ó/´·±¸"¿(¹(À1¹+Ó1Fˆx€IÜ�X‰X�b—h‘h˜q‘k¬¯©Ô2€FÜ"9Ø
� °XÀfô#Ñ€Iˆx˜ô ,CØ
� °XÀfô,Ñ(€L�+˜yô �L )Ô,Ü�K Ô*Ü�I˜vÕ&r]   c                  ó~  — d} t        j                  dddd¬«      j                  «       }t        j                  |j
                  d   «      t        j                  |j
                  d   «      }}d}t        || |||¬«      \  }}}t        |t        j                  |j
                  d   |j
                  d   «      «       y )Nr   r   r%   r�   r£   r&   rƒ   )	r¥   rQ   r°   r0   rk   rM   r   r   rR   )r+   r:   rg   rh   ri   r;   Únew_ns          rF   Útest_incr_mean_variance_n_floatr´   ñ  s–   € à€DÜ
�	‰	�!�Q °!Ô4×:Ñ:Ó<€AÜŸ(™( 1§7¡7¨1¡:Ó.´·±¸¿¹À¹Ó0Dˆx€IØ€FÜ)Ø	� 	°HÀVô�K€A€qˆ%ô �Eœ2Ÿ7™7 1§7¡7¨1¡:¨q¯w©w°q©zÓ:Õ;r]   r+   c                 ó8  — t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢t         j                  ¬«      } |t        j                  g d¢g d¢g d¢g«      «      } |t        j                  dt         j                  ddgt         j                  dd	d	gd	d	t         j                  d
gd
d
d
t         j                  gg«      «      }| r|j                  }|j                  }t        || |j                  «       |j                  «       |j                  «       ¬«      \  }}}	t        || |j                  «       |j                  «       |j                  «       ¬«      \  }
}}t        |
|«       t        ||«       t        ||	«       y )N)ç     ¸€@r¶   r¶   r¶   )ç     �°@r·   r·   r·   )r%   r%   r%   r%   re   )éª   r¸   r¸   r¸   )é®  r¹   r¹   r¹   )é,  rº   rº   rº   r¸   r¹   rº   rƒ   )r0   r†   r4   rU   rˆ   r   Úcopyr   )r+   rJ   Ú	old_meansÚold_variancesÚold_sample_countr:   ÚX_nanrD   rE   ÚX_sample_countÚX_nan_meansÚ
X_nan_varsÚX_nan_sample_counts                rF   Ú'test_incr_mean_variance_axis_ignore_nanrÄ   ý  sd  € ô —‘Ò5Ó6€IÜ—H‘HÒ=Ó>€MÜ—x‘x¢´B·H±HÔ=ÐáÜ
�‰Ò&Ò(<Ò>RÐSÓTó	€Añ Ü
�‰à”b—f‘f˜c 3Ð'Ü—‘˜˜c 3Ð'Ø�cœ2Ÿ6™6 3Ð'Ø�c˜3¤§¡Ð'ð	ó	
ó	€Eñ Ø�C‰CˆØ—‘ˆô '>Ø	ØØ—.‘.Ó"Ø×#Ñ#Ó%Ø×$Ñ$Ó&ô'Ñ#€GˆV�^ô 3JØØØ—.‘.Ó"Ø×#Ñ#Ó%Ø×$Ñ$Ó&ô3Ñ/€K�Ð/ô �K Ô)Ü�J Ô'ÜÐ&¨Õ7r]   c                 ó*  — t        ddd¬«      \  }}d|d<   d|d<   d|d<    | |«      }t        j                  t        «      5  t	        |d¬	«       d d d «       t        j                  t        «      5  t	        |d
¬	«       d d d «       t        j                  t        «      5  t	        |d¬	«       d d d «       t        j                  t        «      5  t        |dd d d ¬«       d d d «       t        j                  t        «      5  t        |d
d d d ¬«       d d d «       t        j                  t        «      5  t        |dd d d ¬«       d d d «       y # 1 sw Y   ŒþxY w# 1 sw Y   ŒÛxY w# 1 sw Y   Œ¸xY w# 1 sw Y   Œ’xY w# 1 sw Y   ŒlxY w# 1 sw Y   y xY w)Nr   r    r   r!   r#   r$   r'   éýÿÿÿr*   r%   r•   rƒ   )r   r-   r.   r˜   r   r   )r   r:   r;   r=   s       rF   Útest_mean_variance_illegal_axisrÇ   .  s1  € ä˜q !°!Ô4�D€A€qà€A€d�GØ€A€d�GØ€A€d�GÙ˜!Ó€EÜ	�‰”zÕ	"Ü˜5 rÕ*÷ 
#ä	�‰”zÕ	"Ü˜5 qÕ)÷ 
#ä	�‰”zÕ	"Ü˜5 rÕ*÷ 
#ô 
�‰”zÕ	"ÜØ˜ d°TÀ$õ	
÷ 
#ô
 
�‰”zÕ	"ÜØ˜ T°DÀõ	
÷ 
#ô
 
�‰”zÕ	"ÜØ˜ d°TÀ$õ	
÷ 
#Ð	"÷# 
#Ð	"úç	"Ð	"úç	"Ð	"ú÷ 
#Ð	"ú÷
 
#Ð	"ú÷
 
#Ð	"úsH   ÁEÁ1EÂ E%ÃE1ÄE=Ä3F	ÅEÅE"Å%E.Å1E:Å=FÆ	Fc           	      óú  — t         j                  t         j                  fD ]Ø  } | g d¢g d¢g d¢g d¢g d¢g|¬«      }t        j                  g d¢t         j                  ¬«      }t        j
                  d|j                  d	   f|¬«      }t        j                  g d
¢t         j                  ¬«      }t        j                  |«      }||d d …f   j                  «       ||<   t        ||||«       t        ||«       ŒÚ y )N©r   r(   r   ©r%   r    r   rc   ©é	   é   é   ©r    r   r   re   ra   é   r&   )r&   r(   r    )r0   r1   r2   r†   ÚintpÚonesrM   Ú	ones_liker—   r   r   )r   r6   r:   ÚX_rowsÚoutÚout_rowsÚexpects          rF   Útest_densify_rowsrØ   M  sº   € ä—*‘*œbŸj™jÓ)ˆÙÚš	¢9ªiºÐCÈ5ô
ˆô —‘š)¬2¯7©7Ô3ˆÜ�g‰g�q˜!Ÿ'™' !™*�o¨UÔ3ˆÜ—8‘8šI¬R¯W©WÔ5ˆä—‘˜cÓ"ˆØ˜V¢Q˜Y™<×/Ñ/Ó1ˆˆxÑä˜˜6 8¨SÔ1Ü˜3 Õ'ñ *r]   c                  óÖ  — t         j                  j                  d«      } t        j                  ddd¬«      }|j	                  «       }|j                  «       }|j                  «       }| j                  d«      }||z  }t        ||«       t        ||«       t        |j                  «       |j                  «       «       t        ||j                  «       «       t        ||j                  «       «       t        j                  t        «      5  t        |j                  «       |«       d d d «       |j                  t         j                  «      }|j                  t         j                  «      }|j	                  «       }|j                  «       }|j                  «       }||z  }t        ||«       t        ||«       t        |j                  «       |j                  «       «       t        ||j                  «       «       t        ||j                  «       «       t        j                  t        «      5  t        |j                  «       |«       d d d «       y # 1 sw Y   �Œ.xY w# 1 sw Y   y xY w)Nr   éd   éÈ   çš™™™™™©?©r    )r0   rQ   r   r¥   r°   Útocscr—   rV   r   r   r-   r.   r/   Útolilr5   r1   ©rY   r:   ÚXrÚXcÚXAÚscales         rF   Útest_inplace_column_scalerå   ^  sš  € Ü
�)‰)×
Ñ
 Ó
"€CÜ
�	‰	�#�s DÔ)€AØ	
�‰‹€BØ	
�‰‹€BØ	
�‰‹€BØ�H‰H�S‹M€EØˆ%�K€Bä˜˜UÔ#Ü˜˜UÔ#Ü˜bŸj™j›l¨B¯J©J«LÔ9Ü˜b "§*¡*£,Ô/Ü˜b "§*¡*£,Ô/Ü	�‰”yÕ	!Ü˜QŸW™W›Y¨Ô.÷ 
"ð 	
�‰”—‘Ó€AØ�L‰LœŸ™Ó$€EØ	
�‰‹€BØ	
�‰‹€BØ	
�‰‹€BØˆ%�K€BÜ˜˜UÔ#Ü˜˜UÔ#Ü˜bŸj™j›l¨B¯J©J«LÔ9Ü˜b "§*¡*£,Ô/Ü˜b "§*¡*£,Ô/Ü	�‰”yÕ	!Ü˜QŸW™W›Y¨Ô.÷ 
"Ð	!÷ 
"Ñ	!ú÷ 
"Ð	!ús   ÄIÈ.IÉIÉI(c                  ó  — t         j                  j                  d«      } t        j                  ddd¬«      }|j	                  «       }|j                  «       }|j                  «       }| j                  d«      }||j                  dd«      z  }t        ||«       t        ||«       t        |j                  «       |j                  «       «       t        ||j                  «       «       t        ||j                  «       «       t        j                  t        «      5  t        |j                  «       |«       d d d «       |j!                  t         j"                  «      }|j!                  t         j"                  «      }|j	                  «       }|j                  «       }|j                  «       }||j                  dd«      z  }t        ||«       t        ||«       t        |j                  «       |j                  «       «       t        ||j                  «       «       t        ||j                  «       «       t        j                  t        «      5  t        |j                  «       |«       d d d «       y # 1 sw Y   �Œ>xY w# 1 sw Y   y xY w)Nr   rÚ   rÛ   rÜ   rÝ   r•   r&   )r0   rQ   r   r¥   r°   rÞ   r—   rV   Úreshaper   r   r-   r.   r/   r   rß   r5   r1   rà   s         rF   Útest_inplace_row_scalerè   ~  s²  € Ü
�)‰)×
Ñ
 Ó
"€CÜ
�	‰	�#�s DÔ)€AØ	
�‰‹€BØ	
�‰‹€BØ	
�‰‹€BØ�H‰H�S‹M€EØˆ%�-‰-˜˜AÓ
Ñ€Bä�b˜%Ô Ü�b˜%Ô Ü˜bŸj™j›l¨B¯J©J«LÔ9Ü˜b "§*¡*£,Ô/Ü˜b "§*¡*£,Ô/Ü	�‰”yÕ	!Ü˜QŸW™W›Y¨Ô.÷ 
"ð 	
�‰”—‘Ó€AØ�L‰LœŸ™Ó$€EØ	
�‰‹€BØ	
�‰‹€BØ	
�‰‹€BØˆ%�-‰-˜˜AÓ
Ñ€BÜ�b˜%Ô Ü�b˜%Ô Ü˜bŸj™j›l¨B¯J©J«LÔ9Ü˜b "§*¡*£,Ô/Ü˜b "§*¡*£,Ô/Ü	�‰”yÕ	!Ü˜QŸW™W›Y¨Ô.÷ 
"Ð	!÷ 
"Ñ	!ú÷ 
"Ð	!ús   ÄI2ÉI?É2I<É?Jc                 ó  — t        j                  g d¢g d¢g d¢g d¢g d¢gt         j                  ¬«      } ||«      } | |«      }t        j                  d|f«      }|d   } ||d   |d	   «      \  |d<   |d	<   t        |dd	«       t        |dd	«       t        |j                  «       |j                  «       «       t        ||j                  «       «       t        ||j                  «       «        ||d
   |d   «      \  |d
<   |d<   t        |d
d«       t        |d
d«       t        |j                  «       |j                  «       «       t        ||j                  «       «       t        ||j                  «       «       t        j                  t        «      5  t        |j                  «       «       d d d «       t        j                  g d¢g d¢g d¢g d¢g d¢gt         j                  ¬«      } ||«      } | |«      }t        j                  d|f«      }|d   } ||d   |d	   «      \  |d<   |d	<   t        |dd	«       t        |dd	«       t        |j                  «       |j                  «       «       t        ||j                  «       «       t        ||j                  «       «        ||d
   |d   «      \  |d
<   |d<   t        |d
d«       t        |d
d«       t        |j                  «       |j                  «       «       t        ||j                  «       «       t        ||j                  «       «       t        j                  t        «      5  t        |j                  «       «       d d d «       y # 1 sw Y   �ŒÂxY w# 1 sw Y   y xY w)NrÉ   rÊ   rc   rË   rÏ   re   ©Úswapr   r•   r%   r(   )r0   r†   r2   r   Úget_blas_funcsr   r   r—   r-   r.   r/   rß   r1   ©r   r   r:   r=   r>   rë   s         rF   Útest_inplace_swap_rowrî   ž  s»  € ô 	�‰Ú	’Išyª)²YÐ?ÄrÇzÁzô	€Añ ˜!Ó€EÙ˜!Ó€Eä× Ñ  ¨Q¨DÓ1€DØ�‰7€DÙ�q˜‘t˜Q˜r™UÓ#�K€A€a�Dˆ!ˆB‰%Ü�U˜A˜rÔ"Ü�U˜A˜rÔ"Ü�u—}‘}“¨¯©«Ô8Ü�q˜%Ÿ-™-›/Ô*Ü�q˜%Ÿ-™-›/Ô*á�a˜‘d˜A˜a™DÓ!�J€A€a�Dˆ!ˆA‰$Ü�U˜A˜qÔ!Ü�U˜A˜qÔ!Ü�u—}‘}“¨¯©«Ô8Ü�q˜%Ÿ-™-›/Ô*Ü�q˜%Ÿ-™-›/Ô*Ü	�‰”yÕ	!Ü˜Ÿ™›Ô'÷ 
"ô 	�‰Ú	’Išyª)²YÐ?ÄrÇzÁzô	€Añ ˜!Ó€EÙ˜!Ó€EÜ× Ñ  ¨Q¨DÓ1€DØ�‰7€DÙ�q˜‘t˜Q˜r™UÓ#�K€A€a�Dˆ!ˆB‰%Ü�U˜A˜rÔ"Ü�U˜A˜rÔ"Ü�u—}‘}“¨¯©«Ô8Ü�q˜%Ÿ-™-›/Ô*Ü�q˜%Ÿ-™-›/Ô*Ù�a˜‘d˜A˜a™DÓ!�J€A€a�Dˆ!ˆA‰$Ü�U˜A˜qÔ!Ü�U˜A˜qÔ!Ü�u—}‘}“¨¯©«Ô8Ü�q˜%Ÿ-™-›/Ô*Ü�q˜%Ÿ-™-›/Ô*Ü	�‰”yÕ	!Ü˜Ÿ™›Ô'÷ 
"Ð	!÷- 
"Ñ	!ú÷, 
"Ð	!ús   ÆM0ÍM=Í0M:Í=Nc                 ó’  — t        j                  g d¢g d¢g d¢g d¢g d¢gt         j                  ¬«      } ||«      } | |«      }t        j                  d|f«      }|d   } ||d d …df   |d d …d	f   «      \  |d d …df<   |d d …d	f<   t        |dd	«       t        |dd	«       t        |j                  «       |j                  «       «       t        ||j                  «       «       t        ||j                  «       «        ||d d …df   |d d …d
f   «      \  |d d …df<   |d d …d
f<   t        |dd
«       t        |dd
«       t        |j                  «       |j                  «       «       t        ||j                  «       «       t        ||j                  «       «       t        j                  t        «      5  t        |j                  «       «       d d d «       t        j                  g d¢g d¢g d¢g d¢g d¢gt         j                  ¬«      } ||«      } | |«      }t        j                  d|f«      }|d   } ||d d …df   |d d …d	f   «      \  |d d …df<   |d d …d	f<   t        |dd	«       t        |dd	«       t        |j                  «       |j                  «       «       t        ||j                  «       «       t        ||j                  «       «        ||d d …df   |d d …d
f   «      \  |d d …df<   |d d …d
f<   t        |dd
«       t        |dd
«       t        |j                  «       |j                  «       «       t        ||j                  «       «       t        ||j                  «       «       t        j                  t        «      5  t        |j                  «       «       d d d «       y # 1 sw Y   �ŒâxY w# 1 sw Y   y xY w)NrÉ   rÊ   rc   rË   rÏ   re   rê   r   r•   r&   )r0   r†   r2   r   rì   r   r   r—   r-   r.   r/   rß   r1   rí   s         rF   Útest_inplace_swap_columnrð   Ð  sÿ  € ô 	�‰Ú	’Išyª)²YÐ?ÄrÇzÁzô	€Añ ˜!Ó€EÙ˜!Ó€Eä× Ñ  ¨Q¨DÓ1€DØ�‰7€DÙ˜Qšq !˜t™W aª¨2¨¡hÓ/Ñ€A‚aˆ€d�GˆQŠq�"ˆu‰XÜ˜˜q "Ô%Ü˜˜q "Ô%Ü�u—}‘}“¨¯©«Ô8Ü�q˜%Ÿ-™-›/Ô*Ü�q˜%Ÿ-™-›/Ô*á˜Aša ˜d™G Q¢q¨! t¡WÓ-Ñ€A‚aˆ€d�GˆQŠq�!ˆt‰WÜ˜˜q !Ô$Ü˜˜q !Ô$Ü�u—}‘}“¨¯©«Ô8Ü�q˜%Ÿ-™-›/Ô*Ü�q˜%Ÿ-™-›/Ô*Ü	�‰”yÕ	!Ü˜EŸK™K›MÔ*÷ 
"ô 	�‰Ú	’Išyª)²YÐ?ÄrÇzÁzô	€Añ ˜!Ó€EÙ˜!Ó€EÜ× Ñ  ¨Q¨DÓ1€DØ�‰7€DÙ˜Qšq !˜t™W aª¨2¨¡hÓ/Ñ€A‚aˆ€d�GˆQŠq�"ˆu‰XÜ˜˜q "Ô%Ü˜˜q "Ô%Ü�u—}‘}“¨¯©«Ô8Ü�q˜%Ÿ-™-›/Ô*Ü�q˜%Ÿ-™-›/Ô*Ù˜Aša ˜d™G Q¢q¨! t¡WÓ-Ñ€A‚aˆ€d�GˆQŠq�!ˆt‰WÜ˜˜q !Ô$Ü˜˜q !Ô$Ü�u—}‘}“¨¯©«Ô8Ü�q˜%Ÿ-™-›/Ô*Ü�q˜%Ÿ-™-›/Ô*Ü	�‰”yÕ	!Ü˜EŸK™K›MÔ*÷ 
"Ð	!÷- 
"Ñ	!ú÷, 
"Ð	!ús   Æ6N0ÎN=Î0N:Î=O)r   r&   NÚsparse_formatz.missing_values, min_func, max_func, ignore_nanFTÚlarge_indicesc                 óZ  — t        j                  g d¢dd|gg d¢d|dgg d¢g| ¬«      } ||«      }	|r@|	j                  j                  d	«      |	_        |	j                  j                  d	«      |	_        t        |	||¬
«      \  }
}t        |
 |||¬«      «       t        | |||¬«      «       y )NrÉ   r%   r•   rc   rÌ   rÎ   rÏ   re   r4   )r+   Ú
ignore_nanr*   )r0   r†   Úindicesr5   Úindptrr   r   )r6   r+   rñ   Úmissing_valuesÚmin_funcÚmax_funcrô   rò   r:   rC   Úmins_sparseÚmaxs_sparses               rF   Útest_min_maxrü     s¬   € ô$ 	�‰âØ��NÐ#ÚØ� Ð"Úð	
ð ô		€Añ ˜QÓ€HáØ#×+Ñ+×2Ñ2°7Ó;ˆÔØ"Ÿ/™/×0Ñ0°Ó9ˆŒä+¨H¸4ÈJÔWÑ€K�Ü�{¡H¨Q°TÔ$:Ô;Ü�{¡H¨Q°TÔ$:Õ;r]   c                 ó
  — t        j                  g d¢g d¢g d¢g d¢g d¢gt         j                  ¬«      } ||«      } | |«      }t        j                  t
        «      5  t        |j                  «       d¬«       d d d «       t        j                  t        «      5  t        |d	¬«       d d d «       t        j                  t        «      5  t        |d
¬«       d d d «       y # 1 sw Y   ŒhxY w# 1 sw Y   ŒExY w# 1 sw Y   y xY w)NrÉ   ©r%   r•   r   rc   rË   rÏ   re   r   r*   r%   rÆ   )	r0   r†   r2   r-   r.   r/   r   rß   r˜   )r   r   r:   r=   r>   s        rF   Útest_min_max_axis_errorsrÿ   )  s­   € ô 	�‰Ú	’J¢	ª9²iÐ@ÌÏ
É
ô	€Añ ˜!Ó€EÙ˜!Ó€EÜ	�‰”yÕ	!Ü�U—[‘[“]¨Õ+÷ 
"ä	�‰”zÕ	"Ü�U Õ#÷ 
#ä	�‰”zÕ	"Ü�U Õ$÷ 
#Ð	"÷	 
"Ð	!úç	"Ð	"úç	"Ð	"ús$   ÁC!ÂC-Ã
C9Ã!C*Ã-C6Ã9Dc                 ó\  — t        j                  g d¢g d¢g d¢g d¢g d¢gt         j                  ¬«      } ||«      } | |«      }|dk7  }g d¢}|t        j                  |«      d d …d f   z  }d	D ]Q  }t        t	        ||¬
«      |j                  |¬
«      «       t        t	        |||¬«      |j                  |¬
«      «       ŒS t        j                  t        «      5  t	        |«       d d d «       t        j                  t        «      5  t	        |d¬
«       d d d «       t	        |d¬
«      j                  t	        |d¬
«      j                  k(  sJ ‚t	        |d|¬«      j                  t	        |d|¬«      j                  k(  sJ ‚	 |j                  j                  t         j                  «      |_        |j                  j                  t         j                  «      |_        t	        |d¬
«      j                  t	        |d¬
«      j                  k(  sJ ‚t	        |d|¬«      j                  t	        |d|¬«      j                  k(  sJ ‚y # 1 sw Y   �Œ_xY w# 1 sw Y   �Œ=xY w# t        $ rC}	d|	j                  d   v r!t        j                   «       j"                  dk  sJ |	«       ‚Y d }	~	y d }	~	ww xY w)NrÉ   rþ   rc   rË   rÏ   re   r   )ç      à?gš™™™™™É?g333333Ó?çš™™™™™¹?r  )r   r&   r•   éþÿÿÿNr*   )r+   r[   r%   r&   zaccording to the rule 'safe'rÍ   )r0   r†   r2   r   r   Úsumr-   r.   r/   r˜   r6   rõ   r5   r4   rö   ÚargsrÑ   Únbytes)
r   r   r:   r=   r>   Ú	X_nonzeror[   ÚX_nonzero_weightedr+   Úes
             rF   Útest_count_nonzeror
  9  s9  € ô 	�‰Ú	’J¢	ª9²iÐ@ÌÏ
É
ô	€Añ ˜!Ó€EÙ˜!Ó€EØ�Q‘€IÚ-€MØ"¤R§X¡X¨mÓ%<ºQÀ¸WÑ%EÑEÐã$ˆÜ!Ü˜% dÔ+¨Y¯]©]À¨]Ó-Eô	
ô 	"Ü˜% d¸-ÔHØ×"Ñ"¨Ð"Ó-õ	
ð	 %ô 
�‰”yÕ	!Ü�eÔ÷ 
"ä	�‰”zÕ	"Ü�e !Õ$÷ 
#ô ˜ QÔ'×-Ñ-´¸uÈ1Ô1M×1SÑ1SÒSÐSÐSä�e !°=ÔA×GÑGÜ˜ Q°mÔD×JÑJò	Kðð	Kð	WØŸ™×,Ñ,¬R¯X©XÓ6ˆŒØ—|‘|×*Ñ*¬2¯8©8Ó4ˆŒÜ˜U¨Ô+×1Ñ1´]À5ÈqÔ5Q×5WÑ5WÒWÐWÐWä˜% a°}ÔE×KÑKÜ˜U¨¸-ÔH×NÑNòOð	
ñO÷% 
"Ñ	!úç	"Ñ	"ûô& ò WØ-°·±¸±Ñ:¼r¿w¹w»y×?OÑ?OÐRSÒ?SÐVÐUVÓVÐSÔ?SûðWús1   ÃIÄ	IÆC I ÉIÉIÉ	J+É(9J&Ê&J+c                 ó"  — t         j                  j                  d«      }|j                  dd«      }t        j                  |d¬«      } | |«      }t        |«      }t        ||«       |j                  dd«      }d||dk  <   |j                  ddd«      }||    ||<    | |«      }t        j                  |d¬«      }t        |«      }t        ||«       dd	gd
d
gddgddgg} | |«      }t        t        |«      t        j                  ddg«      «       dd	gd
dgddgg} | |«      }t        t        |«      t        j                  ddg«      «       t        j                  t        «      5  t         ||«      «       d d d «       y # 1 sw Y   y xY w)Nr   rÚ   r‚   r*   é3   g        gffffffæ?rN   r  r•   r&   r%   r  g      à¿éûÿÿÿrÆ   )r0   rQ   r   rV   Úmedianr   r   r…   r†   r-   r.   r/   )r   r   rY   r:   Údense_medianÚcscÚsparse_medianÚinds           rF   Útest_csc_row_medianr  g  sq  € ô �)‰)×
Ñ
 Ó
"€CØ�‰��bÓ€AÜ—9‘9˜Q QÔ'€LÙ
˜Ó
€CÜ% cÓ*€MÜ�} lÔ3ð 	�‰��SÓ€AØ€A€aˆ#�g�JØ
�+‰+�a˜˜RÓ
 €CØ�‰fˆW€A€c�FÙ
˜Ó
€CÜ—9‘9˜Q QÔ'€LÜ% cÓ*€MÜ�} lÔ3ð ˆRˆ�2�r�(˜Q ˜F Q¨ FÐ+€AÙ
˜Ó
€CÜÔ(¨Ó-¬r¯x©x¸¸d¸Ó/DÔEØ
ˆRˆ�2�r�(˜Q ˜GÐ$€AÙ
˜Ó
€CÜÔ(¨Ó-¬r¯x©x¸¸b¸	Ó/BÔCô 
�‰”yÕ	!Ü™-¨Ó*Ô+÷ 
"×	!Ñ	!ús   Å*FÆFÚinplace_csr_row_normalizec                 óX  — | t         j                  u rt        j                  d«      }nt        j                  d«      }t	        d«      }t        j
                  t        j                  fD �]>  }|j                  dd«      j                  |«      } | |«      }t        j                  t        j                  fD ]ï  }|t        j                  u r@|j                  j                  |«      |_        |j                  j                  |«      |_        |j                  j                  |k(  sJ ‚|j                  j                  |k(  sJ ‚ ||«       |j                  |k(  sJ ‚|t        u r|xj                  dz  c_        t!        t        j"                  |«      j%                  d¬«      |«       Œñ �ŒA y )N)rN   r&   rN   r   r%   r&   r*   )r¥   Ú
csr_matrixr0   rÒ   r   r2   r1   Úrandnr5   r3   r4   rö   rõ   r6   r   Údatar   Úabsr  )r   r  rÒ   Úrsr6   r:   r=   Úindex_dtypes           rF   Útest_inplace_normalizer  ‹  sA  € ð œŸ™Ñ%Ü�w‰w�wÓ‰ä�w‰w�r‹{ˆÜ	�R‹€Bä—*‘*œbŸj™jÔ)ˆØ�H‰H�R˜‹O×"Ñ" 5Ó)ˆÙ˜aÓ ˆÜŸH™H¤b§h¡hÓ/ˆKð œbŸh™hÑ&Ø$Ÿ|™|×2Ñ2°;Ó?�”Ø %§¡× 4Ñ 4°[Ó A�”Ø—=‘=×&Ñ&¨+Ò5Ð5Ð5Ø—<‘<×%Ñ%¨Ò4Ð4Ð4Ù% eÔ,Ø—;‘; %Ò'Ð'Ð'Ø(Ô,HÑHØ—
’
˜qÑ •
Ü%¤b§f¡f¨U£m×&7Ñ&7¸QÐ&7Ó&?ÀÕFò 0ñ *r]   c                 ó  — t        j                  ddd| d¬«      }t         j                  j                  |d¬«      dz  }t	        |«      }|j
                  | k(  sJ ‚| t        j                  k(  rd	nd
}t        |||¬«       y )NrÚ   rN   rž   r”   )r¡   r6   r"   r&   r*   r%   g�íµ ÷Æ°>çH¯¼šò×z>)Úrtol)	r¥   rQ   r   Únormr   r6   r0   r1   r   )r6   r:   Úscipy_normsÚnormsr  s        rF   Útest_csr_row_normsr#  ©  so   € ô 	�	‰	�#�r %¨uÀ2ÔF€Aä—)‘)—.‘. ¨�.Ó+¨qÑ0€KÜ˜!Ó€Eà�;‰;˜%ÒÐÐØœBŸJ™JÒ&‰4¨D€DÜ�E˜;¨TÖ2r]   Úmodule)ÚscopeÚparamsc           	      óH  — | j                   }t        j                  j                  d«      } |t	        j                  dddd|¬«      «      }|j                  «       }t        j                  |j                  d¬«      «      j                  «       }t        ||«      }||z
  }||fS )	z?Returns equivalent tuple[sp.linalg.LinearOperator, np.ndarray].r”   iô  rÚ   r  rž   rŸ   r   r*   )
Úparamr0   rQ   Údefault_rngr¥   r—   Úasarrayr7   Úravelr   )ÚrequestÚsparse_containerr"   rC   ÚX_denseÚmuÚX_sparse_centeredÚX_dense_centereds           rF   Úcentered_matricesr2  ·  s•   € ð —}‘}Ðä—9‘9×(Ñ(¨Ó,€LáÜ
�	‰	�#�s C°ÀLÔQó€Hð ×ÑÓ €GÜ	�‰�H—M‘M q�MÓ)Ó	*×	0Ñ	0Ó	2€Bä/°¸"Ó=ÐØ ‘|ÐàÐ.Ð.Ð.r]   c                 óì   — |\  }}t         j                  j                  | «      }|j                  |j                  d   df«      }t        ||z  |j                  |«      «       t        ||z  ||z  «       y )Nr&   r‚   )r0   rQ   r)  Ústandard_normalrM   r   Úmatmat©Úglobal_random_seedr2  r0  r1  rY   ÚYs         rF   Útest_implicit_center_matmatr9  Ê  sv   € Ø*;Ñ'ÐÐ'Ü
�)‰)×
Ñ
Ð 2Ó
3€CØ×ÑÐ-×3Ñ3°AÑ6¸Ð;Ó<€AÜÐ$ qÑ(Ð*;×*BÑ*BÀ1Ó*EÔFÜÐ$ qÑ(Ð*;¸aÑ*?Õ@r]   c                 óè   — |\  }}t         j                  j                  | «      }|j                  |j                  d   «      }t        ||z  |j                  |«      «       t        ||z  ||z  «       y )Nr&   )r0   rQ   r)  r4  rM   r   Úmatvec©r7  r2  r0  r1  rY   Úys         rF   Útest_implicit_center_matvecr>  Ò  sq   € Ø*;Ñ'ÐÐ'Ü
�)‰)×
Ñ
Ð 2Ó
3€CØ×ÑÐ,×2Ñ2°1Ñ5Ó6€AÜÐ$ qÑ(Ð*;×*BÑ*BÀ1Ó*EÔFÜÐ$ qÑ(Ð*;¸aÑ*?Õ@r]   c                 ó(  — |\  }}t         j                  j                  | «      }|j                  |j                  d   df«      }t        |j                  |z  |j                  |«      «       t        |j                  |z  |j                  |z  «       y )Nr   r‚   )r0   rQ   r)  r4  rM   r   rˆ   Úrmatmatr6  s         rF   Útest_implicit_center_rmatmatrA  Ú  sˆ   € Ø*;Ñ'ÐÐ'Ü
�)‰)×
Ñ
Ð 2Ó
3€CØ×ÑÐ-×3Ñ3°AÑ6¸Ð;Ó<€AÜÐ$×&Ñ&¨Ñ*Ð,=×,EÑ,EÀaÓ,HÔIÜÐ$×&Ñ&¨Ñ*Ð,=×,?Ñ,?À!Ñ,CÕDr]   c                 ó$  — |\  }}t         j                  j                  | «      }|j                  |j                  d   «      }t        |j                  |z  |j                  |«      «       t        |j                  |z  |j                  |z  «       y )Nr   )r0   rQ   r)  r4  rM   r   rˆ   Úrmatvecr<  s         rF   Útest_implit_center_rmatvecrD  â  sƒ   € Ø*;Ñ'ÐÐ'Ü
�)‰)×
Ñ
Ð 2Ó
3€CØ×ÑÐ,×2Ñ2°1Ñ5Ó6€AÜÐ$×&Ñ&¨Ñ*Ð,=×,EÑ,EÀaÓ,HÔIÜÐ$×&Ñ&¨Ñ*Ð,=×,?Ñ,?À!Ñ,CÕDr]   ©ÚAÚBrÕ   ÚmsgzShapes must fulfilzShape of outÚcoozInput 'A' mustzInput 'B' must)r¡   r6   zDtype of A and Bc                 ó€   — t        j                  t        |¬«      5  t        | ||¬«       ddd«       y# 1 sw Y   yxY w)z7Test that sparse_matmul_to_dense raises when it should.)Úmatch©rÕ   N)r-   r.   r˜   r   rE  s       rF   Ú"test_sparse_matmul_to_dense_raisesrM  ê  s*   € ô. 
�‰”z¨Ö	-Ü˜q !¨Õ-÷ 
.×	-Ñ	-ús   œ4´=Úout_is_NoneÚa_containerÚb_containerc                 ó2  — t         j                  j                  | «      }d\  }}}|j                  ||f«      j	                  |«      }	|j                  ||f«      j	                  |«      }
d|	j
                  |j                  ddg||z  ddg¬«      <   d|
j
                  |j                  ddg||z  ddg¬«      <    ||	«      } ||
«      }|rd}nt        j                  ||f|¬«      }t        |||¬	«      }t        ||	|
z  d
¬«       |st        ||d
¬«       yy)z4Test that sparse_matmul_to_dense computes correctly.)rN   é   r¢   r   FTr  )r   ÚpNre   rL  r  )Úatol)
r0   rQ   r)  r4  r5   ÚflatrS   Úemptyr   r   )r7  rN  rO  rP  r6   rY   Ún1Ún2Ún3Úa_denseÚb_denseÚaÚbrÕ   Úresults                  rF   Útest_sparse_matmul_to_denser_    s  € ô �)‰)×
Ñ
Ð 2Ó
3€CØ�J€BˆˆBØ×!Ñ! 2 r (Ó+×2Ñ2°5Ó9€GØ×!Ñ! 2 r (Ó+×2Ñ2°5Ó9€GØJK€G‡L�L�—‘˜U D˜M°°R±¸CÀ¸:�ÓFÑGØJK€G‡L�L�—‘˜U D˜M°°R±¸CÀ¸:�ÓFÑGÙ�GÓ€AÙ�GÓ€AÙØ‰ä�h‰h˜˜B�x uÔ-ˆä# A q¨cÔ2€Fä�F˜G gÑ-°DÕ9ÙÜ˜˜V¨$Ö/ð r]   )TÚnumpyr0   r-   Úscipy.sparseÚsparser¥   Únumpy.randomr   Únumpy.testingr   r   Úscipyr   Úsklearn.datasetsr   Úsklearn.utils._testingr   Úsklearn.utils.fixesr	   r
   r   Úsklearn.utils.sparsefuncsr   r   r   r   r   r   r   r   r   r   r   Úsklearn.utils.sparsefuncs_fastr   r   r   r   ÚmarkÚparametrizerG   r1   r2   r\   r_   rU   r†   r}   r€   r‘   rœ   rQ   ÚhstackrR   r®   r±   r´   rÄ   rÇ   rØ   rå   rè   rî   rð   ÚminÚmaxÚnanminÚnanmaxrü   rÿ   r
  r  r  r#  Úfixturer2  r9  r>  rA  rD  Úeyer3   rM  r_  © r]   rF   Ú<module>ru     sP  ðÛ Û Ý Ý $ß GÝ å 0Ý 2ß NÑ N÷÷ ÷ ñ ÷ó ð ‡�×Ñ˜¨.Ó9Ø‡�×Ñ˜¨.Ó9Ø‡�×Ñ˜¨.Ó9ñFó :ó :ó :ðFðD ‡�×Ñ˜ 2§:¡:¨r¯z©zÐ":Ó;Ø‡�×ÑÐ-¨~ÀÑ/NÓOñ%ó Pó <ð%ð$ ‡�×Ñ˜¨.Ó9Ø‡�×Ñ˜¨.Ó9Ø‡�×Ñ˜¨.Ó9ñFó :ó :ó :ðFðD ‡�×ÑÚâ
’YÐ	¢)ªYÐ!7ºÐCÚ
’YÐ	¢,²Ð!=ºyÐIÚ
’YÐ	¢)ªYÐ!7¸Ð>à�—‘˜ˆ^˜a §¡¨¯©Ð0Ð1Ø�—‘˜ˆ^˜a §¡¨¯©Ð0Ð1Úð	
ð �ˆV�a˜Ÿ™�[ 1 a &¨1¨a¨&°2·6±6¸2¿6¹6Ð2BÀRÇVÁVÈQÀKÐPâØ�A�r—v‘v�ÚÚØ—‘˜Ÿ™ §¡Ð(Ø—‘˜Ÿ™ Ð#ðð �#ˆJð	
ò š	Ð"ÚšoÐ.ØˆB�H‰H’YÓð	
ð+óð< ‡�×ÑÐ-¨~ÀÑ/NÓOØ‡�×Ñ˜ 2§:¡:¨r¯z©zÐ":Ó;ñA$ó <ó Pó=ð@A$ðH ‡�×ÑÚâ
’YÐ	¢)ªYÐ!7¸!¸Q¸Ð@Ú
’YÐ	¢)ªYº	Ð!BÀQÈÀFÐKÚ
’YÐ	¢)ªYÐ!7¸Ð>à�—‘˜ˆ^˜a §¡¨¯©Ð0Ð1Ø�—‘˜ˆ^˜a §¡¨¯©Ð0Ð1Ø�#ˆJð	
ð ��A�r—v‘v˜q !Ð$ q¨!¨R¯V©V°R·V±V¸R¿V¹VÀQÐ&GÐHà�A�q˜"Ÿ&™& ! QÐ'Ø�A�q˜"Ÿ&™& ! QÐ'Ø�A�r—v‘v˜rŸv™v r§v¡v¨qÐ1ðð
 �#ˆJð	
ò š	Ð"Úš	¢9ªiÐ8ØˆB�H‰H�a˜�VÓð	
ð%óð6 ‡�×ÑÐ-¨~ÀÑ/NÓOØ‡�×Ñ˜ 2§:¡:¨r¯z©zÐ":Ó;ñA$ó <ó Pó7ð:A$ðH ‡�×Ñ˜¨.Ó9Ø‡�×Ñ˜¨.Ó9Ø‡�×Ñ˜¨.Ó9ñN:ó :ó :ó :ðN:ðb ‡�×ÑÐ-¨~ÀÑ/NÓOñ5ó Pð5ð8 ‡�×ÑØð ˆB�I‰I�a˜ C°ÀAÔFØˆB�I‰I�b˜! S°ÀQÔGð	
ð
 ˆB�I‰I�a˜ C°ÀAÔFØˆB�I‰Ià�B—G‘G˜G°·±Ô7Ø�B—I‘I˜b !¨S¸rÔBðð ôð		
ðóð& ‡�×Ñ˜¨.Ó9ñQó :ó'ð(Qò,'ò&	<ð ‡�×Ñ˜ ! Q Ó(Ø‡�×ÑÐ-¨~ÀÑ/NÓOñ,8ó Pó )ð,8ð^ ‡�×Ñ˜¨.Ó9ñ
ó :ð
ð< ‡�×Ñ˜¨.Ó9ñ(ó :ð(ò /ò@/ð@ ‡�×Ñ˜¨.Ó9Ø‡�×Ñ˜¨.Ó9ñ-(ó :ó :ð-(ð` ‡�×Ñ˜¨.Ó9Ø‡�×Ñ˜¨.Ó9ñ-+ó :ó :ð-+ð` ‡�×Ñ˜ 2§:¡:¨r¯z©zÐ":Ó;Ø‡�×Ñ˜¢Ó.Ø‡�×Ñ˜¨.¸>Ñ*IÓJØ‡�×ÑØ4Øˆ�‰�—‘˜Ð "§&¡&¨"¯)©)°R·Y±YÀÐ!EÐFóð ‡�×Ñ˜¨4°¨-Ó8ñ<ó 9ó	ó Kó /ó <ð<ð> ‡�×Ñ˜¨.Ó9Ø‡�×Ñ˜¨.Ó9ñ%ó :ó :ð%ð ‡�×Ñ˜¨.Ó9Ø‡�×Ñ˜¨.Ó9ñ)Wó :ó :ð)WðX ‡�×Ñ˜¨.Ó9Ø‡�×Ñ˜¨.Ó9ñ,ó :ó :ð,ðD ‡�×ÑØØ!Ð#?Ð@óð ‡�×Ñ˜¨.Ó9ñGó :ó	ð
Gð2 ‡�×Ñ˜ 2§:¡:¨r¯z©zÐ":Ó;ñ
3ó <ð
3ð €‡��h ~¸Ñ'FÔGñ/ó Hð/ò$AòAòEòEð ‡�×ÑÚà	ˆ�‰�˜%Ô	  & "§&¡&¨°5Ô"9¸4ÐAUÐVØ	ˆ�‰�˜%Ô	  & "§&¡&¨°5Ô"9¸6¸2¿6¹6À!»9ÀnÐUØ	ˆ�‰�˜%Ô	  & "§&¡&¨°5Ô"9¸4ÐAQÐRØ	ˆ�‰�˜%Ô	  & "§&¡&¨°5Ô"9¸4ÐAQÐRàˆB�F‰F�1˜U¨"¯(©(Ô3ØˆB�F‰F�1˜UÔ#ØØð		
ð ˆB�F‰F�1˜U¨"¯*©*Ô5ØˆB�F‰F�1˜U¨"¯*©*Ô5ØØð		
ðóñ*.ó+ð*.ð ‡�×Ñ˜¨°¨Ó6Ø‡�×Ñ˜¨¸Ñ(GÓHØ‡�×Ñ˜¨¸Ñ(GÓHØ‡�×Ñ˜ 2§:¡:¨r¯z©zÐ":Ó;ñ0ó <ó Ió Ió 7ñ0r]   