diff options
| author | Christine Dodrill <me@christine.website> | 2018-10-19 06:24:23 -0700 |
|---|---|---|
| committer | Christine Dodrill <me@christine.website> | 2018-10-19 06:28:37 -0700 |
| commit | 273b48a8b409126e14f8beb23cee4255d1f08a2c (patch) | |
| tree | feb316d464d92e143732ca3eac525fe4ca3cda1d /vendor/github.com/aclements | |
| parent | 456deb2bbadbcc8fd218a2297ac4879c069ef0ba (diff) | |
| download | x-273b48a8b409126e14f8beb23cee4255d1f08a2c.tar.xz x-273b48a8b409126e14f8beb23cee4255d1f08a2c.zip | |
GOPROXY means we can avoid vendoring
Diffstat (limited to 'vendor/github.com/aclements')
6 files changed, 0 insertions, 307 deletions
diff --git a/vendor/github.com/aclements/go-moremath/LICENSE b/vendor/github.com/aclements/go-moremath/LICENSE deleted file mode 100644 index d29b372..0000000 --- a/vendor/github.com/aclements/go-moremath/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2015 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/aclements/go-moremath/mathx/beta.go b/vendor/github.com/aclements/go-moremath/mathx/beta.go deleted file mode 100644 index 49f8722..0000000 --- a/vendor/github.com/aclements/go-moremath/mathx/beta.go +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2015 The Go 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 mathx - -import "math" - -func lgamma(x float64) float64 { - y, _ := math.Lgamma(x) - return y -} - -// Beta returns the value of the complete beta function B(a, b). -func Beta(a, b float64) float64 { - // B(x,y) = Γ(x)Γ(y) / Γ(x+y) - return math.Exp(lgamma(a) + lgamma(b) - lgamma(a+b)) -} - -// BetaInc returns the value of the regularized incomplete beta -// function Iₓ(a, b). -// -// This is not to be confused with the "incomplete beta function", -// which can be computed as BetaInc(x, a, b)*Beta(a, b). -// -// If x < 0 or x > 1, returns NaN. -func BetaInc(x, a, b float64) float64 { - // Based on Numerical Recipes in C, section 6.4. This uses the - // continued fraction definition of I: - // - // (xᵃ*(1-x)ᵇ)/(a*B(a,b)) * (1/(1+(d₁/(1+(d₂/(1+...)))))) - // - // where B(a,b) is the beta function and - // - // d_{2m+1} = -(a+m)(a+b+m)x/((a+2m)(a+2m+1)) - // d_{2m} = m(b-m)x/((a+2m-1)(a+2m)) - if x < 0 || x > 1 { - return math.NaN() - } - bt := 0.0 - if 0 < x && x < 1 { - // Compute the coefficient before the continued - // fraction. - bt = math.Exp(lgamma(a+b) - lgamma(a) - lgamma(b) + - a*math.Log(x) + b*math.Log(1-x)) - } - if x < (a+1)/(a+b+2) { - // Compute continued fraction directly. - return bt * betacf(x, a, b) / a - } else { - // Compute continued fraction after symmetry transform. - return 1 - bt*betacf(1-x, b, a)/b - } -} - -// betacf is the continued fraction component of the regularized -// incomplete beta function Iₓ(a, b). -func betacf(x, a, b float64) float64 { - const maxIterations = 200 - const epsilon = 3e-14 - - raiseZero := func(z float64) float64 { - if math.Abs(z) < math.SmallestNonzeroFloat64 { - return math.SmallestNonzeroFloat64 - } - return z - } - - c := 1.0 - d := 1 / raiseZero(1-(a+b)*x/(a+1)) - h := d - for m := 1; m <= maxIterations; m++ { - mf := float64(m) - - // Even step of the recurrence. - numer := mf * (b - mf) * x / ((a + 2*mf - 1) * (a + 2*mf)) - d = 1 / raiseZero(1+numer*d) - c = raiseZero(1 + numer/c) - h *= d * c - - // Odd step of the recurrence. - numer = -(a + mf) * (a + b + mf) * x / ((a + 2*mf) * (a + 2*mf + 1)) - d = 1 / raiseZero(1+numer*d) - c = raiseZero(1 + numer/c) - hfac := d * c - h *= hfac - - if math.Abs(hfac-1) < epsilon { - return h - } - } - panic("betainc: a or b too big; failed to converge") -} diff --git a/vendor/github.com/aclements/go-moremath/mathx/choose.go b/vendor/github.com/aclements/go-moremath/mathx/choose.go deleted file mode 100644 index 54dc27c..0000000 --- a/vendor/github.com/aclements/go-moremath/mathx/choose.go +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2015 The Go 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 mathx - -import "math" - -const smallFactLimit = 20 // 20! => 62 bits -var smallFact [smallFactLimit + 1]int64 - -func init() { - smallFact[0] = 1 - fact := int64(1) - for n := int64(1); n <= smallFactLimit; n++ { - fact *= n - smallFact[n] = fact - } -} - -// Choose returns the binomial coefficient of n and k. -func Choose(n, k int) float64 { - if k == 0 || k == n { - return 1 - } - if k < 0 || n < k { - return 0 - } - if n <= smallFactLimit { // Implies k <= smallFactLimit - // It's faster to do several integer multiplications - // than it is to do an extra integer division. - // Remarkably, this is also faster than pre-computing - // Pascal's triangle (presumably because this is very - // cache efficient). - numer := int64(1) - for n1 := int64(n - (k - 1)); n1 <= int64(n); n1++ { - numer *= n1 - } - denom := smallFact[k] - return float64(numer / denom) - } - - return math.Exp(lchoose(n, k)) -} - -// Lchoose returns math.Log(Choose(n, k)). -func Lchoose(n, k int) float64 { - if k == 0 || k == n { - return 0 - } - if k < 0 || n < k { - return math.NaN() - } - return lchoose(n, k) -} - -func lchoose(n, k int) float64 { - a, _ := math.Lgamma(float64(n + 1)) - b, _ := math.Lgamma(float64(k + 1)) - c, _ := math.Lgamma(float64(n - k + 1)) - return a - b - c -} diff --git a/vendor/github.com/aclements/go-moremath/mathx/gamma.go b/vendor/github.com/aclements/go-moremath/mathx/gamma.go deleted file mode 100644 index d11096e..0000000 --- a/vendor/github.com/aclements/go-moremath/mathx/gamma.go +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright 2015 The Go 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 mathx - -import "math" - -// GammaInc returns the value of the incomplete gamma function (also -// known as the regularized gamma function): -// -// P(a, x) = 1 / Γ(a) * ∫₀ˣ exp(-t) t**(a-1) dt -func GammaInc(a, x float64) float64 { - // Based on Numerical Recipes in C, section 6.2. - - if a <= 0 || x < 0 || math.IsNaN(a) || math.IsNaN(x) { - return math.NaN() - } - - if x < a+1 { - // Use the series representation, which converges more - // rapidly in this range. - return gammaIncSeries(a, x) - } else { - // Use the continued fraction representation. - return 1 - gammaIncCF(a, x) - } -} - -// GammaIncComp returns the complement of the incomplete gamma -// function 1 - GammaInc(a, x). This is more numerically stable for -// values near 0. -func GammaIncComp(a, x float64) float64 { - if a <= 0 || x < 0 || math.IsNaN(a) || math.IsNaN(x) { - return math.NaN() - } - - if x < a+1 { - return 1 - gammaIncSeries(a, x) - } else { - return gammaIncCF(a, x) - } -} - -func gammaIncSeries(a, x float64) float64 { - const maxIterations = 200 - const epsilon = 3e-14 - - if x == 0 { - return 0 - } - - ap := a - del := 1 / a - sum := del - for n := 0; n < maxIterations; n++ { - ap++ - del *= x / ap - sum += del - if math.Abs(del) < math.Abs(sum)*epsilon { - return sum * math.Exp(-x+a*math.Log(x)-lgamma(a)) - } - } - panic("a too large; failed to converge") -} - -func gammaIncCF(a, x float64) float64 { - const maxIterations = 200 - const epsilon = 3e-14 - - raiseZero := func(z float64) float64 { - if math.Abs(z) < math.SmallestNonzeroFloat64 { - return math.SmallestNonzeroFloat64 - } - return z - } - - b := x + 1 - a - c := math.MaxFloat64 - d := 1 / b - h := d - - for i := 1; i <= maxIterations; i++ { - an := -float64(i) * (float64(i) - a) - b += 2 - d = raiseZero(an*d + b) - c = raiseZero(b + an/c) - d = 1 / d - del := d * c - h *= del - if math.Abs(del-1) < epsilon { - return math.Exp(-x+a*math.Log(x)-lgamma(a)) * h - } - } - panic("a too large; failed to converge") -} diff --git a/vendor/github.com/aclements/go-moremath/mathx/package.go b/vendor/github.com/aclements/go-moremath/mathx/package.go deleted file mode 100644 index 9d5de0d..0000000 --- a/vendor/github.com/aclements/go-moremath/mathx/package.go +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2015 The Go 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 mathx implements special functions not provided by the -// standard math package. -package mathx // import "github.com/aclements/go-moremath/mathx" - -import "math" - -var nan = math.NaN() diff --git a/vendor/github.com/aclements/go-moremath/mathx/sign.go b/vendor/github.com/aclements/go-moremath/mathx/sign.go deleted file mode 100644 index 372e92f..0000000 --- a/vendor/github.com/aclements/go-moremath/mathx/sign.go +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2015 The Go 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 mathx - -// Sign returns the sign of x: -1 if x < 0, 0 if x == 0, 1 if x > 0. -// If x is NaN, it returns NaN. -func Sign(x float64) float64 { - if x == 0 { - return 0 - } else if x < 0 { - return -1 - } else if x > 0 { - return 1 - } - return nan -} |
