From d57523fb0819b14082283d41444915486f9bd1bf Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Wed, 16 Mar 2016 14:47:49 +0100 Subject: Add note on performance of commutative functions with assignment to operand MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- man/libzahl.7 | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'man') diff --git a/man/libzahl.7 b/man/libzahl.7 index 6f7aa59..f6dc99e 100644 --- a/man/libzahl.7 +++ b/man/libzahl.7 @@ -25,6 +25,21 @@ them for reuse. .P With the exception of functions working with strings, all output parameters are before the input parameters. +.P +Like any self-respecting big number library, libzahl +supports assign values to variables that are also +input variables. However, keep in mind that commutative +functions are optimised for the first operand to also +be the output over the second operand to also be the +input. For example, \fIzadd(a,a,b)\fP should be faster +than \fIzadd(a,b,a)\fP, although both are supported. +Whether or not the function believe that it is more +likely to occur that the input variables are different +that the output variable than the output variable +being the first input variable depends on the function. +Some functions are implemented to believe that the +first is more likely, other fucntions are implemented +to believe that the latter is more likely. .SH RATIONALE GMP MP cannot be used for rubust programs. LibTomMath is too slow, probably because of all memory allocations, -- cgit v1.2.3-70-g09d2