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/include/mruby/numeric.h

    r331 r439  
    1 /*
    2 ** mruby/numeric.h - Numeric, Integer, Float, Fixnum class
     1/**
     2** @file mruby/numeric.h - Numeric, Integer, Float, Fixnum class
    33**
    44** See Copyright Notice in mruby.h
     
    1717MRB_BEGIN_DECL
    1818
    19 #define POSFIXABLE(f) ((f) <= MRB_INT_MAX)
    20 #define NEGFIXABLE(f) ((f) >= MRB_INT_MIN)
    21 #define FIXABLE(f) (POSFIXABLE(f) && NEGFIXABLE(f))
    22 
     19#define TYPED_POSFIXABLE(f,t) ((f) <= (t)MRB_INT_MAX)
     20#define TYPED_NEGFIXABLE(f,t) ((f) >= (t)MRB_INT_MIN)
     21#define TYPED_FIXABLE(f,t) (TYPED_POSFIXABLE(f,t) && TYPED_NEGFIXABLE(f,t))
     22#define POSFIXABLE(f) TYPED_POSFIXABLE(f,mrb_int)
     23#define NEGFIXABLE(f) TYPED_NEGFIXABLE(f,mrb_int)
     24#define FIXABLE(f) TYPED_FIXABLE(f,mrb_int)
     25#ifndef MRB_WITHOUT_FLOAT
    2326#ifdef MRB_INT64
    24 #define FIXABLE_FLOAT(f) FIXABLE((mrb_int)(f))
     27#define FIXABLE_FLOAT(f) ((f)>=-9223372036854775808.0 && (f)<9223372036854775808.0)
    2528#else
    26 #define FIXABLE_FLOAT(f) FIXABLE(f)
     29#define FIXABLE_FLOAT(f) TYPED_FIXABLE(f,mrb_float)
     30#endif
    2731#endif
    2832
     33#ifndef MRB_WITHOUT_FLOAT
    2934MRB_API mrb_value mrb_flo_to_fixnum(mrb_state *mrb, mrb_value val);
    30 MRB_API mrb_value mrb_fixnum_to_str(mrb_state *mrb, mrb_value x, int base);
     35#endif
     36MRB_API mrb_value mrb_fixnum_to_str(mrb_state *mrb, mrb_value x, mrb_int base);
    3137/* ArgumentError if format string doesn't match /%(\.[0-9]+)?[aAeEfFgG]/ */
     38#ifndef MRB_WITHOUT_FLOAT
    3239MRB_API mrb_value mrb_float_to_str(mrb_state *mrb, mrb_value x, const char *fmt);
    3340MRB_API mrb_float mrb_to_flo(mrb_state *mrb, mrb_value x);
     41MRB_API mrb_value mrb_int_value(mrb_state *mrb, mrb_float f);
     42#endif
    3443
    35 mrb_value mrb_fixnum_plus(mrb_state *mrb, mrb_value x, mrb_value y);
    36 mrb_value mrb_fixnum_minus(mrb_state *mrb, mrb_value x, mrb_value y);
    37 mrb_value mrb_fixnum_mul(mrb_state *mrb, mrb_value x, mrb_value y);
    38 mrb_value mrb_num_div(mrb_state *mrb, mrb_value x, mrb_value y);
     44MRB_API mrb_value mrb_num_plus(mrb_state *mrb, mrb_value x, mrb_value y);
     45MRB_API mrb_value mrb_num_minus(mrb_state *mrb, mrb_value x, mrb_value y);
     46MRB_API mrb_value mrb_num_mul(mrb_state *mrb, mrb_value x, mrb_value y);
    3947
    4048#ifndef __has_builtin
     
    153161#endif
    154162
     163#ifndef MRB_WITHOUT_FLOAT
     164# include <stdint.h>
     165# include <float.h>
     166
     167# define MRB_FLT_RADIX          FLT_RADIX
     168
     169# ifdef MRB_USE_FLOAT
     170#  define MRB_FLT_MANT_DIG      FLT_MANT_DIG
     171#  define MRB_FLT_EPSILON       FLT_EPSILON
     172#  define MRB_FLT_DIG           FLT_DIG
     173#  define MRB_FLT_MIN_EXP       FLT_MIN_EXP
     174#  define MRB_FLT_MIN           FLT_MIN
     175#  define MRB_FLT_MIN_10_EXP    FLT_MIN_10_EXP
     176#  define MRB_FLT_MAX_EXP       FLT_MAX_EXP
     177#  define MRB_FLT_MAX           FLT_MAX
     178#  define MRB_FLT_MAX_10_EXP    FLT_MAX_10_EXP
     179
     180# else /* not MRB_USE_FLOAT */
     181#  define MRB_FLT_MANT_DIG      DBL_MANT_DIG
     182#  define MRB_FLT_EPSILON       DBL_EPSILON
     183#  define MRB_FLT_DIG           DBL_DIG
     184#  define MRB_FLT_MIN_EXP       DBL_MIN_EXP
     185#  define MRB_FLT_MIN           DBL_MIN
     186#  define MRB_FLT_MIN_10_EXP    DBL_MIN_10_EXP
     187#  define MRB_FLT_MAX_EXP       DBL_MAX_EXP
     188#  define MRB_FLT_MAX           DBL_MAX
     189#  define MRB_FLT_MAX_10_EXP    DBL_MAX_10_EXP
     190# endif /* MRB_USE_FLOAT */
     191#endif /* MRB_WITHOUT_FLOAT */
     192
    155193MRB_END_DECL
    156194
Note: See TracChangeset for help on using the changeset viewer.