Daniel Mendler
1af0de1f91
deprecate mp_tc_(and|or|xor) in favor of mp_(and|or|xor)
...
* same behavior for positive numbers
* generalisation for negative numbers, treating them as two complement
* improve algorithm, iterate once over the digits, manually perform two complement
* simplify mp_add_d, mp_sub_d
* functions are safe in case of a==c or b==c
* renamed mp_tc_div_2d to mp_signed_rsh (signed right shift)
2019-05-21 18:28:11 +02:00
Daniel Mendler
0b840b78a3
make mp_word private
...
mp_word is an internal type and it is problematic if it is exposed
in the public api. See for example #216 - MSVC does not support 128 bit
mp_words. But it is perfectly ok to use those internally in the library,
as long as the library is compiled with GCC.
2019-05-21 15:34:04 +02:00
czurnieden
03ca7bcdae
added tests for Karatsuba and Toom-Cook 3-way
2019-05-21 15:21:39 +02:00
Steffen Jaeckel
51cda5b82b
use correct amount of MR trials in tests
2019-05-21 09:48:48 +02:00
Steffen Jaeckel
cb3ff8c28d
improve coverage
2019-05-21 09:45:22 +02:00
Francois Perrad
150c47cce2
refactor literal suffix with u lowercase
2019-05-20 05:36:24 +02:00
Daniel Mendler
f55f0a9ef5
fix some usages of enum types
2019-05-18 10:03:47 +02:00
Daniel Mendler
56e7a40123
deprecate mp_jacobi
2019-05-18 10:03:46 +02:00
Daniel Mendler
198418ba5e
bugfix: don't revert to platform rand source, but to jenkins source!
2019-05-18 10:00:07 +02:00
Daniel Mendler
4534056c28
use enums mp_err, mp_ord, mp_bool, mp_sign
...
* MP_USE_ENUMS enables enums
* Wc++-compat catches some implicit conversions if MP_USE_ENUMS is defined
* 100% backwards compatible API/ABI if MP_USE_ENUMS is not defined
2019-05-13 19:15:14 +02:00
Daniel Mendler
f85bd31e4e
fix undefined behavior in labs
2019-05-12 23:45:36 +02:00
Daniel Mendler
2a2e2716c2
move jenkins prng to bn_s_mp_rand_jenkins.c
2019-05-12 23:45:36 +02:00
Daniel Mendler
8d71a9e33b
travis: add -fsanitize=undefined
2019-05-12 23:45:36 +02:00
Daniel Mendler
7365442ace
No grow necessary in mp_set_int* functions
...
* mp_set_int* always return MP_OKAY
* remove return checks for mp_set_int*
* introduce MP_MIN_PREC
2019-05-12 13:04:45 +02:00
Daniel Mendler
adf9605d6c
add warn_unused_result, found one missing check!
2019-05-11 19:26:58 +02:00
Daniel Mendler
0669e92e78
deprecate mp_prime_random_ex in favor of mp_prime_rand
...
We can use the internal mp_rand generator now, since it generates
numbers which are safe for crypto purposes.
2019-05-11 00:48:48 +02:00
Steffen Jaeckel
1a12486d4b
add mp_rand test
2019-05-09 10:47:35 +02:00
Steffen Jaeckel
eedf1624f0
allow filtering of tests executed
2019-05-09 10:47:35 +02:00
Daniel Mendler
44d03a6f8b
deprecate LTM_PRIME_* macros in favor of MP_PRIME_*
2019-05-07 09:45:38 +02:00
Daniel Mendler
250751be46
tommath.h: do not expose stdlib.h
2019-05-07 09:32:59 +02:00
Daniel Mendler
e45f75fddb
deprecate DIGIT_BIT, use MP_DIGIT_BIT
2019-04-25 13:39:50 +02:00
Daniel Mendler
e8f56cc4e0
enable -Wconversion and -Wsign-conversion on travis
...
* no changes to the library code
* conversion issues in the demo testsuite fixed
* add CONV_WARNINGS and enable the warnings only for clang-7 (for now)
* disable Wsystem-headers if Wconversion is enabled, to avoid warnings from the system headers
2019-04-19 22:01:11 +02:00
Daniel Mendler
fbfcb66184
apply rename
2019-04-12 14:56:29 +02:00
czurnieden
35311aea49
added function mp_ilogb
2019-04-09 21:59:59 +02:00
czurnieden
27ca25cb82
added multiplcation balancing for the Toom-Cook algorithms
2019-04-07 22:15:09 +02:00
Daniel Mendler
70a30ae7a7
remove footers
2019-04-07 17:26:31 +02:00
czurnieden
984d3ff679
changed seed to make nth-root usable
2019-04-06 22:51:10 +02:00
czurnieden
0ed98cf1cd
removed tracing
2019-04-04 12:55:39 +02:00
czurnieden
769218ccc7
additional functions mp_incr and mp_decr
2019-04-04 07:58:19 +02:00
Steffen Jaeckel
cb1eb16116
run make astyle
...
[skip ci]
2019-04-04 07:58:07 +02:00
Francois Perrad
036551277e
parameter with name in prototype
2019-03-06 15:13:20 +01:00
Francois Perrad
15a1adc290
literal suffix
2019-03-06 15:13:18 +01:00
Daniel Mendler
00a1bcd657
demo: better ndraw
2019-03-04 02:00:28 +01:00
Daniel Mendler
1fc7d20dab
opponent/test.c: move ndraw to main.c
2019-03-04 01:56:06 +01:00
Daniel Mendler
12b41bbeb5
opponent.c: forgot missing printf("\n") from _cleanup. reason for test failures.
2019-03-04 01:42:05 +01:00
Daniel Mendler
03b319ca3e
opponent.c: get rid of global variables and remove cleanup
2019-03-04 01:11:54 +01:00
Daniel Mendler
3f42b6a799
test/opponent.c: add todo comments
2019-03-04 01:11:12 +01:00
Daniel Mendler
674fdddbfc
remove duplicate T(mp_tc_div_2d)
2019-03-04 01:10:20 +01:00
Daniel Mendler
cd1570bb88
split test suite
2019-03-04 01:02:22 +01:00
Steffen Jaeckel
fcea5e3c35
Merge pull request #149 from czurnieden/develop
...
Added overflow check in mp_prime_is_prime and some verbosity in demo.c
(cherry picked from commit 55a7af3d62
)
2019-01-22 09:00:03 +01:00
Steffen Jaeckel
648fbcefc7
run make format
2018-12-31 12:08:12 +01:00
czurnieden
813963178f
reg. #143 added test to demo.c
2018-12-30 22:35:03 +01:00
Francois Perrad
ab074176ab
explicit condition
2018-12-27 09:44:59 +01:00
Francois Perrad
f1f6762616
conditional definition of FGETS
2018-12-27 09:44:57 +01:00
Francois Perrad
2bde5bb5d5
semicolon
2018-12-27 09:44:54 +01:00
Francois Perrad
c63ce5bf1f
fix indentation
2018-12-27 09:44:51 +01:00
Francois Perrad
b6fa97c591
explicit operator precedence
2018-12-27 09:44:46 +01:00
Francois Perrad
ea44272d41
always use #if LTM_DEMO_TEST_VS_MTEST != 0
2018-12-27 09:44:43 +01:00
Francois Perrad
efda3c0e10
declare cnt only when useful
2018-12-27 09:44:41 +01:00
Francois Perrad
4f902d9f10
remove useless assignment of cnt
2018-12-27 09:44:37 +01:00