time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

commit c9f6e964ee449588d13bb7d08959da38766682ff
parent 934c84e195ea26f0cd14893c92acdb4e203a4b28
Author: NunoSempere <nuno.sempere@protonmail.com>
Date:   Fri, 16 Feb 2024 00:40:02 +0100

continue defining simple go API

Diffstat:
Dgo/hello.go | 7-------
Mgo/squiggle.go | 27++++++++++++++++++++++++++-
2 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/go/hello.go b/go/hello.go @@ -1,7 +0,0 @@ -package main - -import "fmt" - -func main() { - fmt.Println("Hello world!") -} diff --git a/go/squiggle.go b/go/squiggle.go @@ -1,12 +1,37 @@ package main import "fmt" +import "math" import rand "math/rand/v2" var r = rand.New(rand.NewPCG(1, 2)) +func sample_unit_uniform() float64 { + return r.Float64() +} + func sample_unit_normal() float64 { - return 1.0 + return r.NormFloat64() +} + +func sample_uniform(start float64, end float64) float64 { + return sample_unit_uniform()*(end-start) + start +} + +func sample_normal(mean float64, sigma float64) float64 { + return mean + sample_unit_normal()*sigma +} + +func sample_lognormal(logmean float64, logstd float64) float64 { + return (math.Exp(sample_normal(logmean, logstd))) +} + +func sample_normal_from_90_ci(low float64, high float64) float64 { + var normal90 float64 = 1.6448536269514727 + var mean float64 = (high + low) / 2.0 + var std float64 = (high - low) / (2.0 * normal90) + return sample_normal(mean, std) + } func main() {