Math Processor Unit Library

libmpu – library of arithmetic functions for integer, real, and complex numbers of increased digit capacity

16 Commits   0 Branches   2 Tags
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:
Version 1.0.14
Diffstat:
2 files changed, 46 insertions, 0 deletions
diff --git a/mpu/math/cosh/emu00128/ei_cosh_001_emu32lsb.dfn b/mpu/math/cosh/emu00128/ei_cosh_001_emu32lsb.dfn
new file mode 100644
index 0000000..704e15b
--- /dev/null
+++ b/mpu/math/cosh/emu00128/ei_cosh_001_emu32lsb.dfn
@@ -0,0 +1,29 @@
+
+#ifndef   __REAL_EINTERNAL_COSH_001_32LSB
+#define   __REAL_EINTERNAL_COSH_001_32LSB
+
+#if BITS_PER_EMUSHORT == 32
+
+#define N_COSH_C128  10
+
+static EMUSHORT _ei_cosh__C_128_[N_COSH_C128][NPIR_128] =
+{
+/*   lgw         S i g n i f i c a n d               hgw         Exp         Sign     */
+/*  ==========  ==================================  ==========  ==========  ==========*/
+  { 0x00000000, 0x6e22e966, 0xd2f8d7d7, 0xf2e21a23, 0x00000000, 0x3fffffad, 0x00000000 }, /* 3.923989913178783335384831504E-25 */
+  { 0x00000000, 0x922380ee, 0xd2fec640, 0xb413bd72, 0x00000000, 0x3fffffb8, 0x00000000 }, /* 5.958251749891217573749957646E-22 */
+  { 0x00000000, 0xf37ed95e, 0xfd29263f, 0xd73f9f39, 0x00000000, 0x3fffffc2, 0x00000000 }, /* 7.292903645142559286331494361E-19 */
+  { 0x00000000, 0x11dfdb6c, 0x03e64546, 0xc9cba546, 0x00000000, 0x3fffffcc, 0x00000000 }, /* 7.001187498614376857031634374E-16 */
+  { 0x00000000, 0x8f7d343b, 0xc6c4bd3d, 0x8f76c77f, 0x00000000, 0x3fffffd6, 0x00000000 }, /* 5.096864498991235048806628198E-13 */
+  { 0x00000000, 0x7cd6e15c, 0xc4fae397, 0x93f27dbb, 0x00000000, 0x3fffffdf, 0x00000000 }, /* 2.691144455467372134043528734E-10 */
+  { 0x00000000, 0x00d11cf3, 0x0d00d00d, 0xd00d00d0, 0x00000000, 0x3fffffe7, 0x00000000 }, /* 9.688120039682539682539693015E-8  */
+  { 0x00000000, 0x60b60b40, 0x0b60b60b, 0xb60b60b6, 0x00000000, 0x3fffffef, 0x00000000 }, /* 2.170138888888888888888888888E-5  */
+  { 0x00000000, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x00000000, 0x3ffffff6, 0x00000000 }, /* 2.604166666666666666666666667E-3  */
+  { 0x00000000, 0x00000000, 0x00000000, 0x80000000, 0x00000000, 0x3ffffffc, 0x00000000 }  /* 1.250000000000000000000000000E-1  */
+};
+
+#else  /* BITS_PER_EMUSHORT != 32 */
+#error ei_cosh_001_emu32lsb.dfn: ERROR: Failed size of EMUSHORT data type.
+#endif /* BITS_PER_EMUSHORT == 32 */
+
+#endif /* __REAL_EINTERNAL_COSH_001_32LSB */
diff --git a/mpu/math/cosh/emu00128/ei_cosh_001_emu32msb.dfn b/mpu/math/cosh/emu00128/ei_cosh_001_emu32msb.dfn
new file mode 100644
index 0000000..0c95bd7
--- /dev/null
+++ b/mpu/math/cosh/emu00128/ei_cosh_001_emu32msb.dfn
@@ -0,0 +1,29 @@
+
+#ifndef   __REAL_EINTERNAL_COSH_001_32MSB
+#define   __REAL_EINTERNAL_COSH_001_32MSB
+
+#if BITS_PER_EMUSHORT == 32
+
+#define N_COSH_C128  10
+
+static EMUSHORT _ei_cosh__C_128_[N_COSH_C128][NPIR_128] =
+{
+/*   Sign        Exp         hgw         S i g n i f i c a n d               lgw      */
+/*  ==========  ==========  ==========  ==================================  ==========*/
+  { 0x00000000, 0x3fffffad, 0x00000000, 0xf2e21a23, 0xd2f8d7d7, 0x6e22e966, 0x00000000 }, /* 3.923989913178783335384831504E-25 */
+  { 0x00000000, 0x3fffffb8, 0x00000000, 0xb413bd72, 0xd2fec640, 0x922380ee, 0x00000000 }, /* 5.958251749891217573749957646E-22 */
+  { 0x00000000, 0x3fffffc2, 0x00000000, 0xd73f9f39, 0xfd29263f, 0xf37ed95e, 0x00000000 }, /* 7.292903645142559286331494361E-19 */
+  { 0x00000000, 0x3fffffcc, 0x00000000, 0xc9cba546, 0x03e64546, 0x11dfdb6c, 0x00000000 }, /* 7.001187498614376857031634374E-16 */
+  { 0x00000000, 0x3fffffd6, 0x00000000, 0x8f76c77f, 0xc6c4bd3d, 0x8f7d343b, 0x00000000 }, /* 5.096864498991235048806628198E-13 */
+  { 0x00000000, 0x3fffffdf, 0x00000000, 0x93f27dbb, 0xc4fae397, 0x7cd6e15c, 0x00000000 }, /* 2.691144455467372134043528734E-10 */
+  { 0x00000000, 0x3fffffe7, 0x00000000, 0xd00d00d0, 0x0d00d00d, 0x00d11cf3, 0x00000000 }, /* 9.688120039682539682539693015E-8  */
+  { 0x00000000, 0x3fffffef, 0x00000000, 0xb60b60b6, 0x0b60b60b, 0x60b60b40, 0x00000000 }, /* 2.170138888888888888888888888E-5  */
+  { 0x00000000, 0x3ffffff6, 0x00000000, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x00000000 }, /* 2.604166666666666666666666667E-3  */
+  { 0x00000000, 0x3ffffffc, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000 }  /* 1.250000000000000000000000000E-1  */
+};
+
+#else  /* BITS_PER_EMUSHORT != 32 */
+#error ei_cosh_001_emu32msb.dfn: ERROR: Failed size of EMUSHORT data type.
+#endif /* BITS_PER_EMUSHORT == 32 */
+
+#endif /* __REAL_EINTERNAL_COSH_001_32MSB */