From patchwork Wed May 2 15:43:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 134836 Delivered-To: patch@linaro.org Received: by 10.46.151.6 with SMTP id r6csp838842lji; Wed, 2 May 2018 08:49:41 -0700 (PDT) X-Google-Smtp-Source: AB8JxZoSygbTMpI4ZZdjkrpv9/TeEZ5f/OVQ0oVRB6gkJ3uz3hm2bAcT9uDrX2gPrqydJ130HsOt X-Received: by 2002:a81:eb01:: with SMTP id n1-v6mr11397909ywm.102.1525276181505; Wed, 02 May 2018 08:49:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525276181; cv=none; d=google.com; s=arc-20160816; b=iqCtdBBxJzJqBqElVTOS0VnOuAKdHubJq3DKMkLJYCLkkfwNdXscUOf5oH9bQAgGkF qNHTkAK9ckrqDGLOrxVE8fTxCpwmQFt8gc+EA/gD3+1FiGNfRxaAjXJ+YDt0MQ1CucaC 7t8A1DKE8f0BM4mONOzo+x6e6UFOC14/pFucpaEibrcVaJ0UxWCIyHpvhQGCHH4o61pM u41pRO4O/BfwgbaG5A8wYvzzS3v87vnvTFTRGXjUICBu3yMlcPTFNeLj/oEFOQFmOkSf 3Ky586eDoy0lcgDakAfrdH631lQmpbo4VjeHPJnF+mTNIyiIb91RprJwHxUIJbYAhl9V aAnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:arc-authentication-results; bh=ibVwonmpNN9fZY9gawTwgeMrluE1oSoVTM/RolFRwbc=; b=NZJH0Uu0Fq0TuBG25uK6UXMzW4Bl4ShXj8TKZ7/sTHeZk1Y4Ynu/GozasVvxT5HXT/ tB7edPbfo+IbyCYdd6lZzoh3ixiZz0ODuUqxKEYj0lZeNTttvwFPfotIyVGtELixADZk Dtuq0yixwRWrDOGQOPDlp6sSXKz1/+KFvStJtE3Sm4hp/VOrjny7Jga6orrrvRQwAxSc NpnymxB2QGe8nCTSwbGx+REcvtgFc89nSdYlWS9STV9e7Op4USaBwSW8vQttHFjFaN5T N16JLnaltl/+rjEpo97y9arZRHNO1qHyASIOzZ4tm8B8bYxzzlWSu8zDiI8BLQrQsUXO 0qmA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=R3njHZKW; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id e4-v6si5431001vkg.282.2018.05.02.08.49.41 for (version=TLS1 cipher=AES128-SHA bits=128/128); Wed, 02 May 2018 08:49:41 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=R3njHZKW; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:51171 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fDu0i-0008R5-Mq for patch@linaro.org; Wed, 02 May 2018 11:49:40 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46961) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fDtvO-0004eS-Oy for qemu-devel@nongnu.org; Wed, 02 May 2018 11:44:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fDtvD-0008SD-4K for qemu-devel@nongnu.org; Wed, 02 May 2018 11:44:10 -0400 Received: from mail-wr0-x243.google.com ([2a00:1450:400c:c0c::243]:33212) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fDtvC-0008R8-Gd for qemu-devel@nongnu.org; Wed, 02 May 2018 11:43:59 -0400 Received: by mail-wr0-x243.google.com with SMTP id o4-v6so14529864wrm.0 for ; Wed, 02 May 2018 08:43:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ibVwonmpNN9fZY9gawTwgeMrluE1oSoVTM/RolFRwbc=; b=R3njHZKWP+E9Prk6xAOKkQyaFFNV2zfnoFXW4oHNPR8MSpcU7dVakod+MhT8vvuLTp 93LSvqV9O88oqhWPRydeMY5/mu9ue87fMr9aa3qkygL3CF3Fnap1XrcShCMcPU+npHII Rganby9ztqeqoQKu7sJPZfsVP3SziIXNKQoIk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ibVwonmpNN9fZY9gawTwgeMrluE1oSoVTM/RolFRwbc=; b=GSw15EIbqDi8sgkA41EMjP95oxoSUt+zsN6g+XKY6FYlai2r+xOcg3ADYo3OE8J07g U1cWNfAPvrD+3SjsueEz+Xts78BUrsSK46rlIuUZNExqg3PXk20pyOJgH9YhMA0Kpq/w fWmoRoB1K079XRN7dNiYEM5pp5W+E0XiRM0AKAHj14z8fsvsECIVVb1Aw6DzHMp9jKAL 0BMBAzlHdFCaGDMHh/fjgLmByA0X5QD3bnodHEOUkjBYx5n7hgFW2pMSDQWjGBMqUbhq 1cB8jfux2tR7dz+6hTEMykD1e34o5JEewfRRiklMpwn6e5kyxc/XyfgMLhSrV3M1ndzO M82Q== X-Gm-Message-State: ALQs6tA3d/OctnASPRmaEWv+CKytLB+fSGQWf9SPMnoq5ZkyFJ6iClZC KQqcYJEWRoPSIFgLxlxcicz3Ng== X-Received: by 2002:adf:a3c7:: with SMTP id m7-v6mr14333473wrb.208.1525275835090; Wed, 02 May 2018 08:43:55 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id q34-v6sm18039063wrb.27.2018.05.02.08.43.44 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 02 May 2018 08:43:45 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 793AA3E04CD; Wed, 2 May 2018 16:43:44 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 2 May 2018 16:43:44 +0100 Message-Id: <20180502154344.10585-4-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180502154344.10585-1-alex.bennee@linaro.org> References: <20180502154344.10585-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::243 Subject: [Qemu-devel] [PATCH v2 3/3] tests/tcg/aarch64: add fcvt test cases for AArch64 (!UPSTREAM) X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" This runs through the usual float to float conversions and crucially also runs with ARM Alternative Half Precision Format. [!UPSTREAM: will be in next revision of tcg-tests-revival] Signed-off-by: Alex Bennée --- v4 - add fcvt.ref and check results against it - fix single_to_half, single_to_double conversions - properly toggle AHP mode (fpsr->fpcr) - more values around the AHP margins --- tests/tcg/aarch64/fcvt.c | 296 +++++ tests/tcg/aarch64/fcvt.ref | 2138 ++++++++++++++++++++++++++++++++++++ 2 files changed, 2434 insertions(+) create mode 100644 tests/tcg/aarch64/fcvt.c create mode 100644 tests/tcg/aarch64/fcvt.ref -- 2.17.0 diff --git a/tests/tcg/aarch64/fcvt.c b/tests/tcg/aarch64/fcvt.c new file mode 100644 index 0000000000..8f720dfa9f --- /dev/null +++ b/tests/tcg/aarch64/fcvt.c @@ -0,0 +1,296 @@ +/* + * Test Floating Point Conversion + */ + +#include +#include +#include +#include +#include + +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) + +static char flag_str[256]; + +static char *get_flag_state(int flags) +{ + if (flags) { + snprintf(flag_str, sizeof(flag_str), "%s %s %s %s %s", + flags & FE_OVERFLOW ? "OVERFLOW" : "", + flags & FE_UNDERFLOW ? "UNDERFLOW" : "", + flags & FE_DIVBYZERO ? "DIV0" : "", + flags & FE_INEXACT ? "INEXACT" : "", + flags & FE_INVALID ? "INVALID" : ""); + } else { + snprintf(flag_str, sizeof(flag_str), "OK"); + } + + return flag_str; +} + +static void print_double_number(int i, double num) +{ + uint64_t double_as_hex = *(uint64_t *) # + int flags = fetestexcept(FE_ALL_EXCEPT); + char *fstr = get_flag_state(flags); + + printf("%02d DOUBLE: %02.20e / %#020lx (%#x => %s)\n", + i, num, double_as_hex, flags, fstr); +} + +static void print_single_number(int i, float num) +{ + uint32_t single_as_hex = *(uint32_t *) # + int flags = fetestexcept(FE_ALL_EXCEPT); + char *fstr = get_flag_state(flags); + + printf("%02d SINGLE: %02.20e / %#010x (%#x => %s)\n", + i, num, single_as_hex, flags, fstr); +} + +static void print_half_number(int i, uint16_t num) +{ + int flags = fetestexcept(FE_ALL_EXCEPT); + char *fstr = get_flag_state(flags); + + printf("%02d HALF: %#04x (%#x => %s)\n", + i, num, flags, fstr); +} + +float single_numbers[] = { -FLT_MAX, + -1.111E+31, + -1.111E+30, + -1.08700982e-12, + -1.78051176e-20, + -FLT_MIN, + 0.0, + FLT_MIN, + 5.96046E-8, /* min positive FP16 subnormal */ + 6.09756E-5, /* max subnormal FP16 */ + 6.10352E-5, /* min positive normal FP16 */ + 1.0, + 1.0009765625, /* smallest float after 1.0 FP16 */ + 2.0, + M_E, M_PI, + 65503.0, + 65504.0, /* max FP16 */ + 65505.0, + 131007.0, + 131008.0, /* max AFP */ + 131009.0, + 1.111E+30, + FLT_MAX }; + +static void convert_single_to_half(void) +{ + int i; + + printf("Converting single-precision to half-precision\n"); + + for (i = 0; i < ARRAY_SIZE(single_numbers); ++i) { + float input = single_numbers[i]; + uint16_t output; + + feclearexcept(FE_ALL_EXCEPT); + + print_single_number(i, input); + asm("fcvt %h0, %s1" : "=w" (output) : "x" (input)); + print_half_number(i, output); + } +} + +static void convert_single_to_double(void) +{ + int i; + + printf("Converting single-precision to double-precision\n"); + + for (i = 0; i < ARRAY_SIZE(single_numbers); ++i) { + float input = single_numbers[i]; + uint64_t output; + + feclearexcept(FE_ALL_EXCEPT); + + print_single_number(i, input); + asm("fcvt %d0, %s1" : "=w" (output) : "x" (input)); + print_double_number(i, output); + } +} + +double double_numbers[] = { -DBL_MAX, + -FLT_MAX-1.0, + -FLT_MAX, + -1.111E+31, + -1.111E+30, /* half prec */ + -2.0, -1.0, + -DBL_MIN, + -FLT_MIN, + 0.0, + FLT_MIN, + 5.96046E-8, /* min positive FP16 subnormal */ + 6.09756E-5, /* max subnormal FP16 */ + 6.10352E-5, /* min positive normal FP16 */ + 1.0, + 1.0009765625, /* smallest float after 1.0 FP16 */ + DBL_MIN, + 1.3789972848607228e-308, + 1.4914738736681624e-308, + 1.0, 2.0, + M_E, M_PI, + 65503.0, + 65504.0, /* max FP16 */ + 65505.0, + 131007.0, + 131008.0, /* max AFP */ + 131009.0, + FLT_MAX, + FLT_MAX + 1.0, + DBL_MAX }; + +static void convert_double_to_half(void) +{ + int i; + + printf("Converting double-precision to half-precision\n"); + + for (i = 0; i < ARRAY_SIZE(single_numbers); ++i) { + double input = double_numbers[i]; + uint16_t output; + + feclearexcept(FE_ALL_EXCEPT); + + print_double_number(i, input); + + /* as we don't have _Float16 support */ + asm("fcvt %h0, %d1" : "=w" (output) : "x" (input)); + print_half_number(i, output); + } +} + +static void convert_double_to_single(void) +{ + int i; + + printf("Converting double-precision to single-precision\n"); + + for (i = 0; i < ARRAY_SIZE(single_numbers); ++i) { + double input = double_numbers[i]; + uint32_t output; + + feclearexcept(FE_ALL_EXCEPT); + + print_double_number(i, input); + + asm("fcvt %s0, %d1" : "=w" (output) : "x" (input)); + + print_single_number(i, output); + } +} + +/* no handy defines for these numbers */ +uint16_t half_numbers[] = { + 0xffff, /* -NaN / AHP -Max */ + 0xfcff, /* -NaN / AHP */ + 0xfc01, /* -NaN / AHP */ + 0xfc00, /* -Inf */ + 0xfbff, /* -Max */ + 0xc000, /* -2 */ + 0xbc00, /* -1 */ + 0x8001, /* -MIN subnormal */ + 0x8000, /* -0 */ + 0x0000, /* +0 */ + 0x0001, /* MIN subnormal */ + 0x3c00, /* 1 */ + 0x7bff, /* Max */ + 0x7c00, /* Inf */ + 0x7c01, /* NaN / AHP */ + 0x7cff, /* NaN / AHP */ + 0x7fff, /* NaN / AHP +Max*/ +}; + +static void convert_half_to_double(void) +{ + int i; + + printf("Converting half-precision to double-precision\n"); + + for (i = 0; i < ARRAY_SIZE(half_numbers); ++i) { + uint16_t input = half_numbers[i]; + double output; + + feclearexcept(FE_ALL_EXCEPT); + + print_half_number(i, input); + asm("fcvt %d0, %h1" : "=w" (output) : "x" (input)); + print_double_number(i, output); + } +} + +static void convert_half_to_single(void) +{ + int i; + + printf("Converting half-precision to single-precision\n"); + + for (i = 0; i < ARRAY_SIZE(half_numbers); ++i) { + uint16_t input = half_numbers[i]; + float output; + + feclearexcept(FE_ALL_EXCEPT); + + print_half_number(i, input); + asm("fcvt %s0, %h1" : "=w" (output) : "x" (input)); + print_single_number(i, output); + } +} + +typedef struct { + int flag; + char *desc; +} float_mapping; + +float_mapping round_flags[] = { + { FE_TONEAREST, "to nearest" }, + { FE_UPWARD, "upwards" }, + { FE_DOWNWARD, "downwards" }, + { FE_TOWARDZERO, "to zero" } +}; + +int main(int argc, char *argv[argc]) +{ + int i; + + printf("#### Enabling IEEE Half Precision\n"); + + for (i = 0; i < ARRAY_SIZE(round_flags); ++i) { + fesetround(round_flags[i].flag); + printf("### Rounding %s\n", round_flags[i].desc); + convert_single_to_half(); + convert_single_to_double(); + convert_double_to_half(); + convert_double_to_single(); + convert_half_to_single(); + convert_half_to_double(); + } + + /* And now with ARM alternative FP16 */ + asm("mrs x1, fpcr\n\t" + "orr x1, x1, %[flags]\n\t" + "msr fpcr, x1\n\t" + : /* no output */ : [flags] "n" (1 << 26) : "x1" ); + + printf("#### Enabling ARM Alternative Half Precision\n"); + + for (i = 0; i < ARRAY_SIZE(round_flags); ++i) { + fesetround(round_flags[i].flag); + printf("### Rounding %s\n", round_flags[i].desc); + convert_single_to_half(); + convert_single_to_double(); + convert_double_to_half(); + convert_double_to_single(); + convert_half_to_single(); + convert_half_to_double(); + } + + return 0; +} diff --git a/tests/tcg/aarch64/fcvt.ref b/tests/tcg/aarch64/fcvt.ref new file mode 100644 index 0000000000..5a5316814c --- /dev/null +++ b/tests/tcg/aarch64/fcvt.ref @@ -0,0 +1,2138 @@ +#### Enabling IEEE Half Precision +### Rounding to nearest +Converting single-precision to half-precision +00 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +00 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +01 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +01 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +02 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +02 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +03 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +03 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +04 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +04 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +05 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +05 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +06 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +06 HALF: 0000 (0 => OK) +07 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +07 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +08 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +09 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +10 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +10 HALF: 0x400 (0x10 => INEXACT ) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +12 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +12 HALF: 0x3c01 (0 => OK) +13 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +13 HALF: 0x4000 (0 => OK) +14 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +14 HALF: 0x4170 (0x10 => INEXACT ) +15 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +15 HALF: 0x4248 (0x10 => INEXACT ) +16 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +16 HALF: 0x7bff (0x10 => INEXACT ) +17 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +17 HALF: 0x7bff (0 => OK) +18 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +18 HALF: 0x7bff (0x10 => INEXACT ) +19 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +19 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +20 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +20 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +21 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +21 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +22 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +22 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +23 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +23 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +Converting single-precision to double-precision +00 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +00 DOUBLE: 1.44070152074213457920e+19 / 0x0043e8fdfffffc0000 (0 => OK) +01 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +01 DOUBLE: 1.42948554489798328320e+19 / 0x0043e8cc30e9640000 (0 => OK) +02 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +02 DOUBLE: 1.42798013491629260800e+19 / 0x0043e8c581756c0000 (0 => OK) +03 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +03 DOUBLE: 1.36512894828617400320e+19 / 0x0043e7ae63eea00000 (0 => OK) +04 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +04 DOUBLE: 1.35347300458215505920e+19 / 0x0043e77aa0a8880000 (0 => OK) +05 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +05 DOUBLE: 1.32631009026061107200e+19 / 0x0043e7020000000000 (0 => OK) +06 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +06 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +07 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +07 DOUBLE: 4.03972886575133491200e+18 / 0x0043cc080000000000 (0 => OK) +08 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +08 DOUBLE: 4.49909602076380364800e+18 / 0x0043cf37ffff300000 (0 => OK) +09 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +09 DOUBLE: 4.54412323490313011200e+18 / 0x0043cf87fc00d00000 (0 => OK) +10 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +10 DOUBLE: 4.54413202723805593600e+18 / 0x0043cf880000600000 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +11 DOUBLE: 4.60718241880001740800e+18 / 0x0043cff80000000000 (0 => OK) +12 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +12 DOUBLE: 4.60718681684652851200e+18 / 0x0043cff80200000000 (0 => OK) +13 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +13 DOUBLE: 4.61168601842738790400e+18 / 0x0043d0000000000000 (0 => OK) +14 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +14 DOUBLE: 4.61330344512900300800e+18 / 0x0043d0016fc2a00000 (0 => OK) +15 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +15 DOUBLE: 4.61425665674890444800e+18 / 0x0043d002487ed80000 (0 => OK) +16 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +16 DOUBLE: 4.67923547735248076800e+18 / 0x0043d03bfef8000000 (0 => OK) +17 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +17 DOUBLE: 4.67923561479143424000e+18 / 0x0043d03bff00000000 (0 => OK) +18 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +18 DOUBLE: 4.67923575223038771200e+18 / 0x0043d03bff08000000 (0 => OK) +19 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +19 DOUBLE: 4.68373914569932800000e+18 / 0x0043d03ffefc000000 (0 => OK) +20 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +20 DOUBLE: 4.68373921441880473600e+18 / 0x0043d03fff00000000 (0 => OK) +21 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +21 DOUBLE: 4.68373928313828147200e+18 / 0x0043d03fff04000000 (0 => OK) +22 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +22 DOUBLE: 5.05642931230815027200e+18 / 0x0043d18b02ead80000 (0 => OK) +23 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +23 DOUBLE: 5.18364317056656998400e+18 / 0x0043d1fbfffff80000 (0 => OK) +Converting double-precision to half-precision +00 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +00 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +01 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +01 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +02 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +02 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +03 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +03 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +04 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +07 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +10 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +11 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +12 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +12 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +13 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +13 HALF: 0x400 (0x10 => INEXACT ) +14 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +14 HALF: 0x3c00 (0 => OK) +15 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +15 HALF: 0x3c01 (0 => OK) +16 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +16 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +17 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +18 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +18 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +19 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +19 HALF: 0x3c00 (0 => OK) +20 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +20 HALF: 0x4000 (0 => OK) +21 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +21 HALF: 0x4170 (0x10 => INEXACT ) +22 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +22 HALF: 0x4248 (0x10 => INEXACT ) +23 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +23 HALF: 0x7bff (0x10 => INEXACT ) +Converting double-precision to single-precision +00 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +00 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT ) +01 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +01 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +02 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +03 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +03 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT ) +04 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +04 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT ) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +05 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +06 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +07 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +07 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +08 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +10 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +11 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +11 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000 (0x10 => INEXACT ) +12 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +12 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT ) +13 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +13 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT ) +14 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +14 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +15 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +15 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +16 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +16 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +17 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +18 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +18 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +19 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +19 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +20 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +20 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +21 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +21 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1 (0x10 => INEXACT ) +22 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +22 SINGLE: 1.07853004800000000000e+09 / 0x4e809220 (0x10 => INEXACT ) +23 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +23 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -nan / 0xffffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -nan / 0xffdfe000 (0x1 => INVALID) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -nan / 0xffc02000 (0x1 => INVALID) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -inf / 0xff800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: inf / 0x7f800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: nan / 0x7fc02000 (0x1 => INVALID) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: nan / 0x7fdfe000 (0x1 => INVALID) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: nan / 0x7fffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: -nan / 0x00fffffc0000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: -nan / 0x00fffbfc0000000000 (0x1 => INVALID) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: -nan / 0x00fff8040000000000 (0x1 => INVALID) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: nan / 0x007ff8040000000000 (0x1 => INVALID) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: nan / 0x007ffbfc0000000000 (0x1 => INVALID) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: nan / 0x007ffffc0000000000 (0 => OK) +### Rounding upwards +Converting single-precision to half-precision +00 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +00 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +01 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +01 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +02 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +02 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +03 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +03 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +04 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +04 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +05 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +05 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +06 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +06 HALF: 0000 (0 => OK) +07 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +07 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +08 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +09 HALF: 0x400 (0x18 => UNDERFLOW INEXACT ) +10 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +10 HALF: 0x401 (0x10 => INEXACT ) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +12 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +12 HALF: 0x3c01 (0 => OK) +13 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +13 HALF: 0x4000 (0 => OK) +14 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +14 HALF: 0x4170 (0x10 => INEXACT ) +15 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +15 HALF: 0x4249 (0x10 => INEXACT ) +16 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +16 HALF: 0x7bff (0x10 => INEXACT ) +17 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +17 HALF: 0x7bff (0 => OK) +18 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +18 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +19 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +19 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +20 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +20 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +21 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +21 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +22 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +22 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +23 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +23 HALF: 0x7c00 (0x14 => OVERFLOW INEXACT ) +Converting single-precision to double-precision +00 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +00 DOUBLE: 1.44070152074213457920e+19 / 0x0043e8fdfffffc0000 (0 => OK) +01 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +01 DOUBLE: 1.42948554489798328320e+19 / 0x0043e8cc30e9640000 (0 => OK) +02 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +02 DOUBLE: 1.42798013491629260800e+19 / 0x0043e8c581756c0000 (0 => OK) +03 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +03 DOUBLE: 1.36512894828617400320e+19 / 0x0043e7ae63eea00000 (0 => OK) +04 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +04 DOUBLE: 1.35347300458215505920e+19 / 0x0043e77aa0a8880000 (0 => OK) +05 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +05 DOUBLE: 1.32631009026061107200e+19 / 0x0043e7020000000000 (0 => OK) +06 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +06 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +07 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +07 DOUBLE: 4.03972886575133491200e+18 / 0x0043cc080000000000 (0 => OK) +08 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +08 DOUBLE: 4.49909602076380364800e+18 / 0x0043cf37ffff300000 (0 => OK) +09 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +09 DOUBLE: 4.54412323490313011200e+18 / 0x0043cf87fc00d00000 (0 => OK) +10 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +10 DOUBLE: 4.54413202723805593600e+18 / 0x0043cf880000600000 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +11 DOUBLE: 4.60718241880001740800e+18 / 0x0043cff80000000000 (0 => OK) +12 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +12 DOUBLE: 4.60718681684652851200e+18 / 0x0043cff80200000000 (0 => OK) +13 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +13 DOUBLE: 4.61168601842738790400e+18 / 0x0043d0000000000000 (0 => OK) +14 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +14 DOUBLE: 4.61330344512900300800e+18 / 0x0043d0016fc2a00000 (0 => OK) +15 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +15 DOUBLE: 4.61425665674890444800e+18 / 0x0043d002487ed80000 (0 => OK) +16 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +16 DOUBLE: 4.67923547735248076800e+18 / 0x0043d03bfef8000000 (0 => OK) +17 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +17 DOUBLE: 4.67923561479143424000e+18 / 0x0043d03bff00000000 (0 => OK) +18 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +18 DOUBLE: 4.67923575223038771200e+18 / 0x0043d03bff08000000 (0 => OK) +19 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +19 DOUBLE: 4.68373914569932800000e+18 / 0x0043d03ffefc000000 (0 => OK) +20 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +20 DOUBLE: 4.68373921441880473600e+18 / 0x0043d03fff00000000 (0 => OK) +21 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +21 DOUBLE: 4.68373928313828147200e+18 / 0x0043d03fff04000000 (0 => OK) +22 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +22 DOUBLE: 5.05642931230815027200e+18 / 0x0043d18b02ead80000 (0 => OK) +23 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +23 DOUBLE: 5.18364317056656998400e+18 / 0x0043d1fbfffff80000 (0 => OK) +Converting double-precision to half-precision +00 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +00 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +01 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +01 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +02 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +02 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +03 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +03 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +04 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +07 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +10 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +11 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +12 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +12 HALF: 0x400 (0x18 => UNDERFLOW INEXACT ) +13 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +13 HALF: 0x401 (0x10 => INEXACT ) +14 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +14 HALF: 0x3c00 (0 => OK) +15 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +15 HALF: 0x3c01 (0 => OK) +16 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK) +16 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK) +17 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +18 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK) +18 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +19 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +19 HALF: 0x3c00 (0 => OK) +20 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +20 HALF: 0x4000 (0 => OK) +21 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +21 HALF: 0x4170 (0x10 => INEXACT ) +22 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +22 HALF: 0x4249 (0x10 => INEXACT ) +23 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +23 HALF: 0x7bff (0x10 => INEXACT ) +Converting double-precision to single-precision +00 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +00 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT ) +01 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +01 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +02 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +03 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +03 SINGLE: 4.07766502400000000000e+09 / 0x4f730c3b (0x10 => INEXACT ) +04 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +04 SINGLE: 4.04962457600000000000e+09 / 0x4f71605e (0x10 => INEXACT ) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +05 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +06 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +07 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +07 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +08 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +10 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +11 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +11 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000 (0x10 => INEXACT ) +12 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +12 SINGLE: 9.47896384000000000000e+08 / 0x4e61ff01 (0x10 => INEXACT ) +13 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +13 SINGLE: 9.47912768000000000000e+08 / 0x4e620001 (0x10 => INEXACT ) +14 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +14 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +15 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +15 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +16 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK) +16 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK) +17 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT ) +18 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK) +18 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT ) +19 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +19 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +20 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +20 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +21 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +21 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1 (0x10 => INEXACT ) +22 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +22 SINGLE: 1.07853004800000000000e+09 / 0x4e809220 (0x10 => INEXACT ) +23 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +23 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -nan / 0xffffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -nan / 0xffdfe000 (0x1 => INVALID) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -nan / 0xffc02000 (0x1 => INVALID) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -inf / 0xff800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: inf / 0x7f800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: nan / 0x7fc02000 (0x1 => INVALID) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: nan / 0x7fdfe000 (0x1 => INVALID) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: nan / 0x7fffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: -nan / 0x00fffffc0000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: -nan / 0x00fffbfc0000000000 (0x1 => INVALID) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: -nan / 0x00fff8040000000000 (0x1 => INVALID) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: nan / 0x007ff8040000000000 (0x1 => INVALID) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: nan / 0x007ffbfc0000000000 (0x1 => INVALID) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: nan / 0x007ffffc0000000000 (0 => OK) +### Rounding downwards +Converting single-precision to half-precision +00 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +00 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +01 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +01 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +02 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +02 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +03 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +03 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +04 SINGLE: -1.78051176151664730512e-20 / 0x9ea82a22 (0 => OK) +04 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +05 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +05 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +06 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +06 HALF: 0000 (0 => OK) +07 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +07 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +08 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +09 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +10 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +10 HALF: 0x400 (0x10 => INEXACT ) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +12 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +12 HALF: 0x3c01 (0 => OK) +13 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +13 HALF: 0x4000 (0 => OK) +14 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +14 HALF: 0x416f (0x10 => INEXACT ) +15 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +15 HALF: 0x4248 (0x10 => INEXACT ) +16 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +16 HALF: 0x7bfe (0x10 => INEXACT ) +17 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +17 HALF: 0x7bff (0 => OK) +18 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +18 HALF: 0x7bff (0x10 => INEXACT ) +19 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +19 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +20 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +20 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +21 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +21 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +22 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +22 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +23 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +23 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +Converting single-precision to double-precision +00 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +00 DOUBLE: 1.44070152074213457920e+19 / 0x0043e8fdfffffc0000 (0 => OK) +01 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +01 DOUBLE: 1.42948554489798328320e+19 / 0x0043e8cc30e9640000 (0 => OK) +02 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +02 DOUBLE: 1.42798013491629260800e+19 / 0x0043e8c581756c0000 (0 => OK) +03 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +03 DOUBLE: 1.36512894828617400320e+19 / 0x0043e7ae63eea00000 (0 => OK) +04 SINGLE: -1.78051176151664730512e-20 / 0x9ea82a22 (0 => OK) +04 DOUBLE: 1.35347300458215505920e+19 / 0x0043e77aa0a8880000 (0 => OK) +05 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +05 DOUBLE: 1.32631009026061107200e+19 / 0x0043e7020000000000 (0 => OK) +06 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +06 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +07 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +07 DOUBLE: 4.03972886575133491200e+18 / 0x0043cc080000000000 (0 => OK) +08 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +08 DOUBLE: 4.49909602076380364800e+18 / 0x0043cf37ffff300000 (0 => OK) +09 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +09 DOUBLE: 4.54412323490313011200e+18 / 0x0043cf87fc00d00000 (0 => OK) +10 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +10 DOUBLE: 4.54413202723805593600e+18 / 0x0043cf880000600000 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +11 DOUBLE: 4.60718241880001740800e+18 / 0x0043cff80000000000 (0 => OK) +12 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +12 DOUBLE: 4.60718681684652851200e+18 / 0x0043cff80200000000 (0 => OK) +13 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +13 DOUBLE: 4.61168601842738790400e+18 / 0x0043d0000000000000 (0 => OK) +14 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +14 DOUBLE: 4.61330344512900300800e+18 / 0x0043d0016fc2a00000 (0 => OK) +15 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +15 DOUBLE: 4.61425665674890444800e+18 / 0x0043d002487ed80000 (0 => OK) +16 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +16 DOUBLE: 4.67923547735248076800e+18 / 0x0043d03bfef8000000 (0 => OK) +17 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +17 DOUBLE: 4.67923561479143424000e+18 / 0x0043d03bff00000000 (0 => OK) +18 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +18 DOUBLE: 4.67923575223038771200e+18 / 0x0043d03bff08000000 (0 => OK) +19 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +19 DOUBLE: 4.68373914569932800000e+18 / 0x0043d03ffefc000000 (0 => OK) +20 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +20 DOUBLE: 4.68373921441880473600e+18 / 0x0043d03fff00000000 (0 => OK) +21 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +21 DOUBLE: 4.68373928313828147200e+18 / 0x0043d03fff04000000 (0 => OK) +22 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +22 DOUBLE: 5.05642931230815027200e+18 / 0x0043d18b02ead80000 (0 => OK) +23 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +23 DOUBLE: 5.18364317056656998400e+18 / 0x0043d1fbfffff80000 (0 => OK) +Converting double-precision to half-precision +00 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +00 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +01 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +01 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +02 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +02 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +03 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK) +03 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +04 HALF: 0xfc00 (0x14 => OVERFLOW INEXACT ) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +07 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK) +07 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +08 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +10 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +11 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +12 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +12 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +13 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +13 HALF: 0x400 (0x10 => INEXACT ) +14 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +14 HALF: 0x3c00 (0 => OK) +15 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +15 HALF: 0x3c01 (0 => OK) +16 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +16 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +17 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +18 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +18 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +19 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +19 HALF: 0x3c00 (0 => OK) +20 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +20 HALF: 0x4000 (0 => OK) +21 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +21 HALF: 0x416f (0x10 => INEXACT ) +22 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +22 HALF: 0x4248 (0x10 => INEXACT ) +23 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +23 HALF: 0x7bfe (0x10 => INEXACT ) +Converting double-precision to single-precision +00 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +00 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT ) +01 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +01 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +02 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +02 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +03 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK) +03 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT ) +04 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +04 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT ) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +05 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +06 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +07 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK) +07 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +08 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +10 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +11 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +11 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff (0x10 => INEXACT ) +12 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +12 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT ) +13 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +13 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT ) +14 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +14 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +15 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +15 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +16 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +16 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +17 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +18 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +18 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +19 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +19 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +20 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +20 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +21 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +21 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0 (0x10 => INEXACT ) +22 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +22 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f (0x10 => INEXACT ) +23 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +23 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -nan / 0xffffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -nan / 0xffdfe000 (0x1 => INVALID) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -nan / 0xffc02000 (0x1 => INVALID) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -inf / 0xff800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: inf / 0x7f800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: nan / 0x7fc02000 (0x1 => INVALID) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: nan / 0x7fdfe000 (0x1 => INVALID) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: nan / 0x7fffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: -nan / 0x00fffffc0000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: -nan / 0x00fffbfc0000000000 (0x1 => INVALID) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: -nan / 0x00fff8040000000000 (0x1 => INVALID) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: nan / 0x007ff8040000000000 (0x1 => INVALID) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: nan / 0x007ffbfc0000000000 (0x1 => INVALID) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: nan / 0x007ffffc0000000000 (0 => OK) +### Rounding to zero +Converting single-precision to half-precision +00 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +00 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +01 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +01 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +02 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +02 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +03 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +03 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +04 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +04 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +05 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +05 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +06 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +06 HALF: 0000 (0 => OK) +07 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +07 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +08 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +09 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +10 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +10 HALF: 0x400 (0x10 => INEXACT ) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +12 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +12 HALF: 0x3c01 (0 => OK) +13 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +13 HALF: 0x4000 (0 => OK) +14 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +14 HALF: 0x416f (0x10 => INEXACT ) +15 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +15 HALF: 0x4248 (0x10 => INEXACT ) +16 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +16 HALF: 0x7bfe (0x10 => INEXACT ) +17 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +17 HALF: 0x7bff (0 => OK) +18 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +18 HALF: 0x7bff (0x10 => INEXACT ) +19 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +19 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +20 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +20 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +21 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +21 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +22 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +22 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +23 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +23 HALF: 0x7bff (0x14 => OVERFLOW INEXACT ) +Converting single-precision to double-precision +00 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +00 DOUBLE: 1.44070152074213457920e+19 / 0x0043e8fdfffffc0000 (0 => OK) +01 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +01 DOUBLE: 1.42948554489798328320e+19 / 0x0043e8cc30e9640000 (0 => OK) +02 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +02 DOUBLE: 1.42798013491629260800e+19 / 0x0043e8c581756c0000 (0 => OK) +03 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +03 DOUBLE: 1.36512894828617400320e+19 / 0x0043e7ae63eea00000 (0 => OK) +04 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +04 DOUBLE: 1.35347300458215505920e+19 / 0x0043e77aa0a8880000 (0 => OK) +05 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +05 DOUBLE: 1.32631009026061107200e+19 / 0x0043e7020000000000 (0 => OK) +06 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +06 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +07 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +07 DOUBLE: 4.03972886575133491200e+18 / 0x0043cc080000000000 (0 => OK) +08 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +08 DOUBLE: 4.49909602076380364800e+18 / 0x0043cf37ffff300000 (0 => OK) +09 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +09 DOUBLE: 4.54412323490313011200e+18 / 0x0043cf87fc00d00000 (0 => OK) +10 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +10 DOUBLE: 4.54413202723805593600e+18 / 0x0043cf880000600000 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +11 DOUBLE: 4.60718241880001740800e+18 / 0x0043cff80000000000 (0 => OK) +12 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +12 DOUBLE: 4.60718681684652851200e+18 / 0x0043cff80200000000 (0 => OK) +13 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +13 DOUBLE: 4.61168601842738790400e+18 / 0x0043d0000000000000 (0 => OK) +14 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +14 DOUBLE: 4.61330344512900300800e+18 / 0x0043d0016fc2a00000 (0 => OK) +15 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +15 DOUBLE: 4.61425665674890444800e+18 / 0x0043d002487ed80000 (0 => OK) +16 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +16 DOUBLE: 4.67923547735248076800e+18 / 0x0043d03bfef8000000 (0 => OK) +17 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +17 DOUBLE: 4.67923561479143424000e+18 / 0x0043d03bff00000000 (0 => OK) +18 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +18 DOUBLE: 4.67923575223038771200e+18 / 0x0043d03bff08000000 (0 => OK) +19 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +19 DOUBLE: 4.68373914569932800000e+18 / 0x0043d03ffefc000000 (0 => OK) +20 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +20 DOUBLE: 4.68373921441880473600e+18 / 0x0043d03fff00000000 (0 => OK) +21 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +21 DOUBLE: 4.68373928313828147200e+18 / 0x0043d03fff04000000 (0 => OK) +22 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +22 DOUBLE: 5.05642931230815027200e+18 / 0x0043d18b02ead80000 (0 => OK) +23 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +23 DOUBLE: 5.18364317056656998400e+18 / 0x0043d1fbfffff80000 (0 => OK) +Converting double-precision to half-precision +00 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +00 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +01 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +01 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +02 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +02 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +03 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +03 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +04 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +04 HALF: 0xfbff (0x14 => OVERFLOW INEXACT ) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +07 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +10 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +11 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +12 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +12 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +13 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +13 HALF: 0x400 (0x10 => INEXACT ) +14 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +14 HALF: 0x3c00 (0 => OK) +15 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +15 HALF: 0x3c01 (0 => OK) +16 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +16 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +17 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +18 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +18 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +19 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +19 HALF: 0x3c00 (0 => OK) +20 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +20 HALF: 0x4000 (0 => OK) +21 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +21 HALF: 0x416f (0x10 => INEXACT ) +22 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +22 HALF: 0x4248 (0x10 => INEXACT ) +23 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +23 HALF: 0x7bfe (0x10 => INEXACT ) +Converting double-precision to single-precision +00 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +00 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x14 => OVERFLOW INEXACT ) +01 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +01 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +02 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +02 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +03 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +03 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT ) +04 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +04 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT ) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +05 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +06 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +07 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +07 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +08 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +10 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +11 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +11 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff (0x10 => INEXACT ) +12 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +12 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT ) +13 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +13 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT ) +14 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +14 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +15 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +15 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +16 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +16 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +17 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +18 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +18 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +19 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +19 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +20 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +20 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +21 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +21 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0 (0x10 => INEXACT ) +22 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +22 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f (0x10 => INEXACT ) +23 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +23 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -nan / 0xffffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -nan / 0xffdfe000 (0x1 => INVALID) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -nan / 0xffc02000 (0x1 => INVALID) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -inf / 0xff800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: inf / 0x7f800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: nan / 0x7fc02000 (0x1 => INVALID) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: nan / 0x7fdfe000 (0x1 => INVALID) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: nan / 0x7fffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: -nan / 0x00fffffc0000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: -nan / 0x00fffbfc0000000000 (0x1 => INVALID) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: -nan / 0x00fff8040000000000 (0x1 => INVALID) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: -inf / 0x00fff0000000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: inf / 0x007ff0000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: nan / 0x007ff8040000000000 (0x1 => INVALID) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: nan / 0x007ffbfc0000000000 (0x1 => INVALID) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: nan / 0x007ffffc0000000000 (0 => OK) +#### Enabling ARM Alternative Half Precision +### Rounding to nearest +Converting single-precision to half-precision +00 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +00 HALF: 0xffff (0x1 => INVALID) +01 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +01 HALF: 0xffff (0x1 => INVALID) +02 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +02 HALF: 0xffff (0x1 => INVALID) +03 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +03 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +04 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +04 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +05 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +05 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +06 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +06 HALF: 0000 (0 => OK) +07 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +07 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +08 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +09 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +10 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +10 HALF: 0x400 (0x10 => INEXACT ) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +12 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +12 HALF: 0x3c01 (0 => OK) +13 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +13 HALF: 0x4000 (0 => OK) +14 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +14 HALF: 0x4170 (0x10 => INEXACT ) +15 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +15 HALF: 0x4248 (0x10 => INEXACT ) +16 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +16 HALF: 0x7bff (0x10 => INEXACT ) +17 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +17 HALF: 0x7bff (0 => OK) +18 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +18 HALF: 0x7bff (0x10 => INEXACT ) +19 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +19 HALF: 0x7fff (0x10 => INEXACT ) +20 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +20 HALF: 0x7fff (0 => OK) +21 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +21 HALF: 0x7fff (0x10 => INEXACT ) +22 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +22 HALF: 0x7fff (0x1 => INVALID) +23 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +23 HALF: 0x7fff (0x1 => INVALID) +Converting single-precision to double-precision +00 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +00 DOUBLE: 1.44070152074213457920e+19 / 0x0043e8fdfffffc0000 (0 => OK) +01 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +01 DOUBLE: 1.42948554489798328320e+19 / 0x0043e8cc30e9640000 (0 => OK) +02 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +02 DOUBLE: 1.42798013491629260800e+19 / 0x0043e8c581756c0000 (0 => OK) +03 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +03 DOUBLE: 1.36512894828617400320e+19 / 0x0043e7ae63eea00000 (0 => OK) +04 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +04 DOUBLE: 1.35347300458215505920e+19 / 0x0043e77aa0a8880000 (0 => OK) +05 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +05 DOUBLE: 1.32631009026061107200e+19 / 0x0043e7020000000000 (0 => OK) +06 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +06 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +07 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +07 DOUBLE: 4.03972886575133491200e+18 / 0x0043cc080000000000 (0 => OK) +08 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +08 DOUBLE: 4.49909602076380364800e+18 / 0x0043cf37ffff300000 (0 => OK) +09 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +09 DOUBLE: 4.54412323490313011200e+18 / 0x0043cf87fc00d00000 (0 => OK) +10 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +10 DOUBLE: 4.54413202723805593600e+18 / 0x0043cf880000600000 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +11 DOUBLE: 4.60718241880001740800e+18 / 0x0043cff80000000000 (0 => OK) +12 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +12 DOUBLE: 4.60718681684652851200e+18 / 0x0043cff80200000000 (0 => OK) +13 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +13 DOUBLE: 4.61168601842738790400e+18 / 0x0043d0000000000000 (0 => OK) +14 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +14 DOUBLE: 4.61330344512900300800e+18 / 0x0043d0016fc2a00000 (0 => OK) +15 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +15 DOUBLE: 4.61425665674890444800e+18 / 0x0043d002487ed80000 (0 => OK) +16 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +16 DOUBLE: 4.67923547735248076800e+18 / 0x0043d03bfef8000000 (0 => OK) +17 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +17 DOUBLE: 4.67923561479143424000e+18 / 0x0043d03bff00000000 (0 => OK) +18 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +18 DOUBLE: 4.67923575223038771200e+18 / 0x0043d03bff08000000 (0 => OK) +19 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +19 DOUBLE: 4.68373914569932800000e+18 / 0x0043d03ffefc000000 (0 => OK) +20 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +20 DOUBLE: 4.68373921441880473600e+18 / 0x0043d03fff00000000 (0 => OK) +21 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +21 DOUBLE: 4.68373928313828147200e+18 / 0x0043d03fff04000000 (0 => OK) +22 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +22 DOUBLE: 5.05642931230815027200e+18 / 0x0043d18b02ead80000 (0 => OK) +23 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +23 DOUBLE: 5.18364317056656998400e+18 / 0x0043d1fbfffff80000 (0 => OK) +Converting double-precision to half-precision +00 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +00 HALF: 0xffff (0x1 => INVALID) +01 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +01 HALF: 0xffff (0x1 => INVALID) +02 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +02 HALF: 0xffff (0x1 => INVALID) +03 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +03 HALF: 0xffff (0x1 => INVALID) +04 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +04 HALF: 0xffff (0x1 => INVALID) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +07 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +10 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +11 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +12 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +12 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +13 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +13 HALF: 0x400 (0x10 => INEXACT ) +14 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +14 HALF: 0x3c00 (0 => OK) +15 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +15 HALF: 0x3c01 (0 => OK) +16 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +16 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +17 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +18 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +18 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +19 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +19 HALF: 0x3c00 (0 => OK) +20 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +20 HALF: 0x4000 (0 => OK) +21 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +21 HALF: 0x4170 (0x10 => INEXACT ) +22 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +22 HALF: 0x4248 (0x10 => INEXACT ) +23 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +23 HALF: 0x7bff (0x10 => INEXACT ) +Converting double-precision to single-precision +00 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +00 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT ) +01 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +01 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +02 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +03 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +03 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT ) +04 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +04 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT ) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +05 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +06 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +07 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +07 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +08 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +10 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +11 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +11 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000 (0x10 => INEXACT ) +12 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +12 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT ) +13 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +13 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT ) +14 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +14 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +15 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +15 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +16 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +16 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +17 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +18 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +18 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +19 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +19 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +20 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +20 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +21 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +21 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1 (0x10 => INEXACT ) +22 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +22 SINGLE: 1.07853004800000000000e+09 / 0x4e809220 (0x10 => INEXACT ) +23 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +23 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -8.18560000000000000000e+04 / 0xc79fe000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -6.56000000000000000000e+04 / 0xc7802000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -6.55360000000000000000e+04 / 0xc7800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: 6.55360000000000000000e+04 / 0x47800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: 6.56000000000000000000e+04 / 0x47802000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: 8.18560000000000000000e+04 / 0x479fe000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: -1.31008000000000000000e+05 / 0x00c0fffc0000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: -8.18560000000000000000e+04 / 0x00c0f3fc0000000000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: -6.56000000000000000000e+04 / 0x00c0f0040000000000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: -6.55360000000000000000e+04 / 0x00c0f0000000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: 6.55360000000000000000e+04 / 0x0040f0000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: 6.56000000000000000000e+04 / 0x0040f0040000000000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: 8.18560000000000000000e+04 / 0x0040f3fc0000000000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +### Rounding upwards +Converting single-precision to half-precision +00 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +00 HALF: 0xffff (0x1 => INVALID) +01 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +01 HALF: 0xffff (0x1 => INVALID) +02 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +02 HALF: 0xffff (0x1 => INVALID) +03 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +03 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +04 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +04 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +05 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +05 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +06 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +06 HALF: 0000 (0 => OK) +07 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +07 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +08 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +09 HALF: 0x400 (0x18 => UNDERFLOW INEXACT ) +10 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +10 HALF: 0x401 (0x10 => INEXACT ) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +12 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +12 HALF: 0x3c01 (0 => OK) +13 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +13 HALF: 0x4000 (0 => OK) +14 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +14 HALF: 0x4170 (0x10 => INEXACT ) +15 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +15 HALF: 0x4249 (0x10 => INEXACT ) +16 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +16 HALF: 0x7bff (0x10 => INEXACT ) +17 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +17 HALF: 0x7bff (0 => OK) +18 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +18 HALF: 0x7c00 (0x10 => INEXACT ) +19 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +19 HALF: 0x7fff (0x10 => INEXACT ) +20 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +20 HALF: 0x7fff (0 => OK) +21 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +21 HALF: 0x7fff (0x1 => INVALID) +22 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +22 HALF: 0x7fff (0x1 => INVALID) +23 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +23 HALF: 0x7fff (0x1 => INVALID) +Converting single-precision to double-precision +00 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +00 DOUBLE: 1.44070152074213457920e+19 / 0x0043e8fdfffffc0000 (0 => OK) +01 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +01 DOUBLE: 1.42948554489798328320e+19 / 0x0043e8cc30e9640000 (0 => OK) +02 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +02 DOUBLE: 1.42798013491629260800e+19 / 0x0043e8c581756c0000 (0 => OK) +03 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +03 DOUBLE: 1.36512894828617400320e+19 / 0x0043e7ae63eea00000 (0 => OK) +04 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +04 DOUBLE: 1.35347300458215505920e+19 / 0x0043e77aa0a8880000 (0 => OK) +05 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +05 DOUBLE: 1.32631009026061107200e+19 / 0x0043e7020000000000 (0 => OK) +06 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +06 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +07 SINGLE: 1.17549435082228750797e-38 / 0x00800000 (0 => OK) +07 DOUBLE: 4.03972886575133491200e+18 / 0x0043cc080000000000 (0 => OK) +08 SINGLE: 5.96045985901128005935e-08 / 0x337ffff3 (0 => OK) +08 DOUBLE: 4.49909602076380364800e+18 / 0x0043cf37ffff300000 (0 => OK) +09 SINGLE: 6.09755988989491015673e-05 / 0x387fc00d (0 => OK) +09 DOUBLE: 4.54412323490313011200e+18 / 0x0043cf87fc00d00000 (0 => OK) +10 SINGLE: 6.10351999057456851006e-05 / 0x38800006 (0 => OK) +10 DOUBLE: 4.54413202723805593600e+18 / 0x0043cf880000600000 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +11 DOUBLE: 4.60718241880001740800e+18 / 0x0043cff80000000000 (0 => OK) +12 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +12 DOUBLE: 4.60718681684652851200e+18 / 0x0043cff80200000000 (0 => OK) +13 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +13 DOUBLE: 4.61168601842738790400e+18 / 0x0043d0000000000000 (0 => OK) +14 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +14 DOUBLE: 4.61330344512900300800e+18 / 0x0043d0016fc2a00000 (0 => OK) +15 SINGLE: 3.14159274101257324219e+00 / 0x40490fdb (0 => OK) +15 DOUBLE: 4.61425665674890444800e+18 / 0x0043d002487ed80000 (0 => OK) +16 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +16 DOUBLE: 4.67923547735248076800e+18 / 0x0043d03bfef8000000 (0 => OK) +17 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +17 DOUBLE: 4.67923561479143424000e+18 / 0x0043d03bff00000000 (0 => OK) +18 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +18 DOUBLE: 4.67923575223038771200e+18 / 0x0043d03bff08000000 (0 => OK) +19 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +19 DOUBLE: 4.68373914569932800000e+18 / 0x0043d03ffefc000000 (0 => OK) +20 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +20 DOUBLE: 4.68373921441880473600e+18 / 0x0043d03fff00000000 (0 => OK) +21 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +21 DOUBLE: 4.68373928313828147200e+18 / 0x0043d03fff04000000 (0 => OK) +22 SINGLE: 1.11100003258488635273e+30 / 0x71605d5b (0 => OK) +22 DOUBLE: 5.05642931230815027200e+18 / 0x0043d18b02ead80000 (0 => OK) +23 SINGLE: 3.40282346638528859812e+38 / 0x7f7fffff (0 => OK) +23 DOUBLE: 5.18364317056656998400e+18 / 0x0043d1fbfffff80000 (0 => OK) +Converting double-precision to half-precision +00 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +00 HALF: 0xffff (0x1 => INVALID) +01 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +01 HALF: 0xffff (0x1 => INVALID) +02 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +02 HALF: 0xffff (0x1 => INVALID) +03 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +03 HALF: 0xffff (0x1 => INVALID) +04 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +04 HALF: 0xffff (0x1 => INVALID) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +07 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +10 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +11 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +12 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +12 HALF: 0x400 (0x18 => UNDERFLOW INEXACT ) +13 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +13 HALF: 0x401 (0x10 => INEXACT ) +14 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +14 HALF: 0x3c00 (0 => OK) +15 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +15 HALF: 0x3c01 (0 => OK) +16 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK) +16 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK) +17 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +18 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK) +18 HALF: 0x01 (0x18 => UNDERFLOW INEXACT ) +19 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +19 HALF: 0x3c00 (0 => OK) +20 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +20 HALF: 0x4000 (0 => OK) +21 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +21 HALF: 0x4170 (0x10 => INEXACT ) +22 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +22 HALF: 0x4249 (0x10 => INEXACT ) +23 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +23 HALF: 0x7bff (0x10 => INEXACT ) +Converting double-precision to single-precision +00 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +00 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT ) +01 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +01 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +02 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +02 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x10 => INEXACT ) +03 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +03 SINGLE: 4.07766502400000000000e+09 / 0x4f730c3b (0x10 => INEXACT ) +04 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +04 SINGLE: 4.04962457600000000000e+09 / 0x4f71605e (0x10 => INEXACT ) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +05 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +06 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +07 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +07 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +08 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 DOUBLE: 1.17549435082228750797e-38 / 0x003810000000000000 (0 => OK) +10 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +11 DOUBLE: 5.96046000000000015662e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +11 SINGLE: 8.64026624000000000000e+08 / 0x4e4e0000 (0x10 => INEXACT ) +12 DOUBLE: 6.09755999999999994299e-05 / 0x003f0ff801a9af58a1 (0 => OK) +12 SINGLE: 9.47896384000000000000e+08 / 0x4e61ff01 (0x10 => INEXACT ) +13 DOUBLE: 6.10352000000000013665e-05 / 0x003f100000c06a1ef5 (0 => OK) +13 SINGLE: 9.47912768000000000000e+08 / 0x4e620001 (0x10 => INEXACT ) +14 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +14 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +15 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +15 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +16 DOUBLE: 2.22507385850720138310e-308 / 0x000010000000000000 (0 => OK) +16 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 1.37899728486072282844e-308 / 0x000009ea82a2287680 (0 => OK) +17 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT ) +18 DOUBLE: 1.49147387366816238764e-308 / 0x00000ab98fba843210 (0 => OK) +18 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0x18 => UNDERFLOW INEXACT ) +19 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +19 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +20 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +20 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +21 DOUBLE: 2.71828182845904509080e+00 / 0x004005bf0a8b145769 (0 => OK) +21 SINGLE: 1.07675456000000000000e+09 / 0x4e805bf1 (0x10 => INEXACT ) +22 DOUBLE: 3.14159265358979311600e+00 / 0x00400921fb54442d18 (0 => OK) +22 SINGLE: 1.07853004800000000000e+09 / 0x4e809220 (0x10 => INEXACT ) +23 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +23 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -8.18560000000000000000e+04 / 0xc79fe000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -6.56000000000000000000e+04 / 0xc7802000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -6.55360000000000000000e+04 / 0xc7800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: 6.55360000000000000000e+04 / 0x47800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: 6.56000000000000000000e+04 / 0x47802000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: 8.18560000000000000000e+04 / 0x479fe000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: -1.31008000000000000000e+05 / 0x00c0fffc0000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: -8.18560000000000000000e+04 / 0x00c0f3fc0000000000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: -6.56000000000000000000e+04 / 0x00c0f0040000000000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: -6.55360000000000000000e+04 / 0x00c0f0000000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: 6.55360000000000000000e+04 / 0x0040f0000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: 6.56000000000000000000e+04 / 0x0040f0040000000000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: 8.18560000000000000000e+04 / 0x0040f3fc0000000000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +### Rounding downwards +Converting single-precision to half-precision +00 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +00 HALF: 0xffff (0x1 => INVALID) +01 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +01 HALF: 0xffff (0x1 => INVALID) +02 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +02 HALF: 0xffff (0x1 => INVALID) +03 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +03 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +04 SINGLE: -1.78051176151664730512e-20 / 0x9ea82a22 (0 => OK) +04 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +05 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +05 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +06 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +06 HALF: 0000 (0 => OK) +07 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +07 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +08 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +09 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +10 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +10 HALF: 0x400 (0x10 => INEXACT ) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +12 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +12 HALF: 0x3c01 (0 => OK) +13 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +13 HALF: 0x4000 (0 => OK) +14 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +14 HALF: 0x416f (0x10 => INEXACT ) +15 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +15 HALF: 0x4248 (0x10 => INEXACT ) +16 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +16 HALF: 0x7bfe (0x10 => INEXACT ) +17 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +17 HALF: 0x7bff (0 => OK) +18 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +18 HALF: 0x7bff (0x10 => INEXACT ) +19 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +19 HALF: 0x7ffe (0x10 => INEXACT ) +20 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +20 HALF: 0x7fff (0 => OK) +21 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +21 HALF: 0x7fff (0x10 => INEXACT ) +22 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +22 HALF: 0x7fff (0x1 => INVALID) +23 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +23 HALF: 0x7fff (0x1 => INVALID) +Converting single-precision to double-precision +00 SINGLE: -3.40282346638528859812e+38 / 0xff7fffff (0 => OK) +00 DOUBLE: 1.44070152074213457920e+19 / 0x0043e8fdfffffc0000 (0 => OK) +01 SINGLE: -1.11100004769645909791e+31 / 0xf30c3a59 (0 => OK) +01 DOUBLE: 1.42948554489798328320e+19 / 0x0043e8cc30e9640000 (0 => OK) +02 SINGLE: -1.11100003258488635273e+30 / 0xf1605d5b (0 => OK) +02 DOUBLE: 1.42798013491629260800e+19 / 0x0043e8c581756c0000 (0 => OK) +03 SINGLE: -1.08700982243137289629e-12 / 0xab98fba8 (0 => OK) +03 DOUBLE: 1.36512894828617400320e+19 / 0x0043e7ae63eea00000 (0 => OK) +04 SINGLE: -1.78051176151664730512e-20 / 0x9ea82a22 (0 => OK) +04 DOUBLE: 1.35347300458215505920e+19 / 0x0043e77aa0a8880000 (0 => OK) +05 SINGLE: -1.17549435082228750797e-38 / 0x80800000 (0 => OK) +05 DOUBLE: 1.32631009026061107200e+19 / 0x0043e7020000000000 (0 => OK) +06 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +06 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +07 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +07 DOUBLE: 4.03972886575133491200e+18 / 0x0043cc080000000000 (0 => OK) +08 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +08 DOUBLE: 4.49909602076380364800e+18 / 0x0043cf37ffff300000 (0 => OK) +09 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +09 DOUBLE: 4.54412323490313011200e+18 / 0x0043cf87fc00d00000 (0 => OK) +10 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +10 DOUBLE: 4.54413202723805593600e+18 / 0x0043cf880000600000 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +11 DOUBLE: 4.60718241880001740800e+18 / 0x0043cff80000000000 (0 => OK) +12 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +12 DOUBLE: 4.60718681684652851200e+18 / 0x0043cff80200000000 (0 => OK) +13 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +13 DOUBLE: 4.61168601842738790400e+18 / 0x0043d0000000000000 (0 => OK) +14 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +14 DOUBLE: 4.61330344512900300800e+18 / 0x0043d0016fc2a00000 (0 => OK) +15 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +15 DOUBLE: 4.61425665674890444800e+18 / 0x0043d002487ed80000 (0 => OK) +16 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +16 DOUBLE: 4.67923547735248076800e+18 / 0x0043d03bfef8000000 (0 => OK) +17 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +17 DOUBLE: 4.67923561479143424000e+18 / 0x0043d03bff00000000 (0 => OK) +18 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +18 DOUBLE: 4.67923575223038771200e+18 / 0x0043d03bff08000000 (0 => OK) +19 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +19 DOUBLE: 4.68373914569932800000e+18 / 0x0043d03ffefc000000 (0 => OK) +20 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +20 DOUBLE: 4.68373921441880473600e+18 / 0x0043d03fff00000000 (0 => OK) +21 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +21 DOUBLE: 4.68373928313828147200e+18 / 0x0043d03fff04000000 (0 => OK) +22 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +22 DOUBLE: 5.05642931230815027200e+18 / 0x0043d18b02ead80000 (0 => OK) +23 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +23 DOUBLE: 5.18364317056656998400e+18 / 0x0043d1fbfffff80000 (0 => OK) +Converting double-precision to half-precision +00 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +00 HALF: 0xffff (0x1 => INVALID) +01 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +01 HALF: 0xffff (0x1 => INVALID) +02 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +02 HALF: 0xffff (0x1 => INVALID) +03 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK) +03 HALF: 0xffff (0x1 => INVALID) +04 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +04 HALF: 0xffff (0x1 => INVALID) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +07 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK) +07 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +08 HALF: 0x8001 (0x18 => UNDERFLOW INEXACT ) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +10 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +11 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +12 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +12 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +13 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +13 HALF: 0x400 (0x10 => INEXACT ) +14 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +14 HALF: 0x3c00 (0 => OK) +15 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +15 HALF: 0x3c01 (0 => OK) +16 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +16 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +17 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +18 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +18 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +19 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +19 HALF: 0x3c00 (0 => OK) +20 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +20 HALF: 0x4000 (0 => OK) +21 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +21 HALF: 0x416f (0x10 => INEXACT ) +22 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +22 HALF: 0x4248 (0x10 => INEXACT ) +23 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +23 HALF: 0x7bfe (0x10 => INEXACT ) +Converting double-precision to single-precision +00 DOUBLE: -1.79769313486231570815e+308 / 0x00ffefffffffffffff (0 => OK) +00 SINGLE: 4.28657868800000000000e+09 / 0x4f7f8000 (0x14 => OVERFLOW INEXACT ) +01 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +01 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +02 DOUBLE: -3.40282346638528859812e+38 / 0x00c7efffffe0000000 (0 => OK) +02 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +03 DOUBLE: -1.11100000000000007530e+31 / 0x00c661874b135ff654 (0 => OK) +03 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT ) +04 DOUBLE: -1.11099999999999999085e+30 / 0x00c62c0bab523323b9 (0 => OK) +04 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT ) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +05 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +06 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +07 DOUBLE: -2.22507385850720138310e-308 / 0x008010000000000000 (0 => OK) +07 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +08 DOUBLE: -1.17549435082228750797e-38 / 0x00b810000000000000 (0 => OK) +08 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +10 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +11 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +11 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff (0x10 => INEXACT ) +12 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +12 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT ) +13 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +13 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT ) +14 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +14 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +15 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +15 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +16 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +16 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +17 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +18 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +18 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +19 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +19 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +20 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +20 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +21 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +21 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0 (0x10 => INEXACT ) +22 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +22 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f (0x10 => INEXACT ) +23 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +23 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -8.18560000000000000000e+04 / 0xc79fe000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -6.56000000000000000000e+04 / 0xc7802000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -6.55360000000000000000e+04 / 0xc7800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: 6.55360000000000000000e+04 / 0x47800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: 6.56000000000000000000e+04 / 0x47802000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: 8.18560000000000000000e+04 / 0x479fe000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: -1.31008000000000000000e+05 / 0x00c0fffc0000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: -8.18560000000000000000e+04 / 0x00c0f3fc0000000000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: -6.56000000000000000000e+04 / 0x00c0f0040000000000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: -6.55360000000000000000e+04 / 0x00c0f0000000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: 6.55360000000000000000e+04 / 0x0040f0000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: 6.56000000000000000000e+04 / 0x0040f0040000000000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: 8.18560000000000000000e+04 / 0x0040f3fc0000000000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK) +### Rounding to zero +Converting single-precision to half-precision +00 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +00 HALF: 0xffff (0x1 => INVALID) +01 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +01 HALF: 0xffff (0x1 => INVALID) +02 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +02 HALF: 0xffff (0x1 => INVALID) +03 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +03 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +04 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +04 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +05 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +05 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +06 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +06 HALF: 0000 (0 => OK) +07 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +07 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +08 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +08 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +09 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +09 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +10 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +10 HALF: 0x400 (0x10 => INEXACT ) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +12 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +12 HALF: 0x3c01 (0 => OK) +13 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +13 HALF: 0x4000 (0 => OK) +14 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +14 HALF: 0x416f (0x10 => INEXACT ) +15 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +15 HALF: 0x4248 (0x10 => INEXACT ) +16 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +16 HALF: 0x7bfe (0x10 => INEXACT ) +17 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +17 HALF: 0x7bff (0 => OK) +18 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +18 HALF: 0x7bff (0x10 => INEXACT ) +19 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +19 HALF: 0x7ffe (0x10 => INEXACT ) +20 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +20 HALF: 0x7fff (0 => OK) +21 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +21 HALF: 0x7fff (0x10 => INEXACT ) +22 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +22 HALF: 0x7fff (0x1 => INVALID) +23 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +23 HALF: 0x7fff (0x1 => INVALID) +Converting single-precision to double-precision +00 SINGLE: -3.40282346638528859811e+38 / 0xff7fffff (0 => OK) +00 DOUBLE: 1.44070152074213457920e+19 / 0x0043e8fdfffffc0000 (0 => OK) +01 SINGLE: -1.11100004769645909790e+31 / 0xf30c3a59 (0 => OK) +01 DOUBLE: 1.42948554489798328320e+19 / 0x0043e8cc30e9640000 (0 => OK) +02 SINGLE: -1.11100003258488635272e+30 / 0xf1605d5b (0 => OK) +02 DOUBLE: 1.42798013491629260800e+19 / 0x0043e8c581756c0000 (0 => OK) +03 SINGLE: -1.08700982243137289628e-12 / 0xab98fba8 (0 => OK) +03 DOUBLE: 1.36512894828617400320e+19 / 0x0043e7ae63eea00000 (0 => OK) +04 SINGLE: -1.78051176151664730511e-20 / 0x9ea82a22 (0 => OK) +04 DOUBLE: 1.35347300458215505920e+19 / 0x0043e77aa0a8880000 (0 => OK) +05 SINGLE: -1.17549435082228750796e-38 / 0x80800000 (0 => OK) +05 DOUBLE: 1.32631009026061107200e+19 / 0x0043e7020000000000 (0 => OK) +06 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +06 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +07 SINGLE: 1.17549435082228750796e-38 / 0x00800000 (0 => OK) +07 DOUBLE: 4.03972886575133491200e+18 / 0x0043cc080000000000 (0 => OK) +08 SINGLE: 5.96045985901128005934e-08 / 0x337ffff3 (0 => OK) +08 DOUBLE: 4.49909602076380364800e+18 / 0x0043cf37ffff300000 (0 => OK) +09 SINGLE: 6.09755988989491015672e-05 / 0x387fc00d (0 => OK) +09 DOUBLE: 4.54412323490313011200e+18 / 0x0043cf87fc00d00000 (0 => OK) +10 SINGLE: 6.10351999057456851005e-05 / 0x38800006 (0 => OK) +10 DOUBLE: 4.54413202723805593600e+18 / 0x0043cf880000600000 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +11 DOUBLE: 4.60718241880001740800e+18 / 0x0043cff80000000000 (0 => OK) +12 SINGLE: 1.00097656250000000000e+00 / 0x3f802000 (0 => OK) +12 DOUBLE: 4.60718681684652851200e+18 / 0x0043cff80200000000 (0 => OK) +13 SINGLE: 2.00000000000000000000e+00 / 0x40000000 (0 => OK) +13 DOUBLE: 4.61168601842738790400e+18 / 0x0043d0000000000000 (0 => OK) +14 SINGLE: 2.71828174591064453125e+00 / 0x402df854 (0 => OK) +14 DOUBLE: 4.61330344512900300800e+18 / 0x0043d0016fc2a00000 (0 => OK) +15 SINGLE: 3.14159274101257324218e+00 / 0x40490fdb (0 => OK) +15 DOUBLE: 4.61425665674890444800e+18 / 0x0043d002487ed80000 (0 => OK) +16 SINGLE: 6.55030000000000000000e+04 / 0x477fdf00 (0 => OK) +16 DOUBLE: 4.67923547735248076800e+18 / 0x0043d03bfef8000000 (0 => OK) +17 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +17 DOUBLE: 4.67923561479143424000e+18 / 0x0043d03bff00000000 (0 => OK) +18 SINGLE: 6.55050000000000000000e+04 / 0x477fe100 (0 => OK) +18 DOUBLE: 4.67923575223038771200e+18 / 0x0043d03bff08000000 (0 => OK) +19 SINGLE: 1.31007000000000000000e+05 / 0x47ffdf80 (0 => OK) +19 DOUBLE: 4.68373914569932800000e+18 / 0x0043d03ffefc000000 (0 => OK) +20 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +20 DOUBLE: 4.68373921441880473600e+18 / 0x0043d03fff00000000 (0 => OK) +21 SINGLE: 1.31009000000000000000e+05 / 0x47ffe080 (0 => OK) +21 DOUBLE: 4.68373928313828147200e+18 / 0x0043d03fff04000000 (0 => OK) +22 SINGLE: 1.11100003258488635272e+30 / 0x71605d5b (0 => OK) +22 DOUBLE: 5.05642931230815027200e+18 / 0x0043d18b02ead80000 (0 => OK) +23 SINGLE: 3.40282346638528859811e+38 / 0x7f7fffff (0 => OK) +23 DOUBLE: 5.18364317056656998400e+18 / 0x0043d1fbfffff80000 (0 => OK) +Converting double-precision to half-precision +00 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +00 HALF: 0xffff (0x1 => INVALID) +01 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +01 HALF: 0xffff (0x1 => INVALID) +02 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +02 HALF: 0xffff (0x1 => INVALID) +03 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +03 HALF: 0xffff (0x1 => INVALID) +04 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +04 HALF: 0xffff (0x1 => INVALID) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +07 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +07 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +08 HALF: 0x8000 (0x18 => UNDERFLOW INEXACT ) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +10 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +11 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +11 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +12 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +12 HALF: 0x3ff (0x18 => UNDERFLOW INEXACT ) +13 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +13 HALF: 0x400 (0x10 => INEXACT ) +14 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +14 HALF: 0x3c00 (0 => OK) +15 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +15 HALF: 0x3c01 (0 => OK) +16 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +16 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +17 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +18 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +18 HALF: 0000 (0x18 => UNDERFLOW INEXACT ) +19 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +19 HALF: 0x3c00 (0 => OK) +20 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +20 HALF: 0x4000 (0 => OK) +21 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +21 HALF: 0x416f (0x10 => INEXACT ) +22 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +22 HALF: 0x4248 (0x10 => INEXACT ) +23 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +23 HALF: 0x7bfe (0x10 => INEXACT ) +Converting double-precision to single-precision +00 DOUBLE: -1.79769313486231570814e+308 / 0x00ffefffffffffffff (0 => OK) +00 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x14 => OVERFLOW INEXACT ) +01 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +01 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +02 DOUBLE: -3.40282346638528859811e+38 / 0x00c7efffffe0000000 (0 => OK) +02 SINGLE: 4.28657843200000000000e+09 / 0x4f7f7fff (0x10 => INEXACT ) +03 DOUBLE: -1.11100000000000007529e+31 / 0x00c661874b135ff654 (0 => OK) +03 SINGLE: 4.07766476800000000000e+09 / 0x4f730c3a (0x10 => INEXACT ) +04 DOUBLE: -1.11099999999999999084e+30 / 0x00c62c0bab523323b9 (0 => OK) +04 SINGLE: 4.04962432000000000000e+09 / 0x4f71605d (0x10 => INEXACT ) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +05 SINGLE: 3.22122547200000000000e+09 / 0x4f400000 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +06 SINGLE: 3.21283686400000000000e+09 / 0x4f3f8000 (0 => OK) +07 DOUBLE: -2.22507385850720138309e-308 / 0x008010000000000000 (0 => OK) +07 SINGLE: 2.14748364800000000000e+09 / 0x4f000000 (0x18 => UNDERFLOW INEXACT ) +08 DOUBLE: -1.17549435082228750796e-38 / 0x00b810000000000000 (0 => OK) +08 SINGLE: 2.15587225600000000000e+09 / 0x4f008000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 DOUBLE: 1.17549435082228750796e-38 / 0x003810000000000000 (0 => OK) +10 SINGLE: 8.38860800000000000000e+06 / 0x4b000000 (0 => OK) +11 DOUBLE: 5.96046000000000015661e-08 / 0x003e6ffffe6cb2fa82 (0 => OK) +11 SINGLE: 8.64026560000000000000e+08 / 0x4e4dffff (0x10 => INEXACT ) +12 DOUBLE: 6.09755999999999994298e-05 / 0x003f0ff801a9af58a1 (0 => OK) +12 SINGLE: 9.47896320000000000000e+08 / 0x4e61ff00 (0x10 => INEXACT ) +13 DOUBLE: 6.10352000000000013664e-05 / 0x003f100000c06a1ef5 (0 => OK) +13 SINGLE: 9.47912704000000000000e+08 / 0x4e620000 (0x10 => INEXACT ) +14 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +14 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +15 DOUBLE: 1.00097656250000000000e+00 / 0x003ff0040000000000 (0 => OK) +15 SINGLE: 1.06536140800000000000e+09 / 0x4e7e0080 (0 => OK) +16 DOUBLE: 2.22507385850720138309e-308 / 0x000010000000000000 (0 => OK) +16 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +17 DOUBLE: 1.37899728486072282843e-308 / 0x000009ea82a2287680 (0 => OK) +17 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +18 DOUBLE: 1.49147387366816238763e-308 / 0x00000ab98fba843210 (0 => OK) +18 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0x18 => UNDERFLOW INEXACT ) +19 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +19 SINGLE: 1.06535321600000000000e+09 / 0x4e7e0000 (0 => OK) +20 DOUBLE: 2.00000000000000000000e+00 / 0x004000000000000000 (0 => OK) +20 SINGLE: 1.07374182400000000000e+09 / 0x4e800000 (0 => OK) +21 DOUBLE: 2.71828182845904509079e+00 / 0x004005bf0a8b145769 (0 => OK) +21 SINGLE: 1.07675443200000000000e+09 / 0x4e805bf0 (0x10 => INEXACT ) +22 DOUBLE: 3.14159265358979311599e+00 / 0x00400921fb54442d18 (0 => OK) +22 SINGLE: 1.07852992000000000000e+09 / 0x4e80921f (0x10 => INEXACT ) +23 DOUBLE: 6.55030000000000000000e+04 / 0x0040effbe000000000 (0 => OK) +23 SINGLE: 1.19956249600000000000e+09 / 0x4e8effbe (0 => OK) +Converting half-precision to single-precision +00 HALF: 0xffff (0 => OK) +00 SINGLE: -1.31008000000000000000e+05 / 0xc7ffe000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 SINGLE: -8.18560000000000000000e+04 / 0xc79fe000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 SINGLE: -6.56000000000000000000e+04 / 0xc7802000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 SINGLE: -6.55360000000000000000e+04 / 0xc7800000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 SINGLE: -6.55040000000000000000e+04 / 0xc77fe000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 SINGLE: -2.00000000000000000000e+00 / 0xc0000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 SINGLE: -1.00000000000000000000e+00 / 0xbf800000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 SINGLE: -5.96046447753906250000e-08 / 0xb3800000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 SINGLE: -0.00000000000000000000e+00 / 0x80000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 SINGLE: 0.00000000000000000000e+00 / 0000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 SINGLE: 5.96046447753906250000e-08 / 0x33800000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 SINGLE: 1.00000000000000000000e+00 / 0x3f800000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 SINGLE: 6.55040000000000000000e+04 / 0x477fe000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 SINGLE: 6.55360000000000000000e+04 / 0x47800000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 SINGLE: 6.56000000000000000000e+04 / 0x47802000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 SINGLE: 8.18560000000000000000e+04 / 0x479fe000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 SINGLE: 1.31008000000000000000e+05 / 0x47ffe000 (0 => OK) +Converting half-precision to double-precision +00 HALF: 0xffff (0 => OK) +00 DOUBLE: -1.31008000000000000000e+05 / 0x00c0fffc0000000000 (0 => OK) +01 HALF: 0xfcff (0 => OK) +01 DOUBLE: -8.18560000000000000000e+04 / 0x00c0f3fc0000000000 (0 => OK) +02 HALF: 0xfc01 (0 => OK) +02 DOUBLE: -6.56000000000000000000e+04 / 0x00c0f0040000000000 (0 => OK) +03 HALF: 0xfc00 (0 => OK) +03 DOUBLE: -6.55360000000000000000e+04 / 0x00c0f0000000000000 (0 => OK) +04 HALF: 0xfbff (0 => OK) +04 DOUBLE: -6.55040000000000000000e+04 / 0x00c0effc0000000000 (0 => OK) +05 HALF: 0xc000 (0 => OK) +05 DOUBLE: -2.00000000000000000000e+00 / 0x00c000000000000000 (0 => OK) +06 HALF: 0xbc00 (0 => OK) +06 DOUBLE: -1.00000000000000000000e+00 / 0x00bff0000000000000 (0 => OK) +07 HALF: 0x8001 (0 => OK) +07 DOUBLE: -5.96046447753906250000e-08 / 0x00be70000000000000 (0 => OK) +08 HALF: 0x8000 (0 => OK) +08 DOUBLE: -0.00000000000000000000e+00 / 0x008000000000000000 (0 => OK) +09 HALF: 0000 (0 => OK) +09 DOUBLE: 0.00000000000000000000e+00 / 00000000000000000000 (0 => OK) +10 HALF: 0x01 (0 => OK) +10 DOUBLE: 5.96046447753906250000e-08 / 0x003e70000000000000 (0 => OK) +11 HALF: 0x3c00 (0 => OK) +11 DOUBLE: 1.00000000000000000000e+00 / 0x003ff0000000000000 (0 => OK) +12 HALF: 0x7bff (0 => OK) +12 DOUBLE: 6.55040000000000000000e+04 / 0x0040effc0000000000 (0 => OK) +13 HALF: 0x7c00 (0 => OK) +13 DOUBLE: 6.55360000000000000000e+04 / 0x0040f0000000000000 (0 => OK) +14 HALF: 0x7c01 (0 => OK) +14 DOUBLE: 6.56000000000000000000e+04 / 0x0040f0040000000000 (0 => OK) +15 HALF: 0x7cff (0 => OK) +15 DOUBLE: 8.18560000000000000000e+04 / 0x0040f3fc0000000000 (0 => OK) +16 HALF: 0x7fff (0 => OK) +16 DOUBLE: 1.31008000000000000000e+05 / 0x0040fffc0000000000 (0 => OK)