glib2 3.1.3-x86-mingw32 → 3.1.4-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (315) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +8 -8
  3. data/ext/glib2/extconf.rb +2 -1
  4. data/ext/glib2/rbglib.h +1 -1
  5. data/ext/glib2/rbgobj_object.c +13 -0
  6. data/lib/2.2/glib2.so +0 -0
  7. data/lib/2.3/glib2.so +0 -0
  8. data/lib/2.4/glib2.so +0 -0
  9. data/lib/glib2/deprecatable.rb +6 -2
  10. data/lib/gnome2/rake/external-package.rb +25 -1
  11. data/vendor/local/bin/asn1Coding.exe +0 -0
  12. data/vendor/local/bin/asn1Decoding.exe +0 -0
  13. data/vendor/local/bin/asn1Parser.exe +0 -0
  14. data/vendor/local/bin/envsubst.exe +0 -0
  15. data/vendor/local/bin/gdbus.exe +0 -0
  16. data/vendor/local/bin/gettext.exe +0 -0
  17. data/vendor/local/bin/gettext.sh +2 -3
  18. data/vendor/local/bin/gio-querymodules.exe +0 -0
  19. data/vendor/local/bin/gio.exe +0 -0
  20. data/vendor/local/bin/glib-compile-resources.exe +0 -0
  21. data/vendor/local/bin/glib-compile-schemas.exe +0 -0
  22. data/vendor/local/bin/glib-genmarshal.exe +0 -0
  23. data/vendor/local/bin/gobject-query.exe +0 -0
  24. data/vendor/local/bin/gresource.exe +0 -0
  25. data/vendor/local/bin/gsettings.exe +0 -0
  26. data/vendor/local/bin/gspawn-win32-helper-console.exe +0 -0
  27. data/vendor/local/bin/gspawn-win32-helper.exe +0 -0
  28. data/vendor/local/bin/iconv.exe +0 -0
  29. data/vendor/local/bin/idn.exe +0 -0
  30. data/vendor/local/bin/libasprintf-0.dll +0 -0
  31. data/vendor/local/bin/libcharset-1.dll +0 -0
  32. data/vendor/local/bin/libffi-6.dll +0 -0
  33. data/vendor/local/bin/libgio-2.0-0.dll +0 -0
  34. data/vendor/local/bin/libglib-2.0-0.dll +0 -0
  35. data/vendor/local/bin/libgmodule-2.0-0.dll +0 -0
  36. data/vendor/local/bin/libgmp-10.dll +0 -0
  37. data/vendor/local/bin/libgnutls-30.dll +0 -0
  38. data/vendor/local/bin/libgobject-2.0-0.dll +0 -0
  39. data/vendor/local/bin/libgthread-2.0-0.dll +0 -0
  40. data/vendor/local/bin/libhogweed-4-2.dll +0 -0
  41. data/vendor/local/bin/libiconv-2.dll +0 -0
  42. data/vendor/local/bin/libidn-11.dll +0 -0
  43. data/vendor/local/bin/libintl-8.dll +0 -0
  44. data/vendor/local/bin/libnettle-6-2.dll +0 -0
  45. data/vendor/local/bin/libp11-kit-0.dll +0 -0
  46. data/vendor/local/bin/libpcre-1.dll +0 -0
  47. data/vendor/local/bin/libpcrecpp-0.dll +0 -0
  48. data/vendor/local/bin/libpcreposix-0.dll +0 -0
  49. data/vendor/local/bin/libtasn1-6.dll +0 -0
  50. data/vendor/local/bin/nettle-hash.exe +0 -0
  51. data/vendor/local/bin/nettle-lfib-stream.exe +0 -0
  52. data/vendor/local/bin/nettle-pbkdf2.exe +0 -0
  53. data/vendor/local/bin/ngettext.exe +0 -0
  54. data/vendor/local/bin/p11-kit.exe +0 -0
  55. data/vendor/local/bin/pcregrep.exe +0 -0
  56. data/vendor/local/bin/pcretest.exe +0 -0
  57. data/vendor/local/bin/pkcs1-conv.exe +0 -0
  58. data/vendor/local/bin/sexp-conv.exe +0 -0
  59. data/vendor/local/bin/trust.exe +0 -0
  60. data/vendor/local/include/autosprintf.h +1 -1
  61. data/vendor/local/include/gmp.h +6 -10
  62. data/vendor/local/include/iconv.h +2 -3
  63. data/vendor/local/include/idn-free.h +1 -1
  64. data/vendor/local/include/idna.h +1 -1
  65. data/vendor/local/include/libcharset.h +1 -2
  66. data/vendor/local/include/libintl.h +2 -3
  67. data/vendor/local/include/libtasn1.h +2 -2
  68. data/vendor/local/include/localcharset.h +2 -4
  69. data/vendor/local/include/pr29.h +1 -1
  70. data/vendor/local/include/punycode.h +1 -1
  71. data/vendor/local/include/stringprep.h +2 -2
  72. data/vendor/local/include/tld.h +2 -2
  73. data/vendor/local/lib/charset.alias +1 -1
  74. data/vendor/local/lib/gio/modules/libgiognutls.a +0 -0
  75. data/vendor/local/lib/gio/modules/libgiognutls.dll +0 -0
  76. data/vendor/local/lib/gio/modules/libgiognutls.dll.a +0 -0
  77. data/vendor/local/lib/libasprintf.a +0 -0
  78. data/vendor/local/lib/libasprintf.dll.a +0 -0
  79. data/vendor/local/lib/libcharset.a +0 -0
  80. data/vendor/local/lib/libcharset.dll.a +0 -0
  81. data/vendor/local/lib/libcharset.la +2 -2
  82. data/vendor/local/lib/libffi.dll.a +0 -0
  83. data/vendor/local/lib/libgio-2.0.dll.a +0 -0
  84. data/vendor/local/lib/libglib-2.0.dll.a +0 -0
  85. data/vendor/local/lib/libgmodule-2.0.dll.a +0 -0
  86. data/vendor/local/lib/libgmp.dll.a +0 -0
  87. data/vendor/local/lib/libgmp.la +1 -1
  88. data/vendor/local/lib/libgnutls.dll.a +0 -0
  89. data/vendor/local/lib/libgobject-2.0.dll.a +0 -0
  90. data/vendor/local/lib/libgthread-2.0.dll.a +0 -0
  91. data/vendor/local/lib/libhogweed.a +0 -0
  92. data/vendor/local/lib/libhogweed.dll.a +0 -0
  93. data/vendor/local/lib/libiconv.dll.a +0 -0
  94. data/vendor/local/lib/libiconv.la +5 -5
  95. data/vendor/local/lib/libidn.a +0 -0
  96. data/vendor/local/lib/libidn.dll.a +0 -0
  97. data/vendor/local/lib/libidn.la +1 -1
  98. data/vendor/local/lib/libintl.a +0 -0
  99. data/vendor/local/lib/libintl.dll.a +0 -0
  100. data/vendor/local/lib/libintl.la +1 -1
  101. data/vendor/local/lib/libnettle.dll.a +0 -0
  102. data/vendor/local/lib/libp11-kit.dll.a +0 -0
  103. data/vendor/local/lib/libpcre.dll.a +0 -0
  104. data/vendor/local/lib/libpcrecpp.dll.a +0 -0
  105. data/vendor/local/lib/libpcreposix.dll.a +0 -0
  106. data/vendor/local/lib/libtasn1.a +0 -0
  107. data/vendor/local/lib/libtasn1.dll.a +0 -0
  108. data/vendor/local/lib/libtasn1.la +1 -1
  109. data/vendor/local/lib/p11-kit/p11-kit-remote.exe +0 -0
  110. data/vendor/local/lib/pkcs11/p11-kit-trust.dll +0 -0
  111. data/vendor/local/lib/pkcs11/p11-kit-trust.dll.a +0 -0
  112. data/vendor/local/lib/pkgconfig/libidn.pc +2 -2
  113. data/vendor/local/lib/pkgconfig/libtasn1.pc +1 -1
  114. data/vendor/local/share/doc/{libiconv/iconv.1.html → iconv.1.html} +1 -2
  115. data/vendor/local/share/doc/{libiconv/iconv.3.html → iconv.3.html} +1 -2
  116. data/vendor/local/share/doc/{libiconv/iconv_close.3.html → iconv_close.3.html} +1 -2
  117. data/vendor/local/share/doc/{libiconv/iconv_open.3.html → iconv_open.3.html} +3 -3
  118. data/vendor/local/share/doc/iconv_open_into.3.html +132 -0
  119. data/vendor/local/share/doc/iconvctl.3.html +170 -0
  120. data/vendor/local/share/doc/libasprintf/autosprintf_all.html +1 -1
  121. data/vendor/local/share/emacs/site-lisp/idna.el +1 -1
  122. data/vendor/local/share/emacs/site-lisp/punycode.el +1 -1
  123. data/vendor/local/share/gettext/ABOUT-NLS +554 -554
  124. data/vendor/local/share/glib-2.0/codegen/__init__.pyc +0 -0
  125. data/vendor/local/share/glib-2.0/codegen/__init__.pyo +0 -0
  126. data/vendor/local/share/glib-2.0/codegen/codegen.pyc +0 -0
  127. data/vendor/local/share/glib-2.0/codegen/codegen.pyo +0 -0
  128. data/vendor/local/share/glib-2.0/codegen/codegen_docbook.pyc +0 -0
  129. data/vendor/local/share/glib-2.0/codegen/codegen_docbook.pyo +0 -0
  130. data/vendor/local/share/glib-2.0/codegen/codegen_main.pyc +0 -0
  131. data/vendor/local/share/glib-2.0/codegen/codegen_main.pyo +0 -0
  132. data/vendor/local/share/glib-2.0/codegen/config.pyc +0 -0
  133. data/vendor/local/share/glib-2.0/codegen/config.pyo +0 -0
  134. data/vendor/local/share/glib-2.0/codegen/dbustypes.pyc +0 -0
  135. data/vendor/local/share/glib-2.0/codegen/dbustypes.pyo +0 -0
  136. data/vendor/local/share/glib-2.0/codegen/parser.pyc +0 -0
  137. data/vendor/local/share/glib-2.0/codegen/parser.pyo +0 -0
  138. data/vendor/local/share/glib-2.0/codegen/utils.pyc +0 -0
  139. data/vendor/local/share/glib-2.0/codegen/utils.pyo +0 -0
  140. data/vendor/local/share/info/autosprintf.info +6 -5
  141. data/vendor/local/share/info/gmp.info +164 -161
  142. data/vendor/local/share/info/gmp.info-1 +2053 -2026
  143. data/vendor/local/share/info/gmp.info-2 +1365 -1367
  144. data/vendor/local/share/info/libidn.info +108 -106
  145. data/vendor/local/share/info/libtasn1.info +99 -83
  146. data/vendor/local/share/license/libidn/AUTHORS +1 -1
  147. data/vendor/local/share/locale/be/LC_MESSAGES/gettext-runtime.mo +0 -0
  148. data/vendor/local/share/locale/bg/LC_MESSAGES/gettext-runtime.mo +0 -0
  149. data/vendor/local/share/locale/ca/LC_MESSAGES/gettext-runtime.mo +0 -0
  150. data/vendor/local/share/locale/cs/LC_MESSAGES/gettext-runtime.mo +0 -0
  151. data/vendor/local/share/locale/cs/LC_MESSAGES/libidn.mo +0 -0
  152. data/vendor/local/share/locale/da/LC_MESSAGES/gettext-runtime.mo +0 -0
  153. data/vendor/local/share/locale/da/LC_MESSAGES/libidn.mo +0 -0
  154. data/vendor/local/share/locale/de/LC_MESSAGES/gettext-runtime.mo +0 -0
  155. data/vendor/local/share/locale/de/LC_MESSAGES/libidn.mo +0 -0
  156. data/vendor/local/share/locale/el/LC_MESSAGES/gettext-runtime.mo +0 -0
  157. data/vendor/local/share/locale/en@boldquot/LC_MESSAGES/gettext-runtime.mo +0 -0
  158. data/vendor/local/share/locale/en@boldquot/LC_MESSAGES/libidn.mo +0 -0
  159. data/vendor/local/share/locale/en@quot/LC_MESSAGES/gettext-runtime.mo +0 -0
  160. data/vendor/local/share/locale/en@quot/LC_MESSAGES/libidn.mo +0 -0
  161. data/vendor/local/share/locale/eo/LC_MESSAGES/gettext-runtime.mo +0 -0
  162. data/vendor/local/share/locale/eo/LC_MESSAGES/libidn.mo +0 -0
  163. data/vendor/local/share/locale/es/LC_MESSAGES/gettext-runtime.mo +0 -0
  164. data/vendor/local/share/locale/et/LC_MESSAGES/gettext-runtime.mo +0 -0
  165. data/vendor/local/share/locale/fi/LC_MESSAGES/gettext-runtime.mo +0 -0
  166. data/vendor/local/share/locale/fi/LC_MESSAGES/libidn.mo +0 -0
  167. data/vendor/local/share/locale/fr/LC_MESSAGES/gettext-runtime.mo +0 -0
  168. data/vendor/local/share/locale/fr/LC_MESSAGES/libidn.mo +0 -0
  169. data/vendor/local/share/locale/ga/LC_MESSAGES/gettext-runtime.mo +0 -0
  170. data/vendor/local/share/locale/gl/LC_MESSAGES/gettext-runtime.mo +0 -0
  171. data/vendor/local/share/locale/hr/LC_MESSAGES/gettext-runtime.mo +0 -0
  172. data/vendor/local/share/locale/hr/LC_MESSAGES/libidn.mo +0 -0
  173. data/vendor/local/share/locale/hu/LC_MESSAGES/gettext-runtime.mo +0 -0
  174. data/vendor/local/share/locale/hu/LC_MESSAGES/libidn.mo +0 -0
  175. data/vendor/local/share/locale/id/LC_MESSAGES/gettext-runtime.mo +0 -0
  176. data/vendor/local/share/locale/id/LC_MESSAGES/libidn.mo +0 -0
  177. data/vendor/local/share/locale/it/LC_MESSAGES/gettext-runtime.mo +0 -0
  178. data/vendor/local/share/locale/it/LC_MESSAGES/libidn.mo +0 -0
  179. data/vendor/local/share/locale/ja/LC_MESSAGES/gettext-runtime.mo +0 -0
  180. data/vendor/local/share/locale/ja/LC_MESSAGES/libidn.mo +0 -0
  181. data/vendor/local/share/locale/ko/LC_MESSAGES/gettext-runtime.mo +0 -0
  182. data/vendor/local/share/locale/nb/LC_MESSAGES/gettext-runtime.mo +0 -0
  183. data/vendor/local/share/locale/nl/LC_MESSAGES/gettext-runtime.mo +0 -0
  184. data/vendor/local/share/locale/nl/LC_MESSAGES/libidn.mo +0 -0
  185. data/vendor/local/share/locale/nn/LC_MESSAGES/gettext-runtime.mo +0 -0
  186. data/vendor/local/share/locale/pl/LC_MESSAGES/gettext-runtime.mo +0 -0
  187. data/vendor/local/share/locale/pl/LC_MESSAGES/libidn.mo +0 -0
  188. data/vendor/local/share/locale/pt/LC_MESSAGES/gettext-runtime.mo +0 -0
  189. data/vendor/local/share/locale/pt_BR/LC_MESSAGES/gettext-runtime.mo +0 -0
  190. data/vendor/local/share/locale/pt_BR/LC_MESSAGES/libidn.mo +0 -0
  191. data/vendor/local/share/locale/ro/LC_MESSAGES/gettext-runtime.mo +0 -0
  192. data/vendor/local/share/locale/ro/LC_MESSAGES/libidn.mo +0 -0
  193. data/vendor/local/share/locale/ru/LC_MESSAGES/gettext-runtime.mo +0 -0
  194. data/vendor/local/share/locale/sk/LC_MESSAGES/gettext-runtime.mo +0 -0
  195. data/vendor/local/share/locale/sl/LC_MESSAGES/gettext-runtime.mo +0 -0
  196. data/vendor/local/share/locale/sr/LC_MESSAGES/gettext-runtime.mo +0 -0
  197. data/vendor/local/share/locale/sr/LC_MESSAGES/libidn.mo +0 -0
  198. data/vendor/local/share/locale/sv/LC_MESSAGES/gettext-runtime.mo +0 -0
  199. data/vendor/local/share/locale/tr/LC_MESSAGES/gettext-runtime.mo +0 -0
  200. data/vendor/local/share/locale/uk/LC_MESSAGES/gettext-runtime.mo +0 -0
  201. data/vendor/local/share/locale/uk/LC_MESSAGES/libidn.mo +0 -0
  202. data/vendor/local/share/locale/vi/LC_MESSAGES/gettext-runtime.mo +0 -0
  203. data/vendor/local/share/locale/vi/LC_MESSAGES/libidn.mo +0 -0
  204. data/vendor/local/share/locale/zh_CN/LC_MESSAGES/gettext-runtime.mo +0 -0
  205. data/vendor/local/share/locale/zh_CN/LC_MESSAGES/libidn.mo +0 -0
  206. data/vendor/local/share/locale/zh_HK/LC_MESSAGES/gettext-runtime.mo +0 -0
  207. data/vendor/local/share/locale/zh_TW/LC_MESSAGES/gettext-runtime.mo +0 -0
  208. data/vendor/local/share/man/man1/asn1Coding.1 +3 -3
  209. data/vendor/local/share/man/man1/asn1Decoding.1 +3 -3
  210. data/vendor/local/share/man/man1/asn1Parser.1 +3 -3
  211. data/vendor/local/share/man/man1/envsubst.1 +1 -1
  212. data/vendor/local/share/man/man1/gettext.1 +1 -1
  213. data/vendor/local/share/man/man1/iconv.1 +1 -1
  214. data/vendor/local/share/man/man1/idn.1 +2 -2
  215. data/vendor/local/share/man/man1/ngettext.1 +1 -1
  216. data/vendor/local/share/man/man3/asn1_array2tree.3 +1 -1
  217. data/vendor/local/share/man/man3/asn1_bit_der.3 +1 -1
  218. data/vendor/local/share/man/man3/asn1_check_version.3 +1 -1
  219. data/vendor/local/share/man/man3/asn1_copy_node.3 +1 -1
  220. data/vendor/local/share/man/man3/asn1_create_element.3 +1 -1
  221. data/vendor/local/share/man/man3/asn1_decode_simple_ber.3 +1 -1
  222. data/vendor/local/share/man/man3/asn1_decode_simple_der.3 +1 -1
  223. data/vendor/local/share/man/man3/asn1_delete_element.3 +1 -1
  224. data/vendor/local/share/man/man3/asn1_delete_structure.3 +1 -1
  225. data/vendor/local/share/man/man3/asn1_delete_structure2.3 +1 -1
  226. data/vendor/local/share/man/man3/asn1_der_coding.3 +1 -1
  227. data/vendor/local/share/man/man3/asn1_der_decoding.3 +1 -1
  228. data/vendor/local/share/man/man3/asn1_der_decoding2.3 +1 -1
  229. data/vendor/local/share/man/man3/asn1_der_decoding_element.3 +1 -1
  230. data/vendor/local/share/man/man3/asn1_der_decoding_startEnd.3 +1 -1
  231. data/vendor/local/share/man/man3/asn1_dup_node.3 +1 -1
  232. data/vendor/local/share/man/man3/asn1_encode_simple_der.3 +1 -1
  233. data/vendor/local/share/man/man3/asn1_expand_any_defined_by.3 +1 -1
  234. data/vendor/local/share/man/man3/asn1_expand_octet_string.3 +1 -1
  235. data/vendor/local/share/man/man3/asn1_find_node.3 +1 -1
  236. data/vendor/local/share/man/man3/asn1_find_structure_from_oid.3 +1 -1
  237. data/vendor/local/share/man/man3/asn1_get_bit_der.3 +1 -1
  238. data/vendor/local/share/man/man3/asn1_get_length_ber.3 +1 -1
  239. data/vendor/local/share/man/man3/asn1_get_length_der.3 +1 -1
  240. data/vendor/local/share/man/man3/asn1_get_object_id_der.3 +1 -1
  241. data/vendor/local/share/man/man3/asn1_get_octet_der.3 +7 -5
  242. data/vendor/local/share/man/man3/asn1_get_tag_der.3 +1 -1
  243. data/vendor/local/share/man/man3/asn1_length_der.3 +1 -1
  244. data/vendor/local/share/man/man3/asn1_number_of_elements.3 +1 -1
  245. data/vendor/local/share/man/man3/asn1_octet_der.3 +1 -1
  246. data/vendor/local/share/man/man3/asn1_parser2array.3 +1 -1
  247. data/vendor/local/share/man/man3/asn1_parser2tree.3 +1 -1
  248. data/vendor/local/share/man/man3/asn1_perror.3 +1 -1
  249. data/vendor/local/share/man/man3/asn1_print_structure.3 +1 -1
  250. data/vendor/local/share/man/man3/asn1_read_node_value.3 +1 -1
  251. data/vendor/local/share/man/man3/asn1_read_tag.3 +1 -1
  252. data/vendor/local/share/man/man3/asn1_read_value.3 +1 -1
  253. data/vendor/local/share/man/man3/asn1_read_value_type.3 +1 -1
  254. data/vendor/local/share/man/man3/asn1_strerror.3 +1 -1
  255. data/vendor/local/share/man/man3/asn1_write_value.3 +1 -1
  256. data/vendor/local/share/man/man3/bind_textdomain_codeset.3 +1 -1
  257. data/vendor/local/share/man/man3/bindtextdomain.3 +1 -1
  258. data/vendor/local/share/man/man3/gettext.3 +1 -1
  259. data/vendor/local/share/man/man3/iconv.3 +1 -1
  260. data/vendor/local/share/man/man3/iconv_close.3 +1 -1
  261. data/vendor/local/share/man/man3/iconv_open.3 +4 -3
  262. data/vendor/local/share/man/man3/iconv_open_into.3 +1 -1
  263. data/vendor/local/share/man/man3/iconvctl.3 +1 -1
  264. data/vendor/local/share/man/man3/idn_free.3 +2 -2
  265. data/vendor/local/share/man/man3/idna_strerror.3 +2 -2
  266. data/vendor/local/share/man/man3/idna_to_ascii_4i.3 +2 -2
  267. data/vendor/local/share/man/man3/idna_to_ascii_4z.3 +2 -2
  268. data/vendor/local/share/man/man3/idna_to_ascii_8z.3 +2 -2
  269. data/vendor/local/share/man/man3/idna_to_ascii_lz.3 +2 -2
  270. data/vendor/local/share/man/man3/idna_to_unicode_44i.3 +2 -2
  271. data/vendor/local/share/man/man3/idna_to_unicode_4z4z.3 +2 -2
  272. data/vendor/local/share/man/man3/idna_to_unicode_8z4z.3 +2 -2
  273. data/vendor/local/share/man/man3/idna_to_unicode_8z8z.3 +2 -2
  274. data/vendor/local/share/man/man3/idna_to_unicode_8zlz.3 +2 -2
  275. data/vendor/local/share/man/man3/idna_to_unicode_lzlz.3 +2 -2
  276. data/vendor/local/share/man/man3/ngettext.3 +1 -1
  277. data/vendor/local/share/man/man3/pr29_4.3 +2 -2
  278. data/vendor/local/share/man/man3/pr29_4z.3 +2 -2
  279. data/vendor/local/share/man/man3/pr29_8z.3 +2 -2
  280. data/vendor/local/share/man/man3/pr29_strerror.3 +2 -2
  281. data/vendor/local/share/man/man3/punycode_decode.3 +2 -2
  282. data/vendor/local/share/man/man3/punycode_encode.3 +2 -2
  283. data/vendor/local/share/man/man3/punycode_strerror.3 +2 -2
  284. data/vendor/local/share/man/man3/stringprep.3 +2 -2
  285. data/vendor/local/share/man/man3/stringprep_4i.3 +2 -2
  286. data/vendor/local/share/man/man3/stringprep_4zi.3 +2 -2
  287. data/vendor/local/share/man/man3/stringprep_check_version.3 +2 -2
  288. data/vendor/local/share/man/man3/stringprep_convert.3 +2 -2
  289. data/vendor/local/share/man/man3/stringprep_locale_charset.3 +2 -2
  290. data/vendor/local/share/man/man3/stringprep_locale_to_utf8.3 +2 -2
  291. data/vendor/local/share/man/man3/stringprep_profile.3 +2 -2
  292. data/vendor/local/share/man/man3/stringprep_strerror.3 +2 -2
  293. data/vendor/local/share/man/man3/stringprep_ucs4_nfkc_normalize.3 +2 -2
  294. data/vendor/local/share/man/man3/stringprep_ucs4_to_utf8.3 +2 -2
  295. data/vendor/local/share/man/man3/stringprep_unichar_to_utf8.3 +2 -2
  296. data/vendor/local/share/man/man3/stringprep_utf8_nfkc_normalize.3 +2 -2
  297. data/vendor/local/share/man/man3/stringprep_utf8_to_locale.3 +2 -2
  298. data/vendor/local/share/man/man3/stringprep_utf8_to_ucs4.3 +2 -2
  299. data/vendor/local/share/man/man3/stringprep_utf8_to_unichar.3 +2 -2
  300. data/vendor/local/share/man/man3/textdomain.3 +1 -1
  301. data/vendor/local/share/man/man3/tld_check_4.3 +2 -2
  302. data/vendor/local/share/man/man3/tld_check_4t.3 +2 -2
  303. data/vendor/local/share/man/man3/tld_check_4tz.3 +2 -2
  304. data/vendor/local/share/man/man3/tld_check_4z.3 +2 -2
  305. data/vendor/local/share/man/man3/tld_check_8z.3 +2 -2
  306. data/vendor/local/share/man/man3/tld_check_lz.3 +2 -2
  307. data/vendor/local/share/man/man3/tld_default_table.3 +2 -2
  308. data/vendor/local/share/man/man3/tld_get_4.3 +2 -2
  309. data/vendor/local/share/man/man3/tld_get_4z.3 +2 -2
  310. data/vendor/local/share/man/man3/tld_get_table.3 +2 -2
  311. data/vendor/local/share/man/man3/tld_get_z.3 +2 -2
  312. data/vendor/local/share/man/man3/tld_strerror.3 +2 -2
  313. metadata +12 -12
  314. data/vendor/local/share/doc/libiconv/iconv_open_into.3.html +0 -120
  315. data/vendor/local/share/doc/libiconv/iconvctl.3.html +0 -189
@@ -1,83 +1,22 @@
1
- This is ../../gmp/doc/gmp.info, produced by makeinfo version 4.8 from
2
- ../../gmp/doc/gmp.texi.
1
+ This is gmp.info, produced by makeinfo version 6.1 from gmp.texi.
3
2
 
4
- This manual describes how to install and use the GNU multiple
5
- precision arithmetic library, version 6.1.0.
3
+ This manual describes how to install and use the GNU multiple precision
4
+ arithmetic library, version 6.1.2.
6
5
 
7
- Copyright 1991, 1993-2015 Free Software Foundation, Inc.
8
-
9
- Permission is granted to copy, distribute and/or modify this
10
- document under the terms of the GNU Free Documentation License, Version
11
- 1.3 or any later version published by the Free Software Foundation;
12
- with no Invariant Sections, with the Front-Cover Texts being "A GNU
13
- Manual", and with the Back-Cover Texts being "You have freedom to copy
14
- and modify this GNU Manual, like GNU software". A copy of the license
15
- is included in *Note GNU Free Documentation License::.
6
+ Copyright 1991, 1993-2016 Free Software Foundation, Inc.
16
7
 
8
+ Permission is granted to copy, distribute and/or modify this document
9
+ under the terms of the GNU Free Documentation License, Version 1.3 or
10
+ any later version published by the Free Software Foundation; with no
11
+ Invariant Sections, with the Front-Cover Texts being "A GNU Manual", and
12
+ with the Back-Cover Texts being "You have freedom to copy and modify
13
+ this GNU Manual, like GNU software". A copy of the license is included
14
+ in *note GNU Free Documentation License::.
17
15
  INFO-DIR-SECTION GNU libraries
18
16
  START-INFO-DIR-ENTRY
19
17
  * gmp: (gmp). GNU Multiple Precision Arithmetic Library.
20
18
  END-INFO-DIR-ENTRY
21
19
 
22
- 
23
- File: gmp.info, Node: Exact Division, Next: Exact Remainder, Prev: Block-Wise Barrett Division, Up: Division Algorithms
24
-
25
- 15.2.5 Exact Division
26
- ---------------------
27
-
28
- A so-called exact division is when the dividend is known to be an exact
29
- multiple of the divisor. Jebelean's exact division algorithm uses this
30
- knowledge to make some significant optimizations (*note References::).
31
-
32
- The idea can be illustrated in decimal for example with 368154
33
- divided by 543. Because the low digit of the dividend is 4, the low
34
- digit of the quotient must be 8. This is arrived at from 4*7 mod 10,
35
- using the fact 7 is the modular inverse of 3 (the low digit of the
36
- divisor), since 3*7 == 1 mod 10. So 8*543=4344 can be subtracted from
37
- the dividend leaving 363810. Notice the low digit has become zero.
38
-
39
- The procedure is repeated at the second digit, with the next
40
- quotient digit 7 (7 == 1*7 mod 10), subtracting 7*543=3801, leaving
41
- 325800. And finally at the third digit with quotient digit 6 (8*7 mod
42
- 10), subtracting 6*543=3258 leaving 0. So the quotient is 678.
43
-
44
- Notice however that the multiplies and subtractions don't need to
45
- extend past the low three digits of the dividend, since that's enough
46
- to determine the three quotient digits. For the last quotient digit no
47
- subtraction is needed at all. On a 2NxN division like this one, only
48
- about half the work of a normal basecase division is necessary.
49
-
50
- For an NxM exact division producing Q=N-M quotient limbs, the saving
51
- over a normal basecase division is in two parts. Firstly, each of the
52
- Q quotient limbs needs only one multiply, not a 2x1 divide and
53
- multiply. Secondly, the crossproducts are reduced when Q>M to
54
- Q*M-M*(M+1)/2, or when Q<=M to Q*(Q-1)/2. Notice the savings are
55
- complementary. If Q is big then many divisions are saved, or if Q is
56
- small then the crossproducts reduce to a small number.
57
-
58
- The modular inverse used is calculated efficiently by `binvert_limb'
59
- in `gmp-impl.h'. This does four multiplies for a 32-bit limb, or six
60
- for a 64-bit limb. `tune/modlinv.c' has some alternate implementations
61
- that might suit processors better at bit twiddling than multiplying.
62
-
63
- The sub-quadratic exact division described by Jebelean in "Exact
64
- Division with Karatsuba Complexity" is not currently implemented. It
65
- uses a rearrangement similar to the divide and conquer for normal
66
- division (*note Divide and Conquer Division::), but operating from low
67
- to high. A further possibility not currently implemented is
68
- "Bidirectional Exact Integer Division" by Krandick and Jebelean which
69
- forms quotient limbs from both the high and low ends of the dividend,
70
- and can halve once more the number of crossproducts needed in a 2NxN
71
- division.
72
-
73
- A special case exact division by 3 exists in `mpn_divexact_by3',
74
- supporting Toom-3 multiplication and `mpq' canonicalizations. It forms
75
- quotient digits with a multiply by the modular inverse of 3 (which is
76
- `0xAA..AAB') and uses two comparisons to determine a borrow for the next
77
- limb. The multiplications don't need to be on the dependent chain, as
78
- long as the effect of the borrows is applied, which can help chips with
79
- pipelined multipliers.
80
-
81
20
  
82
21
  File: gmp.info, Node: Exact Remainder, Next: Small Quotient Division, Prev: Exact Division, Up: Division Algorithms
83
22
 
@@ -86,9 +25,9 @@ File: gmp.info, Node: Exact Remainder, Next: Small Quotient Division, Prev: E
86
25
 
87
26
  If the exact division algorithm is done with a full subtraction at each
88
27
  stage and the dividend isn't a multiple of the divisor, then low zero
89
- limbs are produced but with a remainder in the high limbs. For
90
- dividend a, divisor d, quotient q, and b = 2^mp_bits_per_limb, this
91
- remainder r is of the form
28
+ limbs are produced but with a remainder in the high limbs. For dividend
29
+ a, divisor d, quotient q, and b = 2^mp_bits_per_limb, this remainder r
30
+ is of the form
92
31
 
93
32
  a = q*d + r*b^n
94
33
 
@@ -97,14 +36,14 @@ that being the number of limbs produced for q. r will be in the range
97
36
  0<=r<d and can be viewed as a remainder, but one shifted up by a factor
98
37
  of b^n.
99
38
 
100
- Carrying out full subtractions at each stage means the same number
101
- of cross products must be done as a normal division, but there's still
102
- some single limb divisions saved. When d is a single limb some
39
+ Carrying out full subtractions at each stage means the same number of
40
+ cross products must be done as a normal division, but there's still some
41
+ single limb divisions saved. When d is a single limb some
103
42
  simplifications arise, providing good speedups on a number of
104
43
  processors.
105
44
 
106
- The functions `mpn_divexact_by3', `mpn_modexact_1_odd' and the
107
- internal `mpn_redc_X' functions differ subtly in how they return r,
45
+ The functions 'mpn_divexact_by3', 'mpn_modexact_1_odd' and the
46
+ internal 'mpn_redc_X' functions differ subtly in how they return r,
108
47
  leading to some negations in the above formula, but all are essentially
109
48
  the same.
110
49
 
@@ -113,19 +52,19 @@ divisibility or congruence tests which are potentially more efficient
113
52
  than a normal division.
114
53
 
115
54
  The factor of b^n on r can be ignored in a GCD when d is odd, hence
116
- the use of `mpn_modexact_1_odd' by `mpn_gcd_1' and `mpz_kronecker_ui'
55
+ the use of 'mpn_modexact_1_odd' by 'mpn_gcd_1' and 'mpz_kronecker_ui'
117
56
  etc (*note Greatest Common Divisor Algorithms::).
118
57
 
119
- Montgomery's REDC method for modular multiplications uses operands
120
- of the form of x*b^-n and y*b^-n and on calculating (x*b^-n)*(y*b^-n)
121
- uses the factor of b^n in the exact remainder to reach a product in the
122
- same form (x*y)*b^-n (*note Modular Powering Algorithm::).
58
+ Montgomery's REDC method for modular multiplications uses operands of
59
+ the form of x*b^-n and y*b^-n and on calculating (x*b^-n)*(y*b^-n) uses
60
+ the factor of b^n in the exact remainder to reach a product in the same
61
+ form (x*y)*b^-n (*note Modular Powering Algorithm::).
123
62
 
124
63
  Notice that r generally gives no useful information about the
125
64
  ordinary remainder a mod d since b^n mod d could be anything. If
126
65
  however b^n == 1 mod d, then r is the negative of the ordinary
127
66
  remainder. This occurs whenever d is a factor of b^n-1, as for example
128
- with 3 in `mpn_divexact_by3'. For a 32 or 64 bit limb other such
67
+ with 3 in 'mpn_divexact_by3'. For a 32 or 64 bit limb other such
129
68
  factors include 5, 17 and 257, but no particular use has been found for
130
69
  this.
131
70
 
@@ -135,16 +74,16 @@ File: gmp.info, Node: Small Quotient Division, Prev: Exact Remainder, Up: Div
135
74
  15.2.7 Small Quotient Division
136
75
  ------------------------------
137
76
 
138
- An NxM division where the number of quotient limbs Q=N-M is small can
139
- be optimized somewhat.
77
+ An NxM division where the number of quotient limbs Q=N-M is small can be
78
+ optimized somewhat.
140
79
 
141
80
  An ordinary basecase division normalizes the divisor by shifting it
142
81
  to make the high bit set, shifting the dividend accordingly, and
143
- shifting the remainder back down at the end of the calculation. This
144
- is wasteful if only a few quotient limbs are to be formed. Instead a
145
- division of just the top 2*Q limbs of the dividend by the top Q limbs
146
- of the divisor can be used to form a trial quotient. This requires
147
- only those limbs normalized, not the whole of the divisor and dividend.
82
+ shifting the remainder back down at the end of the calculation. This is
83
+ wasteful if only a few quotient limbs are to be formed. Instead a
84
+ division of just the top 2*Q limbs of the dividend by the top Q limbs of
85
+ the divisor can be used to form a trial quotient. This requires only
86
+ those limbs normalized, not the whole of the divisor and dividend.
148
87
 
149
88
  A multiply and subtract then applies the trial quotient to the M-Q
150
89
  unused limbs of the divisor and N-Q dividend limbs (which includes Q
@@ -155,11 +94,11 @@ limbs that will arise from the subtraction. An addback is done if the
155
94
  quotient still turns out to be 1 too big.
156
95
 
157
96
  This whole procedure is essentially the same as one step of the
158
- basecase algorithm done in a Q limb base, though with the trial
159
- quotient test done only with the high limbs, not an entire Q limb
160
- "digit" product. The correctness of this weaker test can be
161
- established by following the argument of Knuth section 4.3.1 exercise
162
- 20 but with the v2*q>b*r+u2 condition appropriately relaxed.
97
+ basecase algorithm done in a Q limb base, though with the trial quotient
98
+ test done only with the high limbs, not an entire Q limb "digit"
99
+ product. The correctness of this weaker test can be established by
100
+ following the argument of Knuth section 4.3.1 exercise 20 but with the
101
+ v2*q>b*r+u2 condition appropriately relaxed.
163
102
 
164
103
  
165
104
  File: gmp.info, Node: Greatest Common Divisor Algorithms, Next: Powering Algorithms, Prev: Division Algorithms, Up: Algorithms
@@ -189,25 +128,25 @@ simply consists of successively reducing odd operands a and b using
189
128
  strip factors of 2 from a
190
129
 
191
130
  The Euclidean GCD algorithm, as per Knuth algorithms E and A,
192
- repeatedly computes the quotient q = floor(a/b) and replaces a,b by v,
193
- u - q v. The binary algorithm has so far been found to be faster than
194
- the Euclidean algorithm everywhere. One reason the binary method does
195
- well is that the implied quotient at each step is usually small, so
196
- often only one or two subtractions are needed to get the same effect as
197
- a division. Quotients 1, 2 and 3 for example occur 67.7% of the time,
198
- see Knuth section 4.5.3 Theorem E.
199
-
200
- When the implied quotient is large, meaning b is much smaller than
201
- a, then a division is worthwhile. This is the basis for the initial a
202
- mod b reductions in `mpn_gcd' and `mpn_gcd_1' (the latter for both Nx1
203
- and 1x1 cases). But after that initial reduction, big quotients occur
204
- too rarely to make it worth checking for them.
205
-
206
-
207
- The final 1x1 GCD in `mpn_gcd_1' is done in the generic C code as
208
- described above. For two N-bit operands, the algorithm takes about
209
- 0.68 iterations per bit. For optimum performance some attention needs
210
- to be paid to the way the factors of 2 are stripped from a.
131
+ repeatedly computes the quotient q = floor(a/b) and replaces a,b by v, u
132
+ - q v. The binary algorithm has so far been found to be faster than the
133
+ Euclidean algorithm everywhere. One reason the binary method does well
134
+ is that the implied quotient at each step is usually small, so often
135
+ only one or two subtractions are needed to get the same effect as a
136
+ division. Quotients 1, 2 and 3 for example occur 67.7% of the time, see
137
+ Knuth section 4.5.3 Theorem E.
138
+
139
+ When the implied quotient is large, meaning b is much smaller than a,
140
+ then a division is worthwhile. This is the basis for the initial a mod
141
+ b reductions in 'mpn_gcd' and 'mpn_gcd_1' (the latter for both Nx1 and
142
+ 1x1 cases). But after that initial reduction, big quotients occur too
143
+ rarely to make it worth checking for them.
144
+
145
+
146
+ The final 1x1 GCD in 'mpn_gcd_1' is done in the generic C code as
147
+ described above. For two N-bit operands, the algorithm takes about 0.68
148
+ iterations per bit. For optimum performance some attention needs to be
149
+ paid to the way the factors of 2 are stripped from a.
211
150
 
212
151
  Firstly it may be noted that in twos complement the number of low
213
152
  zero bits on a-b is the same as b-a, so counting or testing can begin on
@@ -216,8 +155,8 @@ a-b without waiting for abs(a-b) to be determined.
216
155
  A loop stripping low zero bits tends not to branch predict well,
217
156
  since the condition is data dependent. But on average there's only a
218
157
  few low zeros, so an option is to strip one or two bits arithmetically
219
- then loop for more (as done for AMD K6). Or use a lookup table to get
220
- a count for several bits then loop for more (as done for AMD K7). An
158
+ then loop for more (as done for AMD K6). Or use a lookup table to get a
159
+ count for several bits then loop for more (as done for AMD K7). An
221
160
  alternative approach is to keep just one of a or b odd and iterate
222
161
 
223
162
  a,b = abs(a-b), min(a,b)
@@ -245,90 +184,88 @@ File: gmp.info, Node: Lehmer's Algorithm, Next: Subquadratic GCD, Prev: Binar
245
184
 
246
185
  Lehmer's improvement of the Euclidean algorithms is based on the
247
186
  observation that the initial part of the quotient sequence depends only
248
- on the most significant parts of the inputs. The variant of Lehmer's
187
+ on the most significant parts of the inputs. The variant of Lehmer's
249
188
  algorithm used in GMP splits off the most significant two limbs, as
250
- suggested, e.g., in "A Double-Digit Lehmer-Euclid Algorithm" by
251
- Jebelean (*note References::). The quotients of two double-limb inputs
252
- are collected as a 2 by 2 matrix with single-limb elements. This is
253
- done by the function `mpn_hgcd2'. The resulting matrix is applied to
254
- the inputs using `mpn_mul_1' and `mpn_submul_1'. Each iteration usually
255
- reduces the inputs by almost one limb. In the rare case of a large
256
- quotient, no progress can be made by examining just the most
257
- significant two limbs, and the quotient is computed using plain
258
- division.
189
+ suggested, e.g., in "A Double-Digit Lehmer-Euclid Algorithm" by Jebelean
190
+ (*note References::). The quotients of two double-limb inputs are
191
+ collected as a 2 by 2 matrix with single-limb elements. This is done by
192
+ the function 'mpn_hgcd2'. The resulting matrix is applied to the inputs
193
+ using 'mpn_mul_1' and 'mpn_submul_1'. Each iteration usually reduces
194
+ the inputs by almost one limb. In the rare case of a large quotient, no
195
+ progress can be made by examining just the most significant two limbs,
196
+ and the quotient is computed using plain division.
259
197
 
260
198
  The resulting algorithm is asymptotically O(N^2), just as the
261
- Euclidean algorithm and the binary algorithm. The quadratic part of the
262
- work are the calls to `mpn_mul_1' and `mpn_submul_1'. For small sizes,
263
- the linear work is also significant. There are roughly N calls to the
264
- `mpn_hgcd2' function. This function uses a couple of important
199
+ Euclidean algorithm and the binary algorithm. The quadratic part of the
200
+ work are the calls to 'mpn_mul_1' and 'mpn_submul_1'. For small sizes,
201
+ the linear work is also significant. There are roughly N calls to the
202
+ 'mpn_hgcd2' function. This function uses a couple of important
265
203
  optimizations:
266
204
 
267
- * It uses the same relaxed notion of correctness as `mpn_hgcd' (see
268
- next section). This means that when called with the most
205
+ * It uses the same relaxed notion of correctness as 'mpn_hgcd' (see
206
+ next section). This means that when called with the most
269
207
  significant two limbs of two large numbers, the returned matrix
270
- does not always correspond exactly to the initial quotient
271
- sequence for the two large numbers; the final quotient may
272
- sometimes be one off.
208
+ does not always correspond exactly to the initial quotient sequence
209
+ for the two large numbers; the final quotient may sometimes be one
210
+ off.
273
211
 
274
212
  * It takes advantage of the fact the quotients are usually small.
275
213
  The division operator is not used, since the corresponding
276
- assembler instruction is very slow on most architectures. (This
277
- code could probably be improved further, it uses many branches
278
- that are unfriendly to prediction).
214
+ assembler instruction is very slow on most architectures. (This
215
+ code could probably be improved further, it uses many branches that
216
+ are unfriendly to prediction).
279
217
 
280
218
  * It switches from double-limb calculations to single-limb
281
219
  calculations half-way through, when the input numbers have been
282
220
  reduced in size from two limbs to one and a half.
283
221
 
284
-
285
222
  
286
223
  File: gmp.info, Node: Subquadratic GCD, Next: Extended GCD, Prev: Lehmer's Algorithm, Up: Greatest Common Divisor Algorithms
287
224
 
288
225
  15.3.3 Subquadratic GCD
289
226
  -----------------------
290
227
 
291
- For inputs larger than `GCD_DC_THRESHOLD', GCD is computed via the HGCD
228
+ For inputs larger than 'GCD_DC_THRESHOLD', GCD is computed via the HGCD
292
229
  (Half GCD) function, as a generalization to Lehmer's algorithm.
293
230
 
294
- Let the inputs a,b be of size N limbs each. Put S = floor(N/2) + 1.
231
+ Let the inputs a,b be of size N limbs each. Put S = floor(N/2) + 1.
295
232
  Then HGCD(a,b) returns a transformation matrix T with non-negative
296
- elements, and reduced numbers (c;d) = T^-1 (a;b). The reduced numbers
233
+ elements, and reduced numbers (c;d) = T^{-1} (a;b). The reduced numbers
297
234
  c,d must be larger than S limbs, while their difference abs(c-d) must
298
- fit in S limbs. The matrix elements will also be of size roughly N/2.
235
+ fit in S limbs. The matrix elements will also be of size roughly N/2.
299
236
 
300
237
  The HGCD base case uses Lehmer's algorithm, but with the above stop
301
238
  condition that returns reduced numbers and the corresponding
302
- transformation matrix half-way through. For inputs larger than
303
- `HGCD_THRESHOLD', HGCD is computed recursively, using the divide and
304
- conquer algorithm in "On Scho"nhage's algorithm and subquadratic
305
- integer GCD computation" by Mo"ller (*note References::). The recursive
239
+ transformation matrix half-way through. For inputs larger than
240
+ 'HGCD_THRESHOLD', HGCD is computed recursively, using the divide and
241
+ conquer algorithm in "On Sch�nhage's algorithm and subquadratic integer
242
+ GCD computation" by M�ller (*note References::). The recursive
306
243
  algorithm consists of these main steps.
307
244
 
308
- * Call HGCD recursively, on the most significant N/2 limbs. Apply the
309
- resulting matrix T_1 to the full numbers, reducing them to a size
310
- just above 3N/2.
245
+ * Call HGCD recursively, on the most significant N/2 limbs. Apply
246
+ the resulting matrix T_1 to the full numbers, reducing them to a
247
+ size just above 3N/2.
311
248
 
312
249
  * Perform a small number of division or subtraction steps to reduce
313
- the numbers to size below 3N/2. This is essential mainly for the
250
+ the numbers to size below 3N/2. This is essential mainly for the
314
251
  unlikely case of large quotients.
315
252
 
316
253
  * Call HGCD recursively, on the most significant N/2 limbs of the
317
- reduced numbers. Apply the resulting matrix T_2 to the full
254
+ reduced numbers. Apply the resulting matrix T_2 to the full
318
255
  numbers, reducing them to a size just above N/2.
319
256
 
320
257
  * Compute T = T_1 T_2.
321
258
 
322
- * Perform a small number of division and subtraction steps to
323
- satisfy the requirements, and return.
259
+ * Perform a small number of division and subtraction steps to satisfy
260
+ the requirements, and return.
324
261
 
325
262
  GCD is then implemented as a loop around HGCD, similarly to Lehmer's
326
- algorithm. Where Lehmer repeatedly chops off the top two limbs, calls
327
- `mpn_hgcd2', and applies the resulting matrix to the full numbers, the
263
+ algorithm. Where Lehmer repeatedly chops off the top two limbs, calls
264
+ 'mpn_hgcd2', and applies the resulting matrix to the full numbers, the
328
265
  sub-quadratic GCD chops off the most significant third of the limbs (the
329
266
  proportion is a tuning parameter, and 1/3 seems to be more efficient
330
- than, e.g, 1/2), calls `mpn_hgcd', and applies the resulting matrix.
331
- Once the input numbers are reduced to size below `GCD_DC_THRESHOLD',
267
+ than, e.g, 1/2), calls 'mpn_hgcd', and applies the resulting matrix.
268
+ Once the input numbers are reduced to size below 'GCD_DC_THRESHOLD',
332
269
  Lehmer's algorithm is used for the rest of the work.
333
270
 
334
271
  The asymptotic running time of both HGCD and GCD is O(M(N)*log(N)),
@@ -341,23 +278,23 @@ File: gmp.info, Node: Extended GCD, Next: Jacobi Symbol, Prev: Subquadratic G
341
278
  -------------------
342
279
 
343
280
  The extended GCD function, or GCDEXT, calculates gcd(a,b) and also
344
- cofactors x and y satisfying a*x+b*y=gcd(a,b). All the algorithms used
345
- for plain GCD are extended to handle this case. The binary algorithm is
346
- used only for single-limb GCDEXT. Lehmer's algorithm is used for sizes
347
- up to `GCDEXT_DC_THRESHOLD'. Above this threshold, GCDEXT is
281
+ cofactors x and y satisfying a*x+b*y=gcd(a,b). All the algorithms used
282
+ for plain GCD are extended to handle this case. The binary algorithm is
283
+ used only for single-limb GCDEXT. Lehmer's algorithm is used for sizes
284
+ up to 'GCDEXT_DC_THRESHOLD'. Above this threshold, GCDEXT is
348
285
  implemented as a loop around HGCD, but with more book-keeping to keep
349
- track of the cofactors. This gives the same asymptotic running time as
286
+ track of the cofactors. This gives the same asymptotic running time as
350
287
  for GCD and HGCD, O(M(N)*log(N))
351
288
 
352
289
  One difference to plain GCD is that while the inputs a and b are
353
290
  reduced as the algorithm proceeds, the cofactors x and y grow in size.
354
- This makes the tuning of the chopping-point more difficult. The current
291
+ This makes the tuning of the chopping-point more difficult. The current
355
292
  code chops off the most significant half of the inputs for the call to
356
- HGCD in the first iteration, and the most significant two thirds for
357
- the remaining calls. This strategy could surely be improved. Also the
358
- stop condition for the loop, where Lehmer's algorithm is invoked once
359
- the inputs are reduced below `GCDEXT_DC_THRESHOLD', could maybe be
360
- improved by taking into account the current size of the cofactors.
293
+ HGCD in the first iteration, and the most significant two thirds for the
294
+ remaining calls. This strategy could surely be improved. Also the stop
295
+ condition for the loop, where Lehmer's algorithm is invoked once the
296
+ inputs are reduced below 'GCDEXT_DC_THRESHOLD', could maybe be improved
297
+ by taking into account the current size of the cofactors.
361
298
 
362
299
  
363
300
  File: gmp.info, Node: Jacobi Symbol, Prev: Extended GCD, Up: Greatest Common Divisor Algorithms
@@ -368,20 +305,20 @@ File: gmp.info, Node: Jacobi Symbol, Prev: Extended GCD, Up: Greatest Common
368
305
  [This section is obsolete. The current Jacobi code actually uses a very
369
306
  efficient algorithm.]
370
307
 
371
- `mpz_jacobi' and `mpz_kronecker' are currently implemented with a
308
+ 'mpz_jacobi' and 'mpz_kronecker' are currently implemented with a
372
309
  simple binary algorithm similar to that described for the GCDs (*note
373
310
  Binary GCD::). They're not very fast when both inputs are large.
374
311
  Lehmer's multi-step improvement or a binary based multi-step algorithm
375
312
  is likely to be better.
376
313
 
377
314
  When one operand fits a single limb, and that includes
378
- `mpz_kronecker_ui' and friends, an initial reduction is done with
379
- either `mpn_mod_1' or `mpn_modexact_1_odd', followed by the binary
380
- algorithm on a single limb. The binary algorithm is well suited to a
381
- single limb, and the whole calculation in this case is quite efficient.
315
+ 'mpz_kronecker_ui' and friends, an initial reduction is done with either
316
+ 'mpn_mod_1' or 'mpn_modexact_1_odd', followed by the binary algorithm on
317
+ a single limb. The binary algorithm is well suited to a single limb,
318
+ and the whole calculation in this case is quite efficient.
382
319
 
383
- In all the routines sign changes for the result are accumulated
384
- using some bit twiddling, avoiding table lookups or conditional jumps.
320
+ In all the routines sign changes for the result are accumulated using
321
+ some bit twiddling, avoiding table lookups or conditional jumps.
385
322
 
386
323
  
387
324
  File: gmp.info, Node: Powering Algorithms, Next: Root Extraction Algorithms, Prev: Greatest Common Divisor Algorithms, Up: Algorithms
@@ -400,11 +337,11 @@ File: gmp.info, Node: Normal Powering Algorithm, Next: Modular Powering Algori
400
337
  15.4.1 Normal Powering
401
338
  ----------------------
402
339
 
403
- Normal `mpz' or `mpf' powering uses a simple binary algorithm,
340
+ Normal 'mpz' or 'mpf' powering uses a simple binary algorithm,
404
341
  successively squaring and then multiplying by the base when a 1 bit is
405
342
  seen in the exponent, as per Knuth section 4.6.3. The "left to right"
406
- variant described there is used rather than algorithm A, since it's
407
- just as easy and can be done with somewhat less temporary memory.
343
+ variant described there is used rather than algorithm A, since it's just
344
+ as easy and can be done with somewhat less temporary memory.
408
345
 
409
346
  
410
347
  File: gmp.info, Node: Modular Powering Algorithm, Prev: Normal Powering Algorithm, Up: Powering Algorithms
@@ -448,8 +385,8 @@ Paul Zimmermann (*note References::).
448
385
 
449
386
  An input n is split into four parts of k bits each, so with b=2^k we
450
387
  have n = a3*b^3 + a2*b^2 + a1*b + a0. Part a3 must be "normalized" so
451
- that either the high or second highest bit is set. In GMP, k is kept
452
- on a limb boundary and the input is left shifted (by an even number of
388
+ that either the high or second highest bit is set. In GMP, k is kept on
389
+ a limb boundary and the input is left shifted (by an even number of
453
390
  bits) to normalize.
454
391
 
455
392
  The square root of the high two parts is taken, by recursive
@@ -472,14 +409,14 @@ correct or 1 too big. r is negative in the latter case, so
472
409
  r = r + 2*s - 1
473
410
  s = s - 1
474
411
 
475
- The algorithm is expressed in a divide and conquer form, but as
476
- noted in the paper it can also be viewed as a discrete variant of
477
- Newton's method, or as a variation on the schoolboy method (no longer
478
- taught) for square roots two digits at a time.
412
+ The algorithm is expressed in a divide and conquer form, but as noted
413
+ in the paper it can also be viewed as a discrete variant of Newton's
414
+ method, or as a variation on the schoolboy method (no longer taught) for
415
+ square roots two digits at a time.
479
416
 
480
417
  If the remainder r is not required then usually only a few high limbs
481
- of r and u need to be calculated to determine whether an adjustment to
482
- s is required. This optimization is not currently implemented.
418
+ of r and u need to be calculated to determine whether an adjustment to s
419
+ is required. This optimization is not currently implemented.
483
420
 
484
421
  In the Karatsuba multiplication range this algorithm is
485
422
  O(1.5*M(N/2)), where M(n) is the time to multiply two numbers of n
@@ -488,8 +425,8 @@ O(6*M(N/2)). In practice a factor of about 1.5 to 1.8 is found in the
488
425
  Karatsuba and Toom-3 ranges, growing to 2 or 3 in the FFT range.
489
426
 
490
427
  The algorithm does all its calculations in integers and the resulting
491
- `mpn_sqrtrem' is used for both `mpz_sqrt' and `mpf_sqrt'. The extended
492
- precision given by `mpf_sqrt_ui' is obtained by padding with zero limbs.
428
+ 'mpn_sqrtrem' is used for both 'mpz_sqrt' and 'mpf_sqrt'. The extended
429
+ precision given by 'mpf_sqrt_ui' is obtained by padding with zero limbs.
493
430
 
494
431
  
495
432
  File: gmp.info, Node: Nth Root Algorithm, Next: Perfect Square Algorithm, Prev: Square Root Algorithm, Up: Root Extraction Algorithms
@@ -506,10 +443,10 @@ iteration, where A is the input and n is the root to be taken.
506
443
 
507
444
  The initial approximation a[1] is generated bitwise by successively
508
445
  powering a trial root with or without new 1 bits, aiming to be just
509
- above the true root. The iteration converges quadratically when
510
- started from a good approximation. When n is large more initial bits
511
- are needed to get good convergence. The current implementation is not
512
- particularly well optimized.
446
+ above the true root. The iteration converges quadratically when started
447
+ from a good approximation. When n is large more initial bits are needed
448
+ to get good convergence. The current implementation is not particularly
449
+ well optimized.
513
450
 
514
451
  
515
452
  File: gmp.info, Node: Perfect Square Algorithm, Next: Perfect Power Algorithm, Prev: Nth Root Algorithm, Up: Root Extraction Algorithms
@@ -520,37 +457,37 @@ File: gmp.info, Node: Perfect Square Algorithm, Next: Perfect Power Algorithm,
520
457
  A significant fraction of non-squares can be quickly identified by
521
458
  checking whether the input is a quadratic residue modulo small integers.
522
459
 
523
- `mpz_perfect_square_p' first tests the input mod 256, which means
524
- just examining the low byte. Only 44 different values occur for
525
- squares mod 256, so 82.8% of inputs can be immediately identified as
460
+ 'mpz_perfect_square_p' first tests the input mod 256, which means
461
+ just examining the low byte. Only 44 different values occur for squares
462
+ mod 256, so 82.8% of inputs can be immediately identified as
526
463
  non-squares.
527
464
 
528
- On a 32-bit system similar tests are done mod 9, 5, 7, 13 and 17,
529
- for a total 99.25% of inputs identified as non-squares. On a 64-bit
530
- system 97 is tested too, for a total 99.62%.
465
+ On a 32-bit system similar tests are done mod 9, 5, 7, 13 and 17, for
466
+ a total 99.25% of inputs identified as non-squares. On a 64-bit system
467
+ 97 is tested too, for a total 99.62%.
531
468
 
532
469
  These moduli are chosen because they're factors of 2^24-1 (or 2^48-1
533
470
  for 64-bits), and such a remainder can be quickly taken just using
534
- additions (see `mpn_mod_34lsub1').
471
+ additions (see 'mpn_mod_34lsub1').
535
472
 
536
- When nails are in use moduli are instead selected by the `gen-psqr.c'
537
- program and applied with an `mpn_mod_1'. The same 2^24-1 or 2^48-1
473
+ When nails are in use moduli are instead selected by the 'gen-psqr.c'
474
+ program and applied with an 'mpn_mod_1'. The same 2^24-1 or 2^48-1
538
475
  could be done with nails using some extra bit shifts, but this is not
539
476
  currently implemented.
540
477
 
541
- In any case each modulus is applied to the `mpn_mod_34lsub1' or
542
- `mpn_mod_1' remainder and a table lookup identifies non-squares. By
543
- using a "modexact" style calculation, and suitably permuted tables,
544
- just one multiply each is required, see the code for details. Moduli
545
- are also combined to save operations, so long as the lookup tables
546
- don't become too big. `gen-psqr.c' does all the pre-calculations.
478
+ In any case each modulus is applied to the 'mpn_mod_34lsub1' or
479
+ 'mpn_mod_1' remainder and a table lookup identifies non-squares. By
480
+ using a "modexact" style calculation, and suitably permuted tables, just
481
+ one multiply each is required, see the code for details. Moduli are
482
+ also combined to save operations, so long as the lookup tables don't
483
+ become too big. 'gen-psqr.c' does all the pre-calculations.
547
484
 
548
485
  A square root must still be taken for any value that passes these
549
486
  tests, to verify it's really a square and not one of the small fraction
550
487
  of non-squares that get through (i.e. a pseudo-square to all the tested
551
488
  bases).
552
489
 
553
- Clearly more residue tests could be done, `mpz_perfect_square_p' only
490
+ Clearly more residue tests could be done, 'mpz_perfect_square_p' only
554
491
  uses a compact and efficient set. Big inputs would probably benefit
555
492
  from more residue testing, small inputs might be better off with less.
556
493
  The assumed distribution of squares versus non-squares in the input
@@ -563,7 +500,7 @@ File: gmp.info, Node: Perfect Power Algorithm, Prev: Perfect Square Algorithm,
563
500
  --------------------
564
501
 
565
502
  Detecting perfect powers is required by some factorization algorithms.
566
- Currently `mpz_perfect_power_p' is implemented using repeated Nth root
503
+ Currently 'mpz_perfect_power_p' is implemented using repeated Nth root
567
504
  extractions, though naturally only prime roots need to be considered.
568
505
  (*Note Nth Root Algorithm::.)
569
506
 
@@ -593,11 +530,11 @@ File: gmp.info, Node: Binary to Radix, Next: Radix to Binary, Prev: Radix Con
593
530
  15.6.1 Binary to Radix
594
531
  ----------------------
595
532
 
596
- Conversions from binary to a power-of-2 radix use a simple and fast
597
- O(N) bit extraction algorithm.
533
+ Conversions from binary to a power-of-2 radix use a simple and fast O(N)
534
+ bit extraction algorithm.
598
535
 
599
536
  Conversions from binary to other radices use one of two algorithms.
600
- Sizes below `GET_STR_PRECOMPUTE_THRESHOLD' use a basic O(N^2) method.
537
+ Sizes below 'GET_STR_PRECOMPUTE_THRESHOLD' use a basic O(N^2) method.
601
538
  Repeated divisions by b^n are made, where b is the radix and n is the
602
539
  biggest power that fits in a limb. But instead of simply using the
603
540
  remainder r from such divisions, an extra divide step is done to give a
@@ -606,40 +543,40 @@ extracted using multiplications by b rather than divisions. Special
606
543
  case code is provided for decimal, allowing multiplications by 10 to
607
544
  optimize to shifts and adds.
608
545
 
609
- Above `GET_STR_PRECOMPUTE_THRESHOLD' a sub-quadratic algorithm is
546
+ Above 'GET_STR_PRECOMPUTE_THRESHOLD' a sub-quadratic algorithm is
610
547
  used. For an input t, powers b^(n*2^i) of the radix are calculated,
611
548
  until a power between t and sqrt(t) is reached. t is then divided by
612
549
  that largest power, giving a quotient which is the digits above that
613
550
  power, and a remainder which is those below. These two parts are in
614
- turn divided by the second highest power, and so on recursively. When
615
- a piece has been divided down to less than `GET_STR_DC_THRESHOLD'
616
- limbs, the basecase algorithm described above is used.
551
+ turn divided by the second highest power, and so on recursively. When a
552
+ piece has been divided down to less than 'GET_STR_DC_THRESHOLD' limbs,
553
+ the basecase algorithm described above is used.
617
554
 
618
- The advantage of this algorithm is that big divisions can make use
619
- of the sub-quadratic divide and conquer division (*note Divide and
620
- Conquer Division::), and big divisions tend to have less overheads than
621
- lots of separate single limb divisions anyway. But in any case the
622
- cost of calculating the powers b^(n*2^i) must first be overcome.
555
+ The advantage of this algorithm is that big divisions can make use of
556
+ the sub-quadratic divide and conquer division (*note Divide and Conquer
557
+ Division::), and big divisions tend to have less overheads than lots of
558
+ separate single limb divisions anyway. But in any case the cost of
559
+ calculating the powers b^(n*2^i) must first be overcome.
623
560
 
624
- `GET_STR_PRECOMPUTE_THRESHOLD' and `GET_STR_DC_THRESHOLD' represent
561
+ 'GET_STR_PRECOMPUTE_THRESHOLD' and 'GET_STR_DC_THRESHOLD' represent
625
562
  the same basic thing, the point where it becomes worth doing a big
626
- division to cut the input in half. `GET_STR_PRECOMPUTE_THRESHOLD'
563
+ division to cut the input in half. 'GET_STR_PRECOMPUTE_THRESHOLD'
627
564
  includes the cost of calculating the radix power required, whereas
628
- `GET_STR_DC_THRESHOLD' assumes that's already available, which is the
565
+ 'GET_STR_DC_THRESHOLD' assumes that's already available, which is the
629
566
  case when recursing.
630
567
 
631
568
  Since the base case produces digits from least to most significant
632
569
  but they want to be stored from most to least, it's necessary to
633
570
  calculate in advance how many digits there will be, or at least be sure
634
571
  not to underestimate that. For GMP the number of input bits is
635
- multiplied by `chars_per_bit_exactly' from `mp_bases', rounding up.
636
- The result is either correct or one too big.
572
+ multiplied by 'chars_per_bit_exactly' from 'mp_bases', rounding up. The
573
+ result is either correct or one too big.
637
574
 
638
575
  Examining some of the high bits of the input could increase the
639
576
  chance of getting the exact number of digits, but an exact result every
640
577
  time would not be practical, since in general the difference between
641
578
  numbers 100... and 99... is only in the last few bits and the work to
642
- identify 99... might well be almost as much as a full conversion.
579
+ identify 99... might well be almost as much as a full conversion.
643
580
 
644
581
  The r/b^n scheme described above for using multiplications to bring
645
582
  out digits might be useful for more than a single limb. Some brief
@@ -669,37 +606,36 @@ algorithms used before GMP 4.3.*
669
606
  O(N) bitwise concatenation algorithm.
670
607
 
671
608
  Conversions from other radices use one of two algorithms. Sizes
672
- below `SET_STR_PRECOMPUTE_THRESHOLD' use a basic O(N^2) method. Groups
609
+ below 'SET_STR_PRECOMPUTE_THRESHOLD' use a basic O(N^2) method. Groups
673
610
  of n digits are converted to limbs, where n is the biggest power of the
674
611
  base b which will fit in a limb, then those groups are accumulated into
675
- the result by multiplying by b^n and adding. This saves
676
- multi-precision operations, as per Knuth section 4.4 part E (*note
677
- References::). Some special case code is provided for decimal, giving
678
- the compiler a chance to optimize multiplications by 10.
612
+ the result by multiplying by b^n and adding. This saves multi-precision
613
+ operations, as per Knuth section 4.4 part E (*note References::). Some
614
+ special case code is provided for decimal, giving the compiler a chance
615
+ to optimize multiplications by 10.
679
616
 
680
- Above `SET_STR_PRECOMPUTE_THRESHOLD' a sub-quadratic algorithm is
617
+ Above 'SET_STR_PRECOMPUTE_THRESHOLD' a sub-quadratic algorithm is
681
618
  used. First groups of n digits are converted into limbs. Then adjacent
682
619
  limbs are combined into limb pairs with x*b^n+y, where x and y are the
683
620
  limbs. Adjacent limb pairs are combined into quads similarly with
684
- x*b^(2n)+y. This continues until a single block remains, that being
685
- the result.
621
+ x*b^(2n)+y. This continues until a single block remains, that being the
622
+ result.
686
623
 
687
624
  The advantage of this method is that the multiplications for each x
688
625
  are big blocks, allowing Karatsuba and higher algorithms to be used.
689
626
  But the cost of calculating the powers b^(n*2^i) must be overcome.
690
- `SET_STR_PRECOMPUTE_THRESHOLD' usually ends up quite big, around 5000
627
+ 'SET_STR_PRECOMPUTE_THRESHOLD' usually ends up quite big, around 5000
691
628
  digits, and on some processors much bigger still.
692
629
 
693
- `SET_STR_PRECOMPUTE_THRESHOLD' is based on the input digits (and
630
+ 'SET_STR_PRECOMPUTE_THRESHOLD' is based on the input digits (and
694
631
  tuned for decimal), though it might be better based on a limb count, so
695
632
  as to be independent of the base. But that sort of count isn't used by
696
633
  the base case and so would need some sort of initial calculation or
697
634
  estimate.
698
635
 
699
- The main reason `SET_STR_PRECOMPUTE_THRESHOLD' is so much bigger
700
- than the corresponding `GET_STR_PRECOMPUTE_THRESHOLD' is that
701
- `mpn_mul_1' is much faster than `mpn_divrem_1' (often by a factor of 5,
702
- or more).
636
+ The main reason 'SET_STR_PRECOMPUTE_THRESHOLD' is so much bigger than
637
+ the corresponding 'GET_STR_PRECOMPUTE_THRESHOLD' is that 'mpn_mul_1' is
638
+ much faster than 'mpn_divrem_1' (often by a factor of 5, or more).
703
639
 
704
640
  
705
641
  File: gmp.info, Node: Other Algorithms, Next: Assembly Coding, Prev: Radix Conversion Algorithms, Up: Algorithms
@@ -722,7 +658,7 @@ File: gmp.info, Node: Prime Testing Algorithm, Next: Factorial Algorithm, Pre
722
658
  15.7.1 Prime Testing
723
659
  --------------------
724
660
 
725
- The primality testing in `mpz_probab_prime_p' (*note Number Theoretic
661
+ The primality testing in 'mpz_probab_prime_p' (*note Number Theoretic
726
662
  Functions::) first does some trial division by small factors and then
727
663
  uses the Miller-Rabin probabilistic primality testing algorithm, as
728
664
  described in Knuth section 4.5.4 algorithm P (*note References::).
@@ -733,10 +669,10 @@ algorithm selects a random base x and tests whether x^q mod n is 1 or
733
669
  prime, if not then n is definitely composite.
734
670
 
735
671
  Any prime n will pass the test, but some composites do too. Such
736
- composites are known as strong pseudoprimes to base x. No n is a
737
- strong pseudoprime to more than 1/4 of all bases (see Knuth exercise
738
- 22), hence with x chosen at random there's no more than a 1/4 chance a
739
- "probable prime" will in fact be composite.
672
+ composites are known as strong pseudoprimes to base x. No n is a strong
673
+ pseudoprime to more than 1/4 of all bases (see Knuth exercise 22), hence
674
+ with x chosen at random there's no more than a 1/4 chance a "probable
675
+ prime" will in fact be composite.
740
676
 
741
677
  In fact strong pseudoprimes are quite rare, making the test much more
742
678
  powerful than this analysis would suggest, but 1/4 is all that's proven
@@ -748,23 +684,23 @@ File: gmp.info, Node: Factorial Algorithm, Next: Binomial Coefficients Algorit
748
684
  15.7.2 Factorial
749
685
  ----------------
750
686
 
751
- Factorials are calculated by a combination of two algorithms. An idea is
752
- shared among them: to compute the odd part of the factorial; a final
687
+ Factorials are calculated by a combination of two algorithms. An idea
688
+ is shared among them: to compute the odd part of the factorial; a final
753
689
  step takes account of the power of 2 term, by shifting.
754
690
 
755
691
  For small n, the odd factor of n! is computed with the simple
756
692
  observation that it is equal to the product of all positive odd numbers
757
693
  smaller than n times the odd factor of [n/2]!, where [x] is the integer
758
- part of x, and so on recursively. The procedure can be best illustrated
694
+ part of x, and so on recursively. The procedure can be best illustrated
759
695
  with an example,
760
696
 
761
- 23! = (23.21.19.17.15.13.11.9.7.5.3)(11.9.7.5.3)(5.3)2^19
697
+ 23! = (23.21.19.17.15.13.11.9.7.5.3)(11.9.7.5.3)(5.3)2^{19}
762
698
 
763
699
  Current code collects all the factors in a single list, with a loop
764
700
  and no recursion, and compute the product, with no special care for
765
701
  repeated chunks.
766
702
 
767
- When n is larger, computation pass trough prime sieving. An helper
703
+ When n is larger, computation pass trough prime sieving. An helper
768
704
  function is used, as suggested by Peter Luschny:
769
705
 
770
706
  n
@@ -773,9 +709,9 @@ function is used, as suggested by Peter Luschny:
773
709
  msf(n) = -------------- = | | p
774
710
  [n/2]!^2.2^k p=3
775
711
 
776
- Where p ranges on odd prime numbers. The exponent k is chosen to
712
+ Where p ranges on odd prime numbers. The exponent k is chosen to
777
713
  obtain an odd integer number: k is the number of 1 bits in the binary
778
- representation of [n/2]. The function L(p,n) can be defined as zero
714
+ representation of [n/2]. The function L(p,n) can be defined as zero
779
715
  when p is composite, and, for any prime p, it is computed with:
780
716
 
781
717
  ---
@@ -785,19 +721,19 @@ when p is composite, and, for any prime p, it is computed with:
785
721
  i>0
786
722
 
787
723
  With this helper function, we are able to compute the odd part of n!
788
- using the recursion implied by n!=[n/2]!^2*msf(n)*2^k. The recursion
724
+ using the recursion implied by n!=[n/2]!^2*msf(n)*2^k. The recursion
789
725
  stops using the small-n algorithm on some [n/2^i].
790
726
 
791
- Both the above algorithms use binary splitting to compute the
792
- product of many small factors. At first as many products as possible
793
- are accumulated in a single register, generating a list of factors that
794
- fit in a machine word. This list is then split into halves, and the
795
- product is computed recursively.
727
+ Both the above algorithms use binary splitting to compute the product
728
+ of many small factors. At first as many products as possible are
729
+ accumulated in a single register, generating a list of factors that fit
730
+ in a machine word. This list is then split into halves, and the product
731
+ is computed recursively.
796
732
 
797
733
  Such splitting is more efficient than repeated Nx1 multiplies since
798
734
  it forms big multiplies, allowing Karatsuba and higher algorithms to be
799
- used. And even below the Karatsuba threshold a big block of work can
800
- be more efficient for the basecase algorithm.
735
+ used. And even below the Karatsuba threshold a big block of work can be
736
+ more efficient for the basecase algorithm.
801
737
 
802
738
  
803
739
  File: gmp.info, Node: Binomial Coefficients Algorithm, Next: Fibonacci Numbers Algorithm, Prev: Factorial Algorithm, Up: Other Algorithms
@@ -816,9 +752,9 @@ product simply from i=2 to i=k.
816
752
  It's easy to show that each denominator i will divide the product so
817
753
  far, so the exact division algorithm is used (*note Exact Division::).
818
754
 
819
- The numerators n-k+i and denominators i are first accumulated into
820
- as many fit a limb, to save multi-precision operations, though for
821
- `mpz_bin_ui' this applies only to the divisors, since n is an `mpz_t'
755
+ The numerators n-k+i and denominators i are first accumulated into as
756
+ many fit a limb, to save multi-precision operations, though for
757
+ 'mpz_bin_ui' this applies only to the divisors, since n is an 'mpz_t'
822
758
  and n-k+i in general won't fit in a limb at all.
823
759
 
824
760
  
@@ -827,12 +763,12 @@ File: gmp.info, Node: Fibonacci Numbers Algorithm, Next: Lucas Numbers Algorit
827
763
  15.7.4 Fibonacci Numbers
828
764
  ------------------------
829
765
 
830
- The Fibonacci functions `mpz_fib_ui' and `mpz_fib2_ui' are designed for
766
+ The Fibonacci functions 'mpz_fib_ui' and 'mpz_fib2_ui' are designed for
831
767
  calculating isolated F[n] or F[n],F[n-1] values efficiently.
832
768
 
833
- For small n, a table of single limb values in `__gmp_fib_table' is
834
- used. On a 32-bit limb this goes up to F[47], or on a 64-bit limb up
835
- to F[93]. For convenience the table starts at F[-1].
769
+ For small n, a table of single limb values in '__gmp_fib_table' is
770
+ used. On a 32-bit limb this goes up to F[47], or on a 64-bit limb up to
771
+ F[93]. For convenience the table starts at F[-1].
836
772
 
837
773
  Beyond the table, values are generated with a binary powering
838
774
  algorithm, calculating a pair F[n] and F[n-1] working from high to low
@@ -855,13 +791,13 @@ be faster for only about 10 or 20 values of n, and including a block of
855
791
  code for just those doesn't seem worthwhile. If they really mattered
856
792
  it'd be better to extend the data table.
857
793
 
858
- Using a table avoids lots of calculations on small numbers, and
859
- makes small n go fast. A bigger table would make more small n go fast,
860
- it's just a question of balancing size against desired speed. For GMP
861
- the code is kept compact, with the emphasis primarily on a good
862
- powering algorithm.
794
+ Using a table avoids lots of calculations on small numbers, and makes
795
+ small n go fast. A bigger table would make more small n go fast, it's
796
+ just a question of balancing size against desired speed. For GMP the
797
+ code is kept compact, with the emphasis primarily on a good powering
798
+ algorithm.
863
799
 
864
- `mpz_fib2_ui' returns both F[n] and F[n-1], but `mpz_fib_ui' is only
800
+ 'mpz_fib2_ui' returns both F[n] and F[n-1], but 'mpz_fib_ui' is only
865
801
  interested in F[n]. In this case the last step of the algorithm can
866
802
  become one multiply instead of two squares. One of the following two
867
803
  formulas is used, according as n is odd or even.
@@ -871,10 +807,10 @@ formulas is used, according as n is odd or even.
871
807
  F[2k+1] = (2F[k]+F[k-1])*(2F[k]-F[k-1]) + 2*(-1)^k
872
808
 
873
809
  F[2k+1] here is the same as above, just rearranged to be a multiply.
874
- For interest, the 2*(-1)^k term both here and above can be applied
875
- just to the low limb of the calculation, without a carry or borrow into
810
+ For interest, the 2*(-1)^k term both here and above can be applied just
811
+ to the low limb of the calculation, without a carry or borrow into
876
812
  further limbs, which saves some code size. See comments with
877
- `mpz_fib_ui' and the internal `mpn_fib2_ui' for how this is done.
813
+ 'mpz_fib_ui' and the internal 'mpn_fib2_ui' for how this is done.
878
814
 
879
815
  
880
816
  File: gmp.info, Node: Lucas Numbers Algorithm, Next: Random Number Algorithms, Prev: Fibonacci Numbers Algorithm, Up: Other Algorithms
@@ -882,20 +818,20 @@ File: gmp.info, Node: Lucas Numbers Algorithm, Next: Random Number Algorithms,
882
818
  15.7.5 Lucas Numbers
883
819
  --------------------
884
820
 
885
- `mpz_lucnum2_ui' derives a pair of Lucas numbers from a pair of
821
+ 'mpz_lucnum2_ui' derives a pair of Lucas numbers from a pair of
886
822
  Fibonacci numbers with the following simple formulas.
887
823
 
888
824
  L[k] = F[k] + 2*F[k-1]
889
825
  L[k-1] = 2*F[k] - F[k-1]
890
826
 
891
- `mpz_lucnum_ui' is only interested in L[n], and some work can be
827
+ 'mpz_lucnum_ui' is only interested in L[n], and some work can be
892
828
  saved. Trailing zero bits on n can be handled with a single square
893
829
  each.
894
830
 
895
831
  L[2k] = L[k]^2 - 2*(-1)^k
896
832
 
897
833
  And the lowest 1 bit can be handled with one multiply of a pair of
898
- Fibonacci numbers, similar to what `mpz_fib_ui' does.
834
+ Fibonacci numbers, similar to what 'mpz_fib_ui' does.
899
835
 
900
836
  L[2k+1] = 5*F[k-1]*(2*F[k]+F[k-1]) - 4*(-1)^k
901
837
 
@@ -905,21 +841,21 @@ File: gmp.info, Node: Random Number Algorithms, Prev: Lucas Numbers Algorithm,
905
841
  15.7.6 Random Numbers
906
842
  ---------------------
907
843
 
908
- For the `urandomb' functions, random numbers are generated simply by
844
+ For the 'urandomb' functions, random numbers are generated simply by
909
845
  concatenating bits produced by the generator. As long as the generator
910
846
  has good randomness properties this will produce well-distributed N bit
911
847
  numbers.
912
848
 
913
- For the `urandomm' functions, random numbers in a range 0<=R<N are
849
+ For the 'urandomm' functions, random numbers in a range 0<=R<N are
914
850
  generated by taking values R of ceil(log2(N)) bits each until one
915
- satisfies R<N. This will normally require only one or two attempts,
916
- but the attempts are limited in case the generator is somehow
917
- degenerate and produces only 1 bits or similar.
851
+ satisfies R<N. This will normally require only one or two attempts, but
852
+ the attempts are limited in case the generator is somehow degenerate and
853
+ produces only 1 bits or similar.
918
854
 
919
855
  The Mersenne Twister generator is by Matsumoto and Nishimura (*note
920
856
  References::). It has a non-repeating period of 2^19937-1, which is a
921
- Mersenne prime, hence the name of the generator. The state is 624
922
- words of 32-bits each, which is iterated with one XOR and shift for each
857
+ Mersenne prime, hence the name of the generator. The state is 624 words
858
+ of 32-bits each, which is iterated with one XOR and shift for each
923
859
  32-bit word generated, making the algorithm very fast. Randomness
924
860
  properties are also very good and this is the default algorithm used by
925
861
  GMP.
@@ -927,21 +863,20 @@ GMP.
927
863
  Linear congruential generators are described in many text books, for
928
864
  instance Knuth volume 2 (*note References::). With a modulus M and
929
865
  parameters A and C, an integer state S is iterated by the formula S <-
930
- A*S+C mod M. At each step the new state is a linear function of the
866
+ A*S+C mod M. At each step the new state is a linear function of the
931
867
  previous, mod M, hence the name of the generator.
932
868
 
933
869
  In GMP only moduli of the form 2^N are supported, and the current
934
870
  implementation is not as well optimized as it could be. Overheads are
935
- significant when N is small, and when N is large clearly the multiply
936
- at each step will become slow. This is not a big concern, since the
871
+ significant when N is small, and when N is large clearly the multiply at
872
+ each step will become slow. This is not a big concern, since the
937
873
  Mersenne Twister generator is better in every respect and is therefore
938
874
  recommended for all normal applications.
939
875
 
940
876
  For both generators the current state can be deduced by observing
941
877
  enough output and applying some linear algebra (over GF(2) in the case
942
- of the Mersenne Twister). This generally means raw output is
943
- unsuitable for cryptographic applications without further hashing or
944
- the like.
878
+ of the Mersenne Twister). This generally means raw output is unsuitable
879
+ for cryptographic applications without further hashing or the like.
945
880
 
946
881
  
947
882
  File: gmp.info, Node: Assembly Coding, Prev: Other Algorithms, Up: Algorithms
@@ -949,14 +884,14 @@ File: gmp.info, Node: Assembly Coding, Prev: Other Algorithms, Up: Algorithms
949
884
  15.8 Assembly Coding
950
885
  ====================
951
886
 
952
- The assembly subroutines in GMP are the most significant source of
953
- speed at small to moderate sizes. At larger sizes algorithm selection
954
- becomes more important, but of course speedups in low level routines
955
- will still speed up everything proportionally.
887
+ The assembly subroutines in GMP are the most significant source of speed
888
+ at small to moderate sizes. At larger sizes algorithm selection becomes
889
+ more important, but of course speedups in low level routines will still
890
+ speed up everything proportionally.
956
891
 
957
892
  Carry handling and widening multiplies that are important for GMP
958
- can't be easily expressed in C. GCC `asm' blocks help a lot and are
959
- provided in `longlong.h', but hand coding low level routines invariably
893
+ can't be easily expressed in C. GCC 'asm' blocks help a lot and are
894
+ provided in 'longlong.h', but hand coding low level routines invariably
960
895
  offers a speedup over generic C by a factor of anything from 2 to 10.
961
896
 
962
897
  * Menu:
@@ -978,21 +913,21 @@ File: gmp.info, Node: Assembly Code Organisation, Next: Assembly Basics, Prev
978
913
  15.8.1 Code Organisation
979
914
  ------------------------
980
915
 
981
- The various `mpn' subdirectories contain machine-dependent code, written
982
- in C or assembly. The `mpn/generic' subdirectory contains default code,
916
+ The various 'mpn' subdirectories contain machine-dependent code, written
917
+ in C or assembly. The 'mpn/generic' subdirectory contains default code,
983
918
  used when there's no machine-specific version of a particular file.
984
919
 
985
- Each `mpn' subdirectory is for an ISA family. Generally 32-bit and
920
+ Each 'mpn' subdirectory is for an ISA family. Generally 32-bit and
986
921
  64-bit variants in a family cannot share code and have separate
987
922
  directories. Within a family further subdirectories may exist for CPU
988
923
  variants.
989
924
 
990
- In each directory a `nails' subdirectory may exist, holding code with
991
- nails support for that CPU variant. A `NAILS_SUPPORT' directive in each
925
+ In each directory a 'nails' subdirectory may exist, holding code with
926
+ nails support for that CPU variant. A 'NAILS_SUPPORT' directive in each
992
927
  file indicates the nails values the code handles. Nails code only
993
928
  exists where it's faster, or promises to be faster, than plain code.
994
- There's no effort put into nails if they're not going to enhance a
995
- given CPU.
929
+ There's no effort put into nails if they're not going to enhance a given
930
+ CPU.
996
931
 
997
932
  
998
933
  File: gmp.info, Node: Assembly Basics, Next: Assembly Carry Propagation, Prev: Assembly Code Organisation, Up: Assembly Coding
@@ -1000,20 +935,20 @@ File: gmp.info, Node: Assembly Basics, Next: Assembly Carry Propagation, Prev
1000
935
  15.8.2 Assembly Basics
1001
936
  ----------------------
1002
937
 
1003
- `mpn_addmul_1' and `mpn_submul_1' are the most important routines for
938
+ 'mpn_addmul_1' and 'mpn_submul_1' are the most important routines for
1004
939
  overall GMP performance. All multiplications and divisions come down to
1005
- repeated calls to these. `mpn_add_n', `mpn_sub_n', `mpn_lshift' and
1006
- `mpn_rshift' are next most important.
940
+ repeated calls to these. 'mpn_add_n', 'mpn_sub_n', 'mpn_lshift' and
941
+ 'mpn_rshift' are next most important.
1007
942
 
1008
943
  On some CPUs assembly versions of the internal functions
1009
- `mpn_mul_basecase' and `mpn_sqr_basecase' give significant speedups,
944
+ 'mpn_mul_basecase' and 'mpn_sqr_basecase' give significant speedups,
1010
945
  mainly through avoiding function call overheads. They can also
1011
946
  potentially make better use of a wide superscalar processor, as can
1012
- bigger primitives like `mpn_addmul_2' or `mpn_addmul_4'.
947
+ bigger primitives like 'mpn_addmul_2' or 'mpn_addmul_4'.
1013
948
 
1014
949
  The restrictions on overlaps between sources and destinations (*note
1015
950
  Low-level Functions::) are designed to facilitate a variety of
1016
- implementations. For example, knowing `mpn_add_n' won't have partly
951
+ implementations. For example, knowing 'mpn_add_n' won't have partly
1017
952
  overlapping sources and destination means reading can be done far ahead
1018
953
  of writing on superscalar processors, and loops can be vectorized on a
1019
954
  vector processor, depending on the carry handling.
@@ -1025,35 +960,33 @@ File: gmp.info, Node: Assembly Carry Propagation, Next: Assembly Cache Handlin
1025
960
  ------------------------
1026
961
 
1027
962
  The problem that presents most challenges in GMP is propagating carries
1028
- from one limb to the next. In functions like `mpn_addmul_1' and
1029
- `mpn_add_n', carries are the only dependencies between limb operations.
963
+ from one limb to the next. In functions like 'mpn_addmul_1' and
964
+ 'mpn_add_n', carries are the only dependencies between limb operations.
1030
965
 
1031
- On processors with carry flags, a straightforward CISC style `adc' is
1032
- generally best. AMD K6 `mpn_addmul_1' however is an example of an
966
+ On processors with carry flags, a straightforward CISC style 'adc' is
967
+ generally best. AMD K6 'mpn_addmul_1' however is an example of an
1033
968
  unusual set of circumstances where a branch works out better.
1034
969
 
1035
- On RISC processors generally an add and compare for overflow is
1036
- used. This sort of thing can be seen in `mpn/generic/aors_n.c'. Some
1037
- carry propagation schemes require 4 instructions, meaning at least 4
1038
- cycles per limb, but other schemes may use just 1 or 2. On wide
1039
- superscalar processors performance may be completely determined by the
1040
- number of dependent instructions between carry-in and carry-out for
1041
- each limb.
970
+ On RISC processors generally an add and compare for overflow is used.
971
+ This sort of thing can be seen in 'mpn/generic/aors_n.c'. Some carry
972
+ propagation schemes require 4 instructions, meaning at least 4 cycles
973
+ per limb, but other schemes may use just 1 or 2. On wide superscalar
974
+ processors performance may be completely determined by the number of
975
+ dependent instructions between carry-in and carry-out for each limb.
1042
976
 
1043
977
  On vector processors good use can be made of the fact that a carry
1044
978
  bit only very rarely propagates more than one limb. When adding a
1045
979
  single bit to a limb, there's only a carry out if that limb was
1046
- `0xFF...FF' which on random data will be only 1 in 2^mp_bits_per_limb.
1047
- `mpn/cray/add_n.c' is an example of this, it adds all limbs in
1048
- parallel, adds one set of carry bits in parallel and then only rarely
1049
- needs to fall through to a loop propagating further carries.
1050
-
1051
- On the x86s, GCC (as of version 2.95.2) doesn't generate
1052
- particularly good code for the RISC style idioms that are necessary to
1053
- handle carry bits in C. Often conditional jumps are generated where
1054
- `adc' or `sbb' forms would be better. And so unfortunately almost any
1055
- loop involving carry bits needs to be coded in assembly for best
1056
- results.
980
+ '0xFF...FF' which on random data will be only 1 in 2^mp_bits_per_limb.
981
+ 'mpn/cray/add_n.c' is an example of this, it adds all limbs in parallel,
982
+ adds one set of carry bits in parallel and then only rarely needs to
983
+ fall through to a loop propagating further carries.
984
+
985
+ On the x86s, GCC (as of version 2.95.2) doesn't generate particularly
986
+ good code for the RISC style idioms that are necessary to handle carry
987
+ bits in C. Often conditional jumps are generated where 'adc' or 'sbb'
988
+ forms would be better. And so unfortunately almost any loop involving
989
+ carry bits needs to be coded in assembly for best results.
1057
990
 
1058
991
  
1059
992
  File: gmp.info, Node: Assembly Cache Handling, Next: Assembly Functional Units, Prev: Assembly Carry Propagation, Up: Assembly Coding
@@ -1064,19 +997,19 @@ File: gmp.info, Node: Assembly Cache Handling, Next: Assembly Functional Units
1064
997
  GMP aims to perform well both on operands that fit entirely in L1 cache
1065
998
  and those which don't.
1066
999
 
1067
- Basic routines like `mpn_add_n' or `mpn_lshift' are often used on
1000
+ Basic routines like 'mpn_add_n' or 'mpn_lshift' are often used on
1068
1001
  large operands, so L2 and main memory performance is important for them.
1069
- `mpn_mul_1' and `mpn_addmul_1' are mostly used for multiply and square
1002
+ 'mpn_mul_1' and 'mpn_addmul_1' are mostly used for multiply and square
1070
1003
  basecases, so L1 performance matters most for them, unless assembly
1071
- versions of `mpn_mul_basecase' and `mpn_sqr_basecase' exist, in which
1004
+ versions of 'mpn_mul_basecase' and 'mpn_sqr_basecase' exist, in which
1072
1005
  case the remaining uses are mostly for larger operands.
1073
1006
 
1074
1007
  For L2 or main memory operands, memory access times will almost
1075
1008
  certainly be more than the calculation time. The aim therefore is to
1076
1009
  maximize memory throughput, by starting a load of the next cache line
1077
- while processing the contents of the previous one. Clearly this is
1078
- only possible if the chip has a lock-up free cache or some sort of
1079
- prefetch instruction. Most current chips have both these features.
1010
+ while processing the contents of the previous one. Clearly this is only
1011
+ possible if the chip has a lock-up free cache or some sort of prefetch
1012
+ instruction. Most current chips have both these features.
1080
1013
 
1081
1014
  Prefetching sources combines well with loop unrolling, since a
1082
1015
  prefetch can be initiated once per unrolled loop (or more than once if
@@ -1085,16 +1018,16 @@ the loop covers more than one cache line).
1085
1018
  On CPUs without write-allocate caches, prefetching destinations will
1086
1019
  ensure individual stores don't go further down the cache hierarchy,
1087
1020
  limiting bandwidth. Of course for calculations which are slow anyway,
1088
- like `mpn_divrem_1', write-throughs might be fine.
1021
+ like 'mpn_divrem_1', write-throughs might be fine.
1089
1022
 
1090
1023
  The distance ahead to prefetch will be determined by memory latency
1091
1024
  versus throughput. The aim of course is to have data arriving
1092
1025
  continuously, at peak throughput. Some CPUs have limits on the number
1093
1026
  of fetches or prefetches in progress.
1094
1027
 
1095
- If a special prefetch instruction doesn't exist then a plain load
1096
- can be used, but in that case care must be taken not to attempt to read
1097
- past the end of an operand, since that might produce a segmentation
1028
+ If a special prefetch instruction doesn't exist then a plain load can
1029
+ be used, but in that case care must be taken not to attempt to read past
1030
+ the end of an operand, since that might produce a segmentation
1098
1031
  violation.
1099
1032
 
1100
1033
  Some CPUs or systems have hardware that detects sequential memory
@@ -1115,18 +1048,18 @@ accommodate available resources.
1115
1048
  Loop control will generally require a counter and pointer updates,
1116
1049
  costing as much as 5 instructions, plus any delays a branch introduces.
1117
1050
  CPU addressing modes might reduce pointer updates, perhaps by allowing
1118
- just one updating pointer and others expressed as offsets from it, or
1119
- on CISC chips with all addressing done with the loop counter as a
1120
- scaled index.
1051
+ just one updating pointer and others expressed as offsets from it, or on
1052
+ CISC chips with all addressing done with the loop counter as a scaled
1053
+ index.
1121
1054
 
1122
1055
  The final loop control cost can be amortised by processing several
1123
1056
  limbs in each iteration (*note Assembly Loop Unrolling::). This at
1124
1057
  least ensures loop control isn't a big fraction the work done.
1125
1058
 
1126
- Memory throughput is always a limit. If perhaps only one load or
1127
- one store can be done per cycle then 3 cycles/limb will the top speed
1128
- for "binary" operations like `mpn_add_n', and any code achieving that
1129
- is optimal.
1059
+ Memory throughput is always a limit. If perhaps only one load or one
1060
+ store can be done per cycle then 3 cycles/limb will the top speed for
1061
+ "binary" operations like 'mpn_add_n', and any code achieving that is
1062
+ optimal.
1130
1063
 
1131
1064
  Integer resources can be freed up by having the loop counter in a
1132
1065
  float register, or by pressing the float units into use for some
@@ -1144,33 +1077,33 @@ File: gmp.info, Node: Assembly Floating Point, Next: Assembly SIMD Instruction
1144
1077
  ---------------------
1145
1078
 
1146
1079
  Floating point arithmetic is used in GMP for multiplications on CPUs
1147
- with poor integer multipliers. It's mostly useful for `mpn_mul_1',
1148
- `mpn_addmul_1' and `mpn_submul_1' on 64-bit machines, and
1149
- `mpn_mul_basecase' on both 32-bit and 64-bit machines.
1080
+ with poor integer multipliers. It's mostly useful for 'mpn_mul_1',
1081
+ 'mpn_addmul_1' and 'mpn_submul_1' on 64-bit machines, and
1082
+ 'mpn_mul_basecase' on both 32-bit and 64-bit machines.
1150
1083
 
1151
1084
  With IEEE 53-bit double precision floats, integer multiplications
1152
1085
  producing up to 53 bits will give exact results. Breaking a 64x64
1153
- multiplication into eight 16x32->48 bit pieces is convenient. With
1154
- some care though six 21x32->53 bit products can be used, if one of the
1155
- lower two 21-bit pieces also uses the sign bit.
1086
+ multiplication into eight 16x32->48 bit pieces is convenient. With some
1087
+ care though six 21x32->53 bit products can be used, if one of the lower
1088
+ two 21-bit pieces also uses the sign bit.
1156
1089
 
1157
- For the `mpn_mul_1' family of functions on a 64-bit machine, the
1158
- invariant single limb is split at the start, into 3 or 4 pieces.
1159
- Inside the loop, the bignum operand is split into 32-bit pieces. Fast
1090
+ For the 'mpn_mul_1' family of functions on a 64-bit machine, the
1091
+ invariant single limb is split at the start, into 3 or 4 pieces. Inside
1092
+ the loop, the bignum operand is split into 32-bit pieces. Fast
1160
1093
  conversion of these unsigned 32-bit pieces to floating point is highly
1161
1094
  machine-dependent. In some cases, reading the data into the integer
1162
- unit, zero-extending to 64-bits, then transferring to the floating
1163
- point unit back via memory is the only option.
1095
+ unit, zero-extending to 64-bits, then transferring to the floating point
1096
+ unit back via memory is the only option.
1164
1097
 
1165
- Converting partial products back to 64-bit limbs is usually best
1166
- done as a signed conversion. Since all values are smaller than 2^53,
1167
- signed and unsigned are the same, but most processors lack unsigned
1098
+ Converting partial products back to 64-bit limbs is usually best done
1099
+ as a signed conversion. Since all values are smaller than 2^53, signed
1100
+ and unsigned are the same, but most processors lack unsigned
1168
1101
  conversions.
1169
1102
 
1170
1103
 
1171
1104
 
1172
- Here is a diagram showing 16x32 bit products for an `mpn_mul_1' or
1173
- `mpn_addmul_1' with a 64-bit limb. The single limb operand V is split
1105
+ Here is a diagram showing 16x32 bit products for an 'mpn_mul_1' or
1106
+ 'mpn_addmul_1' with a 64-bit limb. The single limb operand V is split
1174
1107
  into four 16-bit parts. The multi-limb operand U is split in the loop
1175
1108
  into two 32-bit parts.
1176
1109
 
@@ -1209,9 +1142,9 @@ into two 32-bit parts.
1209
1142
  | u32 x v48 | r80
1210
1143
  +-----------+
1211
1144
 
1212
- p32 and r32 can be summed using floating-point addition, and
1213
- likewise p48 and r48. p00 and p16 can be summed with r64 and r80 from
1214
- the previous iteration.
1145
+ p32 and r32 can be summed using floating-point addition, and likewise
1146
+ p48 and r48. p00 and p16 can be summed with r64 and r80 from the
1147
+ previous iteration.
1215
1148
 
1216
1149
  For each loop then, four 49-bit quantities are transferred to the
1217
1150
  integer unit, aligned as follows,
@@ -1247,13 +1180,13 @@ for propagating the sort of carries that arise in GMP.
1247
1180
 
1248
1181
  SIMD multiplications of say four 16x16 bit multiplies only do as much
1249
1182
  work as one 32x32 from GMP's point of view, and need some shifts and
1250
- adds besides. But of course if say the SIMD form is fully pipelined
1251
- and uses less instruction decoding then it may still be worthwhile.
1183
+ adds besides. But of course if say the SIMD form is fully pipelined and
1184
+ uses less instruction decoding then it may still be worthwhile.
1252
1185
 
1253
- On the x86 chips, MMX has so far found a use in `mpn_rshift' and
1254
- `mpn_lshift', and is used in a special case for 16-bit multipliers in
1255
- the P55 `mpn_mul_1'. SSE2 is used for Pentium 4 `mpn_mul_1',
1256
- `mpn_addmul_1', and `mpn_submul_1'.
1186
+ On the x86 chips, MMX has so far found a use in 'mpn_rshift' and
1187
+ 'mpn_lshift', and is used in a special case for 16-bit multipliers in
1188
+ the P55 'mpn_mul_1'. SSE2 is used for Pentium 4 'mpn_mul_1',
1189
+ 'mpn_addmul_1', and 'mpn_submul_1'.
1257
1190
 
1258
1191
  
1259
1192
  File: gmp.info, Node: Assembly Software Pipelining, Next: Assembly Loop Unrolling, Prev: Assembly SIMD Instructions, Up: Assembly Coding
@@ -1263,8 +1196,8 @@ File: gmp.info, Node: Assembly Software Pipelining, Next: Assembly Loop Unroll
1263
1196
 
1264
1197
  Software pipelining consists of scheduling instructions around the
1265
1198
  branch point in a loop. For example a loop might issue a load not for
1266
- use in the present iteration but the next, thereby allowing extra
1267
- cycles for the data to arrive from memory.
1199
+ use in the present iteration but the next, thereby allowing extra cycles
1200
+ for the data to arrive from memory.
1268
1201
 
1269
1202
  Naturally this is wanted only when doing things like loads or
1270
1203
  multiplies that take several cycles to complete, and only where a CPU
@@ -1275,10 +1208,10 @@ meantime.
1275
1208
  each stage and each loop iteration moves them along one stage. This is
1276
1209
  like juggling.
1277
1210
 
1278
- If the latency of some instruction is greater than the loop time
1279
- then it will be necessary to unroll, so one register has a result ready
1280
- to use while another (or multiple others) are still in progress.
1281
- (*note Assembly Loop Unrolling::).
1211
+ If the latency of some instruction is greater than the loop time then
1212
+ it will be necessary to unroll, so one register has a result ready to
1213
+ use while another (or multiple others) are still in progress. (*note
1214
+ Assembly Loop Unrolling::).
1282
1215
 
1283
1216
  
1284
1217
  File: gmp.info, Node: Assembly Loop Unrolling, Next: Assembly Writing Guide, Prev: Assembly Software Pipelining, Up: Assembly Coding
@@ -1290,32 +1223,32 @@ Loop unrolling consists of replicating code so that several limbs are
1290
1223
  processed in each loop. At a minimum this reduces loop overheads by a
1291
1224
  corresponding factor, but it can also allow better register usage, for
1292
1225
  example alternately using one register combination and then another.
1293
- Judicious use of `m4' macros can help avoid lots of duplication in the
1226
+ Judicious use of 'm4' macros can help avoid lots of duplication in the
1294
1227
  source code.
1295
1228
 
1296
1229
  Any amount of unrolling can be handled with a loop counter that's
1297
1230
  decremented by N each time, stopping when the remaining count is less
1298
1231
  than the further N the loop will process. Or by subtracting N at the
1299
- start, the termination condition becomes when the counter C is less
1300
- than 0 (and the count of remaining limbs is C+N).
1232
+ start, the termination condition becomes when the counter C is less than
1233
+ 0 (and the count of remaining limbs is C+N).
1301
1234
 
1302
1235
  Alternately for a power of 2 unroll the loop count and remainder can
1303
- be established with a shift and mask. This is convenient if also
1304
- making a computed jump into the middle of a large loop.
1236
+ be established with a shift and mask. This is convenient if also making
1237
+ a computed jump into the middle of a large loop.
1305
1238
 
1306
1239
  The limbs not a multiple of the unrolling can be handled in various
1307
1240
  ways, for example
1308
1241
 
1309
1242
  * A simple loop at the end (or the start) to process the excess.
1310
- Care will be wanted that it isn't too much slower than the
1311
- unrolled part.
1243
+ Care will be wanted that it isn't too much slower than the unrolled
1244
+ part.
1312
1245
 
1313
1246
  * A set of binary tests, for example after an 8-limb unrolling, test
1314
1247
  for 4 more limbs to process, then a further 2 more or not, and
1315
1248
  finally 1 more or not. This will probably take more code space
1316
1249
  than a simple loop.
1317
1250
 
1318
- * A `switch' statement, providing separate code for each possible
1251
+ * A 'switch' statement, providing separate code for each possible
1319
1252
  excess, for example an 8-limb unrolling would have separate code
1320
1253
  for 0 remaining, 1 remaining, etc, up to 7 remaining. This might
1321
1254
  take a lot of code, but may be the best way to optimize all cases
@@ -1342,9 +1275,9 @@ Code it without unrolling or scheduling, to make sure it works. On a
1342
1275
  greatly simplify later steps.
1343
1276
 
1344
1277
  Then note for each instruction the functional unit and/or issue port
1345
- requirements. If an instruction can use either of two units, like U0
1346
- or U1 then make a category "U0/U1". Count the total using each unit
1347
- (or combined unit), and count all instructions.
1278
+ requirements. If an instruction can use either of two units, like U0 or
1279
+ U1 then make a category "U0/U1". Count the total using each unit (or
1280
+ combined unit), and count all instructions.
1348
1281
 
1349
1282
  Figure out from those counts the best possible loop time. The goal
1350
1283
  will be to find a perfect schedule where instruction latencies are
@@ -1352,20 +1285,20 @@ completely hidden. The total instruction count might be the limiting
1352
1285
  factor, or perhaps a particular functional unit. It might be possible
1353
1286
  to tweak the instructions to help the limiting factor.
1354
1287
 
1355
- Suppose the loop time is N, then make N issue buckets, with the
1356
- final loop branch at the end of the last. Now fill the buckets with
1357
- dummy instructions using the functional units desired. Run this to
1358
- make sure the intended speed is reached.
1288
+ Suppose the loop time is N, then make N issue buckets, with the final
1289
+ loop branch at the end of the last. Now fill the buckets with dummy
1290
+ instructions using the functional units desired. Run this to make sure
1291
+ the intended speed is reached.
1359
1292
 
1360
1293
  Now replace the dummy instructions with the real instructions from
1361
- the slow but correct loop you started with. The first will typically
1362
- be a load instruction. Then the instruction using that value is placed
1363
- in a bucket an appropriate distance down. Run the loop again, to check
1364
- it still runs at target speed.
1294
+ the slow but correct loop you started with. The first will typically be
1295
+ a load instruction. Then the instruction using that value is placed in
1296
+ a bucket an appropriate distance down. Run the loop again, to check it
1297
+ still runs at target speed.
1365
1298
 
1366
1299
  Keep placing instructions, frequently measuring the loop. After a
1367
- few you will need to wrap around from the last bucket back to the top
1368
- of the loop. If you used the new-register for new-value strategy above
1300
+ few you will need to wrap around from the last bucket back to the top of
1301
+ the loop. If you used the new-register for new-value strategy above
1369
1302
  then there will be no register conflicts. If not then take care not to
1370
1303
  clobber something already in use. Changing registers at this time is
1371
1304
  very error prone.
@@ -1381,8 +1314,8 @@ start and delete those instructions which don't have valid antecedents,
1381
1314
  and at the end replicate and delete those whose results are unwanted
1382
1315
  (including any further loads).
1383
1316
 
1384
- The loop will have a minimum number of limbs loaded and processed,
1385
- so the feed-in code must test if the request size is smaller and skip
1317
+ The loop will have a minimum number of limbs loaded and processed, so
1318
+ the feed-in code must test if the request size is smaller and skip
1386
1319
  either to a suitable part of the wind-down or to special code for small
1387
1320
  sizes.
1388
1321
 
@@ -1411,49 +1344,49 @@ File: gmp.info, Node: Integer Internals, Next: Rational Internals, Prev: Inte
1411
1344
  16.1 Integer Internals
1412
1345
  ======================
1413
1346
 
1414
- `mpz_t' variables represent integers using sign and magnitude, in space
1347
+ 'mpz_t' variables represent integers using sign and magnitude, in space
1415
1348
  dynamically allocated and reallocated. The fields are as follows.
1416
1349
 
1417
- `_mp_size'
1350
+ '_mp_size'
1418
1351
  The number of limbs, or the negative of that when representing a
1419
- negative integer. Zero is represented by `_mp_size' set to zero,
1420
- in which case the `_mp_d' data is unused.
1352
+ negative integer. Zero is represented by '_mp_size' set to zero,
1353
+ in which case the '_mp_d' data is unused.
1421
1354
 
1422
- `_mp_d'
1355
+ '_mp_d'
1423
1356
  A pointer to an array of limbs which is the magnitude. These are
1424
- stored "little endian" as per the `mpn' functions, so `_mp_d[0]'
1425
- is the least significant limb and `_mp_d[ABS(_mp_size)-1]' is the
1426
- most significant. Whenever `_mp_size' is non-zero, the most
1427
- significant limb is non-zero.
1357
+ stored "little endian" as per the 'mpn' functions, so '_mp_d[0]' is
1358
+ the least significant limb and '_mp_d[ABS(_mp_size)-1]' is the most
1359
+ significant. Whenever '_mp_size' is non-zero, the most significant
1360
+ limb is non-zero.
1428
1361
 
1429
1362
  Currently there's always at least one limb allocated, so for
1430
- instance `mpz_set_ui' never needs to reallocate, and `mpz_get_ui'
1431
- can fetch `_mp_d[0]' unconditionally (though its value is then
1432
- only wanted if `_mp_size' is non-zero).
1433
-
1434
- `_mp_alloc'
1435
- `_mp_alloc' is the number of limbs currently allocated at `_mp_d',
1436
- and naturally `_mp_alloc >= ABS(_mp_size)'. When an `mpz' routine
1437
- is about to (or might be about to) increase `_mp_size', it checks
1438
- `_mp_alloc' to see whether there's enough space, and reallocates
1439
- if not. `MPZ_REALLOC' is generally used for this.
1440
-
1441
- The various bitwise logical functions like `mpz_and' behave as if
1363
+ instance 'mpz_set_ui' never needs to reallocate, and 'mpz_get_ui'
1364
+ can fetch '_mp_d[0]' unconditionally (though its value is then only
1365
+ wanted if '_mp_size' is non-zero).
1366
+
1367
+ '_mp_alloc'
1368
+ '_mp_alloc' is the number of limbs currently allocated at '_mp_d',
1369
+ and naturally '_mp_alloc >= ABS(_mp_size)'. When an 'mpz' routine
1370
+ is about to (or might be about to) increase '_mp_size', it checks
1371
+ '_mp_alloc' to see whether there's enough space, and reallocates if
1372
+ not. 'MPZ_REALLOC' is generally used for this.
1373
+
1374
+ The various bitwise logical functions like 'mpz_and' behave as if
1442
1375
  negative values were twos complement. But sign and magnitude is always
1443
1376
  used internally, and necessary adjustments are made during the
1444
1377
  calculations. Sometimes this isn't pretty, but sign and magnitude are
1445
1378
  best for other routines.
1446
1379
 
1447
- Some internal temporary variables are setup with `MPZ_TMP_INIT' and
1448
- these have `_mp_d' space obtained from `TMP_ALLOC' rather than the
1449
- memory allocation functions. Care is taken to ensure that these are
1450
- big enough that no reallocation is necessary (since it would have
1380
+ Some internal temporary variables are setup with 'MPZ_TMP_INIT' and
1381
+ these have '_mp_d' space obtained from 'TMP_ALLOC' rather than the
1382
+ memory allocation functions. Care is taken to ensure that these are big
1383
+ enough that no reallocation is necessary (since it would have
1451
1384
  unpredictable consequences).
1452
1385
 
1453
- `_mp_size' and `_mp_alloc' are `int', although `mp_size_t' is
1454
- usually a `long'. This is done to make the fields just 32 bits on some
1455
- 64 bits systems, thereby saving a few bytes of data space but still
1456
- providing plenty of range.
1386
+ '_mp_size' and '_mp_alloc' are 'int', although 'mp_size_t' is usually
1387
+ a 'long'. This is done to make the fields just 32 bits on some 64 bits
1388
+ systems, thereby saving a few bytes of data space but still providing
1389
+ plenty of range.
1457
1390
 
1458
1391
  
1459
1392
  File: gmp.info, Node: Rational Internals, Next: Float Internals, Prev: Integer Internals, Up: Internals
@@ -1461,26 +1394,26 @@ File: gmp.info, Node: Rational Internals, Next: Float Internals, Prev: Intege
1461
1394
  16.2 Rational Internals
1462
1395
  =======================
1463
1396
 
1464
- `mpq_t' variables represent rationals using an `mpz_t' numerator and
1397
+ 'mpq_t' variables represent rationals using an 'mpz_t' numerator and
1465
1398
  denominator (*note Integer Internals::).
1466
1399
 
1467
- The canonical form adopted is denominator positive (and non-zero),
1468
- no common factors between numerator and denominator, and zero uniquely
1400
+ The canonical form adopted is denominator positive (and non-zero), no
1401
+ common factors between numerator and denominator, and zero uniquely
1469
1402
  represented as 0/1.
1470
1403
 
1471
1404
  It's believed that casting out common factors at each stage of a
1472
1405
  calculation is best in general. A GCD is an O(N^2) operation so it's
1473
- better to do a few small ones immediately than to delay and have to do
1474
- a big one later. Knowing the numerator and denominator have no common
1475
- factors can be used for example in `mpq_mul' to make only two cross
1476
- GCDs necessary, not four.
1406
+ better to do a few small ones immediately than to delay and have to do a
1407
+ big one later. Knowing the numerator and denominator have no common
1408
+ factors can be used for example in 'mpq_mul' to make only two cross GCDs
1409
+ necessary, not four.
1477
1410
 
1478
1411
  This general approach to common factors is badly sub-optimal in the
1479
1412
  presence of simple factorizations or little prospect for cancellation,
1480
- but GMP has no way to know when this will occur. As per *Note
1481
- Efficiency::, that's left to applications. The `mpq_t' framework might
1482
- still suit, with `mpq_numref' and `mpq_denref' for direct access to the
1483
- numerator and denominator, or of course `mpz_t' variables can be used
1413
+ but GMP has no way to know when this will occur. As per *note
1414
+ Efficiency::, that's left to applications. The 'mpq_t' framework might
1415
+ still suit, with 'mpq_numref' and 'mpq_denref' for direct access to the
1416
+ numerator and denominator, or of course 'mpz_t' variables can be used
1484
1417
  directly.
1485
1418
 
1486
1419
  
@@ -1492,7 +1425,7 @@ File: gmp.info, Node: Float Internals, Next: Raw Output Internals, Prev: Rati
1492
1425
  Efficient calculation is the primary aim of GMP floats and the use of
1493
1426
  whole limbs and simple rounding facilitates this.
1494
1427
 
1495
- `mpf_t' floats have a variable precision mantissa and a single
1428
+ 'mpf_t' floats have a variable precision mantissa and a single
1496
1429
  machine word signed exponent. The mantissa is represented using sign
1497
1430
  and magnitude.
1498
1431
 
@@ -1508,35 +1441,36 @@ and magnitude.
1508
1441
 
1509
1442
  <-------- _mp_size --------->
1510
1443
 
1444
+
1511
1445
  The fields are as follows.
1512
1446
 
1513
- `_mp_size'
1447
+ '_mp_size'
1514
1448
  The number of limbs currently in use, or the negative of that when
1515
- representing a negative value. Zero is represented by `_mp_size'
1516
- and `_mp_exp' both set to zero, and in that case the `_mp_d' data
1517
- is unused. (In the future `_mp_exp' might be undefined when
1449
+ representing a negative value. Zero is represented by '_mp_size'
1450
+ and '_mp_exp' both set to zero, and in that case the '_mp_d' data
1451
+ is unused. (In the future '_mp_exp' might be undefined when
1518
1452
  representing zero.)
1519
1453
 
1520
- `_mp_prec'
1454
+ '_mp_prec'
1521
1455
  The precision of the mantissa, in limbs. In any calculation the
1522
- aim is to produce `_mp_prec' limbs of result (the most significant
1456
+ aim is to produce '_mp_prec' limbs of result (the most significant
1523
1457
  being non-zero).
1524
1458
 
1525
- `_mp_d'
1459
+ '_mp_d'
1526
1460
  A pointer to the array of limbs which is the absolute value of the
1527
- mantissa. These are stored "little endian" as per the `mpn'
1528
- functions, so `_mp_d[0]' is the least significant limb and
1529
- `_mp_d[ABS(_mp_size)-1]' the most significant.
1461
+ mantissa. These are stored "little endian" as per the 'mpn'
1462
+ functions, so '_mp_d[0]' is the least significant limb and
1463
+ '_mp_d[ABS(_mp_size)-1]' the most significant.
1530
1464
 
1531
1465
  The most significant limb is always non-zero, but there are no
1532
1466
  other restrictions on its value, in particular the highest 1 bit
1533
1467
  can be anywhere within the limb.
1534
1468
 
1535
- `_mp_prec+1' limbs are allocated to `_mp_d', the extra limb being
1469
+ '_mp_prec+1' limbs are allocated to '_mp_d', the extra limb being
1536
1470
  for convenience (see below). There are no reallocations during a
1537
- calculation, only in a change of precision with `mpf_set_prec'.
1471
+ calculation, only in a change of precision with 'mpf_set_prec'.
1538
1472
 
1539
- `_mp_exp'
1473
+ '_mp_exp'
1540
1474
  The exponent, in limbs, determining the location of the implied
1541
1475
  radix point. Zero means the radix point is just above the most
1542
1476
  significant limb. Positive values mean a radix point offset
@@ -1547,11 +1481,11 @@ The fields are as follows.
1547
1481
  Naturally the exponent can be any value, it doesn't have to fall
1548
1482
  within the limbs as the diagram shows, it can be a long way above
1549
1483
  or a long way below. Limbs other than those included in the
1550
- `{_mp_d,_mp_size}' data are treated as zero.
1484
+ '{_mp_d,_mp_size}' data are treated as zero.
1551
1485
 
1552
- The `_mp_size' and `_mp_prec' fields are `int', although the
1553
- `mp_size_t' type is usually a `long'. The `_mp_exp' field is usually
1554
- `long'. This is done to make some fields just 32 bits on some 64 bits
1486
+ The '_mp_size' and '_mp_prec' fields are 'int', although the
1487
+ 'mp_size_t' type is usually a 'long'. The '_mp_exp' field is usually
1488
+ 'long'. This is done to make some fields just 32 bits on some 64 bits
1555
1489
  systems, thereby saving a few bytes of data space but still providing
1556
1490
  plenty of precision and a very large range.
1557
1491
 
@@ -1559,92 +1493,89 @@ plenty of precision and a very large range.
1559
1493
  The following various points should be noted.
1560
1494
 
1561
1495
  Low Zeros
1562
- The least significant limbs `_mp_d[0]' etc can be zero, though
1563
- such low zeros can always be ignored. Routines likely to produce
1564
- low zeros check and avoid them to save time in subsequent
1565
- calculations, but for most routines they're quite unlikely and
1566
- aren't checked.
1496
+ The least significant limbs '_mp_d[0]' etc can be zero, though such
1497
+ low zeros can always be ignored. Routines likely to produce low
1498
+ zeros check and avoid them to save time in subsequent calculations,
1499
+ but for most routines they're quite unlikely and aren't checked.
1567
1500
 
1568
1501
  Mantissa Size Range
1569
- The `_mp_size' count of limbs in use can be less than `_mp_prec' if
1502
+ The '_mp_size' count of limbs in use can be less than '_mp_prec' if
1570
1503
  the value can be represented in less. This means low precision
1571
- values or small integers stored in a high precision `mpf_t' can
1504
+ values or small integers stored in a high precision 'mpf_t' can
1572
1505
  still be operated on efficiently.
1573
1506
 
1574
- `_mp_size' can also be greater than `_mp_prec'. Firstly a value is
1575
- allowed to use all of the `_mp_prec+1' limbs available at `_mp_d',
1576
- and secondly when `mpf_set_prec_raw' lowers `_mp_prec' it leaves
1577
- `_mp_size' unchanged and so the size can be arbitrarily bigger than
1578
- `_mp_prec'.
1507
+ '_mp_size' can also be greater than '_mp_prec'. Firstly a value is
1508
+ allowed to use all of the '_mp_prec+1' limbs available at '_mp_d',
1509
+ and secondly when 'mpf_set_prec_raw' lowers '_mp_prec' it leaves
1510
+ '_mp_size' unchanged and so the size can be arbitrarily bigger than
1511
+ '_mp_prec'.
1579
1512
 
1580
1513
  Rounding
1581
- All rounding is done on limb boundaries. Calculating `_mp_prec'
1514
+ All rounding is done on limb boundaries. Calculating '_mp_prec'
1582
1515
  limbs with the high non-zero will ensure the application requested
1583
1516
  minimum precision is obtained.
1584
1517
 
1585
- The use of simple "trunc" rounding towards zero is efficient,
1586
- since there's no need to examine extra limbs and increment or
1587
- decrement.
1518
+ The use of simple "trunc" rounding towards zero is efficient, since
1519
+ there's no need to examine extra limbs and increment or decrement.
1588
1520
 
1589
1521
  Bit Shifts
1590
1522
  Since the exponent is in limbs, there are no bit shifts in basic
1591
- operations like `mpf_add' and `mpf_mul'. When differing exponents
1523
+ operations like 'mpf_add' and 'mpf_mul'. When differing exponents
1592
1524
  are encountered all that's needed is to adjust pointers to line up
1593
1525
  the relevant limbs.
1594
1526
 
1595
- Of course `mpf_mul_2exp' and `mpf_div_2exp' will require bit
1527
+ Of course 'mpf_mul_2exp' and 'mpf_div_2exp' will require bit
1596
1528
  shifts, but the choice is between an exponent in limbs which
1597
1529
  requires shifts there, or one in bits which requires them almost
1598
1530
  everywhere else.
1599
1531
 
1600
- Use of `_mp_prec+1' Limbs
1601
- The extra limb on `_mp_d' (`_mp_prec+1' rather than just
1602
- `_mp_prec') helps when an `mpf' routine might get a carry from its
1603
- operation. `mpf_add' for instance will do an `mpn_add' of
1604
- `_mp_prec' limbs. If there's no carry then that's the result, but
1532
+ Use of '_mp_prec+1' Limbs
1533
+ The extra limb on '_mp_d' ('_mp_prec+1' rather than just
1534
+ '_mp_prec') helps when an 'mpf' routine might get a carry from its
1535
+ operation. 'mpf_add' for instance will do an 'mpn_add' of
1536
+ '_mp_prec' limbs. If there's no carry then that's the result, but
1605
1537
  if there is a carry then it's stored in the extra limb of space and
1606
- `_mp_size' becomes `_mp_prec+1'.
1538
+ '_mp_size' becomes '_mp_prec+1'.
1607
1539
 
1608
- Whenever `_mp_prec+1' limbs are held in a variable, the low limb
1609
- is not needed for the intended precision, only the `_mp_prec' high
1540
+ Whenever '_mp_prec+1' limbs are held in a variable, the low limb is
1541
+ not needed for the intended precision, only the '_mp_prec' high
1610
1542
  limbs. But zeroing it out or moving the rest down is unnecessary.
1611
1543
  Subsequent routines reading the value will simply take the high
1612
- limbs they need, and this will be `_mp_prec' if their target has
1544
+ limbs they need, and this will be '_mp_prec' if their target has
1613
1545
  that same precision. This is no more than a pointer adjustment,
1614
1546
  and must be checked anyway since the destination precision can be
1615
1547
  different from the sources.
1616
1548
 
1617
- Copy functions like `mpf_set' will retain a full `_mp_prec+1' limbs
1618
- if available. This ensures that a variable which has `_mp_size'
1619
- equal to `_mp_prec+1' will get its full exact value copied.
1620
- Strictly speaking this is unnecessary since only `_mp_prec' limbs
1549
+ Copy functions like 'mpf_set' will retain a full '_mp_prec+1' limbs
1550
+ if available. This ensures that a variable which has '_mp_size'
1551
+ equal to '_mp_prec+1' will get its full exact value copied.
1552
+ Strictly speaking this is unnecessary since only '_mp_prec' limbs
1621
1553
  are needed for the application's requested precision, but it's
1622
- considered that an `mpf_set' from one variable into another of the
1554
+ considered that an 'mpf_set' from one variable into another of the
1623
1555
  same precision ought to produce an exact copy.
1624
1556
 
1625
1557
  Application Precisions
1626
- `__GMPF_BITS_TO_PREC' converts an application requested precision
1627
- to an `_mp_prec'. The value in bits is rounded up to a whole limb
1558
+ '__GMPF_BITS_TO_PREC' converts an application requested precision
1559
+ to an '_mp_prec'. The value in bits is rounded up to a whole limb
1628
1560
  then an extra limb is added since the most significant limb of
1629
- `_mp_d' is only non-zero and therefore might contain only one bit.
1561
+ '_mp_d' is only non-zero and therefore might contain only one bit.
1630
1562
 
1631
- `__GMPF_PREC_TO_BITS' does the reverse conversion, and removes the
1632
- extra limb from `_mp_prec' before converting to bits. The net
1633
- effect of reading back with `mpf_get_prec' is simply the precision
1634
- rounded up to a multiple of `mp_bits_per_limb'.
1563
+ '__GMPF_PREC_TO_BITS' does the reverse conversion, and removes the
1564
+ extra limb from '_mp_prec' before converting to bits. The net
1565
+ effect of reading back with 'mpf_get_prec' is simply the precision
1566
+ rounded up to a multiple of 'mp_bits_per_limb'.
1635
1567
 
1636
1568
  Note that the extra limb added here for the high only being
1637
- non-zero is in addition to the extra limb allocated to `_mp_d'.
1638
- For example with a 32-bit limb, an application request for 250
1639
- bits will be rounded up to 8 limbs, then an extra added for the
1640
- high being only non-zero, giving an `_mp_prec' of 9. `_mp_d' then
1641
- gets 10 limbs allocated. Reading back with `mpf_get_prec' will
1642
- take `_mp_prec' subtract 1 limb and multiply by 32, giving 256
1643
- bits.
1569
+ non-zero is in addition to the extra limb allocated to '_mp_d'.
1570
+ For example with a 32-bit limb, an application request for 250 bits
1571
+ will be rounded up to 8 limbs, then an extra added for the high
1572
+ being only non-zero, giving an '_mp_prec' of 9. '_mp_d' then gets
1573
+ 10 limbs allocated. Reading back with 'mpf_get_prec' will take
1574
+ '_mp_prec' subtract 1 limb and multiply by 32, giving 256 bits.
1644
1575
 
1645
1576
  Strictly speaking, the fact the high limb has at least one bit
1646
1577
  means that a float with, say, 3 limbs of 32-bits each will be
1647
- holding at least 65 bits, but for the purposes of `mpf_t' it's
1578
+ holding at least 65 bits, but for the purposes of 'mpf_t' it's
1648
1579
  considered simply to be 64 bits, a nice multiple of the limb size.
1649
1580
 
1650
1581
  
@@ -1653,29 +1584,29 @@ File: gmp.info, Node: Raw Output Internals, Next: C++ Interface Internals, Pr
1653
1584
  16.4 Raw Output Internals
1654
1585
  =========================
1655
1586
 
1656
- `mpz_out_raw' uses the following format.
1587
+ 'mpz_out_raw' uses the following format.
1657
1588
 
1658
1589
  +------+------------------------+
1659
1590
  | size | data bytes |
1660
1591
  +------+------------------------+
1661
1592
 
1662
1593
  The size is 4 bytes written most significant byte first, being the
1663
- number of subsequent data bytes, or the twos complement negative of
1664
- that when a negative integer is represented. The data bytes are the
1665
- absolute value of the integer, written most significant byte first.
1594
+ number of subsequent data bytes, or the twos complement negative of that
1595
+ when a negative integer is represented. The data bytes are the absolute
1596
+ value of the integer, written most significant byte first.
1666
1597
 
1667
1598
  The most significant data byte is always non-zero, so the output is
1668
1599
  the same on all systems, irrespective of limb size.
1669
1600
 
1670
1601
  In GMP 1, leading zero bytes were written to pad the data bytes to a
1671
- multiple of the limb size. `mpz_inp_raw' will still accept this, for
1602
+ multiple of the limb size. 'mpz_inp_raw' will still accept this, for
1672
1603
  compatibility.
1673
1604
 
1674
1605
  The use of "big endian" for both the size and data fields is
1675
1606
  deliberate, it makes the data easy to read in a hex dump of a file.
1676
1607
  Unfortunately it also means that the limb data must be reversed when
1677
- reading or writing, so neither a big endian nor little endian system
1678
- can just read and write `_mp_d'.
1608
+ reading or writing, so neither a big endian nor little endian system can
1609
+ just read and write '_mp_d'.
1679
1610
 
1680
1611
  
1681
1612
  File: gmp.info, Node: C++ Interface Internals, Prev: Raw Output Internals, Up: Internals
@@ -1684,9 +1615,9 @@ File: gmp.info, Node: C++ Interface Internals, Prev: Raw Output Internals, Up
1684
1615
  ============================
1685
1616
 
1686
1617
  A system of expression templates is used to ensure something like
1687
- `a=b+c' turns into a simple call to `mpz_add' etc. For `mpf_class' the
1618
+ 'a=b+c' turns into a simple call to 'mpz_add' etc. For 'mpf_class' the
1688
1619
  scheme also ensures the precision of the final destination is used for
1689
- any temporaries within a statement like `f=w*x+y*z'. These are
1620
+ any temporaries within a statement like 'f=w*x+y*z'. These are
1690
1621
  important features which a naive implementation cannot provide.
1691
1622
 
1692
1623
  A simplified description of the scheme follows. The true scheme is
@@ -1713,12 +1644,12 @@ And an "additive expression" object,
1713
1644
  <__gmp_binary_expr<mpf_class, mpf_class, __gmp_binary_plus> >(f, g);
1714
1645
  }
1715
1646
 
1716
- The seemingly redundant `__gmp_expr<__gmp_binary_expr<...>>' is used
1647
+ The seemingly redundant '__gmp_expr<__gmp_binary_expr<...>>' is used
1717
1648
  to encapsulate any possible kind of expression into a single template
1718
- type. In fact even `mpf_class' etc are `typedef' specializations of
1719
- `__gmp_expr'.
1649
+ type. In fact even 'mpf_class' etc are 'typedef' specializations of
1650
+ '__gmp_expr'.
1720
1651
 
1721
- Next we define assignment of `__gmp_expr' to `mpf_class'.
1652
+ Next we define assignment of '__gmp_expr' to 'mpf_class'.
1722
1653
 
1723
1654
  template <class T>
1724
1655
  mpf_class & mpf_class::operator=(const __gmp_expr<T> &expr)
@@ -1734,14 +1665,14 @@ type. In fact even `mpf_class' etc are `typedef' specializations of
1734
1665
  Op::eval(f, expr.val1.get_mpf_t(), expr.val2.get_mpf_t());
1735
1666
  }
1736
1667
 
1737
- where `expr.val1' and `expr.val2' are references to the expression's
1738
- operands (here `expr' is the `__gmp_binary_expr' stored within the
1739
- `__gmp_expr').
1668
+ where 'expr.val1' and 'expr.val2' are references to the expression's
1669
+ operands (here 'expr' is the '__gmp_binary_expr' stored within the
1670
+ '__gmp_expr').
1740
1671
 
1741
1672
  This way, the expression is actually evaluated only at the time of
1742
- assignment, when the required precision (that of `f') is known.
1743
- Furthermore the target `mpf_t' is now available, thus we can call
1744
- `mpf_add' directly with `f' as the output argument.
1673
+ assignment, when the required precision (that of 'f') is known.
1674
+ Furthermore the target 'mpf_t' is now available, thus we can call
1675
+ 'mpf_add' directly with 'f' as the output argument.
1745
1676
 
1746
1677
  Compound expressions are handled by defining operators taking
1747
1678
  subexpressions as their arguments, like this:
@@ -1756,7 +1687,7 @@ subexpressions as their arguments, like this:
1756
1687
  (expr1, expr2);
1757
1688
  }
1758
1689
 
1759
- And the corresponding specializations of `__gmp_expr::eval':
1690
+ And the corresponding specializations of '__gmp_expr::eval':
1760
1691
 
1761
1692
  template <class T, class U, class Op>
1762
1693
  void __gmp_expr
@@ -1769,7 +1700,7 @@ subexpressions as their arguments, like this:
1769
1700
  }
1770
1701
 
1771
1702
  The expression is thus recursively evaluated to any level of
1772
- complexity and all subexpressions are evaluated to the precision of `f'.
1703
+ complexity and all subexpressions are evaluated to the precision of 'f'.
1773
1704
 
1774
1705
  
1775
1706
  File: gmp.info, Node: Contributors, Next: References, Prev: Internals, Up: Top
@@ -1777,12 +1708,12 @@ File: gmp.info, Node: Contributors, Next: References, Prev: Internals, Up: T
1777
1708
  Appendix A Contributors
1778
1709
  ***********************
1779
1710
 
1780
- Torbjo"rn Granlund wrote the original GMP library and is still the main
1711
+ Torbj�rn Granlund wrote the original GMP library and is still the main
1781
1712
  developer. Code not explicitly attributed to others, was contributed by
1782
- Torbjo"rn. Several other individuals and organizations have contributed
1783
- GMP. Here is a list in chronological order on first contribution:
1713
+ Torbj�rn. Several other individuals and organizations have contributed
1714
+ GMP. Here is a list in chronological order on first contribution:
1784
1715
 
1785
- Gunnar Sjo"din and Hans Riesel helped with mathematical problems in
1716
+ Gunnar Sj�din and Hans Riesel helped with mathematical problems in
1786
1717
  early versions of the library.
1787
1718
 
1788
1719
  Richard Stallman helped with the interface design and revised the
@@ -1792,33 +1723,33 @@ first version of this manual.
1792
1723
  the library and made creative suggestions.
1793
1724
 
1794
1725
  John Amanatides of York University in Canada contributed the function
1795
- `mpz_probab_prime_p'.
1726
+ 'mpz_probab_prime_p'.
1796
1727
 
1797
1728
  Paul Zimmermann wrote the REDC-based mpz_powm code, the
1798
- Scho"nhage-Strassen FFT multiply code, and the Karatsuba square root
1729
+ Sch�nhage-Strassen FFT multiply code, and the Karatsuba square root
1799
1730
  code. He also improved the Toom3 code for GMP 4.2. Paul sparked the
1800
- development of GMP 2, with his comparisons between bignum packages.
1801
- The ECMNET project Paul is organizing was a driving force behind many
1802
- of the optimizations in GMP 3. Paul also wrote the new GMP 4.3 nth
1803
- root code (with Torbjo"rn).
1731
+ development of GMP 2, with his comparisons between bignum packages. The
1732
+ ECMNET project Paul is organizing was a driving force behind many of the
1733
+ optimizations in GMP 3. Paul also wrote the new GMP 4.3 nth root code
1734
+ (with Torbj�rn).
1804
1735
 
1805
1736
  Ken Weber (Kent State University, Universidade Federal do Rio Grande
1806
- do Sul) contributed now defunct versions of `mpz_gcd', `mpz_divexact',
1807
- `mpn_gcd', and `mpn_bdivmod', partially supported by CNPq (Brazil)
1808
- grant 301314194-2.
1737
+ do Sul) contributed now defunct versions of 'mpz_gcd', 'mpz_divexact',
1738
+ 'mpn_gcd', and 'mpn_bdivmod', partially supported by CNPq (Brazil) grant
1739
+ 301314194-2.
1809
1740
 
1810
1741
  Per Bothner of Cygnus Support helped to set up GMP to use Cygnus'
1811
1742
  configure. He has also made valuable suggestions and tested numerous
1812
1743
  intermediary releases.
1813
1744
 
1814
- Joachim Hollman was involved in the design of the `mpf' interface,
1815
- and in the `mpz' design revisions for version 2.
1745
+ Joachim Hollman was involved in the design of the 'mpf' interface,
1746
+ and in the 'mpz' design revisions for version 2.
1816
1747
 
1817
- Bennet Yee contributed the initial versions of `mpz_jacobi' and
1818
- `mpz_legendre'.
1748
+ Bennet Yee contributed the initial versions of 'mpz_jacobi' and
1749
+ 'mpz_legendre'.
1819
1750
 
1820
- Andreas Schwab contributed the files `mpn/m68k/lshift.S' and
1821
- `mpn/m68k/rshift.S' (now in `.asm' form).
1751
+ Andreas Schwab contributed the files 'mpn/m68k/lshift.S' and
1752
+ 'mpn/m68k/rshift.S' (now in '.asm' form).
1822
1753
 
1823
1754
  Robert Harley of Inria, France and David Seal of ARM, England,
1824
1755
  suggested clever improvements for population count. Robert also wrote
@@ -1826,35 +1757,34 @@ highly optimized Karatsuba and 3-way Toom multiplication functions for
1826
1757
  GMP 3, and contributed the ARM assembly code.
1827
1758
 
1828
1759
  Torsten Ekedahl of the Mathematical department of Stockholm
1829
- University provided significant inspiration during several phases of
1830
- the GMP development. His mathematical expertise helped improve several
1760
+ University provided significant inspiration during several phases of the
1761
+ GMP development. His mathematical expertise helped improve several
1831
1762
  algorithms.
1832
1763
 
1833
1764
  Linus Nordberg wrote the new configure system based on autoconf and
1834
1765
  implemented the new random functions.
1835
1766
 
1836
- Kevin Ryde worked on a large number of things: optimized x86 code,
1837
- m4 asm macros, parameter tuning, speed measuring, the configure system,
1767
+ Kevin Ryde worked on a large number of things: optimized x86 code, m4
1768
+ asm macros, parameter tuning, speed measuring, the configure system,
1838
1769
  function inlining, divisibility tests, bit scanning, Jacobi symbols,
1839
1770
  Fibonacci and Lucas number functions, printf and scanf functions, perl
1840
- interface, demo expression parser, the algorithms chapter in the
1841
- manual, `gmpasm-mode.el', and various miscellaneous improvements
1842
- elsewhere.
1771
+ interface, demo expression parser, the algorithms chapter in the manual,
1772
+ 'gmpasm-mode.el', and various miscellaneous improvements elsewhere.
1843
1773
 
1844
1774
  Kent Boortz made the Mac OS 9 port.
1845
1775
 
1846
1776
  Steve Root helped write the optimized alpha 21264 assembly code.
1847
1777
 
1848
- Gerardo Ballabio wrote the `gmpxx.h' C++ class interface and the C++
1849
- `istream' input routines.
1778
+ Gerardo Ballabio wrote the 'gmpxx.h' C++ class interface and the C++
1779
+ 'istream' input routines.
1850
1780
 
1851
- Jason Moxham rewrote `mpz_fac_ui'.
1781
+ Jason Moxham rewrote 'mpz_fac_ui'.
1852
1782
 
1853
1783
  Pedro Gimeno implemented the Mersenne Twister and made other random
1854
1784
  number improvements.
1855
1785
 
1856
- Niels Mo"ller wrote the sub-quadratic GCD, extended GCD and jacobi
1857
- code, the quadratic Hensel division code, and (with Torbjo"rn) the new
1786
+ Niels M�ller wrote the sub-quadratic GCD, extended GCD and jacobi
1787
+ code, the quadratic Hensel division code, and (with Torbj�rn) the new
1858
1788
  divide and conquer division code for GMP 4.3. Niels also helped
1859
1789
  implement the new Toom multiply code for GMP 4.3 and implemented helper
1860
1790
  functions to simplify Toom evaluations for GMP 5.0. He wrote the
@@ -1865,35 +1795,35 @@ mini-gmp package used for gmp bootstrapping.
1865
1795
  strategy, and found the optimal strategies for evaluation and
1866
1796
  interpolation in Toom multiplication.
1867
1797
 
1868
- Marco Bodrato helped implement the new Toom multiply code for GMP
1869
- 4.3 and implemented most of the new Toom multiply and squaring code for
1870
- 5.0. He is the main author of the current mpn_mulmod_bnm1,
1871
- mpn_mullo_n, and mpn_sqrlo. Marco also wrote the functions mpn_invert
1872
- and mpn_invertappr, and improved the speed of integer root extraction.
1873
- He is the author of the current combinatorial functions: binomial,
1798
+ Marco Bodrato helped implement the new Toom multiply code for GMP 4.3
1799
+ and implemented most of the new Toom multiply and squaring code for 5.0.
1800
+ He is the main author of the current mpn_mulmod_bnm1, mpn_mullo_n, and
1801
+ mpn_sqrlo. Marco also wrote the functions mpn_invert and
1802
+ mpn_invertappr, and improved the speed of integer root extraction. He
1803
+ is the author of the current combinatorial functions: binomial,
1874
1804
  factorial, multifactorial, primorial.
1875
1805
 
1876
- David Harvey suggested the internal function `mpn_bdiv_dbm1',
1806
+ David Harvey suggested the internal function 'mpn_bdiv_dbm1',
1877
1807
  implementing division relevant to Toom multiplication. He also worked
1878
1808
  on fast assembly sequences, in particular on a fast AMD64
1879
- `mpn_mul_basecase'. He wrote the internal middle product functions
1880
- `mpn_mulmid_basecase', `mpn_toom42_mulmid', `mpn_mulmid_n' and related
1809
+ 'mpn_mul_basecase'. He wrote the internal middle product functions
1810
+ 'mpn_mulmid_basecase', 'mpn_toom42_mulmid', 'mpn_mulmid_n' and related
1881
1811
  helper routines.
1882
1812
 
1883
- Martin Boij wrote `mpn_perfect_power_p'.
1813
+ Martin Boij wrote 'mpn_perfect_power_p'.
1884
1814
 
1885
- Marc Glisse improved `gmpxx.h': use fewer temporaries (faster),
1886
- specializations of `numeric_limits' and `common_type', C++11 features
1815
+ Marc Glisse improved 'gmpxx.h': use fewer temporaries (faster),
1816
+ specializations of 'numeric_limits' and 'common_type', C++11 features
1887
1817
  (move constructors, explicit bool conversion, UDL), make the conversion
1888
- from `mpq_class' to `mpz_class' explicit, optimize operations where one
1889
- argument is a small compile-time constant, replace some heap
1890
- allocations by stack allocations. He also fixed the eofbit handling of
1891
- C++ streams, and removed one division from `mpq/aors.c'.
1818
+ from 'mpq_class' to 'mpz_class' explicit, optimize operations where one
1819
+ argument is a small compile-time constant, replace some heap allocations
1820
+ by stack allocations. He also fixed the eofbit handling of C++ streams,
1821
+ and removed one division from 'mpq/aors.c'.
1892
1822
 
1893
1823
  David S Miller wrote assembly code for SPARC T3 and T4.
1894
1824
 
1895
- Mark Sofroniou cleaned up the types of mul_fft.c, letting it work
1896
- for huge operands.
1825
+ Mark Sofroniou cleaned up the types of mul_fft.c, letting it work for
1826
+ huge operands.
1897
1827
 
1898
1828
  Ulrich Weigand ported GMP to the powerpc64le ABI.
1899
1829
 
@@ -1905,14 +1835,14 @@ have contributed to GMP but are not listed above, please tell
1905
1835
  supported in part by the ESPRIT-BRA (Basic Research Activities) 6846
1906
1836
  project POSSO (POlynomial System SOlving).
1907
1837
 
1908
- The development of GMP 2, 3, and 4.0 was supported in part by the
1909
- IDA Center for Computing Sciences.
1838
+ The development of GMP 2, 3, and 4.0 was supported in part by the IDA
1839
+ Center for Computing Sciences.
1910
1840
 
1911
- The development of GMP 4.3, 5.0, and 5.1 was supported in part by
1912
- the Swedish Foundation for Strategic Research.
1841
+ The development of GMP 4.3, 5.0, and 5.1 was supported in part by the
1842
+ Swedish Foundation for Strategic Research.
1913
1843
 
1914
- Thanks go to Hans Thorsen for donating an SGI system for the GMP
1915
- test system environment.
1844
+ Thanks go to Hans Thorsen for donating an SGI system for the GMP test
1845
+ system environment.
1916
1846
 
1917
1847
  
1918
1848
  File: gmp.info, Node: References, Next: GNU Free Documentation License, Prev: Contributors, Up: Top
@@ -1929,85 +1859,84 @@ B.1 Books
1929
1859
 
1930
1860
  * Richard Crandall and Carl Pomerance, "Prime Numbers: A
1931
1861
  Computational Perspective", 2nd edition, Springer-Verlag, 2005.
1932
- `http://www.math.dartmouth.edu/~carlp/'
1862
+ <http://www.math.dartmouth.edu/~carlp/>
1933
1863
 
1934
1864
  * Henri Cohen, "A Course in Computational Algebraic Number Theory",
1935
1865
  Graduate Texts in Mathematics number 138, Springer-Verlag, 1993.
1936
- `http://www.math.u-bordeaux.fr/~cohen/'
1866
+ <http://www.math.u-bordeaux.fr/~cohen/>
1937
1867
 
1938
1868
  * Donald E. Knuth, "The Art of Computer Programming", volume 2,
1939
1869
  "Seminumerical Algorithms", 3rd edition, Addison-Wesley, 1998.
1940
- `http://www-cs-faculty.stanford.edu/~knuth/taocp.html'
1870
+ <http://www-cs-faculty.stanford.edu/~knuth/taocp.html>
1941
1871
 
1942
1872
  * John D. Lipson, "Elements of Algebra and Algebraic Computing", The
1943
1873
  Benjamin Cummings Publishing Company Inc, 1981.
1944
1874
 
1945
1875
  * Alfred J. Menezes, Paul C. van Oorschot and Scott A. Vanstone,
1946
1876
  "Handbook of Applied Cryptography",
1947
- `http://www.cacr.math.uwaterloo.ca/hac/'
1877
+ <http://www.cacr.math.uwaterloo.ca/hac/>
1948
1878
 
1949
- * Richard M. Stallman and the GCC Developer Community, "Using the
1950
- GNU Compiler Collection", Free Software Foundation, 2008,
1951
- available online `https://gcc.gnu.org/onlinedocs/', and in the GCC
1952
- package `https://ftp.gnu.org/gnu/gcc/'
1879
+ * Richard M. Stallman and the GCC Developer Community, "Using the GNU
1880
+ Compiler Collection", Free Software Foundation, 2008, available
1881
+ online <https://gcc.gnu.org/onlinedocs/>, and in the GCC package
1882
+ <https://ftp.gnu.org/gnu/gcc/>
1953
1883
 
1954
1884
  B.2 Papers
1955
1885
  ==========
1956
1886
 
1957
1887
  * Yves Bertot, Nicolas Magaud and Paul Zimmermann, "A Proof of GMP
1958
1888
  Square Root", Journal of Automated Reasoning, volume 29, 2002, pp.
1959
- 225-252. Also available online as INRIA Research Report 4475,
1960
- June 2002, `http://hal.inria.fr/docs/00/07/21/13/PDF/RR-4475.pdf'
1889
+ 225-252. Also available online as INRIA Research Report 4475, June
1890
+ 2002, <http://hal.inria.fr/docs/00/07/21/13/PDF/RR-4475.pdf>
1961
1891
 
1962
1892
  * Christoph Burnikel and Joachim Ziegler, "Fast Recursive Division",
1963
1893
  Max-Planck-Institut fuer Informatik Research Report MPI-I-98-1-022,
1964
- `http://data.mpi-sb.mpg.de/internet/reports.nsf/NumberView/1998-1-022'
1894
+ <http://data.mpi-sb.mpg.de/internet/reports.nsf/NumberView/1998-1-022>
1965
1895
 
1966
- * Torbjo"rn Granlund and Peter L. Montgomery, "Division by Invariant
1896
+ * Torbj�rn Granlund and Peter L. Montgomery, "Division by Invariant
1967
1897
  Integers using Multiplication", in Proceedings of the SIGPLAN
1968
1898
  PLDI'94 Conference, June 1994. Also available
1969
- `https://gmplib.org/~tege/divcnst-pldi94.pdf'.
1899
+ <https://gmplib.org/~tege/divcnst-pldi94.pdf>.
1970
1900
 
1971
- * Niels Mo"ller and Torbjo"rn Granlund, "Improved division by
1972
- invariant integers", IEEE Transactions on Computers, 11 June 2010.
1973
- `https://gmplib.org/~tege/division-paper.pdf'
1901
+ * Niels M�ller and Torbj�rn Granlund, "Improved division by invariant
1902
+ integers", IEEE Transactions on Computers, 11 June 2010.
1903
+ <https://gmplib.org/~tege/division-paper.pdf>
1974
1904
 
1975
- * Torbjo"rn Granlund and Niels Mo"ller, "Division of integers large
1976
- and small", to appear.
1905
+ * Torbj�rn Granlund and Niels M�ller, "Division of integers large and
1906
+ small", to appear.
1977
1907
 
1978
1908
  * Tudor Jebelean, "An algorithm for exact division", Journal of
1979
1909
  Symbolic Computation, volume 15, 1993, pp. 169-180. Research
1980
1910
  report version available
1981
- `ftp://ftp.risc.uni-linz.ac.at/pub/techreports/1992/92-35.ps.gz'
1911
+ <ftp://ftp.risc.uni-linz.ac.at/pub/techreports/1992/92-35.ps.gz>
1982
1912
 
1983
1913
  * Tudor Jebelean, "Exact Division with Karatsuba Complexity -
1984
1914
  Extended Abstract", RISC-Linz technical report 96-31,
1985
- `ftp://ftp.risc.uni-linz.ac.at/pub/techreports/1996/96-31.ps.gz'
1915
+ <ftp://ftp.risc.uni-linz.ac.at/pub/techreports/1996/96-31.ps.gz>
1986
1916
 
1987
1917
  * Tudor Jebelean, "Practical Integer Division with Karatsuba
1988
1918
  Complexity", ISSAC 97, pp. 339-341. Technical report available
1989
- `ftp://ftp.risc.uni-linz.ac.at/pub/techreports/1996/96-29.ps.gz'
1919
+ <ftp://ftp.risc.uni-linz.ac.at/pub/techreports/1996/96-29.ps.gz>
1990
1920
 
1991
1921
  * Tudor Jebelean, "A Generalization of the Binary GCD Algorithm",
1992
1922
  ISSAC 93, pp. 111-116. Technical report version available
1993
- `ftp://ftp.risc.uni-linz.ac.at/pub/techreports/1993/93-01.ps.gz'
1923
+ <ftp://ftp.risc.uni-linz.ac.at/pub/techreports/1993/93-01.ps.gz>
1994
1924
 
1995
- * Tudor Jebelean, "A Double-Digit Lehmer-Euclid Algorithm for
1996
- Finding the GCD of Long Integers", Journal of Symbolic
1997
- Computation, volume 19, 1995, pp. 145-157. Technical report
1998
- version also available
1999
- `ftp://ftp.risc.uni-linz.ac.at/pub/techreports/1992/92-69.ps.gz'
1925
+ * Tudor Jebelean, "A Double-Digit Lehmer-Euclid Algorithm for Finding
1926
+ the GCD of Long Integers", Journal of Symbolic Computation, volume
1927
+ 19, 1995, pp. 145-157. Technical report version also available
1928
+ <ftp://ftp.risc.uni-linz.ac.at/pub/techreports/1992/92-69.ps.gz>
2000
1929
 
2001
1930
  * Werner Krandick and Tudor Jebelean, "Bidirectional Exact Integer
2002
1931
  Division", Journal of Symbolic Computation, volume 21, 1996, pp.
2003
1932
  441-455. Early technical report version also available
2004
- `ftp://ftp.risc.uni-linz.ac.at/pub/techreports/1994/94-50.ps.gz'
1933
+ <ftp://ftp.risc.uni-linz.ac.at/pub/techreports/1994/94-50.ps.gz>
2005
1934
 
2006
1935
  * Makoto Matsumoto and Takuji Nishimura, "Mersenne Twister: A
2007
1936
  623-dimensionally equidistributed uniform pseudorandom number
2008
1937
  generator", ACM Transactions on Modelling and Computer Simulation,
2009
1938
  volume 8, January 1998, pp. 3-30. Available online
2010
- `http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/ARTICLES/mt.ps.gz'
1939
+ <http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/ARTICLES/mt.ps.gz>
2011
1940
  (or .pdf)
2012
1941
 
2013
1942
  * R. Moenck and A. Borodin, "Fast Modular Transforms via Division",
@@ -2016,15 +1945,15 @@ B.2 Papers
2016
1945
  Modular Transforms", Journal of Computer and System Sciences,
2017
1946
  volume 8, number 3, June 1974, pp. 366-386.
2018
1947
 
2019
- * Niels Mo"ller, "On Scho"nhage's algorithm and subquadratic integer
2020
- GCD computation", in Mathematics of Computation, volume 77,
2021
- January 2008, pp. 589-607.
1948
+ * Niels M�ller, "On Sch�nhage's algorithm and subquadratic integer
1949
+ GCD computation", in Mathematics of Computation, volume 77, January
1950
+ 2008, pp. 589-607.
2022
1951
 
2023
1952
  * Peter L. Montgomery, "Modular Multiplication Without Trial
2024
1953
  Division", in Mathematics of Computation, volume 44, number 170,
2025
1954
  April 1985.
2026
1955
 
2027
- * Arnold Scho"nhage and Volker Strassen, "Schnelle Multiplikation
1956
+ * Arnold Sch�nhage and Volker Strassen, "Schnelle Multiplikation
2028
1957
  grosser Zahlen", Computing 7, 1971, pp. 281-292.
2029
1958
 
2030
1959
  * Kenneth Weber, "The accelerated integer GCD algorithm", ACM
@@ -2033,11 +1962,11 @@ B.2 Papers
2033
1962
 
2034
1963
  * Paul Zimmermann, "Karatsuba Square Root", INRIA Research Report
2035
1964
  3805, November 1999,
2036
- `http://hal.inria.fr/inria-00072854/PDF/RR-3805.pdf'
1965
+ <http://hal.inria.fr/inria-00072854/PDF/RR-3805.pdf>
2037
1966
 
2038
1967
  * Paul Zimmermann, "A Proof of GMP Fast Division and Square Root
2039
1968
  Implementations",
2040
- `http://www.loria.fr/~zimmerma/papers/proof-div-sqrt.ps.gz'
1969
+ <http://www.loria.fr/~zimmerma/papers/proof-div-sqrt.ps.gz>
2041
1970
 
2042
1971
  * Dan Zuras, "On Squaring and Multiplying Large Integers", ARITH-11:
2043
1972
  IEEE Symposium on Computer Arithmetic, 1993, pp. 260 to 271.
@@ -2053,8 +1982,8 @@ Appendix C GNU Free Documentation License
2053
1982
 
2054
1983
  Version 1.3, 3 November 2008
2055
1984
 
2056
- Copyright (C) 2000-2002, 2007, 2008 Free Software Foundation, Inc.
2057
- `http://fsf.org/'
1985
+ Copyright 2000-2002, 2007, 2008 Free Software Foundation, Inc.
1986
+ <http://fsf.org/>
2058
1987
 
2059
1988
  Everyone is permitted to copy and distribute verbatim copies
2060
1989
  of this license document, but changing it is not allowed.
@@ -2079,21 +2008,21 @@ Appendix C GNU Free Documentation License
2079
2008
  free program should come with manuals providing the same freedoms
2080
2009
  that the software does. But this License is not limited to
2081
2010
  software manuals; it can be used for any textual work, regardless
2082
- of subject matter or whether it is published as a printed book.
2083
- We recommend this License principally for works whose purpose is
2011
+ of subject matter or whether it is published as a printed book. We
2012
+ recommend this License principally for works whose purpose is
2084
2013
  instruction or reference.
2085
2014
 
2086
2015
  1. APPLICABILITY AND DEFINITIONS
2087
2016
 
2088
2017
  This License applies to any manual or other work, in any medium,
2089
- that contains a notice placed by the copyright holder saying it
2090
- can be distributed under the terms of this License. Such a notice
2018
+ that contains a notice placed by the copyright holder saying it can
2019
+ be distributed under the terms of this License. Such a notice
2091
2020
  grants a world-wide, royalty-free license, unlimited in duration,
2092
2021
  to use that work under the conditions stated herein. The
2093
2022
  "Document", below, refers to any such manual or work. Any member
2094
- of the public is a licensee, and is addressed as "you". You
2095
- accept the license if you copy, modify or distribute the work in a
2096
- way requiring permission under copyright law.
2023
+ of the public is a licensee, and is addressed as "you". You accept
2024
+ the license if you copy, modify or distribute the work in a way
2025
+ requiring permission under copyright law.
2097
2026
 
2098
2027
  A "Modified Version" of the Document means any work containing the
2099
2028
  Document or a portion of it, either copied verbatim, or with
@@ -2111,12 +2040,12 @@ Appendix C GNU Free Documentation License
2111
2040
  regarding them.
2112
2041
 
2113
2042
  The "Invariant Sections" are certain Secondary Sections whose
2114
- titles are designated, as being those of Invariant Sections, in
2115
- the notice that says that the Document is released under this
2116
- License. If a section does not fit the above definition of
2117
- Secondary then it is not allowed to be designated as Invariant.
2118
- The Document may contain zero Invariant Sections. If the Document
2119
- does not identify any Invariant Sections then there are none.
2043
+ titles are designated, as being those of Invariant Sections, in the
2044
+ notice that says that the Document is released under this License.
2045
+ If a section does not fit the above definition of Secondary then it
2046
+ is not allowed to be designated as Invariant. The Document may
2047
+ contain zero Invariant Sections. If the Document does not identify
2048
+ any Invariant Sections then there are none.
2120
2049
 
2121
2050
  The "Cover Texts" are certain short passages of text that are
2122
2051
  listed, as Front-Cover Texts or Back-Cover Texts, in the notice
@@ -2127,27 +2056,27 @@ Appendix C GNU Free Documentation License
2127
2056
  A "Transparent" copy of the Document means a machine-readable copy,
2128
2057
  represented in a format whose specification is available to the
2129
2058
  general public, that is suitable for revising the document
2130
- straightforwardly with generic text editors or (for images
2131
- composed of pixels) generic paint programs or (for drawings) some
2132
- widely available drawing editor, and that is suitable for input to
2133
- text formatters or for automatic translation to a variety of
2134
- formats suitable for input to text formatters. A copy made in an
2135
- otherwise Transparent file format whose markup, or absence of
2136
- markup, has been arranged to thwart or discourage subsequent
2137
- modification by readers is not Transparent. An image format is
2138
- not Transparent if used for any substantial amount of text. A
2139
- copy that is not "Transparent" is called "Opaque".
2059
+ straightforwardly with generic text editors or (for images composed
2060
+ of pixels) generic paint programs or (for drawings) some widely
2061
+ available drawing editor, and that is suitable for input to text
2062
+ formatters or for automatic translation to a variety of formats
2063
+ suitable for input to text formatters. A copy made in an otherwise
2064
+ Transparent file format whose markup, or absence of markup, has
2065
+ been arranged to thwart or discourage subsequent modification by
2066
+ readers is not Transparent. An image format is not Transparent if
2067
+ used for any substantial amount of text. A copy that is not
2068
+ "Transparent" is called "Opaque".
2140
2069
 
2141
2070
  Examples of suitable formats for Transparent copies include plain
2142
2071
  ASCII without markup, Texinfo input format, LaTeX input format,
2143
- SGML or XML using a publicly available DTD, and
2144
- standard-conforming simple HTML, PostScript or PDF designed for
2145
- human modification. Examples of transparent image formats include
2146
- PNG, XCF and JPG. Opaque formats include proprietary formats that
2147
- can be read and edited only by proprietary word processors, SGML or
2148
- XML for which the DTD and/or processing tools are not generally
2149
- available, and the machine-generated HTML, PostScript or PDF
2150
- produced by some word processors for output purposes only.
2072
+ SGML or XML using a publicly available DTD, and standard-conforming
2073
+ simple HTML, PostScript or PDF designed for human modification.
2074
+ Examples of transparent image formats include PNG, XCF and JPG.
2075
+ Opaque formats include proprietary formats that can be read and
2076
+ edited only by proprietary word processors, SGML or XML for which
2077
+ the DTD and/or processing tools are not generally available, and
2078
+ the machine-generated HTML, PostScript or PDF produced by some word
2079
+ processors for output purposes only.
2151
2080
 
2152
2081
  The "Title Page" means, for a printed book, the title page itself,
2153
2082
  plus such following pages as are needed to hold, legibly, the
@@ -2185,8 +2114,8 @@ Appendix C GNU Free Documentation License
2185
2114
  may not use technical measures to obstruct or control the reading
2186
2115
  or further copying of the copies you make or distribute. However,
2187
2116
  you may accept compensation in exchange for copies. If you
2188
- distribute a large enough number of copies you must also follow
2189
- the conditions in section 3.
2117
+ distribute a large enough number of copies you must also follow the
2118
+ conditions in section 3.
2190
2119
 
2191
2120
  You may also lend copies, under the same conditions stated above,
2192
2121
  and you may publicly display copies.
@@ -2200,12 +2129,11 @@ Appendix C GNU Free Documentation License
2200
2129
  these Cover Texts: Front-Cover Texts on the front cover, and
2201
2130
  Back-Cover Texts on the back cover. Both covers must also clearly
2202
2131
  and legibly identify you as the publisher of these copies. The
2203
- front cover must present the full title with all words of the
2204
- title equally prominent and visible. You may add other material
2205
- on the covers in addition. Copying with changes limited to the
2206
- covers, as long as they preserve the title of the Document and
2207
- satisfy these conditions, can be treated as verbatim copying in
2208
- other respects.
2132
+ front cover must present the full title with all words of the title
2133
+ equally prominent and visible. You may add other material on the
2134
+ covers in addition. Copying with changes limited to the covers, as
2135
+ long as they preserve the title of the Document and satisfy these
2136
+ conditions, can be treated as verbatim copying in other respects.
2209
2137
 
2210
2138
  If the required texts for either cover are too voluminous to fit
2211
2139
  legibly, you should put the first ones listed (as many as fit
@@ -2213,40 +2141,39 @@ Appendix C GNU Free Documentation License
2213
2141
  adjacent pages.
2214
2142
 
2215
2143
  If you publish or distribute Opaque copies of the Document
2216
- numbering more than 100, you must either include a
2217
- machine-readable Transparent copy along with each Opaque copy, or
2218
- state in or with each Opaque copy a computer-network location from
2219
- which the general network-using public has access to download
2220
- using public-standard network protocols a complete Transparent
2221
- copy of the Document, free of added material. If you use the
2222
- latter option, you must take reasonably prudent steps, when you
2223
- begin distribution of Opaque copies in quantity, to ensure that
2224
- this Transparent copy will remain thus accessible at the stated
2225
- location until at least one year after the last time you
2226
- distribute an Opaque copy (directly or through your agents or
2227
- retailers) of that edition to the public.
2144
+ numbering more than 100, you must either include a machine-readable
2145
+ Transparent copy along with each Opaque copy, or state in or with
2146
+ each Opaque copy a computer-network location from which the general
2147
+ network-using public has access to download using public-standard
2148
+ network protocols a complete Transparent copy of the Document, free
2149
+ of added material. If you use the latter option, you must take
2150
+ reasonably prudent steps, when you begin distribution of Opaque
2151
+ copies in quantity, to ensure that this Transparent copy will
2152
+ remain thus accessible at the stated location until at least one
2153
+ year after the last time you distribute an Opaque copy (directly or
2154
+ through your agents or retailers) of that edition to the public.
2228
2155
 
2229
2156
  It is requested, but not required, that you contact the authors of
2230
- the Document well before redistributing any large number of
2231
- copies, to give them a chance to provide you with an updated
2232
- version of the Document.
2157
+ the Document well before redistributing any large number of copies,
2158
+ to give them a chance to provide you with an updated version of the
2159
+ Document.
2233
2160
 
2234
2161
  4. MODIFICATIONS
2235
2162
 
2236
2163
  You may copy and distribute a Modified Version of the Document
2237
2164
  under the conditions of sections 2 and 3 above, provided that you
2238
- release the Modified Version under precisely this License, with
2239
- the Modified Version filling the role of the Document, thus
2240
- licensing distribution and modification of the Modified Version to
2241
- whoever possesses a copy of it. In addition, you must do these
2242
- things in the Modified Version:
2165
+ release the Modified Version under precisely this License, with the
2166
+ Modified Version filling the role of the Document, thus licensing
2167
+ distribution and modification of the Modified Version to whoever
2168
+ possesses a copy of it. In addition, you must do these things in
2169
+ the Modified Version:
2243
2170
 
2244
2171
  A. Use in the Title Page (and on the covers, if any) a title
2245
- distinct from that of the Document, and from those of
2246
- previous versions (which should, if there were any, be listed
2247
- in the History section of the Document). You may use the
2248
- same title as a previous version if the original publisher of
2249
- that version gives permission.
2172
+ distinct from that of the Document, and from those of previous
2173
+ versions (which should, if there were any, be listed in the
2174
+ History section of the Document). You may use the same title
2175
+ as a previous version if the original publisher of that
2176
+ version gives permission.
2250
2177
 
2251
2178
  B. List on the Title Page, as authors, one or more persons or
2252
2179
  entities responsible for authorship of the modifications in
@@ -2276,31 +2203,30 @@ Appendix C GNU Free Documentation License
2276
2203
 
2277
2204
  I. Preserve the section Entitled "History", Preserve its Title,
2278
2205
  and add to it an item stating at least the title, year, new
2279
- authors, and publisher of the Modified Version as given on
2280
- the Title Page. If there is no section Entitled "History" in
2281
- the Document, create one stating the title, year, authors,
2282
- and publisher of the Document as given on its Title Page,
2283
- then add an item describing the Modified Version as stated in
2284
- the previous sentence.
2206
+ authors, and publisher of the Modified Version as given on the
2207
+ Title Page. If there is no section Entitled "History" in the
2208
+ Document, create one stating the title, year, authors, and
2209
+ publisher of the Document as given on its Title Page, then add
2210
+ an item describing the Modified Version as stated in the
2211
+ previous sentence.
2285
2212
 
2286
2213
  J. Preserve the network location, if any, given in the Document
2287
2214
  for public access to a Transparent copy of the Document, and
2288
2215
  likewise the network locations given in the Document for
2289
- previous versions it was based on. These may be placed in
2290
- the "History" section. You may omit a network location for a
2291
- work that was published at least four years before the
2292
- Document itself, or if the original publisher of the version
2293
- it refers to gives permission.
2216
+ previous versions it was based on. These may be placed in the
2217
+ "History" section. You may omit a network location for a work
2218
+ that was published at least four years before the Document
2219
+ itself, or if the original publisher of the version it refers
2220
+ to gives permission.
2294
2221
 
2295
2222
  K. For any section Entitled "Acknowledgements" or "Dedications",
2296
- Preserve the Title of the section, and preserve in the
2297
- section all the substance and tone of each of the contributor
2223
+ Preserve the Title of the section, and preserve in the section
2224
+ all the substance and tone of each of the contributor
2298
2225
  acknowledgements and/or dedications given therein.
2299
2226
 
2300
- L. Preserve all the Invariant Sections of the Document,
2301
- unaltered in their text and in their titles. Section numbers
2302
- or the equivalent are not considered part of the section
2303
- titles.
2227
+ L. Preserve all the Invariant Sections of the Document, unaltered
2228
+ in their text and in their titles. Section numbers or the
2229
+ equivalent are not considered part of the section titles.
2304
2230
 
2305
2231
  M. Delete any section Entitled "Endorsements". Such a section
2306
2232
  may not be included in the Modified Version.
@@ -2313,11 +2239,11 @@ Appendix C GNU Free Documentation License
2313
2239
 
2314
2240
  If the Modified Version includes new front-matter sections or
2315
2241
  appendices that qualify as Secondary Sections and contain no
2316
- material copied from the Document, you may at your option
2317
- designate some or all of these sections as invariant. To do this,
2318
- add their titles to the list of Invariant Sections in the Modified
2319
- Version's license notice. These titles must be distinct from any
2320
- other section titles.
2242
+ material copied from the Document, you may at your option designate
2243
+ some or all of these sections as invariant. To do this, add their
2244
+ titles to the list of Invariant Sections in the Modified Version's
2245
+ license notice. These titles must be distinct from any other
2246
+ section titles.
2321
2247
 
2322
2248
  You may add a section Entitled "Endorsements", provided it contains
2323
2249
  nothing but endorsements of your Modified Version by various
@@ -2326,15 +2252,15 @@ Appendix C GNU Free Documentation License
2326
2252
  definition of a standard.
2327
2253
 
2328
2254
  You may add a passage of up to five words as a Front-Cover Text,
2329
- and a passage of up to 25 words as a Back-Cover Text, to the end
2330
- of the list of Cover Texts in the Modified Version. Only one
2331
- passage of Front-Cover Text and one of Back-Cover Text may be
2332
- added by (or through arrangements made by) any one entity. If the
2333
- Document already includes a cover text for the same cover,
2334
- previously added by you or by arrangement made by the same entity
2335
- you are acting on behalf of, you may not add another; but you may
2336
- replace the old one, on explicit permission from the previous
2337
- publisher that added the old one.
2255
+ and a passage of up to 25 words as a Back-Cover Text, to the end of
2256
+ the list of Cover Texts in the Modified Version. Only one passage
2257
+ of Front-Cover Text and one of Back-Cover Text may be added by (or
2258
+ through arrangements made by) any one entity. If the Document
2259
+ already includes a cover text for the same cover, previously added
2260
+ by you or by arrangement made by the same entity you are acting on
2261
+ behalf of, you may not add another; but you may replace the old
2262
+ one, on explicit permission from the previous publisher that added
2263
+ the old one.
2338
2264
 
2339
2265
  The author(s) and publisher(s) of the Document do not by this
2340
2266
  License give permission to use their names for publicity for or to
@@ -2344,8 +2270,8 @@ Appendix C GNU Free Documentation License
2344
2270
 
2345
2271
  You may combine the Document with other documents released under
2346
2272
  this License, under the terms defined in section 4 above for
2347
- modified versions, provided that you include in the combination
2348
- all of the Invariant Sections of all of the original documents,
2273
+ modified versions, provided that you include in the combination all
2274
+ of the Invariant Sections of all of the original documents,
2349
2275
  unmodified, and list them all as Invariant Sections of your
2350
2276
  combined work in its license notice, and that you preserve all
2351
2277
  their Warranty Disclaimers.
@@ -2372,20 +2298,20 @@ Appendix C GNU Free Documentation License
2372
2298
  documents released under this License, and replace the individual
2373
2299
  copies of this License in the various documents with a single copy
2374
2300
  that is included in the collection, provided that you follow the
2375
- rules of this License for verbatim copying of each of the
2376
- documents in all other respects.
2301
+ rules of this License for verbatim copying of each of the documents
2302
+ in all other respects.
2377
2303
 
2378
2304
  You may extract a single document from such a collection, and
2379
2305
  distribute it individually under this License, provided you insert
2380
- a copy of this License into the extracted document, and follow
2381
- this License in all other respects regarding verbatim copying of
2382
- that document.
2306
+ a copy of this License into the extracted document, and follow this
2307
+ License in all other respects regarding verbatim copying of that
2308
+ document.
2383
2309
 
2384
2310
  7. AGGREGATION WITH INDEPENDENT WORKS
2385
2311
 
2386
2312
  A compilation of the Document or its derivatives with other
2387
- separate and independent documents or works, in or on a volume of
2388
- a storage or distribution medium, is called an "aggregate" if the
2313
+ separate and independent documents or works, in or on a volume of a
2314
+ storage or distribution medium, is called an "aggregate" if the
2389
2315
  copyright resulting from the compilation is not used to limit the
2390
2316
  legal rights of the compilation's users beyond what the individual
2391
2317
  works permit. When the Document is included in an aggregate, this
@@ -2430,8 +2356,8 @@ Appendix C GNU Free Documentation License
2430
2356
 
2431
2357
  However, if you cease all violation of this License, then your
2432
2358
  license from a particular copyright holder is reinstated (a)
2433
- provisionally, unless and until the copyright holder explicitly
2434
- and finally terminates your license, and (b) permanently, if the
2359
+ provisionally, unless and until the copyright holder explicitly and
2360
+ finally terminates your license, and (b) permanently, if the
2435
2361
  copyright holder fails to notify you of the violation by some
2436
2362
  reasonable means prior to 60 days after the cessation.
2437
2363
 
@@ -2443,33 +2369,33 @@ Appendix C GNU Free Documentation License
2443
2369
  after your receipt of the notice.
2444
2370
 
2445
2371
  Termination of your rights under this section does not terminate
2446
- the licenses of parties who have received copies or rights from
2447
- you under this License. If your rights have been terminated and
2448
- not permanently reinstated, receipt of a copy of some or all of
2449
- the same material does not give you any rights to use it.
2372
+ the licenses of parties who have received copies or rights from you
2373
+ under this License. If your rights have been terminated and not
2374
+ permanently reinstated, receipt of a copy of some or all of the
2375
+ same material does not give you any rights to use it.
2450
2376
 
2451
- 10. FUTURE REVISIONS OF THIS LICENSE
2377
+ 10. FUTURE REVISIONS OF THIS LICENSE
2452
2378
 
2453
2379
  The Free Software Foundation may publish new, revised versions of
2454
2380
  the GNU Free Documentation License from time to time. Such new
2455
2381
  versions will be similar in spirit to the present version, but may
2456
2382
  differ in detail to address new problems or concerns. See
2457
- `https://www.gnu.org/copyleft/'.
2383
+ <https://www.gnu.org/copyleft/>.
2458
2384
 
2459
2385
  Each version of the License is given a distinguishing version
2460
2386
  number. If the Document specifies that a particular numbered
2461
2387
  version of this License "or any later version" applies to it, you
2462
2388
  have the option of following the terms and conditions either of
2463
2389
  that specified version or of any later version that has been
2464
- published (not as a draft) by the Free Software Foundation. If
2465
- the Document does not specify a version number of this License,
2466
- you may choose any version ever published (not as a draft) by the
2467
- Free Software Foundation. If the Document specifies that a proxy
2468
- can decide which future versions of this License can be used, that
2390
+ published (not as a draft) by the Free Software Foundation. If the
2391
+ Document does not specify a version number of this License, you may
2392
+ choose any version ever published (not as a draft) by the Free
2393
+ Software Foundation. If the Document specifies that a proxy can
2394
+ decide which future versions of this License can be used, that
2469
2395
  proxy's public statement of acceptance of a version permanently
2470
2396
  authorizes you to choose that version for the Document.
2471
2397
 
2472
- 11. RELICENSING
2398
+ 11. RELICENSING
2473
2399
 
2474
2400
  "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
2475
2401
  World Wide Web server that publishes copyrightable works and also
@@ -2499,7 +2425,6 @@ Appendix C GNU Free Documentation License
2499
2425
  site under CC-BY-SA on the same site at any time before August 1,
2500
2426
  2009, provided the MMC is eligible for relicensing.
2501
2427
 
2502
-
2503
2428
  ADDENDUM: How to use this License for your documents
2504
2429
  ====================================================
2505
2430
 
@@ -2516,7 +2441,7 @@ notices just after the title page:
2516
2441
  Free Documentation License''.
2517
2442
 
2518
2443
  If you have Invariant Sections, Front-Cover Texts and Back-Cover
2519
- Texts, replace the "with...Texts." line with this:
2444
+ Texts, replace the "with...Texts." line with this:
2520
2445
 
2521
2446
  with the Invariant Sections being LIST THEIR TITLES, with
2522
2447
  the Front-Cover Texts being LIST, and with the Back-Cover Texts
@@ -2527,9 +2452,9 @@ combination of the three, merge those two alternatives to suit the
2527
2452
  situation.
2528
2453
 
2529
2454
  If your document contains nontrivial examples of program code, we
2530
- recommend releasing these examples in parallel under your choice of
2531
- free software license, such as the GNU General Public License, to
2532
- permit their use in free software.
2455
+ recommend releasing these examples in parallel under your choice of free
2456
+ software license, such as the GNU General Public License, to permit
2457
+ their use in free software.
2533
2458
 
2534
2459
  
2535
2460
  File: gmp.info, Node: Concept Index, Next: Function Index, Prev: GNU Free Documentation License, Up: Top
@@ -2542,18 +2467,18 @@ Concept Index
2542
2467
 
2543
2468
  * #include: Headers and Libraries.
2544
2469
  (line 6)
2545
- * --build: Build Options. (line 52)
2546
- * --disable-fft: Build Options. (line 313)
2547
- * --disable-shared: Build Options. (line 45)
2548
- * --disable-static: Build Options. (line 45)
2549
- * --enable-alloca: Build Options. (line 274)
2550
- * --enable-assert: Build Options. (line 319)
2551
- * --enable-cxx: Build Options. (line 226)
2552
- * --enable-fat: Build Options. (line 161)
2553
- * --enable-profiling <1>: Build Options. (line 323)
2554
- * --enable-profiling: Profiling. (line 6)
2470
+ * --build: Build Options. (line 51)
2471
+ * --disable-fft: Build Options. (line 307)
2472
+ * --disable-shared: Build Options. (line 44)
2473
+ * --disable-static: Build Options. (line 44)
2474
+ * --enable-alloca: Build Options. (line 273)
2475
+ * --enable-assert: Build Options. (line 313)
2476
+ * --enable-cxx: Build Options. (line 225)
2477
+ * --enable-fat: Build Options. (line 160)
2478
+ * --enable-profiling: Build Options. (line 317)
2479
+ * --enable-profiling <1>: Profiling. (line 6)
2555
2480
  * --exec-prefix: Build Options. (line 32)
2556
- * --host: Build Options. (line 66)
2481
+ * --host: Build Options. (line 65)
2557
2482
  * --prefix: Build Options. (line 32)
2558
2483
  * -finstrument-functions: Profiling. (line 66)
2559
2484
  * 2exp functions: Efficiency. (line 43)
@@ -2561,22 +2486,22 @@ Concept Index
2561
2486
  (line 94)
2562
2487
  * 80x86: Notes for Particular Systems.
2563
2488
  (line 150)
2564
- * ABI <1>: Build Options. (line 168)
2565
- * ABI: ABI and ISA. (line 6)
2489
+ * ABI: Build Options. (line 167)
2490
+ * ABI <1>: ABI and ISA. (line 6)
2566
2491
  * About this manual: Introduction to GMP. (line 57)
2567
2492
  * AC_CHECK_LIB: Autoconf. (line 11)
2493
+ * AIX: ABI and ISA. (line 174)
2568
2494
  * AIX <1>: Notes for Particular Systems.
2569
2495
  (line 7)
2570
- * AIX: ABI and ISA. (line 178)
2571
2496
  * Algorithms: Algorithms. (line 6)
2572
- * alloca: Build Options. (line 274)
2497
+ * alloca: Build Options. (line 273)
2573
2498
  * Allocation of memory: Custom Allocation. (line 6)
2574
2499
  * AMD64: ABI and ISA. (line 44)
2575
2500
  * Anonymous FTP of latest version: Introduction to GMP. (line 37)
2576
2501
  * Application Binary Interface: ABI and ISA. (line 6)
2502
+ * Arithmetic functions: Integer Arithmetic. (line 6)
2577
2503
  * Arithmetic functions <1>: Rational Arithmetic. (line 6)
2578
2504
  * Arithmetic functions <2>: Float Arithmetic. (line 6)
2579
- * Arithmetic functions: Integer Arithmetic. (line 6)
2580
2505
  * ARM: Notes for Particular Systems.
2581
2506
  (line 20)
2582
2507
  * Assembly cache handling: Assembly Cache Handling.
@@ -2596,16 +2521,16 @@ Concept Index
2596
2521
  (line 6)
2597
2522
  * Assembly writing guide: Assembly Writing Guide.
2598
2523
  (line 6)
2599
- * Assertion checking <1>: Debugging. (line 79)
2600
- * Assertion checking: Build Options. (line 319)
2601
- * Assignment functions <1>: Assigning Integers. (line 6)
2602
- * Assignment functions <2>: Initializing Rationals.
2524
+ * Assertion checking: Build Options. (line 313)
2525
+ * Assertion checking <1>: Debugging. (line 78)
2526
+ * Assignment functions: Assigning Integers. (line 6)
2527
+ * Assignment functions <1>: Simultaneous Integer Init & Assign.
2603
2528
  (line 6)
2604
- * Assignment functions <3>: Simultaneous Float Init & Assign.
2529
+ * Assignment functions <2>: Initializing Rationals.
2605
2530
  (line 6)
2606
- * Assignment functions <4>: Simultaneous Integer Init & Assign.
2531
+ * Assignment functions <3>: Assigning Floats. (line 6)
2532
+ * Assignment functions <4>: Simultaneous Float Init & Assign.
2607
2533
  (line 6)
2608
- * Assignment functions: Assigning Floats. (line 6)
2609
2534
  * Autoconf: Autoconf. (line 6)
2610
2535
  * Basics: GMP Basics. (line 6)
2611
2536
  * Binomial coefficient algorithm: Binomial Coefficients Algorithm.
@@ -2617,9 +2542,9 @@ Concept Index
2617
2542
  * Bit manipulation functions: Integer Logic and Bit Fiddling.
2618
2543
  (line 6)
2619
2544
  * Bit scanning functions: Integer Logic and Bit Fiddling.
2620
- (line 40)
2545
+ (line 39)
2621
2546
  * Bit shift left: Integer Arithmetic. (line 38)
2622
- * Bit shift right: Integer Division. (line 62)
2547
+ * Bit shift right: Integer Division. (line 74)
2623
2548
  * Bits per limb: Useful Macros and Constants.
2624
2549
  (line 7)
2625
2550
  * Bug reporting: Reporting Bugs. (line 6)
@@ -2631,36 +2556,36 @@ Concept Index
2631
2556
  * Build options: Build Options. (line 6)
2632
2557
  * Build problems known: Known Build Problems.
2633
2558
  (line 6)
2634
- * Build system: Build Options. (line 52)
2559
+ * Build system: Build Options. (line 51)
2635
2560
  * Building GMP: Installing GMP. (line 6)
2636
2561
  * Bus error: Debugging. (line 7)
2637
- * C compiler: Build Options. (line 179)
2638
- * C++ compiler: Build Options. (line 250)
2562
+ * C compiler: Build Options. (line 178)
2563
+ * C++ compiler: Build Options. (line 249)
2639
2564
  * C++ interface: C++ Class Interface. (line 6)
2640
2565
  * C++ interface internals: C++ Interface Internals.
2641
2566
  (line 6)
2642
2567
  * C++ istream input: C++ Formatted Input. (line 6)
2643
2568
  * C++ ostream output: C++ Formatted Output.
2644
2569
  (line 6)
2645
- * C++ support: Build Options. (line 226)
2646
- * CC: Build Options. (line 179)
2647
- * CC_FOR_BUILD: Build Options. (line 213)
2648
- * CFLAGS: Build Options. (line 179)
2649
- * Checker: Debugging. (line 115)
2650
- * checkergcc: Debugging. (line 122)
2570
+ * C++ support: Build Options. (line 225)
2571
+ * CC: Build Options. (line 178)
2572
+ * CC_FOR_BUILD: Build Options. (line 212)
2573
+ * CFLAGS: Build Options. (line 178)
2574
+ * Checker: Debugging. (line 114)
2575
+ * checkergcc: Debugging. (line 121)
2651
2576
  * Code organisation: Assembly Code Organisation.
2652
2577
  (line 6)
2653
2578
  * Compaq C++: Notes for Particular Systems.
2654
2579
  (line 25)
2655
- * Comparison functions <1>: Integer Comparisons. (line 6)
2580
+ * Comparison functions: Integer Comparisons. (line 6)
2581
+ * Comparison functions <1>: Comparing Rationals. (line 6)
2656
2582
  * Comparison functions <2>: Float Comparison. (line 6)
2657
- * Comparison functions: Comparing Rationals. (line 6)
2658
2583
  * Compatibility with older versions: Compatibility with older versions.
2659
2584
  (line 6)
2660
2585
  * Conditions for copying GNU MP: Copying. (line 6)
2661
2586
  * Configuring GMP: Installing GMP. (line 6)
2662
2587
  * Congruence algorithm: Exact Remainder. (line 30)
2663
- * Congruence functions: Integer Division. (line 137)
2588
+ * Congruence functions: Integer Division. (line 150)
2664
2589
  * Constants: Useful Macros and Constants.
2665
2590
  (line 6)
2666
2591
  * Contributors: Contributors. (line 6)
@@ -2668,19 +2593,19 @@ Concept Index
2668
2593
  (line 6)
2669
2594
  * Conventions for variables: Variable Conventions.
2670
2595
  (line 6)
2671
- * Conversion functions <1>: Converting Integers. (line 6)
2672
- * Conversion functions <2>: Converting Floats. (line 6)
2673
- * Conversion functions: Rational Conversions.
2596
+ * Conversion functions: Converting Integers. (line 6)
2597
+ * Conversion functions <1>: Rational Conversions.
2674
2598
  (line 6)
2599
+ * Conversion functions <2>: Converting Floats. (line 6)
2675
2600
  * Copying conditions: Copying. (line 6)
2676
- * CPPFLAGS: Build Options. (line 205)
2677
- * CPU types <1>: Introduction to GMP. (line 24)
2678
- * CPU types: Build Options. (line 108)
2679
- * Cross compiling: Build Options. (line 66)
2601
+ * CPPFLAGS: Build Options. (line 204)
2602
+ * CPU types: Introduction to GMP. (line 24)
2603
+ * CPU types <1>: Build Options. (line 107)
2604
+ * Cross compiling: Build Options. (line 65)
2680
2605
  * Cryptography functions, low-level: Low-level Functions. (line 507)
2681
2606
  * Custom allocation: Custom Allocation. (line 6)
2682
- * CXX: Build Options. (line 250)
2683
- * CXXFLAGS: Build Options. (line 250)
2607
+ * CXX: Build Options. (line 249)
2608
+ * CXXFLAGS: Build Options. (line 249)
2684
2609
  * Cygwin: Notes for Particular Systems.
2685
2610
  (line 57)
2686
2611
  * Darwin: Known Build Problems.
@@ -2691,39 +2616,44 @@ Concept Index
2691
2616
  * Digits in an integer: Miscellaneous Integer Functions.
2692
2617
  (line 23)
2693
2618
  * Divisibility algorithm: Exact Remainder. (line 30)
2694
- * Divisibility functions: Integer Division. (line 137)
2619
+ * Divisibility functions: Integer Division. (line 136)
2620
+ * Divisibility functions <1>: Integer Division. (line 150)
2695
2621
  * Divisibility testing: Efficiency. (line 91)
2696
2622
  * Division algorithms: Division Algorithms. (line 6)
2623
+ * Division functions: Integer Division. (line 6)
2697
2624
  * Division functions <1>: Rational Arithmetic. (line 24)
2698
- * Division functions <2>: Integer Division. (line 6)
2699
- * Division functions: Float Arithmetic. (line 33)
2700
- * DJGPP <1>: Notes for Particular Systems.
2625
+ * Division functions <2>: Float Arithmetic. (line 33)
2626
+ * DJGPP: Notes for Particular Systems.
2701
2627
  (line 57)
2702
- * DJGPP: Known Build Problems.
2628
+ * DJGPP <1>: Known Build Problems.
2703
2629
  (line 18)
2704
2630
  * DLLs: Notes for Particular Systems.
2705
2631
  (line 70)
2706
- * DocBook: Build Options. (line 346)
2707
- * Documentation formats: Build Options. (line 339)
2632
+ * DocBook: Build Options. (line 340)
2633
+ * Documentation formats: Build Options. (line 333)
2708
2634
  * Documentation license: GNU Free Documentation License.
2709
2635
  (line 6)
2710
- * DVI: Build Options. (line 342)
2636
+ * DVI: Build Options. (line 336)
2711
2637
  * Efficiency: Efficiency. (line 6)
2712
2638
  * Emacs: Emacs. (line 6)
2713
- * Exact division functions: Integer Division. (line 112)
2639
+ * Exact division functions: Integer Division. (line 125)
2714
2640
  * Exact remainder: Exact Remainder. (line 6)
2715
2641
  * Example programs: Demonstration Programs.
2716
2642
  (line 6)
2717
2643
  * Exec prefix: Build Options. (line 32)
2718
- * Execution profiling <1>: Build Options. (line 323)
2719
- * Execution profiling: Profiling. (line 6)
2720
- * Exponentiation functions <1>: Float Arithmetic. (line 41)
2644
+ * Execution profiling: Build Options. (line 317)
2645
+ * Execution profiling <1>: Profiling. (line 6)
2721
2646
  * Exponentiation functions: Integer Exponentiation.
2722
2647
  (line 6)
2648
+ * Exponentiation functions <1>: Float Arithmetic. (line 41)
2723
2649
  * Export: Integer Import and Export.
2724
2650
  (line 45)
2725
2651
  * Expression parsing demo: Demonstration Programs.
2726
2652
  (line 15)
2653
+ * Expression parsing demo <1>: Demonstration Programs.
2654
+ (line 17)
2655
+ * Expression parsing demo <2>: Demonstration Programs.
2656
+ (line 19)
2727
2657
  * Extended GCD: Number Theoretic Functions.
2728
2658
  (line 43)
2729
2659
  * Factor removal functions: Number Theoretic Functions.
@@ -2732,26 +2662,26 @@ Concept Index
2732
2662
  * Factorial functions: Number Theoretic Functions.
2733
2663
  (line 112)
2734
2664
  * Factorization demo: Demonstration Programs.
2735
- (line 25)
2665
+ (line 22)
2736
2666
  * Fast Fourier Transform: FFT Multiplication. (line 6)
2737
- * Fat binary: Build Options. (line 161)
2667
+ * Fat binary: Build Options. (line 160)
2668
+ * FFT multiplication: Build Options. (line 307)
2738
2669
  * FFT multiplication <1>: FFT Multiplication. (line 6)
2739
- * FFT multiplication: Build Options. (line 313)
2740
2670
  * Fibonacci number algorithm: Fibonacci Numbers Algorithm.
2741
2671
  (line 6)
2742
2672
  * Fibonacci sequence functions: Number Theoretic Functions.
2743
2673
  (line 132)
2744
2674
  * Float arithmetic functions: Float Arithmetic. (line 6)
2675
+ * Float assignment functions: Assigning Floats. (line 6)
2745
2676
  * Float assignment functions <1>: Simultaneous Float Init & Assign.
2746
2677
  (line 6)
2747
- * Float assignment functions: Assigning Floats. (line 6)
2748
2678
  * Float comparison functions: Float Comparison. (line 6)
2749
2679
  * Float conversion functions: Converting Floats. (line 6)
2750
2680
  * Float functions: Floating-point Functions.
2751
2681
  (line 6)
2682
+ * Float initialization functions: Initializing Floats. (line 6)
2752
2683
  * Float initialization functions <1>: Simultaneous Float Init & Assign.
2753
2684
  (line 6)
2754
- * Float initialization functions: Initializing Floats. (line 6)
2755
2685
  * Float input and output functions: I/O of Floats. (line 6)
2756
2686
  * Float internals: Float Internals. (line 6)
2757
2687
  * Float miscellaneous functions: Miscellaneous Float Functions.
@@ -2774,29 +2704,31 @@ Concept Index
2774
2704
  (line 6)
2775
2705
  * FreeBSD: Notes for Particular Systems.
2776
2706
  (line 43)
2777
- * frexp <1>: Converting Integers. (line 43)
2778
- * frexp: Converting Floats. (line 24)
2707
+ * FreeBSD <1>: Notes for Particular Systems.
2708
+ (line 52)
2709
+ * frexp: Converting Integers. (line 43)
2710
+ * frexp <1>: Converting Floats. (line 24)
2779
2711
  * FTP of latest version: Introduction to GMP. (line 37)
2780
2712
  * Function classes: Function Classes. (line 6)
2781
2713
  * FunctionCheck: Profiling. (line 77)
2782
- * GCC Checker: Debugging. (line 115)
2714
+ * GCC Checker: Debugging. (line 114)
2783
2715
  * GCD algorithms: Greatest Common Divisor Algorithms.
2784
2716
  (line 6)
2785
2717
  * GCD extended: Number Theoretic Functions.
2786
2718
  (line 43)
2787
2719
  * GCD functions: Number Theoretic Functions.
2788
2720
  (line 26)
2789
- * GDB: Debugging. (line 58)
2790
- * Generic C: Build Options. (line 152)
2721
+ * GDB: Debugging. (line 57)
2722
+ * Generic C: Build Options. (line 151)
2791
2723
  * GMP Perl module: Demonstration Programs.
2792
- (line 35)
2724
+ (line 28)
2793
2725
  * GMP version number: Useful Macros and Constants.
2794
2726
  (line 12)
2795
2727
  * gmp.h: Headers and Libraries.
2796
2728
  (line 6)
2797
2729
  * gmpxx.h: C++ Interface General.
2798
2730
  (line 8)
2799
- * GNU Debugger: Debugging. (line 58)
2731
+ * GNU Debugger: Debugging. (line 57)
2800
2732
  * GNU Free Documentation License: GNU Free Documentation License.
2801
2733
  (line 6)
2802
2734
  * GNU strip: Known Build Problems.
@@ -2810,40 +2742,41 @@ Concept Index
2810
2742
  (line 34)
2811
2743
  * Headers: Headers and Libraries.
2812
2744
  (line 6)
2813
- * Heap problems: Debugging. (line 24)
2745
+ * Heap problems: Debugging. (line 23)
2814
2746
  * Home page: Introduction to GMP. (line 33)
2815
- * Host system: Build Options. (line 66)
2816
- * HP-UX: ABI and ISA. (line 77)
2817
- * HPPA: ABI and ISA. (line 77)
2818
- * I/O functions <1>: I/O of Integers. (line 6)
2747
+ * Host system: Build Options. (line 65)
2748
+ * HP-UX: ABI and ISA. (line 76)
2749
+ * HP-UX <1>: ABI and ISA. (line 114)
2750
+ * HPPA: ABI and ISA. (line 76)
2751
+ * I/O functions: I/O of Integers. (line 6)
2752
+ * I/O functions <1>: I/O of Rationals. (line 6)
2819
2753
  * I/O functions <2>: I/O of Floats. (line 6)
2820
- * I/O functions: I/O of Rationals. (line 6)
2821
2754
  * i386: Notes for Particular Systems.
2822
2755
  (line 150)
2823
- * IA-64: ABI and ISA. (line 116)
2756
+ * IA-64: ABI and ISA. (line 114)
2824
2757
  * Import: Integer Import and Export.
2825
2758
  (line 11)
2826
2759
  * In-place operations: Efficiency. (line 57)
2827
2760
  * Include files: Headers and Libraries.
2828
2761
  (line 6)
2829
2762
  * info-lookup-symbol: Emacs. (line 6)
2830
- * Initialization functions <1>: Initializing Floats. (line 6)
2831
- * Initialization functions <2>: Random State Initialization.
2763
+ * Initialization functions: Initializing Integers.
2832
2764
  (line 6)
2833
- * Initialization functions <3>: Simultaneous Float Init & Assign.
2765
+ * Initialization functions <1>: Simultaneous Integer Init & Assign.
2834
2766
  (line 6)
2835
- * Initialization functions <4>: Simultaneous Integer Init & Assign.
2767
+ * Initialization functions <2>: Initializing Rationals.
2836
2768
  (line 6)
2837
- * Initialization functions <5>: Initializing Rationals.
2769
+ * Initialization functions <3>: Initializing Floats. (line 6)
2770
+ * Initialization functions <4>: Simultaneous Float Init & Assign.
2838
2771
  (line 6)
2839
- * Initialization functions: Initializing Integers.
2772
+ * Initialization functions <5>: Random State Initialization.
2840
2773
  (line 6)
2841
2774
  * Initializing and clearing: Efficiency. (line 21)
2842
- * Input functions <1>: Formatted Input Functions.
2843
- (line 6)
2844
- * Input functions <2>: I/O of Rationals. (line 6)
2845
- * Input functions <3>: I/O of Floats. (line 6)
2846
2775
  * Input functions: I/O of Integers. (line 6)
2776
+ * Input functions <1>: I/O of Rationals. (line 6)
2777
+ * Input functions <2>: I/O of Floats. (line 6)
2778
+ * Input functions <3>: Formatted Input Functions.
2779
+ (line 6)
2847
2780
  * Install prefix: Build Options. (line 32)
2848
2781
  * Installing GMP: Installing GMP. (line 6)
2849
2782
  * Instruction Set Architecture: ABI and ISA. (line 6)
@@ -2851,8 +2784,8 @@ Concept Index
2851
2784
  * Integer: Nomenclature and Types.
2852
2785
  (line 6)
2853
2786
  * Integer arithmetic functions: Integer Arithmetic. (line 6)
2854
- * Integer assignment functions <1>: Assigning Integers. (line 6)
2855
- * Integer assignment functions: Simultaneous Integer Init & Assign.
2787
+ * Integer assignment functions: Assigning Integers. (line 6)
2788
+ * Integer assignment functions <1>: Simultaneous Integer Init & Assign.
2856
2789
  (line 6)
2857
2790
  * Integer bit manipulation functions: Integer Logic and Bit Fiddling.
2858
2791
  (line 6)
@@ -2866,9 +2799,9 @@ Concept Index
2866
2799
  * Integer functions: Integer Functions. (line 6)
2867
2800
  * Integer import: Integer Import and Export.
2868
2801
  (line 11)
2869
- * Integer initialization functions <1>: Initializing Integers.
2802
+ * Integer initialization functions: Initializing Integers.
2870
2803
  (line 6)
2871
- * Integer initialization functions: Simultaneous Integer Init & Assign.
2804
+ * Integer initialization functions <1>: Simultaneous Integer Init & Assign.
2872
2805
  (line 6)
2873
2806
  * Integer input and output functions: I/O of Integers. (line 6)
2874
2807
  * Integer internals: Integer Internals. (line 6)
@@ -2888,8 +2821,8 @@ Concept Index
2888
2821
  * Introduction: Introduction to GMP. (line 6)
2889
2822
  * Inverse modulo functions: Number Theoretic Functions.
2890
2823
  (line 70)
2891
- * IRIX <1>: ABI and ISA. (line 141)
2892
- * IRIX: Known Build Problems.
2824
+ * IRIX: ABI and ISA. (line 139)
2825
+ * IRIX <1>: Known Build Problems.
2893
2826
  (line 38)
2894
2827
  * ISA: ABI and ISA. (line 6)
2895
2828
  * istream input: C++ Formatted Input. (line 6)
@@ -2928,6 +2861,8 @@ Concept Index
2928
2861
  * Linear congruential algorithm: Random Number Algorithms.
2929
2862
  (line 25)
2930
2863
  * Linear congruential random numbers: Random State Initialization.
2864
+ (line 18)
2865
+ * Linear congruential random numbers <1>: Random State Initialization.
2931
2866
  (line 32)
2932
2867
  * Linking: Headers and Libraries.
2933
2868
  (line 22)
@@ -2942,8 +2877,8 @@ Concept Index
2942
2877
  * MacOS X: Known Build Problems.
2943
2878
  (line 51)
2944
2879
  * Mailing lists: Introduction to GMP. (line 44)
2945
- * Malloc debugger: Debugging. (line 30)
2946
- * Malloc problems: Debugging. (line 24)
2880
+ * Malloc debugger: Debugging. (line 29)
2881
+ * Malloc problems: Debugging. (line 23)
2947
2882
  * Memory allocation: Custom Allocation. (line 6)
2948
2883
  * Memory management: Memory Management. (line 6)
2949
2884
  * Mersenne twister algorithm: Random Number Algorithms.
@@ -2952,7 +2887,7 @@ Concept Index
2952
2887
  (line 13)
2953
2888
  * MINGW: Notes for Particular Systems.
2954
2889
  (line 57)
2955
- * MIPS: ABI and ISA. (line 141)
2890
+ * MIPS: ABI and ISA. (line 139)
2956
2891
  * Miscellaneous float functions: Miscellaneous Float Functions.
2957
2892
  (line 6)
2958
2893
  * Miscellaneous integer functions: Miscellaneous Integer Functions.
@@ -2963,16 +2898,18 @@ Concept Index
2963
2898
  (line 70)
2964
2899
  * Most significant bit: Miscellaneous Integer Functions.
2965
2900
  (line 34)
2966
- * MPN_PATH: Build Options. (line 327)
2901
+ * MPN_PATH: Build Options. (line 321)
2967
2902
  * MS Windows: Notes for Particular Systems.
2968
2903
  (line 57)
2904
+ * MS Windows <1>: Notes for Particular Systems.
2905
+ (line 70)
2969
2906
  * MS-DOS: Notes for Particular Systems.
2970
2907
  (line 57)
2971
2908
  * Multi-threading: Reentrancy. (line 6)
2972
2909
  * Multiplication algorithms: Multiplication Algorithms.
2973
2910
  (line 6)
2974
- * Nails: Low-level Functions. (line 683)
2975
- * Native compilation: Build Options. (line 52)
2911
+ * Nails: Low-level Functions. (line 685)
2912
+ * Native compilation: Build Options. (line 51)
2976
2913
  * NetBSD: Notes for Particular Systems.
2977
2914
  (line 100)
2978
2915
  * NeXT: Known Build Problems.
@@ -2983,13 +2920,13 @@ Concept Index
2983
2920
  (line 6)
2984
2921
  * Non-Unix systems: Build Options. (line 11)
2985
2922
  * Nth root algorithm: Nth Root Algorithm. (line 6)
2986
- * Number sequences: Efficiency. (line 147)
2923
+ * Number sequences: Efficiency. (line 145)
2987
2924
  * Number theoretic functions: Number Theoretic Functions.
2988
2925
  (line 6)
2989
2926
  * Numerator and denominator: Applying Integer Functions.
2990
2927
  (line 6)
2991
2928
  * obstack output: Formatted Output Functions.
2992
- (line 81)
2929
+ (line 79)
2993
2930
  * OpenBSD: Notes for Particular Systems.
2994
2931
  (line 109)
2995
2932
  * Optimizing performance: Performance optimization.
@@ -2997,22 +2934,26 @@ Concept Index
2997
2934
  * ostream output: C++ Formatted Output.
2998
2935
  (line 6)
2999
2936
  * Other languages: Language Bindings. (line 6)
3000
- * Output functions <1>: Formatted Output Functions.
2937
+ * Output functions: I/O of Integers. (line 6)
2938
+ * Output functions <1>: I/O of Rationals. (line 6)
2939
+ * Output functions <2>: I/O of Floats. (line 6)
2940
+ * Output functions <3>: Formatted Output Functions.
3001
2941
  (line 6)
3002
- * Output functions <2>: I/O of Rationals. (line 6)
3003
- * Output functions <3>: I/O of Integers. (line 6)
3004
- * Output functions: I/O of Floats. (line 6)
3005
2942
  * Packaged builds: Notes for Package Builds.
3006
2943
  (line 6)
3007
2944
  * Parameter conventions: Parameter Conventions.
3008
2945
  (line 6)
3009
2946
  * Parsing expressions demo: Demonstration Programs.
3010
- (line 21)
2947
+ (line 15)
2948
+ * Parsing expressions demo <1>: Demonstration Programs.
2949
+ (line 17)
2950
+ * Parsing expressions demo <2>: Demonstration Programs.
2951
+ (line 19)
3011
2952
  * Particular systems: Notes for Particular Systems.
3012
2953
  (line 6)
3013
2954
  * Past GMP versions: Compatibility with older versions.
3014
2955
  (line 6)
3015
- * PDF: Build Options. (line 342)
2956
+ * PDF: Build Options. (line 336)
3016
2957
  * Perfect power algorithm: Perfect Power Algorithm.
3017
2958
  (line 6)
3018
2959
  * Perfect power functions: Integer Roots. (line 28)
@@ -3020,19 +2961,19 @@ Concept Index
3020
2961
  (line 6)
3021
2962
  * Perfect square functions: Integer Roots. (line 37)
3022
2963
  * perl: Demonstration Programs.
3023
- (line 35)
2964
+ (line 28)
3024
2965
  * Perl module: Demonstration Programs.
3025
- (line 35)
3026
- * Postscript: Build Options. (line 342)
3027
- * Power/PowerPC <1>: Known Build Problems.
3028
- (line 63)
2966
+ (line 28)
2967
+ * Postscript: Build Options. (line 336)
3029
2968
  * Power/PowerPC: Notes for Particular Systems.
3030
2969
  (line 115)
2970
+ * Power/PowerPC <1>: Known Build Problems.
2971
+ (line 63)
3031
2972
  * Powering algorithms: Powering Algorithms. (line 6)
3032
- * Powering functions <1>: Float Arithmetic. (line 41)
3033
2973
  * Powering functions: Integer Exponentiation.
3034
2974
  (line 6)
3035
- * PowerPC: ABI and ISA. (line 176)
2975
+ * Powering functions <1>: Float Arithmetic. (line 41)
2976
+ * PowerPC: ABI and ISA. (line 173)
3036
2977
  * Precision of floats: Floating-point Functions.
3037
2978
  (line 6)
3038
2979
  * Precision of hardware floating point: Notes for Particular Systems.
@@ -3053,19 +2994,19 @@ Concept Index
3053
2994
  (line 6)
3054
2995
  * Random number algorithms: Random Number Algorithms.
3055
2996
  (line 6)
3056
- * Random number functions <1>: Integer Random Numbers.
2997
+ * Random number functions: Integer Random Numbers.
3057
2998
  (line 6)
2999
+ * Random number functions <1>: Miscellaneous Float Functions.
3000
+ (line 27)
3058
3001
  * Random number functions <2>: Random Number Functions.
3059
3002
  (line 6)
3060
- * Random number functions: Miscellaneous Float Functions.
3061
- (line 27)
3062
3003
  * Random number seeding: Random State Seeding.
3063
3004
  (line 6)
3064
3005
  * Random number state: Random State Initialization.
3065
3006
  (line 6)
3066
3007
  * Random state: Nomenclature and Types.
3067
3008
  (line 46)
3068
- * Rational arithmetic: Efficiency. (line 113)
3009
+ * Rational arithmetic: Efficiency. (line 111)
3069
3010
  * Rational arithmetic functions: Rational Arithmetic. (line 6)
3070
3011
  * Rational assignment functions: Initializing Rationals.
3071
3012
  (line 6)
@@ -3087,22 +3028,23 @@ Concept Index
3087
3028
  (line 6)
3088
3029
  * Reallocations: Efficiency. (line 30)
3089
3030
  * Reentrancy: Reentrancy. (line 6)
3090
- * References: References. (line 6)
3031
+ * References: References. (line 5)
3091
3032
  * Remove factor functions: Number Theoretic Functions.
3092
3033
  (line 104)
3093
3034
  * Reporting bugs: Reporting Bugs. (line 6)
3094
3035
  * Root extraction algorithm: Nth Root Algorithm. (line 6)
3095
3036
  * Root extraction algorithms: Root Extraction Algorithms.
3096
3037
  (line 6)
3097
- * Root extraction functions <1>: Float Arithmetic. (line 37)
3098
3038
  * Root extraction functions: Integer Roots. (line 6)
3039
+ * Root extraction functions <1>: Float Arithmetic. (line 37)
3099
3040
  * Root testing functions: Integer Roots. (line 28)
3041
+ * Root testing functions <1>: Integer Roots. (line 37)
3100
3042
  * Rounding functions: Miscellaneous Float Functions.
3101
3043
  (line 9)
3102
3044
  * Sample programs: Demonstration Programs.
3103
3045
  (line 6)
3104
3046
  * Scan bit functions: Integer Logic and Bit Fiddling.
3105
- (line 40)
3047
+ (line 39)
3106
3048
  * scanf formatted input: Formatted Input. (line 6)
3107
3049
  * SCO: Known Build Problems.
3108
3050
  (line 38)
@@ -3115,27 +3057,31 @@ Concept Index
3115
3057
  (line 65)
3116
3058
  * Shared library versioning: Notes for Package Builds.
3117
3059
  (line 9)
3060
+ * Sign tests: Integer Comparisons. (line 28)
3118
3061
  * Sign tests <1>: Comparing Rationals. (line 28)
3119
3062
  * Sign tests <2>: Float Comparison. (line 34)
3120
- * Sign tests: Integer Comparisons. (line 28)
3121
3063
  * Size in digits: Miscellaneous Integer Functions.
3122
3064
  (line 23)
3123
3065
  * Small operands: Efficiency. (line 7)
3124
- * Solaris <1>: ABI and ISA. (line 208)
3125
- * Solaris: Known Build Problems.
3066
+ * Solaris: ABI and ISA. (line 204)
3067
+ * Solaris <1>: Known Build Problems.
3126
3068
  (line 72)
3069
+ * Solaris <2>: Known Build Problems.
3070
+ (line 77)
3127
3071
  * Sparc: Notes for Particular Systems.
3128
3072
  (line 127)
3129
- * Sparc V9: ABI and ISA. (line 208)
3073
+ * Sparc <1>: Notes for Particular Systems.
3074
+ (line 132)
3075
+ * Sparc V9: ABI and ISA. (line 204)
3130
3076
  * Special integer functions: Integer Special Functions.
3131
3077
  (line 6)
3132
3078
  * Square root algorithm: Square Root Algorithm.
3133
3079
  (line 6)
3134
3080
  * SSE2: Notes for Particular Systems.
3135
3081
  (line 156)
3136
- * Stack backtrace: Debugging. (line 50)
3082
+ * Stack backtrace: Debugging. (line 49)
3083
+ * Stack overflow: Build Options. (line 273)
3137
3084
  * Stack overflow <1>: Debugging. (line 7)
3138
- * Stack overflow: Build Options. (line 274)
3139
3085
  * Static linking: Efficiency. (line 14)
3140
3086
  * stdarg.h: Headers and Libraries.
3141
3087
  (line 17)
@@ -3143,22 +3089,22 @@ Concept Index
3143
3089
  (line 11)
3144
3090
  * Stripped libraries: Known Build Problems.
3145
3091
  (line 28)
3146
- * Sun: ABI and ISA. (line 208)
3092
+ * Sun: ABI and ISA. (line 204)
3147
3093
  * SunOS: Notes for Particular Systems.
3148
3094
  (line 144)
3149
3095
  * Systems: Notes for Particular Systems.
3150
3096
  (line 6)
3151
- * Temporary memory: Build Options. (line 274)
3152
- * Texinfo: Build Options. (line 339)
3153
- * Text input/output: Efficiency. (line 153)
3097
+ * Temporary memory: Build Options. (line 273)
3098
+ * Texinfo: Build Options. (line 333)
3099
+ * Text input/output: Efficiency. (line 151)
3154
3100
  * Thread safety: Reentrancy. (line 6)
3155
- * Toom multiplication <1>: Higher degree Toom'n'half.
3101
+ * Toom multiplication: Toom 3-Way Multiplication.
3156
3102
  (line 6)
3157
- * Toom multiplication <2>: Other Multiplication.
3103
+ * Toom multiplication <1>: Toom 4-Way Multiplication.
3158
3104
  (line 6)
3159
- * Toom multiplication <3>: Toom 4-Way Multiplication.
3105
+ * Toom multiplication <2>: Higher degree Toom'n'half.
3160
3106
  (line 6)
3161
- * Toom multiplication: Toom 3-Way Multiplication.
3107
+ * Toom multiplication <3>: Other Multiplication.
3162
3108
  (line 6)
3163
3109
  * Types: Nomenclature and Types.
3164
3110
  (line 6)
@@ -3171,19 +3117,21 @@ Concept Index
3171
3117
  (line 6)
3172
3118
  * User-defined precision: Floating-point Functions.
3173
3119
  (line 6)
3174
- * Valgrind: Debugging. (line 130)
3120
+ * Valgrind: Debugging. (line 129)
3175
3121
  * Variable conventions: Variable Conventions.
3176
3122
  (line 6)
3177
3123
  * Version number: Useful Macros and Constants.
3178
3124
  (line 12)
3179
3125
  * Web page: Introduction to GMP. (line 33)
3180
3126
  * Windows: Notes for Particular Systems.
3127
+ (line 57)
3128
+ * Windows <1>: Notes for Particular Systems.
3181
3129
  (line 70)
3182
3130
  * x86: Notes for Particular Systems.
3183
3131
  (line 150)
3184
3132
  * x87: Notes for Particular Systems.
3185
3133
  (line 34)
3186
- * XML: Build Options. (line 346)
3134
+ * XML: Build Options. (line 340)
3187
3135
 
3188
3136
  
3189
3137
  File: gmp.info, Node: Function Index, Prev: Concept Index, Up: Top
@@ -3194,50 +3142,54 @@ Function and Type Index
3194
3142
  [index]
3195
3143
  * Menu:
3196
3144
 
3145
+ * _mpz_realloc: Integer Special Functions.
3146
+ (line 13)
3197
3147
  * __GMP_CC: Useful Macros and Constants.
3198
- (line 23)
3148
+ (line 22)
3199
3149
  * __GMP_CFLAGS: Useful Macros and Constants.
3200
- (line 24)
3150
+ (line 23)
3201
3151
  * __GNU_MP_VERSION: Useful Macros and Constants.
3202
- (line 10)
3152
+ (line 9)
3203
3153
  * __GNU_MP_VERSION_MINOR: Useful Macros and Constants.
3204
- (line 11)
3154
+ (line 10)
3205
3155
  * __GNU_MP_VERSION_PATCHLEVEL: Useful Macros and Constants.
3206
- (line 12)
3207
- * _mpz_realloc: Integer Special Functions.
3208
- (line 14)
3156
+ (line 11)
3157
+ * abs: C++ Interface Integers.
3158
+ (line 46)
3209
3159
  * abs <1>: C++ Interface Rationals.
3210
- (line 49)
3211
- * abs <2>: C++ Interface Integers.
3212
3160
  (line 47)
3213
- * abs: C++ Interface Floats.
3214
- (line 83)
3161
+ * abs <2>: C++ Interface Floats.
3162
+ (line 82)
3215
3163
  * ceil: C++ Interface Floats.
3216
- (line 84)
3217
- * cmp <1>: C++ Interface Floats.
3218
- (line 85)
3219
- * cmp <2>: C++ Interface Integers.
3164
+ (line 83)
3165
+ * cmp: C++ Interface Integers.
3166
+ (line 47)
3167
+ * cmp <1>: C++ Interface Integers.
3168
+ (line 48)
3169
+ * cmp <2>: C++ Interface Rationals.
3220
3170
  (line 48)
3221
3171
  * cmp <3>: C++ Interface Rationals.
3222
- (line 51)
3223
- * cmp: C++ Interface Floats.
3224
- (line 86)
3172
+ (line 49)
3173
+ * cmp <4>: C++ Interface Floats.
3174
+ (line 84)
3175
+ * cmp <5>: C++ Interface Floats.
3176
+ (line 85)
3225
3177
  * floor: C++ Interface Floats.
3226
- (line 93)
3178
+ (line 95)
3227
3179
  * gcd: C++ Interface Integers.
3228
- (line 64)
3180
+ (line 68)
3229
3181
  * gmp_asprintf: Formatted Output Functions.
3230
- (line 65)
3182
+ (line 63)
3231
3183
  * gmp_errno: Random State Initialization.
3232
- (line 55)
3184
+ (line 56)
3233
3185
  * GMP_ERROR_INVALID_ARGUMENT: Random State Initialization.
3234
- (line 55)
3186
+ (line 56)
3235
3187
  * GMP_ERROR_UNSUPPORTED_ARGUMENT: Random State Initialization.
3236
- (line 55)
3188
+ (line 56)
3237
3189
  * gmp_fprintf: Formatted Output Functions.
3238
- (line 29)
3190
+ (line 28)
3239
3191
  * gmp_fscanf: Formatted Input Functions.
3240
- (line 25)
3192
+ (line 24)
3241
3193
  * GMP_LIMB_BITS: Low-level Functions. (line 713)
3242
3194
  * GMP_NAIL_BITS: Low-level Functions. (line 711)
3243
3195
  * GMP_NAIL_MASK: Low-level Functions. (line 721)
@@ -3245,100 +3197,96 @@ Function and Type Index
3245
3197
  * GMP_NUMB_MASK: Low-level Functions. (line 722)
3246
3198
  * GMP_NUMB_MAX: Low-level Functions. (line 730)
3247
3199
  * gmp_obstack_printf: Formatted Output Functions.
3248
- (line 79)
3200
+ (line 75)
3249
3201
  * gmp_obstack_vprintf: Formatted Output Functions.
3250
- (line 81)
3202
+ (line 77)
3251
3203
  * gmp_printf: Formatted Output Functions.
3252
- (line 24)
3253
- * GMP_RAND_ALG_DEFAULT: Random State Initialization.
3254
- (line 49)
3255
- * GMP_RAND_ALG_LC: Random State Initialization.
3256
- (line 49)
3204
+ (line 23)
3257
3205
  * gmp_randclass: C++ Interface Random Numbers.
3258
- (line 7)
3206
+ (line 6)
3259
3207
  * gmp_randclass::get_f: C++ Interface Random Numbers.
3260
- (line 46)
3208
+ (line 44)
3209
+ * gmp_randclass::get_f <1>: C++ Interface Random Numbers.
3210
+ (line 45)
3261
3211
  * gmp_randclass::get_z_bits: C++ Interface Random Numbers.
3262
- (line 39)
3212
+ (line 37)
3213
+ * gmp_randclass::get_z_bits <1>: C++ Interface Random Numbers.
3214
+ (line 38)
3263
3215
  * gmp_randclass::get_z_range: C++ Interface Random Numbers.
3264
- (line 42)
3216
+ (line 41)
3265
3217
  * gmp_randclass::gmp_randclass: C++ Interface Random Numbers.
3266
- (line 27)
3218
+ (line 11)
3219
+ * gmp_randclass::gmp_randclass <1>: C++ Interface Random Numbers.
3220
+ (line 26)
3267
3221
  * gmp_randclass::seed: C++ Interface Random Numbers.
3268
- (line 34)
3222
+ (line 32)
3223
+ * gmp_randclass::seed <1>: C++ Interface Random Numbers.
3224
+ (line 33)
3269
3225
  * gmp_randclear: Random State Initialization.
3270
3226
  (line 62)
3271
3227
  * gmp_randinit: Random State Initialization.
3272
- (line 47)
3228
+ (line 45)
3273
3229
  * gmp_randinit_default: Random State Initialization.
3274
- (line 7)
3230
+ (line 6)
3275
3231
  * gmp_randinit_lc_2exp: Random State Initialization.
3276
- (line 18)
3232
+ (line 16)
3277
3233
  * gmp_randinit_lc_2exp_size: Random State Initialization.
3278
- (line 32)
3234
+ (line 30)
3279
3235
  * gmp_randinit_mt: Random State Initialization.
3280
- (line 13)
3236
+ (line 12)
3281
3237
  * gmp_randinit_set: Random State Initialization.
3282
- (line 43)
3238
+ (line 41)
3283
3239
  * gmp_randseed: Random State Seeding.
3284
- (line 8)
3240
+ (line 6)
3285
3241
  * gmp_randseed_ui: Random State Seeding.
3286
- (line 10)
3242
+ (line 8)
3287
3243
  * gmp_randstate_t: Nomenclature and Types.
3288
3244
  (line 46)
3245
+ * GMP_RAND_ALG_DEFAULT: Random State Initialization.
3246
+ (line 50)
3247
+ * GMP_RAND_ALG_LC: Random State Initialization.
3248
+ (line 50)
3289
3249
  * gmp_scanf: Formatted Input Functions.
3290
- (line 21)
3250
+ (line 20)
3291
3251
  * gmp_snprintf: Formatted Output Functions.
3292
- (line 46)
3252
+ (line 44)
3293
3253
  * gmp_sprintf: Formatted Output Functions.
3294
- (line 34)
3254
+ (line 33)
3295
3255
  * gmp_sscanf: Formatted Input Functions.
3296
- (line 29)
3256
+ (line 28)
3297
3257
  * gmp_urandomb_ui: Random State Miscellaneous.
3298
- (line 8)
3258
+ (line 6)
3299
3259
  * gmp_urandomm_ui: Random State Miscellaneous.
3300
- (line 14)
3260
+ (line 12)
3301
3261
  * gmp_vasprintf: Formatted Output Functions.
3302
- (line 66)
3262
+ (line 64)
3303
3263
  * gmp_version: Useful Macros and Constants.
3304
3264
  (line 18)
3305
3265
  * gmp_vfprintf: Formatted Output Functions.
3306
- (line 30)
3266
+ (line 29)
3307
3267
  * gmp_vfscanf: Formatted Input Functions.
3308
- (line 26)
3309
- * gmp_vprintf: Formatted Output Functions.
3310
3268
  (line 25)
3269
+ * gmp_vprintf: Formatted Output Functions.
3270
+ (line 24)
3311
3271
  * gmp_vscanf: Formatted Input Functions.
3312
- (line 22)
3272
+ (line 21)
3313
3273
  * gmp_vsnprintf: Formatted Output Functions.
3314
- (line 48)
3274
+ (line 46)
3315
3275
  * gmp_vsprintf: Formatted Output Functions.
3316
- (line 35)
3276
+ (line 34)
3317
3277
  * gmp_vsscanf: Formatted Input Functions.
3318
- (line 31)
3278
+ (line 29)
3319
3279
  * hypot: C++ Interface Floats.
3320
- (line 94)
3280
+ (line 96)
3321
3281
  * lcm: C++ Interface Integers.
3322
- (line 65)
3323
- * mp_bitcnt_t: Nomenclature and Types.
3324
- (line 42)
3325
- * mp_bits_per_limb: Useful Macros and Constants.
3326
- (line 7)
3327
- * mp_exp_t: Nomenclature and Types.
3328
- (line 27)
3329
- * mp_get_memory_functions: Custom Allocation. (line 90)
3330
- * mp_limb_t: Nomenclature and Types.
3331
- (line 31)
3332
- * mp_set_memory_functions: Custom Allocation. (line 18)
3333
- * mp_size_t: Nomenclature and Types.
3334
- (line 37)
3335
- * mpf_abs: Float Arithmetic. (line 47)
3336
- * mpf_add: Float Arithmetic. (line 7)
3337
- * mpf_add_ui: Float Arithmetic. (line 9)
3282
+ (line 69)
3283
+ * mpf_abs: Float Arithmetic. (line 46)
3284
+ * mpf_add: Float Arithmetic. (line 6)
3285
+ * mpf_add_ui: Float Arithmetic. (line 7)
3338
3286
  * mpf_ceil: Miscellaneous Float Functions.
3339
- (line 7)
3287
+ (line 6)
3340
3288
  * mpf_class: C++ Interface General.
3341
- (line 20)
3289
+ (line 19)
3342
3290
  * mpf_class::fits_sint_p: C++ Interface Floats.
3343
3291
  (line 87)
3344
3292
  * mpf_class::fits_slong_p: C++ Interface Floats.
@@ -3346,297 +3294,323 @@ Function and Type Index
3346
3294
  * mpf_class::fits_sshort_p: C++ Interface Floats.
3347
3295
  (line 89)
3348
3296
  * mpf_class::fits_uint_p: C++ Interface Floats.
3349
- (line 90)
3350
- * mpf_class::fits_ulong_p: C++ Interface Floats.
3351
3297
  (line 91)
3352
- * mpf_class::fits_ushort_p: C++ Interface Floats.
3298
+ * mpf_class::fits_ulong_p: C++ Interface Floats.
3353
3299
  (line 92)
3300
+ * mpf_class::fits_ushort_p: C++ Interface Floats.
3301
+ (line 93)
3354
3302
  * mpf_class::get_d: C++ Interface Floats.
3355
- (line 95)
3303
+ (line 98)
3356
3304
  * mpf_class::get_mpf_t: C++ Interface General.
3357
- (line 66)
3305
+ (line 65)
3358
3306
  * mpf_class::get_prec: C++ Interface Floats.
3359
- (line 115)
3307
+ (line 120)
3360
3308
  * mpf_class::get_si: C++ Interface Floats.
3361
- (line 96)
3309
+ (line 99)
3362
3310
  * mpf_class::get_str: C++ Interface Floats.
3363
- (line 98)
3311
+ (line 100)
3364
3312
  * mpf_class::get_ui: C++ Interface Floats.
3365
- (line 99)
3313
+ (line 102)
3366
3314
  * mpf_class::mpf_class: C++ Interface Floats.
3367
- (line 47)
3315
+ (line 11)
3316
+ * mpf_class::mpf_class <1>: C++ Interface Floats.
3317
+ (line 12)
3318
+ * mpf_class::mpf_class <2>: C++ Interface Floats.
3319
+ (line 32)
3320
+ * mpf_class::mpf_class <3>: C++ Interface Floats.
3321
+ (line 33)
3322
+ * mpf_class::mpf_class <4>: C++ Interface Floats.
3323
+ (line 41)
3324
+ * mpf_class::mpf_class <5>: C++ Interface Floats.
3325
+ (line 42)
3326
+ * mpf_class::mpf_class <6>: C++ Interface Floats.
3327
+ (line 44)
3328
+ * mpf_class::mpf_class <7>: C++ Interface Floats.
3329
+ (line 45)
3368
3330
  * mpf_class::operator=: C++ Interface Floats.
3369
- (line 60)
3331
+ (line 59)
3370
3332
  * mpf_class::set_prec: C++ Interface Floats.
3371
- (line 116)
3333
+ (line 121)
3372
3334
  * mpf_class::set_prec_raw: C++ Interface Floats.
3373
- (line 117)
3335
+ (line 122)
3374
3336
  * mpf_class::set_str: C++ Interface Floats.
3375
- (line 101)
3376
- * mpf_class::swap: C++ Interface Floats.
3377
3337
  (line 104)
3378
- * mpf_clear: Initializing Floats. (line 37)
3379
- * mpf_clears: Initializing Floats. (line 41)
3380
- * mpf_cmp: Float Comparison. (line 7)
3381
- * mpf_cmp_d: Float Comparison. (line 9)
3382
- * mpf_cmp_si: Float Comparison. (line 11)
3383
- * mpf_cmp_ui: Float Comparison. (line 10)
3384
- * mpf_cmp_z: Float Comparison. (line 8)
3385
- * mpf_div: Float Arithmetic. (line 29)
3386
- * mpf_div_2exp: Float Arithmetic. (line 55)
3387
- * mpf_div_ui: Float Arithmetic. (line 33)
3388
- * mpf_eq: Float Comparison. (line 19)
3338
+ * mpf_class::set_str <1>: C++ Interface Floats.
3339
+ (line 105)
3340
+ * mpf_class::swap: C++ Interface Floats.
3341
+ (line 109)
3342
+ * mpf_clear: Initializing Floats. (line 36)
3343
+ * mpf_clears: Initializing Floats. (line 40)
3344
+ * mpf_cmp: Float Comparison. (line 6)
3345
+ * mpf_cmp_d: Float Comparison. (line 8)
3346
+ * mpf_cmp_si: Float Comparison. (line 10)
3347
+ * mpf_cmp_ui: Float Comparison. (line 9)
3348
+ * mpf_cmp_z: Float Comparison. (line 7)
3349
+ * mpf_div: Float Arithmetic. (line 28)
3350
+ * mpf_div_2exp: Float Arithmetic. (line 53)
3351
+ * mpf_div_ui: Float Arithmetic. (line 31)
3352
+ * mpf_eq: Float Comparison. (line 17)
3389
3353
  * mpf_fits_sint_p: Miscellaneous Float Functions.
3390
- (line 20)
3354
+ (line 19)
3391
3355
  * mpf_fits_slong_p: Miscellaneous Float Functions.
3392
- (line 18)
3356
+ (line 17)
3393
3357
  * mpf_fits_sshort_p: Miscellaneous Float Functions.
3394
- (line 22)
3358
+ (line 21)
3395
3359
  * mpf_fits_uint_p: Miscellaneous Float Functions.
3396
- (line 19)
3360
+ (line 18)
3397
3361
  * mpf_fits_ulong_p: Miscellaneous Float Functions.
3398
- (line 17)
3362
+ (line 16)
3399
3363
  * mpf_fits_ushort_p: Miscellaneous Float Functions.
3400
- (line 21)
3364
+ (line 20)
3401
3365
  * mpf_floor: Miscellaneous Float Functions.
3402
- (line 8)
3403
- * mpf_get_d: Converting Floats. (line 7)
3404
- * mpf_get_d_2exp: Converting Floats. (line 17)
3405
- * mpf_get_default_prec: Initializing Floats. (line 12)
3406
- * mpf_get_prec: Initializing Floats. (line 62)
3407
- * mpf_get_si: Converting Floats. (line 28)
3408
- * mpf_get_str: Converting Floats. (line 38)
3409
- * mpf_get_ui: Converting Floats. (line 29)
3410
- * mpf_init: Initializing Floats. (line 19)
3411
- * mpf_init2: Initializing Floats. (line 26)
3366
+ (line 7)
3367
+ * mpf_get_d: Converting Floats. (line 6)
3368
+ * mpf_get_default_prec: Initializing Floats. (line 11)
3369
+ * mpf_get_d_2exp: Converting Floats. (line 15)
3370
+ * mpf_get_prec: Initializing Floats. (line 61)
3371
+ * mpf_get_si: Converting Floats. (line 27)
3372
+ * mpf_get_str: Converting Floats. (line 36)
3373
+ * mpf_get_ui: Converting Floats. (line 28)
3374
+ * mpf_init: Initializing Floats. (line 18)
3375
+ * mpf_init2: Initializing Floats. (line 25)
3376
+ * mpf_inits: Initializing Floats. (line 30)
3412
3377
  * mpf_init_set: Simultaneous Float Init & Assign.
3413
- (line 16)
3378
+ (line 15)
3414
3379
  * mpf_init_set_d: Simultaneous Float Init & Assign.
3415
- (line 19)
3416
- * mpf_init_set_si: Simultaneous Float Init & Assign.
3417
3380
  (line 18)
3381
+ * mpf_init_set_si: Simultaneous Float Init & Assign.
3382
+ (line 17)
3418
3383
  * mpf_init_set_str: Simultaneous Float Init & Assign.
3419
- (line 26)
3384
+ (line 24)
3420
3385
  * mpf_init_set_ui: Simultaneous Float Init & Assign.
3421
- (line 17)
3422
- * mpf_inits: Initializing Floats. (line 31)
3423
- * mpf_inp_str: I/O of Floats. (line 39)
3386
+ (line 16)
3387
+ * mpf_inp_str: I/O of Floats. (line 38)
3424
3388
  * mpf_integer_p: Miscellaneous Float Functions.
3425
- (line 14)
3426
- * mpf_mul: Float Arithmetic. (line 19)
3427
- * mpf_mul_2exp: Float Arithmetic. (line 51)
3428
- * mpf_mul_ui: Float Arithmetic. (line 21)
3429
- * mpf_neg: Float Arithmetic. (line 44)
3430
- * mpf_out_str: I/O of Floats. (line 19)
3431
- * mpf_pow_ui: Float Arithmetic. (line 41)
3389
+ (line 13)
3390
+ * mpf_mul: Float Arithmetic. (line 18)
3391
+ * mpf_mul_2exp: Float Arithmetic. (line 49)
3392
+ * mpf_mul_ui: Float Arithmetic. (line 19)
3393
+ * mpf_neg: Float Arithmetic. (line 43)
3394
+ * mpf_out_str: I/O of Floats. (line 17)
3395
+ * mpf_pow_ui: Float Arithmetic. (line 39)
3432
3396
  * mpf_random2: Miscellaneous Float Functions.
3433
- (line 37)
3434
- * mpf_reldiff: Float Comparison. (line 30)
3435
- * mpf_set: Assigning Floats. (line 10)
3436
- * mpf_set_d: Assigning Floats. (line 13)
3437
- * mpf_set_default_prec: Initializing Floats. (line 7)
3438
- * mpf_set_prec: Initializing Floats. (line 65)
3439
- * mpf_set_prec_raw: Initializing Floats. (line 72)
3440
- * mpf_set_q: Assigning Floats. (line 15)
3441
- * mpf_set_si: Assigning Floats. (line 12)
3442
- * mpf_set_str: Assigning Floats. (line 18)
3443
- * mpf_set_ui: Assigning Floats. (line 11)
3444
- * mpf_set_z: Assigning Floats. (line 14)
3445
- * mpf_sgn: Float Comparison. (line 34)
3446
- * mpf_sqrt: Float Arithmetic. (line 36)
3447
- * mpf_sqrt_ui: Float Arithmetic. (line 37)
3448
- * mpf_sub: Float Arithmetic. (line 12)
3449
- * mpf_sub_ui: Float Arithmetic. (line 16)
3450
- * mpf_swap: Assigning Floats. (line 52)
3397
+ (line 35)
3398
+ * mpf_reldiff: Float Comparison. (line 28)
3399
+ * mpf_set: Assigning Floats. (line 9)
3400
+ * mpf_set_d: Assigning Floats. (line 12)
3401
+ * mpf_set_default_prec: Initializing Floats. (line 6)
3402
+ * mpf_set_prec: Initializing Floats. (line 64)
3403
+ * mpf_set_prec_raw: Initializing Floats. (line 71)
3404
+ * mpf_set_q: Assigning Floats. (line 14)
3405
+ * mpf_set_si: Assigning Floats. (line 11)
3406
+ * mpf_set_str: Assigning Floats. (line 17)
3407
+ * mpf_set_ui: Assigning Floats. (line 10)
3408
+ * mpf_set_z: Assigning Floats. (line 13)
3409
+ * mpf_sgn: Float Comparison. (line 33)
3410
+ * mpf_sqrt: Float Arithmetic. (line 35)
3411
+ * mpf_sqrt_ui: Float Arithmetic. (line 36)
3412
+ * mpf_sub: Float Arithmetic. (line 11)
3413
+ * mpf_sub_ui: Float Arithmetic. (line 14)
3414
+ * mpf_swap: Assigning Floats. (line 50)
3451
3415
  * mpf_t: Nomenclature and Types.
3452
3416
  (line 21)
3453
3417
  * mpf_trunc: Miscellaneous Float Functions.
3454
- (line 9)
3455
- * mpf_ui_div: Float Arithmetic. (line 31)
3456
- * mpf_ui_sub: Float Arithmetic. (line 14)
3418
+ (line 8)
3419
+ * mpf_ui_div: Float Arithmetic. (line 29)
3420
+ * mpf_ui_sub: Float Arithmetic. (line 12)
3457
3421
  * mpf_urandomb: Miscellaneous Float Functions.
3458
- (line 27)
3459
- * mpn_add: Low-level Functions. (line 69)
3460
- * mpn_add_1: Low-level Functions. (line 64)
3461
- * mpn_add_n: Low-level Functions. (line 54)
3462
- * mpn_addmul_1: Low-level Functions. (line 150)
3463
- * mpn_and_n: Low-level Functions. (line 449)
3464
- * mpn_andn_n: Low-level Functions. (line 464)
3465
- * mpn_cmp: Low-level Functions. (line 295)
3466
- * mpn_cnd_add_n: Low-level Functions. (line 542)
3467
- * mpn_cnd_sub_n: Low-level Functions. (line 544)
3468
- * mpn_cnd_swap: Low-level Functions. (line 569)
3469
- * mpn_com: Low-level Functions. (line 489)
3470
- * mpn_copyd: Low-level Functions. (line 498)
3471
- * mpn_copyi: Low-level Functions. (line 494)
3472
- * mpn_divexact_1: Low-level Functions. (line 233)
3473
- * mpn_divexact_by3: Low-level Functions. (line 240)
3474
- * mpn_divexact_by3c: Low-level Functions. (line 242)
3475
- * mpn_divmod: Low-level Functions. (line 228)
3476
- * mpn_divmod_1: Low-level Functions. (line 212)
3477
- * mpn_divrem: Low-level Functions. (line 186)
3478
- * mpn_divrem_1: Low-level Functions. (line 210)
3479
- * mpn_gcd: Low-level Functions. (line 303)
3480
- * mpn_gcd_1: Low-level Functions. (line 313)
3481
- * mpn_gcdext: Low-level Functions. (line 319)
3482
- * mpn_get_str: Low-level Functions. (line 373)
3483
- * mpn_hamdist: Low-level Functions. (line 438)
3484
- * mpn_ior_n: Low-level Functions. (line 454)
3485
- * mpn_iorn_n: Low-level Functions. (line 469)
3486
- * mpn_lshift: Low-level Functions. (line 271)
3487
- * mpn_mod_1: Low-level Functions. (line 266)
3488
- * mpn_mul: Low-level Functions. (line 116)
3489
- * mpn_mul_1: Low-level Functions. (line 135)
3490
- * mpn_mul_n: Low-level Functions. (line 105)
3491
- * mpn_nand_n: Low-level Functions. (line 474)
3492
- * mpn_neg: Low-level Functions. (line 98)
3493
- * mpn_nior_n: Low-level Functions. (line 479)
3494
- * mpn_perfect_square_p: Low-level Functions. (line 444)
3495
- * mpn_popcount: Low-level Functions. (line 434)
3496
- * mpn_random: Low-level Functions. (line 423)
3497
- * mpn_random2: Low-level Functions. (line 424)
3498
- * mpn_rshift: Low-level Functions. (line 283)
3499
- * mpn_scan0: Low-level Functions. (line 408)
3500
- * mpn_scan1: Low-level Functions. (line 416)
3501
- * mpn_sec_add_1: Low-level Functions. (line 555)
3502
- * mpn_sec_div_qr: Low-level Functions. (line 632)
3503
- * mpn_sec_div_qr_itch: Low-level Functions. (line 633)
3504
- * mpn_sec_div_r: Low-level Functions. (line 649)
3422
+ (line 25)
3423
+ * mpn_add: Low-level Functions. (line 67)
3424
+ * mpn_addmul_1: Low-level Functions. (line 148)
3425
+ * mpn_add_1: Low-level Functions. (line 62)
3426
+ * mpn_add_n: Low-level Functions. (line 52)
3427
+ * mpn_andn_n: Low-level Functions. (line 462)
3428
+ * mpn_and_n: Low-level Functions. (line 447)
3429
+ * mpn_cmp: Low-level Functions. (line 293)
3430
+ * mpn_cnd_add_n: Low-level Functions. (line 540)
3431
+ * mpn_cnd_sub_n: Low-level Functions. (line 542)
3432
+ * mpn_cnd_swap: Low-level Functions. (line 567)
3433
+ * mpn_com: Low-level Functions. (line 487)
3434
+ * mpn_copyd: Low-level Functions. (line 496)
3435
+ * mpn_copyi: Low-level Functions. (line 492)
3436
+ * mpn_divexact_1: Low-level Functions. (line 231)
3437
+ * mpn_divexact_by3: Low-level Functions. (line 238)
3438
+ * mpn_divexact_by3c: Low-level Functions. (line 240)
3439
+ * mpn_divmod: Low-level Functions. (line 226)
3440
+ * mpn_divmod_1: Low-level Functions. (line 210)
3441
+ * mpn_divrem: Low-level Functions. (line 183)
3442
+ * mpn_divrem_1: Low-level Functions. (line 208)
3443
+ * mpn_gcd: Low-level Functions. (line 301)
3444
+ * mpn_gcdext: Low-level Functions. (line 316)
3445
+ * mpn_gcd_1: Low-level Functions. (line 311)
3446
+ * mpn_get_str: Low-level Functions. (line 371)
3447
+ * mpn_hamdist: Low-level Functions. (line 436)
3448
+ * mpn_iorn_n: Low-level Functions. (line 467)
3449
+ * mpn_ior_n: Low-level Functions. (line 452)
3450
+ * mpn_lshift: Low-level Functions. (line 269)
3451
+ * mpn_mod_1: Low-level Functions. (line 264)
3452
+ * mpn_mul: Low-level Functions. (line 114)
3453
+ * mpn_mul_1: Low-level Functions. (line 133)
3454
+ * mpn_mul_n: Low-level Functions. (line 103)
3455
+ * mpn_nand_n: Low-level Functions. (line 472)
3456
+ * mpn_neg: Low-level Functions. (line 96)
3457
+ * mpn_nior_n: Low-level Functions. (line 477)
3458
+ * mpn_perfect_square_p: Low-level Functions. (line 442)
3459
+ * mpn_popcount: Low-level Functions. (line 432)
3460
+ * mpn_random: Low-level Functions. (line 422)
3461
+ * mpn_random2: Low-level Functions. (line 423)
3462
+ * mpn_rshift: Low-level Functions. (line 281)
3463
+ * mpn_scan0: Low-level Functions. (line 406)
3464
+ * mpn_scan1: Low-level Functions. (line 414)
3465
+ * mpn_sec_add_1: Low-level Functions. (line 553)
3466
+ * mpn_sec_div_qr: Low-level Functions. (line 629)
3467
+ * mpn_sec_div_qr_itch: Low-level Functions. (line 632)
3468
+ * mpn_sec_div_r: Low-level Functions. (line 648)
3505
3469
  * mpn_sec_div_r_itch: Low-level Functions. (line 650)
3506
3470
  * mpn_sec_invert: Low-level Functions. (line 664)
3507
- * mpn_sec_invert_itch: Low-level Functions. (line 665)
3508
- * mpn_sec_mul: Low-level Functions. (line 577)
3509
- * mpn_sec_mul_itch: Low-level Functions. (line 578)
3510
- * mpn_sec_powm: Low-level Functions. (line 607)
3511
- * mpn_sec_powm_itch: Low-level Functions. (line 609)
3512
- * mpn_sec_sqr: Low-level Functions. (line 592)
3513
- * mpn_sec_sqr_itch: Low-level Functions. (line 593)
3514
- * mpn_sec_sub_1: Low-level Functions. (line 557)
3515
- * mpn_sec_tabselect: Low-level Functions. (line 623)
3516
- * mpn_set_str: Low-level Functions. (line 388)
3517
- * mpn_sizeinbase: Low-level Functions. (line 366)
3518
- * mpn_sqr: Low-level Functions. (line 127)
3519
- * mpn_sqrtrem: Low-level Functions. (line 348)
3520
- * mpn_sub: Low-level Functions. (line 90)
3521
- * mpn_sub_1: Low-level Functions. (line 85)
3522
- * mpn_sub_n: Low-level Functions. (line 76)
3523
- * mpn_submul_1: Low-level Functions. (line 162)
3524
- * mpn_tdiv_qr: Low-level Functions. (line 175)
3525
- * mpn_xnor_n: Low-level Functions. (line 484)
3526
- * mpn_xor_n: Low-level Functions. (line 459)
3527
- * mpn_zero: Low-level Functions. (line 501)
3528
- * mpn_zero_p: Low-level Functions. (line 299)
3529
- * mpq_abs: Rational Arithmetic. (line 34)
3530
- * mpq_add: Rational Arithmetic. (line 8)
3471
+ * mpn_sec_invert_itch: Low-level Functions. (line 666)
3472
+ * mpn_sec_mul: Low-level Functions. (line 574)
3473
+ * mpn_sec_mul_itch: Low-level Functions. (line 577)
3474
+ * mpn_sec_powm: Low-level Functions. (line 604)
3475
+ * mpn_sec_powm_itch: Low-level Functions. (line 607)
3476
+ * mpn_sec_sqr: Low-level Functions. (line 590)
3477
+ * mpn_sec_sqr_itch: Low-level Functions. (line 592)
3478
+ * mpn_sec_sub_1: Low-level Functions. (line 555)
3479
+ * mpn_sec_tabselect: Low-level Functions. (line 621)
3480
+ * mpn_set_str: Low-level Functions. (line 386)
3481
+ * mpn_sizeinbase: Low-level Functions. (line 364)
3482
+ * mpn_sqr: Low-level Functions. (line 125)
3483
+ * mpn_sqrtrem: Low-level Functions. (line 346)
3484
+ * mpn_sub: Low-level Functions. (line 88)
3485
+ * mpn_submul_1: Low-level Functions. (line 160)
3486
+ * mpn_sub_1: Low-level Functions. (line 83)
3487
+ * mpn_sub_n: Low-level Functions. (line 74)
3488
+ * mpn_tdiv_qr: Low-level Functions. (line 172)
3489
+ * mpn_xnor_n: Low-level Functions. (line 482)
3490
+ * mpn_xor_n: Low-level Functions. (line 457)
3491
+ * mpn_zero: Low-level Functions. (line 500)
3492
+ * mpn_zero_p: Low-level Functions. (line 298)
3493
+ * mpq_abs: Rational Arithmetic. (line 33)
3494
+ * mpq_add: Rational Arithmetic. (line 6)
3531
3495
  * mpq_canonicalize: Rational Number Functions.
3532
- (line 22)
3496
+ (line 21)
3533
3497
  * mpq_class: C++ Interface General.
3534
- (line 19)
3498
+ (line 18)
3535
3499
  * mpq_class::canonicalize: C++ Interface Rationals.
3536
- (line 43)
3500
+ (line 41)
3537
3501
  * mpq_class::get_d: C++ Interface Rationals.
3538
- (line 52)
3502
+ (line 51)
3539
3503
  * mpq_class::get_den: C++ Interface Rationals.
3540
- (line 66)
3504
+ (line 67)
3541
3505
  * mpq_class::get_den_mpz_t: C++ Interface Rationals.
3542
- (line 76)
3506
+ (line 77)
3543
3507
  * mpq_class::get_mpq_t: C++ Interface General.
3544
- (line 65)
3508
+ (line 64)
3545
3509
  * mpq_class::get_num: C++ Interface Rationals.
3546
- (line 65)
3510
+ (line 66)
3547
3511
  * mpq_class::get_num_mpz_t: C++ Interface Rationals.
3548
- (line 75)
3512
+ (line 76)
3549
3513
  * mpq_class::get_str: C++ Interface Rationals.
3550
- (line 53)
3514
+ (line 52)
3551
3515
  * mpq_class::mpq_class: C++ Interface Rationals.
3552
- (line 12)
3516
+ (line 9)
3517
+ * mpq_class::mpq_class <1>: C++ Interface Rationals.
3518
+ (line 10)
3519
+ * mpq_class::mpq_class <2>: C++ Interface Rationals.
3520
+ (line 21)
3521
+ * mpq_class::mpq_class <3>: C++ Interface Rationals.
3522
+ (line 26)
3523
+ * mpq_class::mpq_class <4>: C++ Interface Rationals.
3524
+ (line 28)
3553
3525
  * mpq_class::set_str: C++ Interface Rationals.
3526
+ (line 54)
3527
+ * mpq_class::set_str <1>: C++ Interface Rationals.
3554
3528
  (line 55)
3555
3529
  * mpq_class::swap: C++ Interface Rationals.
3556
- (line 57)
3530
+ (line 58)
3557
3531
  * mpq_clear: Initializing Rationals.
3558
- (line 16)
3532
+ (line 15)
3559
3533
  * mpq_clears: Initializing Rationals.
3560
- (line 20)
3561
- * mpq_cmp: Comparing Rationals. (line 7)
3562
- * mpq_cmp_si: Comparing Rationals. (line 18)
3563
- * mpq_cmp_ui: Comparing Rationals. (line 16)
3564
- * mpq_cmp_z: Comparing Rationals. (line 8)
3534
+ (line 19)
3535
+ * mpq_cmp: Comparing Rationals. (line 6)
3536
+ * mpq_cmp_si: Comparing Rationals. (line 16)
3537
+ * mpq_cmp_ui: Comparing Rationals. (line 14)
3538
+ * mpq_cmp_z: Comparing Rationals. (line 7)
3565
3539
  * mpq_denref: Applying Integer Functions.
3566
- (line 18)
3567
- * mpq_div: Rational Arithmetic. (line 24)
3568
- * mpq_div_2exp: Rational Arithmetic. (line 28)
3569
- * mpq_equal: Comparing Rationals. (line 34)
3540
+ (line 16)
3541
+ * mpq_div: Rational Arithmetic. (line 22)
3542
+ * mpq_div_2exp: Rational Arithmetic. (line 26)
3543
+ * mpq_equal: Comparing Rationals. (line 33)
3570
3544
  * mpq_get_d: Rational Conversions.
3571
- (line 7)
3545
+ (line 6)
3572
3546
  * mpq_get_den: Applying Integer Functions.
3573
- (line 24)
3547
+ (line 22)
3574
3548
  * mpq_get_num: Applying Integer Functions.
3575
- (line 23)
3549
+ (line 21)
3576
3550
  * mpq_get_str: Rational Conversions.
3577
- (line 22)
3551
+ (line 21)
3578
3552
  * mpq_init: Initializing Rationals.
3579
- (line 7)
3553
+ (line 6)
3580
3554
  * mpq_inits: Initializing Rationals.
3581
- (line 12)
3582
- * mpq_inp_str: I/O of Rationals. (line 27)
3583
- * mpq_inv: Rational Arithmetic. (line 37)
3584
- * mpq_mul: Rational Arithmetic. (line 16)
3585
- * mpq_mul_2exp: Rational Arithmetic. (line 20)
3586
- * mpq_neg: Rational Arithmetic. (line 31)
3555
+ (line 11)
3556
+ * mpq_inp_str: I/O of Rationals. (line 26)
3557
+ * mpq_inv: Rational Arithmetic. (line 36)
3558
+ * mpq_mul: Rational Arithmetic. (line 14)
3559
+ * mpq_mul_2exp: Rational Arithmetic. (line 18)
3560
+ * mpq_neg: Rational Arithmetic. (line 30)
3587
3561
  * mpq_numref: Applying Integer Functions.
3588
- (line 17)
3589
- * mpq_out_str: I/O of Rationals. (line 19)
3562
+ (line 15)
3563
+ * mpq_out_str: I/O of Rationals. (line 17)
3590
3564
  * mpq_set: Initializing Rationals.
3591
- (line 24)
3565
+ (line 23)
3592
3566
  * mpq_set_d: Rational Conversions.
3593
- (line 17)
3567
+ (line 16)
3594
3568
  * mpq_set_den: Applying Integer Functions.
3595
- (line 26)
3569
+ (line 24)
3596
3570
  * mpq_set_f: Rational Conversions.
3597
- (line 18)
3571
+ (line 17)
3598
3572
  * mpq_set_num: Applying Integer Functions.
3599
- (line 25)
3573
+ (line 23)
3600
3574
  * mpq_set_si: Initializing Rationals.
3601
- (line 31)
3575
+ (line 29)
3602
3576
  * mpq_set_str: Initializing Rationals.
3603
- (line 36)
3577
+ (line 35)
3604
3578
  * mpq_set_ui: Initializing Rationals.
3605
- (line 29)
3579
+ (line 27)
3606
3580
  * mpq_set_z: Initializing Rationals.
3607
- (line 25)
3608
- * mpq_sgn: Comparing Rationals. (line 28)
3609
- * mpq_sub: Rational Arithmetic. (line 12)
3581
+ (line 24)
3582
+ * mpq_sgn: Comparing Rationals. (line 27)
3583
+ * mpq_sub: Rational Arithmetic. (line 10)
3610
3584
  * mpq_swap: Initializing Rationals.
3611
- (line 56)
3585
+ (line 54)
3612
3586
  * mpq_t: Nomenclature and Types.
3613
3587
  (line 16)
3614
3588
  * mpz_2fac_ui: Number Theoretic Functions.
3615
- (line 110)
3616
- * mpz_abs: Integer Arithmetic. (line 45)
3617
- * mpz_add: Integer Arithmetic. (line 7)
3618
- * mpz_add_ui: Integer Arithmetic. (line 9)
3619
- * mpz_addmul: Integer Arithmetic. (line 26)
3620
- * mpz_addmul_ui: Integer Arithmetic. (line 28)
3589
+ (line 109)
3590
+ * mpz_abs: Integer Arithmetic. (line 44)
3591
+ * mpz_add: Integer Arithmetic. (line 6)
3592
+ * mpz_addmul: Integer Arithmetic. (line 24)
3593
+ * mpz_addmul_ui: Integer Arithmetic. (line 26)
3594
+ * mpz_add_ui: Integer Arithmetic. (line 7)
3621
3595
  * mpz_and: Integer Logic and Bit Fiddling.
3622
- (line 11)
3596
+ (line 10)
3623
3597
  * mpz_array_init: Integer Special Functions.
3624
- (line 11)
3598
+ (line 9)
3625
3599
  * mpz_bin_ui: Number Theoretic Functions.
3626
- (line 122)
3600
+ (line 120)
3627
3601
  * mpz_bin_uiui: Number Theoretic Functions.
3628
- (line 124)
3629
- * mpz_cdiv_q: Integer Division. (line 13)
3602
+ (line 122)
3603
+ * mpz_cdiv_q: Integer Division. (line 12)
3604
+ * mpz_cdiv_qr: Integer Division. (line 14)
3605
+ * mpz_cdiv_qr_ui: Integer Division. (line 21)
3630
3606
  * mpz_cdiv_q_2exp: Integer Division. (line 26)
3631
- * mpz_cdiv_q_ui: Integer Division. (line 18)
3632
- * mpz_cdiv_qr: Integer Division. (line 16)
3633
- * mpz_cdiv_qr_ui: Integer Division. (line 22)
3634
- * mpz_cdiv_r: Integer Division. (line 14)
3635
- * mpz_cdiv_r_2exp: Integer Division. (line 28)
3636
- * mpz_cdiv_r_ui: Integer Division. (line 20)
3637
- * mpz_cdiv_ui: Integer Division. (line 24)
3607
+ * mpz_cdiv_q_ui: Integer Division. (line 17)
3608
+ * mpz_cdiv_r: Integer Division. (line 13)
3609
+ * mpz_cdiv_r_2exp: Integer Division. (line 29)
3610
+ * mpz_cdiv_r_ui: Integer Division. (line 19)
3611
+ * mpz_cdiv_ui: Integer Division. (line 23)
3638
3612
  * mpz_class: C++ Interface General.
3639
- (line 18)
3613
+ (line 17)
3640
3614
  * mpz_class::fits_sint_p: C++ Interface Integers.
3641
3615
  (line 50)
3642
3616
  * mpz_class::fits_slong_p: C++ Interface Integers.
@@ -3644,279 +3618,303 @@ Function and Type Index
3644
3618
  * mpz_class::fits_sshort_p: C++ Interface Integers.
3645
3619
  (line 52)
3646
3620
  * mpz_class::fits_uint_p: C++ Interface Integers.
3647
- (line 53)
3648
- * mpz_class::fits_ulong_p: C++ Interface Integers.
3649
3621
  (line 54)
3650
- * mpz_class::fits_ushort_p: C++ Interface Integers.
3622
+ * mpz_class::fits_ulong_p: C++ Interface Integers.
3651
3623
  (line 55)
3652
- * mpz_class::get_d: C++ Interface Integers.
3624
+ * mpz_class::fits_ushort_p: C++ Interface Integers.
3653
3625
  (line 56)
3626
+ * mpz_class::get_d: C++ Interface Integers.
3627
+ (line 58)
3654
3628
  * mpz_class::get_mpz_t: C++ Interface General.
3655
- (line 64)
3629
+ (line 63)
3656
3630
  * mpz_class::get_si: C++ Interface Integers.
3657
- (line 57)
3631
+ (line 59)
3658
3632
  * mpz_class::get_str: C++ Interface Integers.
3659
- (line 58)
3633
+ (line 60)
3660
3634
  * mpz_class::get_ui: C++ Interface Integers.
3661
- (line 59)
3635
+ (line 61)
3662
3636
  * mpz_class::mpz_class: C++ Interface Integers.
3663
- (line 7)
3637
+ (line 6)
3638
+ * mpz_class::mpz_class <1>: C++ Interface Integers.
3639
+ (line 14)
3640
+ * mpz_class::mpz_class <2>: C++ Interface Integers.
3641
+ (line 19)
3642
+ * mpz_class::mpz_class <3>: C++ Interface Integers.
3643
+ (line 21)
3664
3644
  * mpz_class::set_str: C++ Interface Integers.
3665
- (line 61)
3645
+ (line 63)
3646
+ * mpz_class::set_str <1>: C++ Interface Integers.
3647
+ (line 64)
3666
3648
  * mpz_class::swap: C++ Interface Integers.
3667
- (line 66)
3649
+ (line 71)
3668
3650
  * mpz_clear: Initializing Integers.
3669
- (line 49)
3651
+ (line 48)
3670
3652
  * mpz_clears: Initializing Integers.
3671
- (line 53)
3653
+ (line 52)
3672
3654
  * mpz_clrbit: Integer Logic and Bit Fiddling.
3673
- (line 56)
3674
- * mpz_cmp: Integer Comparisons. (line 7)
3675
- * mpz_cmp_d: Integer Comparisons. (line 8)
3676
- * mpz_cmp_si: Integer Comparisons. (line 9)
3677
- * mpz_cmp_ui: Integer Comparisons. (line 10)
3678
- * mpz_cmpabs: Integer Comparisons. (line 18)
3679
- * mpz_cmpabs_d: Integer Comparisons. (line 19)
3680
- * mpz_cmpabs_ui: Integer Comparisons. (line 20)
3655
+ (line 54)
3656
+ * mpz_cmp: Integer Comparisons. (line 6)
3657
+ * mpz_cmpabs: Integer Comparisons. (line 17)
3658
+ * mpz_cmpabs_d: Integer Comparisons. (line 18)
3659
+ * mpz_cmpabs_ui: Integer Comparisons. (line 19)
3660
+ * mpz_cmp_d: Integer Comparisons. (line 7)
3661
+ * mpz_cmp_si: Integer Comparisons. (line 8)
3662
+ * mpz_cmp_ui: Integer Comparisons. (line 9)
3681
3663
  * mpz_com: Integer Logic and Bit Fiddling.
3682
- (line 20)
3664
+ (line 19)
3683
3665
  * mpz_combit: Integer Logic and Bit Fiddling.
3684
- (line 59)
3685
- * mpz_congruent_2exp_p: Integer Division. (line 137)
3686
- * mpz_congruent_p: Integer Division. (line 133)
3687
- * mpz_congruent_ui_p: Integer Division. (line 135)
3688
- * mpz_divexact: Integer Division. (line 110)
3689
- * mpz_divexact_ui: Integer Division. (line 112)
3690
- * mpz_divisible_2exp_p: Integer Division. (line 123)
3691
- * mpz_divisible_p: Integer Division. (line 120)
3692
- * mpz_divisible_ui_p: Integer Division. (line 122)
3666
+ (line 57)
3667
+ * mpz_congruent_2exp_p: Integer Division. (line 148)
3668
+ * mpz_congruent_p: Integer Division. (line 144)
3669
+ * mpz_congruent_ui_p: Integer Division. (line 146)
3670
+ * mpz_divexact: Integer Division. (line 122)
3671
+ * mpz_divexact_ui: Integer Division. (line 123)
3672
+ * mpz_divisible_2exp_p: Integer Division. (line 135)
3673
+ * mpz_divisible_p: Integer Division. (line 132)
3674
+ * mpz_divisible_ui_p: Integer Division. (line 133)
3693
3675
  * mpz_even_p: Miscellaneous Integer Functions.
3694
- (line 18)
3676
+ (line 17)
3695
3677
  * mpz_export: Integer Import and Export.
3696
- (line 45)
3678
+ (line 43)
3697
3679
  * mpz_fac_ui: Number Theoretic Functions.
3698
- (line 109)
3699
- * mpz_fdiv_q: Integer Division. (line 30)
3700
- * mpz_fdiv_q_2exp: Integer Division. (line 43)
3701
- * mpz_fdiv_q_ui: Integer Division. (line 35)
3702
- * mpz_fdiv_qr: Integer Division. (line 33)
3703
- * mpz_fdiv_qr_ui: Integer Division. (line 39)
3704
- * mpz_fdiv_r: Integer Division. (line 31)
3705
- * mpz_fdiv_r_2exp: Integer Division. (line 45)
3706
- * mpz_fdiv_r_ui: Integer Division. (line 37)
3707
- * mpz_fdiv_ui: Integer Division. (line 41)
3680
+ (line 108)
3681
+ * mpz_fdiv_q: Integer Division. (line 33)
3682
+ * mpz_fdiv_qr: Integer Division. (line 35)
3683
+ * mpz_fdiv_qr_ui: Integer Division. (line 42)
3684
+ * mpz_fdiv_q_2exp: Integer Division. (line 47)
3685
+ * mpz_fdiv_q_ui: Integer Division. (line 38)
3686
+ * mpz_fdiv_r: Integer Division. (line 34)
3687
+ * mpz_fdiv_r_2exp: Integer Division. (line 50)
3688
+ * mpz_fdiv_r_ui: Integer Division. (line 40)
3689
+ * mpz_fdiv_ui: Integer Division. (line 44)
3708
3690
  * mpz_fib2_ui: Number Theoretic Functions.
3709
- (line 132)
3710
- * mpz_fib_ui: Number Theoretic Functions.
3711
3691
  (line 130)
3692
+ * mpz_fib_ui: Number Theoretic Functions.
3693
+ (line 129)
3712
3694
  * mpz_fits_sint_p: Miscellaneous Integer Functions.
3713
- (line 10)
3695
+ (line 9)
3714
3696
  * mpz_fits_slong_p: Miscellaneous Integer Functions.
3715
- (line 8)
3697
+ (line 7)
3716
3698
  * mpz_fits_sshort_p: Miscellaneous Integer Functions.
3717
- (line 12)
3699
+ (line 11)
3718
3700
  * mpz_fits_uint_p: Miscellaneous Integer Functions.
3719
- (line 9)
3701
+ (line 8)
3720
3702
  * mpz_fits_ulong_p: Miscellaneous Integer Functions.
3721
- (line 7)
3703
+ (line 6)
3722
3704
  * mpz_fits_ushort_p: Miscellaneous Integer Functions.
3723
- (line 11)
3705
+ (line 10)
3724
3706
  * mpz_gcd: Number Theoretic Functions.
3725
- (line 26)
3726
- * mpz_gcd_ui: Number Theoretic Functions.
3727
- (line 33)
3707
+ (line 25)
3728
3708
  * mpz_gcdext: Number Theoretic Functions.
3729
- (line 43)
3730
- * mpz_get_d: Converting Integers. (line 27)
3731
- * mpz_get_d_2exp: Converting Integers. (line 36)
3732
- * mpz_get_si: Converting Integers. (line 18)
3733
- * mpz_get_str: Converting Integers. (line 47)
3734
- * mpz_get_ui: Converting Integers. (line 11)
3709
+ (line 41)
3710
+ * mpz_gcd_ui: Number Theoretic Functions.
3711
+ (line 31)
3735
3712
  * mpz_getlimbn: Integer Special Functions.
3736
- (line 23)
3713
+ (line 22)
3714
+ * mpz_get_d: Converting Integers. (line 26)
3715
+ * mpz_get_d_2exp: Converting Integers. (line 34)
3716
+ * mpz_get_si: Converting Integers. (line 17)
3717
+ * mpz_get_str: Converting Integers. (line 46)
3718
+ * mpz_get_ui: Converting Integers. (line 10)
3737
3719
  * mpz_hamdist: Integer Logic and Bit Fiddling.
3738
- (line 29)
3720
+ (line 28)
3739
3721
  * mpz_import: Integer Import and Export.
3740
- (line 11)
3722
+ (line 9)
3741
3723
  * mpz_init: Initializing Integers.
3742
- (line 26)
3724
+ (line 25)
3743
3725
  * mpz_init2: Initializing Integers.
3744
- (line 33)
3726
+ (line 32)
3727
+ * mpz_inits: Initializing Integers.
3728
+ (line 28)
3745
3729
  * mpz_init_set: Simultaneous Integer Init & Assign.
3746
- (line 27)
3730
+ (line 26)
3747
3731
  * mpz_init_set_d: Simultaneous Integer Init & Assign.
3748
- (line 30)
3749
- * mpz_init_set_si: Simultaneous Integer Init & Assign.
3750
3732
  (line 29)
3733
+ * mpz_init_set_si: Simultaneous Integer Init & Assign.
3734
+ (line 28)
3751
3735
  * mpz_init_set_str: Simultaneous Integer Init & Assign.
3752
- (line 35)
3736
+ (line 33)
3753
3737
  * mpz_init_set_ui: Simultaneous Integer Init & Assign.
3754
- (line 28)
3755
- * mpz_inits: Initializing Integers.
3756
- (line 29)
3757
- * mpz_inp_raw: I/O of Integers. (line 62)
3758
- * mpz_inp_str: I/O of Integers. (line 31)
3738
+ (line 27)
3739
+ * mpz_inp_raw: I/O of Integers. (line 61)
3740
+ * mpz_inp_str: I/O of Integers. (line 30)
3759
3741
  * mpz_invert: Number Theoretic Functions.
3760
- (line 70)
3742
+ (line 68)
3761
3743
  * mpz_ior: Integer Logic and Bit Fiddling.
3762
- (line 14)
3744
+ (line 13)
3763
3745
  * mpz_jacobi: Number Theoretic Functions.
3764
- (line 79)
3746
+ (line 78)
3765
3747
  * mpz_kronecker: Number Theoretic Functions.
3766
- (line 87)
3748
+ (line 86)
3767
3749
  * mpz_kronecker_si: Number Theoretic Functions.
3768
- (line 88)
3750
+ (line 87)
3769
3751
  * mpz_kronecker_ui: Number Theoretic Functions.
3770
- (line 89)
3752
+ (line 88)
3771
3753
  * mpz_lcm: Number Theoretic Functions.
3772
- (line 62)
3754
+ (line 61)
3773
3755
  * mpz_lcm_ui: Number Theoretic Functions.
3774
- (line 64)
3756
+ (line 62)
3775
3757
  * mpz_legendre: Number Theoretic Functions.
3776
- (line 82)
3758
+ (line 81)
3777
3759
  * mpz_limbs_finish: Integer Special Functions.
3778
- (line 48)
3760
+ (line 47)
3779
3761
  * mpz_limbs_modify: Integer Special Functions.
3780
- (line 41)
3762
+ (line 40)
3781
3763
  * mpz_limbs_read: Integer Special Functions.
3782
- (line 35)
3764
+ (line 34)
3783
3765
  * mpz_limbs_write: Integer Special Functions.
3784
- (line 40)
3766
+ (line 39)
3785
3767
  * mpz_lucnum2_ui: Number Theoretic Functions.
3786
- (line 143)
3787
- * mpz_lucnum_ui: Number Theoretic Functions.
3788
3768
  (line 141)
3769
+ * mpz_lucnum_ui: Number Theoretic Functions.
3770
+ (line 140)
3789
3771
  * mpz_mfac_uiui: Number Theoretic Functions.
3790
- (line 112)
3791
- * mpz_mod: Integer Division. (line 100)
3792
- * mpz_mod_ui: Integer Division. (line 102)
3793
- * mpz_mul: Integer Arithmetic. (line 19)
3794
- * mpz_mul_2exp: Integer Arithmetic. (line 38)
3795
- * mpz_mul_si: Integer Arithmetic. (line 20)
3796
- * mpz_mul_ui: Integer Arithmetic. (line 22)
3797
- * mpz_neg: Integer Arithmetic. (line 42)
3772
+ (line 110)
3773
+ * mpz_mod: Integer Division. (line 112)
3774
+ * mpz_mod_ui: Integer Division. (line 113)
3775
+ * mpz_mul: Integer Arithmetic. (line 18)
3776
+ * mpz_mul_2exp: Integer Arithmetic. (line 36)
3777
+ * mpz_mul_si: Integer Arithmetic. (line 19)
3778
+ * mpz_mul_ui: Integer Arithmetic. (line 20)
3779
+ * mpz_neg: Integer Arithmetic. (line 41)
3798
3780
  * mpz_nextprime: Number Theoretic Functions.
3799
- (line 19)
3781
+ (line 18)
3800
3782
  * mpz_odd_p: Miscellaneous Integer Functions.
3801
- (line 17)
3802
- * mpz_out_raw: I/O of Integers. (line 46)
3803
- * mpz_out_str: I/O of Integers. (line 19)
3804
- * mpz_perfect_power_p: Integer Roots. (line 28)
3805
- * mpz_perfect_square_p: Integer Roots. (line 37)
3783
+ (line 16)
3784
+ * mpz_out_raw: I/O of Integers. (line 45)
3785
+ * mpz_out_str: I/O of Integers. (line 17)
3786
+ * mpz_perfect_power_p: Integer Roots. (line 27)
3787
+ * mpz_perfect_square_p: Integer Roots. (line 36)
3806
3788
  * mpz_popcount: Integer Logic and Bit Fiddling.
3807
- (line 23)
3808
- * mpz_pow_ui: Integer Exponentiation.
3809
- (line 31)
3789
+ (line 22)
3810
3790
  * mpz_powm: Integer Exponentiation.
3811
- (line 8)
3791
+ (line 6)
3812
3792
  * mpz_powm_sec: Integer Exponentiation.
3813
- (line 18)
3793
+ (line 16)
3814
3794
  * mpz_powm_ui: Integer Exponentiation.
3815
- (line 10)
3795
+ (line 8)
3796
+ * mpz_pow_ui: Integer Exponentiation.
3797
+ (line 29)
3816
3798
  * mpz_primorial_ui: Number Theoretic Functions.
3817
- (line 117)
3799
+ (line 116)
3818
3800
  * mpz_probab_prime_p: Number Theoretic Functions.
3819
- (line 7)
3801
+ (line 6)
3820
3802
  * mpz_random: Integer Random Numbers.
3821
- (line 42)
3803
+ (line 41)
3822
3804
  * mpz_random2: Integer Random Numbers.
3823
- (line 51)
3805
+ (line 50)
3824
3806
  * mpz_realloc2: Initializing Integers.
3825
- (line 57)
3807
+ (line 56)
3826
3808
  * mpz_remove: Number Theoretic Functions.
3827
- (line 104)
3809
+ (line 102)
3828
3810
  * mpz_roinit_n: Integer Special Functions.
3829
- (line 69)
3811
+ (line 67)
3830
3812
  * MPZ_ROINIT_N: Integer Special Functions.
3831
- (line 84)
3832
- * mpz_root: Integer Roots. (line 8)
3833
- * mpz_rootrem: Integer Roots. (line 14)
3813
+ (line 83)
3814
+ * mpz_root: Integer Roots. (line 6)
3815
+ * mpz_rootrem: Integer Roots. (line 12)
3834
3816
  * mpz_rrandomb: Integer Random Numbers.
3835
- (line 31)
3817
+ (line 29)
3836
3818
  * mpz_scan0: Integer Logic and Bit Fiddling.
3837
- (line 38)
3819
+ (line 35)
3838
3820
  * mpz_scan1: Integer Logic and Bit Fiddling.
3839
- (line 40)
3840
- * mpz_set: Assigning Integers. (line 10)
3841
- * mpz_set_d: Assigning Integers. (line 13)
3842
- * mpz_set_f: Assigning Integers. (line 15)
3843
- * mpz_set_q: Assigning Integers. (line 14)
3844
- * mpz_set_si: Assigning Integers. (line 12)
3845
- * mpz_set_str: Assigning Integers. (line 21)
3846
- * mpz_set_ui: Assigning Integers. (line 11)
3821
+ (line 37)
3822
+ * mpz_set: Assigning Integers. (line 9)
3847
3823
  * mpz_setbit: Integer Logic and Bit Fiddling.
3848
- (line 53)
3849
- * mpz_sgn: Integer Comparisons. (line 28)
3850
- * mpz_si_kronecker: Number Theoretic Functions.
3851
- (line 90)
3824
+ (line 51)
3825
+ * mpz_set_d: Assigning Integers. (line 12)
3826
+ * mpz_set_f: Assigning Integers. (line 14)
3827
+ * mpz_set_q: Assigning Integers. (line 13)
3828
+ * mpz_set_si: Assigning Integers. (line 11)
3829
+ * mpz_set_str: Assigning Integers. (line 20)
3830
+ * mpz_set_ui: Assigning Integers. (line 10)
3831
+ * mpz_sgn: Integer Comparisons. (line 27)
3852
3832
  * mpz_size: Integer Special Functions.
3853
- (line 31)
3833
+ (line 30)
3854
3834
  * mpz_sizeinbase: Miscellaneous Integer Functions.
3855
- (line 23)
3856
- * mpz_sqrt: Integer Roots. (line 18)
3857
- * mpz_sqrtrem: Integer Roots. (line 21)
3858
- * mpz_sub: Integer Arithmetic. (line 12)
3859
- * mpz_sub_ui: Integer Arithmetic. (line 14)
3860
- * mpz_submul: Integer Arithmetic. (line 32)
3861
- * mpz_submul_ui: Integer Arithmetic. (line 34)
3862
- * mpz_swap: Assigning Integers. (line 37)
3835
+ (line 22)
3836
+ * mpz_si_kronecker: Number Theoretic Functions.
3837
+ (line 89)
3838
+ * mpz_sqrt: Integer Roots. (line 17)
3839
+ * mpz_sqrtrem: Integer Roots. (line 20)
3840
+ * mpz_sub: Integer Arithmetic. (line 11)
3841
+ * mpz_submul: Integer Arithmetic. (line 30)
3842
+ * mpz_submul_ui: Integer Arithmetic. (line 32)
3843
+ * mpz_sub_ui: Integer Arithmetic. (line 12)
3844
+ * mpz_swap: Assigning Integers. (line 36)
3863
3845
  * mpz_t: Nomenclature and Types.
3864
3846
  (line 6)
3865
- * mpz_tdiv_q: Integer Division. (line 47)
3866
- * mpz_tdiv_q_2exp: Integer Division. (line 60)
3867
- * mpz_tdiv_q_ui: Integer Division. (line 52)
3868
- * mpz_tdiv_qr: Integer Division. (line 50)
3869
- * mpz_tdiv_qr_ui: Integer Division. (line 56)
3870
- * mpz_tdiv_r: Integer Division. (line 48)
3871
- * mpz_tdiv_r_2exp: Integer Division. (line 62)
3872
- * mpz_tdiv_r_ui: Integer Division. (line 54)
3873
- * mpz_tdiv_ui: Integer Division. (line 58)
3847
+ * mpz_tdiv_q: Integer Division. (line 54)
3848
+ * mpz_tdiv_qr: Integer Division. (line 56)
3849
+ * mpz_tdiv_qr_ui: Integer Division. (line 63)
3850
+ * mpz_tdiv_q_2exp: Integer Division. (line 68)
3851
+ * mpz_tdiv_q_ui: Integer Division. (line 59)
3852
+ * mpz_tdiv_r: Integer Division. (line 55)
3853
+ * mpz_tdiv_r_2exp: Integer Division. (line 71)
3854
+ * mpz_tdiv_r_ui: Integer Division. (line 61)
3855
+ * mpz_tdiv_ui: Integer Division. (line 65)
3874
3856
  * mpz_tstbit: Integer Logic and Bit Fiddling.
3875
- (line 62)
3857
+ (line 60)
3876
3858
  * mpz_ui_kronecker: Number Theoretic Functions.
3877
- (line 91)
3859
+ (line 90)
3878
3860
  * mpz_ui_pow_ui: Integer Exponentiation.
3879
- (line 33)
3880
- * mpz_ui_sub: Integer Arithmetic. (line 16)
3861
+ (line 31)
3862
+ * mpz_ui_sub: Integer Arithmetic. (line 14)
3881
3863
  * mpz_urandomb: Integer Random Numbers.
3882
- (line 14)
3864
+ (line 12)
3883
3865
  * mpz_urandomm: Integer Random Numbers.
3884
- (line 23)
3866
+ (line 21)
3885
3867
  * mpz_xor: Integer Logic and Bit Fiddling.
3886
- (line 17)
3887
- * operator"" <1>: C++ Interface Floats.
3888
- (line 56)
3889
- * operator"" <2>: C++ Interface Rationals.
3890
- (line 38)
3868
+ (line 16)
3869
+ * mp_bitcnt_t: Nomenclature and Types.
3870
+ (line 42)
3871
+ * mp_bits_per_limb: Useful Macros and Constants.
3872
+ (line 7)
3873
+ * mp_exp_t: Nomenclature and Types.
3874
+ (line 27)
3875
+ * mp_get_memory_functions: Custom Allocation. (line 86)
3876
+ * mp_limb_t: Nomenclature and Types.
3877
+ (line 31)
3878
+ * mp_set_memory_functions: Custom Allocation. (line 14)
3879
+ * mp_size_t: Nomenclature and Types.
3880
+ (line 37)
3891
3881
  * operator"": C++ Interface Integers.
3892
- (line 30)
3882
+ (line 29)
3883
+ * operator"" <1>: C++ Interface Rationals.
3884
+ (line 36)
3885
+ * operator"" <2>: C++ Interface Floats.
3886
+ (line 55)
3893
3887
  * operator%: C++ Interface Integers.
3894
- (line 35)
3895
- * operator/: C++ Interface Integers.
3896
3888
  (line 34)
3897
- * operator<<: C++ Formatted Output.
3889
+ * operator/: C++ Interface Integers.
3898
3890
  (line 33)
3899
- * operator>> <1>: C++ Formatted Input. (line 14)
3900
- * operator>> <2>: C++ Interface Rationals.
3901
- (line 85)
3902
- * operator>>: C++ Formatted Input. (line 25)
3903
- * sgn <1>: C++ Interface Integers.
3904
- (line 62)
3905
- * sgn <2>: C++ Interface Rationals.
3891
+ * operator<<: C++ Formatted Output.
3892
+ (line 10)
3893
+ * operator<< <1>: C++ Formatted Output.
3894
+ (line 19)
3895
+ * operator<< <2>: C++ Formatted Output.
3896
+ (line 32)
3897
+ * operator>>: C++ Formatted Input. (line 10)
3898
+ * operator>> <1>: C++ Formatted Input. (line 13)
3899
+ * operator>> <2>: C++ Formatted Input. (line 24)
3900
+ * operator>> <3>: C++ Interface Rationals.
3901
+ (line 86)
3902
+ * sgn: C++ Interface Integers.
3903
+ (line 65)
3904
+ * sgn <1>: C++ Interface Rationals.
3906
3905
  (line 56)
3907
- * sgn: C++ Interface Floats.
3908
- (line 102)
3909
- * sqrt <1>: C++ Interface Integers.
3910
- (line 63)
3911
- * sqrt: C++ Interface Floats.
3912
- (line 103)
3913
- * swap <1>: C++ Interface Floats.
3914
- (line 105)
3915
- * swap <2>: C++ Interface Rationals.
3916
- (line 58)
3906
+ * sgn <2>: C++ Interface Floats.
3907
+ (line 106)
3908
+ * sqrt: C++ Interface Integers.
3909
+ (line 66)
3910
+ * sqrt <1>: C++ Interface Floats.
3911
+ (line 107)
3917
3912
  * swap: C++ Interface Integers.
3918
- (line 67)
3913
+ (line 72)
3914
+ * swap <1>: C++ Interface Rationals.
3915
+ (line 59)
3916
+ * swap <2>: C++ Interface Floats.
3917
+ (line 110)
3919
3918
  * trunc: C++ Interface Floats.
3920
- (line 106)
3921
-
3919
+ (line 111)
3922
3920