Re: [Cbor] Implementing float->int numeric reduction
"lgl island-resort.com" <lgl@island-resort.com> Tue, 15 August 2023 19:02 UTC
Return-Path: <lgl@island-resort.com>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id ADF3FC1519BB for <cbor@ietfa.amsl.com>; Tue, 15 Aug 2023 12:02:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.908
X-Spam-Level:
X-Spam-Status: No, score=-1.908 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ScrO3RU76u0w for <cbor@ietfa.amsl.com>; Tue, 15 Aug 2023 12:02:21 -0700 (PDT)
Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2100.outbound.protection.outlook.com [40.107.236.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A9D67C16952A for <cbor@ietf.org>; Tue, 15 Aug 2023 12:00:49 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Pwp7xwQVATxeoEVT/6zVWP/XF/vGdelrdWuUerLzc03uryD1qOynA/ky5o+U6GOE76niDm8TFfk8ETj2NzKF9MlvG6Qqovwv9xWIhlxh1AXYtj5UwdOMsVx+sxn6iB+/QSgpiOGR3mQjL7uQM2IhqC2Yg0Rw/2YAsElFHF/XlfkCThfdgaGYCeBWomqdHHcH/H8x9llVKA+9j9HyREWrc/eAfKjWyXv+Y+TUHqt1GtJi7rIlmbpQuc0B8lhKezchq6N/I55njWQoaoxJbkXIvgo3AWk24dYFP8QN06ZtzEF0r626brEnsFoxaWJk4Wu9TgmC9HWVHizNIZdO/P/9tw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=sUGeF0r8upBD+nt4I8S/3h/hLYuXPDasS4ynvYwVe6g=; b=dLIY3Qa9j+IOj02GeLED2Tj7NjuYxfuwKK3FpyfplbgLrdglhgcaDYx6zTyTxGvyQwGNkNxm3Q2DS0qHUs6RN0yRfOzWzHHOqMc79mV4W28AqZlyfRtg8y5dGhNJRnDShcTYcmIw0j9eimxKWUlncoY/S58hAmLvYqzEHue6LWbLgOMCkFOVIhjShmnA5s7W/jWVNa2oDk2wgvwLC49jFf91JryNNtHqbRF8t+GdGdy426S2TsRKC54aTnG2iAlWdLS//nQWNCB94N3Ij1B47G9WLaDh3Yt4daem/3q1g7CWQ3hxej7CpZX87ZMS+bIWmYlsHZoID32OfGUpSoWMzQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=island-resort.com; dmarc=pass action=none header.from=island-resort.com; dkim=pass header.d=island-resort.com; arc=none
Received: from PH7PR22MB3092.namprd22.prod.outlook.com (2603:10b6:510:13b::8) by SA1PR22MB3097.namprd22.prod.outlook.com (2603:10b6:806:22a::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.30; Tue, 15 Aug 2023 19:00:45 +0000
Received: from PH7PR22MB3092.namprd22.prod.outlook.com ([fe80::f317:e4d1:7e1e:3934]) by PH7PR22MB3092.namprd22.prod.outlook.com ([fe80::f317:e4d1:7e1e:3934%3]) with mapi id 15.20.6652.029; Tue, 15 Aug 2023 19:00:45 +0000
From: "lgl island-resort.com" <lgl@island-resort.com>
To: Anders Rundgren <anders.rundgren.net@gmail.com>
CC: "cbor@ietf.org" <cbor@ietf.org>
Thread-Topic: [Cbor] Implementing float->int numeric reduction
Thread-Index: AQHZz59UvtB7Lwv8pEW/lbdrfV/KOK/rqMSAgAANj4A=
Date: Tue, 15 Aug 2023 19:00:44 +0000
Message-ID: <BEAFD785-D282-4C5C-AA7D-FB36970D09D1@island-resort.com>
References: <0EBCC710-F7BA-474E-8A6D-D67015FD5EC7@island-resort.com> <dd9bc427-31a7-6d51-2fb1-d02e1b2824ff@gmail.com>
In-Reply-To: <dd9bc427-31a7-6d51-2fb1-d02e1b2824ff@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=island-resort.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PH7PR22MB3092:EE_|SA1PR22MB3097:EE_
x-ms-office365-filtering-correlation-id: fae6fd5e-d9c9-475a-ee59-08db9dc1ee01
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: ocgVdPghOhJB1I7ld61sEWxFNdt0l6WjN3CzrjsMyfaNdu8oj9dEGzIUBQLVQ1RX2vKeDeXitwCZUMDRcLM00thFdtD+oWIAEkIF3jtx+65itlTb9zFp96JU1kXLuZs0rpv5yNYLnCTbNUH356Gqcu2jP+sLmzLa8PNhK4Y6XS5jdNAtZdkKwxLgTCTs3tPcmlSFYLFWmsre7ORWaKx5+GzO6t+Batl/V+RzRtMkYtVWh+ekjqF52QIWlNDzOXo+ZjAJel/nsfCzBLjkB06AZk5tpthpImdb5hdOfEdQNCDJUCvTLq0Awl/coGsrg3k+Wf2L56ShUzoWLCZBBrt/s0F25TItz8xHslVp9hK+Za58VrvAacvRFXxeVsW2x3ioz7SszlDmQmm0hFWkENyrH6CCB7bCwqr5dc67X3+Kl+GX05FWp/xPQZGQ+HpjDhklH3dLRobalxA4U15ieSIEzECjSPyiCPwpEllLjBnv22J41smqbq09uk0Y+shmDAdm7SHTJu3neP6k8WrJq8981qENyobtbbwlGuZuVdL9jbQ6cTSOfnoesm52x9Pt3zFWdWnTn80xELzv0wWhBSKcfoB8607ta0SSTS4wOpyK6DmxhwBrY+s9K2PdsJqJ/tAx8w9Pox4CskqBoupY85fMSg==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR22MB3092.namprd22.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366004)(346002)(39830400003)(136003)(376002)(396003)(1800799009)(186009)(451199024)(66446008)(91956017)(966005)(316002)(86362001)(5660300002)(71200400001)(53546011)(66946007)(83380400001)(2616005)(26005)(6512007)(6506007)(6916009)(66476007)(38100700002)(66556008)(76116006)(4326008)(2906002)(33656002)(41300700001)(38070700005)(6486002)(478600001)(8936002)(36756003)(64756008)(8676002)(122000001)(45980500001); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: AXv0B/dYQtiM/z8CArurSFejnHZzzUOVy6X8G3OIawka1duo6a2cxEFwcvpJEq8O+hTHMZ6Znji7IJ7wJgx5b4Q8lhWWW5bSvo0uDkiBLb973HhdLLqHjXuGb+5Ebbb4CLZPIIFkqFXR2M0LmD3OqbUI+NHQ3OoJw+V8zesZM5u/9mlKfkXSknKZxyx4wHL/QiFPDh/NNNoWSm11KlKmBVpFb9VDEQsSjzIH6y/K7d7xI4hxliSwd1FQOjUAqiXD1tMdkgh7FRAPVstJWp3XnnEum9hRKrbfGIzNEaRjsVEQX2b6cz4MrRGsdgdX0ek3Sm7WfJltIvCCgWcRmiu+finkTAGAemQOLwC5elUWAJSAzIRwnkx8QP/rBmgws6adU6YzrRgmLC+SnycsiPuDdcfyHMoQe6fiIpXNNy7XPipYSY7OFa1azbr9Oj99uTTyqs3KEa7OQWxWnnmG3JN1V7yM3w9EcQdtAG7ZmHvsK4YtWMkoNSR1xWXM9/UCi5+d0/OhK3aOK/v7XJeGLEiD1nNOCqj4jm2Zhp73sBJBllww/5NSvIGSyretVK9ER0zdBPULFx3qiIdx/0ZvqSlhOoLgBdFXg1oqQuNIGSsdSNnGdbVjN1MuIP9xY8f/Pg+p1Vj7gshBJejMiwpUnpIy9YlZnLG7XmVvLDmiLddlIWLJLWr4NlSARz36T0ciKNyK/T/TPgpktqNZWVm3oU1GdhqaY2UkOFQYjim2+Y8ujlh8yiEA+ZmQulGIykgv+Gs6Tj3Dhd24S3Cd1MRT7a+AunFoJwv6/KLF8rgDEC+oID1g7rKxt6rhDCmvrkxS24QfEA8DdVvlTfLvvvxPv77nSk0LpSzgGAqdpsStvts5NM8+5pGvyaaa1RR6yw3GsVapAVezcvQnN05bt4wWYmVQ/a4BSfJJLPIunTvtjkRveGcqzAFhr6CWY3iyVZntbw4O52aeg5fbE8cC9LCvvXt1Loi6d0g1HT1rYd78F8HXXX8rH/5G+fdwIfMrwERcndEYyZYHSqW7vO45ownQCeetrl45FBbz5XK2X7JIasRonbJploz3yhyhlRlvJ0fJv56HhnVOxx8FAo1+bHyxFVFWQ65xZt1pgMIbriHe3j81PMCZK8OpdK212PFEfnKWD9jvFWHxU+gkqaHCNDUJVAJJwR+ZD/b9/ByCj0Jh291dHTKqcDKcKNUxvPQYIsdeqCEJ+yLX5TD9WRQB1J8uieJc2ES+Ee0i/FjK9S9YQTOMUzwPOMoTgE0iM94cor4eyTtxZIQKYMx4J2dGDDwXK+ZTVGhO/l+Xa77E7qZCm1MjfxE1cjLS+6la7k0POz0wTooSiWaIu9IIYNXxqXkn7xkBI2Ehj3vWwd+Qyl5cIZ2lVN9W+ec72swLcVGVZjytjby2pwAU2GOGyZtQrLFd5JjxJNUVqEZTFsZB8v8YFR8/A9JcDM/CXg7HsNZymViiZ4fNwk3vBfdsnYKVfIQw7rja/owcPz/2xXS22JepWZdDWoN8IVjGuqNLs6xUi73ghLmPKQDSdSb036ykpfYkVBi7TzYfSJRgXsGRJ9u9w3EqJmIz/V/849tOykbR/biaANY1MuHgG+1E2zD6XSoAWydx1w==
Content-Type: text/plain; charset="utf-8"
Content-ID: <7B9F8518523F544C858FA1D45DF1B286@namprd22.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: island-resort.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PH7PR22MB3092.namprd22.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fae6fd5e-d9c9-475a-ee59-08db9dc1ee01
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Aug 2023 19:00:44.9818 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: ad4b5b91-a549-4435-8c42-a30bf94d14a8
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: xGfMlDzAiuzY9t+3yLsSc9v+jmbLDou1nYqyesZxr8BwbixGzNlPlhmjvjtrkaggfKGwgkzC30hK4aZytSmiyQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR22MB3097
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/aTFl2XGgQB8QWz7iQQsSGfnpbMY>
Subject: Re: [Cbor] Implementing float->int numeric reduction
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 15 Aug 2023 19:02:26 -0000
How about calling it “numeric determinism” rather than “numeric reduction”? > On Aug 15, 2023, at 11:12 AM, Anders Rundgren <anders.rundgren.net@gmail.com> wrote: > > Thanx Laurence, this was interesting. IEEE 754 is pure magic :) > > In my implementations of CBOR.Int in JavaScript I have used 2^53-1 (Number.MAX_SAFE_INTEGER) as the limit because above that number there are (mostly) gaps. Yes, 53 bits of sigificand in a double. But note for determinism we all have to do exactly the same thing. > 2^63 (1152921504606846976.0) is one of those interesting numbers. However, numeric "reduction" doesn't work particularly well for this number since the integer variant is longer. > If numeric reduction actually is useful, shouldn't the length of the resulting CBOR also be a part of the equation? I believe the main purpose is determinism. Every number has only one representation. Sometimes the reduction does result in smaller size, but that’s not the purpose. Numeric reduction is “actually useful” for its determinism. You are right that we could add a rule that the float/double representation must be used if it is smaller. That would make many big whole numbers half the size. It would always be values UINT32_MAX (which need a 64-bit int) that can be represented in a single-precision float. It would be ones were the right most 41 bits are zero. It would still be deterministic too. It’s probably not too difficult to describe and implement. My gut reaction is “no” because it is just the ones were the right-most 41 bits are zero (64 - 23 == 41). It’s not worth it for the complexity and likely confusion. LL > > Float: fa5f000000 > Integ: 1b8000000000000000 > > Anders > > On 2023-08-15 19:38, lgl island-resort.com wrote: >> I’ve come to understand that all whole integers are precisely representable in IEEE 754. No rounding is needed to convert to CBOR type 0/1. >> I also figured out that you can look inside IEEE 754 with shifts, masks and a little loop (no float HW or lib) to check if a value is a whole integer. >> Details: >> I knew that some numbers like 0.10 couldn't be represented exactly as a float, only something like 0.10000000149. I didn’t know whether all whole integers could be represented exactly. If they couldn’t be represented exactly, rounding would be required and that might not be done exactly the same everywhere. Numeric reduction would be not exactly the same everywhere. >> Then I read aboutbugs in Intel chips <https://randomascii.wordpress.com/2014/01/27/theres-only-four-billion-floatsso-test-them-all/> that manifest in ceilf(), a candidate function for the whole integer check. >> I had to look deeper for the confidence that the CPU float instructions would give *exactly* the same result on hundreds of CPUs from Intel, Atmel, Apple, Infineon… >> Here’s an interesting result -- all you have to do is check that the number of bits used in the significand are less than the exponent! >> For example take the representation of 3: >> - The exponent is 1 which means the multiply by 2 (shift by 1) >> - The significand uses one bit with a value of 1/2 (plus 1 is added) >> - 1 1/2 multiplied by 2 is 3 >> Or 9: >> - The exponent is 3 which means multiply by 8 (shift by 3) >> - The significand uses three bits to just be 1/8 (the bits for 1/2 and 1/4 are 0; plus 1 is always added) >> - 1 1/8 multiplied by 8 is 9 >> This is a nice explanation of the float format <https://softwareengineering.stackexchange.com/questions/215065/can-anyone-explain-representation-of-float-in-memory>. >> You can implement this <https://github.com/laurencelundblade/float_reduction>without using floating-point HW or libraries — convert the float bits to a uint32_t and do some shifts, masks and a little loop. >> This also tells me that all whole integers 1, 2, 3,… UINT32_MAX,... are not like 0.10. They can all be represented exactly in IEEE 754. This is probably by design. That makes me very confident that all the HW/SW that convert to float will do exactly the same thing. >> Here’s 6 ways to check that a float is a whole integer (also see here <https://stackoverflow.com/questions/5796983/checking-if-float-is-an-integer>): >> ceilf(f) == f >> floorf(f) == f >> rint(f) == f >> intnearby(f) == f >> cast to int and back to float and see the same value (the compiler uses floating-point HW to implement this) >> my method of checking significand bits used relative to the exponent >> Note that probably the same floating-point HW and SW underlies all the languages on a given platform. You get the same implementation working in C, Rust, Swift, Java, Python... >> I’ve implemented all of these six and confirmed they give the same result for all single precision float values (there’s only 2^32 of them) on Intel with MacOS. You can get the implementation here <https://github.com/laurencelundblade/float_reduction> and run it on your platform if you want. >> Testing all the double values takes too long, but they work the same. >> Ceilf() and floor() compile down to one inline instruction on Intel and are probably the least code. >> The cast method only works for floats less that UINT32_MAX. This is OK for CBOR numeric reduction, but it is not a universal solution like all the others. >> Additionally, here’s a good article ondeterminism in floating-point <https://randomascii.wordpress.com/2013/07/16/floating-point-determinism/>. >> LL >> _______________________________________________ >> CBOR mailing list >> CBOR@ietf.org >> https://www.ietf.org/mailman/listinfo/cbor >
- [Cbor] Implementing float->int numeric reduction lgl island-resort.com
- Re: [Cbor] Implementing float->int numeric reduct… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… lgl island-resort.com
- Re: [Cbor] Implementing float->int numeric reduct… Carsten Bormann
- Re: [Cbor] Implementing float->int numeric reduct… Carsten Bormann
- Re: [Cbor] Implementing float->int numeric reduct… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… Wolf McNally
- Re: [Cbor] Implementing float->int numeric reduct… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… Wolf McNally
- Re: [Cbor] Implementing float->int numeric reduct… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… Wolf McNally
- Re: [Cbor] Implementing float->int numeric reduct… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… Carsten Bormann
- Re: [Cbor] Implementing float->int numeric reduct… Wolf McNally
- Re: [Cbor] Implementing float->int numeric reduct… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… Carsten Bormann
- Re: [Cbor] Implementing float->int numeric reduct… Carsten Bormann
- Re: [Cbor] Implementing float->int numeric reduct… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… Carsten Bormann
- Re: [Cbor] Implementing float->int numeric reduct… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… Carsten Bormann
- Re: [Cbor] Implementing float->int numeric reduct… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… Carsten Bormann
- Re: [Cbor] Implementing float->int numeric reduct… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… Carsten Bormann
- Re: [Cbor] Implementing float->int numeric reduct… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… Carsten Bormann
- Re: [Cbor] Implementing float->int numeric reduct… lgl island-resort.com
- Re: [Cbor] Implementing float->int numeric reduct… Wolf McNally
- Re: [Cbor] Implementing float->int numeric reduct… Wolf McNally
- Re: [Cbor] Implementing float->int numeric reduct… lgl island-resort.com
- Re: [Cbor] Implementing float->int numeric reduct… Wolf McNally
- Re: [Cbor] Implementing float->int numeric reduct… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… Carsten Bormann
- [Cbor] The three horses (Re: Implementing float->… Carsten Bormann
- Re: [Cbor] The three horses (Re: Implementing flo… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… Wolf McNally
- Re: [Cbor] Implementing float->int numeric reduct… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… Wolf McNally
- Re: [Cbor] Implementing float->int numeric reduct… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… Carsten Bormann
- [Cbor] bignums, 65-bit integer. Re: Implementing … Anders Rundgren
- Re: [Cbor] bignums, 65-bit integer. Re: Implement… Wolf McNally
- Re: [Cbor] bignums, 65-bit integer. Re: Implement… Anders Rundgren
- Re: [Cbor] bignums, 65-bit integer. Re: Implement… Wolf McNally
- Re: [Cbor] bignums, 65-bit integer. Re: Implement… Anders Rundgren
- Re: [Cbor] bignums, 65-bit integer. Re: Implement… Anders Rundgren
- Re: [Cbor] bignums, 65-bit integer. Re: Implement… Carsten Bormann
- Re: [Cbor] bignums, 65-bit integer. Re: Implement… Anders Rundgren
- Re: [Cbor] The three horses (Re: Implementing flo… Joe Hildebrand
- Re: [Cbor] bignums, 65-bit integer. Re: Implement… Carsten Bormann
- Re: [Cbor] bignums, 65-bit integer. Re: Implement… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… Thiago Macieira
- Re: [Cbor] bignums, 65-bit integer. Re: Implement… Carsten Bormann
- Re: [Cbor] bignums, 65-bit integer. Re: Implement… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… Carsten Bormann
- Re: [Cbor] The three horses (Re: Implementing flo… Anders Rundgren
- Re: [Cbor] bignums, 65-bit integer. Re: Implement… Carsten Bormann
- Re: [Cbor] Implementing float->int numeric reduct… Thiago Macieira
- Re: [Cbor] Implementing float->int numeric reduct… lgl island-resort.com
- Re: [Cbor] Implementing float->int numeric reduct… Wolf McNally
- Re: [Cbor] Implementing float->int numeric reduct… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… Wolf McNally
- Re: [Cbor] Implementing float->int numeric reduct… Anders Rundgren
- Re: [Cbor] Implementing float->int numeric reduct… lgl island-resort.com
- Re: [Cbor] Implementing float->int numeric reduct… Thiago Macieira