From: Serge Petrenko <sergepetrenko@tarantool.org> To: Konstantin Osipov <kostja@tarantool.org> Cc: Vladimir Davydov <vdavydov.dev@gmail.com>, tarantool-patches@freelists.org Subject: Re: [PATCH v2 7/8] decimal: add conversions to (u)int64_t Date: Tue, 13 Aug 2019 17:18:50 +0300 [thread overview] Message-ID: <999C425D-CF87-4D4D-B31D-F350C99EE8A6@tarantool.org> (raw) In-Reply-To: <20190812213914.GJ32337@atlas> [-- Attachment #1: Type: text/plain, Size: 2082 bytes --] > 13 авг. 2019 г., в 0:39, Konstantin Osipov <kostja@tarantool.org> написал(а): > > * Serge Petrenko <sergepetrenko@tarantool.org <mailto:sergepetrenko@tarantool.org>> [19/08/08 15:01]: >> Update decNumber library, add methods to convert decimals to uint64_t >> and int64_t, add unit tests. >> Also replace decimal_round() function with decimal_round_with_mode() to >> allow setting rounding mode. >> We need to round with mode DEC_ROUND_DOWN in to_int64 conversions in >> order to be consistent with double to int conversions. >> It will be needed to compute hints for decimal fields. >> >> Prerequisite #4333 >> --- >> src/lib/core/decimal.c | 57 +++++++++++++++++++++++++++++-- >> src/lib/core/decimal.h | 19 +++++++++++ >> test/unit/decimal.c | 66 ++++++++++++++++++++++++++++++++++- >> test/unit/decimal.result | 74 ++++++++++++++++++++++++++++++++++++++-- >> third_party/decNumber | 2 +- >> 5 files changed, 210 insertions(+), 8 deletions(-) >> >> diff --git a/src/lib/core/decimal.c b/src/lib/core/decimal.c >> index 840aa5dfe..19b5096ed 100644 >> --- a/src/lib/core/decimal.c >> +++ b/src/lib/core/decimal.c >> @@ -157,6 +157,45 @@ decimal_to_string(const decimal_t *dec) >> return buf; >> } >> >> +static decimal_t * >> +decimal_to_integer(decimal_t *dec) > > Why do you think it's the best hint option? Why not keep 2-5 decimal > digits in a hint, as most currencies use? Would it slow down the > hing making process? You call decimalRescale anyway, it seems. It wouldn’t slow down hint calculation (timing difference is tiny). It will slow down decimal comparison with doubles and integers, though. We will get faster comparison for decimals that differ in first 2-5 fractional digits at the cost of having to cast every double and int to decimal for comparison with decimals. Is this worth it? > > Is decimalRescale optimized to be a no-op if there is no need to > rescale? Yes > > -- > Konstantin Osipov, Moscow, Russia -- Serge Petrenko sergepetrenko@tarantool.org [-- Attachment #2: Type: text/html, Size: 10953 bytes --]
next prev parent reply other threads:[~2019-08-13 14:18 UTC|newest] Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-08-08 11:55 [PATCH v2 0/8] Decimal indices Serge Petrenko 2019-08-08 11:55 ` [PATCH v2 1/8] lua: fix decimal comparison with nil Serge Petrenko 2019-08-12 21:16 ` Konstantin Osipov 2019-08-14 11:00 ` Vladimir Davydov 2019-08-14 22:17 ` Konstantin Osipov 2019-08-08 11:55 ` [PATCH v2 2/8] decimal: fix encoding numbers with positive exponent Serge Petrenko 2019-08-12 21:18 ` Konstantin Osipov 2019-08-13 9:00 ` [tarantool-patches] " Serge Petrenko 2019-08-14 22:21 ` Konstantin Osipov 2019-08-14 11:56 ` Vladimir Davydov 2019-08-08 11:55 ` [PATCH v2 3/8] lua/pickle: fix a typo Serge Petrenko 2019-08-12 21:18 ` Konstantin Osipov 2019-08-14 11:12 ` Vladimir Davydov 2019-08-14 11:15 ` Serge Petrenko 2019-08-08 11:55 ` [PATCH v2 4/8] lua: rework luaL_field types to support msgpack extensions Serge Petrenko 2019-08-12 21:23 ` Konstantin Osipov 2019-08-13 13:15 ` [tarantool-patches] " Serge Petrenko 2019-08-14 22:23 ` Konstantin Osipov 2019-08-15 8:27 ` Serge Petrenko 2019-08-16 8:06 ` Konstantin Osipov 2019-08-08 11:55 ` [PATCH v2 5/8] box: rework field_def and tuple_compare to work with mp_field_type instead of mp_type Serge Petrenko 2019-08-12 21:28 ` Konstantin Osipov 2019-08-08 11:55 ` [PATCH v2 6/8] decimal: allow to encode/decode decimals as MsgPack Serge Petrenko 2019-08-12 21:29 ` Konstantin Osipov 2019-08-12 21:34 ` Konstantin Osipov 2019-08-13 14:01 ` Serge Petrenko 2019-08-14 22:25 ` Konstantin Osipov 2019-08-08 11:55 ` [PATCH v2 7/8] decimal: add conversions to (u)int64_t Serge Petrenko 2019-08-12 21:39 ` Konstantin Osipov 2019-08-13 14:18 ` Serge Petrenko [this message] 2019-08-14 22:26 ` Konstantin Osipov 2019-08-14 22:29 ` Konstantin Osipov 2019-08-08 11:55 ` [PATCH v2 8/8] decimal: allow to index decimals Serge Petrenko 2019-08-08 13:42 ` Serge Petrenko 2019-08-12 21:41 ` Konstantin Osipov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=999C425D-CF87-4D4D-B31D-F350C99EE8A6@tarantool.org \ --to=sergepetrenko@tarantool.org \ --cc=kostja@tarantool.org \ --cc=tarantool-patches@freelists.org \ --cc=vdavydov.dev@gmail.com \ --subject='Re: [PATCH v2 7/8] decimal: add conversions to (u)int64_t' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox