diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-10-04 18:10:41 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-10-14 19:23:25 +0900 |
commit | 5ccb625fbbd1e774636a9fdbe0bf1c3d38e085d5 (patch) | |
tree | 23a8d2af84fed1b1f080953a5a1eab0b73c3ea8e /internal/numeric.h | |
parent | ee8bcbf40578c0c4e60063a3e0c86439a6891131 (diff) | |
download | ruby-5ccb625fbbd1e774636a9fdbe0bf1c3d38e085d5.tar.gz |
Use `roomof` macro for rounding up divisions
Diffstat (limited to 'internal/numeric.h')
-rw-r--r-- | internal/numeric.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/internal/numeric.h b/internal/numeric.h index 19069cb3bc..89bc54b307 100644 --- a/internal/numeric.h +++ b/internal/numeric.h @@ -35,12 +35,16 @@ enum ruby_num_rounding_mode { RUBY_NUM_ROUND_DEFAULT = ROUND_DEFAULT, }; +/* same as internal.h */ +#define numberof(array) ((int)(sizeof(array) / sizeof((array)[0]))) +#define roomof(x, y) (((x) + (y) - 1) / (y)) +#define type_roomof(x, y) roomof(sizeof(x), sizeof(y)) + #if SIZEOF_DOUBLE <= SIZEOF_VALUE typedef double rb_float_value_type; #else typedef struct { - VALUE values[(SIZEOF_DOUBLE + SIZEOF_VALUE - 1) / SIZEOF_VALUE]; - /* roomof() needs internal.h, and the order of some macros may matter */ + VALUE values[roomof(SIZEOF_DOUBLE, SIZEOF_VALUE)]; } rb_float_value_type; #endif |