Ë
    8Ò^jøE  ã            
       óÌ  — 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        €úv/var/www/ramen.bs-engineer-server.com/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                  |«      }|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   Úglobal_random_seedÚlossr"   r:   r;   r-   s
             r#   Útest_init_zero_coefrK   P   sú   € ô ¡Y£[ÀÔN€DÜ
�)‰)×
Ñ
Ð 2Ó
3€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|¬«      \  }}}	|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@   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   rI   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}   k   su  € ô ¡Y£[ÀÔN€DÜ Ø¨"¸ÐASô�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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                  |«      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@   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~   rI   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Ü ØØØØô	�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Ð(Ô)ä
�	‰	×ÑÐ0Ó1×7Ñ7¸¿¹ÐD€AÙˆa‹€AÙ˜!‹n€GØÐØ×Ñ˜Ó˜°·±°R±Ñ8Ñ8ÓÜ�AÐ(Õ)r%   c                 ó¢  ‡‡‡‡‡‡— t         | «       |¬«      Šd\  }}t        ‰|||¬«      \  ŠŠ}|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€   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>6  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   rI   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Ü ØØØØô	�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        ||||¬«      \  }}}t        j                  j                  |«      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€   rQ   rU   rV   r   N)r
   r   r?   r&   r'   r(   rƒ   r   r]   r\   r^   r   r_   r   r`   Úreshaper+   r-   )r)   rI   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¹   ^  s+  € ô Ô%8Ó%:È-ÔX€DØ!Ñ€IˆzÜ ØØØØô	�J€A€qˆ$ô 	�	‰	×ÑÐ0Ó1×7Ñ7¸¿¹ÐD€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        ||||¬«      \  }}}|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—   rD   rš   )r-   FrC   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   rI   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Í   ‡  ss  € ð (/Ñ$€Iˆz˜9ÜÜ%°	Ô:È%ô€Dô !ØØØØô	�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.)rD   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—   é*   )#Ú__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ñX$ó :ó 4ó ;ó 9ó .ð
X$ðv ‡�×Ñ˜ fÓ-Ø‡�×Ñ˜¨4°¨/Ó:Ø‡�×ÑÐ*¨Q°¨FÓ3Ø‡�×Ñ˜¨¸$¸Ñ(?Ó@ñ4*ó Aó 4ó ;ó .ð4*ðn ‡�×Ñ˜ fÓ-Ø‡�×Ñ˜¨5°$¨-Ó8Ø‡�×Ñ˜¨4°¨/Ó:Ø‡�×ÑÐ*¨Q°¨FÓ3ñQ:ó 4ó ;ó 9ó .ðQ:ðh ‡�×Ñ˜¨5°$¨-Ó8ñ%Mó 9ð%MðP ‡�×Ñ˜¨4°¨/Ó:ñE)ó ;ðE)óP.
r%   