author: kx <kx@radix-linux.su> 2024-12-20 16:11:07 +0300
committer: kx <kx@radix-linux.su> 2024-12-20 16:11:07 +0300
commit: 868b2b66b564b5c00e3a74d10be45db7151627ac
parent: cce2ae8d3312493b7653358bb4af201d3271377b
Commit Summary:
Diffstat:
1 file changed, 231 insertions, 0 deletions
diff --git a/mpu/decexp/ldec_exp_emu64lsb.dfn b/mpu/decexp/ldec_exp_emu64lsb.dfn
new file mode 100644
index 0000000..b355ac0
--- /dev/null
+++ b/mpu/decexp/ldec_exp_emu64lsb.dfn
@@ -0,0 +1,250 @@
+
+#ifndef __REAL_INTERNAL_DEC_EXP_EMU64LSB
+#define __REAL_INTERNAL_DEC_EXP_EMU64LSB
+
+#if BITS_PER_EMUSHORT == 64
+
+/***************************************************************
+ Определения для Максимальной десятичной Экспоненты чисел
+ типа real.
+ ***************************************************************/
+
+/* REAL_32_MAX_DEC_EXP = 38; */
+static EMUSHORT _max_dec_exp_32_[NPIE_32+1] =
+{
+ 0x0000000000000026,
+ 0x0000000000000000
+};
+/* REAL_64_MAX_DEC_EXP = 308; */
+static EMUSHORT _max_dec_exp_64_[NPIE_64+1] =
+{
+ 0x0000000000000134,
+ 0x0000000000000000
+};
+/* REAL_128_MAX_DEC_EXP = 323228496; */
+static EMUSHORT _max_dec_exp_128_[NPIE_128+1] =
+{
+ 0x0000000013441350,
+ 0x0000000000000000
+};
+/* REAL_256_MAX_DEC_EXP = 323228496; */
+static EMUSHORT _max_dec_exp_256_[NPIE_256+1] =
+{
+ 0x0000000013441350,
+ 0x0000000000000000
+};
+
+/* REAL_512_MAX_DEC_EXP = 1388255822130839283; */
+static EMUSHORT _max_dec_exp_512_[NPIE_512+1] =
+{
+ 0x134413509f79fef3,
+ 0x0000000000000000
+};
+/* REAL_1024_MAX_DEC_EXP = 1388255822130839283; */
+static EMUSHORT _max_dec_exp_1024_[NPIE_1024+1] =
+{
+ 0x134413509f79fef3,
+ 0x0000000000000000
+};
+
+/* REAL_2048_MAX_DEC_EXP = 25608799859684840937503027312525808175; */
+static EMUSHORT _max_dec_exp_2048_[NPIE_2048+1] =
+{
+ 0x11f12b35816f922f, 0x134413509f79fef3,
+ 0x0000000000000000
+};
+/* REAL_4096_MAX_DEC_EXP = 25608799859684840937503027312525808175; */
+static EMUSHORT _max_dec_exp_4096_[NPIE_4096+1] =
+{
+ 0x11f12b35816f922f, 0x134413509f79fef3,
+ 0x0000000000000000
+};
+
+/* REAL_8192_MAX_DEC_EXP = 87142230302581544824664289252326044991\
+ 25871092238398896386086649085145222265; */
+static EMUSHORT _max_dec_exp_8192_[NPIE_8192+1] =
+{
+ 0x314bcde4d6f98c79, 0x04d5a618a87a3e69,
+ 0x11f12b35816f922f, 0x134413509f79fef3,
+ 0x0000000000000000
+};
+/* REAL_16384_MAX_DEC_EXP = 87142230302581544824664289252326044991\
+ 25871092238398896386086649085145222265; */
+static EMUSHORT _max_dec_exp_16384_[NPIE_16384+1] =
+{
+ 0x314bcde4d6f98c79, 0x04d5a618a87a3e69,
+ 0x11f12b35816f922f, 0x134413509f79fef3,
+ 0x0000000000000000
+};
+
+/* REAL_32768_MAX_DEC_EXP = 100903809075352817242282879963567487875\
+ 892099021734287898338535355230181019603\
+ 864364986397683765368543149769469684639\
+ 4562057154816912385935155623782668889; */
+static EMUSHORT _max_dec_exp_32768_[NPIE_32768+1] =
+{
+ 0xcb16a4fea4aa5a59, 0x5228e692b6317243,
+ 0x13cb978e668e37a2, 0x650d45b03233f57a,
+ 0x314bcde4d6f98c79, 0x04d5a618a87a3e69,
+ 0x11f12b35816f922f, 0x134413509f79fef3,
+ 0x0000000000000000
+};
+/* REAL_65536_MAX_DEC_EXP = 100903809075352817242282879963567487875\
+ 892099021734287898338535355230181019603\
+ 864364986397683765368543149769469684639\
+ 4562057154816912385935155623782668889; */
+static EMUSHORT _max_dec_exp_65536_[NPIE_65536+1] =
+{
+ 0xcb16a4fea4aa5a59, 0x5228e692b6317243,
+ 0x13cb978e668e37a2, 0x650d45b03233f57a,
+ 0x314bcde4d6f98c79, 0x04d5a618a87a3e69,
+ 0x11f12b35816f922f, 0x134413509f79fef3,
+ 0x0000000000000000
+};
+
+/* REAL_131072_MAX_DEC_EXP = 135289889148192929926396705879397085897\
+ 289585448728420527912857292534983632920\
+ 892390565864459960588805664323238032415\
+ 039482253220245990514340092162621997241\
+ 131037226858003884184847076362850336738\
+ 763387861134927266253983334997968052515\
+ 115732240463573024754589210939947951624\
+ 90520947274478376589561024881824149; */
+static EMUSHORT _max_dec_exp_131072_[NPIE_131072+1] =
+{
+ 0x7bdd462ef91f1195, 0x2d46cf70279e991f,
+ 0x01610678b2835704, 0x8091afd4b3d62a7b,
+ 0x9d72225362b25b3b, 0xba4d84e5fbce205e,
+ 0x939e3a321880c05c, 0x8bf06fbdc04aab97,
+ 0xcb16a4fea4aa5a59, 0x5228e692b6317243,
+ 0x13cb978e668e37a2, 0x650d45b03233f57a,
+ 0x314bcde4d6f98c79, 0x04d5a618a87a3e69,
+ 0x11f12b35816f922f, 0x134413509f79fef3,
+ 0x0000000000000000
+};
+
+
+/***************************************************************
+ Определения для Минимальной десятичной Экспоненты чисел
+ типа real.
+ ***************************************************************/
+
+/* REAL_32_MIN_DEC_EXP = -37; */
+static EMUSHORT _min_dec_exp_32_[NPIE_32+1] =
+{
+ 0xffffffffffffffdb, /* -38 = 0xffda; */
+ 0xffffffffffffffff
+};
+/* REAL_64_MIN_DEC_EXP = -307; */
+static EMUSHORT _min_dec_exp_64_[NPIE_64+1] =
+{
+ 0xfffffffffffffecd, /* -308 = 0xfecc; */
+ 0xffffffffffffffff
+};
+/* REAL_128_MIN_DEC_EXP = -323228524; */
+static EMUSHORT _min_dec_exp_128_[NPIE_128+1] =
+{
+ 0xffffffffecbbec94,
+ 0xffffffffffffffff
+};
+/* REAL_256_MIN_DEC_EXP = -323228563; */
+static EMUSHORT _min_dec_exp_256_[NPIE_256+1] =
+{
+ 0xffffffffecbbec6d,
+ 0xffffffffffffffff
+};
+
+/* REAL_512_MIN_DEC_EXP = -1388255822130839417; */
+static EMUSHORT _min_dec_exp_512_[NPIE_512+1] =
+{
+ 0xecbbecaf60860087,
+ 0xffffffffffffffff
+};
+/* REAL_1024_MIN_DEC_EXP = -1388255822130839571; */
+static EMUSHORT _min_dec_exp_1024_[NPIE_1024+1] =
+{
+ 0xecbbecaf6085ffed,
+ 0xffffffffffffffff
+};
+
+/* REAL_2048_MIN_DEC_EXP = -25608799859684840937503027312525808752; */
+static EMUSHORT _min_dec_exp_2048_[NPIE_2048+1] =
+{
+ 0xee0ed4ca7e906b90, 0xecbbecaf6086010c,
+ 0xffffffffffffffff
+};
+/* REAL_4096_MIN_DEC_EXP = -25608799859684840937503027312525809368; */
+static EMUSHORT _min_dec_exp_4096_[NPIE_4096+1] =
+{
+ 0xee0ed4ca7e906928, 0xecbbecaf6086010c,
+ 0xffffffffffffffff
+};
+
+/* REAL_8192_MIN_DEC_EXP = -87142230302581544824664289252326044991\
+ 25871092238398896386086649085145224653; */
+static EMUSHORT _min_dec_exp_8192_[NPIE_8192+1] =
+{
+ 0xceb4321b29066a33, 0xfb2a59e75785c196,
+ 0xee0ed4ca7e906dd0, 0xecbbecaf6086010c,
+ 0xffffffffffffffff
+};
+/* REAL_16384_MIN_DEC_EXP = -87142230302581544824664289252326044991\
+ 25871092238398896386086649085145227119; */
+static EMUSHORT _min_dec_exp_16384_[NPIE_16384+1] =
+{
+ 0xceb4321b29066091, 0xfb2a59e75785c196,
+ 0xee0ed4ca7e906dd0, 0xecbbecaf6086010c,
+ 0xffffffffffffffff
+};
+
+/* REAL_32768_MIN_DEC_EXP = -100903809075352817242282879963567487875\
+ 892099021734287898338535355230181019603\
+ 864364986397683765368543149769469684639\
+ 4562057154816912385935155623782678598; */
+static EMUSHORT _min_dec_exp_32768_[NPIE_32768+1] =
+{
+ 0x34e95b015b557fba, 0xadd7196d49ce8dbc,
+ 0xec3468719971c85d, 0x9af2ba4fcdcc0a85,
+ 0xceb4321b29067386, 0xfb2a59e75785c196,
+ 0xee0ed4ca7e906dd0, 0xecbbecaf6086010c,
+ 0xffffffffffffffff
+};
+/* REAL_65536_MIN_DEC_EXP = -100903809075352817242282879963567487875\
+ 892099021734287898338535355230181019603\
+ 864364986397683765368543149769469684639\
+ 4562057154816912385935155623782688463; */
+static EMUSHORT _min_dec_exp_65536_[NPIE_65536+1] =
+{
+ 0x34e95b015b555931, 0xadd7196d49ce8dbc,
+ 0xec3468719971c85d, 0x9af2ba4fcdcc0a85,
+ 0xceb4321b29067386, 0xfb2a59e75785c196,
+ 0xee0ed4ca7e906dd0, 0xecbbecaf6086010c,
+ 0xffffffffffffffff
+};
+
+/* REAL_131072_MIN_DEC_EXP = -135289889148192929926396705879397085897\
+ 289585448728420527912857292534983632920\
+ 892390565864459960588805664323238032415\
+ 039482253220245990514340092162621997241\
+ 131037226858003884184847076362850336738\
+ 763387861134927266253983334997968052515\
+ 115732240463573024754589210939947951624\
+ 90520947274478376589561024881863297; */
+static EMUSHORT _min_dec_exp_131072_[NPIE_131072+1] =
+{
+ 0x8422b9d106e0557f, 0xd2b9308fd86166e0,
+ 0xfe9ef9874d7ca8fb, 0x7f6e502b4c29d584,
+ 0x628dddac9d4da4c4, 0x45b27b1a0431dfa1,
+ 0x6c61c5cde77f3fa3, 0x740f90423fb55468,
+ 0x34e95b015b55a5a6, 0xadd7196d49ce8dbc,
+ 0xec3468719971c85d, 0x9af2ba4fcdcc0a85,
+ 0xceb4321b29067386, 0xfb2a59e75785c196,
+ 0xee0ed4ca7e906dd0, 0xecbbecaf6086010c,
+ 0xffffffffffffffff
+};
+
+#else /* BITS_PER_EMUSHORT != 64 */
+#error ldec_exp_emu64lsb.dfn: ERROR: Failed size of EMUSHORT data type.
+#endif /* BITS_PER_EMUSHORT == 64 */
+
+#endif /* __REAL_INTERNAL_DEC_EXP_EMU64LSB */