Ë
    ÜÍ:j„‘  ã                   óÀ  — 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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jN                  jQ                  d
e«      ejN                  jQ                  de«      ejN                  jQ                  de«      d„ «       «       «       Z)ejN                  jQ                  dejT                  ejV                  g«      ejN                  jQ                  deez   «      d„ «       «       Z,ejN                  jQ                  d
e«      ejN                  jQ                  de«      ejN                  jQ                  de«      d„ «       «       «       Z-ejN                  jQ                  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j\                  dgd ej\                  ej\                  ggd ej\                  dgd ej\                  ej\                  ggg d¢fd d gdej\                  gdd gd dgej\                  ej\                  gej\                  dggg d¢ddej\                  gg d¢g d ¢ej\                  ej\                  ej\                  gej\                  ej\                  dggd!d"gfg d#¢g d$¢gg d%¢g d&¢g ej^                  g d'¢«      fg«      ejN                  jQ                  deez   «      ejN                  jQ                  dejT                  ejV                  g«      d(„ «       «       «       Z0ejN                  jQ                  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j\                  dgd ej\                  ej\                  ggd ej\                  dgd ej\                  ej\                  ggd"d"gfd d dej\                  dd gd dej\                  ej\                  ej\                  dggd d dej\                  dd gd d dej\                  dd gd dej\                  ej\                  ej\                  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jN                  jQ                  deez   «      ejN                  jQ                  dejT                  ejV                  g«      d)„ «       «       «       Z1ejN                  jQ                  d
e«      ejN                  jQ                  de«      ejN                  jQ                  de«      d*„ «       «       «       Z2ejN                  jQ                  deez   «      d+„ «       Z3ejN                  jQ                  d, ed-d.d/d ¬0«       ed1d.d/d ¬0«      f ed-d.d/d ¬0«       ejh                   ejj                  d2ej\                  ¬3«       ed2d.d4¬5«      gd/¬6«      fg«      ejN                  jQ                  de«      d7„ «       «       Z6d8„ Z7d9„ Z8ejN                  jQ                  d:d dg«      ejN                  jQ                  deez   «      d;„ «       «       Z9ejN                  jQ                  de«      d<„ «       Z:ejN                  jQ                  de«      d=„ «       Z;d>„ Z<d?„ Z=ejN                  jQ                  d
e«      ejN                  jQ                  de«      d@„ «       «       Z>ejN                  jQ                  d
e«      ejN                  jQ                  de«      dA„ «       «       Z?ejN                  jQ                  dejT                  ejV                  g«      ejN                  jQ                  d:g dB¢«      ejN                  jQ                  dCeez   «      ejN                  jQ                  dDd ej€                  ej‚                  dEfej\                  ej„                  ej†                  dFfg«      ejN                  jQ                  dGdFdEg«      dH„ «       «       «       «       «       ZDejN                  jQ                  d
e«      ejN                  jQ                  de«      dI„ «       «       ZEejN                  jQ                  d
e«      ejN                  jQ                  de«      dJ„ «       «       ZFejN                  jQ                  d
e«      ejN                  jQ                  de«      dK„ «       «       ZGejN                  jQ                  dLe%e&f«      ejN                  jQ                  de«      dM„ «       «       ZHejN                  jQ                  dejT                  ejV                  g«      dN„ «       ZI ej”                  dOeez   ¬P«      dQ„ «       ZKdR„ ZLdS„ ZMdT„ ZNdU„ ZOejN                  jQ                  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jT                  ¬\«       ej                   dd/ejV                  ¬\«      dd]fg«      d^„ «       ZRejN                  jQ                  d_dEdFg«      ejN                  jQ                  d`eez   «      ejN                  jQ                  daeez   «      ejN                  jQ                  dejT                  ejV                  g«      db„ «       «       «       «       ZSy)cé    N)ÚRandomState)Úassert_array_almost_equalÚassert_array_equal)Úlinalg)Úmake_classification)Úassert_allclose)ÚCSC_CONTAINERSÚCSR_CONTAINERSÚLIL_CONTAINERSÚ_sparse_random_array)Ú_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/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/sklearn/utils/tests/test_sparsefuncs.pyÚtest_mean_variance_axis0rH   %   ó~  € ô ˜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ò FÑ!ˆ�\Ø—‘˜+Ó&ˆØ ˜ò 	Fˆ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ñ	FñF÷*ñ *úó   ÁFÆF$r7   Ú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Úshaper7   é
   F)Úreplace)Úweightsr,   )r1   Úrandomr   ÚfullÚchoiceÚarangerN   ÚnanÚrandr6   r   ÚfinfoÚeps)r7   rK   Úrngr;   Úmissing_indicesÚsample_weightr<   r9   s           rG   Ú"test_mean_variance_axis0_precisionr]   J   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-   r:   s                  rG   Útest_mean_variance_axis1r`   ^   rI   rJ   )ÚXwr;   rQ   )r   r   r'   ©r   r&   r)   )r'   r'   r'   )r   r'   r'   )r   r   r   r'   )r   r'   r'   r'   )r'   r&   r'   r&   )ç      ð?rc   rc   r'   r)   ©r   r   r   )r&   r&   r   )r   r   r)   g       @rc   )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   ©r7   ©r;   r,   Ú	last_meanÚlast_varÚlast_nrQ   ©r;   r,   )
r6   r1   ÚzerosrN   Ú
zeros_liker5   r   r7   r   r   ©ra   r;   rQ   rK   r7   r,   Ú	Xw_sparserD   rh   ri   rj   Ú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                            rG   Ú+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'   rf   rg   rk   )
r6   r1   rl   Úsizerm   r5   r   r7   r   r   rn   s                            rG   Ú+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   rO   r&   )r€   rf   r'   )r;   r,   rh   ri   ©r,   rh   ri   rj   )r1   rR   r   ÚrangeÚrandintrl   rm   r5   ÚarrayÚ
atleast_2dÚTr.   r/   r0   r   r   r   r   rN   Úvstackr2   r3   r4   r6   r7   )r   r   r   r,   rZ   Ú
n_featuresÚ	n_samplesÚiÚdata_chunksrh   ri   rj   r;   r=   r>   rE   rF   ÚX_means_incrÚX_vars_incrÚn_incrr?   r@   rA   rB   rD   s                            rG   Útest_incr_mean_variance_axisr“   H  sx  € ð ó M:ˆÜ�i‰i×#Ñ# AÓ&ˆØˆ
Øˆ	Ø�1Š9ÜGLÈYÓGWÖXÀ!˜3Ÿ;™; q¨!°*˜;Õ=ÐXˆKÑXäFKÈJÓFWÖXÀ˜3Ÿ;™; q¨!°)˜;Õ<ÐXˆ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ñ!:ò	:ñyM:ùò
 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!   é*   rf   )rh   ri   rj   r,   r   r+   r'   Néÿÿÿÿ)r1   rR   r   rW   rl   rm   rN   r5   Údictr   r   r8   Útoarrayr9   r.   r/   Ú
ValueError)rK   r�   rŒ   rZ   r;   rh   ri   rj   ÚkwargsÚmean0Úvar0r<   s               rG   Ú)test_incr_mean_variance_axis_dim_mismatchrž   œ  sL  € ð "Ñ€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Ó	"ñ 5Ü Ñ4¨Ð4¨VÒ4÷5ô ˜I c r˜N°XÀfÔM€FÜ	�‰”zÓ	"ñ 5Ü Ñ4¨Ð4¨VÒ4÷5ð 5÷5ð 5ú÷
5ð 5ús   Ä-FÅ.FÆFÆFzX1, X2©r    r&   çš™™™™™é?Úcsr©ÚdensityÚformatrZ   )é   r&   )r¥   r'   )rM   r–   )r£   rZ   )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'   rf   r…   r+   )r1   rl   rN   r5   r   Úspr‹   r   Únanmeanr™   Únanvarr   Úisnan)ÚX1ÚX2r   r,   rh   ri   rj   Úupdated_meanÚupdated_varÚ	updated_nr;   s              rG   Ú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        dddd¬«      }t        dddd¬«      }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¡   r¢   rƒ   r'   rf   r…   )r   r1   rl   rN   r5   r   r   )	r,   r«   r¬   rh   ri   rj   r­   r®   r¯   s	            rG   Ú test_incr_mean_variance_no_new_nr²   ã  sÉ   € à€DÜ	˜f¨c¸%ÀQÔ	G€BÜ	˜f¨c¸%ÀQÔ	G€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                  óN  — d} t        dddd¬«      }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   r1   rl   rN   r   r   rS   )r,   r;   rh   ri   rj   r<   Únew_ns          rG   Útest_incr_mean_variance_n_floatrµ   ö  s‰   € à€DÜ˜V¨S¸ÀAÔF€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&   rf   )éª   r¹   r¹   r¹   )é®  rº   rº   rº   )é,  r»   r»   r»   r¹   rº   r»   r…   )r1   rˆ   r5   rV   rŠ   r   Úcopyr   )r,   rK   Ú	old_meansÚold_variancesÚold_sample_countr;   ÚX_nanrE   rF   ÚX_sample_countÚX_nan_meansÚ
X_nan_varsÚX_nan_sample_counts                rG   Ú'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       rG   Útest_mean_variance_illegal_axisrÈ   3  sa  € ä˜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   rd   ©é	   é   é   ©r!   r   r    rf   rb   é   r'   )r'   r)   r!   )r1   r2   r3   rˆ   ÚintpÚonesrN   Ú	ones_liker™   r   r   )r   r7   r;   ÚX_rowsÚoutÚout_rowsÚexpects          rG   Útest_densify_rowsrÙ   R  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        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£   rÝ   )r1   rR   r   r   ÚtocsrÚtocscr™   rW   r   r   r.   r/   r0   Útolilr6   r2   ©rZ   r;   ÚXrÚXcÚXAÚscales         rG   Útest_inplace_column_scalerè   c  s¤  € Ü
�)‰)×
Ñ
 Ó
"€CÜ˜Z°Ô6€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        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'   )r1   rR   r   r   rà   rá   r™   rW   Úreshaper   r   r.   r/   r0   r   râ   r6   r2   rã   s         rG   Útest_inplace_row_scalerë   ƒ  s¼  € Ü
�)‰)×
Ñ
 Ó
"€CÜ˜Z°Ô6€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   ÄI'ÉI4É'I1É4I=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Ë   rd   rÌ   rÐ   rf   ©Úswapr   r—   r&   r)   )r1   rˆ   r3   r   Úget_blas_funcsr   r   r™   r.   r/   r0   râ   r2   ©r   r   r;   r>   r?   rî   s         rG   Ú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Ë   rd   rÌ   rÐ   rf   rí   r   r—   r'   )r1   rˆ   r3   r   rï   r   r   r™   r.   r/   r0   râ   r2   rð   s         rG   Ú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—   rd   rÍ   rÏ   rÐ   rf   r5   )r,   Ú
ignore_nanr+   )r1   rˆ   Úindicesr6   Úindptrr   r   )r7   r,   rô   Úmissing_valuesÚmin_funcÚmax_funcr÷   rõ   r;   rD   Úmins_sparseÚmaxs_sparses               rG   Ú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   rd   rÌ   rÐ   rf   r   r+   r&   rÇ   )	r1   rˆ   r3   r.   r/   r0   r   râ   rš   )r   r   r;   r>   r?   s        rG   Ú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  rd   rÌ   rÐ   rf   r   )ç      à?gš™™™™™É?g333333Ó?çš™™™™™¹?r  )r   r'   r—   éþÿÿÿNr+   )r,   r\   r&   r'   zaccording to the rule 'safe'rÎ   )r1   rˆ   r3   r   r   Úsumr.   r/   r0   rš   r7   rø   r6   r5   rù   ÚargsrÒ   Únbytes)
r   r   r;   r>   r?   Ú	X_nonzeror\   ÚX_nonzero_weightedr,   Úes
             rG   Útest_count_nonzeror  >  sN  € ô 	�‰Ú	’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æ?rO   r  r—   r'   r&   r  g      à¿éûÿÿÿrÇ   )r1   rR   r   rW   Úmedianr   r   r‡   rˆ   r.   r/   r0   )r   r   rZ   r;   Údense_medianÚcscÚsparse_medianÚinds           rG   Útest_csc_row_medianr  l  sz  € ô �)‰)×
Ñ
 Ó
"€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                 óh  — t        t        j                  | «      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)rO   r'   rO   r    r&   r'   r+   )Ú
issubclassr§   Ú
csr_matrixr1   rÓ   r   r3   r2   Úrandnr6   r4   r5   rù   rø   r7   r   Údatar   Úabsr  )r   r  rÓ   Úrsr7   r;   r>   Úindex_dtypes           rG   Útest_inplace_normalizer   �  sQ  € ô ”"—-‘- Ô/Ü�w‰w�wÓ‰ä�w‰w�r‹{ˆÜ	�R‹€Bä—*‘*œbŸj™jÐ)ó GˆØ�H‰H�R˜‹O×"Ñ" 5Ó)ˆÙ˜aÓ ˆÜŸH™H¤b§h¡hÐ/ò 	Gˆ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ò	GñGr^   c                 óì   — t        dd| d¬«      }t        j                  j                  |d¬«      dz  }t	        |«      }|j
                  | k(  sJ ‚| t        j                  k(  rdnd	}t        |||¬
«       y )N)rÜ   rO   r¡   r–   )r¤   r7   rZ   r'   r+   r&   g�íµ ÷Æ°>çH¯¼šò×z>)Úrtol)	r   r§   r   Únormr   r7   r1   r2   r   )r7   r;   Úscipy_normsÚnormsr#  s        rG   Útest_csr_row_normsr'  ®  si   € ô 	˜Y¨u¸EÀrÔJ€Aä—)‘)—.‘. ¨�.Ó+¨qÑ0€KÜ˜!Ó€Eà�;‰;˜%ÒÐÐØœBŸJ™JÒ&‰4¨D€DÜ�E˜;¨TÖ2r^   Úmodule)ÚscopeÚparamsc                 ó2  — | j                   }t        j                  j                  d«      } |t	        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+   )
Úparamr1   rR   Údefault_rngr   r™   Úasarrayr8   Úravelr   )ÚrequestÚsparse_containerrZ   rD   ÚX_denseÚmuÚX_sparse_centeredÚX_dense_centereds           rG   Úcentered_matricesr6  ¼  s�   € ð —}‘}Ðä
�)‰)×
Ñ
 Ó
#€CáÜ˜Z°¸UÈÔLó€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„   )r1   rR   r-  Ústandard_normalrN   r   Úmatmat©Úglobal_random_seedr6  r4  r5  rZ   ÚYs         rG   Útest_implicit_center_matmatr=  Ï  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'   )r1   rR   r-  r8  rN   r   Úmatvec©r;  r6  r4  r5  rZ   Úys         rG   Útest_implicit_center_matvecrB  ×  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„   )r1   rR   r-  r8  rN   r   rŠ   Úrmatmatr:  s         rG   Útest_implicit_center_rmatmatrE  ß  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   )r1   rR   r-  r8  rN   r   rŠ   Úrmatvecr@  s         rG   Útest_implit_center_rmatvecrH  ç  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¤   r7   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   rI  s       rG   Ú"test_sparse_matmul_to_dense_raisesrQ  ï  s3   € ô. 
�‰”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.)rO   é   r¥   r   FTr  )r€   ÚpNrf   rP  r"  )Úatol)
r1   rR   r-  r8  r6   ÚflatrT   Úemptyr   r   )r;  rR  rS  rT  r7   rZ   Ún1Ún2Ún3Úa_denseÚb_denseÚaÚbrÖ   Úresults                  rG   Útest_sparse_matmul_to_denserc  
  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Únumpyr1   r.   Úscipy.sparseÚsparser§   Únumpy.randomr   Únumpy.testingr   r   Úscipyr   Úsklearn.datasetsr   Úsklearn.utils._testingr   Úsklearn.utils.fixesr	   r
   r   r   Úsklearn.utils.sparsefuncsr   r   r   r   r   r   r   r   r   r   r   Úsklearn.utils.sparsefuncs_fastr   r   r   r   ÚmarkÚparametrizerH   r2   r3   r]   r`   rV   rˆ   r~   r�   r“   rž   ÚhstackrS   r°   r²   rµ   rÅ   rÈ   rÙ   rè   rë   rñ   ró   ÚminÚmaxÚnanminÚnanmaxrÿ   r  r  r  r   r'  Úfixturer6  r=  rB  rE  rH  Úeyer4   rQ  rc  © r^   rG   ú<module>ry     s4  ðÛ Û Ý Ý $ß GÝ å 0Ý 2÷ó ÷÷ ÷ ñ ÷ó ð ‡�×Ñ˜¨.Ó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 ‡�×ÑØñ ! °¸UÈÔJÙ  °#¸eÈÔKð	
ñ
 ! °¸UÈÔJØˆB�I‰Ià�B—G‘G˜G°·±Ô7Ù(¨¸#À2ÔFðð ôð		
ðóð& ‡�×Ñ˜¨.Ó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^   