mruby  2.0.1
mruby is the lightweight implementation of the Ruby language
Macros | Functions
numeric.h File Reference

More...

#include "common.h"
#include <stdint.h>
#include <float.h>
Include dependency graph for numeric.h:

Go to the source code of this file.

Macros

#define TYPED_POSFIXABLE(f, t)   ((f) <= (t)MRB_INT_MAX)
 Numeric class and it's sub-classes. More...
 
#define TYPED_NEGFIXABLE(f, t)   ((f) >= (t)MRB_INT_MIN)
 
#define TYPED_FIXABLE(f, t)   (TYPED_POSFIXABLE(f,t) && TYPED_NEGFIXABLE(f,t))
 
#define POSFIXABLE(f)   TYPED_POSFIXABLE(f,mrb_int)
 
#define NEGFIXABLE(f)   TYPED_NEGFIXABLE(f,mrb_int)
 
#define FIXABLE(f)   TYPED_FIXABLE(f,mrb_int)
 
#define FIXABLE_FLOAT(f)   TYPED_FIXABLE(f,mrb_float)
 
#define __has_builtin(x)   0
 
#define MRB_UINT_MAKE2(n)   uint ## n ## _t
 
#define MRB_UINT_MAKE(n)   MRB_UINT_MAKE2(n)
 
#define mrb_uint   MRB_UINT_MAKE(MRB_INT_BIT)
 
#define MRB_INT_OVERFLOW_MASK   ((mrb_uint)1 << (MRB_INT_BIT - 1 - MRB_FIXNUM_SHIFT))
 
#define MRB_FLT_RADIX   FLT_RADIX
 
#define MRB_FLT_MANT_DIG   DBL_MANT_DIG
 
#define MRB_FLT_EPSILON   DBL_EPSILON
 
#define MRB_FLT_DIG   DBL_DIG
 
#define MRB_FLT_MIN_EXP   DBL_MIN_EXP
 
#define MRB_FLT_MIN   DBL_MIN
 
#define MRB_FLT_MIN_10_EXP   DBL_MIN_10_EXP
 
#define MRB_FLT_MAX_EXP   DBL_MAX_EXP
 
#define MRB_FLT_MAX   DBL_MAX
 
#define MRB_FLT_MAX_10_EXP   DBL_MAX_10_EXP
 

Functions

mrb_value mrb_flo_to_fixnum (mrb_state *mrb, mrb_value val)
 
mrb_value mrb_fixnum_to_str (mrb_state *mrb, mrb_value x, mrb_int base)
 
mrb_value mrb_float_to_str (mrb_state *mrb, mrb_value x, const char *fmt)
 
mrb_float mrb_to_flo (mrb_state *mrb, mrb_value x)
 
mrb_value mrb_int_value (mrb_state *mrb, mrb_float f)
 
mrb_value mrb_num_plus (mrb_state *mrb, mrb_value x, mrb_value y)
 
mrb_value mrb_num_minus (mrb_state *mrb, mrb_value x, mrb_value y)
 
mrb_value mrb_num_mul (mrb_state *mrb, mrb_value x, mrb_value y)
 
static mrb_bool mrb_int_add_overflow (mrb_int augend, mrb_int addend, mrb_int *sum)
 
static mrb_bool mrb_int_sub_overflow (mrb_int minuend, mrb_int subtrahend, mrb_int *difference)
 
static mrb_bool mrb_int_mul_overflow (mrb_int multiplier, mrb_int multiplicand, mrb_int *product)
 

Detailed Description

See Copyright Notice in mruby.h

Macro Definition Documentation

◆ TYPED_POSFIXABLE

#define TYPED_POSFIXABLE (   f,
 
)    ((f) <= (t)MRB_INT_MAX)

Numeric class and it's sub-classes.

Integer, Float and Fixnum