func (p ExponentialParam) GetMax() float64 {
	return p.Max
}
GetMax implements Param.
package bayesopt
import (
	"math"
	"math/rand"
)
var SampleTries = 1000
type Param interface {
	GetName() string
	GetMax() float64
	GetMin() float64
	Sample() float64
}
var _ Param = UniformParam{}
type LinearParam = UniformParam
type UniformParam struct {
	Name     string
	Max, Min float64
}
func (p UniformParam) GetName() string {
	return p.Name
}
func (p UniformParam) GetMax() float64 {
	return p.Max
}
func (p UniformParam) GetMin() float64 {
	return p.Min
}
func (p UniformParam) Sample() float64 {
	return rand.Float64()*(p.Max-p.Min) + p.Min
}
var _ Param = NormalParam{}
type NormalParam struct {
	Name         string
	Max, Min     float64
	Mean, StdDev float64
}
func (p NormalParam) GetName() string {
	return p.Name
}
func (p NormalParam) GetMax() float64 {
	return p.Max
}
func (p NormalParam) GetMin() float64 {
	return p.Min
}
func (p NormalParam) Sample() float64 {
	return truncateSample(p, func() float64 {
		return rand.NormFloat64()*p.StdDev + p.Mean
	})
}
var _ Param = ExponentialParam{}
type ExponentialParam struct {
	Name     string
	Max, Min float64
	Rate     float64
}
func (p ExponentialParam) GetName() string {
	return p.Name
}