Daniel Mendler
5c335f8407
rename mul/sqr functions for consistency, comba instead of fast suffix
2019-11-04 15:41:33 +01:00
Daniel Mendler
3b710fbd7e
simplify mp_complement
2019-11-04 15:41:33 +01:00
Daniel Mendler
bcda8fc696
simplifications: remove unnecessary optimization
...
* these double checks are not necessary
* the compiler will move the early return outside of the called
function, basically the functions is partially inlined
* however lto/amalgamation needed for the optimization
2019-11-04 15:41:33 +01:00
Daniel Mendler
795cd2013f
simplifications: add s_mp_zero_(digs|buf) and s_mp_copy_digs
...
Originally I made those as macros. However we have many
other small functions like mp_clamp, mp_exch which are also not implemented
as macros right now.
If we would use c99, I would implement them as private static inline
functions. And mp_exch would be a public static inline function.
But since we are bound to c89, we simply use normal functions.
To achieve optimal performance one should either use link time
optimization or amalgamation.
2019-11-04 15:41:32 +01:00
Daniel Mendler
b1f9bff192
simplifications: invmod
2019-11-04 15:41:32 +01:00
Daniel Mendler
56144eed1e
simplifications: reduce functions
2019-11-04 15:41:32 +01:00
Daniel Mendler
448f35e2e1
simplifications: prime functions
2019-11-04 15:41:32 +01:00
Daniel Mendler
8ac493512c
simplifications: mul/sqr comba
2019-11-04 15:41:32 +01:00
Daniel Mendler
7b6c6965bb
simplifications: toom and karatsuba
2019-11-04 15:41:32 +01:00
Daniel Mendler
143e0376a1
simplifications: basic arithmetic functions
2019-11-04 15:41:31 +01:00
Daniel Mendler
e60149dec7
simplifications: replace mp_mod_d by macro
2019-11-04 15:41:31 +01:00
Steffen Jaeckel
2d3262af26
Merge pull request #442 from libtom/bug-min-prec
...
MP_MIN_PREC too small, test with MP_PREC=MP_MIN_PREC
2019-11-04 14:06:19 +01:00
Daniel Mendler
2bbdbd0651
MP_MIN_PREC>=3 is needed for s_mp_div_school
...
test with MP_PREC=MP_MIN_PREC
2019-11-03 17:23:59 +01:00
Steffen Jaeckel
820f4bb060
Merge pull request #435 from libtom/simple-simplifications
...
first batch of simplifications
2019-10-29 21:27:01 +01:00
Daniel Mendler
3cdcec43e6
first batch of simplifications
2019-10-29 19:30:23 +01:00
Daniel Mendler
b9977adfb8
use uint8_t instead of unsigned char
2019-10-29 17:40:59 +01:00
Steffen Jaeckel
98753c6718
Merge pull request #432 from libtom/no-deprecated-pragma
...
introduce MP_NO_DEPRECATED_PRAGMA
2019-10-29 17:20:40 +01:00
Steffen Jaeckel
af376edcde
no more MP_WUR in timing.c
2019-10-29 16:37:56 +01:00
Steffen Jaeckel
8456782cc5
don't allow disabling of WUR checks
2019-10-29 15:40:47 +01:00
Steffen Jaeckel
57fbf5a880
also build support/ branches in CI
...
(cherry picked from commit 783ffb82dd5ddddce3d3bbd88661bcda44162458)
2019-10-29 15:39:00 +01:00
Steffen Jaeckel
e95dd24e4f
introduce MP_NO_DEPRECATED_PRAGMA
2019-10-29 15:39:00 +01:00
Steffen Jaeckel
57ccd9f0c3
Merge pull request #431 from libtom/rework-tests
...
clean-up test.c
2019-10-29 15:38:31 +01:00
Steffen Jaeckel
4500d066c1
also no MP_WUR in mtest_opponent()
2019-10-29 14:41:33 +01:00
Steffen Jaeckel
b250ec44e0
clean-up test.c
...
* no more `MP_WUR` in test.c
* clean-up console output
2019-10-29 13:24:34 +01:00
Steffen Jaeckel
8bf82f9435
Merge pull request #425 from libtom/replace-gen-by-cat
...
replace gen.pl by cat, rename mpi.c to mp_all.c
2019-10-29 08:44:03 +01:00
Steffen Jaeckel
d800071e81
ignore&clean tommath_amalgam.c [skip ci]
2019-10-28 16:36:40 +01:00
Steffen Jaeckel
a598e61b90
rename to tommath_amalgam.c
2019-10-28 15:42:23 +01:00
Steffen Jaeckel
02f4ee114c
compare logs before and after single-object profiling
2019-10-28 15:31:36 +01:00
Steffen Jaeckel
04ee1e75d7
improve demo/timing a bit
...
* less verbose output on console
* allow changing name for logs
* pre-heat caches before starting the timing
2019-10-28 15:31:36 +01:00
Steffen Jaeckel
8e3a440464
use pre_gen/mp_all.c for profiled_single
...
+ clean-up defines
2019-10-28 15:29:54 +01:00
Steffen Jaeckel
43804ed732
remove logs and generated PNG's
...
this fixes #423
2019-10-28 15:29:54 +01:00
Daniel Mendler
1ece193af2
replace gen.pl by cat, rename mpi.c to mp_all.c
2019-10-28 15:29:54 +01:00
Steffen Jaeckel
da8b978785
Merge pull request #426 from libtom/rework-read-radix
...
mp_read_radix and mp_fread should behave the same
2019-10-28 15:29:30 +01:00
Daniel Mendler
a5d5b10154
mp_read_radix and mp_fread should behave the same
2019-10-27 23:51:38 +01:00
Steffen Jaeckel
50abc11a26
Merge pull request #422 from libtom/remove-ltm-rng
...
remove ltm_rng (deprecated function)
2019-10-27 22:10:25 +01:00
Daniel Mendler
85699be1ac
remove ltm_rng (deprecated function)
2019-10-27 22:09:53 +01:00
Steffen Jaeckel
bde40c44a9
Merge pull request #421 from libtom/doc-fix
...
manual: don't mention obsolete MP_DIV_SMALL
2019-10-27 22:06:11 +01:00
Daniel Mendler
2122b51139
manual: don't mention obsolete MP_DIV_SMALL
2019-10-27 21:53:17 +01:00
Steffen Jaeckel
baabf5633f
Merge pull request #405 from libtom/add-sub-opt
...
stdbool/stdint refactoring, various optimizations/simplifications
2019-10-27 21:22:53 +01:00
Steffen Jaeckel
e2f8df3358
fix doc [skip ci]
...
+ ignore bak files generated by latexindent
+ silence latexindent
2019-10-27 21:19:37 +01:00
Daniel Mendler
7afecabd9d
regen files
2019-10-27 19:19:47 +01:00
Daniel Mendler
f662e1f7e1
fix c89 issues
2019-10-27 19:19:47 +01:00
Daniel Mendler
4376913928
remove inttypes.h includes in c89 mode
2019-10-27 18:41:59 +01:00
Daniel Mendler
d27dff92f0
update manual: replace mp_bool/MP_YES/MP_NO references by bool/true/false
2019-10-27 18:41:58 +01:00
Daniel Mendler
8ecf7eaea4
better comment in tommath_c89.h
2019-10-27 18:36:57 +01:00
Daniel Mendler
17d59c2c0f
replace PRIx64 by MP_PRIx64 for c89 mode
2019-10-27 18:36:57 +01:00
Daniel Mendler
cf0042654e
define mp_isodd in terms of mp_iseven
2019-10-27 18:36:56 +01:00
Daniel Mendler
17a846f2bc
add "make c99" to convert back
2019-10-27 18:36:56 +01:00
Daniel Mendler
9f01ba14bc
add "testme.sh --c89" and "make c89"
...
* replace int*_t and bool by custom typedefs
* the result is tested in CI
2019-10-27 18:36:56 +01:00
Daniel Mendler
bf9507a9d4
replace mp_bool by stdbool
...
* This gives the advantage that static analysis **understands** bool,
but complains about using an enum type instead of bool.
* If stdbool.h is not desired, true/false/bool can be replaced using sed
as in the no-stdint-h branch.
* We already include stdint.h and stdbool.h is not more harmful than
this header
2019-10-27 18:36:56 +01:00