Log

Author Commit Date CI Message
Steffen Jaeckel 5d744e43 2020-09-20T18:07:28 update CI to bionic
Steffen Jaeckel bee1e995 2020-11-29T15:06:42 use heredoc instead of all those echo's
Steffen Jaeckel 34540acb 2020-11-29T15:03:41 fix building demos from makefile.shared
Steffen Jaeckel 9fa74009 2020-09-15T19:05:20 separate static and dynamic builds
Anonymous Maarten fa289f9d 2020-09-14T23:28:01 build and test with dll on MSVC
Steffen Jaeckel 34e16d3c 2020-09-13T19:06:43 allow testing of shared library * move jenkins' prng out of the library into the demo's. * add CI test for shared library
Steffen Jaeckel 301e2c41 2020-09-13T14:59:39 Partially revert "enable building dll's using makefile.msvc" This partially reverts commit b206dde88e4affae07970782498afe9e3664ae30.
Steffen Jaeckel 646523e6 2020-09-13T14:19:30 add cutoff's to exported symbols
Steffen Jaeckel d138abc3 2020-09-13T14:19:10 split-up mp_rand.c
Anonymous Maarten 3ba04963 2020-09-11T16:04:19 enable building dll's using makefile.msvc
Steffen Jaeckel fa94aa20 2020-09-13T15:26:42 add travis job to compare symbols of dynamic libraries
Steffen Jaeckel c18817cc 2020-09-19T16:04:20 Merge pull request #487 from czurnieden/DoS_sqrt_mod Added checks for input in mp_sqrtmod_prime that caused infinite loops
czurnieden fb305e09 2020-08-05T15:18:59 Additional input checks and a test for b \cong 0 (mod a) in test_mp_sqrtmod_prime to go along with it.
Steffen Jaeckel 44ee82cd 2020-04-30T13:56:56 Merge pull request #484 from Prince213/msvc-x86-mp_set_double-fix Add _M_IX86 for testing for MSVC x86
Sizhe Zhao 56dc9df1 2020-04-26T11:36:28 Add _M_IX86 for testing for MSVC x86
Steffen Jaeckel aa8b4571 2020-03-10T22:51:15 Merge pull request #477 from J08nY/fix/makefile-echo Fix clang detection when cross-compiling.
J08nY f01cc5d2 2020-02-21T11:44:15 Fix clang detection when cross-compiling. `echo` needs -e to output newlines, without the switch make complains: <stdin>:1:17: warning: extra tokens at end of #ifdef directive <stdin>:1: error: unterminated #ifdef and does not detect clang properly when cross-compiling.
Steffen Jaeckel fe382afd 2020-03-05T22:37:59 Merge pull request #478 from MasterDuke17/make_exptmod_with_modulus_1_always_0 Give correct values for invmod with modulus of 1
Daniel Green ea654566 2020-02-23T09:46:12 Give correct values for invmod with modulus of 1
Steffen Jaeckel ce4e6ae1 2020-03-05T14:25:43 Merge pull request #476 from libtom/fix-double-check Build+test bn_mp_set_double.c on more platforms
Steffen Jaeckel c1cf8073 2020-03-05T13:57:07 introduce MP_HAS_SET_DOUBLE
Steffen Jaeckel c5cb0c6f 2020-03-05T13:48:27 fix compile error on MSVC
Daniel Green 4e90f318 2020-02-09T11:06:53 Build+test bn_mp_set_double.c on more platforms Not all platforms/environments/architectures that support enough of IEEE 754 for the purposes of mp_set_double() actually support enough to legitimately define __STDC_IEC_559__, so only relying on that is too strict. Fixes https://github.com/libtom/libtommath/issues/159
Steffen Jaeckel ffd80665 2020-01-07T18:35:50 Merge pull request #471 from libtom/prevent-overflow Prevent overflow
Daniel Mendler ca6924b7 2019-12-23T11:12:42 add error code MP_OVF for integer overflow (too many digits)
Daniel Mendler 876c5fc3 2019-12-05T11:47:36 disable __func__ in c89 compilers
Daniel Mendler 40177e18 2019-12-05T11:47:36 test: print __func__
Daniel Mendler c375b038 2019-12-05T11:09:39 test cleanup; add randomized radix_size test
Daniel Mendler 08d281c4 2019-12-05T00:48:25 introduce MP_MAX_DIGIT_COUNT to prevent overflow
Daniel Mendler 3a744dc4 2019-12-05T00:33:53 s_mp_radix_size_overestimate: remove overflow check
Steffen Jaeckel 6ac0b0c1 2019-12-04T22:27:09 Merge pull request #469 from czurnieden/radix_overestimate_29bits Radix overestimate with 29 bits precision
Daniel Mendler 9d0bdc7e 2019-12-04T22:23:24 run the test always
czurnieden 1e65c0bf 2019-10-11T00:06:45 Introduction of a fast but slightly over-estimating radix_size
Steffen Jaeckel 795485bf 2019-12-04T11:59:20 Merge pull request #467 from czurnieden/change_helper_pl Changed generate_def to use the uncommited file list
czurnieden cecfd1f6 2019-11-27T20:55:22 changed generate_def to use the uncommited, raw file list
Steffen Jaeckel 220a4deb 2019-11-25T11:18:10 Merge pull request #463 from libtom/long_long_fixes Proposal: Remove long long support
Daniel Mendler cd1bf5e2 2019-11-22T16:19:11 regen files
Daniel Mendler b800b761 2019-11-22T16:04:48 remove *_ll* setters/getters * they are non standard * they are incompatible with older compilers * u64/i64 functions should be used instead * these functions should be deprecated again in 1.x
Daniel Mendler f0ab662f 2019-11-22T16:01:42 do not use long long for minimum prec calculation, improve comment
Steffen Jaeckel a8357d43 2019-11-25T11:13:53 Merge pull request #459 from libtom/less-long-long Don't use long long where not necessary, some platforms lack it
Jan Nijtmans 4cbd7d59 2019-11-20T15:09:22 Don't use long long where not necessary, some platforms lack it
Steffen Jaeckel fc5f5076 2019-11-25T11:04:35 Merge pull request #464 from czurnieden/fix_sigma_div_recursive Corrected startvalue for sigma and changed cutoff in mp_div
czurnieden 244c698e 2019-11-24T05:37:43 corrected startvalue for sigma and cutoff in mp_div
Steffen Jaeckel 6e779e69 2019-11-22T11:31:20 Merge pull request #462 from czurnieden/repair_div_recursive Repair of sign handling in mp_div_recursive
czurnieden 5f3063fb 2019-11-22T03:14:59 correction of typo in test.c
czurnieden 642032dd 2019-11-22T02:56:48 wrong sign in mp_div_recursive
Steffen Jaeckel 86d7d718 2019-11-14T14:22:06 Merge pull request #457 from libtom/wrong-use-of-ull-for-develop Wrong use of ull for develop
Jan Nijtmans bb1e56e7 2019-11-12T16:20:07 Fix compilation of demo/test.c using C++
Jan Nijtmans 0730a31a 2019-11-12T16:10:46 Make sure that c89 conversion doesn't produce LL or uLL postfix, since that isn't c89 at all
Jan Nijtmans 68048351 2019-11-12T15:46:04 more spacing around PRIu64, needed for C++ compatibility
Jan Nijtmans 9f2cd043 2019-11-12T15:30:34 more unnecessary type-casts, correct type-case for malloc
Jan Nijtmans e9d54e98 2019-11-12T14:44:39 remove unnecessary type-casts
Jan Nijtmans a91eb5a0 2019-11-12T14:29:02 fix build (hopefully)
Jan Nijtmans 9cfb6c32 2019-11-06T11:52:42 use type-cast in stead of UINT64_C
Jan Nijtmans 02aa95c2 2019-11-06T11:29:17 Fix wrong use of uLL suffix
Steffen Jaeckel 83b74bac 2019-11-14T11:08:33 Merge pull request #446 from libtom/suffix-renamings2 Alternative 2: Suffix renamings (_n suffix)
Daniel Mendler 41eca342 2019-11-06T00:13:39 regen
Daniel Mendler f6a7bedb 2019-10-29T20:52:29 suffix _u32 -> _n of mp_(expt|log|root) functions, use int for now
Steffen Jaeckel 86648a0d 2019-11-13T15:55:01 Merge pull request #456 from libtom/mp-has-comment s_mp_rand_platform: add comment regarding MP_HAS requiring dead code elim
Daniel Mendler c47d5e87 2019-11-12T01:11:12 s_mp_rand_platform: add comment regarding MP_HAS requiring dead code elim
Steffen Jaeckel 59d62c9b 2019-11-11T21:53:00 Merge pull request #454 from libtom/better-use-of-isneg Better use of isneg
nijtmans 1cc289d2 2019-11-09T20:23:03 better use of mp_isneg() and mp_iszero()
Steffen Jaeckel 0bc5c329 2019-11-10T15:30:57 Merge pull request #450 from libtom/sqr-opt make mp_sqr and mp_div_3 internal and add optimizations
Daniel Mendler 53becf65 2019-11-06T16:50:31 regen files
Daniel Mendler 6777baaf 2019-11-06T16:59:51 add macro MP_IS_2EXPT
Daniel Mendler 2e88b571 2019-11-06T16:56:34 optimize mp_mul_d
Daniel Mendler 6ec36e0b 2019-11-06T16:54:07 optimize mp_div_d
Daniel Mendler 4f00e75b 2019-11-06T16:51:51 make mp_div_3 private
Daniel Mendler 0fa802f2 2019-11-06T16:49:59 make mp_sqr private (optimization of mp_mul)
Steffen Jaeckel 4077293f 2019-11-07T21:12:56 Merge pull request #451 from libtom/simplify-mod simplify mod functions
Daniel Mendler 61ebe7c0 2019-11-07T01:00:13 simplify mod functions
Steffen Jaeckel cc77fadb 2019-11-05T23:11:36 Merge pull request #444 from minad/lto add COMPILE_LTO to test link time optimization
Steffen Jaeckel 67e18168 2019-11-05T23:10:40 Merge pull request #445 from libtom/fix-def-gen fix generate_def, rename some internal files
Daniel Mendler 91d88ce3 2019-11-05T20:35:19 fix generate_def, rename some internal files
Daniel Mendler 3b98e826 2019-11-05T21:01:54 disable lto test for clang for now it works on debian but not on the outdated travis ubuntu
Daniel Mendler 53a689d0 2019-11-05T20:29:59 travis: install llvm-7
Daniel Mendler 74d828d5 2019-11-05T20:25:39 don't use ranlib, `ar s` is equivalent
Daniel Mendler e8e65119 2019-11-05T19:18:32 add COMPILE_LTO to test link time optimization the library performs best with lto since many small functions can be inlined across objects.
Steffen Jaeckel c893d217 2019-11-05T20:16:01 Merge pull request #439 from libtom/radix-code-cleanup mp_radix off-by-one error and other related code-cleanup
nijtmans bbb17808 2019-10-30T14:19:50 mp_radix off-by-one error and other related code-cleanup
Steffen Jaeckel 7e47ae65 2019-11-05T20:09:43 Merge pull request #443 from libtom/rename-maxfast rename MP_MAXFAST to MP_MAX_COMBA
Daniel Mendler 93f8e760 2019-11-05T18:04:05 rename MP_MAXFAST to MP_MAX_COMBA
Steffen Jaeckel b4c42576 2019-11-05T19:40:30 Merge pull request #436 from fperrad/20191029_lint some linting
Francois Perrad 40342807 2019-11-01T20:08:41 explicit operator precedence
Francois Perrad 146becbd 2019-10-31T19:26:55 literal suffix
Steffen Jaeckel 3035e22f 2019-11-05T17:55:04 Merge pull request #434 from libtom/simplifications Simplifications
Steffen Jaeckel 80176de3 2019-11-05T17:53:08 re-enable checks for memcpy&memset [skip ci]
Daniel Mendler 410bf493 2019-10-29T20:26:50 apply a series of simplifications * this is the final commit of a series of simplifications, containing only the regenerated files and the explanation in the commit message * This is in preparation of the size_t change/a potential representation change to use full width as in tfm, if a (partial?) merge with tfm is desired. These changes have their own merits however. * Remove obfuscating tmpx digit pointers (fewer variables, it is more obvious what is being manipulated) * Reduce scope of variables where possible * Stricter error handling/checking (for example handling in karatsuba was broken) * In some cases the result was written even in the case of an error (e.g. s_mp_is_divisible). This will hide bugs, since the user should check the return value (enforced by MP_WUR). Furthermore if the user accesses the non-initialized result, valgrind will complain for example. Global static analysis like coverity will also detect the issue. Therefore this improves the status quo. * Introduce generic, private MP_EXCH macro which can be used to swap values. * Introduce s_mp_copy_digs/s_mp_zero_digs/s_mp_zero_buf * Some control flow simplifications, e.g, loops instead of goto * Renamings of variables/labels for consistency * Renamings of mul/sqr functions for more consistency, e.g., comba instead of fast suffix * I didn't read through some very complex functions. They are so complex, I am too afraid and lazy to touch them. Maybe someone resposible wants to simplify them if possible. Hint... Hint... - mp_prime_strong_lucas_selfridge.c - s_mp_exptmod.c - s_mp_exptmod_fast.c
Daniel Mendler 5c335f84 2019-10-30T17:26:27 rename mul/sqr functions for consistency, comba instead of fast suffix
Daniel Mendler 3b710fbd 2019-11-03T11:00:33 simplify mp_complement
Daniel Mendler bcda8fc6 2019-10-29T22:38:49 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
Daniel Mendler 795cd201 2019-10-29T21:48:50 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.
Daniel Mendler b1f9bff1 2019-10-29T20:21:22 simplifications: invmod
Daniel Mendler 56144eed 2019-10-29T20:08:42 simplifications: reduce functions
Daniel Mendler 448f35e2 2019-10-29T20:07:29 simplifications: prime functions
Daniel Mendler 8ac49351 2019-10-29T20:06:20 simplifications: mul/sqr comba
Daniel Mendler 7b6c6965 2019-10-29T20:05:30 simplifications: toom and karatsuba
Daniel Mendler 143e0376 2019-10-29T20:02:32 simplifications: basic arithmetic functions
Daniel Mendler e60149de 2019-10-29T20:26:25 simplifications: replace mp_mod_d by macro
Steffen Jaeckel 2d3262af 2019-11-04T14:06:19 Merge pull request #442 from libtom/bug-min-prec MP_MIN_PREC too small, test with MP_PREC=MP_MIN_PREC