UNPKG

@stdlib/math-base-special-gammaincinv

Version:

Inverse incomplete gamma function.

51 lines (50 loc) 12.1 kB
"use strict";var f=function(r,e){return function(){return e||r((e={exports:{}}).exports,e),e.exports}};var o0=f(function(R1,f0){ var qr=require("debug"),n0=require('@stdlib/math-base-special-gammainc/dist'),pr=require('@stdlib/math-base-special-abs/dist'),mr=require('@stdlib/math-base-special-exp/dist'),t0=require('@stdlib/math-base-special-ln/dist'),gr=require('@stdlib/constants-float32-max/dist'),s0=qr("gammaincinv:higher_newton");function Or(r,e,i,v,m,t,n,c){var a,g,S,I,W,d,w,P,K,y,T,A,l,s;s=r,T=1,A=1,d=e*e,g=r;do{if(s=r,w=s*s,i===0){if(a=(1-e)*t0(s)+s+t,a>t0(gr))return s0("Warning: overflow problems in one or more steps of the computation. The initial approximation to the root is returned."),g;l=mr(a)}else l=-n*s;c?(P=n0(s,e,!0,!1),S=-l*(P-v)):(K=n0(s,e,!0,!0),S=l*(K-m)),l=S,v>1e-120||A>1?(I=.5*(s-e+1)/s,W=(2*w-4*s*e+4*s+2*d-3*e+1)/w,W/=6,r=s+l*(1+l*(I+l*W))):r=s+l,T=pr(s/r-1),A+=1,s=r,s<0&&(s=g,A=100)}while(T>2e-14&&A<35);return(T>2e-14||A>99)&&s0("Warning: the number of iterations in the Newton method reached the upper limit N=35. The last value obtained for the root is given as output."),y=s||0,y}f0.exports=Or });var c0=f(function(X1,l0){ function hr(r){return r===0?0:0+r*(1+r*(1+r*(1.5+r*(2.6666666666666665+r*(5.208333333333333+r*10.8)))))}l0.exports=hr });var p0=f(function(C1,q0){ function Lr(r){return r===0?1:1+r*(1+r*(.3333333333333333+r*(.027777777777777776+r*(-.003703703703703704+r*(.0002314814814814815+r*5878894767783657e-20)))))}q0.exports=Lr });var $=f(function(H1,g0){ var Nr=require('@stdlib/math-base-special-abs/dist'),Tr=require('@stdlib/math-base-special-exp/dist'),m0=require('@stdlib/math-base-special-ln/dist'),Ar=require('@stdlib/math-base-tools-evalpoly/dist'),br=c0(),_r=p0(),dr=1e-8,yr=.08333333333333333,Er=.008333333333333333,k=[1,0,0,0,0,0];function wr(r){var e,i,v,m,t,n,c,a,g;if(g=r*r*.5,r===0?t=0:r<-1?(a=Tr(-1-g),t=br(a)):r<1?(a=r,t=_r(a)):(a=11+g,n=m0(a),t=a+n,a=1/a,e=n*n,i=e*n,v=i*n,m=v*n,k[1]=(2-n)*.5,k[2]=(-9*n+6+2*e)/6,k[3]=-(3*i+36*n-22*e-12)*yr,k[4]=(60+350*e-300*n-125*i+12*v)/60,k[5]=-(-120-274*v+900*n-1700*e+1125*i+20*m)*Er,t+=n*a*Ar(k,a)),a=1,r>-3.5&&r<-.03||r>.03&&r<40){a=1,c=t;do t=c*(g+m0(c))/(c-1),a=Nr(c/t-1),c=t;while(a>dr)}return t}g0.exports=wr });var h0=f(function(Q1,O0){ var Fr=[1.9963790515900766,-.0017971032528832887,13129285796384672e-21,-2340875228178749e-22,72291210671127e-22,-3280997607821e-22,19875070901e-21,-1509214183e-21,1375340084e-22,-145728923e-22,17532367e-22,-2351465e-22,346551e-22,-55471e-22,9548e-22,-1748e-22,332e-22,-58e-22];function Sr(r,e){var i,v,m,t,n;v=0,m=0,i=e+e,n=r;do t=m,m=v,v=i*m-t+Fr[n],n-=1;while(n>=0);return(v-t)/2}O0.exports=Sr });var N0=f(function(D1,L0){ function Wr(r){return r===0?.025721014990011306:.025721014990011306+r*(.08247596616699963+r*(-.0025328157302663564+r*(.0006099292666946337+r*(-.00033543297638406+r*.000250505279903))))}L0.exports=Wr });var A0=f(function(z1,T0){ function kr(r){return r===0?.08333333333333333:.08333333333333333+r*(-.002777777777777778+r*(.0007936507936507937+r*-.0005952380952380953))}T0.exports=kr });var _0=f(function(j1,b0){ var x=require('@stdlib/math-base-special-gammaln/dist'),C=require('@stdlib/math-base-special-ln/dist'),r0=require('@stdlib/constants-float64-ln-sqrt-two-pi/dist'),Mr=require('@stdlib/constants-float32-smallest-normal/dist'),Ir=require('@stdlib/constants-float32-max/dist'),Pr=h0(),Kr=N0(),Rr=A0(),Xr=.30865217988013566;function Cr(r){var e;return r<Mr?Ir:r<1?x(r+1)-(r+.5)*C(r)+r-r0:r<2?x(r)-(r-.5)*C(r)+r-r0:r<3?x(r-1)-(r-.5)*C(r)+r-r0+C(r-1):r<12?(e=18/(r*r)-1,Pr(17,e)/(12*r)):(e=1/(r*r),r<1e3?Kr(e)/(Xr+e)/r:Rr(e)/r)}b0.exports=Cr });var E0=f(function(B1,y0){ var d0=require('@stdlib/math-base-special-exp/dist'),Hr=require('@stdlib/math-base-special-gamma/dist'),Qr=require('@stdlib/math-base-special-ln/dist'),Dr=require('@stdlib/constants-float32-max/dist'),zr=require('@stdlib/constants-float64-sqrt-two-pi/dist'),jr=_0();function Br(r){return r>=3?d0(jr(r)):r>0?Hr(r)/(d0(-r+(r-.5)*Qr(r))*zr):Dr}y0.exports=Br });var F0=f(function(G1,w0){ function Gr(r){var e,i,v;return r===0?-.3333333333438:(r<0?e=-r:e=r,e<=1?(i=-.3333333333438+r*(-.2070740359969+r*(-.05041806657154+r*(-.004923635739372+r*-4293658292782e-17))),v=1+r*(.7045554412463+r*(.2118190062224+r*(.03048648397436+r*.001605037988091)))):(r=1/r,i=-4293658292782e-17+r*(-.004923635739372+r*(-.05041806657154+r*(-.2070740359969+r*-.3333333333438))),v=.001605037988091+r*(.03048648397436+r*(.2118190062224+r*(.7045554412463+r*1)))),i/v)}w0.exports=Gr });var W0=f(function(J1,S0){ var Jr=require('@stdlib/math-base-special-abs/dist'),Ur=require('@stdlib/math-base-special-ln/dist'),Vr=$(),Yr=F0();function Zr(r){var e;return Jr(r)<1?Yr(r):(e=Vr(r),Ur(r/(e-1))/r)}S0.exports=Zr });var M0=f(function(U1,k0){ function $r(r){var e,i,v;return r===0?-.0172847633523:(r<0?e=-r:e=r,e<=1?(i=-.0172847633523+r*(-.0159372646475+r*(-.00464910887221+r*(-.00060683488776+r*-614830384279e-17))),v=1+r*(.764050615669+r*(.297143406325+r*(.0579490176079+r*.00574558524851)))):(r=1/r,i=-614830384279e-17+r*(-.00060683488776+r*(-.00464910887221+r*(-.0159372646475+r*-.0172847633523))),v=.00574558524851+r*(.0579490176079+r*(.297143406325+r*(.764050615669+r*1)))),i/v)}k0.exports=$r });var P0=f(function(V1,I0){ function xr(r){var e,i,v;return r===0?-.0172839517431:(r<0?e=-r:e=r,e<=1?(i=-.0172839517431+r*(-.0146362417966+r*(-.00357406772616+r*(-.000391032032692+r*249634036069e-17))),v=1+r*(.690560400696+r*(.249962384741+r*(.0443843438769+r*.00424073217211)))):(r=1/r,i=249634036069e-17+r*(-.000391032032692+r*(-.00357406772616+r*(-.0146362417966+r*-.0172839517431))),v=.00424073217211+r*(.0443843438769+r*(.249962384741+r*(.690560400696+r*1)))),i/v)}I0.exports=xr });var R0=f(function(Y1,K0){ function r1(r){var e,i,v;return r===0?.99994466948:(r<0?e=-r:e=r,e<=1?(i=.99994466948+r*(104.649839762+r*(857.204033806+r*(731.901559577+r*45.5174411671))),v=1+r*(104.526456943+r*(823.313447808+r*(3119.93802124+r*3970.03311219)))):(r=1/r,i=45.5174411671+r*(731.901559577+r*(857.204033806+r*(104.649839762+r*.99994466948))),v=3970.03311219+r*(3119.93802124+r*(823.313447808+r*(104.526456943+r*1)))),i/v)}K0.exports=r1 });var C0=f(function(Z1,X0){ var e1=require('@stdlib/math-base-special-ln/dist'),i1=M0(),v1=P0(),a1=R0();function u1(r){var e,i;return r<-5?(i=r*r,e=e1(-r),(12-i-6*(e*e))/(12*i*r)):r<-2?i1(r):r<2?v1(r):r<1e3?(i=1/r,a1(r)/(-12*r)):-1/(12*r)}X0.exports=u1 });var Q0=f(function($1,H0){ function n1(r){var e,i,v;return r===0?.0495346498136:(r<0?e=-r:e=r,e<=1?(i=.0495346498136+r*(.0299521337141+r*(.00688296911516+r*(.000512634846317+r*-201411722031e-16))),v=1+r*(.759803615283+r*(.261547111595+r*(.0464854522477+r*.00403751193496)))):(r=1/r,i=-201411722031e-16+r*(.000512634846317+r*(.00688296911516+r*(.0299521337141+r*.0495346498136))),v=.00403751193496+r*(.0464854522477+r*(.261547111595+r*(.759803615283+r*1)))),i/v)}H0.exports=n1 });var z0=f(function(x1,D0){ function t1(r){var e,i,v;return r===0?.00452313583942:(r<0?e=-r:e=r,e<=1?(i=.00452313583942+r*(.00120744920113+r*(-789724156582e-16+r*(-504476066942e-16+r*-535770949796e-17))),v=1+r*(.912203410349+r*(.405368773071+r*(.0901638932349+r*.00948935714996)))):(r=1/r,i=-535770949796e-17+r*(-504476066942e-16+r*(-789724156582e-16+r*(.00120744920113+r*.00452313583942))),v=.00948935714996+r*(.0901638932349+r*(.405368773071+r*(.912203410349+r*1)))),i/v)}D0.exports=t1 });var B0=f(function(r3,j0){ function s1(r){var e,i,v;return r===0?.00439937562904:(r<0?e=-r:e=r,e<=1?(i=.00439937562904+r*(.000487225670639+r*(-.000128470657374+r*(529110969589e-17+r*15716677175e-17))),v=1+r*(.794435257415+r*(.333094721709+r*(.0703527806143+r*.00806110846078)))):(r=1/r,i=15716677175e-17+r*(529110969589e-17+r*(-.000128470657374+r*(.000487225670639+r*.00439937562904))),v=.00806110846078+r*(.0703527806143+r*(.333094721709+r*(.794435257415+r*1)))),i/v)}j0.exports=s1 });var J0=f(function(e3,G0){ function f1(r){var e,i,v;return r===0?-.0011481191232:(r<0?e=-r:e=r,e<=1?(i=-.0011481191232+r*(-.112850923276+r*(1.51623048511+r*(-.218472031183+r*.0730002451555))),v=1+r*(14.2482206905+r*(69.7360396285+r*(218.938950816+r*277.067027185)))):(r=1/r,i=.0730002451555+r*(-.218472031183+r*(1.51623048511+r*(-.112850923276+r*-.0011481191232))),v=277.067027185+r*(218.938950816+r*(69.7360396285+r*(14.2482206905+r*1)))),i/v)}G0.exports=f1 });var V0=f(function(i3,U0){ function o1(r){var e,i,v;return r===0?-.000145727889667:(r<0?e=-r:e=r,e<=1?(i=-.000145727889667+r*(-.290806748131+r*(-13.308504545+r*(199.722374056+r*-11.4311378756))),v=1+r*(139.612587808+r*(2189.01116348+r*(7115.24019009+r*45574.6081453)))):(r=1/r,i=-11.4311378756+r*(199.722374056+r*(-13.308504545+r*(-.290806748131+r*-.000145727889667))),v=45574.6081453+r*(7115.24019009+r*(2189.01116348+r*(139.612587808+r*1)))),i/v)}U0.exports=o1 });var $0=f(function(v3,Z0){ var Y0=require('@stdlib/math-base-special-ln/dist'),l1=Q0(),c1=z0(),q1=B0(),p1=J0(),m1=V0();function g1(r){var e,i;return r<-8?(e=r*r,i=Y0(-r)/r,(-30+r*i*(6*e*i*i-12+e))/(12*r*e*e)):r<-4?l1(r)/(r*r):r<-2?c1(r):r<2?q1(r):r<10?(e=1/r,p1(e)/(r*r)):r<100?(e=1/r,m1(e)/(r*r)):-Y0(r)/(12*r*r*r)}Z0.exports=g1 });var tr=f(function(a3,nr){ var O1=require("debug"),x0=require('@stdlib/math-base-tools-evalpoly/dist'),N=require('@stdlib/math-base-special-gammaln/dist'),h1=require('@stdlib/math-base-special-erfcinv/dist'),rr=require('@stdlib/math-base-special-gamma/dist'),H=require('@stdlib/math-base-special-sqrt/dist'),er=require('@stdlib/math-base-special-abs/dist'),M=require('@stdlib/math-base-special-exp/dist'),L1=require('@stdlib/math-base-special-min/dist'),N1=require('@stdlib/math-base-special-pow/dist'),O=require('@stdlib/math-base-special-ln/dist'),T1=require('@stdlib/constants-float64-sqrt-two-pi/dist'),A1=require('@stdlib/constants-float32-max/dist'),b1=require('@stdlib/constants-float64-two-pi/dist'),_1=o0(),ir=$(),vr=E0(),d1=W0(),y1=C0(),E1=$0(),w1=O1("gammaincinv:compute"),E=.5,e0=.3333333333333333,F1=.25,ar=.2,ur=.16666666666666666,S1=.08333333333333333,W1=.041666666666666664,h=[0,0,0,0,0];function k1(r,e,i){var v,m,t,n,c,a,g,S,I,W,d,w,P,K,y,T,A,l,s,Q,u,X,b,R,i0,F,D,z,v0,a0,j,B,G,J,u0,q,o,U,p,_,L,V,Y,Z;if(e<E?(n=!0,c=e,V=-1):(n=!1,c=i,V=1),p=0,er(r-1)<1e-4&&(_=0,n?e<.001?(B=e*e,z=B*e,j=z*e,Q=j*e,s=Q*e,u=e+B*E+z*e0+j*F1+Q*ar+s*ur):u=-O(1-e):u=-O(i),r===1?(p=2,J=u):(t=N(r),p=1)),i<1e-30&&r<E&&(_=0,u=-O(i*rr(r))+(r-1)*O(-O(i*rr(r))),p=1,t=N(r)),r>1&&r<500&&e<1e-80){for(_=0,a=1/r,v=1/(r+1),u=(N(r+1)+O(e))*a,u=M(u),K=u,U=0;U<10;U++)u=K*M(u*a)*N1(1-u*v,a);p=1,t=N(r)}if(g=1/r*(O(e)+N(r+1)),g<O(ar*(1+r))&&p===0&&(L=M(g),_=0,X=r*r,G=X*r,v0=G*r,y=r+1,d=y*y,W=y*d,I=d*d,T=r+2,S=T*T,A=r+3,h[0]=1,h[1]=1/y,h[2]=E*(3*r+5)/(d*T),h[3]=e0*(31+8*X+33*r)/(W*T*A),h[4]=W1*(2888+1179*G+125*v0+3971*X+5661*r)/(I*S*A*(r+4)),u=L*x0(h,L),t=N(r),p=1),r<10&&p===0&&(w=H(r)/(vr(r)*T1),P=L1(.02,w),i<P&&(_=0,q=1-r,F=q*q,D=F*q,l=H(-2/r*O(i/w)),u=r*ir(l),o=O(u),u>5?(b=o*o,R=b*o,i0=R*o,L=1/u,h[0]=o-1,h[1]=(3*q-2*q*o+b-2*o+2)*E,h[2]=(24*q*o-11*F-24*q-6*b+12*o-12-9*q*b+6*F*o+2*R)*ur,h[3]=(-12*D*o+8.04*q*b-114*F*o+(72+36*b)+(3*i0-72*o+162)*(q-168*q*o)-(12*R+25*D)-(22*q*R+36*F*b+120*F))*S1,h[4]=0,u=u-o+q*L*x0(h,L)):(L=1/u,b=o*o,u0=o-1,Y=o-q*L*u0,Y<u&&(u-=Y)),t=N(r),p=1)),er(c-E)<1e-5&&p===0&&(_=0,a=1/r,u=r-e0+(.019753086419753086+.007211444248481286*a)*a,t=N(r),p=1),r<1&&p===0&&(_=0,n?u=M(1/r*(O(c)+N(r+1))):u=M(1/r*(O(1-c)+N(r+1))),t=N(r),p=1),p===0)if(_=1,a=1/r,L=h1(2*c),l=V*L/H(r*E),L<A1)l+=(d1(l)+(y1(l)+E1(l)*a)*a)*a,u=r*ir(l),Z=l,a0=-H(r/b1)*M(-E*r*Z*Z)/vr(r),m=1/a0;else return w1("Warning: Overflow problems in one or more steps of the computation."),NaN;return p<2&&(J=_1(u,r,_,e,i,t,m,n)),J}nr.exports=k1 });var cr=f(function(u3,lr){ var sr=require('@stdlib/math-base-assert-is-nan/dist'),M1=require('@stdlib/constants-float32-smallest-normal/dist'),fr=require('@stdlib/constants-float64-pinf/dist'),or=tr();function I1(r,e,i){return sr(r)||sr(e)?NaN:e<M1?NaN:r>1||r<0?NaN:i===!0?r===0?fr:r===1?0:or(e,1-r,r):r===0?0:r===1?fr:or(e,r,1-r)}lr.exports=I1 });var P1=cr();module.exports=P1; /** @license Apache-2.0 */ /** @license Apache-2.0 */ //# sourceMappingURL=index.js.map