/
inversegamma.go
48 lines (40 loc) · 1.59 KB
/
inversegamma.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package inversegamma
import (
"github.com/spf13/cobra"
"gonum.org/v1/gonum/stat/distuv"
"github.com/calebcase/gomnia/cmd/generate"
)
var (
Alpha float64 = 1
Beta float64 = 1
Cmd = &cobra.Command{
Use: "inverse-gamma",
Short: "generate samples from the inverse gamma distribution",
Long: `Generate samples from the inverse gamma distribution.
. alpha=1 alpha=2 alpha=3 alpha=3
. beta=1 beta=1 beta=1 beta=0.5
0.0 ██▍ ████▌ ████████▊ ██████████▏
0.3 ██████████▏ ██████████▏ ██████████▏ ██▍
0.6 █████████▎ █████▋ ███▎ ▌
0.9 ███████ ███ █▎ ▎
1.2 █████▎ █▊ ▋ ▏
1.5 ████ █▏ ▍ ▏
1.8 ███▎ ▊ ▎ ▏
2.1 ██▋ ▌ ▏ ▏
2.4 ██▏ ▍ ▏ ▏
2.7 █▊ ▍ ▏ ▏
https://en.wikipedia.org/wiki/Inverse-gamma_distribution`,
RunE: func(command *cobra.Command, args []string) (err error) {
return generate.Sample(distuv.InverseGamma{
Alpha: Alpha,
Beta: Beta,
})
},
}
)
func init() {
generate.Cmd.AddCommand(Cmd)
flags := Cmd.Flags()
flags.Float64VarP(&Alpha, "alpha", "a", Alpha, "shape")
flags.Float64VarP(&Beta, "beta", "b", Beta, "scale")
}