summaryrefslogtreecommitdiff
path: root/src/mul.c
Commit message (Collapse)AuthorAgeFilesLines
* improved version of mpfr_fmma, before we had for MPCbench:zimmerma2014-01-231-26/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | score for mul : 178271 score for add : 2871184 score for sub : 2699846 score for div : 70527 group score Arith : 558739 score for sqrt : 93427 score for exp : 9422 score for log : 4734 score for cos : 8291 score for sin : 8308 score for acos : 2846 score for asin : 2724 group score Special : 8068 global score : 37672 Now: score for mul : 196286 score for add : 2865480 score for sub : 2665855 score for div : 72851 group score Arith : 574896 score for sqrt : 93204 score for exp : 9432 score for log : 4720 score for cos : 8304 score for sin : 8327 score for acos : 2849 score for asin : 2731 group score Special : 8071 global score : 38075 git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1439 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* fixed typos reported by Ondřej Bílka <neleai@seznam.cz>zimmerma2013-07-241-1/+1
| | | | | | | (cf http://lists.gforge.inria.fr/pipermail/mpc-discuss/2013-July/001241.html) git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1298 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* remove compatibility function ROUND_AWAYenge2012-07-231-5/+5
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1247 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* changed GMP_RND? to MPFR_RND?enge2012-07-231-25/+25
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1246 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* [mul.c] don't call mpc_sqr any more when both inputs are the same variablezimmerma2012-03-061-6/+0
| | | | | | | [mpc.texi,NEWS] document the above change git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1139 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mpc-impl.h, mul.c: made mpfr_fmma static againenge2012-03-021-1/+1
| | | | | | | | | sqr.c: copied mpfr_fmma as mpfr_fsss and adapted to case a^2-v^2 sqr.dat: activated last test passes with naive squaring, but not with Karatsuba git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1137 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c: added missing case of exactly one underflow to mpfr_fmma;enge2012-03-021-0/+8
| | | | | | | | commented out test case in sqr.dat now passes when artificially forcing naive squaring git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1136 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c: reverted previous, too hasty commit; needs more thoughtenge2012-03-021-4/+5
| | | | | | | | | | mpc-impl.h, mul.c, sqr.c: for the time being, exported mpfr_fmma to be shared between mul.c and sqr.c sqr.dat: added commented out test that currently fails with naive and Karatsuba algorithms alike git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1135 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* sqr.c, mul.c: in the naive algorithm, redo computations with exact exponentsenge2012-03-021-5/+4
| | | | | | | | | in more cases; corrects bug for test + - 10 0b1e-1073741824 10 0 100 0b1@-536870912 100 0b1@-536870913 N N (not yet added to sqr.dat) git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1134 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* replaced MPC_RE by mpc_realref and MPC_IM by mpc_imagref everywhereenge2011-11-041-80/+80
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1112 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* div.c: slight reorganisation of codeenge2011-09-021-3/+3
| | | | | | | mul.c: changed name of static function git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1073 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* [src/mul.c] removed trailing blankzimmerma2011-09-011-1/+1
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1059 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c: corrected uncleared variable from previous commitenge2011-08-311-5/+10
| | | | | | | mul.dat: test cases for overflow inside Karatsuba git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1057 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c: if over-/underflow in Karatsuba, call naiveenge2011-08-311-4/+8
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1056 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* [src/mul.c] in mpc_mul_karatsuba, check that a*d and b*c are exactzimmerma2011-08-311-2/+4
| | | | | | | (no underflow nor overflow) otherwise the algorithm might be wrong git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1055 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c: corrected leftover debug printf in previous commitenge2011-08-311-3/+0
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1054 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c: eliminate impossible caseenge2011-08-311-9/+9
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1053 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* license change:enge2011-08-291-12/+11
| | | | | | | | | | | | LGPLv3+ for code FDLv1.3+ for mpc.texi simple disclaimer for supporting files (README, NEWS, INSTALL) tests/memory.c: replaced by version from mpfr-3.0.1 mpfr.texi: small cleanups; added real authors again, while keeping copyright notice with INRIA git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1027 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c, mul.dat: removed unused branch, added test to cover one branchenge2011-02-231-2/+3
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@968 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c, mul.dat: correct underflow handling with direct roundingenge2011-02-231-38/+10
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@967 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c, mul.dat: correct overflow handling with directed roundingenge2011-02-231-7/+11
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@965 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c: bug with underflowenge2011-02-231-2/+2
| | | | | | | mul.dat: added test discovering the bug git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@952 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c: mpc_mul_naive now assumes that all numbers have only non-zero (andenge2011-02-231-0/+3
| | | | | | | | finite) parts; add assertion tmul.c: disable comparison between naive and Karatsuba with zero parts git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@950 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c, mul.dat: bug fix for wrong detection of underflowenge2011-02-231-1/+1
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@949 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c: code for handling all cases of intermediate over- and underflowsenge2011-02-231-115/+144
| | | | | | | mul.dat: test case for underflows git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@946 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c: basically implemented handling of overflows; some cases still missingenge2011-02-221-2/+60
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@945 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c: slightly more correct mul_naive_overflow;enge2011-02-221-5/+81
| | | | | | | problematic case inf-inf not handled yet git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@944 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c: trivial changes in mpc_mul_naiveenge2011-02-221-32/+25
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@943 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c: reformatting and trivial changes in mul_infiniteenge2011-02-221-84/+72
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@942 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c: small reorganisation of imaginary, non-real multiplicationenge2011-02-221-44/+38
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@941 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c: factored out case of one real factorenge2011-02-221-109/+99
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@940 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c: in mpc_mul_naive, calls to mpfr_fma and mpfr_fms make do with variable uenge2011-02-221-11/+7
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@939 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c: silencing gcc warning of uninitialised valueenge2011-02-211-1/+1
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@935 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c: updated copyright dateenge2011-02-151-1/+1
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@927 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul: If mul_karatsuba cannot round at initial precision, call mul_naive instead.enge2011-02-151-49/+59
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@925 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c: removed square case from mul_naive, since tested in mulenge2011-02-151-7/+3
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@923 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* changed copyright lines in src to "Copyright (C) INRIA, year1, year2, ..."zimmerma2011-01-251-1/+1
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@890 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c: partial use of macro ROUND_AWAY; not totally convincing since theenge2010-09-211-11/+12
| | | | | | | actual rounding mode (up/down) is needed for the call to mpfr_can_round git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@842 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mul.c, mul.dat: if both arguments are the same, call sqrenge2010-09-161-0/+6
| | | | | | | | prevents infinite loops already fixed in sqr and as yet unknown bugs and assures the same behaviour as sqr in corner cases (overflow etc.) git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@833 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* code cleanup: removed macro MPFR_EXP from mpc-impl.henge2010-07-301-8/+7
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@815 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* code cleanup:enge2010-07-301-9/+8
| | | | | | | | | removed macro MPFR_PREC from mpc-impl.h replaced MPFR_PREC (MPC_RE (op)) by MPC_PREC_RE (op) and MPFR_PREC (MPC_IM (op)) by MPC_PREC_IM (op) git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@814 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* replaced the few trailing mp_rnd_t by mpfr_rnd_tenge2010-06-111-1/+1
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@778 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* replaced mp_exp_t by mpfr_exp_t, introduced in mpfr-3enge2010-06-111-4/+4
| | | | | | | if not existant, mpfr_exp_t is defined in mpc.h git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@777 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* replaced mp_prec_t by mpfr_prec_t; compatibility with mpfr>=2.3.1enge2010-06-111-4/+4
| | | | | | | is preserved, since it already defines mpfr_prec_t git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@776 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* removed useless instances of #include <stdio.h>zimmerma2009-08-261-1/+0
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@663 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* div.c: correct signs of zeroes for division by real or purely imaginaryenge2009-08-221-4/+4
| | | | | | | | | | divisors mul.c: used new macro MPFR_SIGNBIT from mpc-impl.h mpc-impl.h: implemented macro MPFR_COPYSIGN to work around the strange behaviour of mpfr_copysign git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@655 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* mpc-impl.h: renamed MPC_IS_INF to mpc_inf_p and MPC_IS_ZERO to mpc_zero_penge2009-08-201-5/+5
| | | | | | | | added mpc_fin_p and mpc_nan_p mul.c, proj.c: used renamed macroes git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@652 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* src/mpc-impl.h: rename MAX -> MPC_MAX and SWAP -> MPFR_SWAPthevenyp2009-03-241-5/+5
| | | | | | | src/tan.c src/mul.c: Use renamed macros. git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@503 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* Modify #include chain so as to support DLL creation on Cygwinthevenyp2009-03-171-5/+1
| | | | git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@457 211d60ee-9f03-0410-a15a-8952a2c7a4e4
* [mul.c] simplified the Karatsuba code (no double loop any more)zimmerma2008-11-151-80/+45
| | | | | | | [mul.dat] added new corner cases git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@317 211d60ee-9f03-0410-a15a-8952a2c7a4e4