intervals 0.3.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. data/VERSION.txt +1 -0
  2. data/ext/crlibm/AUTHORS +2 -0
  3. data/ext/crlibm/COPYING +504 -0
  4. data/ext/crlibm/ChangeLog +80 -0
  5. data/ext/crlibm/INSTALL +182 -0
  6. data/ext/crlibm/Makefile.am +84 -0
  7. data/ext/crlibm/Makefile.in +530 -0
  8. data/ext/crlibm/NEWS +0 -0
  9. data/ext/crlibm/README +31 -0
  10. data/ext/crlibm/TODO +47 -0
  11. data/ext/crlibm/VERSION +1 -0
  12. data/ext/crlibm/aclocal.m4 +989 -0
  13. data/ext/crlibm/atan-itanium.c +846 -0
  14. data/ext/crlibm/atan-pentium.c +261 -0
  15. data/ext/crlibm/atan_accurate.c +244 -0
  16. data/ext/crlibm/atan_accurate.h +191 -0
  17. data/ext/crlibm/atan_fast.c +324 -0
  18. data/ext/crlibm/atan_fast.h +678 -0
  19. data/ext/crlibm/config.guess +1461 -0
  20. data/ext/crlibm/config.sub +1566 -0
  21. data/ext/crlibm/configure +7517 -0
  22. data/ext/crlibm/configure.ac +364 -0
  23. data/ext/crlibm/crlibm.h +125 -0
  24. data/ext/crlibm/crlibm_config.h +149 -0
  25. data/ext/crlibm/crlibm_config.h.in +148 -0
  26. data/ext/crlibm/crlibm_private.c +293 -0
  27. data/ext/crlibm/crlibm_private.h +658 -0
  28. data/ext/crlibm/csh_fast.c +631 -0
  29. data/ext/crlibm/csh_fast.h +771 -0
  30. data/ext/crlibm/double-extended.h +496 -0
  31. data/ext/crlibm/exp-td.c +962 -0
  32. data/ext/crlibm/exp-td.h +685 -0
  33. data/ext/crlibm/exp_accurate.c +197 -0
  34. data/ext/crlibm/exp_accurate.h +85 -0
  35. data/ext/crlibm/gappa/log-de-E0-logir0.gappa +106 -0
  36. data/ext/crlibm/gappa/log-de-E0.gappa +79 -0
  37. data/ext/crlibm/gappa/log-de.gappa +81 -0
  38. data/ext/crlibm/gappa/log-td-E0-logir0.gappa +126 -0
  39. data/ext/crlibm/gappa/log-td-E0.gappa +143 -0
  40. data/ext/crlibm/gappa/log-td-accurate-E0-logir0.gappa +230 -0
  41. data/ext/crlibm/gappa/log-td-accurate-E0.gappa +213 -0
  42. data/ext/crlibm/gappa/log-td-accurate.gappa +217 -0
  43. data/ext/crlibm/gappa/log-td.gappa +156 -0
  44. data/ext/crlibm/gappa/trigoSinCosCase3.gappa +204 -0
  45. data/ext/crlibm/gappa/trigoTanCase2.gappa +73 -0
  46. data/ext/crlibm/install-sh +269 -0
  47. data/ext/crlibm/log-de.c +431 -0
  48. data/ext/crlibm/log-de.h +732 -0
  49. data/ext/crlibm/log-td.c +852 -0
  50. data/ext/crlibm/log-td.h +819 -0
  51. data/ext/crlibm/log10-td.c +906 -0
  52. data/ext/crlibm/log10-td.h +823 -0
  53. data/ext/crlibm/log2-td.c +935 -0
  54. data/ext/crlibm/log2-td.h +821 -0
  55. data/ext/crlibm/maple/atan.mpl +359 -0
  56. data/ext/crlibm/maple/common-procedures.mpl +997 -0
  57. data/ext/crlibm/maple/csh.mpl +446 -0
  58. data/ext/crlibm/maple/double-extended.mpl +151 -0
  59. data/ext/crlibm/maple/exp-td.mpl +195 -0
  60. data/ext/crlibm/maple/log-de.mpl +243 -0
  61. data/ext/crlibm/maple/log-td.mpl +316 -0
  62. data/ext/crlibm/maple/log10-td.mpl +345 -0
  63. data/ext/crlibm/maple/log2-td.mpl +334 -0
  64. data/ext/crlibm/maple/trigo.mpl +728 -0
  65. data/ext/crlibm/maple/triple-double.mpl +58 -0
  66. data/ext/crlibm/missing +198 -0
  67. data/ext/crlibm/mkinstalldirs +40 -0
  68. data/ext/crlibm/rem_pio2_accurate.c +219 -0
  69. data/ext/crlibm/rem_pio2_accurate.h +53 -0
  70. data/ext/crlibm/scs_lib/AUTHORS +3 -0
  71. data/ext/crlibm/scs_lib/COPYING +504 -0
  72. data/ext/crlibm/scs_lib/ChangeLog +16 -0
  73. data/ext/crlibm/scs_lib/INSTALL +215 -0
  74. data/ext/crlibm/scs_lib/Makefile.am +18 -0
  75. data/ext/crlibm/scs_lib/Makefile.in +328 -0
  76. data/ext/crlibm/scs_lib/NEWS +0 -0
  77. data/ext/crlibm/scs_lib/README +9 -0
  78. data/ext/crlibm/scs_lib/TODO +4 -0
  79. data/ext/crlibm/scs_lib/addition_scs.c +623 -0
  80. data/ext/crlibm/scs_lib/config.guess +1461 -0
  81. data/ext/crlibm/scs_lib/config.sub +1566 -0
  82. data/ext/crlibm/scs_lib/configure +6226 -0
  83. data/ext/crlibm/scs_lib/division_scs.c +110 -0
  84. data/ext/crlibm/scs_lib/double2scs.c +174 -0
  85. data/ext/crlibm/scs_lib/install-sh +269 -0
  86. data/ext/crlibm/scs_lib/missing +198 -0
  87. data/ext/crlibm/scs_lib/mkinstalldirs +40 -0
  88. data/ext/crlibm/scs_lib/multiplication_scs.c +456 -0
  89. data/ext/crlibm/scs_lib/poly_fct.c +112 -0
  90. data/ext/crlibm/scs_lib/print_scs.c +73 -0
  91. data/ext/crlibm/scs_lib/rand_scs.c +63 -0
  92. data/ext/crlibm/scs_lib/scs.h +353 -0
  93. data/ext/crlibm/scs_lib/scs2double.c +391 -0
  94. data/ext/crlibm/scs_lib/scs2mpf.c +58 -0
  95. data/ext/crlibm/scs_lib/scs2mpfr.c +61 -0
  96. data/ext/crlibm/scs_lib/scs_private.c +23 -0
  97. data/ext/crlibm/scs_lib/scs_private.h +133 -0
  98. data/ext/crlibm/scs_lib/tests/tbx_timing.h +102 -0
  99. data/ext/crlibm/scs_lib/wrapper_scs.h +486 -0
  100. data/ext/crlibm/scs_lib/zero_scs.c +52 -0
  101. data/ext/crlibm/stamp-h.in +1 -0
  102. data/ext/crlibm/tests/Makefile.am +43 -0
  103. data/ext/crlibm/tests/Makefile.in +396 -0
  104. data/ext/crlibm/tests/blind_test.c +148 -0
  105. data/ext/crlibm/tests/generate_test_vectors.c +258 -0
  106. data/ext/crlibm/tests/soak_test.c +334 -0
  107. data/ext/crlibm/tests/test_common.c +627 -0
  108. data/ext/crlibm/tests/test_common.h +28 -0
  109. data/ext/crlibm/tests/test_perf.c +570 -0
  110. data/ext/crlibm/tests/test_val.c +249 -0
  111. data/ext/crlibm/trigo_accurate.c +500 -0
  112. data/ext/crlibm/trigo_accurate.h +331 -0
  113. data/ext/crlibm/trigo_fast.c +1219 -0
  114. data/ext/crlibm/trigo_fast.h +639 -0
  115. data/ext/crlibm/triple-double.h +878 -0
  116. data/ext/extconf.rb +31 -0
  117. data/ext/fpu.c +107 -0
  118. data/ext/jamis-mod.rb +591 -0
  119. data/lib/fpu.rb +287 -0
  120. data/lib/interval.rb +1170 -0
  121. data/lib/intervals.rb +212 -0
  122. data/lib/struct_float.rb +133 -0
  123. data/test/data_atan.txt +360 -0
  124. data/test/data_cos.txt +346 -0
  125. data/test/data_cosh.txt +3322 -0
  126. data/test/data_exp.txt +3322 -0
  127. data/test/data_log.txt +141 -0
  128. data/test/data_sin.txt +140 -0
  129. data/test/data_sinh.txt +3322 -0
  130. data/test/data_tan.txt +342 -0
  131. metadata +186 -0
@@ -0,0 +1,143 @@
1
+
2
+ c3 = <float64ne> (_c3);
3
+ c4 = <float64ne> (_c4);
4
+ c5 = <float64ne> (_c5);
5
+ c6 = <float64ne> (_c6);
6
+ c7 = <float64ne> (_c7);
7
+
8
+ E = 0; #MAPLE
9
+
10
+ logih = <float64ne> (_logih);
11
+ logim = <float64ne> (_logim);
12
+ logil = <float64ne> (_logil);
13
+
14
+
15
+ zh = <float64ne> (Z);
16
+ zl = Z - zh; #MAPLE
17
+
18
+ polyHorner <float64ne>= c3 + zh * (c4 + zh * (c5 + zh * (c6 + zh * c7)));
19
+
20
+ ZhSquarehl = zh * zh; #MAPLE
21
+ zhSquareh = <float64ne> (ZhSquarehl);
22
+ zhSquarel = <float64ne> (ZhSquarehl - zhSquareh);
23
+
24
+ zhSquareHalfh = zhSquareh * (-0.5); #MAPLE
25
+ zhSquareHalfl = zhSquarel * (-0.5); #MAPLE
26
+ ZhSquareHalfhl = ZhSquarehl * (-0.5); #MAPLE
27
+
28
+ polyUpper <float64ne>= polyHorner * (zh * zhSquareh);
29
+
30
+ temp = <float64ne> (zh * zl);
31
+ T1hl = polyUpper - temp; #MAPLE
32
+ t1h = <float64ne> (T1hl);
33
+ t1l = <float64ne> (T1hl - t1h);
34
+
35
+ T2 = Z + ZhSquareHalfhl; #MAPLE
36
+ t2h = <float64ne> (T2hl);
37
+ t2l = <float64ne> (T2hl - t2h);
38
+
39
+ PE = T2hl + T1hl; #MAPLE
40
+ ph = <float64ne> (Phl);
41
+ pl = <float64ne> (Phl - ph);
42
+
43
+
44
+ #Useful additional definitions
45
+ Log2hm = log2h + log2m; #MAPLE
46
+ Logihm = logih + logim; #MAPLE
47
+ #End additional
48
+
49
+ LogTabPoly = Logihm + Phl; #MAPLE
50
+ logTabPolyh = <float64ne> (LogTabPolyhl);
51
+ logTabPolyl = <float64ne> (LogTabPolyhl - logTabPolyh);
52
+
53
+ #We know that the addition of E * log2hm = 0 and logTabPolyhl is exact
54
+ #Thus we simplify the proof at this level
55
+
56
+ Loghm = LogTabPolyhl; #MAPLE
57
+
58
+ logh = <float64ne> (Loghm);
59
+ logm = <float64ne> (Loghm - logh);
60
+
61
+ #Mathematical definition of the logarithm and the polynomial
62
+
63
+ Phigher = (c3 + Z * (c4 + Z * (c5 + Z * (c6 + Z * c7)))); #MAPLE
64
+ ZZZ = Z*Z*Z; #MAPLE
65
+ ZZZPhigher = ZZZ * Phigher; #MAPLE
66
+ HZZ = (-0.5*Z*Z); #MAPLE
67
+ ZpHZZ = Z + HZZ; #MAPLE
68
+ P = ZpHZZ + ZZZPhigher; #MAPLE
69
+ Log1pZpTab = Log1pZ + Logir; #MAPLE
70
+
71
+ #We apply the same simplification to the mathematical definition of the logarithm
72
+
73
+ Log = Log1pZpTab; #MAPLE
74
+
75
+ # Useful additional definitions
76
+
77
+ HZZsimp = HZZ + (zh * zl); #MAPLE
78
+ ZpHZZsimp = Z + HZZsimp; #MAPLE
79
+ ZZZPhigherPzhzl = ZZZPhigher - zh * zl; #MAPLE
80
+ zhCube = zh * zhSquareh; #MAPLE
81
+
82
+ delta1 = T2hl - T2; #MAPLE
83
+ delta2 = polyUpper - (polyHorner * zhCube); #MAPLE
84
+ delta3 = zhCube - ZZZ; #MAPLE
85
+ delta4 = Phl - PE; #MAPLE
86
+ delta6 = P - Log1pZ; #MAPLE
87
+ delta7 = LogTabPolyhl - LogTabPoly; #MAPLE
88
+
89
+ # End additional
90
+
91
+
92
+ {
93
+ (T2hl - T2) / T2 in [-1b-103,1b-103]
94
+ /\ (Phl - PE) / PE in [-1b-103,1b-103]
95
+ /\ (LogTabPolyhl - LogTabPoly) / LogTabPoly in [-1b-103,1b-103]
96
+ /\ (Log2hm - Log2) / Log2 in [-1b-84,1b-84]
97
+ /\ (Logihm - Logir) / Logir in [-1b-106,1b-106]
98
+ /\ Z in [_zmin,_zmax]
99
+ /\ (P - Log1pZ) / Log1pZ in [-_epsilonApproxQuick,_epsilonApproxQuick]
100
+ /\ ((logh + logm) - Loghm) / Loghm in [-1b-106,1b-106]
101
+ ->
102
+ ((logh + logm) - Log) / Log in [-5b-65,5b-65]
103
+ }
104
+
105
+ T2hl - T2 -> ((T2hl - T2) / T2) * T2;
106
+ T2hl -> (T2hl - T2) + T2;
107
+
108
+ Phl - PE -> ((Phl - PE) / PE) * PE;
109
+ Phl -> (Phl - PE) + PE;
110
+
111
+
112
+ LogTabPolyhl -> (LogTabPolyhl - LogTabPoly) + LogTabPoly;
113
+
114
+ Loghm -> (Loghm - LogE) + LogE;
115
+
116
+ Log2 -> Log2hm * (1 / (((Log2hm - Log2) / Log2) + 1));
117
+
118
+ Logir -> Logihm * (1 / (((Logihm - Logir) / Logir) + 1));
119
+
120
+
121
+
122
+ HZZsimp -> (-0.5 * zh * zh) - (0.5 * zl * zl);
123
+
124
+ T2hl - ZpHZZsimp -> (0.5 * zl * zl) + delta1;
125
+
126
+ zhCube - ZZZ -> (Z * (zhSquareh - Z * Z)) - (zl * zhSquareh);
127
+
128
+ polyUpper - ZZZPhigher -> ZZZ * (polyHorner - Phigher) + polyHorner * delta3 + delta2;
129
+
130
+ ZpHZZ + ZZZPhigher -> ZpHZZsimp + ZZZPhigherPzhzl;
131
+
132
+ Phl - P -> (T2hl - ZpHZZsimp) + (T1hl - ZZZPhigherPzhzl) + delta4;
133
+
134
+ Log1pZ -> P * (1 / (((P - Log1pZ) / Log1pZ) + 1));
135
+ P - Log1pZ -> ((P - Log1pZ) / Log1pZ) * Log1pZ;
136
+
137
+ Phl - Log1pZ -> (Phl - P) + delta6;
138
+
139
+ LogTabPolyhl - Log1pZpTab -> (Logihm - Logir) + (Phl - Log1pZ) + delta7;
140
+
141
+ (logh + logm) - Loghm -> (((logh + logm) - Loghm) / Loghm) * Loghm;
142
+
143
+ (logh + logm) - Log -> ((logh + logm) - Loghm) + (Loghm - Log);
@@ -0,0 +1,230 @@
1
+
2
+
3
+ accPolyC14 = <float64ne> (_accPolyC14);
4
+ accPolyC13 = <float64ne> (_accPolyC13);
5
+ accPolyC12 = <float64ne> (_accPolyC12);
6
+ accPolyC11 = <float64ne> (_accPolyC11);
7
+ accPolyC10 = <float64ne> (_accPolyC10);
8
+
9
+ accPolyC9h = <float64ne> (_accPolyC9h);
10
+ accPolyC9l = <float64ne> (_accPolyC9l);
11
+ AccPolyC9hl = accPolyC9h + accPolyC9l; #MAPLE
12
+ accPolyC8h = <float64ne> (_accPolyC8h);
13
+ accPolyC8l = <float64ne> (_accPolyC8l);
14
+ AccPolyC8hl = accPolyC8h + accPolyC8l; #MAPLE
15
+ accPolyC7h = <float64ne> (_accPolyC7h);
16
+ accPolyC7l = <float64ne> (_accPolyC7l);
17
+ AccPolyC7hl = accPolyC7h + accPolyC7l; #MAPLE
18
+ accPolyC6h = <float64ne> (_accPolyC6h);
19
+ accPolyC6l = <float64ne> (_accPolyC6l);
20
+ AccPolyC6hl = accPolyC6h + accPolyC6l; #MAPLE
21
+ accPolyC5h = <float64ne> (_accPolyC5h);
22
+ accPolyC5l = <float64ne> (_accPolyC5l);
23
+ AccPolyC5hl = accPolyC5h + accPolyC5l; #MAPLE
24
+ accPolyC4h = <float64ne> (_accPolyC4h);
25
+ accPolyC4l = <float64ne> (_accPolyC4l);
26
+ AccPolyC4hl = accPolyC4h + accPolyC4l; #MAPLE
27
+ accPolyC3h = <float64ne> (_accPolyC3h);
28
+ accPolyC3l = <float64ne> (_accPolyC3l);
29
+ AccPolyC3hl = accPolyC3h + accPolyC3l; #MAPLE
30
+
31
+ E = 0; #MAPLE
32
+
33
+ zh = <float64ne> (Z);
34
+ zl = Z - zh; #MAPLE
35
+
36
+ highPoly <float64ne> = accPolyC10 + zh * (accPolyC11 + zh * (accPolyC12 + zh * (accPolyC13 + zh * accPolyC14)));
37
+
38
+ T1hl = zh * highPoly; #MAPLE
39
+
40
+ T2 = AccPolyC9hl + T1hl; #MAPLE
41
+ T3 = Z * T2hl; #MAPLE
42
+ T4 = AccPolyC8hl + T3hl; #MAPLE
43
+ T5 = Z * T4hl; #MAPLE
44
+ T6 = AccPolyC7hl + T5hl; #MAPLE
45
+ T7 = Z * T6hl; #MAPLE
46
+ T8 = AccPolyC6hl + T7hl; #MAPLE
47
+ T9 = Z * T8hl; #MAPLE
48
+ T10 = AccPolyC5hl + T9hl; #MAPLE
49
+ T11 = Z * T10hl; #MAPLE
50
+ T12 = AccPolyC4hl + T11hl; #MAPLE
51
+ T13 = Z * T12hl; #MAPLE
52
+ T14 = AccPolyC3hl + T13hl; #MAPLE
53
+
54
+
55
+ ZSquare = Z * Z; #MAPLE
56
+ ZCube = Z * ZSquarehml; #MAPLE
57
+ HigherPolyMultZ = T14hl * ZCubehml; #MAPLE
58
+ ZSquareHalfhml = -0.5 * ZSquarehml; #MAPLE
59
+ PolyWithSquare = ZSquareHalfhml + HigherPolyMultZhml; #MAPLE
60
+ Poly = Z + PolyWithSquarehml; #MAPLE
61
+
62
+ #We can simplify the proof in this case since we know that adding a triple double which is
63
+ #equal to 0 exactly is exact.
64
+
65
+ Loghml = Polyhml; #MAPLE
66
+
67
+
68
+ #Mathematical definition of the logarithm
69
+
70
+ MHighPoly = accPolyC10 + Z * (accPolyC11 + Z * (accPolyC12 + Z * (accPolyC13 + Z * accPolyC14))); #MAPLE
71
+ MT1 = Z * MHighPoly; #MAPLE
72
+ MT2 = AccPolyC9hl + MT1; #MAPLE
73
+ MT3 = Z * MT2; #MAPLE
74
+ MT4 = AccPolyC8hl + MT3; #MAPLE
75
+ MT5 = Z * MT4; #MAPLE
76
+ MT6 = AccPolyC7hl + MT5; #MAPLE
77
+ MT7 = Z * MT6; #MAPLE
78
+ MT8 = AccPolyC6hl + MT7; #MAPLE
79
+ MT9 = Z * MT8; #MAPLE
80
+ MT10 = AccPolyC5hl + MT9; #MAPLE
81
+ MT11 = Z * MT10; #MAPLE
82
+ MT12 = AccPolyC4hl + MT11; #MAPLE
83
+ MT13 = Z * MT12; #MAPLE
84
+ MT14 = AccPolyC3hl + MT13; #MAPLE
85
+ MZSquare = Z * Z; #MAPLE
86
+ MZCube = Z * MZSquare; #MAPLE
87
+ MHigherPolyMultZ = MT14 * MZCube; #MAPLE
88
+ MZSquareHalf = -0.5 * MZSquare; #MAPLE
89
+ MPolyWithSquare = MZSquareHalf + MHigherPolyMultZ; #MAPLE
90
+ MPoly = Z + MPolyWithSquare; #MAPLE
91
+
92
+ #We apply the same simplification here
93
+
94
+ MLog = MLog1pZ; #MAPLE
95
+
96
+
97
+ #Useful additional definitions
98
+
99
+ epsilon1 = (highPoly - MHighPoly) / MHighPoly; #MAPLE
100
+ epsilon2 = (T1hl - MT1) / MT1; #MAPLE
101
+ epsilon3 = (T2hl - MT2) / MT2; #MAPLE
102
+ epsilon4 = (T3hl - MT3) / MT3; #MAPLE
103
+ epsilon5 = (T4hl - MT4) / MT4; #MAPLE
104
+ epsilon6 = (T5hl - MT5) / MT5; #MAPLE
105
+ epsilon7 = (T6hl - MT6) / MT6; #MAPLE
106
+ epsilon8 = (T7hl - MT7) / MT7; #MAPLE
107
+ epsilon9 = (T8hl - MT8) / MT8; #MAPLE
108
+ epsilon10 = (T9hl - MT9) / MT9; #MAPLE
109
+ epsilon11 = (T10hl - MT10) / MT10; #MAPLE
110
+ epsilon12 = (T11hl - MT11) / MT11; #MAPLE
111
+ epsilon13 = (T12hl - MT12) / MT12; #MAPLE
112
+ epsilon14 = (T13hl - MT13) / MT13; #MAPLE
113
+ epsilon15 = (T14hl - MT14) / MT14; #MAPLE
114
+
115
+ epsilon16 = (ZCubehml - MZCube) / MZCube; #MAPLE
116
+ epsilon17 = (HigherPolyMultZhml - MHigherPolyMultZ) / MHigherPolyMultZ; #MAPLE
117
+ epsilon18 = (ZSquareHalfhml - MZSquareHalf) / MZSquareHalf; #MAPLE
118
+ epsilon19 = (PolyWithSquarehml - MPolyWithSquare) / MPolyWithSquare; #MAPLE
119
+ epsilon20 = (Polyhml - MLog1pZ) / MLog1pZ; #MAPLE
120
+
121
+ epsilon21 = (PolyWithSquare - MPolyWithSquare) / MPolyWithSquare; #MAPLE
122
+ epsilon22 = (Polyhml - MPoly) / MPoly; #MAPLE
123
+ epsilon23 = (Poly - MPoly) / MPoly; #MAPLE
124
+
125
+ aux1 = -0.5 * Z + MZSquare * MT14; #MAPLE
126
+
127
+
128
+ #End additional definitions
129
+
130
+ {
131
+ (
132
+ (T2hl - T2) / T2 in [-1b-103,1b-103]
133
+ /\ (T3hl - T3) / T3 in [-1b-102,1b-102]
134
+ /\ (T4hl - T4) / T4 in [-1b-103,1b-103]
135
+ /\ (T5hl - T5) / T5 in [-1b-102,1b-102]
136
+ /\ (T6hl - T6) / T6 in [-1b-103,1b-103]
137
+ /\ (T7hl - T7) / T7 in [-1b-102,1b-102]
138
+ /\ (T8hl - T8) / T8 in [-1b-103,1b-103]
139
+ /\ (T9hl - T9) / T9 in [-1b-102,1b-102]
140
+ /\ (T10hl - T10) / T10 in [-1b-103,1b-103]
141
+ /\ (T11hl - T11) / T11 in [-1b-102,1b-102]
142
+ /\ (T12hl - T12) / T12 in [-1b-103,1b-103]
143
+ /\ (T13hl - T13) / T13 in [-1b-102,1b-102]
144
+ /\ (T14hl - T14) / T14 in [-1b-103,1b-103]
145
+ /\ (ZSquarehml - ZSquare) / ZSquare in [-1b-149,1b-149]
146
+ /\ (ZCubehml - ZCube) / ZCube in [-1b-144,1b-144]
147
+ /\ (HigherPolyMultZhml - HigherPolyMultZ) / HigherPolyMultZ in [-1b-141,1b-141]
148
+ /\ (PolyWithSquarehml - PolyWithSquare) / PolyWithSquare in [-1b-137,1b-137]
149
+ /\ (Polyhml - Poly) / Poly in [-1b-134,1b-134]
150
+ /\ (MPoly - MLog1pZ) / MLog1pZ in [-_epsilonApproxAccurate,_epsilonApproxAccurate]
151
+ /\ Z in [1b-900,_zmax]
152
+ /\ ((logh + logm + logl) - Loghml) / Loghml in [-1b-159,1b-159]
153
+ ->
154
+ ((logh + logm + logl) - MLog) / MLog in [-5735b-132,5735b-132]
155
+ )
156
+ /\
157
+ (
158
+ (T2hl - T2) / T2 in [-1b-103,1b-103]
159
+ /\ (T3hl - T3) / T3 in [-1b-102,1b-102]
160
+ /\ (T4hl - T4) / T4 in [-1b-103,1b-103]
161
+ /\ (T5hl - T5) / T5 in [-1b-102,1b-102]
162
+ /\ (T6hl - T6) / T6 in [-1b-103,1b-103]
163
+ /\ (T7hl - T7) / T7 in [-1b-102,1b-102]
164
+ /\ (T8hl - T8) / T8 in [-1b-103,1b-103]
165
+ /\ (T9hl - T9) / T9 in [-1b-102,1b-102]
166
+ /\ (T10hl - T10) / T10 in [-1b-103,1b-103]
167
+ /\ (T11hl - T11) / T11 in [-1b-102,1b-102]
168
+ /\ (T12hl - T12) / T12 in [-1b-103,1b-103]
169
+ /\ (T13hl - T13) / T13 in [-1b-102,1b-102]
170
+ /\ (T14hl - T14) / T14 in [-1b-103,1b-103]
171
+ /\ (ZSquarehml - ZSquare) / ZSquare in [-1b-149,1b-149]
172
+ /\ (ZCubehml - ZCube) / ZCube in [-1b-144,1b-144]
173
+ /\ (HigherPolyMultZhml - HigherPolyMultZ) / HigherPolyMultZ in [-1b-141,1b-141]
174
+ /\ (PolyWithSquarehml - PolyWithSquare) / PolyWithSquare in [-1b-137,1b-137]
175
+ /\ (Polyhml - Poly) / Poly in [-1b-134,1b-134]
176
+ /\ (MPoly - MLog1pZ) / MLog1pZ in [-_epsilonApproxAccurate,_epsilonApproxAccurate]
177
+ /\ Z in [_zmin,-1b-900]
178
+ /\ ((logh + logm + logl) - Loghml) / Loghml in [-1b-159,1b-159]
179
+ ->
180
+ ((logh + logm + logl) - MLog) / MLog in [-5735b-132,5735b-132]
181
+ )
182
+ }
183
+
184
+ ((logh + logm + logl) - MLog) / MLog -> ((Loghml - MLog) / MLog) + ((((logh + logm + logl) - Loghml) / Loghml) * (((Loghml - MLog) / MLog) + 1));
185
+
186
+ T2hl -> (T2 * ((T2hl - T2) / T2)) + T2;
187
+ T3hl -> (T3 * ((T3hl - T3) / T3)) + T3;
188
+ T4hl -> (T4 * ((T4hl - T4) / T4)) + T4;
189
+ T5hl -> (T5 * ((T5hl - T5) / T5)) + T5;
190
+ T6hl -> (T6 * ((T6hl - T6) / T6)) + T6;
191
+ T7hl -> (T7 * ((T7hl - T7) / T7)) + T7;
192
+ T8hl -> (T8 * ((T8hl - T8) / T8)) + T8;
193
+ T9hl -> (T9 * ((T9hl - T9) / T9)) + T9;
194
+ T10hl -> (T10 * ((T10hl - T10) / T10)) + T10;
195
+ T11hl -> (T11 * ((T11hl - T11) / T11)) + T11;
196
+ T12hl -> (T12 * ((T12hl - T12) / T12)) + T12;
197
+ T13hl -> (T13 * ((T13hl - T13) / T13)) + T13;
198
+ T14hl -> (T14 * ((T14hl - T14) / T14)) + T14;
199
+
200
+
201
+ ZSquarehml -> (ZSquare * ((ZSquarehml - ZSquare) / ZSquare)) + ZSquare;
202
+ ZCubehml -> (ZCube * ((ZCubehml - ZCube) / ZCube)) + ZCube;
203
+ HigherPolyMultZhml -> (HigherPolyMultZ * ((HigherPolyMultZhml - HigherPolyMultZ) / HigherPolyMultZ)) + HigherPolyMultZ;
204
+ PolyWithSquarehml -> (PolyWithSquare * ((PolyWithSquarehml - PolyWithSquare) / PolyWithSquare)) + PolyWithSquare;
205
+ Polyhml -> (Poly * ((Polyhml - Poly) / Poly)) + Poly;
206
+
207
+
208
+ epsilon2 -> epsilon1 + (((zh - Z) / Z) * (epsilon1 + 1));
209
+ epsilon3 -> ((epsilon2 * MT1) / (AccPolyC9hl + MT1)) + (((AccPolyC9hl + T1hl) / (AccPolyC9hl + MT1)) * ((T2hl - T2) / T2));
210
+ epsilon4 -> epsilon3 + (((T3hl - T3) / T3) * (epsilon3 + 1));
211
+ epsilon5 -> ((epsilon4 * MT3) / (AccPolyC8hl + MT3)) + (((AccPolyC8hl + T3hl) / (AccPolyC8hl + MT3)) * ((T4hl - T4) / T4));
212
+ epsilon6 -> epsilon5 + (((T5hl - T5) / T5) * (epsilon5 + 1));
213
+ epsilon7 -> ((epsilon6 * MT5) / (AccPolyC7hl + MT5)) + (((AccPolyC7hl + T5hl) / (AccPolyC7hl + MT5)) * ((T6hl - T6) / T6));
214
+ epsilon8 -> epsilon7 + (((T7hl - T7) / T7) * (epsilon7 + 1));
215
+ epsilon9 -> ((epsilon8 * MT7) / (AccPolyC6hl + MT7)) + (((AccPolyC6hl + T7hl) / (AccPolyC6hl + MT7)) * ((T8hl - T8) / T8));
216
+ epsilon10 -> epsilon9 + (((T9hl - T9) / T9) * (epsilon9 + 1));
217
+ epsilon11 -> ((epsilon10 * MT9) / (AccPolyC5hl + MT9)) + (((AccPolyC5hl + T9hl) / (AccPolyC5hl + MT9)) * ((T10hl - T10) / T10));
218
+ epsilon12 -> epsilon11 + (((T11hl - T11) / T11) * (epsilon11 + 1));
219
+ epsilon13 -> ((epsilon12 * MT11) / (AccPolyC4hl + MT11)) + (((AccPolyC4hl + T11hl) / (AccPolyC4hl + MT11)) * ((T12hl - T12) / T12));
220
+ epsilon14 -> epsilon13 + (((T13hl - T13) / T13) * (epsilon13 + 1));
221
+ epsilon15 -> ((epsilon14 * MT13) / (AccPolyC3hl + MT13)) + (((AccPolyC3hl + T13hl) / (AccPolyC3hl + MT13)) * ((T14hl - T14) / T14));
222
+ epsilon16 -> ((ZSquarehml - MZSquare) / MZSquare) + (((ZCubehml - ZCube) / ZCube) * (((ZSquarehml - MZSquare) / MZSquare) + 1));
223
+ epsilon17 -> epsilon15 + epsilon16 + epsilon15 * epsilon16 +
224
+ ((HigherPolyMultZhml - HigherPolyMultZ) / HigherPolyMultZ) * (1 + epsilon15 + epsilon16 + epsilon15 * epsilon16);
225
+ epsilon18 -> (ZSquarehml - MZSquare) / MZSquare;
226
+ epsilon19 -> epsilon21 + (1 + epsilon21) * ((PolyWithSquarehml - PolyWithSquare) / PolyWithSquare);
227
+ epsilon20 -> (((Polyhml - MPoly) / MPoly) + ((MPoly - MLog1pZ) / MLog1pZ)) + (((Polyhml - MPoly) / MPoly) * ((MPoly - MLog1pZ) / MLog1pZ));
228
+ epsilon21 -> ((-0.5 * epsilon18) + (Z * MT14 * epsilon17)) / (-0.5 + (Z * MT14));
229
+ epsilon22 -> epsilon23 + (((Polyhml - Poly) / Poly) * (1+ epsilon23));
230
+ epsilon23 -> epsilon19 * (aux1 / (1 + aux1));
@@ -0,0 +1,213 @@
1
+
2
+ logih = <float64ne> (_logih);
3
+ logim = <float64ne> (_logim);
4
+ logil = <float64ne> (_logil);
5
+
6
+ Logihml = logih + logim + logil; #MAPLE
7
+
8
+
9
+ accPolyC14 = <float64ne> (_accPolyC14);
10
+ accPolyC13 = <float64ne> (_accPolyC13);
11
+ accPolyC12 = <float64ne> (_accPolyC12);
12
+ accPolyC11 = <float64ne> (_accPolyC11);
13
+ accPolyC10 = <float64ne> (_accPolyC10);
14
+
15
+ accPolyC9h = <float64ne> (_accPolyC9h);
16
+ accPolyC9l = <float64ne> (_accPolyC9l);
17
+ AccPolyC9hl = accPolyC9h + accPolyC9l; #MAPLE
18
+ accPolyC8h = <float64ne> (_accPolyC8h);
19
+ accPolyC8l = <float64ne> (_accPolyC8l);
20
+ AccPolyC8hl = accPolyC8h + accPolyC8l; #MAPLE
21
+ accPolyC7h = <float64ne> (_accPolyC7h);
22
+ accPolyC7l = <float64ne> (_accPolyC7l);
23
+ AccPolyC7hl = accPolyC7h + accPolyC7l; #MAPLE
24
+ accPolyC6h = <float64ne> (_accPolyC6h);
25
+ accPolyC6l = <float64ne> (_accPolyC6l);
26
+ AccPolyC6hl = accPolyC6h + accPolyC6l; #MAPLE
27
+ accPolyC5h = <float64ne> (_accPolyC5h);
28
+ accPolyC5l = <float64ne> (_accPolyC5l);
29
+ AccPolyC5hl = accPolyC5h + accPolyC5l; #MAPLE
30
+ accPolyC4h = <float64ne> (_accPolyC4h);
31
+ accPolyC4l = <float64ne> (_accPolyC4l);
32
+ AccPolyC4hl = accPolyC4h + accPolyC4l; #MAPLE
33
+ accPolyC3h = <float64ne> (_accPolyC3h);
34
+ accPolyC3l = <float64ne> (_accPolyC3l);
35
+ AccPolyC3hl = accPolyC3h + accPolyC3l; #MAPLE
36
+
37
+ E = 0; #MAPLE
38
+
39
+ zh = <float64ne> (Z);
40
+ zl = Z - zh; #MAPLE
41
+
42
+ highPoly <float64ne> = accPolyC10 + zh * (accPolyC11 + zh * (accPolyC12 + zh * (accPolyC13 + zh * accPolyC14)));
43
+
44
+ T1hl = zh * highPoly; #MAPLE
45
+
46
+ T2 = AccPolyC9hl + T1hl; #MAPLE
47
+ T3 = Z * T2hl; #MAPLE
48
+ T4 = AccPolyC8hl + T3hl; #MAPLE
49
+ T5 = Z * T4hl; #MAPLE
50
+ T6 = AccPolyC7hl + T5hl; #MAPLE
51
+ T7 = Z * T6hl; #MAPLE
52
+ T8 = AccPolyC6hl + T7hl; #MAPLE
53
+ T9 = Z * T8hl; #MAPLE
54
+ T10 = AccPolyC5hl + T9hl; #MAPLE
55
+ T11 = Z * T10hl; #MAPLE
56
+ T12 = AccPolyC4hl + T11hl; #MAPLE
57
+ T13 = Z * T12hl; #MAPLE
58
+ T14 = AccPolyC3hl + T13hl; #MAPLE
59
+
60
+
61
+ ZSquare = Z * Z; #MAPLE
62
+ ZCube = Z * ZSquarehml; #MAPLE
63
+ HigherPolyMultZ = T14hl * ZCubehml; #MAPLE
64
+ ZSquareHalfhml = -0.5 * ZSquarehml; #MAPLE
65
+ PolyWithSquare = ZSquareHalfhml + HigherPolyMultZhml; #MAPLE
66
+ Poly = Z + PolyWithSquarehml; #MAPLE
67
+ Logy = Logihml + Polyhml; #MAPLE
68
+
69
+ #We can simplify the proof in this case since we know that adding a triple double which is
70
+ #equal to 0 exactly is exact.
71
+
72
+ Loghml = Logyhml; #MAPLE
73
+
74
+
75
+ #Mathematical definition of the logarithm
76
+
77
+ MHighPoly = accPolyC10 + Z * (accPolyC11 + Z * (accPolyC12 + Z * (accPolyC13 + Z * accPolyC14))); #MAPLE
78
+ MT1 = Z * MHighPoly; #MAPLE
79
+ MT2 = AccPolyC9hl + MT1; #MAPLE
80
+ MT3 = Z * MT2; #MAPLE
81
+ MT4 = AccPolyC8hl + MT3; #MAPLE
82
+ MT5 = Z * MT4; #MAPLE
83
+ MT6 = AccPolyC7hl + MT5; #MAPLE
84
+ MT7 = Z * MT6; #MAPLE
85
+ MT8 = AccPolyC6hl + MT7; #MAPLE
86
+ MT9 = Z * MT8; #MAPLE
87
+ MT10 = AccPolyC5hl + MT9; #MAPLE
88
+ MT11 = Z * MT10; #MAPLE
89
+ MT12 = AccPolyC4hl + MT11; #MAPLE
90
+ MT13 = Z * MT12; #MAPLE
91
+ MT14 = AccPolyC3hl + MT13; #MAPLE
92
+ MZSquare = Z * Z; #MAPLE
93
+ MZCube = Z * MZSquare; #MAPLE
94
+ MHigherPolyMultZ = MT14 * MZCube; #MAPLE
95
+ MZSquareHalf = -0.5 * MZSquare; #MAPLE
96
+ MPolyWithSquare = MZSquareHalf + MHigherPolyMultZ; #MAPLE
97
+ MPoly = Z + MPolyWithSquare; #MAPLE
98
+ MLogy = MLogi + MLog1pZ; #MAPLE
99
+
100
+ #We apply the same simplification here
101
+
102
+ MLog = MLogy; #MAPLE
103
+
104
+
105
+ #Useful additional definitions
106
+
107
+ delta1 = highPoly - MHighPoly; #MAPLE
108
+ delta2 = T1hl - MT1; #MAPLE
109
+ delta3 = T2hl - MT2; #MAPLE
110
+ delta4 = T3hl - MT3; #MAPLE
111
+ delta5 = T4hl - MT4; #MAPLE
112
+ delta6 = T5hl - MT5; #MAPLE
113
+ delta7 = T6hl - MT6; #MAPLE
114
+ delta8 = T7hl - MT7; #MAPLE
115
+ delta9 = T8hl - MT8; #MAPLE
116
+ delta10 = T9hl - MT9; #MAPLE
117
+ delta11 = T10hl - MT10; #MAPLE
118
+ delta12 = T11hl - MT11; #MAPLE
119
+ delta13 = T12hl - MT12; #MAPLE
120
+ delta14 = T13hl - MT13; #MAPLE
121
+ delta15 = T14hl - MT14; #MAPLE
122
+ delta16 = ZSquarehml - MZSquare; #MAPLE
123
+ delta17 = ZCubehml - MZCube; #MAPLE
124
+ delta18 = HigherPolyMultZhml - MHigherPolyMultZ; #MAPLE
125
+ delta19 = ZSquareHalfhml - MZSquareHalf; #MAPLE
126
+ delta20 = PolyWithSquarehml - MPolyWithSquare; #MAPLE
127
+ delta21 = Polyhml - MPoly; #MAPLE
128
+ delta22 = Logyhml - MLogy; #MAPLE
129
+ delta24 = Loghml - MLog; #MAPLE
130
+ delta25 = Logihml - MLogi; #MAPLE
131
+ delta26 = Polyhml - MLog1pZ; #MAPLE
132
+
133
+
134
+ #End additional definitions
135
+
136
+ {
137
+ (T2hl - T2) / T2 in [-1b-103,1b-103]
138
+ /\ (T3hl - T3) / T3 in [-1b-102,1b-102]
139
+ /\ (T4hl - T4) / T4 in [-1b-103,1b-103]
140
+ /\ (T5hl - T5) / T5 in [-1b-102,1b-102]
141
+ /\ (T6hl - T6) / T6 in [-1b-103,1b-103]
142
+ /\ (T7hl - T7) / T7 in [-1b-102,1b-102]
143
+ /\ (T8hl - T8) / T8 in [-1b-103,1b-103]
144
+ /\ (T9hl - T9) / T9 in [-1b-102,1b-102]
145
+ /\ (T10hl - T10) / T10 in [-1b-103,1b-103]
146
+ /\ (T11hl - T11) / T11 in [-1b-102,1b-102]
147
+ /\ (T12hl - T12) / T12 in [-1b-103,1b-103]
148
+ /\ (T13hl - T13) / T13 in [-1b-102,1b-102]
149
+ /\ (T14hl - T14) / T14 in [-1b-103,1b-103]
150
+ /\ (ZSquarehml - ZSquare) / ZSquare in [-1b-149,1b-149]
151
+ /\ (ZCubehml - ZCube) / ZCube in [-1b-144,1b-144]
152
+ /\ (HigherPolyMultZhml - HigherPolyMultZ) / HigherPolyMultZ in [-1b-141,1b-141]
153
+ /\ (PolyWithSquarehml - PolyWithSquare) / PolyWithSquare in [-1b-137,1b-137]
154
+ /\ (Polyhml - Poly) / Poly in [-1b-134,1b-134]
155
+ /\ (Logyhml - Logy) / Logy in [-1b-128,1b-128]
156
+ /\ (Logihml - MLogi) / MLogi in [-1b-159,1b-159]
157
+ /\ (MPoly - MLog1pZ) / MLog1pZ in [-_epsilonApproxAccurate,_epsilonApproxAccurate]
158
+ /\ Z in [_zmin,_zmax]
159
+ /\ ((logh + logm + logl) - Loghml) / Loghml in [-1b-159,1b-159]
160
+ ->
161
+ ((logh + logm + logl) - MLog) / MLog in [-5735b-132,5735b-132]
162
+ }
163
+
164
+ MLog1pZ -> MPoly * (1 / (((MPoly - MLog1pZ) / MLog1pZ) + 1));
165
+ MLog2 -> Log2hml * (1 / (((Log2hml - MLog2) / MLog2) + 1));
166
+ MLogi -> Logihml * (1 / (((Logihml - MLogi) / MLogi) + 1));
167
+
168
+ T2hl -> (T2 * ((T2hl - T2) / T2)) + T2;
169
+ T3hl -> (T3 * ((T3hl - T3) / T3)) + T3;
170
+ T4hl -> (T4 * ((T4hl - T4) / T4)) + T4;
171
+ T5hl -> (T5 * ((T5hl - T5) / T5)) + T5;
172
+ T6hl -> (T6 * ((T6hl - T6) / T6)) + T6;
173
+ T7hl -> (T7 * ((T7hl - T7) / T7)) + T7;
174
+ T8hl -> (T8 * ((T8hl - T8) / T8)) + T8;
175
+ T9hl -> (T9 * ((T9hl - T9) / T9)) + T9;
176
+ T10hl -> (T10 * ((T10hl - T10) / T10)) + T10;
177
+ T11hl -> (T11 * ((T11hl - T11) / T11)) + T11;
178
+ T12hl -> (T12 * ((T12hl - T12) / T12)) + T12;
179
+ T13hl -> (T13 * ((T13hl - T13) / T13)) + T13;
180
+ T14hl -> (T14 * ((T14hl - T14) / T14)) + T14;
181
+
182
+ ZSquarehml -> (ZSquare * ((ZSquarehml - ZSquare) / ZSquare)) + ZSquare;
183
+ ZCubehml -> (ZCube * ((ZCubehml - ZCube) / ZCube)) + ZCube;
184
+ HigherPolyMultZhml -> (HigherPolyMultZ * ((HigherPolyMultZhml - HigherPolyMultZ) / HigherPolyMultZ)) + HigherPolyMultZ;
185
+ PolyWithSquarehml -> (PolyWithSquare * ((PolyWithSquarehml - PolyWithSquare) / PolyWithSquare)) + PolyWithSquare;
186
+ Polyhml -> (Poly * ((Polyhml - Poly) / Poly)) + Poly;
187
+ Logyhml -> (Logy * ((Logyhml - Logy) / Logy)) + Logy;
188
+
189
+
190
+ delta3 -> delta2 + (T2 * ((T2hl - T2) / T2));
191
+ delta4 -> Z * delta3 + T3 * ((T3hl - T3) / T3);
192
+ delta5 -> delta4 + (T4 * ((T4hl - T4) / T4));
193
+ delta6 -> Z * delta5 + T5 * ((T5hl - T5) / T5);
194
+ delta7 -> delta6 + (T6 * ((T6hl - T6) / T6));
195
+ delta8 -> Z * delta7 + T7 * ((T7hl - T7) / T7);
196
+ delta9 -> delta8 + (T8 * ((T8hl - T8) / T8));
197
+ delta10 -> Z * delta9 + T9 * ((T9hl - T9) / T9);
198
+ delta11 -> delta10 + (T10 * ((T10hl - T10) / T10));
199
+ delta12 -> Z * delta11 + T11 * ((T11hl - T11) / T11);
200
+ delta13 -> delta12 + (T12 * ((T12hl - T12) / T12));
201
+ delta14 -> Z * delta13 + T13 * ((T13hl - T13) / T13);
202
+ delta15 -> delta14 + (T14 * ((T14hl - T14) / T14));
203
+ delta16 -> Z*Z*((ZSquarehml - ZSquare) / ZSquare);
204
+ delta17 -> Z * delta16 + ZCube * ((ZCubehml - ZCube) / ZCube);
205
+ delta18 -> delta15 * delta17 + delta15 * MZCube + delta17 * MT14 +
206
+ HigherPolyMultZ * ((HigherPolyMultZhml - HigherPolyMultZ) / HigherPolyMultZ);
207
+ delta20 -> delta19 + delta18 + PolyWithSquare * ((PolyWithSquarehml - PolyWithSquare) / PolyWithSquare);
208
+ delta21 -> delta20 + Poly * ((Polyhml - Poly) / Poly);
209
+ delta22 -> delta25 + delta26 + Logy * ((Logyhml - Logy) / Logy);
210
+ delta26 -> delta21 + MLog1pZ * ((MPoly - MLog1pZ) / MLog1pZ);
211
+
212
+
213
+ ((logh + logm + logl) - MLog) / MLog -> ((Loghml - MLog) / MLog) + ((((logh + logm + logl) - Loghml) / Loghml) * (((Loghml - MLog) / MLog) + 1));