/* ---------------------------------------------------------------------------------------------------*/ /* Port of the Intel Decimal Floating-Point Math Library decimal128 type to Rust. */ /* decmathlib-rs - Copyright (C) 2023-2024 Carlos Guzmán Álvarez */ /* -------------------------------------------------------------------------------------------------- */ /* Licensed under the MIT license. See LICENSE file in the project root for full license information. */ /* -------------------------------------------------------------------------------------------------- */ /* Intel® Decimal Floating-Point Math Library - Copyright (c) 2018 Intel Corp. */ /* -------------------------------------------------------------------------------------------------- */ mod common; dec_test!(bid128_sqrt_001, bid128_sqrt, 0, 0x00000000000000000000000000000001u128 , 0x18200000000000000000000000000001u128, 0x00); // ulp=0.0000000000e-01 dec_test!(bid128_sqrt_002, bid128_sqrt, 0, 0x00000000000000000000000000000003u128 , 0x17DE55658DFFFA507518F7F77E975350u128, 0x20); // ulp=3.6694280525e-01 dec_test!(bid128_sqrt_003, bid128_sqrt, 0, 0x00000000000000310000000000000000u128 , 0x18200000000000000000000700000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_004, bid128_sqrt, 0, 0x0000002804800000ffdfffef7fffff7eu128 , 0x17fc57ca4550ef95cbee94388c26e725u128, 0x20); // ulp=4.534828e-01 dec_test!(bid128_sqrt_005, bid128_sqrt, 0, 0x0000106F4216D9DBBD95C90355555555u128 , 0x17FE5A041A1CC10D9F382CE290E1FAC6u128, 0x20); // ulp=2.0030488647e-01 dec_test!(bid128_sqrt_006, bid128_sqrt, 0, 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x17ffed09bead87c0378d8e637fffffffu128, 0x20); // ulp=5.000000e-01 dec_test!(bid128_sqrt_007, bid128_sqrt, 0, 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x18200000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_008, bid128_sqrt, 0, 0x00420000000000000000000000000001u128 , 0x17FE9BE98E340036BAA9BAF39995E44Fu128, 0x20); // ulp=-4.6628044486e-01 dec_test!(bid128_sqrt_009, bid128_sqrt, 0, 0x00420000000000000000000000000003u128 , 0x17FF0E0C4E564328DDA886A7B2A5F055u128, 0x20); // ulp=3.3952744695e-01 dec_test!(bid128_sqrt_010, bid128_sqrt, 0, 0 , 0x30400000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_011, bid128_sqrt, 0, 0x05038de0f17e426d6b91004dfd53342cu128 , 0x1a808c0f7a9a44ff095082e7d6367a6bu128, 0x20); // ulp=4.138959e-01 dec_test!(bid128_sqrt_012, bid128_sqrt, 0, 0x0800000000000000206400c40a400119u128 , 0x1bf04b52cc1f7db2a58b2a6093509ee7u128, 0x20); // ulp=-4.837270e-01 dec_test!(bid128_sqrt_013, bid128_sqrt, 0, "-0" , 0xb0400000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_014, bid128_sqrt, 0, 0x10000000008004205e7fdfbddfffbff9u128 , 0x1ff83d55e9c4a323b0e1891566423764u128, 0x20); // ulp=2.073916e-01 dec_test!(bid128_sqrt_015, bid128_sqrt, 0, "+10.00000E0" , 0x2ffe9be98e340036baa9baf39995e44fu128, 0x20); // ulp=-4.662804e-01 dec_test!(bid128_sqrt_016, bid128_sqrt, 0, "+10001110.0110111111E0" , 0x30049bebc548e98eb8be0d51c2e22928u128, 0x20); // ulp=-3.571008e-02 dec_test!(bid128_sqrt_017, bid128_sqrt, 0, 0x145e0000000000000000000000000000u128 , 0x224e0000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_018, bid128_sqrt, 0, 0x18b7bfae9b1f4cd36e1a58583cb8f429u128 , 0x245a949163c589dbbc0206fd9be4d367u128, 0x20); // ulp=-1.225422e-01 dec_test!(bid128_sqrt_019, bid128_sqrt, 0, 0x24dc0000000000000000000000000000u128 , 0x2a8e0000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_020, bid128_sqrt, 0, 0x2FFDED09BEAD87C0378D8E63FFFFFFFFu128 , 0x2FFDED09BEAD87C0378D8E63FFFFFFFFu128, 0x20); // ulp=5.0000000000e-01 dec_test!(bid128_sqrt_021, bid128_sqrt, 0, 0x303C000000000000000000000000013Au128 , 0x2FFE575DD763E390A4D07752A9EA0920u128, 0x20); // ulp=-4.7492639148e-01 dec_test!(bid128_sqrt_022, bid128_sqrt, 0, 0x303C000000000000000000000000013Bu128 , 0x2FFE57816D6DAB48A232A5AA1ACE89C5u128, 0x20); // ulp=1.1452465037e-01 dec_test!(bid128_sqrt_023, bid128_sqrt, 0, 0x304a314dc6448d9338c15b0a00000000u128 , 0x3044000000000000016345785d8a0000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_024, bid128_sqrt, 0, 0x3b05549e5eeca99c61e341325bc32858u128 , 0x358199cd65cc7745395cbe07a42f485eu128, 0x20); // ulp=-3.993978e-01 dec_test!(bid128_sqrt_025, bid128_sqrt, 0, 0x3c83470f45c155edf4f0313bcb5f33b1u128 , 0x36407efc41b4c7d38c8adbf7a90e62e2u128, 0x20); // ulp=4.398015e-01 dec_test!(bid128_sqrt_026, bid128_sqrt, 0, 0x52f2c948b8081147362e8073cb795f72u128 , 0x4178639e9fef7d9f733b3af0660f14cfu128, 0x20); // ulp=-4.284199e-01 dec_test!(bid128_sqrt_027, bid128_sqrt, 0, 0x54f235e0f39b4658eb89eb9c377a8ab3u128 , 0x4278338a5fee08eb37ca8c3ce4bce950u128, 0x20); // ulp=1.587776e-01 dec_test!(bid128_sqrt_028, bid128_sqrt, 0, "+5585.897659988886E0" , 0x3001707db521720fff55a8fe258738ccu128, 0x20); // ulp=3.306138e-01 dec_test!(bid128_sqrt_029, bid128_sqrt, 0, 0x5FFEA45894E4829567D9DA2155555555u128 , 0x47FE5A041A1CC10D9F382CE290E1FAC7u128, 0x20); // ulp=2.1888722732e-02 dec_test!(bid128_sqrt_030, bid128_sqrt, 0, 0x5FFFED09BEAD87C0378D8E63FFFFFFFFu128 , 0x47FE9BE98E340036BAA9BAF39995E44Eu128, 0x20); // ulp=3.7560567213e-01 dec_test!(bid128_sqrt_031, bid128_sqrt, 0, "-6776897.6567677685E0" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_032, bid128_sqrt, 0, "+759.789987598E0" , 0x300087e705e539e0dc92caf13d8b63bbu128, 0x20); // ulp=-4.545603e-01 dec_test!(bid128_sqrt_033, bid128_sqrt, 0, 0x761b369c37ee6bb0c2401bcd0d60fc1eu128 , 0x44560000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_034, bid128_sqrt, 0, "+765986675886.59596E0" , 0x3009af829bfc2bdc08098c563f768a9eu128, 0x20); // ulp=2.170949e-01 dec_test!(bid128_sqrt_035, bid128_sqrt, 0, "+776974289.4239584644E0" , 0x3006896e42b1c1ddd1d1767e83d51f62u128, 0x20); // ulp=9.169444e-02 dec_test!(bid128_sqrt_036, bid128_sqrt, 0, 0x78000000000000000000000000000000u128 , 0x78000000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_037, bid128_sqrt, 0, 0x7c003fffffffffff38c15b08ffffffffu128 , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sqrt_038, bid128_sqrt, 0, 0x7c003fffffffffff38c15b0affffffffu128 , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sqrt_039, bid128_sqrt, 0, 0x7e36b56bebfdfffda96e7bd7e8e7ecb8u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_040, bid128_sqrt, 0, 0x8217d61037c6e30616b21a9dd78f9ab6u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_041, bid128_sqrt, 0, 0x88780ea2ea66a0bf9bc914a1f8d8b0b5u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_042, bid128_sqrt, 0, 0x91a35ddd15bc2cffb23dc8a4458741f4u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_043, bid128_sqrt, 0, "+988889.988E0" , 0x3003ea4aa56cdf08056860f316867df1u128, 0x20); // ulp=2.089759e-02 dec_test!(bid128_sqrt_044, bid128_sqrt, 0, 0xa66db51bbbbe0d60f50294a9ff0610ccu128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_045, bid128_sqrt, 0, 0xa7e68c6db01481e22152385f8f3c9405u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_046, bid128_sqrt, 0, 0xaaae0000000000000000000000000000u128 , 0xad760000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_047, bid128_sqrt, 0, 0xb05e0000000000000000000000000000u128 , 0xb04e0000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_048, bid128_sqrt, 0, 0xb96ceba4dc91051257524ab75a1abd0eu128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_049, bid128_sqrt, 0, 0xbf5595878901bfefd875802ad9071e5cu128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_050, bid128_sqrt, 0, 0xbffbffffebce77df0308040410080c04u128 , 0xb81c0000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_051, bid128_sqrt, 0, 0xc5881682e2e5fea70ef0f6db969cfd22u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_052, bid128_sqrt, 0, 0xc6b2dcd4c0a1eec3b05ef7e90c33c10au128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_053, bid128_sqrt, 0, 0xd0b153b167979a385ea16a14b9854a20u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_054, bid128_sqrt, 0, 0xdc80cc4102f0d53273ce592590b3e13cu128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_055, bid128_sqrt, 0, 0xfbbe7f3dfffdfd775f61e9fd6e4f670fu128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_056, bid128_sqrt, 0, "Infinity" , 0x78000000000000000000000000000000u128, 0x00); dec_test!(bid128_sqrt_057, bid128_sqrt, 0, "-Infinity" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_058, bid128_sqrt, 0, "QNaN" , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sqrt_059, bid128_sqrt, 0, "SNaN" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_060, bid128_sqrt, 1, 0x00000000000000000000000000000003u128 , 0x17DE55658DFFFA507518F7F77E975350u128, 0x20); // ulp=3.6694280525e-01 dec_test!(bid128_sqrt_061, bid128_sqrt, 1, 0x0000106F4216D9DBBD95C90355555555u128 , 0x17FE5A041A1CC10D9F382CE290E1FAC6u128, 0x20); // ulp=2.0030488647e-01 dec_test!(bid128_sqrt_062, bid128_sqrt, 1, 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x17ffed09bead87c0378d8e637fffffffu128, 0x20); // ulp=5.000000e-01 dec_test!(bid128_sqrt_063, bid128_sqrt, 1, 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x18200000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_064, bid128_sqrt, 1, 0x00420000000000000000000000000001u128 , 0x17FE9BE98E340036BAA9BAF39995E44Eu128, 0x20); // ulp=5.3371955514e-01 dec_test!(bid128_sqrt_065, bid128_sqrt, 1, 0x00420000000000000000000000000003u128 , 0x17FF0E0C4E564328DDA886A7B2A5F055u128, 0x20); // ulp=3.3952744695e-01 dec_test!(bid128_sqrt_066, bid128_sqrt, 1, 0 , 0x30400000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_067, bid128_sqrt, 1, 0x05038de0f17e426d6b91004dfd53342cu128 , 0x1a808c0f7a9a44ff095082e7d6367a6bu128, 0x20); // ulp=4.138959e-01 dec_test!(bid128_sqrt_068, bid128_sqrt, 1, "-0" , 0xb0400000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_069, bid128_sqrt, 1, "+10.00000E0" , 0x2ffe9be98e340036baa9baf39995e44eu128, 0x20); // ulp=5.337196e-01 dec_test!(bid128_sqrt_070, bid128_sqrt, 1, "+10001110.0110111111E0" , 0x30049bebc548e98eb8be0d51c2e22927u128, 0x20); // ulp=9.642899e-01 dec_test!(bid128_sqrt_071, bid128_sqrt, 1, 0x145e0000000000000000000000000000u128 , 0x224e0000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_072, bid128_sqrt, 1, 0x24dc0000000000000000000000000000u128 , 0x2a8e0000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_073, bid128_sqrt, 1, 0x303C000000000000000000000000013Au128 , 0x2FFE575DD763E390A4D07752A9EA091Fu128, 0x20); // ulp=5.2507360852e-01 dec_test!(bid128_sqrt_074, bid128_sqrt, 1, 0x303C000000000000000000000000013Bu128 , 0x2FFE57816D6DAB48A232A5AA1ACE89C5u128, 0x20); // ulp=1.1452465037e-01 dec_test!(bid128_sqrt_075, bid128_sqrt, 1, 0x3b05549e5eeca99c61e341325bc32858u128 , 0x358199cd65cc7745395cbe07a42f485du128, 0x20); // ulp=6.006022e-01 dec_test!(bid128_sqrt_076, bid128_sqrt, 1, 0x3c83470f45c155edf4f0313bcb5f33b1u128 , 0x36407efc41b4c7d38c8adbf7a90e62e2u128, 0x20); // ulp=4.398015e-01 dec_test!(bid128_sqrt_077, bid128_sqrt, 1, 0x52f2c948b8081147362e8073cb795f72u128 , 0x4178639e9fef7d9f733b3af0660f14ceu128, 0x20); // ulp=5.715801e-01 dec_test!(bid128_sqrt_078, bid128_sqrt, 1, "+5585.897659988886E0" , 0x3001707db521720fff55a8fe258738ccu128, 0x20); // ulp=3.306138e-01 dec_test!(bid128_sqrt_079, bid128_sqrt, 1, 0x5FFEA45894E4829567D9DA2155555555u128 , 0x47FE5A041A1CC10D9F382CE290E1FAC7u128, 0x20); // ulp=2.1888722732e-02 dec_test!(bid128_sqrt_080, bid128_sqrt, 1, 0x5FFFED09BEAD87C0378D8E63FFFFFFFFu128 , 0x47FE9BE98E340036BAA9BAF39995E44Eu128, 0x20); // ulp=3.7560567213e-01 dec_test!(bid128_sqrt_081, bid128_sqrt, 1, "-6776897.6567677685E0" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_082, bid128_sqrt, 1, "+759.789987598E0" , 0x300087e705e539e0dc92caf13d8b63bau128, 0x20); // ulp=5.454397e-01 dec_test!(bid128_sqrt_083, bid128_sqrt, 1, "+765986675886.59596E0" , 0x3009af829bfc2bdc08098c563f768a9eu128, 0x20); // ulp=2.170949e-01 dec_test!(bid128_sqrt_084, bid128_sqrt, 1, "+776974289.4239584644E0" , 0x3006896e42b1c1ddd1d1767e83d51f62u128, 0x20); // ulp=9.169444e-02 dec_test!(bid128_sqrt_085, bid128_sqrt, 1, 0x78000000000000000000000000000000u128 , 0x78000000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_086, bid128_sqrt, 1, 0x8217d61037c6e30616b21a9dd78f9ab6u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_087, bid128_sqrt, 1, 0x91a35ddd15bc2cffb23dc8a4458741f4u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_088, bid128_sqrt, 1, "+988889.988E0" , 0x3003ea4aa56cdf08056860f316867df1u128, 0x20); // ulp=2.089759e-02 dec_test!(bid128_sqrt_089, bid128_sqrt, 1, 0xa66db51bbbbe0d60f50294a9ff0610ccu128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_090, bid128_sqrt, 1, 0xa7e68c6db01481e22152385f8f3c9405u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_091, bid128_sqrt, 1, 0xaaae0000000000000000000000000000u128 , 0xad760000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_092, bid128_sqrt, 1, 0xb05e0000000000000000000000000000u128 , 0xb04e0000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_093, bid128_sqrt, 1, 0xb96ceba4dc91051257524ab75a1abd0eu128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_094, bid128_sqrt, 1, 0xbf5595878901bfefd875802ad9071e5cu128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_095, bid128_sqrt, 1, 0xc5881682e2e5fea70ef0f6db969cfd22u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_096, bid128_sqrt, 1, 0xc6b2dcd4c0a1eec3b05ef7e90c33c10au128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_097, bid128_sqrt, 1, 0xd0b153b167979a385ea16a14b9854a20u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_098, bid128_sqrt, 1, 0xdc80cc4102f0d53273ce592590b3e13cu128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_099, bid128_sqrt, 1, "Infinity" , 0x78000000000000000000000000000000u128, 0x00); dec_test!(bid128_sqrt_100, bid128_sqrt, 1, "-Infinity" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_101, bid128_sqrt, 1, "QNaN" , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sqrt_102, bid128_sqrt, 1, "SNaN" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_103, bid128_sqrt, 2, 0x00000000000000000000000000000003u128 , 0x17DE55658DFFFA507518F7F77E975351u128, 0x20); // ulp=-6.3305719475e-01 dec_test!(bid128_sqrt_104, bid128_sqrt, 2, 0x0000002804800000ffdfffef7fffff7eu128 , 0x17fc57ca4550ef95cbee94388c26e726u128, 0x20); // ulp=-5.465172e-01 dec_test!(bid128_sqrt_105, bid128_sqrt, 2, 0x0000106F4216D9DBBD95C90355555555u128 , 0x17FE5A041A1CC10D9F382CE290E1FAC7u128, 0x20); // ulp=-7.9969511353e-01 dec_test!(bid128_sqrt_106, bid128_sqrt, 2, 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x17ffed09bead87c0378d8e6380000000u128, 0x20); // ulp=-5.000000e-01 dec_test!(bid128_sqrt_107, bid128_sqrt, 2, 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x18200000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_108, bid128_sqrt, 2, 0x00420000000000000000000000000001u128 , 0x17FE9BE98E340036BAA9BAF39995E44Fu128, 0x20); // ulp=-4.6628044486e-01 dec_test!(bid128_sqrt_109, bid128_sqrt, 2, 0x00420000000000000000000000000003u128 , 0x17FF0E0C4E564328DDA886A7B2A5F056u128, 0x20); // ulp=-6.6047255305e-01 dec_test!(bid128_sqrt_110, bid128_sqrt, 2, 0 , 0x30400000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_111, bid128_sqrt, 2, 0x05038de0f17e426d6b91004dfd53342cu128 , 0x1a808c0f7a9a44ff095082e7d6367a6cu128, 0x20); // ulp=-5.861041e-01 dec_test!(bid128_sqrt_112, bid128_sqrt, 2, "-0" , 0xb0400000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_113, bid128_sqrt, 2, "+10.00000E0" , 0x2ffe9be98e340036baa9baf39995e44fu128, 0x20); // ulp=-4.662804e-01 dec_test!(bid128_sqrt_114, bid128_sqrt, 2, "+10001110.0110111111E0" , 0x30049bebc548e98eb8be0d51c2e22928u128, 0x20); // ulp=-3.571008e-02 dec_test!(bid128_sqrt_115, bid128_sqrt, 2, 0x145e0000000000000000000000000000u128 , 0x224e0000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_116, bid128_sqrt, 2, 0x18b7bfae9b1f4cd36e1a58583cb8f429u128 , 0x245a949163c589dbbc0206fd9be4d367u128, 0x20); // ulp=-1.225422e-01 dec_test!(bid128_sqrt_117, bid128_sqrt, 2, 0x24dc0000000000000000000000000000u128 , 0x2a8e0000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_118, bid128_sqrt, 2, 0x303C000000000000000000000000013Au128 , 0x2FFE575DD763E390A4D07752A9EA0920u128, 0x20); // ulp=-4.7492639148e-01 dec_test!(bid128_sqrt_119, bid128_sqrt, 2, 0x303C000000000000000000000000013Bu128 , 0x2FFE57816D6DAB48A232A5AA1ACE89C6u128, 0x20); // ulp=-8.8547534963e-01 dec_test!(bid128_sqrt_120, bid128_sqrt, 2, 0x3b05549e5eeca99c61e341325bc32858u128 , 0x358199cd65cc7745395cbe07a42f485eu128, 0x20); // ulp=-3.993978e-01 dec_test!(bid128_sqrt_121, bid128_sqrt, 2, 0x3c83470f45c155edf4f0313bcb5f33b1u128 , 0x36407efc41b4c7d38c8adbf7a90e62e3u128, 0x20); // ulp=-5.601985e-01 dec_test!(bid128_sqrt_122, bid128_sqrt, 2, 0x52f2c948b8081147362e8073cb795f72u128 , 0x4178639e9fef7d9f733b3af0660f14cfu128, 0x20); // ulp=-4.284199e-01 dec_test!(bid128_sqrt_123, bid128_sqrt, 2, "+5585.897659988886E0" , 0x3001707db521720fff55a8fe258738cdu128, 0x20); // ulp=-6.693862e-01 dec_test!(bid128_sqrt_124, bid128_sqrt, 2, 0x5FFEA45894E4829567D9DA2155555555u128 , 0x47FE5A041A1CC10D9F382CE290E1FAC8u128, 0x20); // ulp=-9.7811127727e-01 dec_test!(bid128_sqrt_125, bid128_sqrt, 2, 0x5FFFED09BEAD87C0378D8E63FFFFFFFFu128 , 0x47FE9BE98E340036BAA9BAF39995E44Fu128, 0x20); // ulp=-6.2439432787e-01 dec_test!(bid128_sqrt_126, bid128_sqrt, 2, "-6776897.6567677685E0" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_127, bid128_sqrt, 2, "+759.789987598E0" , 0x300087e705e539e0dc92caf13d8b63bbu128, 0x20); // ulp=-4.545603e-01 dec_test!(bid128_sqrt_128, bid128_sqrt, 2, "+765986675886.59596E0" , 0x3009af829bfc2bdc08098c563f768a9fu128, 0x20); // ulp=-7.829051e-01 dec_test!(bid128_sqrt_129, bid128_sqrt, 2, "+776974289.4239584644E0" , 0x3006896e42b1c1ddd1d1767e83d51f63u128, 0x20); // ulp=-9.083056e-01 dec_test!(bid128_sqrt_130, bid128_sqrt, 2, 0x78000000000000000000000000000000u128 , 0x78000000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_131, bid128_sqrt, 2, 0x8217d61037c6e30616b21a9dd78f9ab6u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_132, bid128_sqrt, 2, 0x91a35ddd15bc2cffb23dc8a4458741f4u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_133, bid128_sqrt, 2, "+988889.988E0" , 0x3003ea4aa56cdf08056860f316867df2u128, 0x20); // ulp=-9.791024e-01 dec_test!(bid128_sqrt_134, bid128_sqrt, 2, "9999999999999999800000000000000001" , 0x3040000000000000016345785d89ffffu128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_135, bid128_sqrt, 2, "9.999999999999999999999999999999999E-6143", 0x1800314dc6448d9338c15b0a00000000u128, 0x20); // ulp=-5.000000e-02 dec_test!(bid128_sqrt_136, bid128_sqrt, 2, 0xa66db51bbbbe0d60f50294a9ff0610ccu128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_137, bid128_sqrt, 2, 0xa7e68c6db01481e22152385f8f3c9405u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_138, bid128_sqrt, 2, 0xaaae0000000000000000000000000000u128 , 0xad760000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_139, bid128_sqrt, 2, 0xb05e0000000000000000000000000000u128 , 0xb04e0000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_140, bid128_sqrt, 2, 0xb96ceba4dc91051257524ab75a1abd0eu128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_141, bid128_sqrt, 2, 0xbf5595878901bfefd875802ad9071e5cu128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_142, bid128_sqrt, 2, 0xc5881682e2e5fea70ef0f6db969cfd22u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_143, bid128_sqrt, 2, 0xc6b2dcd4c0a1eec3b05ef7e90c33c10au128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_144, bid128_sqrt, 2, 0xd0b153b167979a385ea16a14b9854a20u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_145, bid128_sqrt, 2, 0xdc80cc4102f0d53273ce592590b3e13cu128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_146, bid128_sqrt, 2, "Infinity" , 0x78000000000000000000000000000000u128, 0x00); dec_test!(bid128_sqrt_147, bid128_sqrt, 2, "-Infinity" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_148, bid128_sqrt, 2, "QNaN" , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sqrt_149, bid128_sqrt, 2, "SNaN" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_150, bid128_sqrt, 3, 0x00000000000000000000000000000003u128 , 0x17DE55658DFFFA507518F7F77E975350u128, 0x20); // ulp=3.6694280525e-01 dec_test!(bid128_sqrt_151, bid128_sqrt, 3, 0x0000106F4216D9DBBD95C90355555556u128 , 0x17FE5A041A1CC10D9F382CE290E1FAC8u128, 0x20); // ulp=9.3891767400e-01 dec_test!(bid128_sqrt_152, bid128_sqrt, 3, 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x17ffed09bead87c0378d8e637fffffffu128, 0x20); // ulp=5.000000e-01 dec_test!(bid128_sqrt_153, bid128_sqrt, 3, 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x18200000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_154, bid128_sqrt, 3, 0x00420000000000000000000000000001u128 , 0x17FE9BE98E340036BAA9BAF39995E44Eu128, 0x20); // ulp=5.3371955514e-01 dec_test!(bid128_sqrt_155, bid128_sqrt, 3, 0x00420000000000000000000000000003u128 , 0x17FF0E0C4E564328DDA886A7B2A5F055u128, 0x20); // ulp=3.3952744695e-01 dec_test!(bid128_sqrt_156, bid128_sqrt, 3, 0 , 0x30400000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_157, bid128_sqrt, 3, 0x05038de0f17e426d6b91004dfd53342cu128 , 0x1a808c0f7a9a44ff095082e7d6367a6bu128, 0x20); // ulp=4.138959e-01 dec_test!(bid128_sqrt_158, bid128_sqrt, 3, "-0" , 0xb0400000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_159, bid128_sqrt, 3, "+10.00000E0" , 0x2ffe9be98e340036baa9baf39995e44eu128, 0x20); // ulp=5.337196e-01 dec_test!(bid128_sqrt_160, bid128_sqrt, 3, "+10001110.0110111111E0" , 0x30049bebc548e98eb8be0d51c2e22927u128, 0x20); // ulp=9.642899e-01 dec_test!(bid128_sqrt_161, bid128_sqrt, 3, 0x145e0000000000000000000000000000u128 , 0x224e0000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_162, bid128_sqrt, 3, 0x24dc0000000000000000000000000000u128 , 0x2a8e0000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_163, bid128_sqrt, 3, 0x303C000000000000000000000000013Au128 , 0x2FFE575DD763E390A4D07752A9EA091Fu128, 0x20); // ulp=5.2507360852e-01 dec_test!(bid128_sqrt_164, bid128_sqrt, 3, 0x303C000000000000000000000000013Bu128 , 0x2FFE57816D6DAB48A232A5AA1ACE89C5u128, 0x20); // ulp=1.1452465037e-01 dec_test!(bid128_sqrt_165, bid128_sqrt, 3, 0x3b05549e5eeca99c61e341325bc32858u128 , 0x358199cd65cc7745395cbe07a42f485du128, 0x20); // ulp=6.006022e-01 dec_test!(bid128_sqrt_166, bid128_sqrt, 3, 0x3c83470f45c155edf4f0313bcb5f33b1u128 , 0x36407efc41b4c7d38c8adbf7a90e62e2u128, 0x20); // ulp=4.398015e-01 dec_test!(bid128_sqrt_167, bid128_sqrt, 3, 0x52f2c948b8081147362e8073cb795f72u128 , 0x4178639e9fef7d9f733b3af0660f14ceu128, 0x20); // ulp=5.715801e-01 dec_test!(bid128_sqrt_168, bid128_sqrt, 3, "+5585.897659988886E0" , 0x3001707db521720fff55a8fe258738ccu128, 0x20); // ulp=3.306138e-01 dec_test!(bid128_sqrt_169, bid128_sqrt, 3, 0x5FFEA45894E4829567D9DA2155555555u128 , 0x47FE5A041A1CC10D9F382CE290E1FAC7u128, 0x20); // ulp=2.1888722732e-02 dec_test!(bid128_sqrt_170, bid128_sqrt, 3, 0x5FFFED09BEAD87C0378D8E63FFFFFFFFu128 , 0x47FE9BE98E340036BAA9BAF39995E44Eu128, 0x20); // ulp=3.7560567213e-01 dec_test!(bid128_sqrt_171, bid128_sqrt, 3, "-6776897.6567677685E0" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_172, bid128_sqrt, 3, "+759.789987598E0" , 0x300087e705e539e0dc92caf13d8b63bau128, 0x20); // ulp=5.454397e-01 dec_test!(bid128_sqrt_173, bid128_sqrt, 3, "+765986675886.59596E0" , 0x3009af829bfc2bdc08098c563f768a9eu128, 0x20); // ulp=2.170949e-01 dec_test!(bid128_sqrt_174, bid128_sqrt, 3, "+776974289.4239584644E0" , 0x3006896e42b1c1ddd1d1767e83d51f62u128, 0x20); // ulp=9.169444e-02 dec_test!(bid128_sqrt_175, bid128_sqrt, 3, 0x78000000000000000000000000000000u128 , 0x78000000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_176, bid128_sqrt, 3, 0x8217d61037c6e30616b21a9dd78f9ab6u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_177, bid128_sqrt, 3, 0x91a35ddd15bc2cffb23dc8a4458741f4u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_178, bid128_sqrt, 3, "+988889.988E0" , 0x3003ea4aa56cdf08056860f316867df1u128, 0x20); // ulp=2.089759e-02 dec_test!(bid128_sqrt_179, bid128_sqrt, 3, 0xa66db51bbbbe0d60f50294a9ff0610ccu128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_180, bid128_sqrt, 3, 0xa7e68c6db01481e22152385f8f3c9405u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_181, bid128_sqrt, 3, 0xaaae0000000000000000000000000000u128 , 0xad760000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_182, bid128_sqrt, 3, 0xb05e0000000000000000000000000000u128 , 0xb04e0000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_183, bid128_sqrt, 3, 0xb96ceba4dc91051257524ab75a1abd0eu128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_184, bid128_sqrt, 3, 0xbf5595878901bfefd875802ad9071e5cu128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_185, bid128_sqrt, 3, 0xc5881682e2e5fea70ef0f6db969cfd22u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_186, bid128_sqrt, 3, 0xc6b2dcd4c0a1eec3b05ef7e90c33c10au128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_187, bid128_sqrt, 3, 0xd0b153b167979a385ea16a14b9854a20u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_188, bid128_sqrt, 3, 0xdc80cc4102f0d53273ce592590b3e13cu128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_189, bid128_sqrt, 3, "Infinity" , 0x78000000000000000000000000000000u128, 0x00); dec_test!(bid128_sqrt_190, bid128_sqrt, 3, "-Infinity" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_191, bid128_sqrt, 3, "QNaN" , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sqrt_192, bid128_sqrt, 3, "SNaN" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_193, bid128_sqrt, 4, 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x17ffed09bead87c0378d8e637fffffffu128, 0x20); // ulp=5.000000e-01 dec_test!(bid128_sqrt_194, bid128_sqrt, 4, 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x18200000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_195, bid128_sqrt, 4, 0 , 0x30400000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_196, bid128_sqrt, 4, 0x05038de0f17e426d6b91004dfd53342cu128 , 0x1a808c0f7a9a44ff095082e7d6367a6bu128, 0x20); // ulp=4.138959e-01 dec_test!(bid128_sqrt_197, bid128_sqrt, 4, "-0" , 0xb0400000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_198, bid128_sqrt, 4, "+10.00000E0" , 0x2ffe9be98e340036baa9baf39995e44fu128, 0x20); // ulp=-4.662804e-01 dec_test!(bid128_sqrt_199, bid128_sqrt, 4, "+10001110.0110111111E0" , 0x30049bebc548e98eb8be0d51c2e22928u128, 0x20); // ulp=-3.571008e-02 dec_test!(bid128_sqrt_200, bid128_sqrt, 4, 0x145e0000000000000000000000000000u128 , 0x224e0000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_201, bid128_sqrt, 4, 0x24dc0000000000000000000000000000u128 , 0x2a8e0000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_202, bid128_sqrt, 4, 0x3b05549e5eeca99c61e341325bc32858u128 , 0x358199cd65cc7745395cbe07a42f485eu128, 0x20); // ulp=-3.993978e-01 dec_test!(bid128_sqrt_203, bid128_sqrt, 4, 0x3c83470f45c155edf4f0313bcb5f33b1u128 , 0x36407efc41b4c7d38c8adbf7a90e62e2u128, 0x20); // ulp=4.398015e-01 dec_test!(bid128_sqrt_204, bid128_sqrt, 4, 0x52f2c948b8081147362e8073cb795f72u128 , 0x4178639e9fef7d9f733b3af0660f14cfu128, 0x20); // ulp=-4.284199e-01 dec_test!(bid128_sqrt_205, bid128_sqrt, 4, "+5585.897659988886E0" , 0x3001707db521720fff55a8fe258738ccu128, 0x20); // ulp=3.306138e-01 dec_test!(bid128_sqrt_206, bid128_sqrt, 4, "-6776897.6567677685E0" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_207, bid128_sqrt, 4, "+759.789987598E0" , 0x300087e705e539e0dc92caf13d8b63bbu128, 0x20); // ulp=-4.545603e-01 dec_test!(bid128_sqrt_208, bid128_sqrt, 4, "+765986675886.59596E0" , 0x3009af829bfc2bdc08098c563f768a9eu128, 0x20); // ulp=2.170949e-01 dec_test!(bid128_sqrt_209, bid128_sqrt, 4, "+776974289.4239584644E0" , 0x3006896e42b1c1ddd1d1767e83d51f62u128, 0x20); // ulp=9.169444e-02 dec_test!(bid128_sqrt_210, bid128_sqrt, 4, 0x78000000000000000000000000000000u128 , 0x78000000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_211, bid128_sqrt, 4, 0x8217d61037c6e30616b21a9dd78f9ab6u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_212, bid128_sqrt, 4, 0x91a35ddd15bc2cffb23dc8a4458741f4u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_213, bid128_sqrt, 4, "+988889.988E0" , 0x3003ea4aa56cdf08056860f316867df1u128, 0x20); // ulp=2.089759e-02 dec_test!(bid128_sqrt_214, bid128_sqrt, 4, 0xa66db51bbbbe0d60f50294a9ff0610ccu128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_215, bid128_sqrt, 4, 0xa7e68c6db01481e22152385f8f3c9405u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_216, bid128_sqrt, 4, 0xaaae0000000000000000000000000000u128 , 0xad760000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_217, bid128_sqrt, 4, 0xb05e0000000000000000000000000000u128 , 0xb04e0000000000000000000000000000u128, 0x00); // ulp=0.000000e-01 dec_test!(bid128_sqrt_218, bid128_sqrt, 4, 0xb96ceba4dc91051257524ab75a1abd0eu128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_219, bid128_sqrt, 4, 0xbf5595878901bfefd875802ad9071e5cu128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_220, bid128_sqrt, 4, 0xc5881682e2e5fea70ef0f6db969cfd22u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_221, bid128_sqrt, 4, 0xc6b2dcd4c0a1eec3b05ef7e90c33c10au128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_222, bid128_sqrt, 4, 0xd0b153b167979a385ea16a14b9854a20u128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_223, bid128_sqrt, 4, 0xdc80cc4102f0d53273ce592590b3e13cu128 , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_224, bid128_sqrt, 4, "Infinity" , 0x78000000000000000000000000000000u128, 0x00); dec_test!(bid128_sqrt_225, bid128_sqrt, 4, "-Infinity" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_226, bid128_sqrt, 4, "QNaN" , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sqrt_227, bid128_sqrt, 4, "SNaN" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sqrt_228, bid128_sqrt, 2, 0x00010000000000000000000000000001u128 , 0x17ff6345785d8a000000000000000001u128, 0x20); dec_test!(bid128_sqrt_229, bid128_sqrt, 2, 0x00010000000000000000000000000001u128 , 0x17ff6345785d8a000000000000000001u128, 0x20);