tommath.h


Log

Author Commit Date CI Message
Daniel Mendler bcec605a 2019-05-22T15:34:49 deprecate mp_prime_is_divisible and ltm_prime_tab * it is an implementation detail used for prime testing * there is upcoming work by @czurnieden regarding a generalised prime sieve * furthermore remove jacobi test (replaced by kronecker)
Daniel Mendler c7a7bd47 2019-05-23T16:37:34 MP_PREC is an internal macro, it should be defined in tommath_private.h
Daniel Mendler b0938d70 2019-05-24T11:48:27 remove obsolete comment
Daniel Mendler 9f607dd5 2019-05-23T17:00:47 disallow defining MP_DIGIT_BIT, only allow MP_8/16/31/32/64BIT
Daniel Mendler 0a9f5e9b 2019-05-24T10:21:54 use u32 i64 suffix
Daniel Mendler d7e1cb4a 2019-05-24T00:15:11 another proposal: use _ul and _l for the long macros
Daniel Mendler b58c9966 2019-05-23T23:39:47 use int32 and uint32 instead of sint and uint
Daniel Mendler d7959854 2019-05-23T11:12:30 improve comment in tommath.h, extend .gitignore
Daniel Mendler 3289c959 2019-05-20T10:41:06 introduce various mp_set_sint/mp_set_uint functions with precise types
Daniel Mendler 1af0de1f 2019-05-20T19:11:25 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)
Daniel Mendler 0dfa9da5 2019-05-19T12:53:49 make tommath_class.h and tommath_superclass.h private These headers are used for configuration during build time. Therefore they shouldn't be exposed as part of the public API.
Daniel Mendler 0b840b78 2019-05-17T20:53:24 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.
Daniel Mendler a8239c24 2019-05-13T11:32:42 deprecate mp_get_bit The return type of mp_get_bit was imprecise (either mp_err or mp_bool), therefore this function is deprecated in favor of s_mp_get_bit for now. If we need s_mp_get_bit to be public, we should add it under a different name. However since mp_set_bit is not available, I don't think there any downstream users (ab)using mp_int as bitsets.
Daniel Mendler 56e7a401 2019-05-13T02:46:11 deprecate mp_jacobi
Daniel Mendler 89bac3a7 2019-05-13T15:06:54 deprecate MP_RANGE
Daniel Mendler 4534056c 2019-05-13T00:22:18 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
Francois Perrad 38116079 2019-05-13T17:51:07 literal suffix
Francois Perrad 2d508723 2019-05-13T17:36:12 const parameter
Daniel Mendler 7365442a 2019-05-10T23:59:46 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
Daniel Mendler adf9605d 2019-05-09T03:28:49 add warn_unused_result, found one missing check!
Francois Perrad cc703a84 2019-05-11T12:09:59 add missing parameter name in prototype
Daniel Mendler 0669e92e 2019-05-08T20:18:53 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.
Daniel Mendler e05215a8 2019-05-09T04:06:12 deprecate old macros, deprecate mp_rand_digit
Daniel Mendler 9ddf1e58 2019-05-07T12:26:46 support custom random data source via mp_rand_source * deprecate MP_PRNG_ENABLE_LTM_RNG * custom mp_rand_source is used always if set, which should be more aligned with user expectations * use custom source in tune.c * don't call random number generator once per digit, which is slow
Daniel Mendler 290c28c1 2019-05-07T09:49:26 deprecate PRIME_SIZE in favor of MP_PRIME_SIZE
Daniel Mendler 44d03a6f 2019-05-07T09:45:38 deprecate LTM_PRIME_* macros in favor of MP_PRIME_*
Daniel Mendler e2ee39b5 2019-04-26T12:39:26 deprecate ltm_prime_callback
Daniel Mendler 80f5fac5 2019-04-26T12:35:39 rename LTM_NO_FILE to MP_NO_FILE
Daniel Mendler 0337d48b 2019-04-25T19:35:19 add MP_NULL_TERMINATED
Daniel Mendler 250751be 2019-05-07T09:32:59 tommath.h: do not expose stdlib.h
Daniel Mendler 818d8fb7 2019-05-03T17:39:10 Rework handling of tunable cutoffs * In the default settings, a cutoff X can be modified at runtime by adjusting the corresponding X_CUTOFF variable. * Tunability of the library can be disabled at compile time by defining the MP_FIXED_CUTOFFS macro. * There is an additional file tommath_cutoffs.h, which defines the default cutoffs. These can be adjusted manually or by the autotuner.
Daniel Mendler 90eccd57 2019-04-25T15:36:35 prefix private macros by PRIVATE_
Daniel Mendler 632601f4 2019-04-13T17:34:11 MP_WARRAY is an internal macro
Daniel Mendler e45f75fd 2019-04-13T08:46:57 deprecate DIGIT_BIT, use MP_DIGIT_BIT
Daniel Mendler a8c76138 2019-04-12T21:15:56 deprecate macros in tommath.h * move MP_DEPRECATED to tommath.h since we need it later * add MP_DEPRECATED_PRAGMA
Daniel Mendler 87292ed1 2019-04-09T12:19:40 move mp_balance_mul to tommath_private.h
czurnieden 35311aea 2019-04-03T23:50:57 added function mp_ilogb
czurnieden 27ca25cb 2019-04-06T18:55:43 added multiplcation balancing for the Toom-Cook algorithms
Daniel Mendler ff561404 2019-04-07T15:29:11 shorter headers
Daniel Mendler 70a30ae7 2019-04-07T02:29:28 remove footers
Daniel Mendler 5da4e0ac 2019-04-04T23:06:00 remove unnecessary size_t casts, fix Wconversion/Wsign-conversion issues Wconversion and Wsign-conversion is still not activated by default, since there are many issues in demo.c.
czurnieden 769218cc 2019-04-03T18:59:09 additional functions mp_incr and mp_decr
nijtmans a3076677 2019-03-28T16:18:41 previous commit removed a little bit too much
nijtmans ef07da5b 2019-03-28T16:13:37 mp_min_u32 is not used anywhere anymore, so it can be removed
Daniel Mendler 8eb3bb28 2019-03-22T15:02:29 do not include stdio.h if LTM_NO_FILE is defined stdio.h might not be available on constraint environments
Francois Perrad 6ce271c4 2018-12-28T09:41:54 mp_iseven & mp_isodd becomes C functions
Steffen Jaeckel 1c8c5348 2019-01-15T18:20:24 Merge pull request #147 from czurnieden/moarvm_workarounds workaround for the MoarVM problem with MP_GEN_RAND et al. (cherry picked from commit 11d6e0391421bc996b2cf780f3f4c3fa634001d0)
czurnieden 08eb995d 2019-01-13T20:21:36 implemented Steffen Jaeckels superior suggestion regarding MoarVM's problem
czurnieden aadb1efa 2019-01-13T01:07:42 changes for the Clang compiler
czurnieden b7216e89 2019-01-13T00:51:02 workaround for the MoarVM problem with MP_GEN_RAND et al.
Steffen Jaeckel 7ac11218 2018-12-26T15:19:07 clarify comment of ltm_rng()
Steffen Jaeckel 18355de6 2018-12-29T17:56:20 Update file headers [skip ci]
czurnieden f4449362 2018-05-26T01:39:03 fixes for MP_8BIT and mx32, prefinal design
czurnieden 08cee432 2018-05-21T22:54:55 Moved mp_mul_si() into bn_mp_prime_strong_lucas_selfridge.c as a local function
czurnieden a218ddce 2018-05-03T23:45:02 Added Fips 186.4 compliance, an additional strong Lucas-Selfridge (for BPSW) and a Frobenius (Paul UNderwood) test, both optional. With documentation.
Mikhail Novosyolov adbadc70 2018-11-18T01:30:51 Fix includes Header files which are located in the same directory that the file from where it is included must be included using `" "`, not `< >`. Otherwise the compiler (gcc 5) cannot understand `#include <tommath_class.h>` in `/usr/include/tommath/tommath.h`.
Daniel Mendler 2ab527b7 2018-09-10T18:51:26 add mp_get_double, mp_set_double
Steffen Jaeckel 8b9f98ba 2018-09-23T21:37:58 auto-format by executing `make astyle`
Daniel Mendler eebbcf06 2018-09-10T18:48:58 add mp_complement, mp_tc_div_2d, mp_tc_and, mp_tc_or, mp_tc_xor
Karel Miko 92e8719b 2018-05-28T22:02:13 improved detection of MP_64BIT
czurnieden 22550d41 2018-05-02T22:01:09 Do not use tommath.h from the system for building
czurnieden 9034e712 2018-05-02T21:43:17 Do not use installed headers for building
Steffen Jaeckel ef6d85a1 2018-04-14T14:33:36 don't use rand() in mp_rand() This fixes #103
Michael Shigorin 0bc75513 2018-02-26T09:32:12 add e2k/lcc support
Steffen Jaeckel f51249b6 2018-02-02T12:07:21 clean-up file headers
Francois Perrad 43c26b3a 2015-12-09T19:16:30 use same parameter name between prototype declaration and definition
Francois Perrad bdbed000 2017-10-15T19:57:12 literal suffix
Steffen Jaeckel d1fc4a71 2017-10-03T15:18:33 LLP64 indicates a windows environment as of [1] the only architecture using a LLP64 data model is windows [1]: https://en.wikipedia.org/wiki/64-bit_computing
Steffen Jaeckel 1346d983 2017-10-03T09:19:50 there's no __int128 on MSVC, fall back to 32bit MPI's
Francois Perrad d293ab66 2017-09-30T22:57:00 more constify
nijtmans f674018a 2017-09-20T16:59:43 constify remaining functions
nijtmans 41de5855 2017-09-19T13:35:15 Add 'const' keyword in various places. Adopted from Tcl
Francois Perrad f89cda03 2017-08-30T19:15:27 format with astyle (step 5)
Francois Perrad 82a2d385 2017-08-30T05:56:38 refactor indentation of preprocessor directives
Francois Perrad 378be117 2017-08-28T21:40:10 add missing space after comma
Kevin B Kenny 71e3024f 2005-05-10T17:20:39 fix mp_iseven
Steffen Jaeckel 6f212942 2017-08-28T16:27:26 replace SVN tags
Steffen Jaeckel 27115d4b 2017-05-09T14:00:26 use 64-bit detection code from libtomcrypt
Steffen Jaeckel c17c4771 2017-04-09T00:44:01 allow external define of MP_GEN_RANDOM
Steffen Jaeckel d5b0f1e9 2016-04-10T13:55:42 loop&shift until enough random data has been read
Tom St Denis f551dbc8 2016-02-03T13:07:27 Remove all traces of ulong64 as per comment by Karel M
Francois Perrad a0b8ce68 2015-11-13T17:47:30 use unsigned literal
Francois Perrad e6cfefc1 2015-11-19T21:53:32 more private stuff
Francois Perrad f771e317 2015-11-19T21:34:58 move standard includes
Steffen Jaeckel 4e3f1344 2015-11-12T01:49:07 provide tommath_private.h tommath.h contains declarations for the public part of the library. tommath_private.h contains the functions which are private to ltm and should not be exposed to the public.
Steffen Jaeckel bd39da23 2015-11-12T01:33:25 use correct value to compare to in mp_isneg() macro
Francois Perrad e25f1701 2015-10-25T16:21:17 explicit condition (part H)
Francois Perrad 84db6f9d 2015-10-17T18:12:48 add parentheses for explicit operator precedence
Francois Perrad 4430c6bc 2015-10-11T15:54:43 array declaration with its size
Francois Perrad 9f781162 2015-10-17T18:27:56 add parentheses for explicit operator association
Steffen Jaeckel 7ab90a48 2015-06-07T14:19:06 use stdint.h for mp_digit and mp_word typedefs
Steffen Jaeckel 8432c4ed 2014-12-11T22:44:50 clarify documentation of mp_div_2d() and mp_mul_2d()
Karel Miko 1c85a283 2015-04-17T22:46:11 adding bn_mp_sqrtmod_prime.c
Tom St Denis 079b0f65 2015-10-30T17:55:29 Getting ready for v0.43.0 release Also updated my email address... Signed-off-by: Tom St Denis <tstdenis82@gmail.com>
Donald Chan 676e7ea4 2015-10-30T10:33:46 Adding LTM_NO_FILE flag Certain embedded implementatino does not have FILE defined, adding LTM_NO_FILE flag to avoid compiler errors Signed-off-by: Donald Chan <hoiho.chan@gmail.com> Reviewed-by: Tom St Denis <tstdenis82@gmail.com>
Carlin 5d1096b0 2014-12-12T01:42:30 use arc4random() instead of rand() on *BSD
Steffen Jaeckel 9d697d46 2014-12-10T19:01:12 fix compilation with MP_8BIT or MP_16BIT
Steffen Jaeckel 0e3d3ad2 2014-12-10T18:59:31 add mp_get_long_long() and mp_set_long_long()
Steffen Jaeckel f88e6a04 2014-12-10T18:32:44 replace mp_set_long() implementation by macro
Moritz Lenz 6df187ae 2011-11-13T19:17:46 Add set_long and get_long functions They work on platform-dependent long ints