Changeset 439 for EcnlProtoTool/trunk/mruby-2.1.1/include/mruby/numeric.h
- Timestamp:
- Jul 9, 2020, 8:51:43 AM (4 years ago)
- 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 class1 /** 2 ** @file mruby/numeric.h - Numeric, Integer, Float, Fixnum class 3 3 ** 4 4 ** See Copyright Notice in mruby.h … … 17 17 MRB_BEGIN_DECL 18 18 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 23 26 #ifdef MRB_INT64 24 #define FIXABLE_FLOAT(f) FIXABLE((mrb_int)(f))27 #define FIXABLE_FLOAT(f) ((f)>=-9223372036854775808.0 && (f)<9223372036854775808.0) 25 28 #else 26 #define FIXABLE_FLOAT(f) FIXABLE(f) 29 #define FIXABLE_FLOAT(f) TYPED_FIXABLE(f,mrb_float) 30 #endif 27 31 #endif 28 32 33 #ifndef MRB_WITHOUT_FLOAT 29 34 MRB_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 36 MRB_API mrb_value mrb_fixnum_to_str(mrb_state *mrb, mrb_value x, mrb_int base); 31 37 /* ArgumentError if format string doesn't match /%(\.[0-9]+)?[aAeEfFgG]/ */ 38 #ifndef MRB_WITHOUT_FLOAT 32 39 MRB_API mrb_value mrb_float_to_str(mrb_state *mrb, mrb_value x, const char *fmt); 33 40 MRB_API mrb_float mrb_to_flo(mrb_state *mrb, mrb_value x); 41 MRB_API mrb_value mrb_int_value(mrb_state *mrb, mrb_float f); 42 #endif 34 43 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); 44 MRB_API mrb_value mrb_num_plus(mrb_state *mrb, mrb_value x, mrb_value y); 45 MRB_API mrb_value mrb_num_minus(mrb_state *mrb, mrb_value x, mrb_value y); 46 MRB_API mrb_value mrb_num_mul(mrb_state *mrb, mrb_value x, mrb_value y); 39 47 40 48 #ifndef __has_builtin … … 153 161 #endif 154 162 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 155 193 MRB_END_DECL 156 194
Note:
See TracChangeset
for help on using the changeset viewer.