From be980e9a7a39ec06bea6446e79df21cb580fdcd7 Mon Sep 17 00:00:00 2001 From: dearblue Date: Sun, 23 Dec 2018 17:23:51 +0900 Subject: Suppress __FreeBSD_version warns for FreeBSD --- mrbgems/mruby-math/src/math.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'mrbgems/mruby-math/src/math.c') diff --git a/mrbgems/mruby-math/src/math.c b/mrbgems/mruby-math/src/math.c index c182debea..c29ba6808 100644 --- a/mrbgems/mruby-math/src/math.c +++ b/mrbgems/mruby-math/src/math.c @@ -161,6 +161,10 @@ erfc(double x) #endif +#if defined __FreeBSD__ && !defined __FreeBSD_version +#include /* for __FreeBSD_version */ +#endif + #if (defined _MSC_VER && _MSC_VER < 1800) || defined __ANDROID__ || (defined __FreeBSD__ && __FreeBSD_version < 803000) double -- cgit v1.2.3 From a26856f88313679c24ec7f9f098082e0949f9d44 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 28 Mar 2019 14:01:18 +0900 Subject: Use `DBL_EPSILON` instead of `1E-12`; ref #4345 --- mrbgems/mruby-math/src/math.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'mrbgems/mruby-math/src/math.c') diff --git a/mrbgems/mruby-math/src/math.c b/mrbgems/mruby-math/src/math.c index c29ba6808..39fed6cd3 100644 --- a/mrbgems/mruby-math/src/math.c +++ b/mrbgems/mruby-math/src/math.c @@ -23,8 +23,6 @@ domain_error(mrb_state *mrb, const char *func) #include -#define MATH_TOLERANCE 1E-12 - double asinh(double x) { @@ -122,7 +120,7 @@ erf(double x) term *= xsqr/j; sum += term/(2*j+1); ++j; - } while (fabs(term/sum) > MATH_TOLERANCE); + } while (fabs(term/sum) > DBL_EPSILON); return two_sqrtpi*sum; } @@ -155,7 +153,7 @@ erfc(double x) n += 0.5; q1 = q2; q2 = b/d; - } while (fabs(q1-q2)/q2 > MATH_TOLERANCE); + } while (fabs(q1-q2)/q2 > DBL_EPSILON); return one_sqrtpi*exp(-x*x)*q2; } -- cgit v1.2.3 From 3b92b642eb3f7e3ed1b68bda86d073d310c5d131 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 28 Mar 2019 14:02:30 +0900 Subject: Break loop whem `sum==0` to avoid zero division; ref #4345 --- mrbgems/mruby-math/src/math.c | 1 + 1 file changed, 1 insertion(+) (limited to 'mrbgems/mruby-math/src/math.c') diff --git a/mrbgems/mruby-math/src/math.c b/mrbgems/mruby-math/src/math.c index 39fed6cd3..ef0dc1857 100644 --- a/mrbgems/mruby-math/src/math.c +++ b/mrbgems/mruby-math/src/math.c @@ -120,6 +120,7 @@ erf(double x) term *= xsqr/j; sum += term/(2*j+1); ++j; + if (sum == 0) break; } while (fabs(term/sum) > DBL_EPSILON); return two_sqrtpi*sum; } -- cgit v1.2.3 From 42f240796f653348ba0e0feefdec714b06cd3479 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 28 Mar 2019 14:06:01 +0900 Subject: Use `Mrbtest::FLOAT_TOLERANCE` instead of `Math::TORELANCE`; ref #4345 --- mrbgems/mruby-math/src/math.c | 6 ------ mrbgems/mruby-math/test/math.rb | 4 ++-- 2 files changed, 2 insertions(+), 8 deletions(-) (limited to 'mrbgems/mruby-math/src/math.c') diff --git a/mrbgems/mruby-math/src/math.c b/mrbgems/mruby-math/src/math.c index ef0dc1857..caa16b789 100644 --- a/mrbgems/mruby-math/src/math.c +++ b/mrbgems/mruby-math/src/math.c @@ -741,12 +741,6 @@ mrb_mruby_math_gem_init(mrb_state* mrb) mrb_define_const(mrb, mrb_math, "E", mrb_float_value(mrb, exp(1.0))); #endif -#ifdef MRB_USE_FLOAT - mrb_define_const(mrb, mrb_math, "TOLERANCE", mrb_float_value(mrb, 1e-5)); -#else - mrb_define_const(mrb, mrb_math, "TOLERANCE", mrb_float_value(mrb, 1e-12)); -#endif - mrb_define_module_function(mrb, mrb_math, "sin", math_sin, MRB_ARGS_REQ(1)); mrb_define_module_function(mrb, mrb_math, "cos", math_cos, MRB_ARGS_REQ(1)); mrb_define_module_function(mrb, mrb_math, "tan", math_tan, MRB_ARGS_REQ(1)); diff --git a/mrbgems/mruby-math/test/math.rb b/mrbgems/mruby-math/test/math.rb index e9ea07cc1..4b474f212 100644 --- a/mrbgems/mruby-math/test/math.rb +++ b/mrbgems/mruby-math/test/math.rb @@ -3,9 +3,9 @@ ## # Performs fuzzy check for equality on methods returning floats -# on the basis of the Math::TOLERANCE constant. +# on the basis of the Mrbtest::FLOAT_TOLERANCE constant. def check_float(a, b) - tolerance = Math::TOLERANCE + tolerance = Mrbtest::FLOAT_TOLERANCE a = a.to_f b = b.to_f if a.finite? and b.finite? -- cgit v1.2.3 From c96b517ea28efe7f45a91873142d6449b2a4c59c Mon Sep 17 00:00:00 2001 From: dearblue Date: Sun, 14 Jul 2019 00:29:17 +0900 Subject: Error needed/conflicts configuration The purpose is to clarify the error if there is a needed/conflicts configuration at compile time. --- mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h | 4 ++++ mrbgems/mruby-math/src/math.c | 4 ++++ mrbgems/mruby-random/src/random.c | 4 ++++ mrbgems/mruby-range-ext/src/range.c | 4 ++++ mrbgems/mruby-time/src/time.c | 4 ++++ 5 files changed, 20 insertions(+) (limited to 'mrbgems/mruby-math/src/math.c') diff --git a/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h b/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h index f17f9c57d..de2f90144 100644 --- a/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +++ b/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h @@ -6,6 +6,10 @@ #ifndef MRDBCONF_H #define MRDBCONF_H +#ifndef MRB_ENABLE_DEBUG_HOOK +# error Need 'MRB_ENABLE_DEBUG_HOOK' configuration in your 'build_config.rb' +#endif + /* configuration options: */ /* maximum size for command buffer */ #define MAX_COMMAND_LINE 1024 diff --git a/mrbgems/mruby-math/src/math.c b/mrbgems/mruby-math/src/math.c index caa16b789..35fcd0fa6 100644 --- a/mrbgems/mruby-math/src/math.c +++ b/mrbgems/mruby-math/src/math.c @@ -4,6 +4,10 @@ ** See Copyright Notice in mruby.h */ +#ifdef MRB_WITHOUT_FLOAT +# error Conflict 'MRB_WITHOUT_FLOAT' configuration in your 'build_config.rb' +#endif + #include #include diff --git a/mrbgems/mruby-random/src/random.c b/mrbgems/mruby-random/src/random.c index 68209840a..99f2b02e4 100644 --- a/mrbgems/mruby-random/src/random.c +++ b/mrbgems/mruby-random/src/random.c @@ -4,6 +4,10 @@ ** See Copyright Notice in mruby.h */ +#ifdef MRB_WITHOUT_FLOAT +# error Conflict 'MRB_WITHOUT_FLOAT' configuration in your 'build_config.rb' +#endif + #include #include #include diff --git a/mrbgems/mruby-range-ext/src/range.c b/mrbgems/mruby-range-ext/src/range.c index 1f6690904..fb76fe0d8 100644 --- a/mrbgems/mruby-range-ext/src/range.c +++ b/mrbgems/mruby-range-ext/src/range.c @@ -1,3 +1,7 @@ +#ifdef MRB_WITHOUT_FLOAT +# error Conflict 'MRB_WITHOUT_FLOAT' configuration in your 'build_config.rb' +#endif + #include #include #include diff --git a/mrbgems/mruby-time/src/time.c b/mrbgems/mruby-time/src/time.c index 34376c286..4f0afd6c6 100644 --- a/mrbgems/mruby-time/src/time.c +++ b/mrbgems/mruby-time/src/time.c @@ -4,6 +4,10 @@ ** See Copyright Notice in mruby.h */ +#ifdef MRB_WITHOUT_FLOAT +# error Conflict 'MRB_WITHOUT_FLOAT' configuration in your 'build_config.rb' +#endif + #include #include #include -- cgit v1.2.3