+
    :i                         ^ RI t^ RIt^ RIHtHtHt ^ RIHtH	t	 Rt
RtRtRtRtRtRtR	tR
 tR tR t ! R R]	4      t]R8X  d   ]P.                  ! 4        R# R# )    N)cudadoublevoid)unittestCUDATestCaseg{Gz?g333333?g:p?gh^_?gC)H?gQ63E?c                    R R R\         P                  ! V 4      ,          ,           ,          p\        \         P                  ! RV ,          V ,          4      ,          V\        V\
        V\        V\        V\        ,          ,           ,          ,           ,          ,           ,          ,           ,          ,          p\         P                  ! V ^ 8  R V,
          V4      #       ?gqq?g      )
npabsRSQRT2PIexpA1A2A3A4A5wheredKret_vals   &  g/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/cuda/tests/cudapy/test_blackscholes.pycndr      s    sY**+A"&&A..R!rAa2B;.?)?$@@AABDG88AE3='22    c                    TpTpTp	Tp
Tp\         P                  ! V	4      p\         P                  ! Wx,          4      V
R V,          V,          ,           V	,          ,           W,          ,          pWV,          ,
          p\        V4      p\        V4      p\         P                  ! V
) V	,          4      pW,          VV,          V,          ,
          V R&   VV,          RV,
          ,          VRV,
          ,          ,
          VR&   R# )      ?NNNr
   N)r   sqrtlogr   r   )
callResult	putResult
stockPriceoptionStrikeoptionYearsRiskfree
VolatilitySXTRVsqrtTd1d2cndd1cndd2expRTs   &&&&&&&           r   black_scholesr3      s    AAAAAGGAJE
&&-1sQw{?a/
/AI	>B	%iBGEGEFFQ37OEYUU!22JqMIu-S5[0AAIaLr   c                 <    R V ,
          V,          W,          ,           # )r
    )rand_varlowhighs   &&&r   	randfloatr9   +   s    (Nc!HO33r   c                   &   a  ] tR t^/t o R tRtV tR# )TestBlackScholesc                  a R p^p\        \        P                  P                  V4      RR4      p\        \        P                  P                  V4      RR4      p\        \        P                  P                  V4      RR4      p\        P                  ! V4      p\        P                  ! V4      ) p\        P                  ! V4      p\        P                  ! V4      ) p	\        V4       F  p
\        WgVWE\        \        4       K  	  \        P                  ! \        \        4      RRR7      R	 4       o\        P                  ! \        \        R
,          \        R
,          \        R
,          \        R
,          \        R
,          \        \        4      4      V3R l4       pRp\        \        P                  ! \!        V4      V^ ,          ,          4      4      ^3p\        P"                  ! 4       p\        P$                  ! W4      p\        P$                  ! W4      p\        P$                  ! W>4      p\        P$                  ! WN4      p\        P$                  ! W^4      p\        V4       F!  p
WW3,          ! VVVVV\        \        4       K#  	  VP'                  W4       VP'                  W4       VP)                  4        \        P*                  ! Wh,
          4      pVP-                  4       \        P*                  ! V4      P-                  4       ,          pVP/                  4       pV P1                  VR8  4       V P1                  VR8  4       R# )i  g      @g      >@r
   g      Y@g      ?g      $@T)deviceinlinec                    R R R\         P                  ! V 4      ,          ,           ,          p\        \         P                  ! RV ,          V ,          4      ,          V\        V\
        V\        V\        V\        ,          ,           ,          ,           ,          ,           ,          ,           ,          ,          pV ^ 8  d
   R V,
          pV# r	   )	mathfabsr   r   r   r   r   r   r   r   s   &  r   cnd_cuda4TestBlackScholes.test_blackscholes.<locals>.cnd_cudaC   s    sY1556A$((4!8a<"88R!rAa2B;6G1G,H'H"IIJLG1u-Nr   r   c                 >  < \         P                  P                  \         P                  P                  \         P                  P                  ,          ,           pWrP
                  ^ ,          8  d   R# \        P                  ! WG,          4      p\        P                  ! W',          W7,          ,          4      VRV,          V,          ,           WG,          ,          ,           Wh,          ,          p	WV,          ,
          p
S! V	4      pS! V
4      p\        P                  ! RV,          WG,          ,          4      pW',          V,          W7,          V,          V,          ,
          W&   W7,          V,          RV,
          ,          W',          RV,
          ,          ,
          W&   R# )r   Nr   r
   g      )
r   	threadIdxxblockIdxblockDimshaper@   r   r    r   )r!   r"   r(   r)   r*   r+   r,   ir-   r.   r/   r0   r1   r2   rB   s   &&&&&&&       r   black_scholes_cuda>TestBlackScholes.test_blackscholes.<locals>.black_scholes_cudaL   s       4==??T]]__#DDAGGAJIIadOE88AD14K(Aa!Oqt+CCY B%iBRLERLEHHcAg-.ETE\AD5L5,@@JMD5LC%K8143;;OOILr   gvIh%<=N)i      )r9   r   randomzerosonesranger3   RISKFREE
VOLATILITYr   jitr   r   intr@   ceilfloatstream	to_devicecopy_to_hostsynchronizer   summax
assertTrue)selfOPT_N
iterationsr#   r$   r%   callResultNumpyputResultNumpycallResultNumbaputResultNumbarJ   rK   blockdimgriddimrX   d_callResultd_putResultd_stockPriced_optionStriked_optionYearsdeltaL1normmax_abs_errrB   s   &                      @r   test_blackscholes"TestBlackScholes.test_blackscholes0   sd   
ryy//6TB
 !1!1%!8#uE		 0 0 7tD((5/''%.((5/''%. z"A/:&XzK # 
&.d	;	 
<	 
$vay&)VAYq	6!9v' 
(	Q
(	Q  diiex{ :;<a?~~o>nn^<~~j9={;z"A89k<x5 # 	!!/:  889rvvo6::<<iik'e+,r   r5   N)__name__
__module____qualname____firstlineno__rp   __static_attributes____classdictcell__)__classdict__s   @r   r;   r;   /   s     D- D-r   r;   __main__g[2ֿgxN#)numpyr   r@   numbar   r   r   numba.cuda.testingr   r   rR   rS   r   r   r   r   r   r   r   r3   r9   r;   rr   mainr5   r   r   <module>r~      su      $ $ 5 
-3C$4E-| E-P zMMO r   