/* ---------------------------------------------------------------------------------------------------*/ /* 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; #[test] fn sub_binop() { let a = decmathlib_rs::d128::d128::from(2); let b = decmathlib_rs::d128::ONE; let e = decmathlib_rs::d128::ONE; assert_eq!(a - b , e); assert_eq!(&a - b , e); assert_eq!(a - &b , e); assert_eq!(&a - &b, e); } #[test] fn sub_assign_op() { let mut a1 = decmathlib_rs::d128::d128::from(2); let mut a2 = decmathlib_rs::d128::d128::from(2); let mut a3 = decmathlib_rs::d128::d128::from(2); let mut a4 = decmathlib_rs::d128::d128::from(2); let b = decmathlib_rs::d128::ONE; let e = decmathlib_rs::d128::ONE; a1 -= b; assert_eq!(e, a1); a2 -= b; assert_eq!(e, a2); a3 -= b; assert_eq!(e, a3); a4 -= b; assert_eq!(e, a4); } dec_test!(bid128_sub_001, bid128_sub, 0, 0x0000000000000000572997bd3b8d4dc5u128 , 0x00020000000000005e53d92fd7bfde90u128 , 0x8000000000000003581ce42131f163dbu128, 0x00); dec_test!(bid128_sub_002, bid128_sub, 0, 0x00004000000000000004000840000400u128 , 0x00200000000000000603d836132873c6u128 , 0x800095b244d383528ff810d5e245fc00u128, 0x00); dec_test!(bid128_sub_003, bid128_sub, 0, 0x000040800080001000c0004003044a00u128 , 0x00004e208a0002002000000200000000u128 , 0x80000da0898001f01f3fffc1fcfbb600u128, 0x00); dec_test!(bid128_sub_004, bid128_sub, 0, 0x00010280000000007fdee7fdfffffdf6u128 , 0x0008008101530698fdfd5f39b65dfed7u128 , 0x8003de1392b82c067f58e23d5f2b780cu128, 0x20); dec_test!(bid128_sub_005, bid128_sub, 0, 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x00000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_006, bid128_sub, 0, 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x0001ed09bead87c0378d8e62ffffffffu128, 0x00); dec_test!(bid128_sub_007, bid128_sub, 0, 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x7c003fffffffffff38c15b08ffffffffu128 , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_008, bid128_sub, 0, 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x7c003fffffffffff38c15b0affffffffu128 , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_009, bid128_sub, 0, 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x8001ed09bead87c0378d8e62ffffffffu128, 0x00); dec_test!(bid128_sub_010, bid128_sub, 0, 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x00000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_011, bid128_sub, 0, 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x7c003fffffffffff38c15b08ffffffffu128 , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_012, bid128_sub, 0, 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x7c003fffffffffff38c15b0affffffffu128 , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_013, bid128_sub, 0, 0x00100000000000000002402000000000u128 , 0x60003800110385622ecd0cd043061c7fu128 , 0x0000000000000d69f8fc200000000000u128, 0x00); dec_test!(bid128_sub_014, bid128_sub, 0, "0" , "-0" , 0x30400000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_015, bid128_sub, 0, 0x02f23038b71be575752a085cf7c98bfcu128 , 0xfe001e6be04fc9f423e2bdc634781068u128 , 0xfc001e6be04fc9f423e2bdc634781068u128, 0x01); dec_test!(bid128_sub_016, bid128_sub, 0, 0x07419ada2748e8ab3a7cea4a3f019030u128 , 0xfe000000000000000000000000000000u128 , 0xfc000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_017, bid128_sub, 0, "0" , "-Infinity" , 0x78000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_018, bid128_sub, 0, "0" , "Infinity" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_019, bid128_sub, 0, "-0" , "QNaN" , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_020, bid128_sub, 0, "0" , "SNaN" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_021, bid128_sub, 0, "+100000000000000000100000000.01000E6130" , "+5965845635432.92E6144" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_022, bid128_sub, 0, "-10000000.0E6137" , "-59978867886579969868787588.6699E6113" , 0xdffded08fce02c70eca8ce1d508461c2u128, 0x20); dec_test!(bid128_sub_023, bid128_sub, 0, "+1000000010000010.0100000E-6192" , "+8998898888898999998899999999.988888889E-6026" , 0x8121bbae128738e463d45adcde9f1499u128, 0x00); dec_test!(bid128_sub_024, bid128_sub, 0, "-100110101100100001100.0001011011000E6132" , "-99999.8889889989E6131" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_025, bid128_sub, 0, 0x10060000000000000000000000008001u128 , 0x8fdc816cfbca6754c2d5d5babcd597eau128 , 0x0fdc816cfbe5826fcf8272d09b7597eau128, 0x00); dec_test!(bid128_sub_026, bid128_sub, 0, "+1011.110111110101010111E6141" , "-99867788556556896695.769579997E6125" , 0x78000000000000000000000000000000u128, 0x28); dec_test!(bid128_sub_027, bid128_sub, 0, "1.234567890123456789012345678901234E+6143" , "1.234567890123456789012345678901234E+6143" , 0x5ffc0000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_028, bid128_sub, 0, "1.234567890123456789012345678901234E+6143" , "-9.999999999999999999999999999999999E+6144" , 0x78000000000000000000000000000000u128, 0x28); dec_test!(bid128_sub_029, bid128_sub, 0, "-1.23456789012345678901234567890123E-6144" , "9.999999999999999999999999999999999E-6143" , 0x800231e9994ec9f79205382090a03a14u128, 0x20); dec_test!(bid128_sub_030, bid128_sub, 0, "-1.2345678901234568E-6160" , "9.999999999999999999999999999999999E-6143" , 0x8002314dc6448d9338c5bddf3c8abac1u128, 0x20); dec_test!(bid128_sub_031, bid128_sub, 0, "-1.2346E-6172" , "9.999999999999999999999999999999999E-6143" , 0x8002314dc6448d9338c15b0a000004d2u128, 0x20); dec_test!(bid128_sub_032, bid128_sub, 0, 0x2053e0844426f3e091d5cd0205656610u128 , 0x000048006000c004c346039a6d26bb14u128 , 0x2053e0844426f3e091d5cd0205656610u128, 0x20); dec_test!(bid128_sub_033, bid128_sub, 0, 0x20e00000000000000000000000000000u128 , 0x95db0610515601ff1486b7805e34aa81u128 , 0x15db0610515601ff1486b7805e34aa81u128, 0x00); dec_test!(bid128_sub_034, bid128_sub, 0, 0x24735d7c382c4bdc90005c08f9cea62cu128 , 0xda18728d04d1b493ded058957a56537du128 , 0x5a18728d04d1b493ded058957a56537du128, 0x20); dec_test!(bid128_sub_035, bid128_sub, 0, 0x2d1939dd5f3e869f5cfb87be4115ef38u128 , 0xfe000999b3e87ac001f8d188efb03dcau128 , 0xfc000999b3e87ac001f8d188efb03dcau128, 0x01); dec_test!(bid128_sub_036, bid128_sub, 0, 0x2fffe8cd29d6ebbf9befd7a9969e52e4u128 , 0xb00010021000889620d0660081000aaeu128 , 0x300040e360fc6cf616cec85e434312f8u128, 0x00); dec_test!(bid128_sub_037, bid128_sub, 0, "-3.5683455274892569682E-6180" , "-585995965556876996799896595.69576986999E-6080" , 0x00b320eb16d96ded6f3d36fcda335603u128, 0x00); dec_test!(bid128_sub_038, bid128_sub, 0, "-3572.256382964983657684955356552E6138" , "+100000000000000110000000.0E6149" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_039, bid128_sub, 0, 0x3fa00000000000000000000000000000u128 , 0xfe000000000000000000000000000000u128 , 0xfc000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_040, bid128_sub, 0, 0x40000000000000000000008000000080u128 , 0x69438c2b359b210df824e22e132faadcu128 , 0x3fd50f0cf065ec661064dd5920000000u128, 0x00); dec_test!(bid128_sub_041, bid128_sub, 0, 0x46ec0000000000000000000000000000u128 , 0x0fe971a0c9873e73743b68ba57f36359u128 , 0x8fe971a0c9873e73743b68ba57f36359u128, 0x00); dec_test!(bid128_sub_042, bid128_sub, 0, "+498297578.5666767427627868843989547E-6063" , "+76788.8998657667678789778766956768595565E-6021" , 0x80fd7a9937bad2e4f29ed2e3376c58c6u128, 0x20); dec_test!(bid128_sub_043, bid128_sub, 0, "-553726224.6633592792375925837327549349E-6027" , "-27.865E-6190" , 0x80f9110213490981517e45abcafaecbdu128, 0x00); dec_test!(bid128_sub_044, bid128_sub, 0, "-55.575879E-6023" , "-7011.010110E-6129" , 0x80f312029f0370759e4eecf13c000000u128, 0x20); dec_test!(bid128_sub_045, bid128_sub, 0, "-568799.8958668658556678E6135" , "+0.E6144" , 0xdffe00072de43f0c6b52d67242a24600u128, 0x00); dec_test!(bid128_sub_046, bid128_sub, 0, "+5955559.97898875E6118" , "+885657999765896766866998757566897.9869E6137" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_047, bid128_sub, 0, "-64.88977576264648386948E6126" , "+11011000100110.00100110010100010E6122" , 0xdff2000de5d8a26a919288a07d174852u128, 0x00); dec_test!(bid128_sub_048, bid128_sub, 0, "+65697676856866658887856879665865.99888687E-6096" , "-98.9899988988E-6052" , 0x00b9e80ef1b892c6d1c337225cf05a48u128, 0x20); dec_test!(bid128_sub_049, bid128_sub, 0, "-664952.38635346E-6171" , "-87957877.8E-6179" , 0x80000000000000000000000f7b6b7a55u128, 0x00); dec_test!(bid128_sub_050, bid128_sub, 0, "+678985.5988959698995986577775996E6107" , "-739.8957893953797E6140" , 0x5ffb6ccbfa5af989f6444ef948f41a86u128, 0x20); dec_test!(bid128_sub_051, bid128_sub, 0, "-6.887665E6137" , "-4978788.23823299758825346362E6101" , 0xdff153968de9c2929849971667ffec8du128, 0x20); dec_test!(bid128_sub_052, bid128_sub, 0, "-6887699.677676978568668688595675999779E6103" , "-11001.111010100010011E6110" , 0x5fc2363c7c20b1862eaa1fd92a1dd7bbu128, 0x20); dec_test!(bid128_sub_053, bid128_sub, 0, "-7589858878586667.567669986958696599585E6129" , "+888.9989989989898E6142" , 0xf8000000000000000000000000000000u128, 0x28); dec_test!(bid128_sub_054, bid128_sub, 0, "-7679.786588685697599698777757867965E6128" , "-66796955588778955.9565996878579899E6123" , 0x5ff549559c2888deda66540f4b3d2dccu128, 0x20); dec_test!(bid128_sub_055, bid128_sub, 0, "-77699679799997686.E-6036" , "+86488794388326828.72358676468294288764E-6144" , 0x80f77f16c89936afc7731baf6a9c0000u128, 0x20); dec_test!(bid128_sub_056, bid128_sub, 0, "+7.92896334E6115" , "-1.00E6130" , 0x5ff600000000152d02c7e14b25c2a34eu128, 0x00); dec_test!(bid128_sub_057, bid128_sub, 0, 0x7c003fffffffffff38c15b08ffffffffu128 , 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_058, bid128_sub, 0, 0x7c003fffffffffff38c15b08ffffffffu128 , 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_059, bid128_sub, 0, 0x7c003fffffffffff38c15b08ffffffffu128 , 0x7c003fffffffffff38c15b08ffffffffu128 , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_060, bid128_sub, 0, 0x7c003fffffffffff38c15b08ffffffffu128 , 0x7c003fffffffffff38c15b0affffffffu128 , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_061, bid128_sub, 0, 0x7c003fffffffffff38c15b0affffffffu128 , 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_062, bid128_sub, 0, 0x7c003fffffffffff38c15b0affffffffu128 , 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_063, bid128_sub, 0, 0x7c003fffffffffff38c15b0affffffffu128 , 0x7c003fffffffffff38c15b08ffffffffu128 , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_064, bid128_sub, 0, 0x7c003fffffffffff38c15b0affffffffu128 , 0x7c003fffffffffff38c15b0affffffffu128 , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_065, bid128_sub, 0, 0x7e000b27d2c29612e5e557c60a901a37u128 , 0xacec0000000000000000000000000000u128 , 0x7c000b27d2c29612e5e557c60a901a37u128, 0x01); dec_test!(bid128_sub_066, bid128_sub, 0, 0x7e001167db62b4a1a691118b31bbabf1u128 , 0x5291ecb6dc41bd258e6e6a5619ad43c3u128 , 0x7c001167db62b4a1a691118b31bbabf1u128, 0x01); dec_test!(bid128_sub_067, bid128_sub, 0, 0x7e001c6098638d7e4f8715a939f6096cu128 , 0x55d73273efb93f3e492c0674a3bbfae0u128 , 0x7c001c6098638d7e4f8715a939f6096cu128, 0x01); dec_test!(bid128_sub_068, bid128_sub, 0, 0x7e002be141b7a4f595330791e0165119u128 , 0x9d1153d782fbb6dc6fcdc7c9a8447518u128 , 0x7c002be141b7a4f595330791e0165119u128, 0x01); dec_test!(bid128_sub_069, bid128_sub, 0, 0x852bc62a9a3e6c9ae3065337b1491ffbu128 , 0x377a64cae26a3de5c8b47a0b44d9036du128 , 0xb77a64cae26a3de5c8b47a0b44d9036du128, 0x20); dec_test!(bid128_sub_070, bid128_sub, 0, "+876677679789.8669965766586E6121" , "+9789568868.6877576767768E6143" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_071, bid128_sub, 0, "-882.78977E6100" , "-66.7E6129" , 0x5fe348db3c5dba8bba8ecd4f7ff2879au128, 0x20); dec_test!(bid128_sub_072, bid128_sub, 0, "+8899999988989988988.988988998998898E6125" , "-95.656566577589667E6143" , 0x78000000000000000000000000000000u128, 0x28); dec_test!(bid128_sub_073, bid128_sub, 0, 0x8b6d0cc927c736b4b4a594ad1ffd5883u128 , 0x4e9024834bacfa7c2f878f6b08657c24u128 , 0xce8f6d20f4c1c8d9db4b9a2e53f6d968u128, 0x20); dec_test!(bid128_sub_074, bid128_sub, 0, "-965.2299E-6140" , "-85693273296373494855.9595248945275289592E-6143" , 0x0027a6801df5b25dcd6dec5fbc5f74d1u128, 0x00); dec_test!(bid128_sub_075, bid128_sub, 0, "+97.898978768669599659E6114" , "-2.337E6123" , 0x5fe00000078d1f05297bcfca850f67abu128, 0x00); dec_test!(bid128_sub_076, bid128_sub, 0, "+98.8888988898989998999888999E6143" , "-9.9988898888898998E6144" , 0x78000000000000000000000000000000u128, 0x28); dec_test!(bid128_sub_077, bid128_sub, 0, "+989.9E-6045" , "+223888255.584939577596856677857E-6030" , 0x80fa0002d36c063ef5857c1b960e0901u128, 0x00); dec_test!(bid128_sub_078, bid128_sub, 0, 0x98c11c12c39a443b88208b27886caaf1u128 , 0x136e0000000000000000000000000000u128 , 0x98c11c12c39a443b88208b27886caaf1u128, 0x00); dec_test!(bid128_sub_079, bid128_sub, 0, "-998898999898898889.E6132" , "-101000.001001101010000000E6149" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_080, bid128_sub, 0, "9.999999999999999999999999999999999E-6143" , "-1.2346E-6172" , 0x0002314dc6448d9338c15b0a000004d2u128, 0x20); dec_test!(bid128_sub_081, bid128_sub, 0, 0x999eda42234f82cb3c1bf339263fb04du128 , 0x85eef135b7324203d3d7d7b5f4f6bdf6u128 , 0x999eda42234f82cb3c1bf339263fb04du128, 0x20); dec_test!(bid128_sub_082, bid128_sub, 0, 0xaf10650a19c0df05cc2cc5d9f8aff4abu128 , 0xaa760000000000000000000000000000u128 , 0xaf10650a19c0df05cc2cc5d9f8aff4abu128, 0x00); dec_test!(bid128_sub_083, bid128_sub, 0, 0xbee42b26841a6767ba9d8ed2b5293e97u128 , 0xa75fe61222a8582d9f775ea51ec57f80u128 , 0xbee3af8129080a0d4a27943b139c71e6u128, 0x20); dec_test!(bid128_sub_084, bid128_sub, 0, 0xbf632467a72240e1b8d3925d88b50033u128 , 0x7e0014a52b903a467fdb73fb9af7345eu128 , 0x7c0014a52b903a467fdb73fb9af7345eu128, 0x01); dec_test!(bid128_sub_085, bid128_sub, 0, 0xc3e20000000000000000000000000000u128 , 0xc6e50e3e97a26e372b5836b991f2194fu128 , 0x46e50e3e97a26e372b5836b991f2194fu128, 0x00); dec_test!(bid128_sub_086, bid128_sub, 0, 0xd8a02234a25f2dc8f2221957dc192cbfu128 , 0x0ba40000000000000000000000000000u128 , 0xd89f560e57b7c9d97554fd6e98fbbf76u128, 0x00); dec_test!(bid128_sub_087, bid128_sub, 0, 0xfa4fc5f33ab992284dee49180e2542d2u128 , 0x9dd71f9f18813cf800663dd3cbe27448u128 , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_088, bid128_sub, 0, "-Infinity" , "0" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_089, bid128_sub, 0, "Infinity" , "-Infinity" , 0x78000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_090, bid128_sub, 0, "-Infinity" , "QNaN" , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_091, bid128_sub, 0, "QNaN" , "-Infinity" , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_092, bid128_sub, 0, "SNaN" , "-Infinity" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_093, bid128_sub, 1, 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x80000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_094, bid128_sub, 1, 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x0001ed09bead87c0378d8e62ffffffffu128, 0x00); dec_test!(bid128_sub_095, bid128_sub, 1, 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x8001ed09bead87c0378d8e62ffffffffu128, 0x00); dec_test!(bid128_sub_096, bid128_sub, 1, 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x80000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_097, bid128_sub, 1, "0" , "-0" , 0x30400000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_098, bid128_sub, 1, 0x02f23038b71be575752a085cf7c98bfcu128 , 0xfe001e6be04fc9f423e2bdc634781068u128 , 0xfc001e6be04fc9f423e2bdc634781068u128, 0x01); dec_test!(bid128_sub_099, bid128_sub, 1, 0x07419ada2748e8ab3a7cea4a3f019030u128 , 0xfe000000000000000000000000000000u128 , 0xfc000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_100, bid128_sub, 1, "0" , "-Infinity" , 0x78000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_101, bid128_sub, 1, "0" , "Infinity" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_102, bid128_sub, 1, "-0" , "QNaN" , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_103, bid128_sub, 1, "0" , "SNaN" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_104, bid128_sub, 1, "+100000000000000000100000000.01000E6130" , "+5965845635432.92E6144" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_105, bid128_sub, 1, "-10000000.0E6137" , "-59978867886579969868787588.6699E6113" , 0xdffded08fce02c70eca8ce1d508461c3u128, 0x20); dec_test!(bid128_sub_106, bid128_sub, 1, "+1000000010000010.0100000E-6192" , "+8998898888898999998899999999.988888889E-6026" , 0x8121bbae128738e463d45adcde9f1499u128, 0x00); dec_test!(bid128_sub_107, bid128_sub, 1, "-100110101100100001100.0001011011000E6132" , "-99999.8889889989E6131" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_108, bid128_sub, 1, "+1011.110111110101010111E6141" , "-99867788556556896695.769579997E6125" , 0x5fffed09bead87c0378d8e63ffffffffu128, 0x28); dec_test!(bid128_sub_109, bid128_sub, 1, "1.234567890123456789012345678901234E+6143" , "1.234567890123456789012345678901234E+6143" , 0xdffc0000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_110, bid128_sub, 1, "-1.23456789012345678901234567890123E-6144" , "9.999999999999999999999999999999999E-6143" , 0x800231e9994ec9f79205382090a03a15u128, 0x20); dec_test!(bid128_sub_111, bid128_sub, 1, 0x20e00000000000000000000000000000u128 , 0x95db0610515601ff1486b7805e34aa81u128 , 0x15db0610515601ff1486b7805e34aa81u128, 0x00); dec_test!(bid128_sub_112, bid128_sub, 1, 0x24735d7c382c4bdc90005c08f9cea62cu128 , 0xda18728d04d1b493ded058957a56537du128 , 0x5a18728d04d1b493ded058957a56537du128, 0x20); dec_test!(bid128_sub_113, bid128_sub, 1, 0x2d1939dd5f3e869f5cfb87be4115ef38u128 , 0xfe000999b3e87ac001f8d188efb03dcau128 , 0xfc000999b3e87ac001f8d188efb03dcau128, 0x01); dec_test!(bid128_sub_114, bid128_sub, 1, "-3.5683455274892569682E-6180" , "-585995965556876996799896595.69576986999E-6080" , 0x00b320eb16d96ded6f3d36fcda335603u128, 0x00); dec_test!(bid128_sub_115, bid128_sub, 1, "-3572.256382964983657684955356552E6138" , "+100000000000000110000000.0E6149" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_116, bid128_sub, 1, 0x3fa00000000000000000000000000000u128 , 0xfe000000000000000000000000000000u128 , 0xfc000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_117, bid128_sub, 1, 0x46ec0000000000000000000000000000u128 , 0x0fe971a0c9873e73743b68ba57f36359u128 , 0x8fe971a0c9873e73743b68ba57f36359u128, 0x00); dec_test!(bid128_sub_118, bid128_sub, 1, "+498297578.5666767427627868843989547E-6063" , "+76788.8998657667678789778766956768595565E-6021" , 0x80fd7a9937bad2e4f29ed2e3376c58c6u128, 0x20); dec_test!(bid128_sub_119, bid128_sub, 1, "-553726224.6633592792375925837327549349E-6027" , "-27.865E-6190" , 0x80f9110213490981517e45abcafaecbdu128, 0x00); dec_test!(bid128_sub_120, bid128_sub, 1, "-55.575879E-6023" , "-7011.010110E-6129" , 0x80f312029f0370759e4eecf13c000000u128, 0x20); dec_test!(bid128_sub_121, bid128_sub, 1, "-568799.8958668658556678E6135" , "+0.E6144" , 0xdffe00072de43f0c6b52d67242a24600u128, 0x00); dec_test!(bid128_sub_122, bid128_sub, 1, "+5955559.97898875E6118" , "+885657999765896766866998757566897.9869E6137" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_123, bid128_sub, 1, "-64.88977576264648386948E6126" , "+11011000100110.00100110010100010E6122" , 0xdff2000de5d8a26a919288a07d174852u128, 0x00); dec_test!(bid128_sub_124, bid128_sub, 1, "+65697676856866658887856879665865.99888687E-6096" , "-98.9899988988E-6052" , 0x00b9e80ef1b892c6d1c337225cf05a47u128, 0x20); dec_test!(bid128_sub_125, bid128_sub, 1, "-664952.38635346E-6171" , "-87957877.8E-6179" , 0x80000000000000000000000f7b6b7a55u128, 0x00); dec_test!(bid128_sub_126, bid128_sub, 1, "+678985.5988959698995986577775996E6107" , "-739.8957893953797E6140" , 0x5ffb6ccbfa5af989f6444ef948f41a85u128, 0x20); dec_test!(bid128_sub_127, bid128_sub, 1, "-6.887665E6137" , "-4978788.23823299758825346362E6101" , 0xdff153968de9c2929849971667ffec8eu128, 0x20); dec_test!(bid128_sub_128, bid128_sub, 1, "-6887699.677676978568668688595675999779E6103" , "-11001.111010100010011E6110" , 0x5fc2363c7c20b1862eaa1fd92a1dd7bbu128, 0x20); dec_test!(bid128_sub_129, bid128_sub, 1, "-7589858878586667.567669986958696599585E6129" , "+888.9989989989898E6142" , 0xf8000000000000000000000000000000u128, 0x28); dec_test!(bid128_sub_130, bid128_sub, 1, "-7679.786588685697599698777757867965E6128" , "-66796955588778955.9565996878579899E6123" , 0x5ff549559c2888deda66540f4b3d2dccu128, 0x20); dec_test!(bid128_sub_131, bid128_sub, 1, "-77699679799997686.E-6036" , "+86488794388326828.72358676468294288764E-6144" , 0x80f77f16c89936afc7731baf6a9c0001u128, 0x20); dec_test!(bid128_sub_132, bid128_sub, 1, "+7.92896334E6115" , "-1.00E6130" , 0x5ff600000000152d02c7e14b25c2a34eu128, 0x00); dec_test!(bid128_sub_133, bid128_sub, 1, 0x7e000b27d2c29612e5e557c60a901a37u128 , 0xacec0000000000000000000000000000u128 , 0x7c000b27d2c29612e5e557c60a901a37u128, 0x01); dec_test!(bid128_sub_134, bid128_sub, 1, 0x7e001167db62b4a1a691118b31bbabf1u128 , 0x5291ecb6dc41bd258e6e6a5619ad43c3u128 , 0x7c001167db62b4a1a691118b31bbabf1u128, 0x01); dec_test!(bid128_sub_135, bid128_sub, 1, 0x7e001c6098638d7e4f8715a939f6096cu128 , 0x55d73273efb93f3e492c0674a3bbfae0u128 , 0x7c001c6098638d7e4f8715a939f6096cu128, 0x01); dec_test!(bid128_sub_136, bid128_sub, 1, 0x7e002be141b7a4f595330791e0165119u128 , 0x9d1153d782fbb6dc6fcdc7c9a8447518u128 , 0x7c002be141b7a4f595330791e0165119u128, 0x01); dec_test!(bid128_sub_137, bid128_sub, 1, 0x852bc62a9a3e6c9ae3065337b1491ffbu128 , 0x377a64cae26a3de5c8b47a0b44d9036du128 , 0xb77a64cae26a3de5c8b47a0b44d9036eu128, 0x20); dec_test!(bid128_sub_138, bid128_sub, 1, "+876677679789.8669965766586E6121" , "+9789568868.6877576767768E6143" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_139, bid128_sub, 1, "-882.78977E6100" , "-66.7E6129" , 0x5fe348db3c5dba8bba8ecd4f7ff2879au128, 0x20); dec_test!(bid128_sub_140, bid128_sub, 1, "+8899999988989988988.988988998998898E6125" , "-95.656566577589667E6143" , 0x5fffed09bead87c0378d8e63ffffffffu128, 0x28); dec_test!(bid128_sub_141, bid128_sub, 1, 0x8b6d0cc927c736b4b4a594ad1ffd5883u128 , 0x4e9024834bacfa7c2f878f6b08657c24u128 , 0xce8f6d20f4c1c8d9db4b9a2e53f6d969u128, 0x20); dec_test!(bid128_sub_142, bid128_sub, 1, "-965.2299E-6140" , "-85693273296373494855.9595248945275289592E-6143" , 0x0027a6801df5b25dcd6dec5fbc5f74d1u128, 0x00); dec_test!(bid128_sub_143, bid128_sub, 1, "+97.898978768669599659E6114" , "-2.337E6123" , 0x5fe00000078d1f05297bcfca850f67abu128, 0x00); dec_test!(bid128_sub_144, bid128_sub, 1, "+98.8888988898989998999888999E6143" , "-9.9988898888898998E6144" , 0x5fffed09bead87c0378d8e63ffffffffu128, 0x28); dec_test!(bid128_sub_145, bid128_sub, 1, "+989.9E-6045" , "+223888255.584939577596856677857E-6030" , 0x80fa0002d36c063ef5857c1b960e0901u128, 0x00); dec_test!(bid128_sub_146, bid128_sub, 1, 0x98c11c12c39a443b88208b27886caaf1u128 , 0x136e0000000000000000000000000000u128 , 0x98c11c12c39a443b88208b27886caaf1u128, 0x00); dec_test!(bid128_sub_147, bid128_sub, 1, "-998898999898898889.E6132" , "-101000.001001101010000000E6149" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_148, bid128_sub, 1, 0x999eda42234f82cb3c1bf339263fb04du128 , 0x85eef135b7324203d3d7d7b5f4f6bdf6u128 , 0x999eda42234f82cb3c1bf339263fb04du128, 0x20); dec_test!(bid128_sub_149, bid128_sub, 1, 0xaf10650a19c0df05cc2cc5d9f8aff4abu128 , 0xaa760000000000000000000000000000u128 , 0xaf10650a19c0df05cc2cc5d9f8aff4abu128, 0x00); dec_test!(bid128_sub_150, bid128_sub, 1, 0xbee42b26841a6767ba9d8ed2b5293e97u128 , 0xa75fe61222a8582d9f775ea51ec57f80u128 , 0xbee3af8129080a0d4a27943b139c71e6u128, 0x20); dec_test!(bid128_sub_151, bid128_sub, 1, 0xbf632467a72240e1b8d3925d88b50033u128 , 0x7e0014a52b903a467fdb73fb9af7345eu128 , 0x7c0014a52b903a467fdb73fb9af7345eu128, 0x01); dec_test!(bid128_sub_152, bid128_sub, 1, 0xc3e20000000000000000000000000000u128 , 0xc6e50e3e97a26e372b5836b991f2194fu128 , 0x46e50e3e97a26e372b5836b991f2194fu128, 0x00); dec_test!(bid128_sub_153, bid128_sub, 1, 0xd8a02234a25f2dc8f2221957dc192cbfu128 , 0x0ba40000000000000000000000000000u128 , 0xd89f560e57b7c9d97554fd6e98fbbf76u128, 0x00); dec_test!(bid128_sub_154, bid128_sub, 1, "-Infinity" , "0" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_155, bid128_sub, 1, "Infinity" , "-Infinity" , 0x78000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_156, bid128_sub, 1, "-Infinity" , "QNaN" , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_157, bid128_sub, 1, "QNaN" , "-Infinity" , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_158, bid128_sub, 1, "SNaN" , "-Infinity" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_159, bid128_sub, 2, 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x00000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_160, bid128_sub, 2, 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x0001ed09bead87c0378d8e62ffffffffu128, 0x00); dec_test!(bid128_sub_161, bid128_sub, 2, 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x8001ed09bead87c0378d8e62ffffffffu128, 0x00); dec_test!(bid128_sub_162, bid128_sub, 2, 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x00000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_163, bid128_sub, 2, "0" , "-0" , 0x30400000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_164, bid128_sub, 2, 0x02f23038b71be575752a085cf7c98bfcu128 , 0xfe001e6be04fc9f423e2bdc634781068u128 , 0xfc001e6be04fc9f423e2bdc634781068u128, 0x01); dec_test!(bid128_sub_165, bid128_sub, 2, 0x07419ada2748e8ab3a7cea4a3f019030u128 , 0xfe000000000000000000000000000000u128 , 0xfc000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_166, bid128_sub, 2, "0" , "-Infinity" , 0x78000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_167, bid128_sub, 2, "0" , "Infinity" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_168, bid128_sub, 2, "-0" , "QNaN" , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_169, bid128_sub, 2, "0" , "SNaN" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_170, bid128_sub, 2, "+100000000000000000100000000.01000E6130" , "+5965845635432.92E6144" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_171, bid128_sub, 2, "-10000000.0E6137" , "-59978867886579969868787588.6699E6113" , 0xdffded08fce02c70eca8ce1d508461c2u128, 0x20); dec_test!(bid128_sub_172, bid128_sub, 2, "+1000000010000010.0100000E-6192" , "+8998898888898999998899999999.988888889E-6026" , 0x8121bbae128738e463d45adcde9f1499u128, 0x00); dec_test!(bid128_sub_173, bid128_sub, 2, "-100110101100100001100.0001011011000E6132" , "-99999.8889889989E6131" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_174, bid128_sub, 2, "+1011.110111110101010111E6141" , "-99867788556556896695.769579997E6125" , 0x78000000000000000000000000000000u128, 0x28); dec_test!(bid128_sub_175, bid128_sub, 2, "-1.2345678901234568E-6160" , "9.999999999999999999999999999999999E-6143" , 0x8002314dc6448d9338c5bddf3c8abac0u128, 0x20); dec_test!(bid128_sub_176, bid128_sub, 2, 0x20e00000000000000000000000000000u128 , 0x95db0610515601ff1486b7805e34aa81u128 , 0x15db0610515601ff1486b7805e34aa81u128, 0x00); dec_test!(bid128_sub_177, bid128_sub, 2, 0x24735d7c382c4bdc90005c08f9cea62cu128 , 0xda18728d04d1b493ded058957a56537du128 , 0x5a18728d04d1b493ded058957a56537eu128, 0x20); dec_test!(bid128_sub_178, bid128_sub, 2, 0x2d1939dd5f3e869f5cfb87be4115ef38u128 , 0xfe000999b3e87ac001f8d188efb03dcau128 , 0xfc000999b3e87ac001f8d188efb03dcau128, 0x01); dec_test!(bid128_sub_179, bid128_sub, 2, "-3.5683455274892569682E-6180" , "-585995965556876996799896595.69576986999E-6080" , 0x00b320eb16d96ded6f3d36fcda335603u128, 0x00); dec_test!(bid128_sub_180, bid128_sub, 2, "-3572.256382964983657684955356552E6138" , "+100000000000000110000000.0E6149" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_181, bid128_sub, 2, 0x3fa00000000000000000000000000000u128 , 0xfe000000000000000000000000000000u128 , 0xfc000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_182, bid128_sub, 2, 0x46ec0000000000000000000000000000u128 , 0x0fe971a0c9873e73743b68ba57f36359u128 , 0x8fe971a0c9873e73743b68ba57f36359u128, 0x00); dec_test!(bid128_sub_183, bid128_sub, 2, "+498297578.5666767427627868843989547E-6063" , "+76788.8998657667678789778766956768595565E-6021" , 0x80fd7a9937bad2e4f29ed2e3376c58c5u128, 0x20); dec_test!(bid128_sub_184, bid128_sub, 2, "-553726224.6633592792375925837327549349E-6027" , "-27.865E-6190" , 0x80f9110213490981517e45abcafaecbdu128, 0x00); dec_test!(bid128_sub_185, bid128_sub, 2, "-55.575879E-6023" , "-7011.010110E-6129" , 0x80f312029f0370759e4eecf13bffffffu128, 0x20); dec_test!(bid128_sub_186, bid128_sub, 2, "-568799.8958668658556678E6135" , "+0.E6144" , 0xdffe00072de43f0c6b52d67242a24600u128, 0x00); dec_test!(bid128_sub_187, bid128_sub, 2, "+5955559.97898875E6118" , "+885657999765896766866998757566897.9869E6137" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_188, bid128_sub, 2, "-64.88977576264648386948E6126" , "+11011000100110.00100110010100010E6122" , 0xdff2000de5d8a26a919288a07d174852u128, 0x00); dec_test!(bid128_sub_189, bid128_sub, 2, "+65697676856866658887856879665865.99888687E-6096" , "-98.9899988988E-6052" , 0x00b9e80ef1b892c6d1c337225cf05a48u128, 0x20); dec_test!(bid128_sub_190, bid128_sub, 2, "-664952.38635346E-6171" , "-87957877.8E-6179" , 0x80000000000000000000000f7b6b7a55u128, 0x00); dec_test!(bid128_sub_191, bid128_sub, 2, "+678985.5988959698995986577775996E6107" , "-739.8957893953797E6140" , 0x5ffb6ccbfa5af989f6444ef948f41a86u128, 0x20); dec_test!(bid128_sub_192, bid128_sub, 2, "-6.887665E6137" , "-4978788.23823299758825346362E6101" , 0xdff153968de9c2929849971667ffec8du128, 0x20); dec_test!(bid128_sub_193, bid128_sub, 2, "-6887699.677676978568668688595675999779E6103" , "-11001.111010100010011E6110" , 0x5fc2363c7c20b1862eaa1fd92a1dd7bcu128, 0x20); dec_test!(bid128_sub_194, bid128_sub, 2, "-7589858878586667.567669986958696599585E6129" , "+888.9989989989898E6142" , 0xdfffed09bead87c0378d8e63ffffffffu128, 0x28); dec_test!(bid128_sub_195, bid128_sub, 2, "-7679.786588685697599698777757867965E6128" , "-66796955588778955.9565996878579899E6123" , 0x5ff549559c2888deda66540f4b3d2dcdu128, 0x20); dec_test!(bid128_sub_196, bid128_sub, 2, "-77699679799997686.E-6036" , "+86488794388326828.72358676468294288764E-6144" , 0x80f77f16c89936afc7731baf6a9c0000u128, 0x20); dec_test!(bid128_sub_197, bid128_sub, 2, "+7.92896334E6115" , "-1.00E6130" , 0x5ff600000000152d02c7e14b25c2a34eu128, 0x00); dec_test!(bid128_sub_198, bid128_sub, 2, 0x7e000b27d2c29612e5e557c60a901a37u128 , 0xacec0000000000000000000000000000u128 , 0x7c000b27d2c29612e5e557c60a901a37u128, 0x01); dec_test!(bid128_sub_199, bid128_sub, 2, 0x7e001167db62b4a1a691118b31bbabf1u128 , 0x5291ecb6dc41bd258e6e6a5619ad43c3u128 , 0x7c001167db62b4a1a691118b31bbabf1u128, 0x01); dec_test!(bid128_sub_200, bid128_sub, 2, 0x7e001c6098638d7e4f8715a939f6096cu128 , 0x55d73273efb93f3e492c0674a3bbfae0u128 , 0x7c001c6098638d7e4f8715a939f6096cu128, 0x01); dec_test!(bid128_sub_201, bid128_sub, 2, 0x7e002be141b7a4f595330791e0165119u128 , 0x9d1153d782fbb6dc6fcdc7c9a8447518u128 , 0x7c002be141b7a4f595330791e0165119u128, 0x01); dec_test!(bid128_sub_202, bid128_sub, 2, 0x852bc62a9a3e6c9ae3065337b1491ffbu128 , 0x377a64cae26a3de5c8b47a0b44d9036du128 , 0xb77a64cae26a3de5c8b47a0b44d9036du128, 0x20); dec_test!(bid128_sub_203, bid128_sub, 2, "+876677679789.8669965766586E6121" , "+9789568868.6877576767768E6143" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_204, bid128_sub, 2, "-882.78977E6100" , "-66.7E6129" , 0x5fe348db3c5dba8bba8ecd4f7ff2879bu128, 0x20); dec_test!(bid128_sub_205, bid128_sub, 2, "+8899999988989988988.988988998998898E6125" , "-95.656566577589667E6143" , 0x78000000000000000000000000000000u128, 0x28); dec_test!(bid128_sub_206, bid128_sub, 2, 0x8b6d0cc927c736b4b4a594ad1ffd5883u128 , 0x4e9024834bacfa7c2f878f6b08657c24u128 , 0xce8f6d20f4c1c8d9db4b9a2e53f6d968u128, 0x20); dec_test!(bid128_sub_207, bid128_sub, 2, "-965.2299E-6140" , "-85693273296373494855.9595248945275289592E-6143" , 0x0027a6801df5b25dcd6dec5fbc5f74d1u128, 0x00); dec_test!(bid128_sub_208, bid128_sub, 2, "+97.898978768669599659E6114" , "-2.337E6123" , 0x5fe00000078d1f05297bcfca850f67abu128, 0x00); dec_test!(bid128_sub_209, bid128_sub, 2, "+98.8888988898989998999888999E6143" , "-9.9988898888898998E6144" , 0x78000000000000000000000000000000u128, 0x28); dec_test!(bid128_sub_210, bid128_sub, 2, "+989.9E-6045" , "+223888255.584939577596856677857E-6030" , 0x80fa0002d36c063ef5857c1b960e0901u128, 0x00); dec_test!(bid128_sub_211, bid128_sub, 2, 0x98c11c12c39a443b88208b27886caaf1u128 , 0x136e0000000000000000000000000000u128 , 0x98c11c12c39a443b88208b27886caaf1u128, 0x00); dec_test!(bid128_sub_212, bid128_sub, 2, "-998898999898898889.E6132" , "-101000.001001101010000000E6149" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_213, bid128_sub, 2, 0x999eda42234f82cb3c1bf339263fb04du128 , 0x85eef135b7324203d3d7d7b5f4f6bdf6u128 , 0x999eda42234f82cb3c1bf339263fb04cu128, 0x20); dec_test!(bid128_sub_214, bid128_sub, 2, 0xaf10650a19c0df05cc2cc5d9f8aff4abu128 , 0xaa760000000000000000000000000000u128 , 0xaf10650a19c0df05cc2cc5d9f8aff4abu128, 0x00); dec_test!(bid128_sub_215, bid128_sub, 2, 0xbee42b26841a6767ba9d8ed2b5293e97u128 , 0xa75fe61222a8582d9f775ea51ec57f80u128 , 0xbee3af8129080a0d4a27943b139c71e5u128, 0x20); dec_test!(bid128_sub_216, bid128_sub, 2, 0xbf632467a72240e1b8d3925d88b50033u128 , 0x7e0014a52b903a467fdb73fb9af7345eu128 , 0x7c0014a52b903a467fdb73fb9af7345eu128, 0x01); dec_test!(bid128_sub_217, bid128_sub, 2, 0xc3e20000000000000000000000000000u128 , 0xc6e50e3e97a26e372b5836b991f2194fu128 , 0x46e50e3e97a26e372b5836b991f2194fu128, 0x00); dec_test!(bid128_sub_218, bid128_sub, 2, 0xd8a02234a25f2dc8f2221957dc192cbfu128 , 0x0ba40000000000000000000000000000u128 , 0xd89f560e57b7c9d97554fd6e98fbbf76u128, 0x00); dec_test!(bid128_sub_219, bid128_sub, 2, "-Infinity" , " 0" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_220, bid128_sub, 2, "Infinity" , "-Infinity" , 0x78000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_221, bid128_sub, 2, "-Infinity" , "QNaN" , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_222, bid128_sub, 2, "QNaN" , "-Infinity" , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_223, bid128_sub, 2, "SNaN" , "-Infinity" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_224, bid128_sub, 3, 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x00000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_225, bid128_sub, 3, 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x0001ed09bead87c0378d8e62ffffffffu128, 0x00); dec_test!(bid128_sub_226, bid128_sub, 3, 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x8001ed09bead87c0378d8e62ffffffffu128, 0x00); dec_test!(bid128_sub_227, bid128_sub, 3, 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x00000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_228, bid128_sub, 3, "0" , "-0" , 0x30400000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_229, bid128_sub, 3, 0x02f23038b71be575752a085cf7c98bfcu128 , 0xfe001e6be04fc9f423e2bdc634781068u128 , 0xfc001e6be04fc9f423e2bdc634781068u128, 0x01); dec_test!(bid128_sub_230, bid128_sub, 3, 0x07419ada2748e8ab3a7cea4a3f019030u128 , 0xfe000000000000000000000000000000u128 , 0xfc000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_231, bid128_sub, 3, "0" , "-Infinity" , 0x78000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_232, bid128_sub, 3, "0" , "Infinity" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_233, bid128_sub, 3, "-0" , "QNaN" , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_234, bid128_sub, 3, "0" , "SNaN" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_235, bid128_sub, 3, "+100000000000000000100000000.01000E6130" , "+5965845635432.92E6144" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_236, bid128_sub, 3, "-10000000.0E6137" , "-59978867886579969868787588.6699E6113" , 0xdffded08fce02c70eca8ce1d508461c2u128, 0x20); dec_test!(bid128_sub_237, bid128_sub, 3, "+1000000010000010.0100000E-6192" , "+8998898888898999998899999999.988888889E-6026" , 0x8121bbae128738e463d45adcde9f1499u128, 0x00); dec_test!(bid128_sub_238, bid128_sub, 3, "-100110101100100001100.0001011011000E6132" , "-99999.8889889989E6131" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_239, bid128_sub, 3, "+1011.110111110101010111E6141" , "-99867788556556896695.769579997E6125" , 0x5fffed09bead87c0378d8e63ffffffffu128, 0x28); dec_test!(bid128_sub_240, bid128_sub, 3, 0x20e00000000000000000000000000000u128 , 0x95db0610515601ff1486b7805e34aa81u128 , 0x15db0610515601ff1486b7805e34aa81u128, 0x00); dec_test!(bid128_sub_241, bid128_sub, 3, 0x24735d7c382c4bdc90005c08f9cea62cu128 , 0xda18728d04d1b493ded058957a56537du128 , 0x5a18728d04d1b493ded058957a56537du128, 0x20); dec_test!(bid128_sub_242, bid128_sub, 3, 0x2d1939dd5f3e869f5cfb87be4115ef38u128 , 0xfe000999b3e87ac001f8d188efb03dcau128 , 0xfc000999b3e87ac001f8d188efb03dcau128, 0x01); dec_test!(bid128_sub_243, bid128_sub, 3, "-3.5683455274892569682E-6180" , "-585995965556876996799896595.69576986999E-6080" , 0x00b320eb16d96ded6f3d36fcda335603u128, 0x00); dec_test!(bid128_sub_244, bid128_sub, 3, "-3572.256382964983657684955356552E6138" , "+100000000000000110000000.0E6149" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_245, bid128_sub, 3, 0x3fa00000000000000000000000000000u128 , 0xfe000000000000000000000000000000u128 , 0xfc000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_246, bid128_sub, 3, 0x46ec0000000000000000000000000000u128 , 0x0fe971a0c9873e73743b68ba57f36359u128 , 0x8fe971a0c9873e73743b68ba57f36359u128, 0x00); dec_test!(bid128_sub_247, bid128_sub, 3, "+498297578.5666767427627868843989547E-6063" , "+76788.8998657667678789778766956768595565E-6021" , 0x80fd7a9937bad2e4f29ed2e3376c58c5u128, 0x20); dec_test!(bid128_sub_248, bid128_sub, 3, "-553726224.6633592792375925837327549349E-6027" , "-27.865E-6190" , 0x80f9110213490981517e45abcafaecbdu128, 0x00); dec_test!(bid128_sub_249, bid128_sub, 3, "-55.575879E-6023" , "-7011.010110E-6129" , 0x80f312029f0370759e4eecf13bffffffu128, 0x20); dec_test!(bid128_sub_250, bid128_sub, 3, "-568799.8958668658556678E6135" , "+0.E6144" , 0xdffe00072de43f0c6b52d67242a24600u128, 0x00); dec_test!(bid128_sub_251, bid128_sub, 3, "+5955559.97898875E6118" , "+885657999765896766866998757566897.9869E6137" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_252, bid128_sub, 3, "-64.88977576264648386948E6126" , "+11011000100110.00100110010100010E6122" , 0xdff2000de5d8a26a919288a07d174852u128, 0x00); dec_test!(bid128_sub_253, bid128_sub, 3, "+65697676856866658887856879665865.99888687E-6096" , "-98.9899988988E-6052" , 0x00b9e80ef1b892c6d1c337225cf05a47u128, 0x20); dec_test!(bid128_sub_254, bid128_sub, 3, "-664952.38635346E-6171" , "-87957877.8E-6179" , 0x80000000000000000000000f7b6b7a55u128, 0x00); dec_test!(bid128_sub_255, bid128_sub, 3, "+678985.5988959698995986577775996E6107" , "-739.8957893953797E6140" , 0x5ffb6ccbfa5af989f6444ef948f41a85u128, 0x20); dec_test!(bid128_sub_256, bid128_sub, 3, "-6.887665E6137" , "-4978788.23823299758825346362E6101" , 0xdff153968de9c2929849971667ffec8du128, 0x20); dec_test!(bid128_sub_257, bid128_sub, 3, "-6887699.677676978568668688595675999779E6103" , "-11001.111010100010011E6110" , 0x5fc2363c7c20b1862eaa1fd92a1dd7bbu128, 0x20); dec_test!(bid128_sub_258, bid128_sub, 3, "-7589858878586667.567669986958696599585E6129" , "+888.9989989989898E6142" , 0xdfffed09bead87c0378d8e63ffffffffu128, 0x28); dec_test!(bid128_sub_259, bid128_sub, 3, "-7679.786588685697599698777757867965E6128" , "-66796955588778955.9565996878579899E6123" , 0x5ff549559c2888deda66540f4b3d2dccu128, 0x20); dec_test!(bid128_sub_260, bid128_sub, 3, "-77699679799997686.E-6036" , "+86488794388326828.72358676468294288764E-6144" , 0x80f77f16c89936afc7731baf6a9c0000u128, 0x20); dec_test!(bid128_sub_261, bid128_sub, 3, "+7.92896334E6115" , "-1.00E6130" , 0x5ff600000000152d02c7e14b25c2a34eu128, 0x00); dec_test!(bid128_sub_262, bid128_sub, 3, 0x7e000b27d2c29612e5e557c60a901a37u128 , 0xacec0000000000000000000000000000u128 , 0x7c000b27d2c29612e5e557c60a901a37u128, 0x01); dec_test!(bid128_sub_263, bid128_sub, 3, 0x7e001167db62b4a1a691118b31bbabf1u128 , 0x5291ecb6dc41bd258e6e6a5619ad43c3u128 , 0x7c001167db62b4a1a691118b31bbabf1u128, 0x01); dec_test!(bid128_sub_264, bid128_sub, 3, 0x7e001c6098638d7e4f8715a939f6096cu128 , 0x55d73273efb93f3e492c0674a3bbfae0u128 , 0x7c001c6098638d7e4f8715a939f6096cu128, 0x01); dec_test!(bid128_sub_265, bid128_sub, 3, 0x7e002be141b7a4f595330791e0165119u128 , 0x9d1153d782fbb6dc6fcdc7c9a8447518u128 , 0x7c002be141b7a4f595330791e0165119u128, 0x01); dec_test!(bid128_sub_266, bid128_sub, 3, 0x852bc62a9a3e6c9ae3065337b1491ffbu128 , 0x377a64cae26a3de5c8b47a0b44d9036du128 , 0xb77a64cae26a3de5c8b47a0b44d9036du128, 0x20); dec_test!(bid128_sub_267, bid128_sub, 3, "+876677679789.8669965766586E6121" , "+9789568868.6877576767768E6143" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_268, bid128_sub, 3, "-882.78977E6100" , "-66.7E6129" , 0x5fe348db3c5dba8bba8ecd4f7ff2879au128, 0x20); dec_test!(bid128_sub_269, bid128_sub, 3, "+8899999988989988988.988988998998898E6125" , "-95.656566577589667E6143" , 0x5fffed09bead87c0378d8e63ffffffffu128, 0x28); dec_test!(bid128_sub_270, bid128_sub, 3, 0x8b6d0cc927c736b4b4a594ad1ffd5883u128 , 0x4e9024834bacfa7c2f878f6b08657c24u128 , 0xce8f6d20f4c1c8d9db4b9a2e53f6d968u128, 0x20); dec_test!(bid128_sub_271, bid128_sub, 3, "-965.2299E-6140" , "-85693273296373494855.9595248945275289592E-6143" , 0x0027a6801df5b25dcd6dec5fbc5f74d1u128, 0x00); dec_test!(bid128_sub_272, bid128_sub, 3, "+97.898978768669599659E6114" , "-2.337E6123" , 0x5fe00000078d1f05297bcfca850f67abu128, 0x00); dec_test!(bid128_sub_273, bid128_sub, 3, "+98.8888988898989998999888999E6143" , "-9.9988898888898998E6144" , 0x5fffed09bead87c0378d8e63ffffffffu128, 0x28); dec_test!(bid128_sub_274, bid128_sub, 3, "+989.9E-6045" , "+223888255.584939577596856677857E-6030" , 0x80fa0002d36c063ef5857c1b960e0901u128, 0x00); dec_test!(bid128_sub_275, bid128_sub, 3, 0x98c11c12c39a443b88208b27886caaf1u128 , 0x136e0000000000000000000000000000u128 , 0x98c11c12c39a443b88208b27886caaf1u128, 0x00); dec_test!(bid128_sub_276, bid128_sub, 3, "-998898999898898889.E6132" , "-101000.001001101010000000E6149" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_277, bid128_sub, 3, 0x999eda42234f82cb3c1bf339263fb04du128 , 0x85eef135b7324203d3d7d7b5f4f6bdf6u128 , 0x999eda42234f82cb3c1bf339263fb04cu128, 0x20); dec_test!(bid128_sub_278, bid128_sub, 3, 0xaf10650a19c0df05cc2cc5d9f8aff4abu128 , 0xaa760000000000000000000000000000u128 , 0xaf10650a19c0df05cc2cc5d9f8aff4abu128, 0x00); dec_test!(bid128_sub_279, bid128_sub, 3, 0xbee42b26841a6767ba9d8ed2b5293e97u128 , 0xa75fe61222a8582d9f775ea51ec57f80u128 , 0xbee3af8129080a0d4a27943b139c71e5u128, 0x20); dec_test!(bid128_sub_280, bid128_sub, 3, 0xbf632467a72240e1b8d3925d88b50033u128 , 0x7e0014a52b903a467fdb73fb9af7345eu128 , 0x7c0014a52b903a467fdb73fb9af7345eu128, 0x01); dec_test!(bid128_sub_281, bid128_sub, 3, 0xc3e20000000000000000000000000000u128 , 0xc6e50e3e97a26e372b5836b991f2194fu128 , 0x46e50e3e97a26e372b5836b991f2194fu128, 0x00); dec_test!(bid128_sub_282, bid128_sub, 3, 0xd8a02234a25f2dc8f2221957dc192cbfu128 , 0x0ba40000000000000000000000000000u128 , 0xd89f560e57b7c9d97554fd6e98fbbf76u128, 0x00); dec_test!(bid128_sub_283, bid128_sub, 3, "-Infinity" , "0" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_284, bid128_sub, 3, " Infinity" , "-Infinity" , 0x78000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_285, bid128_sub, 3, "-Infinity" , "QNaN" , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_286, bid128_sub, 3, "QNaN" , "-Infinity" , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_287, bid128_sub, 3, "SNaN" , "-Infinity" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_288, bid128_sub, 4, 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x00000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_289, bid128_sub, 4, 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x0001ed09bead87c0378d8e62ffffffffu128, 0x00); dec_test!(bid128_sub_290, bid128_sub, 4, 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x0001ed09bead87c0378d8e62ffffffffu128 , 0x8001ed09bead87c0378d8e62ffffffffu128, 0x00); dec_test!(bid128_sub_291, bid128_sub, 4, 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x0001ed09bead87c0378d8e64ffffffffu128 , 0x00000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_292, bid128_sub, 4, "0" , "-0" , 0x30400000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_293, bid128_sub, 4, 0x02f23038b71be575752a085cf7c98bfcu128 , 0xfe001e6be04fc9f423e2bdc634781068u128 , 0xfc001e6be04fc9f423e2bdc634781068u128, 0x01); dec_test!(bid128_sub_294, bid128_sub, 4, 0x07419ada2748e8ab3a7cea4a3f019030u128 , 0xfe000000000000000000000000000000u128 , 0xfc000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_295, bid128_sub, 4, "0" , "-Infinity" , 0x78000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_296, bid128_sub, 4, "0" , "Infinity" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_297, bid128_sub, 4, "-0" , "QNaN" , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_298, bid128_sub, 4, " 0" , "SNaN" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_299, bid128_sub, 4, "+100000000000000000100000000.01000E6130" , "+5965845635432.92E6144" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_300, bid128_sub, 4, "-10000000.0E6137" , "-59978867886579969868787588.6699E6113" , 0xdffded08fce02c70eca8ce1d508461c2u128, 0x20); dec_test!(bid128_sub_301, bid128_sub, 4, "+1000000010000010.0100000E-6192" , "+8998898888898999998899999999.988888889E-6026" , 0x8121bbae128738e463d45adcde9f1499u128, 0x00); dec_test!(bid128_sub_302, bid128_sub, 4, "-100110101100100001100.0001011011000E6132" , "-99999.8889889989E6131" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_303, bid128_sub, 4, "+1011.110111110101010111E6141" , "-99867788556556896695.769579997E6125" , 0x78000000000000000000000000000000u128, 0x28); dec_test!(bid128_sub_304, bid128_sub, 4, 0x20e00000000000000000000000000000u128 , 0x95db0610515601ff1486b7805e34aa81u128 , 0x15db0610515601ff1486b7805e34aa81u128, 0x00); dec_test!(bid128_sub_305, bid128_sub, 4, 0x24735d7c382c4bdc90005c08f9cea62cu128 , 0xda18728d04d1b493ded058957a56537du128 , 0x5a18728d04d1b493ded058957a56537du128, 0x20); dec_test!(bid128_sub_306, bid128_sub, 4, 0x2d1939dd5f3e869f5cfb87be4115ef38u128 , 0xfe000999b3e87ac001f8d188efb03dcau128 , 0xfc000999b3e87ac001f8d188efb03dcau128, 0x01); dec_test!(bid128_sub_307, bid128_sub, 4, "-3.5683455274892569682E-6180" , "-585995965556876996799896595.69576986999E-6080" , 0x00b320eb16d96ded6f3d36fcda335603u128, 0x00); dec_test!(bid128_sub_308, bid128_sub, 4, "-3572.256382964983657684955356552E6138" , "+100000000000000110000000.0E6149" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_309, bid128_sub, 4, 0x3fa00000000000000000000000000000u128 , 0xfe000000000000000000000000000000u128 , 0xfc000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_310, bid128_sub, 4, 0x46ec0000000000000000000000000000u128 , 0x0fe971a0c9873e73743b68ba57f36359u128 , 0x8fe971a0c9873e73743b68ba57f36359u128, 0x00); dec_test!(bid128_sub_311, bid128_sub, 4, "+498297578.5666767427627868843989547E-6063" , "+76788.8998657667678789778766956768595565E-6021" , 0x80fd7a9937bad2e4f29ed2e3376c58c6u128, 0x20); dec_test!(bid128_sub_312, bid128_sub, 4, "-553726224.6633592792375925837327549349E-6027" , "-27.865E-6190" , 0x80f9110213490981517e45abcafaecbdu128, 0x00); dec_test!(bid128_sub_313, bid128_sub, 4, "-55.575879E-6023" , "-7011.010110E-6129" , 0x80f312029f0370759e4eecf13c000000u128, 0x20); dec_test!(bid128_sub_314, bid128_sub, 4, "-568799.8958668658556678E6135" , "+0.E6144" , 0xdffe00072de43f0c6b52d67242a24600u128, 0x00); dec_test!(bid128_sub_315, bid128_sub, 4, "+5955559.97898875E6118" , "+885657999765896766866998757566897.9869E6137" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_316, bid128_sub, 4, "-64.88977576264648386948E6126" , "+11011000100110.00100110010100010E6122" , 0xdff2000de5d8a26a919288a07d174852u128, 0x00); dec_test!(bid128_sub_317, bid128_sub, 4, "+65697676856866658887856879665865.99888687E-6096" , "-98.9899988988E-6052" , 0x00b9e80ef1b892c6d1c337225cf05a48u128, 0x20); dec_test!(bid128_sub_318, bid128_sub, 4, "-664952.38635346E-6171" , "-87957877.8E-6179" , 0x80000000000000000000000f7b6b7a55u128, 0x00); dec_test!(bid128_sub_319, bid128_sub, 4, "+678985.5988959698995986577775996E6107" , "-739.8957893953797E6140" , 0x5ffb6ccbfa5af989f6444ef948f41a86u128, 0x20); dec_test!(bid128_sub_320, bid128_sub, 4, "-6.887665E6137" , "-4978788.23823299758825346362E6101" , 0xdff153968de9c2929849971667ffec8du128, 0x20); dec_test!(bid128_sub_321, bid128_sub, 4, "-6887699.677676978568668688595675999779E6103" , "-11001.111010100010011E6110" , 0x5fc2363c7c20b1862eaa1fd92a1dd7bbu128, 0x20); dec_test!(bid128_sub_322, bid128_sub, 4, "-7589858878586667.567669986958696599585E6129" , "+888.9989989989898E6142" , 0xf8000000000000000000000000000000u128, 0x28); dec_test!(bid128_sub_323, bid128_sub, 4, "-7679.786588685697599698777757867965E6128" , "-66796955588778955.9565996878579899E6123" , 0x5ff549559c2888deda66540f4b3d2dccu128, 0x20); dec_test!(bid128_sub_324, bid128_sub, 4, "-77699679799997686.E-6036" , "+86488794388326828.72358676468294288764E-6144" , 0x80f77f16c89936afc7731baf6a9c0000u128, 0x20); dec_test!(bid128_sub_325, bid128_sub, 4, "+7.92896334E6115" , "-1.00E6130" , 0x5ff600000000152d02c7e14b25c2a34eu128, 0x00); dec_test!(bid128_sub_326, bid128_sub, 4, 0x7e000b27d2c29612e5e557c60a901a37u128 , 0xacec0000000000000000000000000000u128 , 0x7c000b27d2c29612e5e557c60a901a37u128, 0x01); dec_test!(bid128_sub_327, bid128_sub, 4, 0x7e001167db62b4a1a691118b31bbabf1u128 , 0x5291ecb6dc41bd258e6e6a5619ad43c3u128 , 0x7c001167db62b4a1a691118b31bbabf1u128, 0x01); dec_test!(bid128_sub_328, bid128_sub, 4, 0x7e001c6098638d7e4f8715a939f6096cu128 , 0x55d73273efb93f3e492c0674a3bbfae0u128 , 0x7c001c6098638d7e4f8715a939f6096cu128, 0x01); dec_test!(bid128_sub_329, bid128_sub, 4, 0x7e002be141b7a4f595330791e0165119u128 , 0x9d1153d782fbb6dc6fcdc7c9a8447518u128 , 0x7c002be141b7a4f595330791e0165119u128, 0x01); dec_test!(bid128_sub_330, bid128_sub, 4, 0x852bc62a9a3e6c9ae3065337b1491ffbu128 , 0x377a64cae26a3de5c8b47a0b44d9036du128 , 0xb77a64cae26a3de5c8b47a0b44d9036du128, 0x20); dec_test!(bid128_sub_331, bid128_sub, 4, "+876677679789.8669965766586E6121" , "+9789568868.6877576767768E6143" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_332, bid128_sub, 4, "-882.78977E6100" , "-66.7E6129" , 0x5fe348db3c5dba8bba8ecd4f7ff2879au128, 0x20); dec_test!(bid128_sub_333, bid128_sub, 4, "+8899999988989988988.988988998998898E6125" , "-95.656566577589667E6143" , 0x78000000000000000000000000000000u128, 0x28); dec_test!(bid128_sub_334, bid128_sub, 4, 0x8b6d0cc927c736b4b4a594ad1ffd5883u128 , 0x4e9024834bacfa7c2f878f6b08657c24u128 , 0xce8f6d20f4c1c8d9db4b9a2e53f6d968u128, 0x20); dec_test!(bid128_sub_335, bid128_sub, 4, "-965.2299E-6140" , "-85693273296373494855.9595248945275289592E-6143" , 0x0027a6801df5b25dcd6dec5fbc5f74d1u128, 0x00); dec_test!(bid128_sub_336, bid128_sub, 4, "+97.898978768669599659E6114" , "-2.337E6123" , 0x5fe00000078d1f05297bcfca850f67abu128, 0x00); dec_test!(bid128_sub_337, bid128_sub, 4, "+98.8888988898989998999888999E6143" , "-9.9988898888898998E6144" , 0x78000000000000000000000000000000u128, 0x28); dec_test!(bid128_sub_338, bid128_sub, 4, "+989.9E-6045" , "+223888255.584939577596856677857E-6030" , 0x80fa0002d36c063ef5857c1b960e0901u128, 0x00); dec_test!(bid128_sub_339, bid128_sub, 4, 0x98c11c12c39a443b88208b27886caaf1u128 , 0x136e0000000000000000000000000000u128 , 0x98c11c12c39a443b88208b27886caaf1u128, 0x00); dec_test!(bid128_sub_340, bid128_sub, 4, "-998898999898898889.E6132" , "-101000.001001101010000000E6149" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_341, bid128_sub, 4, 0x999eda42234f82cb3c1bf339263fb04du128 , 0x85eef135b7324203d3d7d7b5f4f6bdf6u128 , 0x999eda42234f82cb3c1bf339263fb04du128, 0x20); dec_test!(bid128_sub_342, bid128_sub, 4, 0xaf10650a19c0df05cc2cc5d9f8aff4abu128 , 0xaa760000000000000000000000000000u128 , 0xaf10650a19c0df05cc2cc5d9f8aff4abu128, 0x00); dec_test!(bid128_sub_343, bid128_sub, 4, 0xbee42b26841a6767ba9d8ed2b5293e97u128 , 0xa75fe61222a8582d9f775ea51ec57f80u128 , 0xbee3af8129080a0d4a27943b139c71e6u128, 0x20); dec_test!(bid128_sub_344, bid128_sub, 4, 0xbf632467a72240e1b8d3925d88b50033u128 , 0x7e0014a52b903a467fdb73fb9af7345eu128 , 0x7c0014a52b903a467fdb73fb9af7345eu128, 0x01); dec_test!(bid128_sub_345, bid128_sub, 4, 0xc3e20000000000000000000000000000u128 , 0xc6e50e3e97a26e372b5836b991f2194fu128 , 0x46e50e3e97a26e372b5836b991f2194fu128, 0x00); dec_test!(bid128_sub_346, bid128_sub, 4, 0xd8a02234a25f2dc8f2221957dc192cbfu128 , 0x0ba40000000000000000000000000000u128 , 0xd89f560e57b7c9d97554fd6e98fbbf76u128, 0x00); dec_test!(bid128_sub_347, bid128_sub, 4, "-Infinity" , "0" , 0xf8000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_348, bid128_sub, 4, "Infinity" , "-Infinity" , 0x78000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_349, bid128_sub, 4, "-Infinity" , "QNaN" , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_350, bid128_sub, 4, "QNaN" , "-Infinity" , 0x7c000000000000000000000000000000u128, 0x00); dec_test!(bid128_sub_351, bid128_sub, 4, "SNaN" , "-Infinity" , 0x7c000000000000000000000000000000u128, 0x01); dec_test!(bid128_sub_352, bid128_sub, 0, 0x800230c441000400f9af3bf37dee171du128 , 0x0003c0005220403cfffebffffeffff7eu128 , 0x800431ad41e9a06c98f7cc652617cf10u128, 0x20); dec_test!(bid128_sub_353, bid128_sub, 2, 0x0000000000000000000a400222480018u128 , 0x8020f41400402000ffffffffffffffffu128 , 0x0020f414004020010000000000000000u128, 0x20); dec_test!(bid128_sub_354, bid128_sub, 0, 0x800230c441000400f9af3bf37dee171du128 , 0x0003c0005220403cfffebffffeffff7eu128 , 0x800431ad41e9a06c98f7cc652617cf10u128, 0x20); dec_test!(bid128_sub_355, bid128_sub, 2, 0x0000000000000000000a400222480018u128 , 0x8020f41400402000ffffffffffffffffu128 , 0x0020f414004020010000000000000000u128, 0x20); dec_test!(bid128_sub_356, bid128_sub, 0, 0x0000008800000200ffffffffffffffffu128 , 0x0000010000000000ffffffffffffffffu128 , 0x80000077fffffe000000000000000000u128, 0x00); dec_test!(bid128_sub_357, bid128_sub, 0, 0xae01cbf56695692467131a19439520a7u128 , 0x2dff68be032101ef5da009c86eb48d88u128 , 0xae02319a70b08d17f434268c35f1ff90u128, 0x20); dec_test!(bid128_sub_358, bid128_sub, 2, 0xa61857066e6da73aedd2a0bc28137c9du128 , 0x265a60318c518074fffffffffffffffeu128 , 0xa65a60318c518074ffffffffffffffffu128, 0x20);