§
    ¨éUg_q  ã                   óä  — d dl Z d dlZd dlZd dl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 d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZmZ d dlm Z m!Z! d dl"m#Z#m$Z$m%Z% d dl&m'Z' d dl(m)Z)  e¦   «         Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/	 	 	 	 	 	 d3d„Z0	 	 	 	 	 	 	 d4d„Z1d5d„Z2d„ Z3d„ Z4ej5         6                    d¦  «        ej5         7                    de)¦  «        d „ ¦   «         ¦   «         Z8ej5         6                    d¦  «        ej5         7                    de)¦  «        d!„ ¦   «         ¦   «         Z9ej5         6                    d¦  «        ej5         7                    de)¦  «        d"„ ¦   «         ¦   «         Z:d#„ Z;ej5         7                    d$ e<d%¦  «        ¦  «        ej5         7                    de)¦  «        d&„ ¦   «         ¦   «         Z=ej5         6                    d¦  «        ej5         7                    de)¦  «        d'„ ¦   «         ¦   «         Z>ej5         6                    d¦  «        ej5         7                    de)¦  «        d(„ ¦   «         ¦   «         Z?ej5         7                    de)¦  «        d)„ ¦   «         Z@ej5         6                    d¦  «        ej5         7                    de)¦  «        d*„ ¦   «         ¦   «         ZAd+„ ZBd,„ ZCd-„ ZDd.„ ZEej5         7                    d/d0d1g¦  «        d2„ ¦   «         ZFdS )6é    N)Ú	logsumexp)ÚHalfMultinomialLoss)Úclone)Ú	load_irisÚ
make_blobsÚmake_classification)ÚLogisticRegressionÚRidge)Úmake_dataset)ÚLinearModelLoss)Úget_auto_step_size)Ú"_multinomial_grad_loss_all_samples)ÚOneVsRestClassifier)ÚLabelBinarizerÚLabelEncoder)Úcheck_random_stateÚcompute_class_weight)Úassert_allcloseÚassert_almost_equalÚassert_array_almost_equal)Ú	row_norms)ÚCSR_CONTAINERSc                 ó’   — | |z  }|dk    rt          j        | ¦  «        | z  S |dk     r| S | t          j        |¦  «        dz   z  S )Ng      2@g      2Àç      ð?)ÚmathÚexp)ÚpÚyÚzs      úb/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/linear_model/tests/test_sag.pyÚ	log_dlossr!   $   sU   € Ø	ˆA‰€Aàˆ4‚x€xÝŒx˜˜‰|Œ|˜q˜bÑ Ð Øˆ5‚y€yØˆrˆ	Øˆ2•”˜!‘”˜sÑ"Ñ#Ð#ó    c           	      ó€   — t          j        t          j        dt          j        | | z  ¦  «        z   ¦  «        ¦  «        S )Nr   )ÚnpÚmeanÚlogr   ©r   r   s     r    Úlog_lossr(   .   s/   € ÝŒ7•2”6˜#¥¤¨ r¨A¡v¡¤Ñ.Ñ/Ô/Ñ0Ô0Ð0r"   c                 ó   — | |z
  S )N© r'   s     r    Úsquared_dlossr+   3   s   € Øˆq‰5€Lr"   c                 óB   — t          j        d| |z
  z  | |z
  z  ¦  «        S )Nç      à?)r$   r%   r'   s     r    Úsquared_lossr.   7   s#   € ÝŒ7�3˜!˜a™%‘= A¨¡EÑ*Ñ+Ô+Ð+r"   c                 ó¬   — |                       ¦   «         } t          j        || ¦  «        } |||¦  «        }|||                      | ¦  «        z  dz  z  }|S )Nç       @)Úravelr$   Údot)ÚwÚalphaÚmyXÚmyyÚlossÚpredr   s          r    Úget_pobjr9   <   sP   € Ø	�Š‰	Œ	€AÝŒ6�#�q‰>Œ>€DØˆˆT�3‰Œ€AØˆ�—’�q‘”Ñ	˜CÑ	Ñ€AØ€Hr"   é   FTc
           	      óH  — | j         d         | j         d         }}
t          j        | j         d         ¦  «        }t          j        | j         d         ¦  «        }t          j        |
|f¦  «        }d}d}t          j        |
¦  «        }t          j                             d¦  «        }d}t          ¦   «         }|rd}t          |¦  «        D �]U}t          |
¦  «        D �]A}t          |                     ¦   «         |
z  ¦  «        }| |         }| 	                    |¦  «         t          j
        ||¦  «        |z   } ||||         ¦  «        }|�|||         z  }||z  ||z  z   }|||         z
  }||z  }|||<   |	r|||z  ddt          |¦  «        z  z
  z  z  }|rl|||         z
  }|||<   ||z  }||ddt          |¦  «        z  z
  z  z  }|	r|||z  t          |¦  «        z  |z  |z   z  }n|||z  t          |¦  «        z  |z  z  }|||z  t          |¦  «        z  z  }�ŒC�ŒW||fS )Nr   r:   ç        éM   r   ç{®Gáz„?)Úshaper$   ÚzerosÚrandomÚRandomStateÚsetÚrangeÚintÚrandÚaddr2   Úlen)ÚXr   Ú	step_sizer4   Ún_iterÚdlossÚsparseÚsample_weightÚfit_interceptÚsagaÚ	n_samplesÚ
n_featuresÚweightsÚsum_gradientÚgradient_memoryÚ	interceptÚintercept_sum_gradientÚintercept_gradient_memoryÚrngÚdecayÚseenÚepochÚkÚidxÚentryr   ÚgradientÚupdateÚgradient_corrections                                r    Úsagrc   D   s~  € ð œG AœJ¨¬°¬
ˆz€IåŒh�q”w˜q”zÑ"Ô"€GÝ”8˜AœG AœJÑ'Ô'€LÝ”h 	¨:Ð6Ñ7Ô7€Oà€IØ ÐÝ "¤¨Ñ 3Ô 3Ðå
Œ)×
Ò
 Ñ
#Ô
#€CØ€EÝ‰5Œ5€Dð ð Øˆå�v‘”ð <ñ <ˆÝ�yÑ!Ô!ð 	<ñ 	<ˆAÝ�c—h’h‘j”j 9Ñ,Ñ-Ô-ˆCà�c”FˆEØ�HŠH�S‰MŒMˆMÝ”�u˜gÑ&Ô&¨Ñ2ˆAØ�u˜Q  #¤Ñ'Ô'ˆHØÐ(Ø˜M¨#Ô.Ñ.�Ø˜XÑ%¨°©Ñ7ˆFØ"(¨?¸3Ô+?Ñ"?ÐØÐ/Ñ/ˆLØ#)ˆO˜CÑ Øð SØÐ.°Ñ:¸aÀ#ÍÈDÉ	Ì	Á/Ñ>QÑRÑR�àð 
XØ&.Ð1JÈ3Ô1OÑ&OÐ#Ø19Ð)¨#Ñ.Ø&Ð*=Ñ=Ð&Ø# y°C¸#ÅÀDÁ	Ä	¹/Ñ4IÑ'JÑJÐ#Øð XØØ!Ð$:Ñ:½SÀ¹Y¼YÑFÈÑNØ+ñ",ñ ,�I�Ið  Ð-CÑ!CÅcÈ$ÁiÄiÑ!OÐRWÑ!WÑW�Ià�y <Ñ/µ#°d±)´)Ñ;Ñ;ˆG‰Gñ9	<ð< �IÐÐr"   c                 ó6  — ||z  dk    rt          d¦  «        ‚| j        d         | j        d         }}t          j        |¦  «        }t          j        |¦  «        }t          j        |t          ¬¦  «        }t          j        |¦  «        }t          |
¦  «        }d}d}d}d}t          ¦   «         }t          j        ||z  ¦  «        }|rd}d}t          |¦  «        D �]À}t          |¦  «        D �]¬}t	          |                     ¦   «         |z  ¦  «        }| |         }| 	                    |¦  «         |dk    rzt          |¦  «        D ]j}||         dk    r#||xx         ||dz
           ||         z  z  cc<   n4||xx         ||dz
           |||         dz
           z
  ||         z  z  cc<   |||<   Œk|t          j
        ||¦  «        z  |z   } ||||         ¦  «        }|�|||         z  }||z  } | ||         |z  z
  }!||!z  }|	rDt          |¦  «        D ]4}||xx         |!|         |z  ddt          |¦  «        z  z
  z  |z  z  cc<   Œ5|rg|||         z
  }!||!z  }|!|ddt          |¦  «        z  z
  z  z  }!|	r|||z  t          |¦  «        z  |z  |!z   z  }n|||z  t          |¦  «        z  |z  z  }|||<   |d||z  z
  z  }|dk    r||t          |¦  «        z  z  |d<   n$||dz
           ||t          |¦  «        z  z  z   ||<   |dk    r‰|dk     rƒt          |¦  «        D ]g}||         dk    r ||xx         ||         ||         z  z  cc<   n1||xx         ||         |||         dz
           z
  ||         z  z  cc<   |dz   ||<   Œhd||<   ||z  }d}|dz  }�Œ®�ŒÂt          |¦  «        D ]e}||         dk    r#||xx         ||dz
           ||         z  z  cc<   Œ1||xx         ||dz
           |||         dz
           z
  ||         z  z  cc<   Œf||z  }||fS )	Nr   z:Sparse sag does not handle the case step_size * alpha == 1r   r:   ©Údtyper<   r>   g•Ö&è.>)ÚZeroDivisionErrorr?   r$   r@   rE   r   rC   rD   rF   rG   r2   rH   )"rI   r   rJ   r4   rK   rL   rN   rM   rO   rP   Úrandom_staterQ   rR   rS   rT   Úlast_updatedrU   rY   rV   rW   ÚwscalerZ   r[   Úc_sumÚcounterr\   r]   r^   r_   Újr   r`   ra   rb   s"                                     r    Ú
sag_sparsern   „   s=  € ð �5Ñ˜CÒÐÝØHñ
ô 
ð 	
ð œG AœJ¨¬°¬
ˆz€IåŒh�zÑ"Ô"€GÝ”8˜JÑ'Ô'€LÝ”8˜J­cÐ2Ñ2Ô2€LÝ”h˜yÑ)Ô)€OÝ
˜\Ñ
*Ô
*€CØ€IØ ÐØ€FØ€EÝ‰5Œ5€DåŒH�V˜iÑ'Ñ(Ô(€Eð ð Øˆà€GÝ�v‘”ð Cñ CˆÝ�yÑ!Ô!ð B	ñ B	ˆAå�c—h’h‘j”j 9Ñ,Ñ-Ô-ˆCØ�c”FˆEØ�HŠH�S‰MŒMˆMà˜!Š|ˆ|Ý˜zÑ*Ô*ð .ð .�AØ# A”¨!Ò+Ð+Ø ˜
˜
œ
 e¨G°a©KÔ&8¸<È¼?Ñ&JÑJ˜
˜
™
˜
à ˜
˜
œ
Ø! '¨A¡+Ô.°°|ÀA´ÈÑ7JÔ1KÑKØ(¨œOñ',ñ ,˜
˜
™
ð '.�L ‘O�Oà�"œ& ¨Ñ0Ô0Ñ0°IÑ=ˆAØ�u˜Q  #¤Ñ'Ô'ˆHàÐ(Ø˜M¨#Ô.Ñ.�à˜XÑ%ˆFØ"(¨O¸CÔ,@À5Ñ,HÑ"IÐØÐ/Ñ/ˆLØð Ý˜zÑ*Ô*ð ð �AØ˜A�J�J”JØ+¨AÔ.Ø#ñ$à˜s¥S¨¡Y¤Y™Ñ.ñ0ð !ñ!ñ�J�J‘J�Jð ð 	XØ&.°ÀÔ1EÑ&EÐ#Ø&Ð*=Ñ=Ð&Ø# y°C¸#ÅÀDÁ	Ä	¹/Ñ4IÑ'JÑJÐ#Øð XØØ!Ð$:Ñ:½SÀ¹Y¼YÑFÈÑNØ+ñ",ñ ,�I�Ið  Ð-CÑ!CÅcÈ$ÁiÄiÑ!OÐRWÑ!WÑW�Ià#+ˆO˜CÑ à�c˜E IÑ-Ñ-Ñ-ˆFØ˜!Š|ˆ|Ø$¨µ°T±´Ñ(:Ñ;��a‘�à!& w°¡{Ô!3°iÀ6ÍCÐPTÉIÌIÑCUÑ6VÑ!V��g‘à˜!Š|ˆ| ¨¢ Ý˜zÑ*Ô*ð 2ð 2�AØ# A”¨!Ò+Ð+Ø ˜
˜
œ
 e¨G¤n°|ÀA´Ñ&FÑF˜
˜
™
˜
à ˜
˜
œ
Ø! 'œN¨U°<À´?ÀQÑ3FÔ-GÑGØ(¨œOñ',ñ ,˜
˜
™
ð '.°¡k�L ‘O�OØ!"��g‘Ø˜6Ñ!�Ø�à�q‰LˆG‰GñEB	õH �:ÑÔð  ð  ˆØ˜Œ?˜aÒÐØ�AˆJˆJŒJ˜% ¨!¡Ô,¨|¸A¬Ñ>Ñ>ˆJˆJ‰JˆJà�AˆJˆJŒJØ�g ‘kÔ" U¨<¸¬?¸QÑ+>Ô%?Ñ?Ø˜Q”ñ ñ  ˆJˆJ‰JˆJð ˆvÑ€GØ�IÐÐr"   c                 óÜ   — |r7dt          j        t          j        | | z  d¬¦  «        ¦  «        |z   d|z  z   z  S dt          j        t          j        | | z  d¬¦  «        ¦  «        |z   |z   z  S )Nç      @r:   ©Úaxisr   )r$   ÚmaxÚsum)rI   r4   rO   Úclassifications       r    Úget_step_sizerv   ù   ss   € Øð MØ•b”f�RœV A¨¡E°Ð2Ñ2Ô2Ñ3Ô3°mÑCÀcÈEÁkÑQÑRÐRà•b”f�RœV A¨¡E°Ð2Ñ2Ô2Ñ3Ô3°mÑCÀeÑKÑLÐLr"   c                  óÜ  — d} t          | ddd¬¦  «        \  }}d||dk    <   d}d}t          |||¦  «        }d	D �]1}|d
k    rd}nd}t          ||dd|z  | z  |d¬¦  «        }|                     ||¦  «         t	          |||||t
          ||dk    ¬¦  «        \  }	}
t          |||||t
          ||dk    ¬¦  «        \  }}t          j        |	¦  «        }	t          j	        |
¦  «        }
t          j        |¦  «        }t          j	        |¦  «        }t          |	|j        d¬¦  «         t          |
|j        d¬¦  «         t          ||j        d¬¦  «         t          ||j        d¬¦  «         �Œ3d S )Né   é   r   çš™™™™™¹?©rQ   Úcentersrh   Úcluster_stdéÿÿÿÿçš™™™™™ñ?T)rc   rP   rc   éP   é,  ç•dyáý¥=r   é
   ©ÚsolverrO   ÚtolÚCÚmax_iterrh   rP   )rK   rL   rO   rP   é	   ©Údecimal)r   rv   r	   Úfitrn   r!   rc   r$   Ú
atleast_2dÚ
atleast_1dr   Úcoef_Ú
intercept_)rQ   rI   r   r4   rO   rJ   r…   rK   ÚclfrS   rV   Úweights2Ú
intercept2s                r    Útest_classifier_matchingr”      sÌ  € Ø€IÝ 	°1À1ÐRUÐVÑVÔV�D€A€qØ€A€aˆ1‚f�IØ€EØ€MÝ˜a ¨Ñ6Ô6€IØ!ð ,Iñ ,IˆØ�UŠ?ˆ?ØˆFˆFð ˆFÝ ØØ'ØØ�E‰k˜IÑ%ØØð
ñ 
ô 
ˆð 	�Š��1‰Œˆå'ØØØØØÝØ'Ø˜6Ò!ð	
ñ 	
ô 	
Ñˆ�õ  #ØØØØØÝØ'Ø˜6Ò!ð	 
ñ 	 
ô 	 
Ñˆ�*õ ”- Ñ(Ô(ˆÝ”M )Ñ,Ô,ˆ	Ý”= Ñ*Ô*ˆÝ”] :Ñ.Ô.ˆ
å! '¨3¬9¸aÐ@Ñ@Ô@Ð@Ý! )¨S¬^ÀQÐGÑGÔGÐGÝ! (¨C¬I¸qÐAÑAÔAÐAÝ! *¨c¬nÀaÐHÑHÔHÐHÑHðY,Ið ,Ir"   c            	      ó~  — d} d}t           j                             d¦  «        }|                     | |f¬¦  «        }|                     |¬¦  «        }|                     |¦  «        }d}d}d}t          |||d¬¦  «        }	t          |d	d
|| z  |¬¦  «        }
|
                     ||¦  «         t          |||	||t          |¬¦  «        \  }}t          |||	||t          |¬¦  «        \  }}t          ||
j        ¦  «         t          ||
j        ¦  «         t          ||
j        ¦  «         t          ||
j        ¦  «         d S )Nrƒ   é   ©Úsizer   éd   TF©ru   r‚   rc   )rO   r†   r…   r4   rˆ   ©rK   rL   rO   )r$   rA   rB   Únormalr2   rv   r
   rŒ   rn   r+   rc   r   r�   r�   )rQ   rR   rY   rI   Útrue_wr   r4   rK   rO   rJ   r‘   Úweights1Ú
intercept1r’   r“   s                  r    Útest_regressor_matchingr    6  si  € Ø€IØ€Jå
Œ)×
Ò
 Ñ
#Ô
#€CØ�
Š
˜ JÐ/ˆ
Ñ0Ô0€AØ�ZŠZ˜ZˆZÑ(Ô(€FØ	�Šˆf‰Œ€Aà€EØ€FØ€Må˜a ¨ÀeÐLÑLÔL€IÝ
Ø#ØØØ�iÑØðñ ô €Cð ‡G‚GˆAˆq�M„M€Må%Ø	Ø	ØØØÝØ#ðñ ô Ñ€Hˆjõ Ø	Ø	ØØØÝØ#ðñ ô Ñ€Hˆjõ �H˜cœiÑ(Ô(Ð(Ý�J ¤Ñ/Ô/Ð/Ý�H˜cœiÑ(Ô(Ð(Ý�J ¤Ñ/Ô/Ð/Ð/Ð/r"   zignore:The max_iter was reachedÚcsr_containerc                 óv  — d}d}d}t          |ddd¬¦  «        \  }}t          dd	d
d|z  |z  |d¬¦  «        }t          |¦  «        }t          d	d
d|z  |z  |d¬¦  «        }|                     ||¦  «         |                      | |¦  «        |¦  «         |                     ||¦  «         t	          |j        |||t          ¦  «        }	t	          |j        |||t          ¦  «        }
t	          |j        |||t          ¦  «        }t          |	|
d¬¦  «         t          |
|d¬¦  «         t          ||	d¬¦  «         dS )z%tests if the sag pobj matches log regr™   r   rx   ry   r   rz   r{   rc   FgH¯¼šò×z>rƒ   r„   )rO   r†   r‡   rˆ   rh   é   rŠ   N)r   r	   r   rŒ   r9   r�   r(   r   )r¡   rQ   r4   rˆ   rI   r   Úclf1Úclf2Úclf3Úpobj1Úpobj2Úpobj3s               r    Ú)test_sag_pobj_matches_logistic_regressionrª   f  sb  € ð €IØ€EØ€HÝ 	°1À1ÐRUÐVÑVÔV�D€A€qåØØØØ
�‰+˜	Ñ
!ØØðñ ô €Dõ �‰;Œ;€DÝØØØ
�‰+˜	Ñ
!ØØðñ ô €Dð 	‡H‚HˆQ��N„N€NØ‡H‚Hˆ]ˆ]˜1ÑÔ˜qÑ!Ô!Ð!Ø‡H‚HˆQ��N„N€Nå�T”Z ¨¨1­hÑ7Ô7€EÝ�T”Z ¨¨1­hÑ7Ô7€EÝ�T”Z ¨¨1­hÑ7Ô7€Eå˜e U°AÐ6Ñ6Ô6Ð6Ý˜e U°AÐ6Ñ6Ô6Ð6Ý˜e U°AÐ6Ñ6Ô6Ð6Ð6Ð6r"   c                 ó   — d}d}d}d}d}t           j                             d¦  «        }|                     ||f¬¦  «        }|                     |¬¦  «        }|                     |¦  «        }	t          |dd||d¬	¦  «        }
t          |
¦  «        }t          |d
d||d¬	¦  «        }|
                     ||	¦  «         |                      | |¦  «        |	¦  «         |                     ||	¦  «         t          |
j	        |||	t          ¦  «        }t          |j	        |||	t          ¦  «        }t          |j	        |||	t          ¦  «        }t          ||d¬¦  «         t          ||d¬¦  «         t          ||d¬¦  «         dS )z'tests if the sag pobj matches ridge regr™   rƒ   r   Fr—   r‚   rc   é*   ©rO   r†   r…   r4   rˆ   rh   çñhãˆµøä>Úlsqrr£   rŠ   N)r$   rA   rB   rœ   r2   r
   r   rŒ   r9   r�   r.   r   )r¡   rQ   rR   r4   rK   rO   rY   rI   r�   r   r¤   r¥   r¦   r§   r¨   r©   s                   r    Ú&test_sag_pobj_matches_ridge_regressionr°   �  s‘  € ð €IØ€JØ€EØ€FØ€MÝ
Œ)×
Ò
 Ñ
#Ô
#€CØ�
Š
˜ JÐ/ˆ
Ñ0Ô0€AØ�ZŠZ˜ZˆZÑ(Ô(€FØ	�Šˆf‰Œ€AåØ#ØØØØØðñ ô €Dõ �‰;Œ;€DÝØ#ØØØØØðñ ô €Dð 	‡H‚HˆQ��N„N€NØ‡H‚Hˆ]ˆ]˜1ÑÔ˜qÑ!Ô!Ð!Ø‡H‚HˆQ��N„N€Nå�T”Z ¨¨1­lÑ;Ô;€EÝ�T”Z ¨¨1­lÑ;Ô;€EÝ�T”Z ¨¨1­lÑ;Ô;€Eå˜e U°AÐ6Ñ6Ô6Ð6Ý˜e U°AÐ6Ñ6Ô6Ð6Ý˜e U°AÐ6Ñ6Ô6Ð6Ð6Ð6r"   c                 óè  — d}d}d}d}d}d}t           j                             d¦  «        }|                     ||f¬¦  «        }|                     |¬¦  «        }	t          j        ||	¦  «        d	z   }
t          |||d
¬¦  «        }t          ||d||z  ||¬¦  «        }t          |¦  «        }|                     ||
¦  «         |                      | |¦  «        |
¦  «         t          ||
|||t          ||¬¦  «        \  }}t          ||
|||t          d||¬¦	  «	        \  }}t          |j                             ¦   «         |                     ¦   «         d¬¦  «         t          |j        |d¬¦  «         dS )z0tests if the sag regressor is computed correctlyrz   rƒ   é(   r™   g�íµ ÷Æ°>Tr   r—   r0   Frš   rc   r­   )rK   rL   rO   rh   )rK   rL   rM   rO   rh   é   rŠ   r:   N)r$   rA   rB   rœ   r2   rv   r
   r   rŒ   rn   r+   r   r�   r1   r   r�   )r¡   r4   rR   rQ   rˆ   r†   rO   rY   rI   r3   r   rJ   r¤   r¥   Ú
spweights1Úspintercept1Ú
spweights2Úspintercept2s                     r    Ú%test_sag_regressor_computed_correctlyr¸   º  s¨  € ð €EØ€JØ€IØ€HØ
€CØ€MÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�
Š
˜ JÐ/ˆ
Ñ0Ô0€AØ�
Š
˜
ˆ
Ñ#Ô#€AÝ
Œˆq�!‰Œ�sÑ€AÝ˜a ¨ÀeÐLÑLÔL€IåØ#ØØØ�iÑØØðñ ô €Dõ �‰;Œ;€Dà‡H‚HˆQ��N„N€NØ‡H‚Hˆ]ˆ]˜1ÑÔ˜qÑ!Ô!Ð!å)Ø	Ø	ØØØÝØ#Øð	 ñ 	 ô 	 Ñ€J�õ  *Ø	Ø	ØØØÝØØ#Øð
 ñ 
 ô 
 Ñ€J�õ ˜dœj×.Ò.Ñ0Ô0°*×2BÒ2BÑ2DÔ2DÈaÐPÑPÔPÐPÝ˜œ¨¸qÐAÑAÔAÐAÐAÐAr"   c            
      óx  — t          j        g d¢g d¢g d¢gt           j        ¬¦  «        } d}d}d}t          | d¬	¦  «                             ¦   «         }| j        d
         }t          ||d¬¦  «         dD ]ý}dD ]ø}|rs||z   t          |¦  «        z   }|d|z  z   t          |¦  «        z   dz  }t          d|z  |z  |¦  «        }	t          d|z  |z  |¦  «        }
dd|z  |	z   z  }dd|z  |
z   z  }n3d||z   t          |¦  «        z   z  }d|d|z  z   t          |¦  «        z   z  }t          ||d|||¬¦  «        }t          ||d|||¬¦  «        }t          ||d¬¦  «         t          ||d¬¦  «         ŒùŒþd}t          j        t          |¬¦  «        5  t          ||d|¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r:   ry   r³   )ry   r³   r£   )ry   r³   ry   re   ç333333ó?Fé   T)Úsquaredr   r£   rŠ   )TFrp   ry   r:   r   r¼   )rQ   Úis_sagar&   z:Unknown loss function for SAG solver, got wrong instead of©ÚmatchÚwrong)r$   ÚarrayÚfloat64r   rs   r?   r   rE   Úminr   ÚpytestÚraisesÚ
ValueError)rI   r4   rO   Úmax_squared_sumÚmax_squared_sum_rQ   rP   ÚL_sqrÚL_logÚmun_sqrÚmun_logÚstep_size_sqrÚstep_size_logÚstep_size_sqr_Ústep_size_log_Úmsgs                   r    Útest_get_auto_step_sizerÒ   ø  s£  € Ý
Œ�)�)�)˜Y˜Y˜Y¨	¨	¨	Ð2½"¼*ÐEÑEÔE€AØ€EØ€Mà €OÝ  ¨DÐ1Ñ1Ô1×5Ò5Ñ7Ô7ÐØ”˜”
€IÝ˜Ð)9À1ÐEÑEÔEÐEàð !Jð !JˆØ*ð  	Jð  	JˆMØð Ø'¨%Ñ/µ#°mÑ2DÔ2DÑD�Ø(¨3°©;Ñ6½¸]Ñ9KÔ9KÑKÈsÑR�Ý˜a )™m¨eÑ3°UÑ;Ô;�Ý˜a )™m¨eÑ3°UÑ;Ô;�Ø ! Q¨¡Y°Ñ%8Ñ 9�Ø ! Q¨¡Y°Ñ%8Ñ 9��à # ¸Ñ'>ÅÀ]ÑASÔASÑ'SÑ T�Ø #Ø# c¨E¡kÑ1µC¸Ñ4FÔ4FÑFñ!�õ 0Ø ØØØØ#Øðñ ô ˆNõ 0Ø ØØØØ#Øðñ ô ˆNõ   ¨~ÀqÐIÑIÔIÐIÝ ¨~ÀqÐIÑIÔIÐIÐIðA 	JðD G€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð Lð LÝÐ+¨U°G¸]ÑKÔKÐKðLð Lð Lñ Lô Lð Lð Lð Lð Lð Lð Lð Løøøð Lð Lð Lð Lð Lð Ls   ÆF/Æ/F3Æ6F3Úseedr³   c                 óº  — d\  }}d}d}d}d}t           j                             | ¦  «        }t          j        |||¦  «                             |d¦  «        }	d|	                     ¦   «         z  }
t          |d|||z  |¬	¦  «        }t          |¦  «        }|                     |	|
¦  «         |                      ||	¦  «        |
¦  «         | 	                    |	|
¦  «        }| 	                    |	|
¦  «        }|d
k    sJ ‚|d
k    sJ ‚d|	                     ¦   «         z  | 
                    |d¦  «                             ¦   «         z   }
t          |d|||z  ¬¦  «        }t          |¦  «        }|                     |	|
¦  «         |                      ||	¦  «        |
¦  «         | 	                    |	|
¦  «        }| 	                    |	|
¦  «        }|dk    sJ ‚|dk    sJ ‚dS )z(tests if the sag regressor performs well)éûÿÿÿr–   r�   gü©ñÒMbP?r™   rz   r:   r-   rc   )r†   r…   rˆ   r4   rh   g\�Âõ(\ï?)r†   r…   rˆ   r4   çÍÌÌÌÌÌÜ?N)r$   rA   rB   ÚlinspaceÚreshaper1   r
   r   rŒ   ÚscoreÚrandn)rÓ   r¡   ÚxminÚxmaxrQ   r†   rˆ   r4   rY   rI   r   r¤   r¥   Úscore1Úscore2s                  r    Útest_sag_regressorrß   *  sÛ  € ð �J€Dˆ$Ø€IØ
€CØ€HØ€EÝ
Œ)×
Ò
 Ñ
%Ô
%€CÝ
Œ�D˜$ 	Ñ*Ô*×2Ò2°9¸aÑ@Ô@€Að 	ˆa�gŠg‰iŒi‰€AåØØØØ�iÑØðñ ô €Dõ �‰;Œ;€DØ‡H‚HˆQ��N„N€NØ‡H‚Hˆ]ˆ]˜1ÑÔ˜qÑ!Ô!Ð!Ø�ZŠZ˜˜1ÑÔ€FØ�ZŠZ˜˜1ÑÔ€FØ�DŠ=ˆ=ˆ=ˆ=Ø�DŠ=ˆ=ˆ=ˆ=ð 	ˆa�gŠg‰iŒi‰˜#Ÿ)š) I¨qÑ1Ô1×7Ò7Ñ9Ô9Ñ9€Aå�S °ÀÈÑARÐSÑSÔS€DÝ�‰;Œ;€DØ‡H‚HˆQ��N„N€NØ‡H‚Hˆ]ˆ]˜1ÑÔ˜qÑ!Ô!Ð!Ø�ZŠZ˜˜1ÑÔ€FØ�ZŠZ˜˜1ÑÔ€FØ�DŠ=ˆ=ˆ=ˆ=Ø�DŠ=ˆ=ˆ=ˆ=ˆ=ˆ=r"   c           
      ó^  — d}d}d}d}d}t          |ddd¬¦  «        \  }}t          |||d¬¦  «        }t          j        |¦  «        }	t          j        |¦  «        }
d	|
||	d
         k    <   |
}t          dd|z  |z  ||d|¬¦  «        }t          |¦  «        }|                     ||¦  «         |                      | |¦  «        |¦  «         t          |||||t          |¬¦  «        \  }}t          |||||t          d|¬¦  «        \  }}t          |j                             ¦   «         |                     ¦   «         d¬¦  «         t          |j        |d
¬¦  «         t          |j                             ¦   «         |                     ¦   «         d¬¦  «         t          |j        |d
¬¦  «         dS )z4tests if the binary classifier is computed correctlyrz   é2   r®   Try   r   r{   rš   r~   r:   rc   r   r=   ©r…   r‡   rˆ   r†   rh   rO   r›   )rK   rL   rM   rO   rŠ   N)r   rv   r$   ÚuniqueÚonesr	   r   rŒ   rn   r!   r   r�   r1   r   r�   )r¡   r4   rQ   rK   r†   rO   rI   r   rJ   ÚclassesÚy_tmpr¤   r¥   Ú	spweightsÚspinterceptr¶   r·   s                    r    Ú&test_sag_classifier_computed_correctlyré   U  sß  € ð €EØ€IØ€FØ
€CØ€MÝ 	°1À1ÐRUÐVÑVÔV�D€A€qÝ˜a ¨ÀdÐKÑKÔK€IÝŒi˜‰lŒl€GÝŒG�IÑÔ€EØ€Eˆ!ˆw�qŒzŠ/ÑØ€AåØØ
�‰+˜	Ñ
!ØØØØ#ðñ ô €Dõ �‰;Œ;€Dà‡H‚HˆQ��N„N€NØ‡H‚Hˆ]ˆ]˜1ÑÔ˜qÑ!Ô!Ð!å'Ø	Ø	ØØØÝØ#ðñ ô Ñ€Iˆ{õ  *Ø	Ø	ØØØÝØØ#ð	 ñ 	 ô 	 Ñ€J�õ ˜dœj×.Ò.Ñ0Ô0°)·/²/Ñ2CÔ2CÈQÐOÑOÔOÐOÝ˜œ¨¸aÐ@Ñ@Ô@Ð@å˜dœj×.Ò.Ñ0Ô0°*×2BÒ2BÑ2DÔ2DÈaÐPÑPÔPÐPÝ˜œ¨¸qÐAÑAÔAÐAÐAÐAr"   c                 ó4  — d}d}d}d}d}t          |ddd¬¦  «        \  }}t          |||d¬	¦  «        }t          j        |¦  «        }	t	          t          d
d|z  |z  ||d|¬¦  «        ¦  «        }
t          |
¦  «        }|
                     ||¦  «         |                      | |¦  «        |¦  «         g }g }g }g }|	D ]°}t          j        |¦  «        }d|||k    <   t          ||||t          ||¬¦  «        \  }}t          ||||t          |d|¬¦  «        \  }}|                     |¦  «         |                     |¦  «         |                     |¦  «         |                     |¦  «         Œ±t          j        |¦  «        }t          j        |¦  «        }t          j        |¦  «        }t          j        |¦  «        }t          |	¦  «        D ]É\  }}t          |
j        |         j                             ¦   «         ||         d¬¦  «         t          |
j        |         j        ||         d¬¦  «         t          |j        |         j                             ¦   «         ||         d¬¦  «         t          |j        |         j        ||         d¬¦  «         ŒÊdS )z8tests if the multiclass classifier is computed correctlyrz   rx   r®   éF   Tr³   r   r{   rš   rc   r   r=   râ   r~   )rL   rK   rO   )rL   rK   rM   rO   r>   )Úrtolr-   N)r   rv   r$   rã   r   r	   r   rŒ   rä   rn   r!   ÚappendÚvstackrÁ   Ú	enumerater   Úestimators_r�   r1   r�   )r¡   r4   rQ   r†   rˆ   rO   rI   r   rJ   rå   r¤   r¥   Úcoef1rŸ   Úcoef2r“   ÚclÚ	y_encodedr´   rµ   r¶   r·   Úis                          r    Ú&test_sag_multiclass_computed_correctlyrö   �  sÕ  € ð €EØ€IØ
€CØ€HØ€MÝ 	°1À1ÐRUÐVÑVÔV�D€A€qÝ˜a ¨ÀdÐKÑKÔK€IÝŒi˜‰lŒl€GåÝØØ�E‰k˜IÑ%ØØØØ'ð	
ñ 	
ô 	
ñ	ô 	€Dõ �‰;Œ;€Dà‡H‚HˆQ��N„N€NØ‡H‚Hˆ]ˆ]˜1ÑÔ˜qÑ!Ô!Ð!à€EØ€JØ€EØ€JØð (ð (ˆÝ”G˜IÑ&Ô&ˆ	Øˆ	�!�r’'Ñå#-ØØØØÝØØ'ð$
ñ $
ô $
Ñ ˆ
�Lõ $.ØØØØÝØØØ'ð	$
ñ 	$
ô 	$
Ñ ˆ
�Lð 	�Š�ZÑ Ô Ð Ø×Ò˜,Ñ'Ô'Ð'à�Š�ZÑ Ô Ð Ø×Ò˜,Ñ'Ô'Ð'Ð'åŒI�eÑÔ€EÝ”˜*Ñ%Ô%€JÝŒI�eÑÔ€EÝ”˜*Ñ%Ô%€Jå˜7Ñ#Ô#ð Rð R‰ˆˆ2Ý˜Ô(¨Ô+Ô1×7Ò7Ñ9Ô9¸5À¼8È$ÐOÑOÔOÐOÝ˜Ô(¨Ô+Ô6¸
À1¼ÈDÐQÑQÔQÐQå˜Ô(¨Ô+Ô1×7Ò7Ñ9Ô9¸5À¼8È$ÐOÑOÔOÐOå˜Ô(¨Ô+Ô6¸
À1¼ÈDÐQÑQÔQÐQÐQðRð Rr"   c                 ó^  — d}d}d}d}d}t           j                             d¦  «        }|                     ||f¬¦  «        }|                     |¬¦  «        }t          j        ||¦  «        }	t          j        |	¦  «        }	t          dd	|z  |z  ||d
¬¦  «        }
t          |
¦  «        }|
                     ||	¦  «         |                      | |¦  «        |	¦  «         |
 	                    |¦  «        }| 	                    |¦  «        }t          ||	d¬¦  «         t          ||	d¬¦  «         dS )z(tests if classifier results match targetrz   rx   rƒ   r>   éÈ   r   r—   rc   r   r=   )r…   r‡   rˆ   r†   rh   é   rŠ   N)r$   rA   rB   rœ   r2   Úsignr	   r   rŒ   Úpredictr   )r¡   r4   rR   rQ   r†   rˆ   rY   rI   r3   r   r¤   r¥   Úpred1Úpred2s                 r    Útest_classifier_resultsrþ   Ø  s/  € ð €EØ€JØ€IØ
€CØ€HÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�
Š
˜ JÐ/ˆ
Ñ0Ô0€AØ�
Š
˜
ˆ
Ñ#Ô#€AÝ
Œˆq�!‰Œ€AÝ
Œ�‰
Œ
€AÝØØ
�‰+˜	Ñ
!ØØØðñ ô €Dõ �‰;Œ;€Dà‡H‚HˆQ��N„N€NØ‡H‚Hˆ]ˆ]˜1ÑÔ˜qÑ!Ô!Ð!Ø�LŠL˜‰OŒO€EØ�LŠL˜‰OŒO€EÝ˜˜q¨"Ð-Ñ-Ô-Ð-Ý˜˜q¨"Ð-Ñ-Ô-Ð-Ð-Ð-r"   c                 ó  — d}d}d}d}d}t          |ddd¬¦  «        \  }}t          |||d¬	¦  «        }t          j        |¦  «        }	t          j        |¦  «        }
d
|
||	d         k    <   |
}dddœ}t          dd|z  |z  ||d||¬¦  «        }t          |¦  «        }|                     ||¦  «         |                      | |¦  «        |¦  «         t          ¦   «         }t          |t          j        |¦  «        |¬¦  «        }|| 
                    |¦  «                 }t          |||||t          ||¬¦  «        \  }}t          |||||t          d||¬¦	  «	        \  }}t          |j                             ¦   «         |                     ¦   «         d¬¦  «         t!          |j        |d¬¦  «         t          |j                             ¦   «         |                     ¦   «         d¬¦  «         t!          |j        |d¬¦  «         dS )z8tests binary classifier with classweights for each classrz   rá   rx   r®   Try   rƒ   r{   rš   r~   r:   rÖ   gš™™™™™á?)r:   r~   rc   r   r=   )r…   r‡   rˆ   r†   rh   rO   Úclass_weight)rå   r   )rK   rL   rN   rO   )rK   rL   rM   rN   rO   rŠ   N)r   rv   r$   rã   rä   r	   r   rŒ   r   r   Úfit_transformrn   r!   r   r�   r1   r   r�   )r¡   r4   rQ   rK   r†   rO   rI   r   rJ   rå   ræ   r   r¤   r¥   ÚleÚclass_weight_rN   rç   rè   r¶   r·   s                        r    Ú#test_binary_classifier_class_weightr  ö  s2  € ð €EØ€IØ€FØ
€CØ€MÝ 	°1À2ÐSVÐWÑWÔW�D€A€qÝ˜a ¨ÀdÐKÑKÔK€IÝŒi˜‰lŒl€GÝŒG�IÑÔ€EØ€Eˆ!ˆw�qŒzŠ/ÑØ€Aà Ð&Ð&€LÝØØ
�‰+˜	Ñ
!ØØØØ#Ø!ðñ ô €Dõ �‰;Œ;€Dà‡H‚HˆQ��N„N€NØ‡H‚Hˆ]ˆ]˜1ÑÔ˜qÑ!Ô!Ð!å	‰Œ€BÝ(¨½r¼yÈ¹|¼|ÈqÐQÑQÔQ€MØ! "×"2Ò"2°1Ñ"5Ô"5Ô6€MÝ'Ø	Ø	ØØØÝØ#Ø#ð	ñ 	ô 	Ñ€Iˆ{õ  *Ø	Ø	ØØØÝØØ#Ø#ð
 ñ 
 ô 
 Ñ€J�õ ˜dœj×.Ò.Ñ0Ô0°)·/²/Ñ2CÔ2CÈQÐOÑOÔOÐOÝ˜œ¨¸aÐ@Ñ@Ô@Ð@å˜dœj×.Ò.Ñ0Ô0°*×2BÒ2BÑ2DÔ2DÈaÐPÑPÔPÐPÝ˜œ¨¸qÐAÑAÔAÐAÐAÐAr"   c                  óÒ   — ddgddgg} ddg}d}t          j        t          |¬¦  «        5  t          d¬¦  «                             | |¦  «         d	d	d	¦  «         d	S # 1 swxY w Y   d	S )
z1tests if ValueError is thrown with only one classr:   ry   r³   r£   z;This solver needs samples of at least 2 classes in the datar¾   rc   )r…   N)rÄ   rÅ   rÆ   r	   rŒ   )rI   r   rÑ   s      r    Útest_classifier_single_classr  5  s¼   € à
ˆQˆ�!�Q�Ð€AØ	
ˆAˆ€Aà
G€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð 3ð 3Ý %Ð(Ñ(Ô(×,Ò,¨Q°Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3ð 3s   ª%AÁA Á#A c                  óÂ  — ddgddgg} ddg}d}d}t          j        d¦  «        }t          dd|z  |¬¦  «        }t          j        t
          |¬	¦  «        5  |                     | |¦  «         d d d ¦  «         n# 1 swxY w Y   t          |d|¬
¦  «        }t          j        t
          |¬	¦  «        5  |                     | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r:   r~   Fr   zQCurrent sag implementation does not handle the case step_size * alpha_scaled == 1rc   )r…   r‡   rO   r¾   )rO   r…   r4   )ÚreÚescaper	   rÄ   rÅ   rg   rŒ   r
   )rI   r   rO   r4   rÑ   r¤   r¥   s          r    Útest_step_size_alpha_errorr
  ?  st  € Ø
ˆQˆ�!�Q�Ð€AØ	
ˆBˆ€AØ€MØ€EÝ
Œ)ð	)ñô €Cõ
  U¨c°E©kÈÐWÑWÔW€DÝ	ŒÕ(°Ð	4Ñ	4Ô	4ð ð Ø�Š��A‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ˜}°UÀ%ÐHÑHÔH€DÝ	ŒÕ(°Ð	4Ñ	4Ô	4ð ð Ø�Š��A‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s$   ÁA8Á8A<Á?A<Â0CÃCÃCc                  óR  — t           j        t           j                             t          j        ¦  «        }} | j        \  }}t          t	          j        |¦  «        ¦  «        }t          d¦  «        }| 
                    ||¦  «        }| 
                    |¦  «        }t	          j        | 
                    |¦  «        ¦  «        }t          | ||d¬¦  «        \  }	}
t          |	|||||¦  «        \  }}t          t          |¬¦  «        d¬¦  «        }t	          j        ||f¦  «        j        }|                     || |d|¬¦  «        \  }}|d d …d d…f         j        }|t	          j        |¦  «        z  }|t	          j        |¦  «        z  }t)          ||¦  «         t+          ||¦  «         d S )	Nr¬   ©rh   ©Ú	n_classesT©Ú	base_lossrO   r<   ©Úl2_reg_strengthrN   r~   )ÚirisÚdataÚtargetÚastyper$   rÂ   r?   rH   rã   r   rÚ   Úabsr   r   r   r   rî   ÚTÚloss_gradientrt   r   r   )rI   r   rQ   rR   r  rY   rS   rV   Úsample_weightsÚdatasetÚ_Úloss_1Úgrad_1r7   Úweights_interceptÚloss_2Úgrad_2s                    r    Útest_multinomial_lossr"  R  sœ  € åŒ9•d”k×(Ò(­¬Ñ4Ô4€q€AØœGÑ€IˆzÝ•B”I˜a‘L”LÑ!Ô!€Iå
˜RÑ
 Ô
 €CØ�iŠi˜
 IÑ.Ô.€GØ—	’	˜)Ñ$Ô$€IÝ”V˜CŸIšI iÑ0Ô0Ñ1Ô1€Nõ ˜a  NÀÐDÑDÔD�J€GˆQÝ7Ø�˜) Y°
¸Iñô �N€FˆFõ Ý%°	Ð:Ñ:Ô:Øðñ ô €Dõ œ	 7¨IÐ"6Ñ7Ô7Ô9ÐØ×'Ò'Ø˜1˜a°ÀNð (ñ ô �N€FˆFð �A�A�A�s˜�s�FŒ^Ô€Fà
�bŒf�^Ñ$Ô$Ñ$€FØ
�bŒf�^Ñ$Ô$Ñ$€Fõ ˜f fÑ-Ô-Ð-Ý˜ Ñ'Ô'Ð'Ð'Ð'r"   c                  óº  — d} t          j        ddgddgddgddgg¦  «        }t          j        g d¢t           j        ¬¦  «        }t          ¦   «         }|                     |¦  «        }t          j        g d	¢g d
¢g¦  «        }t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        ||¦  «        |z   }t          |d¬¦  «        }	||	d d …t           j        f         z
  }
|d d …t           j        f         |
z  |z                       ¦   «          }|d d …t           j        f         t          j	        |
¦  «        |z
  z  }t          j        |j
        |¦  «        }t          t          | ¬¦  «        d¬¦  «        }t          j        ||f¦  «        j
        }|                     |||d|¬¦  «        \  }}|d d …d d…f         j
        }|t          j        |¦  «        z  }|t          j        |¦  «        z  }t          ||¦  «         t!          ||¦  «         d}t          j        g d¢g d¢g¦  «        }t          ||¦  «         t!          ||¦  «         d S )Nr³   r   gš™™™™™@gš™™™™™Àgffffff
@gš™™™™™À)r   r:   ry   r   re   )rz   gš™™™™™É?g333333Ó?)r   rº   gÍÌÌÌÌÌô¿)r   r   gš™™™™™É¿)çš™™™™™é?r:   r:   r$  r:   rq   r  Tr  r<   r  r~   gc¦>1X\'@)g¯>úîÖá¿g6’á
èù¿gÇØ	/Ái@)gúbïÅíì¿g›sô@g<FzQkÀ)r$   rÁ   rÂ   r   r  r2   r   Únewaxisrt   r   r  r   r   rî   r  r   r   )r  rI   r   ÚlbinÚY_binrS   rV   r  Ú
predictionÚlogsumexp_predictionr   r  Údiffr  r7   r  r   r!  Úloss_gtÚgrad_gts                       r    Ú"test_multinomial_loss_ground_truthr-  u  sw  € à€IÝ
Œ�3˜�*˜s D˜k¨C°¨;¸¸c¸
ÐCÑDÔD€AÝ
Œ���¥R¤ZÐ0Ñ0Ô0€AÝÑÔ€DØ×Ò˜qÑ!Ô!€EåŒh˜˜˜Ð)9Ð)9Ð)9Ð:Ñ;Ô;€GÝ”˜˜˜Ñ(Ô(€IÝ”XÐ.Ð.Ð.Ñ/Ô/€Nå”˜˜7Ñ#Ô# iÑ/€JÝ$ Z°aÐ8Ñ8Ô8ÐØÐ)¨!¨!¨!­R¬Z¨-Ô8Ñ8€AØ˜a˜a˜a¥¤˜mÔ,¨qÑ0°5Ñ8×=Ò=Ñ?Ô?Ð?€FØ˜!˜!˜!�RœZ˜-Ô(­B¬F°1©I¬I¸Ñ,=Ñ>€DÝŒV�A”C˜ÑÔ€FåÝ%°	Ð:Ñ:Ô:Øðñ ô €Dõ œ	 7¨IÐ"6Ñ7Ô7Ô9ÐØ×'Ò'Ø˜1˜a°ÀNð (ñ ô �N€FˆFð �A�A�A�s˜�s�FŒ^Ô€Fà
�bŒf�^Ñ$Ô$Ñ$€FØ
�bŒf�^Ñ$Ô$Ñ$€Få˜ Ñ'Ô'Ð'Ý˜f fÑ-Ô-Ð-ð !€GÝŒhØ	*Ð	*Ð	*Ð,MÐ,MÐ,MÐNñô €Gõ ˜ Ñ(Ô(Ð(Ý˜f gÑ.Ô.Ð.Ð.Ð.r"   r…   rc   rP   c                 óz  — t           j                             d¦  «        }t          |¬¦  «        \  }}t	          | |d¬¦  «        }|                     ||¦  «         t           j        |j        d d …<   t          j	        t          d¬¦  «        5  |                     ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr¬   r  T)r…   rh   Ú
warm_startzFloating-point under-/overflowr¾   )r$   rA   rB   r   r	   rŒ   Únanr�   rÄ   rÅ   rÆ   )r…   rY   rI   r   r‘   s        r    Ú test_sag_classifier_raises_errorr1  ¡  sð   € õ Œ)×
Ò
 Ñ
#Ô
#€CÝ¨CÐ0Ñ0Ô0�D€A€qÝ
 F¸ÈÐ
NÑ
NÔ
N€CØ‡G‚GˆAˆq�M„M€Mõ
 ”6€C„Iˆaˆaˆa�Lå	Œ•zÐ)IÐ	JÑ	JÔ	Jð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÂB0Â0B4Â7B4)r:   NFNTF)r:   NNFTFr   )T)Gr   r  Únumpyr$   rÄ   Úscipy.specialr   Úsklearn._loss.lossr   Úsklearn.baser   Úsklearn.datasetsr   r   r   Úsklearn.linear_modelr	   r
   Úsklearn.linear_model._baser   Ú!sklearn.linear_model._linear_lossr   Úsklearn.linear_model._sagr   Úsklearn.linear_model._sag_fastr   Úsklearn.multiclassr   Úsklearn.preprocessingr   r   Úsklearn.utilsr   r   Úsklearn.utils._testingr   r   r   Úsklearn.utils.extmathr   Úsklearn.utils.fixesr   r  r!   r(   r+   r.   r9   rc   rn   rv   r”   r    ÚmarkÚfilterwarningsÚparametrizerª   r°   r¸   rÒ   rD   rß   ré   rö   rþ   r  r  r
  r"  r-  r1  r*   r"   r    ú<module>rE     sF  ðð €€€Ø 	€	€	€	à Ð Ð Ð Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #à 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø Ð Ð Ð Ð Ð Ø GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø =Ð =Ð =Ð =Ð =Ð =Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø MÐ MÐ MÐ MÐ MÐ MØ 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bðð ð ð ð ð ð ð ð ð ð
 ,Ð +Ð +Ð +Ð +Ð +Ø .Ð .Ð .Ð .Ð .Ð .à€y�{„{€ð$ð $ð $ð1ð 1ð 1ð
ð ð ð,ð ,ð ,ð
ð ð ð Ø
ØØØØ	ð=ð =ð =ð =ðJ Ø
ØØØØ	Øðrð rð rð rðjMð Mð Mð Mð3Ið 3Ið 3Iðl-0ð -0ð -0ð` „×ÒÐ=Ñ>Ô>Ø„×Ò˜¨.Ñ9Ô9ð"7ð "7ñ :Ô9ñ ?Ô>ð"7ðJ „×ÒÐ=Ñ>Ô>Ø„×Ò˜¨.Ñ9Ô9ð(7ð (7ñ :Ô9ñ ?Ô>ð(7ðV „×ÒÐ=Ñ>Ô>Ø„×Ò˜¨.Ñ9Ô9ð3Bð 3Bñ :Ô9ñ ?Ô>ð3Bðx/Lð /Lð /Lðd „×Ò˜   q¡¤Ñ*Ô*Ø„×Ò˜¨.Ñ9Ô9ð&ð &ñ :Ô9ñ +Ô*ð&ðR „×ÒÐ=Ñ>Ô>Ø„×Ò˜¨.Ñ9Ô9ð3Bð 3Bñ :Ô9ñ ?Ô>ð3Bðl „×ÒÐ=Ñ>Ô>Ø„×Ò˜¨.Ñ9Ô9ðFRð FRñ :Ô9ñ ?Ô>ðFRðR „×Ò˜¨.Ñ9Ô9ð.ð .ñ :Ô9ð.ð: „×ÒÐ=Ñ>Ô>Ø„×Ò˜¨.Ñ9Ô9ð:Bð :Bñ :Ô9ñ ?Ô>ð:Bðz3ð 3ð 3ðð ð ð& (ð  (ð  (ðF)/ð )/ð )/ðX „×Ò˜ E¨6 ?Ñ3Ô3ðð ñ 4Ô3ðð ð r"   