Ignore:
Timestamp:
Jul 9, 2020, 8:51:43 AM (4 years ago)
Author:
coas-nagasima
Message:

mrubyを2.1.1に更新

Location:
EcnlProtoTool/trunk/mruby-2.1.1
Files:
1 edited
1 moved

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/mruby-2.1.1/mrbgems/mruby-math/src/math.c

    r331 r439  
    55*/
    66
     7#ifdef MRB_WITHOUT_FLOAT
     8# error Math conflicts 'MRB_WITHOUT_FLOAT' configuration in your 'build_config.rb'
     9#endif
     10
    711#include <mruby.h>
    812#include <mruby/array.h>
     
    1519  struct RClass *math = mrb_module_get(mrb, "Math");
    1620  struct RClass *domainerror = mrb_class_get_under(mrb, math, "DomainError");
    17   mrb_value str = mrb_str_new_cstr(mrb, func);
    18   mrb_raisef(mrb, domainerror, "Numerical argument is out of domain - %S", str);
     21  mrb_raisef(mrb, domainerror, "Numerical argument is out of domain - %s", func);
    1922}
    2023
     
    2326
    2427#include <float.h>
    25 
    26 #define MATH_TOLERANCE 1E-12
    2728
    2829double
     
    123124    sum  += term/(2*j+1);
    124125    ++j;
    125   } while (fabs(term/sum) > MATH_TOLERANCE);
     126    if (sum == 0) break;
     127  } while (fabs(term/sum) > DBL_EPSILON);
    126128  return two_sqrtpi*sum;
    127129}
     
    156158    q1 = q2;
    157159    q2 = b/d;
    158   } while (fabs(q1-q2)/q2 > MATH_TOLERANCE);
     160  } while (fabs(q1-q2)/q2 > DBL_EPSILON);
    159161  return one_sqrtpi*exp(-x*x)*q2;
    160162}
    161163
     164#endif
     165
     166#if defined __FreeBSD__ && !defined __FreeBSD_version
     167#include <osreldate.h> /* for __FreeBSD_version */
    162168#endif
    163169
     
    487493{
    488494  mrb_float x, base;
    489   int argc;
     495  mrb_int argc;
    490496
    491497  argc = mrb_get_args(mrb, "f|f", &x, &base);
     
    658664
    659665  mrb_get_args(mrb, "fi", &x, &i);
    660   x = ldexp(x, i);
     666  x = ldexp(x, (int)i);
    661667
    662668  return mrb_float_value(mrb, x);
     
    737743#else
    738744  mrb_define_const(mrb, mrb_math, "E", mrb_float_value(mrb, exp(1.0)));
    739 #endif
    740 
    741 #ifdef MRB_USE_FLOAT
    742   mrb_define_const(mrb, mrb_math, "TOLERANCE", mrb_float_value(mrb, 1e-5));
    743 #else
    744   mrb_define_const(mrb, mrb_math, "TOLERANCE", mrb_float_value(mrb, 1e-12));
    745745#endif
    746746
Note: See TracChangeset for help on using the changeset viewer.