From 1d89eb6231aa02415e2d8e906d6ee929d54e7366 Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Sat, 20 Jan 2024 14:30:20 +0100 Subject: [PATCH] formatting pass, upkeep --- .../core/03_gcc_nested_function/example.c | 12 +++- .../core/06_dissolving_fermi_paradox/example | Bin 0 -> 21792 bytes .../{scratchpad.c => example.c} | 58 +++++++---------- scratchpad/scratchpad | Bin 26992 -> 26992 bytes scratchpad/scratchpad.c | 59 ++++++++++-------- 5 files changed, 68 insertions(+), 61 deletions(-) create mode 100755 examples/core/06_dissolving_fermi_paradox/example rename examples/core/06_dissolving_fermi_paradox/{scratchpad.c => example.c} (81%) diff --git a/examples/core/03_gcc_nested_function/example.c b/examples/core/03_gcc_nested_function/example.c index 3b1ad0e..d00e983 100644 --- a/examples/core/03_gcc_nested_function/example.c +++ b/examples/core/03_gcc_nested_function/example.c @@ -15,8 +15,16 @@ int main() int n_dists = 4; // These are nested functions. They will not compile without gcc. - double sample_0(uint64_t * seed) { UNUSED(seed); return 0; } - double sample_1(uint64_t * seed) { UNUSED(seed); return 1; } + double sample_0(uint64_t * seed) + { + UNUSED(seed); + return 0; + } + double sample_1(uint64_t * seed) + { + UNUSED(seed); + return 1; + } double sample_few(uint64_t * seed) { return sample_to(1, 3, seed); } double sample_many(uint64_t * seed) { return sample_to(2, 10, seed); } diff --git a/examples/core/06_dissolving_fermi_paradox/example b/examples/core/06_dissolving_fermi_paradox/example new file mode 100755 index 0000000000000000000000000000000000000000..f6ac90911ed9681dfe5b39772e15c7271c10e422 GIT binary patch literal 21792 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 literal 0 HcmV?d00001 diff --git a/examples/core/06_dissolving_fermi_paradox/scratchpad.c b/examples/core/06_dissolving_fermi_paradox/example.c similarity index 81% rename from examples/core/06_dissolving_fermi_paradox/scratchpad.c rename to examples/core/06_dissolving_fermi_paradox/example.c index da52936..0e9a5e6 100644 --- a/examples/core/06_dissolving_fermi_paradox/scratchpad.c +++ b/examples/core/06_dissolving_fermi_paradox/example.c @@ -1,11 +1,11 @@ -#include "../squiggle.h" -// #include "../squiggle_more.h" +#include "../../../squiggle.h" #include #include #include #include -double sample_loguniform(double a, double b, uint64_t* seed){ +double sample_loguniform(double a, double b, uint64_t* seed) +{ return exp(sample_uniform(log(a), log(b), seed)); } @@ -16,10 +16,11 @@ int main() // set randomness seed uint64_t* seed = malloc(sizeof(uint64_t)); - *seed = UINT64_MAX/64; // xorshift can't start with a seed of 0 - - double sample_fermi_naive(uint64_t* seed){ - double rate_of_star_formation = sample_loguniform(1,100, seed); + *seed = UINT64_MAX / 64; // xorshift can't start with a seed of 0 + + double sample_fermi_naive(uint64_t * seed) + { + double rate_of_star_formation = sample_loguniform(1, 100, seed); double fraction_of_stars_with_planets = sample_loguniform(0.1, 1, seed); double number_of_habitable_planets_per_star_system = sample_loguniform(0.1, 1, seed); double rate_of_life_formation_in_habitable_planets = sample_lognormal(1, 50, seed); @@ -41,34 +42,29 @@ int main() // Expected number of civilizations in the Milky way; // see footnote 3 (p. 5) - double n = rate_of_star_formation * - fraction_of_stars_with_planets * - number_of_habitable_planets_per_star_system * - fraction_of_habitable_planets_in_which_any_life_appears * - fraction_of_planets_with_life_in_which_intelligent_life_appears * - fraction_of_intelligent_planets_which_are_detectable_as_such * - longevity_of_detectable_civilizations; + double n = rate_of_star_formation * fraction_of_stars_with_planets * number_of_habitable_planets_per_star_system * fraction_of_habitable_planets_in_which_any_life_appears * fraction_of_planets_with_life_in_which_intelligent_life_appears * fraction_of_intelligent_planets_which_are_detectable_as_such * longevity_of_detectable_civilizations; return n; } - double sample_fermi_paradox_naive(uint64_t* seed){ + double sample_fermi_paradox_naive(uint64_t * seed) + { double n = sample_fermi_naive(seed); return ((n > 1) ? 1 : 0); } double n = 1000000; double naive_fermi_proportion = 0; - for(int i=0; i 0) ? 1 : 0); } double logspace_fermi_proportion = 0; - for(int i=0; i5=Bt6QG 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 #include #include @@ -7,16 +7,18 @@ double sample_loguniform(double a, double b, uint64_t* seed){ return exp(sample_uniform(log(a), log(b), seed)); - } int main() { + // Replicate , and in particular the red line in page 11. + // Could also be interesting to just produce and save many samples. + // set randomness seed uint64_t* seed = malloc(sizeof(uint64_t)); *seed = UINT64_MAX/64; // xorshift can't start with a seed of 0 - double fermi_naive(uint64_t* seed){ + double sample_fermi_naive(uint64_t* seed){ double rate_of_star_formation = sample_loguniform(1,100, seed); double fraction_of_stars_with_planets = sample_loguniform(0.1, 1, seed); double number_of_habitable_planets_per_star_system = sample_loguniform(0.1, 1, seed); @@ -50,21 +52,23 @@ int main() return n; } - double fermi_paradox_naive(uint64_t* seed){ - double n = fermi_naive(seed); - return (n > 1 ? 1 : 0); + double sample_fermi_paradox_naive(uint64_t* seed){ + double n = sample_fermi_naive(seed); + return ((n > 1) ? 1 : 0); } - double result; - for(int i=0; i<1000; i++){ - result = fermi_naive(seed); - printf("result from fermi_naive: %lf\n", result); - printf("\n\n"); + double n = 1000000; + double naive_fermi_proportion = 0; + for(int i=0; i 0) ? 1 : 0); } - */ + + double logspace_fermi_proportion = 0; + for(int i=0; i