Ë
    ÷Q(h�D  ã            
       óÌ  — d Z ddlZddlZddl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 ddlmZ dd	lmZ e
eegZ	 dd
„Zej.                  j1                  de«      ej.                  j1                  dddg«      ej.                  j1                  dg d¢«      ej.                  j1                  ddej2                  ej4                  ej6                  g«      d„ «       «       «       «       Zej.                  j1                  de«      ej.                  j1                  dddg«      ej.                  j1                  dddg«      ej.                  j1                  dddg«      ej.                  j1                  de«      d„ «       «       «       «       «       Zej.                  j1                  de«      ej.                  j1                  dddg«      ej.                  j1                  dddg«      ej.                  j1                  dedgz   «      d„ «       «       «       «       Zej.                  j1                  de«      ej.                  j1                  dddg«      ej.                  j1                  dddg«      ej.                  j1                  dddg«      d„ «       «       «       «       Zej.                  j1                  dddg«      d„ «       Z ej.                  j1                  dddg«      d„ «       Z!d„ Z"y) z‰
Tests for LinearModelLoss

Note that correctness of losses (which compose LinearModelLoss) is already well
covered in the _loss module.
é    N)Úassert_allclose)ÚlinalgÚoptimize)ÚHalfBinomialLossÚHalfMultinomialLossÚHalfPoissonLoss)Úmake_low_rank_matrix)ÚLinearModelLoss)Úsquared_norm)ÚCSR_CONTAINERSc                 óœ  ‡— t         j                  j                  |«      Š|| j                  z   }t	        ||‰¬«      }| j                  |«      }| j                  j                  rã| j                  j                  }‰j                  |d   |d   ||z  ¬«      |j                  dd | j                  r#||dd…dd…f   j                  z  |dd…df   z   }	n||j                  z  }	| j                  j                  j                  |	«      }
ˆfd„} |t        j                  |«      |
¬«      j                  t         j                   «      }n�‰j                  |d   |d   |¬«      |j                  dd | j                  r||dd z  |d   z   }	n||z  }	| j                  j                  j                  |	‰j                  dd|¬«      z   «      }|||fS )	z-Random generate y, X and coef in valid range.)Ú	n_samplesÚ
n_featuresÚrandom_stater   é   )ÚlowÚhighÚsizeNéÿÿÿÿc                 ó¦   •— |j                  d¬«      }‰j                  |j                  d   «      d d …d f   }||k  j                  d¬«      }| |   S )Nr   ©Úaxisr   )ÚcumsumÚrandÚshapeÚsum)ÚitemsÚpÚsÚrÚkÚrngs        €úi/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/linear_model/tests/test_linear_loss.pyÚchoice_vectorizedz*random_X_y_coef.<locals>.choice_vectorized8   sO   ø€ Ø—‘˜a�Ó ˆAØ—‘˜Ÿ™ ™Ó$¢Q¨ WÑ-ˆAØ�Q‘—‘ �Ó#ˆAØ˜‘8ˆOó    )r   )ÚnpÚrandomÚRandomStateÚfit_interceptr	   Úinit_zero_coefÚ	base_lossÚis_multiclassÚ	n_classesÚuniformÚflatÚTÚlinkÚinverseÚarangeÚastypeÚfloat64)Úlinear_model_lossr   r   Ú
coef_boundÚseedÚn_dofÚXÚcoefr-   Úraw_predictionÚprobar$   Úyr"   s                @r#   Úrandom_X_y_coefr?      s¿  ø€ ô �)‰)×
Ñ
 Ó
%€CØÐ*×8Ñ8Ñ8€EÜØØØô	€Að
 ×+Ñ+¨AÓ.€Dà×"Ñ"×0Ò0Ø%×/Ñ/×9Ñ9ˆ	Ø—{‘{Ø˜1‘Ø˜A‘Ø˜UÑ"ð #ó 
ˆ�	‰	‘!ˆð
 ×*Ò*Ø ¢a¨¨"¨ f¡§¡Ñ/°$²q¸"°u±+Ñ=‰Nà §¡™ZˆNØ!×+Ñ+×0Ñ0×8Ñ8¸ÓHˆô	ñ œbŸi™i¨	Ó2°eÔ<×CÑCÄBÇJÁJÓO‰à—{‘{Ø˜1‘Ø˜A‘Øð #ó 
ˆ�	‰	‘!ˆð
 ×*Ò*Ø  c r ™]¨T°"©XÑ5‰Nà ™XˆNØ×'Ñ'×,Ñ,×4Ñ4Ø˜SŸ[™[¨R°a¸i˜[ÓHÑHó
ˆð ˆa�ˆ:Ðr%   r+   r)   FTr   )r   r   é
   Údtypec                 ó  — t         | «       |¬«      }t        j                  j                  d«      }|j	                  d|f¬«      }|j                  ||¬«      }|j                  j                  r=|j                  j                  }|j                  |||z   fk(  sJ ‚|j                  d   sJ ‚|j                  ||z   fk(  sJ ‚|€|j                  |j                  k(  sJ ‚|j                  |k(  sJ ‚t        j                  |«      dk(  sJ ‚y)	z4Test that init_zero_coef initializes coef correctly.©r+   r)   é*   é   )r   )rA   ÚF_CONTIGUOUSNr   )r
   r&   r'   r(   Únormalr*   r+   r,   r-   r   ÚflagsrA   Úcount_nonzero)	r+   r)   r   rA   Úlossr"   r:   r;   r-   s	            r#   Útest_init_zero_coefrK   P   sù   € ô ¡Y£[ÀÔN€DÜ
�)‰)×
Ñ
 Ó
#€CØ�
‰
˜˜J˜ˆ
Ó(€AØ×Ñ˜q¨ÐÓ.€DØ‡~�~×#Ò#Ø—N‘N×,Ñ,ˆ	Ø�z‰z˜i¨°mÑ)CÐDÒDÐDÐDØ�z‰z˜.Ò)Ð)Ð)à�z‰z˜j¨=Ñ8Ð:Ò:Ð:Ð:à€}Ø�z‰z˜QŸW™WÒ$Ð$Ð$à�z‰z˜UÒ"Ð"Ð"ä×Ñ˜DÓ! QÒ&Ð&Ñ&r%   Úsample_weightÚrangeÚl2_reg_strengthr   Úcsr_containerc           	      ó¦  — t         | «       |¬«      }t        |ddd¬«      \  }}}|j                  «       |j                  «       |j                  «       }}
}	|dk(  r2t        j                  d|j
                  d   |j
                  d   ¬	«      }|j                  |||||¬
«      }|j                  |||||¬
«      }|j                  |||||¬
«      \  }}|j                  |||||¬
«      \  }}|j                  |||||¬
«      \  }}}t        ||«       t        ||«       t        ||«       t        ||«       t        ||j                  d¬«      z   ||«      j                  d¬«      «       t        j                  |«      }t        j                  ||j                  |j                  f¬«      }|j                  |||||||¬«      \  }}}t        j                  ||«      sJ ‚t        j                  ||«      sJ ‚t        ||«       t        ||«       t        ||«       t        ||«        ||«      }|j                  |||||¬
«      }|j                  |||||¬
«      }|j                  |||||¬
«      \  }}|j                  |||||¬
«      \  }}|j                  |||||¬
«      \  } }!}t        ||«       t        ||«       t        ||«       t        ||«       t        ||«       t         ||«       ||«      «       t        || «       t        ||!«       t        ||	«       t        |j!                  «       |	«       t        ||
«       t        ||«       y)zDTest that loss and gradient are the same across different functions.rC   r@   rE   rD   ©r6   r   r   r8   rM   r   r   ©Únum©rL   rN   ÚF©Úorder)r   )rL   rN   Úgradient_outÚhessian_outN)r
   r?   Úcopyr&   Úlinspacer   rJ   ÚgradientÚloss_gradientÚgradient_hessian_productÚgradient_hessianr   ÚravelÚ
empty_liker   Úshares_memoryÚtoarray)"r+   r)   rL   rN   rO   rJ   r:   r>   r;   ÚX_oldÚy_oldÚcoef_oldÚl1Úg1Úl2Úg2Úg3Úh3Úg4Úh4Ú_Úg_outÚh_outÚg5Úh5ÚXsÚl1_spÚg1_spÚl2_spÚg2_spÚg3_spÚh3_spÚg4_spÚh4_sps"                                     r#   Ú test_loss_grad_hess_are_the_samer}   i   st  € ô ¡Y£[ÀÔN€DÜ Ø¨"¸Àô�J€A€qˆ$ð ŸV™V›X q§v¡v£x°·±³�(ˆ5€Eà˜ÒÜŸ™ A q§w¡w¨q¡z°q·w±w¸q±zÔBˆà	�‰Øˆa� -Àð 
ó 
€Bð 
�‰Øˆa� -Àð 
ó 
€Bð ×ÑØˆa� -Àð  ó �F€Bˆð ×*Ñ*Øˆa� -Àð +ó �F€Bˆð ×%Ñ%Øˆa� -Àð &ó �I€BˆˆAô �B˜ÔÜ�B˜ÔÜ�B˜ÔÜ�B˜Ôä�B˜Ÿ™¨˜Ó,Ñ,©b°«f¯l©lÀ¨lÓ.EÔFä�M‰M˜$Ó€EÜ�M‰M˜$ t§y¡y°$·)±)Ð&<Ô=€EØ×%Ñ%ØØ	Ø	Ø#Ø'ØØð &ó �I€BˆˆAô ×Ñ˜B Ô&Ð&Ð&Ü×Ñ˜B Ô&Ð&Ð&Ü�B˜ÔÜ�B˜ÔÜ�B˜ÔÜ�B˜Ôñ 
�qÓ	€BØ�I‰IØˆb�! =À/ð ó €Eð �M‰MØˆb�! =À/ð ó €Eð ×%Ñ%Øˆb�! =À/ð &ó �L€Eˆ5ð ×0Ñ0Øˆb�! =À/ð 1ó �L€Eˆ5ð ×+Ñ+Øˆb�! =À/ð ,ó �O€Eˆ5�!ô �B˜ÔÜ�B˜ÔÜ�B˜ÔÜ�B˜ÔÜ�B˜ÔÜ‘B�r“F™E %›LÔ)Ü�B˜ÔÜ�B˜Ôô �A�uÔÜ�B—J‘J“L %Ô(Ü�A�uÔÜ�D˜(Õ#r%   ÚX_containerc           	      ó¾  — t         | «       d¬«      }t         | «       d¬«      }d\  }}t        |||d¬«      \  }}	}
d|dd…d	f<   |dd…dd	…f   }|� ||«      }|d
k(  r2t        j                  d|	j                  d   |	j                  d   ¬«      }|j                  |
||	||¬«      \  }}|j                  |
||	||¬«      \  }}|j                  |
||	||¬«      \  }}|j                  |
||	||¬«      \  }}|t        j                  |d|z  t        |
j                  d	   «      z  z   «      k(  sJ ‚|}|j                  d	xx   ||
j                  d	   z  z  cc<   t        ||«       t        j                  j                  d«      j                  |
j                  Ž } ||«      } ||«      }|}|j                  d	xx   ||j                  d	   z  z  cc<   t        ||«       y)z7Test that loss and gradient handle intercept correctly.FrC   T©r@   rE   rD   rQ   r   Nr   rM   r   rR   rT   g      à?)r
   r?   r&   r[   r   r]   r^   ÚpytestÚapproxr   r0   r   r'   r(   Úrandn)r+   rL   rN   r~   rJ   Ú
loss_interr   r   r:   r>   r;   ÚX_interÚlÚgro   ÚhesspÚl_interÚg_interÚhessp_interÚg_inter_correctedr   ÚhÚh_interÚh_inter_correcteds                           r#   Ú#test_loss_gradients_hessp_interceptr�   Ä   s  € ô ¡Y£[ÀÔF€DÜ ©9«;ÀdÔK€JØ!Ñ€IˆzÜ Ø¨)À
ÐQSô�J€A€qˆ$ð €A‚aˆ€e�HØÚ	ˆ3ˆBˆ3ˆñ€Gð ÐÙ˜‹Nˆà˜ÒÜŸ™ A q§w¡w¨q¡z°q·w±w¸q±zÔBˆà×ÑØˆa� -Àð ó �D€A€qð ×,Ñ,Øˆa� -Àð -ó �H€A€uð "×/Ñ/Øˆg�q¨Àð 0ó Ñ€GˆWð  ×8Ñ8Øˆg�q¨Àð 9ó �N€A€{ð
 ”—‘Ø�#˜Ñ'¬,°t·v±v¸b±zÓ*BÑBÑBóò ð ð ð  ÐØ×Ñ˜Ó˜°·±¸±Ñ;Ñ;ÓÜ�AÐ(Ô)ä
�	‰	×Ñ˜bÓ!×'Ñ'¨¯©Ð4€AÙˆa‹€AÙ˜!‹n€GØÐØ×Ñ˜Ó˜°·±°R±Ñ8Ñ8ÓÜ�AÐ(Õ)r%   c                 ó¢  ‡‡‡‡‡‡— t         | «       |¬«      Šd\  }}t        ‰||d¬«      \  ŠŠ}|j                  d¬«      }‰dk(  r2t        j                  d‰j
                  d	   ‰j
                  d	   ¬
«      ŠdŠ‰j                  |‰‰‰‰¬«      \  }}t        j                  |ˆˆˆˆˆˆfd„d‰z  «      }	t        j                  |ˆˆˆˆˆˆfd„d‰z  «      }
d|	z  |
z
  dz  }t        ||dd¬«       t        j                  |«      }d|d<    ||«      }dŠt        j                  ‰ ‰d«      }t        j                  |D �cg c]  }‰j                  |||z  z   ‰‰‰‰¬«      ‘Œ  c}«      }||j                  d	¬«      z  }t        j                  |dd…t        j                   f   |«      d	   j                  «       }t        ||d¬«       yc c}w )zÉTest gradients and hessians with numerical derivatives.

    Gradient should equal the numerical derivatives of the loss function.
    Hessians should equal the numerical derivatives of gradients.
    rC   r€   rD   rQ   rU   rV   rM   r   r   rR   g�íµ ÷Æ°>rT   c                 ó6   •— ‰j                  | ‰z
  ‰‰‰‰¬«      S )NrT   ©rJ   ©r;   r:   ÚepsrN   rJ   rL   r>   s    €€€€€€r#   ú<lambda>z5test_gradients_hessians_numerically.<locals>.<lambda>  s(   ø€ �T—Y‘YØ�3‰JØØØ'Ø+ð ó 
€ r%   é   c                 ó<   •— ‰j                  | d‰z  z
  ‰‰‰‰¬«      S )Nr—   rT   r“   r”   s    €€€€€€r#   r–   z5test_gradients_hessians_numerically.<locals>.<lambda>)  s,   ø€ �T—Y‘YØ�1�s‘7‰NØØØ'Ø+ð ó 
€ r%   é   é   g{®Gáz„?g:Œ0âŽyE>)ÚrtolÚatolgü©ñÒMbP?é   r   N)r›   )r
   r?   r`   r&   r[   r   r^   r   Úapprox_fprimer   Ú
zeros_likeÚarrayr\   Úmeanr   ÚlstsqÚnewaxis)r+   r)   rL   rN   r   r   r;   r‡   rˆ   Ú	approx_g1Ú	approx_g2Úapprox_gÚvectorÚhess_colÚd_xÚtÚd_gradÚapprox_hess_colr:   r•   rJ   r>   s     ``              @@@@r#   Ú#test_gradients_hessians_numericallyr­   ü   sï  ý€ ô ¡Y£[ÀÔN€DØ!Ñ€IˆzÜ Ø¨)À
ÐQSô�J€A€qˆ$ð �:‰:˜Cˆ:Ó €Dà˜ÒÜŸ™ A q§w¡w¨q¡z°q·w±w¸q±zÔBˆð €CØ×,Ñ,Øˆa� -Àð -ó �H€A€uô ×&Ñ&Ø÷	
ð 	
ð 	
ˆC‰ó
€Iô ×&Ñ&Ø÷	
ð 	
ð 	
ˆC‰ó
€Ið �I‘ 	Ñ)¨QÑ.€HÜ�A�x d°Õ6ô �]‰]˜1Ó€FØ€Fˆ1�IÙ�V‹}€Hð €CÜ
�+‰+�s�d˜C Ó
$€CÜ�X‰Xð ö		
ð ð �M‰MØ�q˜6‘zÑ!ØØØ+Ø /ð õ ò		
ó€Fð ˆf�k‰k˜qˆkÓ!Ñ!€FÜ—l‘l 3¢q¬"¯*©* }Ñ#5°vÓ>¸qÑA×GÑGÓI€OÜ�O X°DÖ9ùò		
s   Å#Gc                 óÞ  — t        t        «       | ¬«      }d\  }}t        |||d¬«      \  }}}t        j                  j                  d«      j                  |j                  Ž }|j                  |||«      \  }}	|j                  |||«      }
|j                  |||«      \  }} ||«      }|	j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚t        |	|
«       t        |	|«       |j                  |||«      \  }}}|j                  |j                  k(  sJ ‚|j                  |j                  |j                  fk(  sJ ‚|j                  d¬«      }|j                  d¬«      }|j                  |||«      \  }}|j                  |||«      }|j                  |||«      \  }} ||«      }|j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚t        ||«       t        ||«       t        |	|j                  |j                   j"                  dd¬«      «       t        ||j                  |j                   j"                  dd¬«      «       y)	z=Test that multinomial LinearModelLoss respects shape of coef.rC   r€   rD   rQ   rU   rV   r   N)r
   r   r?   r&   r'   r(   rƒ   r   r]   r\   r^   r   r_   r   r`   Úreshaper+   r-   )r)   rJ   r   r   r:   r>   r;   r   r†   r‡   rh   rj   rˆ   r�   rk   Úhessro   Úcoef_rÚs_rÚl_rÚg_rÚg1_rÚg2_rÚhessp_rÚh_rs                            r#   Útest_multinomial_coef_shaper¹   Q  s(  € ô Ô%8Ó%:È-ÔX€DØ!Ñ€IˆzÜ Ø¨)À
ÐQSô�J€A€qˆ$ô 	�	‰	×Ñ˜bÓ!×'Ñ'¨¯©Ð4€Aà×Ñ˜d A qÓ)�D€A€qØ	�‰�t˜Q Ó	"€BØ×-Ñ-¨d°A°qÓ9�I€BˆÙˆa‹€AØ�7‰7�d—j‘jÒ Ð Ð Ø�7‰7�d—j‘jÒ Ð Ð Ü�A�rÔÜ�A�rÔØ×'Ñ'¨¨a°Ó3�K€BˆˆaØ�8‰8�t—z‘zÒ!Ð!Ð!à�:‰:˜$Ÿ)™) T§Y¡YÐ/Ò/Ð/Ð/à�Z‰Z˜cˆZÓ"€FØ
�'‰'˜ˆ'Ó
€CØ×!Ñ! &¨!¨QÓ/�H€CˆØ�=‰=˜  AÓ&€DØ×1Ñ1°&¸!¸QÓ?�M€Dˆ'Ù
�#‹,€CØ�9‰9˜Ÿ™Ò$Ð$Ð$Ø�9‰9˜Ÿ™Ò$Ð$Ð$Ü�C˜ÔÜ�C˜Ôä�A�s—{‘{ 4§>¡>×#;Ñ#;¸RÀs�{ÓKÔLÜ�A�s—{‘{ 4§>¡>×#;Ñ#;¸RÀs�{ÓKÕLr%   c           	      óž  — d\  }}}t        t        |¬«      d¬«      }t        |||d¬«      \  }}}|j                  d¬«      }| d	k(  r2t	        j
                  d
|j                  d   |j                  d   ¬«      } |j                  |||| d¬«      \  }}	}
t        |	|	j                  «       |j                  ||«      \  }}}|j                  j                  ||| ¬«      \  }}t	        j                  |dd…df   «      t	        j                  |dd…d
f   «      t	        j                  |dd…df   «      t	        j                  t	        j                  d«      «      f\  }}}}t	        j                  |||z
  z  | |z  | |z  g| |z  |||z
  z  | |z  g| |z  | |z  |||z
  z  gg«      }|j!                  ||||f«      }| €||z  }n|| t	        j"                  | «      z  z  }t	        j$                  d|||«      }t	        j&                  |dd«      }|j!                  ||z  ||z  d¬«      }t        ||j                  «       t        |	|«       y)aƒ  Test multinomial hessian for 3 classes and 2 points.

    For n_classes = 3 and n_samples = 2, we have
      p0 = [p0_0, p0_1]
      p1 = [p1_0, p1_1]
      p2 = [p2_0, p2_1]
    and with 2 x 2 diagonal subblocks
      H = [p0 * (1-p0),    -p0 * p1,    -p0 * p2]
          [   -p0 * p1, p1 * (1-p1),    -p1 * p2]
          [   -p0 * p2,    -p1 * p2, p2 * (1-p2)]
      hess = X' H X
    )r—   rE   rš   )r-   FrC   rD   rQ   rU   rV   rM   r   r   rR   rT   )Úy_truer<   rL   Nr—   zij, mini, ik->jmnkrš   ÚC)r
   r   r?   r`   r&   r[   r   r_   r   r0   Úweight_intercept_rawr+   Úgradient_probaÚdiagÚonesÚblockr¯   r   ÚeinsumÚmoveaxis)rL   r   r   r-   rJ   r:   r>   r;   Úgradr°   ro   ÚweightsÚ	interceptr<   Úgrad_pointwiser=   Úp0dÚp1dÚp2dÚonedr�   Úhess_expecteds                         r#   Ú"test_multinomial_hessian_3_classesrÍ   w  sq  € ð (/Ñ$€Iˆz˜9ÜÜ%°	Ô:È%ô€Dô !Ø¨)À
ÐQSô�J€A€qˆ$ð �:‰:˜Cˆ:Ó €Dà˜ÒÜŸ™ A q§w¡w¨q¡z°q·w±w¸q±zÔBˆà×)Ñ)ØØ	Ø	Ø#Øð *ó �M€Dˆ$�ô �D˜$Ÿ&™&Ô!à)-×)BÑ)BÀ4ÈÓ)KÑ&€GˆY˜Ø ŸN™N×9Ñ9ØØ%Ø#ð :ó Ñ€N�Eô 	�‰�’a˜�d‘ÓÜ
�‰�’a˜�d‘ÓÜ
�‰�’a˜�d‘ÓÜ
�‰”—‘˜“
Óð	Ñ€Cˆˆc�4ô 	�‰à�D˜3‘JÑ # ¨¡¨c¨T°C©ZÐ8ØˆT�C‰Z˜  s¡
Ñ+¨c¨T°C©ZÐ8ØˆT�C‰Z˜#˜ ™ S¨D°3©JÑ%7Ð8ð	
ó	€Að 	
�	‰	�9˜i¨°IÐ>Ó?€AØÐØ	ˆY‰‰à	ˆ]œRŸV™V MÓ2Ñ2Ñ2ˆä—I‘IÐ2°A°q¸!Ó<€MÜ—K‘K ¨q°!Ó4€MØ!×)Ñ)Ø�JÑ 	¨JÑ 6¸cð *ó €Mô �M =§?¡?Ô3Ü�D˜-Õ(r%   c                  ó  — d\  } }}t        t        «       d¬«      }t        j                  | |f«      }t        j                  | «      }|j	                  |«      }t        j
                  d«      }t        j                  t        d¬«      5  |j                  ||||d¬«       ddd«       t        j
                  d«      }t        j                  t        d	¬«      5  |j                  |||d|¬«       ddd«       t        t        «       d¬«      }|j	                  |«      }t        j
                  d
|z  |f«      ddd
…   }t        j                  t        d¬«      5  |j                  ||||¬«       ddd«       t        j
                  d
|z  |z  ||z  f«      ddd
…   }t        j                  t        d¬«      5  |j                  |||d|¬«       ddd«       y# 1 sw Y   �Œ9xY w# 1 sw Y   ŒöxY w# 1 sw Y   ŒƒxY w# 1 sw Y   yxY w)z;Test that wrong gradient_out and hessian_out raises errors.)rE   r—   rš   FrC   r   z1gradient_out is required to have shape coef.shape)ÚmatchN)r;   r:   r>   rX   rY   z%hessian_out is required to have shaper—   z!gradient_out must be F-contiguous)r;   r:   r>   rX   zhessian_out must be contiguous)r
   r   r&   rÀ   r*   Úzerosr�   ÚraisesÚ
ValueErrorr_   r   )	r   r   r-   rJ   r:   r>   r;   rX   rY   s	            r#   Ú=test_linear_loss_gradient_hessian_raises_wrong_out_parametersrÓ   ½  sû  € à'.Ñ$€Iˆz˜9ÜÔ%5Ó%7ÀuÔM€DÜ
�‰�˜JÐ'Ó(€AÜ
�‰�	Ó€AØ×Ñ˜qÓ!€DÜ—8‘8˜A“;€LÜ	�‰ÜÐMô
ñ 	
ð 	×ÑØØØØ%Øð 	ô 	
÷	
ô —(‘(˜1“+€KÜ	�‰”zÐ)PÔ	Qñ 
Ø×ÑØØØØØ#ð 	ô 	
÷
ô Ô%8Ó%:È%ÔP€DØ×Ñ˜qÓ!€DÜ—8‘8˜Q ™]¨JÐ7Ó8¹¸1¸Ñ=€LÜ	�‰”zÐ)LÔ	Mñ 
Ø×ÑØØØØ%ð	 	ô 	
÷
ô —(‘(˜A 	™M¨JÑ6¸	ÀJÑ8NÐOÓPÑQTÐSTÐQTÑU€KÜ	�‰”zÐ)IÔ	Jñ 
Ø×ÑØØØØØ#ð 	ô 	
÷
ð 
÷?	
ñ 	
ú÷
ð 
ú÷
ð 
ú÷
ð 
ús0   Â	GÃG$ÅG0Æ7G<ÇG!Ç$G-Ç0G9Ç<H))éþÿÿÿr—   rD   )#Ú__doc__Únumpyr&   r�   Únumpy.testingr   Úscipyr   r   Úsklearn._loss.lossr   r   r   Úsklearn.datasetsr	   Ú!sklearn.linear_model._linear_lossr
   Úsklearn.utils.extmathr   Úsklearn.utils.fixesr   ÚLOSSESr?   ÚmarkÚparametrizeÚfloat32r5   Úint64rK   r}   r�   r­   r¹   rÍ   rÓ   © r%   r#   ú<module>rä      sÎ  ðñó Û Ý )ß "÷ñ õ
 2Ý =Ý .Ý .ð Ð/°Ð	A€ð HJó1ðh ‡�×Ñ˜ fÓ-Ø‡�×Ñ˜¨5°$¨-Ó8Ø‡�×Ñ˜¢zÓ2Ø‡�×Ñ˜ 4¨¯©°R·Z±ZÀÇÁÐ"JÓKñ'ó Ló 3ó 9ó .ð'ð* ‡�×Ñ˜ fÓ-Ø‡�×Ñ˜¨5°$¨-Ó8Ø‡�×Ñ˜¨4°¨/Ó:Ø‡�×ÑÐ*¨Q°¨FÓ3Ø‡�×Ñ˜¨.Ó9ñS$ó :ó 4ó ;ó 9ó .ð
S$ðl ‡�×Ñ˜ fÓ-Ø‡�×Ñ˜¨4°¨/Ó:Ø‡�×ÑÐ*¨Q°¨FÓ3Ø‡�×Ñ˜¨¸$¸Ñ(?Ó@ñ1*ó Aó 4ó ;ó .ð1*ðh ‡�×Ñ˜ fÓ-Ø‡�×Ñ˜¨5°$¨-Ó8Ø‡�×Ñ˜¨4°¨/Ó:Ø‡�×ÑÐ*¨Q°¨FÓ3ñN:ó 4ó ;ó 9ó .ðN:ðb ‡�×Ñ˜¨5°$¨-Ó8ñ"Mó 9ð"MðJ ‡�×Ñ˜¨4°¨/Ó:ñB)ó ;ðB)óJ.
r%   