summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorKevin Ryde <user42@zip.com.au>2000-10-21 21:51:15 +0200
committerKevin Ryde <user42@zip.com.au>2000-10-21 21:51:15 +0200
commit268e121a45b4716afaed694abcf2677f8b0c8cd2 (patch)
tree877134226cdb387bd695b532bb695f1d330067e4 /doc
parent069ea19817a45076053215304efc212fba596c11 (diff)
downloadgmp-268e121a45b4716afaed694abcf2677f8b0c8cd2.tar.gz
Change sub-quadratic divexact task to want this for mpn_bdivmod which
will then help divexact, gcd and hopefully redc. Add mpn_gcd_1 to use exact division reduction not mpn_mod_1. Add --enable-abi idea.
Diffstat (limited to 'doc')
-rw-r--r--doc/tasks.html22
1 files changed, 19 insertions, 3 deletions
diff --git a/doc/tasks.html b/doc/tasks.html
index f914c2413..f574be62d 100644
--- a/doc/tasks.html
+++ b/doc/tasks.html
@@ -143,10 +143,19 @@
targets with native versions of those routines. Need to be careful not to
pass size==0. Is some code sharing possible between the <code>mpz</code>
routines?
-<li> <code>mpz_divexact</code> should use a divide and conquer like the normal
+<li> <code>mpn_bdivmod</code> should use a divide and conquer like the normal
division. See "Exact Division with Karatsuba Complexity" by Jebelean for
- a (brief) description. Might be possible to share code with a divide and
- conquer REDC.
+ a (brief) description. This will benefit <code>mpz_divexact</code>
+ immediately, and <code>mpn_gcd</code> on large unequal size operands.
+ REDC should be able to use it too.
+<li> <code>mpn_gcd_1</code>, <code>mpz_kronecker_ui</code> etc should be able
+ to do an exact division style reduction initially, rather than
+ <code>mpn_mod_1</code>. This would be the same as <code>mpn_gcd</code>
+ does using <code>mpn_bdivmod</code>. This is still two multiplies per
+ limb, but is simpler and should be faster than mul by inverse division.
+ Perhaps a function <code>mpn_modexact_1</code>, being the remainder part
+ of an <code>mpn_divexact_1</code>. Creating the modular inverse will take
+ a few cycles, so it might be only for say 4 limbs and up.
</ul>
@@ -306,6 +315,13 @@
be conditionalized, and the appropriate form could be selected with the
<code>HAVE_NATIVE</code> scheme if/when the code switches to use a
<code>PROLOGUE</code> style.
+<li> Think about a --enable-abi=FOO to select which abi to use on systems that
+ support multiple calling conventions and/or data sizes. The default could
+ be "guess", other choices could be made by users wanting compatibility
+ with other object code. Doing the right thing with where and how to
+ install library files probably needs a lot of help from automake and
+ libtool. A few simple cases like /usr/lib/sparcv9 might be easy enough
+ though.
</ul>
<p> In general, getting the exact right configuration, passing the