hist.html 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
  4. <title>History</title>
  5. <link rel="stylesheet" href="../../multiprecision.css" type="text/css">
  6. <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
  7. <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.Multiprecision">
  8. <link rel="up" href="../map.html" title="Roadmap">
  9. <link rel="prev" href="../map.html" title="Roadmap">
  10. <link rel="next" href="todo.html" title="TODO">
  11. </head>
  12. <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
  13. <table cellpadding="2" width="100%"><tr>
  14. <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
  15. <td align="center"><a href="../../../../../../index.html">Home</a></td>
  16. <td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
  17. <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
  18. <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
  19. <td align="center"><a href="../../../../../../more/index.htm">More</a></td>
  20. </tr></table>
  21. <hr>
  22. <div class="spirit-nav">
  23. <a accesskey="p" href="../map.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../map.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="todo.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
  24. </div>
  25. <div class="section">
  26. <div class="titlepage"><div><div><h3 class="title">
  27. <a name="boost_multiprecision.map.hist"></a><a class="link" href="hist.html" title="History">History</a>
  28. </h3></div></div></div>
  29. <h5>
  30. <a name="boost_multiprecision.map.hist.h0"></a>
  31. <span class="phrase"><a name="boost_multiprecision.map.hist.multiprecision_3_2_3_boost_1_72"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.multiprecision_3_2_3_boost_1_72">Multiprecision-3.2.3
  32. (Boost-1.72)</a>
  33. </h5>
  34. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
  35. Big <code class="computeroutput"><span class="keyword">constexpr</span></code> update allows
  36. <a class="link" href="../tut/ints/cpp_int.html" title="cpp_int">cpp_int</a>
  37. and <a class="link" href="../tut/floats/float128.html" title="float128">float128</a>
  38. arithmetic to be fully <code class="computeroutput"><span class="keyword">constexpr</span></code>
  39. with gcc and clang 9 or later, or any compiler supporting <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">is_constant_evaluated</span><span class="special">()</span></code>.
  40. </li></ul></div>
  41. <h5>
  42. <a name="boost_multiprecision.map.hist.h1"></a>
  43. <span class="phrase"><a name="boost_multiprecision.map.hist.multiprecision_3_1_3_boost_1_71"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.multiprecision_3_1_3_boost_1_71">Multiprecision-3.1.3
  44. (Boost-1.71)</a>
  45. </h5>
  46. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  47. <li class="listitem">
  48. Support hexfloat io-formatting for float128.
  49. </li>
  50. <li class="listitem">
  51. Fix various bugs in variable precision interconversions.
  52. </li>
  53. <li class="listitem">
  54. Respect uppercase for '0x' prefix outputs.
  55. </li>
  56. <li class="listitem">
  57. Incorporate some unit tests from the Etherium project.
  58. </li>
  59. <li class="listitem">
  60. Fix some gcc warnings.
  61. </li>
  62. </ul></div>
  63. <h5>
  64. <a name="boost_multiprecision.map.hist.h2"></a>
  65. <span class="phrase"><a name="boost_multiprecision.map.hist.multiprecision_3_1_2_boost_1_70"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.multiprecision_3_1_2_boost_1_70">Multiprecision-3.1.2
  66. (Boost-1.70)</a>
  67. </h5>
  68. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  69. <li class="listitem">
  70. Fix various conversion issues in the traits classes, check for compatibility
  71. with Boost.Optional.
  72. </li>
  73. <li class="listitem">
  74. Prevent instantiation of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code>
  75. on any old type when checking for convertibility. See <a href="https://github.com/boostorg/multiprecision/issues/98" target="_top">#98</a>.
  76. </li>
  77. <li class="listitem">
  78. Update variable precision code to accound for arbitrary precision integers.
  79. See <a href="https://github.com/boostorg/multiprecision/issues/103" target="_top">#103</a>.
  80. </li>
  81. <li class="listitem">
  82. Add support for XML serialization archives.
  83. </li>
  84. <li class="listitem">
  85. Fix bug in fixed precision iostream formatting in <code class="computeroutput"><span class="identifier">mpf_float</span></code>
  86. and <code class="computeroutput"><span class="identifier">mpfr_float</span></code>. See
  87. <a href="https://github.com/boostorg/multiprecision/issues/113" target="_top">#113</a>.
  88. </li>
  89. <li class="listitem">
  90. Add more overloads for special functions which are better handled natively
  91. by MPFR.
  92. </li>
  93. <li class="listitem">
  94. Fixed bug in generic <code class="computeroutput"><span class="identifier">exp</span></code>
  95. implementation which could cause invariant failure.
  96. </li>
  97. <li class="listitem">
  98. Fixed generic conversion from float to integer to avoid undefined behaviour.
  99. See <a href="https://github.com/boostorg/multiprecision/issues/110" target="_top">#110</a>.
  100. </li>
  101. </ul></div>
  102. <h5>
  103. <a name="boost_multiprecision.map.hist.h3"></a>
  104. <span class="phrase"><a name="boost_multiprecision.map.hist.multiprecision_3_1_1_boost_1_69"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.multiprecision_3_1_1_boost_1_69">Multiprecision-3.1.1
  105. (Boost-1.69)</a>
  106. </h5>
  107. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  108. <li class="listitem">
  109. Big update to better support variable precision types so that the precision
  110. of the result is always the largest of all the arguments.
  111. </li>
  112. <li class="listitem">
  113. Add support for allocators that are <code class="computeroutput"><span class="identifier">final</span></code>
  114. in <a class="link" href="../tut/ints/cpp_int.html" title="cpp_int">cpp_int</a>.
  115. </li>
  116. <li class="listitem">
  117. Removed use of deprecated Boost.Endian in favour of Predef.
  118. </li>
  119. <li class="listitem">
  120. Add support for <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code>.
  121. </li>
  122. <li class="listitem">
  123. Fixed minor bug in constant initialization. See <a href="https://github.com/boostorg/multiprecision/issues/67" target="_top">#67</a>.
  124. </li>
  125. <li class="listitem">
  126. Make assignment of non-finite value to <code class="computeroutput"><span class="identifier">cpp_int</span></code>
  127. a runtime errors. See <a href="https://github.com/boostorg/multiprecision/issues/58" target="_top">#58</a>.
  128. </li>
  129. <li class="listitem">
  130. Added typedefs for <code class="computeroutput"><span class="identifier">cpp_bin_float_oct</span></code>
  131. and <code class="computeroutput"><span class="identifier">cpp_complex_oct</span></code>.
  132. </li>
  133. </ul></div>
  134. <h5>
  135. <a name="boost_multiprecision.map.hist.h4"></a>
  136. <span class="phrase"><a name="boost_multiprecision.map.hist.multiprecision_3_1_0_boost_1_68"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.multiprecision_3_1_0_boost_1_68">Multiprecision-3.1.0
  137. (Boost-1.68)</a>
  138. </h5>
  139. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  140. <li class="listitem">
  141. Support added for complex multiprecision numbers.
  142. </li>
  143. <li class="listitem">
  144. Changed conversion to unsigned integer types to be truncating to match
  145. standard defined behaviour.
  146. </li>
  147. <li class="listitem">
  148. Correct bug in MPFR string formatting.
  149. </li>
  150. <li class="listitem">
  151. Fix undefined behaviour in cpp_dec_float conversion from long long.
  152. </li>
  153. <li class="listitem">
  154. Add support for Eigen interoperability.
  155. </li>
  156. <li class="listitem">
  157. float128.hpp: Fix Intel on Windows build.
  158. </li>
  159. <li class="listitem">
  160. Fix type used in temporaries when expanding expression templates containing
  161. mixed expressions.
  162. </li>
  163. <li class="listitem">
  164. Fix infinite loop in gmp_float to fixed-point string conversion.
  165. </li>
  166. <li class="listitem">
  167. Update the expression templates to issue static_asserts with better error
  168. messages when you try and do something unsupported.
  169. </li>
  170. <li class="listitem">
  171. Fix bug in cpp_int where incrementing to zero doesn't set the sign correctly.
  172. </li>
  173. <li class="listitem">
  174. Remove erroneous use of std::move, and rely on NVRO instead.
  175. </li>
  176. <li class="listitem">
  177. Fix up support for changes to MPIR-3.0.
  178. </li>
  179. <li class="listitem">
  180. Fix various conversion errors in cpp_bin_float when the exponent type
  181. is a <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">long</span></code>,
  182. or else we're converting to an integer that is wider than we are.
  183. </li>
  184. <li class="listitem">
  185. Fix compatibility issue with GCC-8 caused by the introduction of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">byte</span></code>.
  186. </li>
  187. </ul></div>
  188. <h5>
  189. <a name="boost_multiprecision.map.hist.h5"></a>
  190. <span class="phrase"><a name="boost_multiprecision.map.hist.multiprecision_3_0_0_boost_1_67"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.multiprecision_3_0_0_boost_1_67">Multiprecision-3.0.0
  191. (Boost-1.67)</a>
  192. </h5>
  193. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  194. <li class="listitem">
  195. <span class="bold"><strong>Breaking Change:</strong></span> When converting a multiprecision
  196. integer to a narrower type, if the value is too large (or negative) to
  197. fit in the smaller type, then the result is either the maximum (or minimum)
  198. value of the target type. This was always the intended behaviour, but
  199. was somewhat haphazardly enforced before. If you really do want just
  200. the low order N bits of a value, then you will need to mask these out
  201. prior to the case, for example: <code class="computeroutput"><span class="keyword">static_cast</span><span class="special">&lt;</span><span class="keyword">unsigned</span><span class="special">&gt;(~</span><span class="keyword">static_cast</span><span class="special">&lt;</span><span class="keyword">unsigned</span><span class="special">&gt;(</span><span class="number">0</span><span class="special">)</span> <span class="special">&amp;</span> <span class="identifier">my_value</span><span class="special">)</span></code>.
  202. Note that technically (to avoid undefined behaviour) you should do the
  203. same thing with built in integer types too. See <a href="https://svn.boost.org/trac/boost/ticket/13109" target="_top">#13109</a>.
  204. </li>
  205. <li class="listitem">
  206. Fix bug in conversion of decimal to rational types (zero needs special
  207. handling), see <a href="https://svn.boost.org/trac/boost/ticket/13148" target="_top">#13148</a>.
  208. </li>
  209. <li class="listitem">
  210. Fix conversion from cpp_bin_float to a wider built in integer type, see
  211. <a href="https://svn.boost.org/trac/boost/ticket/13301" target="_top">#13301</a>.
  212. </li>
  213. <li class="listitem">
  214. Improve performance heurists used in cpp_bin_float exp function.
  215. </li>
  216. <li class="listitem">
  217. Fix bug in floor/ceil and cpp_bin_float when the exponent type is wider
  218. than an int, see <a href="https://svn.boost.org/trac/boost/ticket/13264" target="_top">#13264</a>.
  219. </li>
  220. <li class="listitem">
  221. Disable explicit conversion operator when the target type is already
  222. constructible from this type, see <a href="https://github.com/boostorg/multiprecision/issues/30" target="_top">#30</a>.
  223. </li>
  224. <li class="listitem">
  225. Fix support for changes new to MPIR-3.0, see <a href="https://svn.boost.org/trac/boost/ticket/13124" target="_top">#13124</a>.
  226. </li>
  227. </ul></div>
  228. <h5>
  229. <a name="boost_multiprecision.map.hist.h6"></a>
  230. <span class="phrase"><a name="boost_multiprecision.map.hist.multiprecision_2_3_2_boost_1_65"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.multiprecision_2_3_2_boost_1_65">Multiprecision-2.3.2
  231. (Boost-1.65)</a>
  232. </h5>
  233. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  234. <li class="listitem">
  235. Updated expression templates to store arithmetic literals directly in
  236. the expression template to prevent dangling references, see <a href="https://github.com/boostorg/multiprecision/issues/19" target="_top">#19</a>.
  237. </li>
  238. <li class="listitem">
  239. Fix various issues with huge values and overflow in the trig, pow and
  240. exp functions, see <a href="https://github.com/boostorg/multiprecision/issues/24" target="_top">#24</a>.
  241. </li>
  242. <li class="listitem">
  243. Fix error handling of checked cpp_int multiply that could cause some
  244. overflows to be missed.
  245. </li>
  246. </ul></div>
  247. <h5>
  248. <a name="boost_multiprecision.map.hist.h7"></a>
  249. <span class="phrase"><a name="boost_multiprecision.map.hist.multiprecision_2_3_1_boost_1_64"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.multiprecision_2_3_1_boost_1_64">Multiprecision-2.3.1
  250. (Boost-1.64)</a>
  251. </h5>
  252. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  253. <li class="listitem">
  254. In <code class="computeroutput"><span class="identifier">cpp_bin_float</span></code> prevent
  255. double rounding when converting to a denormalized float. See <a href="https://svn.boost.org/trac/boost/ticket/12527" target="_top">#12527</a>.
  256. </li>
  257. <li class="listitem">
  258. Fix bug in integer sqrt for very small integers. See <a href="https://svn.boost.org/trac/boost/ticket/12559" target="_top">#12559</a>.
  259. </li>
  260. <li class="listitem">
  261. Fix conversion to signed-zero in <code class="computeroutput"><span class="identifier">cpp_bin_float</span></code>.
  262. </li>
  263. <li class="listitem">
  264. Change <code class="computeroutput"><span class="identifier">cpp_bin_float</span></code>
  265. rounding code to round at arbitrary location so we can use it for conversions,
  266. see <a href="https://svn.boost.org/trac/boost/ticket/12527" target="_top">#12527</a>.
  267. </li>
  268. <li class="listitem">
  269. Improve performance of 128-bit bit-scan operations.
  270. </li>
  271. <li class="listitem">
  272. Fix subtraction of very small quantities in <code class="computeroutput"><span class="identifier">cpp_bin_float</span></code>.
  273. See: <a href="https://svn.boost.org/trac/boost/ticket/12580" target="_top">#12580</a>.
  274. </li>
  275. <li class="listitem">
  276. Bring error handling into line with C99 Annex F. See <a href="https://svn.boost.org/trac/boost/ticket/12581" target="_top">#12581</a>.
  277. </li>
  278. <li class="listitem">
  279. Fix bitwise export of trivial <code class="computeroutput"><span class="identifier">cpp_int</span></code>'s,
  280. see <a href="https://svn.boost.org/trac/boost/ticket/12627" target="_top">#12627</a>.
  281. </li>
  282. <li class="listitem">
  283. Fix <code class="computeroutput"><span class="identifier">ilogb</span></code> (and code that
  284. uses it) to consistently return the smallest value of the exponent type
  285. when the argument is zero, see <a href="https://svn.boost.org/trac/boost/ticket/12625" target="_top">#12625</a>.
  286. </li>
  287. <li class="listitem">
  288. Allow conversion from <code class="computeroutput"><a class="link" href="../tut/floats/float128.html" title="float128">float128</a></code>
  289. to <code class="computeroutput"><span class="identifier">cpp_bin_float</span></code>.
  290. </li>
  291. <li class="listitem">
  292. Fix bug in left shift of <code class="computeroutput"><span class="identifier">cpp_int</span></code>
  293. which would result in bit-loss, see <a href="https://svn.boost.org/trac/boost/ticket/12790" target="_top">#12790</a>.
  294. </li>
  295. <li class="listitem">
  296. Fixed bugs in bounded but variable precision <code class="computeroutput"><span class="identifier">cpp_int</span></code>'s
  297. caused by over-aggressive constexpr optimization, see <a href="https://svn.boost.org/trac/boost/ticket/12798" target="_top">#12798</a>.
  298. </li>
  299. </ul></div>
  300. <h5>
  301. <a name="boost_multiprecision.map.hist.h8"></a>
  302. <span class="phrase"><a name="boost_multiprecision.map.hist.multiprecision_2_3_0_boost_1_63"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.multiprecision_2_3_0_boost_1_63">Multiprecision-2.3.0
  303. (Boost-1.63)</a>
  304. </h5>
  305. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  306. <li class="listitem">
  307. Added support for all the C99 math functions.
  308. </li>
  309. <li class="listitem">
  310. Extended generic-interconversions to handle narrowing cases as well,
  311. changed convert_to member function and hence explicit conversion operators
  312. to use the same conversion code as the explicit constructors.
  313. </li>
  314. <li class="listitem">
  315. Fix IO stream parsing error, see <a href="https://svn.boost.org/trac/boost/ticket/12488" target="_top">#12488</a>.
  316. </li>
  317. <li class="listitem">
  318. Make default constructed floating point types all zero for consistency,
  319. see <a href="https://svn.boost.org/trac/boost/ticket/12500" target="_top">#12500</a>.
  320. </li>
  321. <li class="listitem">
  322. Fix conversion of cpp_bin_float to float/double/long double when the
  323. exponent value would overflow an int, see <a href="https://svn.boost.org/trac/boost/ticket/12512" target="_top">#12512</a>.
  324. </li>
  325. <li class="listitem">
  326. Fix cpp_bin_float subtractions that yield signed-zeros, see <a href="https://svn.boost.org/trac/boost/ticket/12524" target="_top">#12524</a>.
  327. </li>
  328. <li class="listitem">
  329. Fix ceil/trunc/round applied to cpp_bin_float and yielding a signed zero,
  330. see <a href="https://svn.boost.org/trac/boost/ticket/12525" target="_top">#12525</a>.
  331. </li>
  332. </ul></div>
  333. <h5>
  334. <a name="boost_multiprecision.map.hist.h9"></a>
  335. <span class="phrase"><a name="boost_multiprecision.map.hist.multiprecision_2_2_8_boost_1_62"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.multiprecision_2_2_8_boost_1_62">Multiprecision-2.2.8
  336. (Boost-1.62)</a>
  337. </h5>
  338. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  339. <li class="listitem">
  340. Added support for hashing via <code class="computeroutput"><span class="identifier">Boost</span><span class="special">.</span><span class="identifier">Hash</span></code>
  341. or <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">hash</span></code>.
  342. </li>
  343. <li class="listitem">
  344. Fixed some arithmetic operations in cpp_bin_float and cpp_dec_float that
  345. should generate a NaN, see <a href="https://svn.boost.org/trac/boost/ticket/12157" target="_top">#12157</a>.
  346. </li>
  347. <li class="listitem">
  348. Prevent inadvertant instantiation of variable-precision <code class="computeroutput"><span class="identifier">mpfr_float_backend</span></code> with fixed allocation.
  349. </li>
  350. <li class="listitem">
  351. Fixed division over/underflow in cpp_bin_float, see <a href="https://svn.boost.org/trac/boost/ticket/12167" target="_top">#12167</a>.
  352. </li>
  353. <li class="listitem">
  354. Added support for signed-zeros throughout the library, including support
  355. for <code class="computeroutput"><span class="identifier">signbit</span></code> and <code class="computeroutput"><span class="identifier">copysign</span></code>, mpfr, float128, and cpp_bin_float
  356. types should now respect signed-zeros correctly.
  357. </li>
  358. <li class="listitem">
  359. Fixed bug in conversion of cpp_bin_float infinities to double etc, see
  360. <a href="https://svn.boost.org/trac/boost/ticket/12196" target="_top">#12196</a>.
  361. </li>
  362. <li class="listitem">
  363. Fix add and subtract of cpp_bin_float when the exponents would overflow.,
  364. see <a href="https://svn.boost.org/trac/boost/ticket/12198" target="_top">#12198</a>.
  365. </li>
  366. <li class="listitem">
  367. Improve variable-precision support in mpfr and mpf backends, allow these
  368. types to be used with Boost.Math.
  369. </li>
  370. <li class="listitem">
  371. Fixed bug in subtraction of signed infinities in cpp_bin_float, see
  372. <a href="https://svn.boost.org/trac/boost/ticket/12209" target="_top">#12209</a>.
  373. </li>
  374. <li class="listitem">
  375. Fix result of sqrt(infinity) in cpp_bin_float (result should be infinity),
  376. see <a href="https://svn.boost.org/trac/boost/ticket/12227" target="_top">#12227</a>.
  377. </li>
  378. <li class="listitem">
  379. Added workaround in gmp.hpp for recent MPIR releases which are not quite
  380. source-compatible with GMP on Windows x64.
  381. </li>
  382. <li class="listitem">
  383. Allow <code class="computeroutput"><span class="identifier">cpp_int</span></code> code to
  384. be used with /RTCc with MSVC.
  385. </li>
  386. <li class="listitem">
  387. Fix conversion of <code class="computeroutput"><span class="identifier">cpp_int</span></code>
  388. to signed integer when the result is INT_MIN, see <a href="https://svn.boost.org/trac/boost/ticket/12343" target="_top">#12343</a>.
  389. </li>
  390. <li class="listitem">
  391. Update uBlas support to match latest uBlas code.
  392. </li>
  393. <li class="listitem">
  394. Fix some errors present when building on big-endian machines (not all
  395. <code class="computeroutput"><span class="identifier">cpp_int</span></code> constructors
  396. are available on non-little-endian machines).
  397. </li>
  398. <li class="listitem">
  399. Fix fencepost error in rational to float conversion routines, see <a href="https://svn.boost.org/trac/boost/ticket/12327" target="_top">#12327</a>.
  400. </li>
  401. <li class="listitem">
  402. Fix some Oracle C++ compiler compatibility issues.
  403. </li>
  404. <li class="listitem">
  405. Add modf support to complete C90 compatibility.
  406. </li>
  407. <li class="listitem">
  408. Fix self assignment bug in expression template code for expressions such
  409. as <code class="computeroutput"><span class="identifier">a</span> <span class="special">=</span>
  410. <span class="identifier">a</span> <span class="special">*</span>
  411. <span class="identifier">a</span> <span class="special">*</span>
  412. <span class="identifier">a</span></code>, see <a href="https://svn.boost.org/trac/boost/ticket/12408" target="_top">#12408</a>.
  413. </li>
  414. <li class="listitem">
  415. Fixed some compiler errors that occur when converting from <code class="computeroutput"><span class="identifier">cpp_int</span></code> to <code class="computeroutput"><span class="identifier">cpp_bin_float</span></code>.
  416. </li>
  417. </ul></div>
  418. <h5>
  419. <a name="boost_multiprecision.map.hist.h10"></a>
  420. <span class="phrase"><a name="boost_multiprecision.map.hist.multiprecision_2_2_7_boost_1_61"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.multiprecision_2_2_7_boost_1_61">Multiprecision-2.2.7
  421. (Boost-1.61)</a>
  422. </h5>
  423. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  424. <li class="listitem">
  425. Fixed bug in stream input for integer types, see <a href="https://svn.boost.org/trac/boost/ticket/11857" target="_top">#11857</a>.
  426. </li>
  427. <li class="listitem">
  428. Fixed some ambiguous conversions involving expression templates see
  429. <a href="https://svn.boost.org/trac/boost/ticket/11922" target="_top">#11922</a>.
  430. </li>
  431. <li class="listitem">
  432. Add expression template aware min/max overloads see <a href="https://svn.boost.org/trac/boost/ticket/11149" target="_top">#11149</a>.
  433. </li>
  434. <li class="listitem">
  435. Fix bug in right shifting negative small integers in cpp_int see <a href="https://svn.boost.org/trac/boost/ticket/11999" target="_top">#11999</a>.
  436. </li>
  437. <li class="listitem">
  438. Use memmove for bitshifts in cpp_int when possible see <a href="https://svn.boost.org/trac/boost/ticket/9233" target="_top">#9233</a>.
  439. </li>
  440. <li class="listitem">
  441. Use memcpy for data import into cpp_int where possible, see <a href="https://svn.boost.org/trac/boost/ticket/9235" target="_top">#9235</a>.
  442. </li>
  443. <li class="listitem">
  444. Changed <code class="computeroutput"><span class="identifier">cpp_bin_float</span><span class="special">.</span><span class="identifier">convert_to</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;()</span></code> to a function template rather than
  445. proceding via <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
  446. to avoid double-rounding bug, see <a href="https://svn.boost.org/trac/boost/ticket/12039" target="_top">#12039</a>.
  447. </li>
  448. <li class="listitem">
  449. Fixed conversions from NaN's and Infinities, see <a href="https://svn.boost.org/trac/boost/ticket/12112" target="_top">#12112</a>.
  450. </li>
  451. <li class="listitem">
  452. Enabled better support for Clang on Windows.
  453. </li>
  454. <li class="listitem">
  455. Fixed handling of NaN's and Infinities in basic arithmetic for cpp_dec_float
  456. and cpp_bin_float, see <a href="https://svn.boost.org/trac/boost/ticket/12090" target="_top">#12090</a>.
  457. </li>
  458. <li class="listitem">
  459. Fixed fencepost error in cpp_bin_float subtraction.
  460. </li>
  461. <li class="listitem">
  462. Fixed double-rounding in conversion to float routines for cpp_bin_float,
  463. see <a href="https://svn.boost.org/trac/boost/ticket/12039" target="_top">#12039</a>.
  464. </li>
  465. <li class="listitem">
  466. Make float128 denorm aware, see <a href="https://svn.boost.org/trac/boost/ticket/12075" target="_top">#12075</a>.
  467. </li>
  468. <li class="listitem">
  469. Allow the library and tests to be used without exception handling support,
  470. see <a href="https://svn.boost.org/trac/boost/ticket/12070" target="_top">#12070</a>.
  471. </li>
  472. <li class="listitem">
  473. Fixed buggy comparison operator overloads for boost::rational.
  474. </li>
  475. <li class="listitem">
  476. Added some workarounds for Oracle C++.
  477. </li>
  478. <li class="listitem">
  479. Fixed some missing typecasts for cases where cpp_int's limb_type is wider
  480. than unsigned.
  481. </li>
  482. </ul></div>
  483. <h5>
  484. <a name="boost_multiprecision.map.hist.h11"></a>
  485. <span class="phrase"><a name="boost_multiprecision.map.hist.multiprecision_2_2_6_boost_1_60"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.multiprecision_2_2_6_boost_1_60">Multiprecision-2.2.6
  486. (Boost-1.60)</a>
  487. </h5>
  488. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  489. <li class="listitem">
  490. Fixed result of Miller Rabin primality test for value 2, see <a href="https://svn.boost.org/trac/boost/ticket/11495" target="_top">#11495</a>.
  491. </li>
  492. <li class="listitem">
  493. Improved initialization of cpp_int from very large strings of hex or
  494. octal digits, see <a href="https://svn.boost.org/trac/boost/ticket/11590" target="_top">#11590</a>.
  495. </li>
  496. <li class="listitem">
  497. Fixed fmod behaviour for negative divisors, see <a href="https://svn.boost.org/trac/boost/ticket/11641" target="_top">#11641</a>.
  498. </li>
  499. <li class="listitem">
  500. Fixed infinite division loop in cpp_int special case, see <a href="https://svn.boost.org/trac/boost/ticket/11648" target="_top">#11648</a>.
  501. </li>
  502. <li class="listitem">
  503. Patched missing return statement in <a href="https://svn.boost.org/trac/boost/ticket/11762" target="_top">#11762</a>.
  504. </li>
  505. <li class="listitem">
  506. Fixed mixed mode arithmetic compiler error in <a href="https://svn.boost.org/trac/boost/ticket/11764" target="_top">#11764</a>.
  507. </li>
  508. <li class="listitem">
  509. Fixed over-aggressive use of noexcept in <a href="https://svn.boost.org/trac/boost/ticket/11826" target="_top">#11826</a>.
  510. </li>
  511. </ul></div>
  512. <h5>
  513. <a name="boost_multiprecision.map.hist.h12"></a>
  514. <span class="phrase"><a name="boost_multiprecision.map.hist.multiprecision_2_2_5_boost_1_59"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.multiprecision_2_2_5_boost_1_59">Multiprecision-2.2.5
  515. (Boost-1.59)</a>
  516. </h5>
  517. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  518. <li class="listitem">
  519. Depricated boost/multiprecision/random.hpp as it's no longer needed,
  520. updated random examples to match.
  521. </li>
  522. <li class="listitem">
  523. Fixed a bug in cpp_int's right shift operator when shifting negative
  524. values - semantics now gives the same values as shifting 2's compliment
  525. integers, though not the same bit pattern.
  526. </li>
  527. <li class="listitem">
  528. Fixed support for GCC-4.6.4 in C++0x mode by disabling conditional noexcept
  529. suppoprt for that compiler see <a href="https://svn.boost.org/trac/boost/ticket/11402" target="_top">#11402</a>.
  530. </li>
  531. <li class="listitem">
  532. Suppressed numerous compiler warnings.
  533. </li>
  534. </ul></div>
  535. <h5>
  536. <a name="boost_multiprecision.map.hist.h13"></a>
  537. <span class="phrase"><a name="boost_multiprecision.map.hist.multiprecision_2_2_4_boost_1_58"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.multiprecision_2_2_4_boost_1_58">Multiprecision-2.2.4
  538. (Boost-1.58)</a>
  539. </h5>
  540. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  541. <li class="listitem">
  542. Changed <code class="computeroutput"><span class="identifier">frexp</span></code> to always
  543. be non-expression template generating, see: <a href="https://svn.boost.org/trac/boost/ticket/10993" target="_top">10993</a>.
  544. </li>
  545. <li class="listitem">
  546. Improved support of cpp_dec_float on Cygwin and other platforms with
  547. missing long double support, see <a href="https://svn.boost.org/trac/boost/ticket/10924" target="_top">10924</a>.
  548. </li>
  549. <li class="listitem">
  550. Improved noexcept support and added some more tests, see <a href="https://svn.boost.org/trac/boost/ticket/10990" target="_top">10990</a>.
  551. </li>
  552. <li class="listitem">
  553. Various workarounds applied for Intel-15.0 and Solaris-12.4 compilers.
  554. </li>
  555. </ul></div>
  556. <h5>
  557. <a name="boost_multiprecision.map.hist.h14"></a>
  558. <span class="phrase"><a name="boost_multiprecision.map.hist.multiprecision_2_2_3_boost_1_57"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.multiprecision_2_2_3_boost_1_57">Multiprecision-2.2.3
  559. (Boost-1.57)</a>
  560. </h5>
  561. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  562. <li class="listitem">
  563. Changed rational to float conversions to exactly round to nearest, see
  564. <a href="https://svn.boost.org/trac/boost/ticket/10085" target="_top">10085</a>.
  565. </li>
  566. <li class="listitem">
  567. Added improved generic float to rational conversions.
  568. </li>
  569. <li class="listitem">
  570. Fixed rare bug in exponent function for <a class="link" href="../tut/floats/cpp_bin_float.html" title="cpp_bin_float">cpp_bin_float</a>.
  571. </li>
  572. <li class="listitem">
  573. Fixed various minor documentation issues.
  574. </li>
  575. </ul></div>
  576. <h5>
  577. <a name="boost_multiprecision.map.hist.h15"></a>
  578. <span class="phrase"><a name="boost_multiprecision.map.hist.multiprecision_2_2_2_boost_1_56"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.multiprecision_2_2_2_boost_1_56">Multiprecision-2.2.2
  579. (Boost-1.56)</a>
  580. </h5>
  581. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  582. <li class="listitem">
  583. Change floating-point to rational conversions to be implicit, see <a href="https://svn.boost.org/trac/boost/ticket/10082" target="_top">10082</a>.
  584. </li>
  585. <li class="listitem">
  586. Fix definition of checked_cpp_rational typedef.
  587. </li>
  588. </ul></div>
  589. <h5>
  590. <a name="boost_multiprecision.map.hist.h16"></a>
  591. <span class="phrase"><a name="boost_multiprecision.map.hist.multiprecision_2_2_1"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.multiprecision_2_2_1">Multiprecision-2.2.1</a>
  592. </h5>
  593. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
  594. Fix bug in assignment from string in cpp_int, see <a href="https://svn.boost.org/trac/boost/ticket/9936" target="_top">9936</a>.
  595. </li></ul></div>
  596. <h5>
  597. <a name="boost_multiprecision.map.hist.h17"></a>
  598. <span class="phrase"><a name="boost_multiprecision.map.hist.multiprecision_2_2_0"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.multiprecision_2_2_0">Multiprecision-2.2.0</a>
  599. </h5>
  600. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  601. <li class="listitem">
  602. Moved to Boost.Multiprecision specific version number - we have one breaking
  603. change in Boost-1.54 which makes this major version 2, plus two releases
  604. with new features since then.
  605. </li>
  606. <li class="listitem">
  607. Added new <a class="link" href="../tut/floats/cpp_bin_float.html" title="cpp_bin_float">cpp_bin_float</a>
  608. backend for binary floating-point.
  609. </li>
  610. <li class="listitem">
  611. Added MSVC-specific #include for compiler intrinsics, see <a href="https://svn.boost.org/trac/boost/ticket/9336" target="_top">9336</a>.
  612. </li>
  613. <li class="listitem">
  614. Fixed various typos in docs, see <a href="https://svn.boost.org/trac/boost/ticket/9432" target="_top">9432</a>.
  615. </li>
  616. <li class="listitem">
  617. Fixed <a class="link" href="../tut/rational/gmp_rational.html" title="gmp_rational">gmp_rational</a>
  618. to allow move-copy from an already copied-from object, see <a href="https://svn.boost.org/trac/boost/ticket/9497" target="_top">9497</a>.
  619. </li>
  620. <li class="listitem">
  621. Added list of values for numeric_limits.
  622. </li>
  623. </ul></div>
  624. <h5>
  625. <a name="boost_multiprecision.map.hist.h18"></a>
  626. <span class="phrase"><a name="boost_multiprecision.map.hist.boost_1_55"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.boost_1_55">Boost-1.55</a>
  627. </h5>
  628. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  629. <li class="listitem">
  630. Added support for Boost.Serialization.
  631. </li>
  632. <li class="listitem">
  633. Suppressed some GCC warnings. See <a href="https://svn.boost.org/trac/boost/ticket/8872" target="_top">8872</a>.
  634. </li>
  635. <li class="listitem">
  636. Fixed bug in pow for large integer arguments. See <a href="https://svn.boost.org/trac/boost/ticket/8809" target="_top">8809</a>.
  637. </li>
  638. <li class="listitem">
  639. Fixed bug in pow for calculation of 0<sup>N</sup>. See <a href="https://svn.boost.org/trac/boost/ticket/8798" target="_top">8798</a>.
  640. </li>
  641. <li class="listitem">
  642. Fixed bug in fixed precision cpp_int IO code that causes conversion to
  643. string to fail when the bit count is very small (less than CHAR_BIT).
  644. See <a href="https://svn.boost.org/trac/boost/ticket/8745" target="_top">8745</a>.
  645. </li>
  646. <li class="listitem">
  647. Fixed bug in cpp_int that causes left shift to fail when a fixed precision
  648. type would overflow. See <a href="https://svn.boost.org/trac/boost/ticket/8741" target="_top">8741</a>.
  649. </li>
  650. <li class="listitem">
  651. Fixed some cosmetic warnings from cpp_int. See <a href="https://svn.boost.org/trac/boost/ticket/8748" target="_top">8748</a>.
  652. </li>
  653. <li class="listitem">
  654. Fixed calls to functions which are required to be macros in C99. See
  655. <a href="https://svn.boost.org/trac/boost/ticket/8732" target="_top">8732</a>.
  656. </li>
  657. <li class="listitem">
  658. Fixed bug that causes construction from INT_MIN, LONG_MIN etc to fail
  659. in cpp_int. See <a href="https://svn.boost.org/trac/boost/ticket/8711" target="_top">8711</a>.
  660. </li>
  661. </ul></div>
  662. <h5>
  663. <a name="boost_multiprecision.map.hist.h19"></a>
  664. <span class="phrase"><a name="boost_multiprecision.map.hist.1_54"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.1_54">1.54</a>
  665. </h5>
  666. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  667. <li class="listitem">
  668. <span class="bold"><strong>Breaking change</strong></span> renamed <code class="computeroutput"><span class="identifier">rational_adapter</span></code> to <code class="computeroutput"><span class="identifier">rational_adaptor</span></code>.
  669. </li>
  670. <li class="listitem">
  671. Add support for <a href="http://perso.ens-lyon.fr/nathalie.revol/software.html" target="_top">MPFI</a>.
  672. </li>
  673. <li class="listitem">
  674. Add logged_adaptor.
  675. </li>
  676. <li class="listitem">
  677. Add support for 128-bit floats via GCC's <code class="computeroutput"><a class="link" href="../tut/floats/float128.html" title="float128">float128</a></code>
  678. or Intel's <code class="computeroutput"><span class="identifier">_Quad</span></code> data
  679. types.
  680. </li>
  681. <li class="listitem">
  682. Add support for user-defined literals in cpp_int, improve <code class="computeroutput"><span class="keyword">constexpr</span></code> support.
  683. </li>
  684. <li class="listitem">
  685. Fixed bug in integer division of <code class="computeroutput"><span class="identifier">cpp_int</span></code>
  686. that results in incorrect sign of <code class="computeroutput"><span class="identifier">cpp_int</span></code>
  687. when both arguments are small enough to fit in a <code class="computeroutput"><span class="identifier">double_limb_type</span></code>.
  688. See <a href="https://svn.boost.org/trac/boost/ticket/8126" target="_top">8126</a>.
  689. </li>
  690. <li class="listitem">
  691. Fixed bug in subtraction of a single limb in <code class="computeroutput"><span class="identifier">cpp_int</span></code>
  692. that results in incorrect value when the result should have a 0 in the
  693. last limb: <a href="https://svn.boost.org/trac/boost/ticket/8133" target="_top">8133</a>.
  694. </li>
  695. <li class="listitem">
  696. Fixed bug in <code class="computeroutput"><span class="identifier">cpp_int</span></code>
  697. where division of 0 by something doesn't get zero in the result: <a href="https://svn.boost.org/trac/boost/ticket/8160" target="_top">8160</a>.
  698. </li>
  699. <li class="listitem">
  700. Fixed bug in some transcendental functions that caused incorrect return
  701. values when variables are reused, for example with <code class="computeroutput"><span class="identifier">a</span>
  702. <span class="special">=</span> <span class="identifier">pow</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">b</span><span class="special">)</span></code>. See <a href="https://svn.boost.org/trac/boost/ticket/8326" target="_top">8326</a>.
  703. </li>
  704. <li class="listitem">
  705. Fixed some assignment operations in the mpfr and gmp backends to be safe
  706. if the target has been moved from: <a href="https://svn.boost.org/trac/boost/ticket/8326" target="_top">8667</a>.
  707. </li>
  708. <li class="listitem">
  709. Fixed bug in <code class="computeroutput"><span class="identifier">cpp_int</span></code>
  710. that gives incorrect answer for 0%N for large N: <a href="https://svn.boost.org/trac/boost/ticket/8670" target="_top">8670</a>.
  711. </li>
  712. <li class="listitem">
  713. Fixed set_precision in mpfr backend so it doesn't trample over an existing
  714. value: <a href="https://svn.boost.org/trac/boost/ticket/8692" target="_top">8692</a>.
  715. </li>
  716. </ul></div>
  717. <h5>
  718. <a name="boost_multiprecision.map.hist.h20"></a>
  719. <span class="phrase"><a name="boost_multiprecision.map.hist.1_53"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.1_53">1.53</a>
  720. </h5>
  721. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  722. <li class="listitem">
  723. First Release.
  724. </li>
  725. <li class="listitem">
  726. Fix bug in <a href="https://svn.boost.org/trac/boost/ticket/7878" target="_top">cpp_int
  727. division</a>.
  728. </li>
  729. <li class="listitem">
  730. Fix issue <a href="https://svn.boost.org/trac/boost/ticket/7806" target="_top">#7806</a>.
  731. </li>
  732. </ul></div>
  733. <h5>
  734. <a name="boost_multiprecision.map.hist.h21"></a>
  735. <span class="phrase"><a name="boost_multiprecision.map.hist.post_review_changes"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.post_review_changes">Post
  736. review changes</a>
  737. </h5>
  738. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  739. <li class="listitem">
  740. Non-expression template operators further optimised with rvalue reference
  741. support.
  742. </li>
  743. <li class="listitem">
  744. Many functions made <code class="computeroutput"><span class="identifier">constexp</span></code>.
  745. </li>
  746. <li class="listitem">
  747. Differentiate between explicit and implicit conversions in the number
  748. constructor.
  749. </li>
  750. <li class="listitem">
  751. Removed "mp_" prefix from types.
  752. </li>
  753. <li class="listitem">
  754. Allowed mixed precision arithmetic.
  755. </li>
  756. <li class="listitem">
  757. Changed ExpressionTemplates parameter to class <code class="computeroutput"><span class="identifier">number</span></code>
  758. to use enumerated values rather than true/false.
  759. </li>
  760. <li class="listitem">
  761. Changed ExpressionTemplate parameter default value to use a traits class
  762. so that the default value depends on the backend used.
  763. </li>
  764. <li class="listitem">
  765. Added support for fused-multiply-add/subtract with GMP support.
  766. </li>
  767. <li class="listitem">
  768. Tweaked expression template unpacking to use fewer temporaries when the
  769. LHS also appears in the RHS.
  770. </li>
  771. <li class="listitem">
  772. Refactored <code class="computeroutput"><span class="identifier">cpp_int_backend</span></code>
  773. based on review comments with new template parameter structure.
  774. </li>
  775. <li class="listitem">
  776. Added additional template parameter to <code class="computeroutput"><span class="identifier">mpfr_float_backend</span></code>
  777. to allow stack-based allocation.
  778. </li>
  779. <li class="listitem">
  780. Added section on mixed precision arithmetic, and added support for operations
  781. yielding a higher precision result than either of the arguments.
  782. </li>
  783. <li class="listitem">
  784. Added overloads of integer-specific functions for built in integer types.
  785. </li>
  786. </ul></div>
  787. <h5>
  788. <a name="boost_multiprecision.map.hist.h22"></a>
  789. <span class="phrase"><a name="boost_multiprecision.map.hist.pre_review_history"></a></span><a class="link" href="hist.html#boost_multiprecision.map.hist.pre_review_history">Pre-review
  790. history</a>
  791. </h5>
  792. <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  793. <li class="listitem">
  794. 2011-2012, John Maddock adds an expression template enabled front end
  795. to Christopher's code, and adds support for other backends.
  796. </li>
  797. <li class="listitem">
  798. 2011, Christopher Kormanyos publishes the decimal floating-point code
  799. under the Boost Software Licence. The code is published as: <a href="http://doi.acm.org/10.1145/1916461.1916469" target="_top">"Algorithm
  800. 910: A Portable C++ Multiple-Precision System for Special-Function Calculations"</a>,
  801. in ACM TOMS, {VOL 37, ISSUE 4, (February 2011)} (C) ACM, 2011.
  802. </li>
  803. <li class="listitem">
  804. 2002-2011, Christopher Kormanyos develops the all C++ decimal arithmetic
  805. floating-point code.
  806. </li>
  807. </ul></div>
  808. </div>
  809. <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
  810. <td align="left"></td>
  811. <td align="right"><div class="copyright-footer">Copyright &#169; 2002-2019 John Maddock
  812. and Christopher Kormanyos<p>
  813. Distributed under the Boost Software License, Version 1.0. (See accompanying
  814. file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
  815. </p>
  816. </div></td>
  817. </tr></table>
  818. <hr>
  819. <div class="spirit-nav">
  820. <a accesskey="p" href="../map.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../map.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="todo.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
  821. </div>
  822. </body>
  823. </html>