K i>ddlmZmZdZedZedZedZedZedZ edZ ed Z ed Z ed Z edd Z edd ZedZedZedZy))defun defun_wrappedc|j|\}}|j|}|j }|s6d|jg|dgg||dz zgggdf}|r|ddxx||zz cc<|fS|j | xs@|j |dkDxs*|j |dk(xr|j |dkD}|jdzdz}|rL|j|j|||dd } |j||jd||} n|} |j| | |} |jd| |} |j| d } |j| d }|rd| g||ggg||z||dz zgg| f}|g}nGd|g||ggg||z||dz zgg| f}d|j|g|dzddgg||zg||dz zgd|z g| f}||g}|rn|j }tt|D]F}||ddxx||zz cc<||dj|||djdHt!|S) z Combined calculation of the Hermite polynomial H_n(z) (and its generalization to complex n) and the parabolic cylinder function D. ?r)precпTexact)_convert_paramconvertmpq_1_2piisnpintreimr fmulsqrtfdivfnegexprangelenappendtuple)ctxnzparabolic_cylinderntypqT1 can_use_2f0expprecuww2rw2nrw2nwtermsT2expuis a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mpmath/functions/orthogonal.py_hermite_paramr3s   #GAt AA  A [1c(BAaC 2r1 <  qE!H!OHs ++qb/+SVVAY]+ a )CFF1IMhhqj2oG HHSXXawX/dH C HHQ'2H A  !QW %B ((1bw( 'C 88Ct8 $D !4 BVaVRac1ac7^R =Wq!fb"qsAqsGnb$ >_qsCmR!A#AaC AaC5" LBwwqzs5z" "A !HQKNac !N !HQK  t $ !HQK  q ! " <c :jfdgfi|S)Nc tdS)Nrr3rr r!sr2zhermite..>Q1!=r4 hypercombrr r!kwargss``` r2hermiter?<s 3===r LV LLr4c :jfdgfi|S)a8 Gives the parabolic cylinder function in Whittaker's notation `D_n(z) = U(-n-1/2, z)` (see :func:`~mpmath.pcfu`). It solves the differential equation .. math :: y'' + \left(n + \frac{1}{2} - \frac{1}{4} z^2\right) y = 0. and can be represented in terms of Hermite polynomials (see :func:`~mpmath.hermite`) as .. math :: D_n(z) = 2^{-n/2} e^{-z^2/4} H_n\left(\frac{z}{\sqrt{2}}\right). **Plots** .. literalinclude :: /plots/pcfd.py .. image :: /plots/pcfd.png **Examples** >>> from mpmath import * >>> mp.dps = 25; mp.pretty = True >>> pcfd(0,0); pcfd(1,0); pcfd(2,0); pcfd(3,0) 1.0 0.0 -1.0 0.0 >>> pcfd(4,0); pcfd(-3,0) 3.0 0.6266570686577501256039413 >>> pcfd('1/2', 2+3j) (-5.363331161232920734849056 - 3.858877821790010714163487j) >>> pcfd(2, -10) 1.374906442631438038871515e-9 Verifying the differential equation:: >>> n = mpf(2.5) >>> y = lambda z: pcfd(n,z) >>> z = 1.75 >>> chop(diff(y,z,2) + (n+0.5-0.25*z**2)*y(z)) 0.0 Rational Taylor series expansion when `n` is an integer:: >>> taylor(lambda z: pcfd(5,z), 0, 7) [0.0, 15.0, 0.0, -13.75, 0.0, 3.96875, 0.0, -0.6015625] c tdSNrr7r8sr2r9zpcfd..vr:r4r;r=s``` r2pcfdrC@sl 3===r LV LLr4c j|j|\}}|j| |jz |S)a Gives the parabolic cylinder function `U(a,z)`, which may be defined for `\Re(z) > 0` in terms of the confluent U-function (see :func:`~mpmath.hyperu`) by .. math :: U(a,z) = 2^{-\frac{1}{4}-\frac{a}{2}} e^{-\frac{1}{4} z^2} U\left(\frac{a}{2}+\frac{1}{4}, \frac{1}{2}, \frac{1}{2}z^2\right) or, for arbitrary `z`, .. math :: e^{-\frac{1}{4}z^2} U(a,z) = U(a,0) \,_1F_1\left(-\tfrac{a}{2}+\tfrac{1}{4}; \tfrac{1}{2}; -\tfrac{1}{2}z^2\right) + U'(a,0) z \,_1F_1\left(-\tfrac{a}{2}+\tfrac{3}{4}; \tfrac{3}{2}; -\tfrac{1}{2}z^2\right). **Examples** Connection to other functions:: >>> from mpmath import * >>> mp.dps = 25; mp.pretty = True >>> z = mpf(3) >>> pcfu(0.5,z) 0.03210358129311151450551963 >>> sqrt(pi/2)*exp(z**2/4)*erfc(z/sqrt(2)) 0.03210358129311151450551963 >>> pcfu(0.5,-z) 23.75012332835297233711255 >>> sqrt(pi/2)*exp(z**2/4)*erfc(-z/sqrt(2)) 23.75012332835297233711255 >>> pcfu(0.5,-z) 23.75012332835297233711255 >>> sqrt(pi/2)*exp(z**2/4)*erfc(-z/sqrt(2)) 23.75012332835297233711255 )rrCr)rar!r>r _s r2pcfurGxs4X   a DAq 88QBs{{NA &&r4c  j|\}jjj |dk(rfj dzrR fd}j |gfi|}j r"j rj|}|S fd}j |gfi|S)a Gives the parabolic cylinder function `V(a,z)`, which can be represented in terms of :func:`~mpmath.pcfu` as .. math :: V(a,z) = \frac{\Gamma(a+\tfrac{1}{2}) (U(a,-z)-\sin(\pi a) U(a,z)}{\pi}. **Examples** Wronskian relation between `U` and `V`:: >>> from mpmath import * >>> mp.dps = 25; mp.pretty = True >>> a, z = 2, 3 >>> pcfu(a,z)*diff(pcfv,(a,z),(0,1))-diff(pcfu,(a,z),(0,1))*pcfv(a,z) 0.7978845608028653558798921 >>> sqrt(2/pi) 0.7978845608028653558798921 >>> a, z = 2.5, 3 >>> pcfu(a,z)*diff(pcfv,(a,z),(0,1))-diff(pcfu,(a,z),(0,1))*pcfv(a,z) 0.7978845608028653558798921 >>> a, z = 0.25, -1 >>> pcfu(a,z)*diff(pcfv,(a,z),(0,1))-diff(pcfu,(a,z),(0,1))*pcfv(a,z) 0.7978845608028653558798921 >>> a, z = 2+1j, 2+3j >>> chop(pcfu(a,z)*diff(pcfv,(a,z),(0,1))-diff(pcfu,(a,z),(0,1))*pcfv(a,z)) 0.7978845608028653558798921 Qrcj dd}t z d}tz |d}|D]A}|djd|djd|djz Cjzz j dj z z}|D]*}|dj||djd,||zS) NyTr rr?r)rr3rexpjpirr) jzT1termsT2termsTr(rr r$rr!s r2hzpcfv..hs!S-B$S1"Q$15G$S!A#r15G !! B! A! AaC  ! AaCE#chhqx&88A ! A! A W$ $r4cB j d} j d} j|} j j|g}| | z zdg |zz gg |z zg g|f}| gz | z z ddgd z |zz gg |zdz z gd zg|f} j |zz\}}|dj ||dj |||fD]-} | dj d| dj |z /||fS)Nr rrrrL)square_exp_argrr cospi_sinpir)r r)r(elY1Y2csYrr$rRr!s r2rSzpcfv..hsN""1e,A""1c*A ACGGAJ'AaR1QNQqsUGR!A#a%1#q@BaSA2qs1ua+ac!A#gYQqSU1WI!uaOB??1QqS5)DAq qELLO qELLO"X !! A! AaC  !r6Mr4)rrrmpq_1_4isintr< _is_real_type_re) rrEr!r>ntyperSvr r$rRs ` ` @@@r2pcfvrds@!!!$HAu AA A A | !A# % % CMM!R *6 *   Q C$5$5a$8 A s}}Q.v..r4c j|\}jfd}j|}jr"jrj |}|S)aI Gives the parabolic cylinder function `W(a,z)` defined in (DLMF 12.14). **Examples** Value at the origin:: >>> from mpmath import * >>> mp.dps = 25; mp.pretty = True >>> a = mpf(0.25) >>> pcfw(a,0) 0.9722833245718180765617104 >>> power(2,-0.75)*sqrt(abs(gamma(0.25+0.5j*a)/gamma(0.75+0.5j*a))) 0.9722833245718180765617104 >>> diff(pcfw,(a,0),(0,1)) -0.5142533944210078966003624 >>> -power(2,-0.25)*sqrt(abs(gamma(0.75+0.5j*a)/gamma(0.25+0.5j*a))) -0.5142533944210078966003624 c3XKjjdjzz}jdjzzjdjzz z dz }jdz d|zz}j dj djzzzj jzz }j |dz j djzzz}|j|zjjzjdzz|j| zjj zjdzzyw)Nry@rrg?r ) arggammajloggammarrrexpjrGrM)phi2rhokCrr r!s r2r.zpcfw..termssXwwsyysuuQw/0 Sq[)CLLSUU1W,EErIffQhT! HHQ366!,, -q0A A HHQqSMCGGDKM2 2#((3-#((3557Acjj6G4G"HHH#((C4. 388SUUF1Ha 48H6H#IIIsF'F*)rrsum_accuratelyr`ra)rrEr!r>rFr.rcr s` ` @r2pcfwrrsk,   a DAq AAJ 5!A  1 1! 4 GGAJ Hr4c |jrdzzS|jdzr:|jdzr tdfd}|j|gfi|Sfd}|j|gfi|S)Nrrrz#Gegenbauer function with two limitsc Xd|z}gg|zgdz|g |zg|dzgddz zf}|gSNrrr)rEa2rQr r!s r2rSzgegenbauer..h=sM1BB21b QB":#wQqS IA3Jr4c Xdz}gg||zg|dz|g| ||zgdzgddz zf}|gSrurv)r rwrQrEr!s r2rSzgegenbauer..hBsM qS QrTFQqS"IAbDzAcE7C1I Es r4)rNotImplementedErrorr<rr rEr!r>rSs ``` r2 gegenbauerr{3s {{1~!A#w {{1S5 ;;qs %&KL L s}}Q.v.. 3==QC *6 **r4c :|jsfd}|j||gfi|S|jsfd}|j||gfi|S|j|z||j| d|zzzdzdz dz fi|zS)Ncbgg|zdzg|dzdzg| z|zdzgdzgdz dzffSNrrrvr rEbxs r2rSzjacobi..hKsQac!eWqsAaCjA2qs1uQw-!A#1c RT Tr4cZgg g|dz |z g| |z|zdzgdzgdzdzffSr~rvrs r2rSzjacobi..hOsMqbTAaC!A;!QqSU1W !uqsCiPR Rr4rr)rr<r_binomialhyp2f1)rr rErrr>rSs ``` r2jacobirHs ;;q> Us}}Q.v.. 99Q< Ss}}QA1&11 <<!A QBqs1uQwqsAaC7!Mf!M MMr4c <fd}|j||gfi|S)NcBgg|zdzg|dzdzg g|dzgffSrBrv)rEr r!s r2rSzlaguerre..hZs;R!A#a%1Q3!*rdQqSE1=??r4r;rzs ` ` r2laguerrerUs# @ 3==QC *6 **r4c |j|r]t|}||dkzdzrG|s|S|j|}|d|jzdz kr|S|dkr|xj| z c_|j| |dzdd|z dz fi|S)Nrr r)r_intmagr r)rr rr>rs r2legendrer^s yy| F QK1 ''!*CR[^#RxSD  3::qb1Q!Qw 1& 11r4c |j|}|j|}|s|j|fi|S|dk(rfd}|j|||gfi|S|dk(rfd}|j|||gfi|Std)Nrc d|dz}dzdz g|| ggd|z g| |dzgd|z gddz zf}|fSNrrrvr mgrQr!s r2rSzlegenp..hwW#A1ac QGR!A#!QqS AaC5#qs)KA4Kr4rLc d|dz}dzdz g|| ggd|z g| |dzgd|z gddz zf}|fSrrvrs r2rSzlegenp..h}rr4requires type=2 or type=3)rrr< ValueErrorrr rr!typer>rSs ` r2legenprms AA AA s||Aq+F++ qy s}}Q1000 qy s}}Q1000 0 11r4c zj|}j|}jdvr jS|dk(rfd}j|||gfi|S|dk(rFtdkDrfd}j|||gfi|Sfd}j|||gfi|St d) N)rrc$ j|\}}d|z jz }|}d z}d z }|dz }d z dz } ||||gdd|| ggd|z g| |dzgd|z g| f} | ||gd| |g||zdzg||z dz|dzg| |dzg|dzg| f} | | fSNrrr)rVr)r rcossinr\r[rErr(r)r%r/rr!s r2rSzlegenq..hsq)HCC#&& AA!A!A!A1aAQ1Aq1"~rAaC5QqS AaC5!$B"ab1"a[1Q3q5'AaCE1Q3<QqS AaC5!$Br6Mr4rLrcj|djdz dzgd| dz d| |z dz d|zd|zg||zdzg|dzgdd|z|zzdd|z|zzg|dzgdzf}|gS)Nrrrg?r)rMr)r rr%rr!s r2rSzlegenq..hsjjmQ1Q3!<!AsQBqDFCE3q59c!eWqug1Q3q5k3!A;/!C%!b'Bt r4c<d j|z jz } j|}d z} dz }|dz }d z dz }||||gdd|| ggd|z g| |dzgd|z g|f}| |||gdd| |g||zdzg||z dz|dzg| |dzg|dzg|f} || fSr)sinpirrM) r rr\r[rErr(r)r%r/rr!s r2rSzlegenq..hs ! $svv-JJqMaCaCaCqS!GAq\B1qb>2!uR1I!ua(b!Q]RQBNQqSUGac!eQqS\R1I!ua(2v r4r)rnanr<absrrs` ` r2legenqrs AA AA AAG|ww qy s}}QA1&11 qy q6A:  !3==QF5f5 5 !3==QF5f5 5 0 11r4c |s6|j|r%t|j|dzdk(r|dzS|j| |dd|z dz fi|S)Nrrr)rrr_rrarrr rr>s r2chebytrsV 399Q.hsq6DSXXae_A#a%4(/$?"#AQ A &3D"teAgFA2rDFAdF1H#5QxE "A%') )r4cj||z dzs+j||zdzsjd|z r dgdgggggdffSjdz\}}dj|zzd|zdzjz j ||z dzj ||zdz|dz|dzg}ddddd|zd|zg}||gd|z g| |dzgd|z g|dzffS)Nrrrrrg)rcos_sinrlrri) rXrrrrprrrrs r2rSzspherharm..hs{{1Q3q5!S[[1Q%73;;qs;KrdBBA688{{3u9-HCSXXae_$qs1ucffn1Q3q5!399QqSU#3aa!ACdCE462A2!ur!A#h1sAv>@ @r4)rr_ spherharmzerorr<) rrXrrrr>l_isint l_naturalm_isintrSs ` `` r2rrs AA AA KK E ++c CiilG"AFIiilG1q5Ws}}qsVQs=f== zg!a%xx"}W q6A:88b=  ) A 3==QqE ,V ,,r4N)r) functionsrrr3r?rCrGrdrrr{rrrrrrrrrvr4r2rs:+7rMM5M5Mn,','\E/E/P# # J:++( N N++ 2 222,3232j44 AA &-&-r4