From e7937a8c0ddbb58fdab73f018a705dae2c8a213c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gi=C3=B9=20Marcer?= Date: Thu, 30 Apr 2020 22:25:44 +0200 Subject: [PATCH] ex-5: rearranged everything --- ex-5/casino | Bin 29328 -> 0 bytes ex-5/casino.c | 37 ------------------------------------ ex-5/{trifecta.c => main.c} | 20 ++++++++++++------- ex-5/manual | Bin 26264 -> 0 bytes ex-5/manual.c | 31 ------------------------------ ex-5/trifecta | Bin 32968 -> 0 bytes 6 files changed, 13 insertions(+), 75 deletions(-) delete mode 100755 ex-5/casino delete mode 100644 ex-5/casino.c rename ex-5/{trifecta.c => main.c} (87%) delete mode 100755 ex-5/manual delete mode 100644 ex-5/manual.c delete mode 100755 ex-5/trifecta diff --git a/ex-5/casino b/ex-5/casino deleted file mode 100755 index 6da0aaeda149d31a3a62eb4155e2eea349cdcf59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29328 zcmeHw36z}0b#DFrPyh3G�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 K!5V=Yl>J|o&(=Wz diff --git a/ex-5/casino.c b/ex-5/casino.c deleted file mode 100644 index 961c494..0000000 --- a/ex-5/casino.c +++ /dev/null @@ -1,37 +0,0 @@ -#include -#include -#include -#include - -int main(int argc, char** argv){ - size_t size = atoi(argv[1]); // size of the generated sample - - // Initialize an RNG. - gsl_rng_env_setup(); - gsl_rng *r = gsl_rng_alloc(gsl_rng_default); - - // Random points (x, y) generation: x in [0,1), y in [0,3) - // get if y < exp(x) - // leave if y > exp(x) - size_t in = 0; - size_t total = 0; - do{ - double x = gsl_rng_uniform(r); - double y = 3 * gsl_rng_uniform(r); - if (y <= exp(x)){ - in++; - } - total++; - } while (total < size); - - - // The integral is esitmated thorugh the proportion: - // integral : 3 = in : total - double integral = 3.0*(double)in/(double)total; - printf("∫exp(x)dx in [0,1]:\t%.07f\n", integral); - - // Free memory - gsl_rng_free(r); - return EXIT_SUCCESS; -} - diff --git a/ex-5/trifecta.c b/ex-5/main.c similarity index 87% rename from ex-5/trifecta.c rename to ex-5/main.c index 5cf3822..cf05f46 100644 --- a/ex-5/trifecta.c +++ b/ex-5/main.c @@ -5,10 +5,6 @@ #include -// Exact value of the integral. -double exact = 1.71828182845905; - - // Function which must be passed to the gsl_function. double function (double * x, size_t dim, void * params){ // Avoid warning when no parameters are passed to the function. @@ -23,14 +19,24 @@ void results (char *title, double result, double error) printf ("---------------------------\n%s\n", title); printf ("result: % .10f\n", result); printf ("sigma: % .10f\n", error); - printf ("exact: % .10f\n", exact); } -int main(){ +int main(int argc, char** argv){ + + // If no argument is given is input, an error signal is displayed + // and the program quits. + + if (argc != 2) + { + fprintf(stderr, "usage: %s D\n", argv[0]); + fprintf(stderr, "Computes the integral generating D points.\n"); + return EXIT_FAILURE; + } + // Some useful variables. double integral, error; - size_t calls = 50000000; + size_t calls = 5000; size_t dims = 1; double lower[1] = {0}; // Integration lower limit double upper[1] = {1}; // Integration upper limit diff --git a/ex-5/manual b/ex-5/manual deleted file mode 100755 index fea418c28a0c99560a17dbefb2324caecc837e72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26264 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 diff --git a/ex-5/manual.c b/ex-5/manual.c deleted file mode 100644 index 16ba2f9..0000000 --- a/ex-5/manual.c +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include -#include - -/* This program evaluates the integral of exp(x) in [0;1] through the - * trapezoidal rule. - * The integration step is given in input as d in step = 1e-d. - * - */ - -int main(int argc, char** argv){ - double left = 0; // left limit - double point = left; // points at the current position - double right = 1; // right limit - - double step = pow(10, -atoi(argv[1])); // step of integration - - double sum = 0; - - // Integral evaluation: stops when point goes over the right edge of the - // range. - do { - sum += step * 0.5 * (exp(point) + exp(point + step)); - point += step; - } while (point < right); - - // Print out the result - printf("∫exp(x)dx in [0,1]:\t%.7f\n", sum); - - return EXIT_SUCCESS; -} diff --git a/ex-5/trifecta b/ex-5/trifecta deleted file mode 100755 index 9addaef37a06bff0416cde813c04c2cedc8e4fed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32968 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