get some speed gains for mixtures thru a bit more complexity
This commit is contained in:
parent
3ca32655d5
commit
7d59beb4bf
6
fermi.go
6
fermi.go
|
@ -382,7 +382,7 @@ func parseMixture(words []string, vars map[string]Dist) (Dist, error) {
|
||||||
|
|
||||||
var dists []Dist
|
var dists []Dist
|
||||||
var fs []func(int, sample.State) float64
|
var fs []func(int, sample.State) float64
|
||||||
var ss [][]float64
|
// var ss [][]float64
|
||||||
var weights []float64
|
var weights []float64
|
||||||
|
|
||||||
for i, word := range words {
|
for i, word := range words {
|
||||||
|
@ -391,12 +391,12 @@ func parseMixture(words []string, vars map[string]Dist) (Dist, error) {
|
||||||
if !exists {
|
if !exists {
|
||||||
return nil, printAndReturnErr("Expected mixture variable but didn't get a variable. \nMixture syntax: \nmx x 2.5 y 8 z 10\ni.e.: mx var weight var2 weight2 ... var_n weight_n")
|
return nil, printAndReturnErr("Expected mixture variable but didn't get a variable. \nMixture syntax: \nmx x 2.5 y 8 z 10\ni.e.: mx var weight var2 weight2 ... var_n weight_n")
|
||||||
}
|
}
|
||||||
samples := dist.Samples()
|
// samples := dist.Samples()
|
||||||
f := dist.Sampler
|
f := dist.Sampler
|
||||||
// Inefficient to draw N_SAMPLES for each of the distributions, but conceptually simpler.
|
// Inefficient to draw N_SAMPLES for each of the distributions, but conceptually simpler.
|
||||||
dists = append(dists, dist)
|
dists = append(dists, dist)
|
||||||
fs = append(fs, f)
|
fs = append(fs, f)
|
||||||
ss = append(ss, samples)
|
// ss = append(ss, samples)
|
||||||
} else {
|
} else {
|
||||||
weight, err := pretty.ParseFloat(word)
|
weight, err := pretty.ParseFloat(word)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user