mirror of
https://github.com/gonum/gonum.git
synced 2025-10-06 23:52:47 +08:00

Changes made in dsp/fourier/internal/fftpack break the formatting used there, so these are reverted. There will be complaints in CI. [git-generate] gofmt -w . go generate gonum.org/v1/gonum/blas go generate gonum.org/v1/gonum/blas/gonum go generate gonum.org/v1/gonum/unit go generate gonum.org/v1/gonum/unit/constant go generate gonum.org/v1/gonum/graph/formats/dot go generate gonum.org/v1/gonum/graph/formats/rdf go generate gonum.org/v1/gonum/stat/card git checkout -- dsp/fourier/internal/fftpack
59 lines
2.0 KiB
Go
59 lines
2.0 KiB
Go
// Copyright ©2016 The Gonum Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package mathext
|
|
|
|
import (
|
|
"gonum.org/v1/gonum/mathext/internal/cephes"
|
|
)
|
|
|
|
// GammaIncReg computes the regularized incomplete Gamma integral.
|
|
//
|
|
// GammaIncReg(a,x) = (1/ Γ(a)) \int_0^x e^{-t} t^{a-1} dt
|
|
//
|
|
// The input argument a must be positive and x must be non-negative or GammaIncReg
|
|
// will panic.
|
|
//
|
|
// See http://mathworld.wolfram.com/IncompleteGammaFunction.html
|
|
// or https://en.wikipedia.org/wiki/Incomplete_gamma_function for more detailed
|
|
// information.
|
|
func GammaIncReg(a, x float64) float64 {
|
|
return cephes.Igam(a, x)
|
|
}
|
|
|
|
// GammaIncRegComp computes the complemented regularized incomplete Gamma integral.
|
|
//
|
|
// GammaIncRegComp(a,x) = 1 - GammaIncReg(a,x)
|
|
// = (1/ Γ(a)) \int_x^\infty e^{-t} t^{a-1} dt
|
|
//
|
|
// The input argument a must be positive and x must be non-negative or
|
|
// GammaIncRegComp will panic.
|
|
func GammaIncRegComp(a, x float64) float64 {
|
|
return cephes.IgamC(a, x)
|
|
}
|
|
|
|
// GammaIncRegInv computes the inverse of the regularized incomplete Gamma integral. That is,
|
|
// it returns the x such that:
|
|
//
|
|
// GammaIncReg(a, x) = y
|
|
//
|
|
// The input argument a must be positive and y must be between 0 and 1
|
|
// inclusive or GammaIncRegInv will panic. GammaIncRegInv should return a positive
|
|
// number, but can return NaN if there is a failure to converge.
|
|
func GammaIncRegInv(a, y float64) float64 {
|
|
return gammaIncRegInv(a, y)
|
|
}
|
|
|
|
// GammaIncRegCompInv computes the inverse of the complemented regularized incomplete Gamma
|
|
// integral. That is, it returns the x such that:
|
|
//
|
|
// GammaIncRegComp(a, x) = y
|
|
//
|
|
// The input argument a must be positive and y must be between 0 and 1
|
|
// inclusive or GammaIncRegCompInv will panic. GammaIncRegCompInv should return a
|
|
// positive number, but can return 0 even with non-zero y due to underflow.
|
|
func GammaIncRegCompInv(a, y float64) float64 {
|
|
return cephes.IgamI(a, y)
|
|
}
|