@@ -169,25 +169,76 @@ function regular_hypergeometric_2F1(a::ArbReal{P}, b::ArbReal{P}, c::ArbReal{P},
169169 return result
170170end
171171
172+ """
173+ hypergeometric_gamma_lower(s, z)
174+
175+ lower incomplete gamma function, ``small_gamma(s, z) = (z^s / s) * ₁F₁(s, s+1, -z)``
176+ """
177+ function hypergeometric_gamma_lower(s:: ArbReal{P} , z:: ArbReal{P} ) where {P}
178+ result = ArbReal{P}()
179+ regularized = Cint(0 )
180+ ccall(@libarb(arb_hypgeom_gamma_lower), Cvoid, (Ref{ArbReal}, Ref{ArbReal}, Ref{ArbReal}, Cint, Clong),
181+ result, s, z, regularized, P)
182+ return result
183+ end
184+
185+ """
186+ regular_hypergeometric_gamma_lower(s, z)
187+
188+ regularized lower incomplete gamma function, ``P(s, z) = small_gamma(s, z) / gamma(s)``
189+ """
190+ function regular_hypergeometric_gamma_lower(s:: ArbReal{P} , z:: ArbReal{P} ) where {P}
191+ result = ArbReal{P}()
192+ regularized = Cint(1 )
193+ ccall(@libarb(arb_hypgeom_gamma_lower), Cvoid, (Ref{ArbReal}, Ref{ArbReal}, Ref{ArbReal}, Cint, Clong),
194+ result, s, z, regularized, P)
195+ return result
196+ end
197+
198+ """
199+ further_regular_hypergeometric_gamma_lower(s, z)
200+
201+ 'further' regularized lower incomplete gamma function, ``small_gamma_star(s, z) = z^-s * P(s, z)``
202+ """
203+ function further_regular_hypergeometric_gamma_lower(s:: ArbReal{P} , z:: ArbReal{P} ) where {P}
204+ result = ArbReal{P}()
205+ regularized = Cint(2 )
206+ ccall(@libarb(arb_hypgeom_gamma_lower), Cvoid, (Ref{ArbReal}, Ref{ArbReal}, Ref{ArbReal}, Cint, Clong),
207+ result, s, z, regularized, P)
208+ return result
209+ end
210+
211+
212+
213+
172214# ArbFloat
173215
174216hypergeometric_0F1(a:: ArbFloat{P} , z:: ArbFloat{P} ) where {P} =
175- ArbFloat{P}(hypgeom0f1 (ArbReal{P}(a), ArbReal{P}(z)))
217+ ArbFloat{P}(hypergeometric_0F1 (ArbReal{P}(a), ArbReal{P}(z)))
176218
177219hypergeometric_0F1_regularized(a:: ArbFloat{P} , z:: ArbFloat{P} ) where {P} =
178- ArbFloat{P}(hypgeom0f1reg (ArbReal{P}(a), ArbReal{P}(z)))
220+ ArbFloat{P}(hypergeometric_0F1_regularized (ArbReal{P}(a), ArbReal{P}(z)))
179221
180- hypergeometric_U(a:: ArbFloat{P} , z:: ArbFloat{P} ) where {P} =
181- ArbFloat{P}(hypgeomu (ArbReal{P}(a), ArbReal{P}(z)))
222+ hypergeometric_U(a:: ArbFloat{P} , b :: ArbFloat{P} , z:: ArbFloat{P} ) where {P} =
223+ ArbFloat{P}(hypergeometric_U (ArbReal{P}(a), ArbReal{P}(b ), ArbReal{P}(z)))
182224
183225hypergeometric_1F1(a:: ArbFloat{P} , b:: ArbFloat{P} , z:: ArbFloat{P} ) where {P} =
184- ArbFloat{P}(hypgeom1f1 (ArbReal{P}(a), ArbReal{P}(b), ArbReal{P}(z)))
226+ ArbFloat{P}(hypergeometric_1F1 (ArbReal{P}(a), ArbReal{P}(b), ArbReal{P}(z)))
185227
186228hypergeometric_1F1_regularized(a:: ArbFloat{P} , b:: ArbFloat{P} , z:: ArbFloat{P} ) where {P} =
187- ArbFloat{P}(hypgeom1f1reg (ArbReal{P}(a), ArbReal{P}(b), ArbReal{P}(z)))
229+ ArbFloat{P}(hypergeometric_1F1_regularized (ArbReal{P}(a), ArbReal{P}(b), ArbReal{P}(z)))
188230
189231hypergeometric_1F2(a:: ArbFloat{P} , b:: ArbFloat{P} , c:: ArbFloat{P} , z:: ArbFloat{P} ) where {P} =
190- ArbFloat{P}(hypgeom1f2 (ArbReal{P}(a), ArbReal{P}(b), ArbReal{P}(c), ArbReal{P}(z)))
232+ ArbFloat{P}(hypergeometric_1F2 (ArbReal{P}(a), ArbReal{P}(b), ArbReal{P}(c), ArbReal{P}(z)))
191233
192234hypergeometric_1F2_regularized(a:: ArbFloat{P} , b:: ArbFloat{P} , c:: ArbFloat{P} , z:: ArbFloat{P} ) where {P} =
193- ArbFloat{P}(hypgeom1f2reg(ArbReal{P}(a), ArbReal{P}(b), ArbReal{P}(c), ArbReal{P}(z)))
235+ ArbFloat{P}(hypergeometric_1F2_regularized(ArbReal{P}(a), ArbReal{P}(b), ArbReal{P}(c), ArbReal{P}(z)))
236+
237+ hypergeometric_gamma_lower(s:: ArbFloat{P} , z:: ArbFloat{P} ) where {P} =
238+ ArbFloat{P}(hypergeometric_gamma_lower(ArbReal{P}(s), ArbReal{P}(z)))
239+
240+ regular_hypergeometric_gamma_lower(s:: ArbFloat{P} , z:: ArbFloat{P} ) where {P} =
241+ ArbFloat{P}(hypergeometric_gamma_lower(ArbReal{P}(s), ArbReal{P}(z)))
242+
243+ further_regular_hypergeometric_gamma_lower(s:: ArbFloat{P} , z:: ArbFloat{P} ) where {P} =
244+ ArbFloat{P}(further_hypergeometric_gamma_lower(ArbReal{P}(s), ArbReal{P}(z)))
0 commit comments