ó
    „ñ:i  ã                   óì   • S SK r S SKrS SKrS SKJr  S SKJr  S SKJ	r	  Sr
SrSrSrS	rS
rSrSr\S 5       r\S 5       r\S 5       r\S 5       rS r " S S\	5      r\S:X  a  \R2                  " 5         gg)é    N)Únjit)Úregister_jitable)ÚTestCaseg{®Gáz”?g333333Ó?gìø’:¿pÔ?g[2¨åðÑÖ¿gh^_ï€ü?gÐxòNÝ#ý¿gC)ôÖÍHõ?gQ6Ô3EˆÙ?c                 ó&  • SSS[         R                  " U 5      -  -   -  n[        [         R                  " SU -  U -  5      -  U[        U[
        U[        U[        U[        -  -   -  -   -  -   -  -   -  -  n[         R                  " U S:„  SU-
  U5      $ ©Nç      ð?gqq¦Í?g      à¿r   )
ÚnpÚabsÚRSQRT2PIÚexpÚA1ÚA2ÚA3ÚA4ÚA5Úwhere©ÚdÚKÚret_vals      Ú`/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_blackscholes.pyÚ	cnd_arrayr      sˆ   € àˆs�Y¤§¢¨£Ñ*Ñ*Ñ+€AÜœ"Ÿ&š& ¨¡¨A¡Ó.Ñ.Ø”R˜!œr A¬¨a´2¸¼B¹±;Ñ.?Ñ)?Ñ$@Ñ@ÑAÑAÑBñD€Gä�8Š8�A˜‘E˜3 ™=¨'Ó2Ð2ó    c                 ó  • SSS[         R                  " U 5      -  -   -  n[        [         R                  " SU -  U -  5      -  U[        U[
        U[        U[        U[        -  -   -  -   -  -   -  -   -  -  nU S:”  a  SU-
  nU$ r   )	ÚmathÚfabsr   r   r   r   r   r   r   r   s      r   Úcndr      s‚   € àˆs�Y¤§¢¨1£Ñ-Ñ-Ñ.€AÜœ$Ÿ(š( 4¨!¡8¨a¡<Ó0Ñ0Ø”R˜!œr A¬¨a´2¸¼B¹±;Ñ.?Ñ)?Ñ$@Ñ@ÑAÑAÑBñD€Gàˆ1ƒuØ˜‘-ˆØ€Nr   c                 óN  • U nUnUnUnUn	[         R                  " U5      n
[         R                  " XV-  5      USU	-  U	-  -   U-  -   Xš-  -  nX¹U
-  -
  n[        U5      n[        U5      n[         R                  " U* U-  5      nX]-  Xo-  U-  -
  nXo-  SU-
  -  USU-
  -  -
  nUU4$ )Nç      à?r   )r	   ÚsqrtÚlogr   r   )Ú
stockPriceÚoptionStrikeÚoptionYearsÚRiskfreeÚ
VolatilityÚSÚXÚTÚRÚVÚsqrtTÚd1Úd2Úcndd1Úcndd2ÚexpRTÚ
callResultÚ	putResults                     r   Úblackscholes_arrayexprr4   )   sÂ   € ð 	€AØ€AØ€AØ€AØ€AÜ�GŠG�A‹J€EÜ
�&Š&�‘‹-˜1˜s Q™w¨™{™?¨aÑ/Ñ
/°A±IÑ	>€BØ	�%‰i‰€BÜ�b‹M€EÜ�b‹M€Eä�FŠF�Q�3˜‘7‹O€Eà‘)˜a™i¨%Ñ/Ñ/€JØ‘˜c E™kÑ*¨Q°#¸±+Ñ->Ñ>€IØ�yÐ Ð r   c                 ó¶  • UnUnUn	Un
Un[        [        U5      5       H·  n[        R                  " Xœ   5      n[        R                  " X|   XŒ   -  5      U
SU-  U-  -   Xœ   -  -   X½-  -  nXëU-  -
  n[        U5      n[        U5      n[        R                  " SU
-  Xœ   -  5      nX|   U-  XŒ   U-  U-  -
  X'   XŒ   U-  SU-
  -  X|   SU-
  -  -
  X'   M¹     g )Nr   g      ð¿r   )ÚrangeÚlenr   r    r!   r   r   )r2   r3   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   Úir,   r-   r.   r/   r0   r1   s                      r   Úblackscholes_scalarr9   >   sì   € ð 	€AØ€AØ€AØ€AØ€AÜ”3�q“6Ž]ˆÜ—	’	˜!™$“ˆÜ�hŠh�q‘t˜a™d‘{Ó# q¨3°©7°Q©;¡¸!¹$Ñ&>Ñ>À1Á9ÑMˆØ�e‘)‰^ˆÜ�B“ˆÜ�B“ˆä—’˜# ™' Q¡TÑ)Ó*ˆØ™ ™¨©¨u©°uÑ(<Ñ<ˆ
‰Ø™˜u™¨¨e©Ñ4°q±t¸sÀU¹{Ñ7KÑKˆ	‹ò r   c                 ó   • SU -
  U-  X-  -   $ )Nr   © )Úrand_varÚlowÚhighs      r   Ú	randfloatr?   R   s   € Ø�(‰N˜cÑ! H¡OÑ3Ð3r   c                   ó    • \ rS rSrS rS rSrg)ÚTestBlackScholeséV   c                 ó¶  • Sn[        U R                  R                  U5      SS5      n[        U R                  R                  U5      SS5      n[        U R                  R                  U5      SS5      nX#U[        [        4n[
        R                  " U6 u  pg[        U6 u  p‰[        R                  " Xh-
  5      n
U R                  U
R                  5       S5        g ©	Ni�  g      @g      >@r   g      Y@g      Ð?g      $@r   )r?   ÚrandomÚrandom_sampleÚRISKFREEÚ
VOLATILITYr4   Úpy_funcr	   r
   ÚassertAlmostEqualÚmax)ÚselfÚOPT_Nr"   r#   r$   ÚargsÚcallResultGoldÚputResultGoldÚcallResultNumbaÚputResultNumbaÚdeltas              r   Útest_array_exprÚ TestBlackScholes.test_array_exprW   s³   € Øˆä˜tŸ{™{×8Ñ8¸Ó?ÀÀdÓKˆ
Ü  §¡×!:Ñ!:¸5Ó!AÀ3ÈÓNˆÜ §¡× 9Ñ 9¸%Ó @À$ÈÓMˆà¨´hÄ
ÐJˆä(>×(FÒ(FÈÐ(MÑ%ˆÜ*@À$Ð*GÑ'ˆä—’�~Ñ7Ó8ˆØ×Ñ˜uŸy™y›{¨AÕ.r   c                 ón  • Sn[         R                  " U5      n[         R                  " U5      n[         R                  " U5      n[         R                  " U5      n[        U R                  R	                  U5      SS5      n[        U R                  R	                  U5      SS5      n[        U R                  R	                  U5      SS5      nXgU[
        [        4n	[        R                  " X#/U	Q76   [        XE/U	Q76   [         R                  " X$-
  5      n
U R                  U
R                  5       S5        g rD   )r	   Úzerosr?   rE   rF   rG   rH   r9   rI   r
   rJ   rK   )rL   rM   rO   rP   rQ   rR   r"   r#   r$   rN   rS   s              r   Útest_scalarÚTestBlackScholes.test_scalarf   sç   € ØˆäŸš %›ˆÜŸš ›ˆäŸ(š( 5›/ˆÜŸš %›ˆä˜tŸ{™{×8Ñ8¸Ó?ÀÀdÓKˆ
Ü  §¡×!:Ñ!:¸5Ó!AÀ3ÈÓNˆÜ §¡× 9Ñ 9¸%Ó @À$ÈÓMˆà¨´hÄ
ÐJˆä×#Ò# NÐIÀDÓIÜ˜OÐC¸dÓCä—’�~Ñ7Ó8ˆØ×Ñ˜uŸy™y›{¨AÕ.r   r;   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rT   rX   Ú__static_attributes__r;   r   r   rA   rA   V   s   † ò/õ/r   rA   Ú__main__)r   Únumpyr	   ÚunittestÚnumbar   Únumba.extendingr   Únumba.tests.supportr   rG   rH   r   r   r   r   r   r   r   r   r4   r9   r?   rA   rZ   Úmainr;   r   r   Ú<module>rf      s¿   ðÛ ã ã Ý Ý ,Ý (ð €Ø€
ð €Ø€Ø€Ø€Ø€Ø-€ð ñ3ó ð3ð ñó ðð ñ!ó ð!ð( ñMó ðMò&4ô#/�xô #/ðL ˆzÓØ‡M‚M…Oð r   