From c69c3907c319a9be586d6c36d985549b80df8669 Mon Sep 17 00:00:00 2001 From: Steffen Jaeckel Date: Fri, 2 Feb 2018 10:09:08 +0100 Subject: [PATCH 1/8] rename timing demo --- .gitignore | 4 ++-- makefile | 14 +++++++------- makefile.icc | 16 ++++++++-------- makefile.shared | 4 ++-- makefile_include.mk | 4 ++-- 5 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index 2717a33..38b3426 100644 --- a/.gitignore +++ b/.gitignore @@ -14,8 +14,8 @@ coverage*/ coverage.info # suppress output of build process and *nix/windows test executables -ltmtest -ltmtest.exe +timing +timing.exe test test.exe mtest diff --git a/makefile b/makefile index 5eddae4..fe1c2cf 100644 --- a/makefile +++ b/makefile @@ -67,17 +67,17 @@ $(LIBNAME): $(OBJECTS) # So far I've seen improvements in the MP math profiled: make CFLAGS="$(CFLAGS) -fprofile-arcs -DTESTING" timing - ./ltmtest - rm -f *.a *.o ltmtest + ./timing + rm -f *.a *.o timing make CFLAGS="$(CFLAGS) -fbranch-probabilities" #make a single object profiled library profiled_single: perl gen.pl $(CC) $(CFLAGS) -fprofile-arcs -DTESTING -c mpi.c -o mpi.o - $(CC) $(CFLAGS) -DTESTING -DTIMER demo/timing.c mpi.o -lgcov -o ltmtest - ./ltmtest - rm -f *.o ltmtest + $(CC) $(CFLAGS) -DTESTING -DTIMER demo/timing.c mpi.o -lgcov -o timing + ./timing + rm -f *.o timing $(CC) $(CFLAGS) -fbranch-probabilities -DTESTING -c mpi.c -o mpi.o $(AR) $(ARFLAGS) $(LIBNAME) mpi.o ranlib $(LIBNAME) @@ -102,8 +102,8 @@ test_standalone: $(LIBNAME) demo/demo.o mtest: cd mtest ; $(CC) $(CFLAGS) -O0 mtest.c $(LFLAGS) -o mtest -timing: $(LIBNAME) - $(CC) $(CFLAGS) -DTIMER demo/timing.c $(LIBNAME) $(LFLAGS) -o ltmtest +timing: $(LIBNAME) demo/timing.c + $(CC) $(CFLAGS) -DTIMER demo/timing.c $(LIBNAME) $(LFLAGS) -o timing # You have to create a file .coveralls.yml with the content "repo_token: " # in the base folder to be able to submit to coveralls diff --git a/makefile.icc b/makefile.icc index 1563802..a1d1fdc 100644 --- a/makefile.icc +++ b/makefile.icc @@ -80,17 +80,17 @@ libtommath.a: $(OBJECTS) # So far I've seen improvements in the MP math profiled: make -f makefile.icc CFLAGS="$(CFLAGS) -prof_gen -DTESTING" timing - ./ltmtest - rm -f *.a *.o ltmtest + ./timing + rm -f *.a *.o timing make -f makefile.icc CFLAGS="$(CFLAGS) -prof_use" #make a single object profiled library profiled_single: perl gen.pl $(CC) $(CFLAGS) -prof_gen -DTESTING -c mpi.c -o mpi.o - $(CC) $(CFLAGS) -DTESTING -DTIMER demo/demo.c mpi.o -o ltmtest - ./ltmtest - rm -f *.o ltmtest + $(CC) $(CFLAGS) -DTESTING -DTIMER demo/demo.c mpi.o -o timing + ./timing + rm -f *.o timing $(CC) $(CFLAGS) -prof_use -ip -DTESTING -c mpi.c -o mpi.o $(AR) $(ARFLAGS) libtommath.a mpi.o ranlib libtommath.a @@ -107,11 +107,11 @@ test: libtommath.a demo/demo.o mtest: test cd mtest ; $(CC) $(CFLAGS) mtest.c -o mtest -timing: libtommath.a - $(CC) $(CFLAGS) -DTIMER demo/timing.c libtommath.a -o ltmtest +timing: libtommath.a demo/timing.c + $(CC) $(CFLAGS) -DTIMER demo/timing.c libtommath.a -o timing clean: - rm -f *.bat *.pdf *.o *.a *.obj *.lib *.exe *.dll etclib/*.o demo/demo.o test ltmtest mpitest mtest/mtest mtest/mtest.exe \ + rm -f *.bat *.pdf *.o *.a *.obj *.lib *.exe *.dll etclib/*.o demo/demo.o test timing mpitest mtest/mtest mtest/mtest.exe \ *.idx *.toc *.log *.aux *.dvi *.lof *.ind *.ilg *.ps *.log *.s mpi.c *.il etc/*.il *.dyn cd etc ; make clean cd pics ; make clean diff --git a/makefile.shared b/makefile.shared index 67213a2..870160a 100644 --- a/makefile.shared +++ b/makefile.shared @@ -84,5 +84,5 @@ test_standalone: $(LIBNAME) demo/demo.o mtest: cd mtest ; $(CC) $(CFLAGS) $(LDFLAGS) mtest.c -o mtest -timing: $(LIBNAME) - $(LT) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -DTIMER demo/timing.c $(LIBNAME) -o ltmtest +timing: $(LIBNAME) demo/timing.c + $(LT) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -DTIMER demo/timing.c $(LIBNAME) -o timing diff --git a/makefile_include.mk b/makefile_include.mk index 45a4895..f21e7aa 100644 --- a/makefile_include.mk +++ b/makefile_include.mk @@ -70,7 +70,7 @@ endif # adjust coverage set ifneq ($(filter $(shell arch), i386 i686 x86_64 amd64 ia64),) COVERAGE = test_standalone timing - COVERAGE_APP = ./test && ./ltmtest + COVERAGE_APP = ./test && ./timing else COVERAGE = test_standalone COVERAGE_APP = ./test @@ -113,7 +113,7 @@ cleancov-clean: cleancov: cleancov-clean clean clean: - rm -f *.gcda *.gcno *.gcov *.bat *.o *.a *.obj *.lib *.exe *.dll etclib/*.o demo/demo.o test ltmtest mpitest mtest/mtest mtest/mtest.exe \ + rm -f *.gcda *.gcno *.gcov *.bat *.o *.a *.obj *.lib *.exe *.dll etclib/*.o demo/demo.o test timing mpitest mtest/mtest mtest/mtest.exe \ *.idx *.toc *.log *.aux *.dvi *.lof *.ind *.ilg *.ps *.log *.s mpi.c *.da *.dyn *.dpi tommath.tex `find . -type f | grep [~] | xargs` *.lo *.la rm -rf .libs/ ${MAKE} -C etc/ clean MAKE=${MAKE} From 82376cb19b0e5f652630eb4b1978d7925d128360 Mon Sep 17 00:00:00 2001 From: Steffen Jaeckel Date: Fri, 2 Feb 2018 10:23:17 +0100 Subject: [PATCH 2/8] format output of timing demo --- demo/timing.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/demo/timing.c b/demo/timing.c index d22e471..1b72a00 100644 --- a/demo/timing.c +++ b/demo/timing.c @@ -137,7 +137,7 @@ int main(void) } while (++rr < 100000u); printf("Adding\t\t%4d-bit => %9" PRIu64 "/sec, %9" PRIu64 " cycles\n", mp_count_bits(&a), CLK_PER_SEC / tt, tt); - FPRINTF(log, "%d %9" PRIu64 "\n", cnt * DIGIT_BIT, tt); + FPRINTF(log, "%6d %9" PRIu64 "\n", cnt * DIGIT_BIT, tt); FFLUSH(log); } FCLOSE(log); @@ -159,7 +159,7 @@ int main(void) printf("Subtracting\t\t%4d-bit => %9" PRIu64 "/sec, %9" PRIu64 " cycles\n", mp_count_bits(&a), CLK_PER_SEC / tt, tt); - FPRINTF(log, "%d %9" PRIu64 "\n", cnt * DIGIT_BIT, tt); + FPRINTF(log, "%6d %9" PRIu64 "\n", cnt * DIGIT_BIT, tt); FFLUSH(log); } FCLOSE(log); @@ -194,7 +194,7 @@ int main(void) } while (++rr < 100u); printf("Multiplying\t%4d-bit => %9" PRIu64 "/sec, %9" PRIu64 " cycles\n", mp_count_bits(&a), CLK_PER_SEC / tt, tt); - FPRINTF(log, "%d %9" PRIu64 "\n", mp_count_bits(&a), tt); + FPRINTF(log, "%6d %9" PRIu64 "\n", mp_count_bits(&a), tt); FFLUSH(log); } FCLOSE(log); @@ -214,7 +214,7 @@ int main(void) } while (++rr < 100u); printf("Squaring\t%4d-bit => %9" PRIu64 "/sec, %9" PRIu64 " cycles\n", mp_count_bits(&a), CLK_PER_SEC / tt, tt); - FPRINTF(log, "%d %9" PRIu64 "\n", mp_count_bits(&a), tt); + FPRINTF(log, "%6d %9" PRIu64 "\n", mp_count_bits(&a), tt); FFLUSH(log); } FCLOSE(log); @@ -291,7 +291,7 @@ int main(void) printf("Exponentiating\t%4d-bit => %9" PRIu64 "/sec, %9" PRIu64 " cycles\n", mp_count_bits(&a), CLK_PER_SEC / tt, tt); FPRINTF((n < 4) ? logd : (n < 9) ? logc : (n < 16) ? logb : log, - "%d %9" PRIu64 "\n", mp_count_bits(&a), tt); + "%6d %9" PRIu64 "\n", mp_count_bits(&a), tt); } } FCLOSE(log); @@ -326,7 +326,7 @@ int main(void) } printf("Inverting mod\t%4d-bit => %9" PRIu64 "/sec, %9" PRIu64 " cycles\n", mp_count_bits(&a), CLK_PER_SEC / tt, tt); - FPRINTF(log, "%d %9" PRIu64 "\n", cnt * DIGIT_BIT, tt); + FPRINTF(log, "%6d %9" PRIu64 "\n", cnt * DIGIT_BIT, tt); } FCLOSE(log); From bf61c0be58892c14c31f4ce7d824da3fd2b12b2e Mon Sep 17 00:00:00 2001 From: Steffen Jaeckel Date: Fri, 2 Feb 2018 10:54:54 +0100 Subject: [PATCH 3/8] fix timing & logs/*.png generation --- demo/timing.c | 2 +- logs/Makefile | 2 ++ logs/graphs.dem | 1 - 3 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 logs/Makefile diff --git a/demo/timing.c b/demo/timing.c index 1b72a00..78fce1e 100644 --- a/demo/timing.c +++ b/demo/timing.c @@ -290,7 +290,7 @@ int main(void) } printf("Exponentiating\t%4d-bit => %9" PRIu64 "/sec, %9" PRIu64 " cycles\n", mp_count_bits(&a), CLK_PER_SEC / tt, tt); - FPRINTF((n < 4) ? logd : (n < 9) ? logc : (n < 16) ? logb : log, + FPRINTF((n < 3) ? logd : (n < 9) ? logc : (n < 16) ? logb : log, "%6d %9" PRIu64 "\n", mp_count_bits(&a), tt); } } diff --git a/logs/Makefile b/logs/Makefile new file mode 100644 index 0000000..c2ebaf7 --- /dev/null +++ b/logs/Makefile @@ -0,0 +1,2 @@ +all: + gnuplot graphs.dem diff --git a/logs/graphs.dem b/logs/graphs.dem index dfaf613..538e5c0 100644 --- a/logs/graphs.dem +++ b/logs/graphs.dem @@ -1,5 +1,4 @@ set terminal png -set size 1.75 set ylabel "Cycles per Operation" set xlabel "Operand size (bits)" From f9536dcdc23ae385b1c7ebd31189c6759450eced Mon Sep 17 00:00:00 2001 From: Steffen Jaeckel Date: Fri, 2 Feb 2018 10:55:39 +0100 Subject: [PATCH 4/8] update results when running the timing demo --- logs/add.log | 32 ++++----- logs/addsub.png | Bin 6254 -> 5921 bytes logs/expt.log | 14 ++-- logs/expt.png | Bin 6605 -> 7290 bytes logs/expt_2k.log | 11 +-- logs/expt_2kl.log | 7 +- logs/expt_dr.log | 14 ++-- logs/invmod.log | 8 +++ logs/invmod.png | Bin 4918 -> 6294 bytes logs/mult.log | 168 ++++++++++++++++++++++----------------------- logs/mult.png | Bin 6770 -> 8308 bytes logs/mult_kara.log | 168 ++++++++++++++++++++++----------------------- logs/sqr.log | 168 ++++++++++++++++++++++----------------------- logs/sqr_kara.log | 168 ++++++++++++++++++++++----------------------- logs/sub.log | 32 ++++----- 15 files changed, 399 insertions(+), 391 deletions(-) diff --git a/logs/add.log b/logs/add.log index 43503ac..0ed7b70 100644 --- a/logs/add.log +++ b/logs/add.log @@ -1,16 +1,16 @@ -480 87 -960 111 -1440 135 -1920 159 -2400 200 -2880 224 -3360 248 -3840 272 -4320 296 -4800 320 -5280 344 -5760 368 -6240 392 -6720 416 -7200 440 -7680 464 + 480 48 + 960 61 + 1440 82 + 1920 97 + 2400 106 + 2880 112 + 3360 127 + 3840 130 + 4320 146 + 4800 157 + 5280 174 + 5760 185 + 6240 200 + 6720 214 + 7200 230 + 7680 244 diff --git a/logs/addsub.png b/logs/addsub.png index a5679ac563e6cf347bccc70fb4694ef684375ffc..b8ffef74b32056352e53c3e0fa25585fbf9cb658 100644 GIT binary patch literal 5921 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 literal 6254 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 Ke`+qa^M3$0ORS*) diff --git a/logs/expt.log b/logs/expt.log index 70932ab..2e5ee30 100644 --- a/logs/expt.log +++ b/logs/expt.log @@ -1,7 +1,7 @@ -513 1435869 -769 3544970 -1025 7791638 -2049 46902238 -2561 85334899 -3073 141451412 -4097 308770310 + 513 446633 + 769 1110301 + 1025 2414927 + 2049 14870787 + 2561 26299761 + 3073 44323310 + 4097 98934292 diff --git a/logs/expt.png b/logs/expt.png index 9ee8bb769feaa56ee7cffbbd5c7d39ebdb4799d3..27c53eecf1afe22f40ccdb638942365ef595df77 100644 GIT binary patch literal 7290 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 Ts)ih83wHX1rRiH^V)*|9RE7^# literal 6605 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 diff --git a/logs/expt_2k.log b/logs/expt_2k.log index 97d325f..140b92f 100644 --- a/logs/expt_2k.log +++ b/logs/expt_2k.log @@ -1,5 +1,6 @@ -607 2109225 -1279 10148314 -2203 34126877 -3217 82716424 -4253 161569606 + 521 533515 + 607 675230 + 1279 2560713 + 2203 7468422 + 3217 17314246 + 4253 33899969 diff --git a/logs/expt_2kl.log b/logs/expt_2kl.log index d9ad4be..1dc495f 100644 --- a/logs/expt_2kl.log +++ b/logs/expt_2kl.log @@ -1,4 +1,3 @@ -1024 7705271 -2048 34286851 -4096 165207491 -521 1618631 + 1024 2210287 + 2048 7940364 + 4096 35903891 diff --git a/logs/expt_dr.log b/logs/expt_dr.log index c6bbe07..3752ea8 100644 --- a/logs/expt_dr.log +++ b/logs/expt_dr.log @@ -1,7 +1,7 @@ -532 1928550 -784 3763908 -1036 7564221 -1540 16566059 -2072 32283784 -3080 79851565 -4116 157843530 + 532 642330 + 784 1138699 + 1036 1972796 + 1540 3912241 + 2072 7075836 + 3080 16420867 + 4116 32477173 diff --git a/logs/invmod.log b/logs/invmod.log index e69de29..7d22449 100644 --- a/logs/invmod.log +++ b/logs/invmod.log @@ -0,0 +1,8 @@ + 240 58197 + 480 86617 + 720 255279 + 960 399626 + 1200 533330 + 1440 470046 + 1680 906754 + 1920 1132009 diff --git a/logs/invmod.png b/logs/invmod.png index 0a8a4ad77170380b229a454283696e6cd4910fd0..5c09e9012ada8048ee3bcd686b361c40b110f9df 100644 GIT binary patch literal 6294 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 NK-W~KO3V4>e*vgMc6k5* literal 6770 zcmb7o3p`Zm|NogWXc%(MDEApe7ssuHMaeXyi4A4jZU?1QluPM`qomYCgEERzO=DHd zR@yCz6C#?F%hsx-5)x5Va-HAv%+R*`+VB7M`p;{Q^UQOe&+Ywre?HISB>m{MNJVL? z5`rKq9QHyV1fgIEBFCO22WCnSg?J$d$>K+@pNB*u0W&!{Iq*gx2reNI3DVO;xPd>2 zkr5#wj1b%{2bbV(hy<4)1cndtu{G1I0#0(3%^LV^Av&loLS2O_Bq?m?USL1Zb6Nlt>6av*Jhu(WP(}&iC8-^nLS@ z9jDk++?H;t>yyMqR6Ra2chb@yQ(_)R*>ySuWG&p&BOhRYl*vi`{wvf{j%zkN)uzZ9 z(h@u=FO554zzlgvk)w02mz=dg*C?|7Ba%MaA(!9H8r81u z70Nm0$ic9SJyq{`DOUxX5kZ`TErcuzCFHi40X%Q@R>;2qQ7vE`E5b6F( zZ1u$;fs6Wt5m5##g7#3UG~-+hLF;~}zj52?je*C)Rau^+dfd3+6{O%kyDqw*N$1f( zFC}YeU^MR9$fmsnTQ_U}F4rsN8$FbK&GCa}&m|2`vz)(DM|~?Ji|rpYR=3qov3E#$ zj<9Ni1x+q}>m*HNmgi)FPs!_<7?Z@(z!1iT!l?H@7e4QvzHDC=X)dRzX=%Oqnq>GC zv$=bE$g3vF`z5JiJJRj`Fo}stdlNs`Y3z?Fn6OwRDA<}Bb?v+`l;|$vTnz`KkMjhK zFzMXQNOY^(j%H?O@FGrEx%dm;JX7)~&aWYvT|dPnF{o%NB1d0VT#?X}9ejUr;O%P+ zOn9f|U0vkuJxv=vF;^G$S2;P6StsLOhs9RLjeYuDn~X0#;Ive5!(!t*gNm^uUpm6( zZed9x)+I&npzt;+h)O@w*3z6thGsS!Pfv;7QT!`F`<`})4!Xp4_u0#EQ4}3@r%k~> z0#)jmFN&q1t1MaR6Cz4y$DP=(y+Vb?j<2kc%nsiXDx zaxS{Y5p0~qV-g61ESTX?IpYoF~yq!PC%NVX0f5gYhy|ZlP@U zPX%!Z%m{GcQI3hrWat15lX`H4P-Bs0W0*ve0t#R{5uWMVkDg)6oLmEZB_bGJFB9iUi(rR?z(Z{zl z*8#TR_s7g*HaM@Sze{0cVmqETk}3}~J8x)*tUl3&8}s}q=#eM6R=2n+bc;AF)mc^Q zE;KssBDkggKb<>H8~5#BGB7LF$Zzlh5)THkHn+D>$|6f1>6RZA5VjxodA`*+ty&U@;6Rof?5MkuINicCcm@s+& z&X)|$?}-7|>c~Njicz*@Z2SrX`Yoj@j8ba?P;L!z!)umQvQMsZ#TpqkXcN@1kZYY; z@Qw7va=i4p=&Q8@ThF9C5WCxez-uUiTb2*pkJS#aqcPMy}0bTdq=Cc zJJ4!DT2->AzI5RHZ@5@nlZFX3mJ4;zkYCwzol?_n(Zxc9RUhp=azVKvW36b%3ICc{ z56?aaY1L8Do8(rTREpqQyzxKEPs|5MiJKt!Jbli86~Jk|k8;bv0^W zwT58d84o{ETKdwug7BG30cU~HKLEd|D`T9(P7x@x zWX(cm|6749qw&&YhD1z2OR4Se8cwG)Y0}WYG0j4g4pKNc2lSrr@+dw&5esOf+X;tp zmqf$;W7pr4fC-n+ZM|nyWNFa_$LqrHbzidMPaQDa>- zfxOd!Rb+SPO+@BY)aUdJpVX>Biqy0X!A>G;o?cIrK`m7B7jC0L&AvJy>U;&W0qts# z=GEBApfD2vyP!LzzbP5iT0GUPOS_sww^)IZF{X!{*)aSC0lUlwunMBR%Gi12w5D)` zv0k40#j5ZcgR>lzy*4?LHaU+B3Ea}gCD-(FJ7!TKA6-9W|NNld_b3C;K8nb=nSf1K~;$%6x z#WkwPV$VLff+lE@w~$1la~ZsJCR$Zo-xG*+vo*lwvwemSDI<@>Fr{*JGxBueK>{*J zX-}ZP6z+|+i)su2#nKJXxF^3Xc2ERb=VLvFOC81w)pI5P@Yj95n~A^p!WsC@XFg?| zHRb`rPk8lv2UyDAl{3d5(#0AiT2`k;Uy=;H9BZ$`#I7cBrz_Bba|Y;Lh#TNso=7{7 zXXS8RLDsG;sRD6w(4y3b0gjE#iu}NtKAH)zrqLl2n<@%vRz4vH`#y<%llv6)V4oIPg%PWi#prR%(FOu|=VM ztl+fkr>}VR!7Rwf4zg`k?da@#=*Ww=kak}HQIg+~08?rZfuhY;*axB;K>pNcw>WpM zb=}U%=r)6(l~Ee9mni+r2inQR7KdAKyIi})f5wws-(v22CNI7GaQeG&@N_wmkQ%0q z@Y1!=(Mu0-eiRc;vAVBJ=cwZr9YbGwO#P~4CLkeatG+V58f+AKQ?TS$ z#-_3&O$Ab^J6u2BcdAyVTj*kajrIJ>3YP3Eq8WJyk z;IQB8F32JiLa)L-4AiTmieN9~-dxOc&slv;xDX#4#b0~%?as?iS4G>h_X7e@5zPgB zDd#9+YMKTn{MldFhu>6Zc_J{$34D-baU>|A)SvhlU zU2CNW2zfZwV=W|~DXKUN65V#Vyp0?QbHtD~0pWY^k$UgGr+lGuJg6ZSJrBVQA|E6w zg4!8u%ou*Aa@mzRdAv*QUM_4;V*j-3?Pb4tEg#tQ&LHEGo%IKY6RsZS_G$6}pke!N zHY_azC|KBI1`%42w4SPh56}4#rQFa2e(FlT&kykA^%tK>_>qAG`S0z1-E{6^fF9f+ z21y_*$iyWF3mGlQi*}j>ByZgl93Z7*rb{N=6p+R{4DfhRlpcRkrt9kNJ(S&Ua z1L%=g;RyEZ^mab`$-iHN^{!yv zD<{lAVmi|(ZGZw|$UlXxA<~OL{Ry>}3w`22jX3HHWRZTB zG(jChf;g#C>%P6d23aq937E83K)e1U^ne@heP@ zEX_Z`;}A$8*Q6N=T$kB3na!#Fq$FD=T`Ki2>k3mHM8>U9uS{C=w=QUOh&1}ngq_jvL{kj1~X}J;X=(y zHMmGs3OfW^Y63yMM9?mPW-Wuj z%sW78Vjr3ap{h%`Vg{g^H=kYs;WXnJ!{uD*n&1Tj_t|FBi3Hlk~R^yI}Y%3g| z&49TEdi%5#p!##vAn28?M*DBRx242c0{)i`S_1w}6x=zPKqs*dDm54e0{g#MiQ_kG zfROcz&FrB}WHJhFQEyJ#sa49Gl30qW*1tl_;t=UFk5y^i95PRJRoYZ{9&)|`0&%|l zvG9sis!`3>7`mlzS5XMGXz>MkaU5t(&32Y_e!f@;7dD!MUWs{d zk0Kq+)P>Hqem^o9n5@f~Py%A&Jx;jkp#}#f(*mDr2g0S(0#C%z!Aws@g<2*3{F^gh zUlj}o+4duX-e+?w3O85KgVG(*0%=D<+C2l8yOOOvWA>4_MHQEo_tP)@aOe3fYUJdY z!%;TYvjU@ZXCHL#%!snS!*mlTri7RHbG%S1K(0=WhOnXO71P_mz7NO1U(YT3Rus9s zx7ltN=wdHw{u<6(8ZpD?=c>H(&vGjZS0)7jP+FcDx!Q`F$IkN9F}29yE&iKajX5Yygdt6_#Nij9_8-&1jmh= z#1%TnLY}pz$m^0sFXpvV0^w|kxZ=svEe!qlt_6egG;Gtt;B79VP=-No>4w-YlANIE z*e+|$<8(O{4DszKYAhDa+b=M;jqL}Ib|2fdsx0iGP326mFZv~kz4yG1&priSzr0%@ z8XO$?wcvp*nK#F{{}Ok&KT_LvObrxn-=fUYNNayIXak`2JNo*bX$__`($Z`}ZFFAW z8l1l((+w!oTEcx6RXet(inbBRL?m&r^0NxCQ3_KMAF%Lj4gBjF@g zre?$1OvifW2Ul%7d}(q8_xb#7(;Vccl30t5TDN9X?EuI1gUq5uQD?)iDxfv>f`M8) zjzt`W&X}ysuP?Er3vCk~Gu5v~w9Ct2=eCGJ{uM41w+*>#; z^y)FuyVXjlr(R}Wov3}tRn3;9c;tNl1Ht)E)llSIxe<5Le%3 zqaR+9HVLiIby}v7d$emvlgzuAYF_?i1hg^BB}V5}Fku%fr`6O_V=BSUWfx|O&Mlu# zutOT`97EE|?d=G5<{ZUZYdI}U54?=tM#>6ZFIhQttgZJjd>dW)v284+g`*hdrbywz ziC}r|hDA!LmNVNe1ZFpOGA+gqgFTF&o`mk@PrM4RkJzxQvx9mSUIgPG1@%ig+Fj1()mVEwU6zw9~_&=i-LvVUmhNkcT{ zmgY#C^N8eV?Z_;ZhiglItaE&*Nazh_IRq`*P43_66J=oH+VarxWmjkP3(~_;T1%Y1 zx6{j}(hJ$%SH-1vxf0#e(Os>PP1E8ctTV3KPIlJbpUh@KW+nKW)XZGRYta{z*z_GP?iHp@cR*76j$(X#q-l;SzU;l_D*FUbb z{O4PLCa30X(vy8wCC6GOci z9*K3aTTlE~X6OtbiTPzx!{}XvaeNjxnx2E0R%YUc4 g4xA5Cg`UHP^M*oSE`Q=%f`AXl!)syw0&L&^0or4D&j0`b diff --git a/logs/mult_kara.log b/logs/mult_kara.log index 7136c79..91b59cb 100644 --- a/logs/mult_kara.log +++ b/logs/mult_kara.log @@ -1,84 +1,84 @@ -271 560 -391 870 -511 1159 -631 1605 -750 2111 -871 2737 -991 3361 -1111 4054 -1231 4778 -1351 5600 -1471 6404 -1591 7323 -1710 8255 -1831 9239 -1948 10257 -2070 11397 -2190 12531 -2308 13665 -2429 14870 -2550 16175 -2671 17539 -2787 18879 -2911 20350 -3031 21807 -3150 23415 -3270 24897 -3388 26567 -3511 28205 -3627 30076 -3751 31744 -3869 33657 -3991 35425 -4111 37522 -4229 39363 -4351 41503 -4470 43491 -4590 45827 -4711 47795 -4828 50166 -4951 52318 -5070 54911 -5191 57036 -5308 58237 -5431 60248 -5551 62678 -5671 64786 -5791 67294 -5908 69343 -6031 71607 -6151 74166 -6271 76590 -6391 78734 -6511 81175 -6631 83742 -6750 86403 -6868 88873 -6990 91150 -7110 94211 -7228 96922 -7351 99445 -7469 102216 -7589 104968 -7711 108113 -7827 110758 -7950 113714 -8071 116511 -8186 119643 -8310 122679 -8425 125581 -8551 128715 -8669 131778 -8788 135116 -8910 138138 -9031 141628 -9148 144754 -9268 148367 -9391 151551 -9511 155033 -9631 158652 -9751 162125 -9871 165248 -9988 168627 -10111 172427 -10231 176412 + 240 133 + 360 250 + 474 396 + 599 585 + 720 637 + 840 1045 + 960 1212 + 1080 1543 + 1196 1780 + 1320 2005 + 1436 2274 + 1560 2446 + 1680 1985 + 1800 2368 + 1920 2791 + 2038 3620 + 2160 3763 + 2278 3444 + 2400 4158 + 2516 5869 + 2640 6368 + 2753 5384 + 2876 7449 + 3000 6471 + 3114 8540 + 3240 7217 + 3360 9685 + 3476 6759 + 3599 8518 + 3714 8911 + 3840 12345 + 3960 9787 + 4079 11018 + 4196 12033 + 4319 12740 + 4440 12471 + 4558 15251 + 4678 13353 + 4798 15998 + 4920 13395 + 5040 13699 + 5160 14552 + 5280 14972 + 5400 15825 + 5520 16512 + 5639 17379 + 5757 17596 + 5879 18350 + 6000 18976 + 6115 19601 + 6240 20076 + 6354 20515 + 6480 21670 + 6600 22312 + 6716 22647 + 6839 23437 + 6960 24164 + 7080 24723 + 7199 25454 + 7320 26092 + 7440 26912 + 7557 27521 + 7677 28015 + 7800 28885 + 7919 29483 + 8040 30115 + 8160 31236 + 8280 31975 + 8400 30835 + 8520 31565 + 8639 32380 + 8760 32760 + 8879 33590 + 8996 34553 + 9119 35185 + 9239 36146 + 9358 36815 + 9480 39630 + 9596 43022 + 9720 41219 + 9840 41596 + 9960 42354 + 10080 43352 + 10200 43915 diff --git a/logs/sqr.log b/logs/sqr.log index cd29fc5..93234a1 100644 --- a/logs/sqr.log +++ b/logs/sqr.log @@ -1,84 +1,84 @@ -265 562 -389 882 -509 1207 -631 1572 -750 1990 -859 2433 -991 2894 -1109 3555 -1230 4228 -1350 5018 -1471 5805 -1591 6579 -1709 7415 -1829 8329 -1949 9225 -2071 10139 -2188 11239 -2309 12178 -2431 13212 -2551 14294 -2671 15551 -2791 16512 -2911 17718 -3030 18876 -3150 20259 -3270 21374 -3391 22650 -3511 23948 -3631 25493 -3750 26756 -3870 28225 -3989 29705 -4110 31409 -4230 32834 -4351 34327 -4471 35818 -4591 37636 -4711 39228 -4830 40868 -4949 42393 -5070 44541 -5191 46269 -5310 48162 -5429 49728 -5548 51985 -5671 53948 -5791 55885 -5910 57584 -6031 60082 -6150 62239 -6270 64309 -6390 66014 -6511 68766 -6631 71012 -6750 73172 -6871 74952 -6991 77909 -7111 80371 -7231 82666 -7351 84531 -7469 87698 -7589 90318 -7711 225384 -7830 232428 -7950 240009 -8070 246522 -8190 253662 -8310 260961 -8431 269253 -8549 275743 -8671 283769 -8789 290811 -8911 300034 -9030 306873 -9149 315085 -9270 323944 -9390 332390 -9508 337519 -9631 348986 -9749 356904 -9871 367013 -9989 373831 -10108 381033 -10230 393475 + 240 114 + 359 174 + 478 241 + 600 311 + 720 399 + 840 494 + 960 599 + 1080 799 + 1200 931 + 1320 911 + 1440 1016 + 1560 1143 + 1680 1281 + 1800 1459 + 1918 1617 + 2039 1763 + 2159 1913 + 2279 2071 + 2399 2240 + 2518 2412 + 2640 2600 + 2760 2792 + 2877 3008 + 2999 3220 + 3119 3405 + 3239 3637 + 3359 3859 + 3480 4094 + 3600 4328 + 3717 4571 + 3838 4840 + 3960 5098 + 4080 5349 + 4200 5617 + 4320 5891 + 4440 6147 + 4560 6444 + 4680 6745 + 4800 7057 + 4918 7317 + 5039 7637 + 5160 12833 + 5280 10098 + 5397 8666 + 5520 8999 + 5639 9376 + 5758 9727 + 5880 9996 + 6000 10427 + 6118 10868 + 6240 12218 + 6359 14010 + 6478 14838 + 6593 16135 + 6719 16503 + 6840 13267 + 6960 13648 + 7080 14118 + 7199 14525 + 7320 14803 + 7439 15378 + 7558 15871 + 7680 57530 + 7800 59550 + 7916 61091 + 8039 63004 + 8160 61136 + 8279 62803 + 8398 68671 + 8520 71001 + 8638 71537 + 8759 74757 + 8880 77164 + 9000 78963 + 9119 80982 + 9239 83142 + 9357 85292 + 9480 88190 + 9600 90343 + 9718 86710 + 9840 88818 + 9954 91034 + 10079 93350 + 10197 95592 diff --git a/logs/sqr_kara.log b/logs/sqr_kara.log index 06355a7..da10897 100644 --- a/logs/sqr_kara.log +++ b/logs/sqr_kara.log @@ -1,84 +1,84 @@ -271 560 -388 878 -511 1179 -629 1625 -751 1988 -871 2423 -989 2896 -1111 3561 -1231 4209 -1350 5015 -1470 5804 -1591 6556 -1709 7420 -1831 8263 -1951 9173 -2070 10153 -2191 11229 -2310 12167 -2431 13211 -2550 14309 -2671 15524 -2788 16525 -2910 17712 -3028 18822 -3148 20220 -3271 21343 -3391 22652 -3511 23944 -3630 25485 -3750 26778 -3868 28201 -3990 29653 -4111 31393 -4225 32841 -4350 34328 -4471 35786 -4590 37652 -4711 39245 -4830 40876 -4951 42433 -5068 44547 -5191 46321 -5311 48140 -5430 49727 -5550 52034 -5671 53954 -5791 55921 -5908 57597 -6031 60084 -6148 62226 -6270 64295 -6390 66045 -6511 68779 -6629 71003 -6751 73169 -6871 74992 -6991 77895 -7110 80376 -7231 82628 -7351 84468 -7470 87664 -7591 90284 -7711 91352 -7828 93995 -7950 96276 -8071 98691 -8190 101256 -8308 103631 -8431 105222 -8550 108343 -8671 110281 -8787 112764 -8911 115397 -9031 117690 -9151 120266 -9271 122715 -9391 124624 -9510 127937 -9630 130313 -9750 132914 -9871 136129 -9991 138517 -10108 141525 -10231 144225 + 240 115 + 360 175 + 480 241 + 600 312 + 719 397 + 839 494 + 960 597 + 1080 696 + 1200 794 + 1320 908 + 1439 1022 + 1560 1141 + 1678 1284 + 1797 1461 + 1918 1590 + 2040 1764 + 2160 1911 + 2278 2072 + 2399 2263 + 2516 2425 + 2640 2627 + 2756 2809 + 2880 3017 + 3000 3220 + 3119 3413 + 3239 3627 + 3359 3864 + 3479 4087 + 3600 4327 + 3720 4603 + 3840 4867 + 3957 5095 + 4079 5079 + 4200 5623 + 4319 5878 + 4439 6177 + 4560 6467 + 4679 6749 + 4800 7056 + 4920 7384 + 5039 7681 + 5159 8004 + 5280 8332 + 5399 8664 + 5520 8929 + 5638 9340 + 5760 9631 + 5879 10109 + 5999 10458 + 6118 10816 + 6240 11215 + 6359 11550 + 6478 11958 + 6600 12390 + 6718 12801 + 6838 13197 + 6959 13609 + 7079 14033 + 7199 16182 + 7320 16539 + 7440 16952 + 7559 16255 + 7679 17593 + 7800 17107 + 7920 17362 + 8037 17723 + 8159 18072 + 8280 19804 + 8399 18966 + 8519 19510 + 8640 19958 + 8760 20364 + 8878 20674 + 9000 21682 + 9120 21665 + 9237 21945 + 9359 22394 + 9480 23105 + 9598 23334 + 9718 25301 + 9840 26053 + 9960 26565 + 10079 26812 + 10200 27300 diff --git a/logs/sub.log b/logs/sub.log index 9f84fa2..87c0160 100644 --- a/logs/sub.log +++ b/logs/sub.log @@ -1,16 +1,16 @@ -480 94 -960 116 -1440 140 -1920 164 -2400 205 -2880 229 -3360 253 -3840 277 -4320 299 -4800 321 -5280 345 -5760 371 -6240 395 -6720 419 -7200 441 -7680 465 + 480 36 + 960 51 + 1440 64 + 1920 78 + 2400 90 + 2880 105 + 3360 118 + 3840 133 + 4320 146 + 4800 161 + 5280 182 + 5760 201 + 6240 201 + 6720 214 + 7200 228 + 7680 243 From f51249b6aab8c2d4397c5f56ba57d72c1ce64601 Mon Sep 17 00:00:00 2001 From: Steffen Jaeckel Date: Fri, 2 Feb 2018 12:07:21 +0100 Subject: [PATCH 5/8] clean-up file headers --- bn_error.c | 2 -- bn_fast_mp_invmod.c | 2 -- bn_fast_mp_montgomery_reduce.c | 2 -- bn_fast_s_mp_mul_digs.c | 2 -- bn_fast_s_mp_mul_high_digs.c | 2 -- bn_fast_s_mp_sqr.c | 2 -- bn_mp_2expt.c | 2 -- bn_mp_abs.c | 2 -- bn_mp_add.c | 2 -- bn_mp_add_d.c | 2 -- bn_mp_addmod.c | 2 -- bn_mp_and.c | 2 -- bn_mp_clamp.c | 2 -- bn_mp_clear.c | 2 -- bn_mp_clear_multi.c | 2 -- bn_mp_cmp.c | 2 -- bn_mp_cmp_d.c | 2 -- bn_mp_cmp_mag.c | 2 -- bn_mp_cnt_lsb.c | 2 -- bn_mp_copy.c | 2 -- bn_mp_count_bits.c | 2 -- bn_mp_div.c | 2 -- bn_mp_div_2.c | 2 -- bn_mp_div_2d.c | 2 -- bn_mp_div_3.c | 2 -- bn_mp_div_d.c | 2 -- bn_mp_dr_is_modulus.c | 2 -- bn_mp_dr_reduce.c | 2 -- bn_mp_dr_setup.c | 2 -- bn_mp_exch.c | 2 -- bn_mp_export.c | 2 -- bn_mp_expt_d.c | 2 -- bn_mp_expt_d_ex.c | 2 -- bn_mp_exptmod.c | 2 -- bn_mp_exptmod_fast.c | 2 -- bn_mp_exteuclid.c | 2 -- bn_mp_fread.c | 2 -- bn_mp_fwrite.c | 2 -- bn_mp_gcd.c | 2 -- bn_mp_get_int.c | 2 -- bn_mp_get_long.c | 2 -- bn_mp_get_long_long.c | 2 -- bn_mp_grow.c | 2 -- bn_mp_import.c | 2 -- bn_mp_init.c | 2 -- bn_mp_init_copy.c | 2 -- bn_mp_init_multi.c | 2 -- bn_mp_init_set.c | 2 -- bn_mp_init_set_int.c | 2 -- bn_mp_init_size.c | 2 -- bn_mp_invmod.c | 2 -- bn_mp_invmod_slow.c | 2 -- bn_mp_is_square.c | 2 -- bn_mp_jacobi.c | 2 -- bn_mp_karatsuba_mul.c | 2 -- bn_mp_karatsuba_sqr.c | 2 -- bn_mp_lcm.c | 2 -- bn_mp_lshd.c | 2 -- bn_mp_mod.c | 2 -- bn_mp_mod_2d.c | 2 -- bn_mp_mod_d.c | 2 -- bn_mp_montgomery_calc_normalization.c | 2 -- bn_mp_montgomery_reduce.c | 2 -- bn_mp_montgomery_setup.c | 2 -- bn_mp_mul.c | 2 -- bn_mp_mul_2.c | 2 -- bn_mp_mul_2d.c | 2 -- bn_mp_mul_d.c | 2 -- bn_mp_mulmod.c | 2 -- bn_mp_n_root.c | 2 -- bn_mp_n_root_ex.c | 2 -- bn_mp_neg.c | 2 -- bn_mp_or.c | 2 -- bn_mp_prime_fermat.c | 2 -- bn_mp_prime_is_divisible.c | 2 -- bn_mp_prime_is_prime.c | 2 -- bn_mp_prime_miller_rabin.c | 2 -- bn_mp_prime_next_prime.c | 2 -- bn_mp_prime_rabin_miller_trials.c | 2 -- bn_mp_prime_random_ex.c | 2 -- bn_mp_radix_size.c | 2 -- bn_mp_radix_smap.c | 2 -- bn_mp_rand.c | 2 -- bn_mp_read_radix.c | 2 -- bn_mp_read_signed_bin.c | 2 -- bn_mp_read_unsigned_bin.c | 2 -- bn_mp_reduce.c | 2 -- bn_mp_reduce_2k.c | 2 -- bn_mp_reduce_2k_l.c | 2 -- bn_mp_reduce_2k_setup.c | 2 -- bn_mp_reduce_2k_setup_l.c | 2 -- bn_mp_reduce_is_2k.c | 2 -- bn_mp_reduce_is_2k_l.c | 2 -- bn_mp_reduce_setup.c | 2 -- bn_mp_rshd.c | 2 -- bn_mp_set.c | 2 -- bn_mp_set_int.c | 2 -- bn_mp_set_long.c | 2 -- bn_mp_set_long_long.c | 2 -- bn_mp_shrink.c | 2 -- bn_mp_signed_bin_size.c | 2 -- bn_mp_sqr.c | 2 -- bn_mp_sqrmod.c | 2 -- bn_mp_sqrt.c | 2 -- bn_mp_sub.c | 2 -- bn_mp_sub_d.c | 2 -- bn_mp_submod.c | 2 -- bn_mp_to_signed_bin.c | 2 -- bn_mp_to_signed_bin_n.c | 2 -- bn_mp_to_unsigned_bin.c | 2 -- bn_mp_to_unsigned_bin_n.c | 2 -- bn_mp_toom_mul.c | 2 -- bn_mp_toom_sqr.c | 2 -- bn_mp_toradix.c | 2 -- bn_mp_toradix_n.c | 2 -- bn_mp_unsigned_bin_size.c | 2 -- bn_mp_xor.c | 2 -- bn_mp_zero.c | 2 -- bn_prime_tab.c | 2 -- bn_reverse.c | 2 -- bn_s_mp_add.c | 2 -- bn_s_mp_exptmod.c | 2 -- bn_s_mp_mul_digs.c | 2 -- bn_s_mp_mul_high_digs.c | 2 -- bn_s_mp_sqr.c | 2 -- bn_s_mp_sub.c | 2 -- bncore.c | 2 -- doc/bn.tex | 5 ++++- tommath.h | 2 -- tommath_private.h | 2 -- 130 files changed, 4 insertions(+), 259 deletions(-) diff --git a/bn_error.c b/bn_error.c index 7e816bf..24ce476 100644 --- a/bn_error.c +++ b/bn_error.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ static const struct { diff --git a/bn_fast_mp_invmod.c b/bn_fast_mp_invmod.c index 6be44f8..b44684a 100644 --- a/bn_fast_mp_invmod.c +++ b/bn_fast_mp_invmod.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* computes the modular inverse via binary extended euclidean algorithm, diff --git a/bn_fast_mp_montgomery_reduce.c b/bn_fast_mp_montgomery_reduce.c index 8f91196..2f94161 100644 --- a/bn_fast_mp_montgomery_reduce.c +++ b/bn_fast_mp_montgomery_reduce.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* computes xR**-1 == x (mod N) via Montgomery Reduction diff --git a/bn_fast_s_mp_mul_digs.c b/bn_fast_s_mp_mul_digs.c index e542c2e..99a8aa1 100644 --- a/bn_fast_s_mp_mul_digs.c +++ b/bn_fast_s_mp_mul_digs.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* Fast (comba) multiplier diff --git a/bn_fast_s_mp_mul_high_digs.c b/bn_fast_s_mp_mul_high_digs.c index 6ea8a6c..cb0acb9 100644 --- a/bn_fast_s_mp_mul_high_digs.c +++ b/bn_fast_s_mp_mul_high_digs.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* this is a modified version of fast_s_mul_digs that only produces diff --git a/bn_fast_s_mp_sqr.c b/bn_fast_s_mp_sqr.c index 1050121..f7081de 100644 --- a/bn_fast_s_mp_sqr.c +++ b/bn_fast_s_mp_sqr.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* the jist of squaring... diff --git a/bn_mp_2expt.c b/bn_mp_2expt.c index 5333d48..6f6ee97 100644 --- a/bn_mp_2expt.c +++ b/bn_mp_2expt.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* computes a = 2**b diff --git a/bn_mp_abs.c b/bn_mp_abs.c index 9b6bcec..89eedb8 100644 --- a/bn_mp_abs.c +++ b/bn_mp_abs.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* b = |a| diff --git a/bn_mp_add.c b/bn_mp_add.c index d31d5a0..974cd34 100644 --- a/bn_mp_add.c +++ b/bn_mp_add.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* high level addition (handles signs) */ diff --git a/bn_mp_add_d.c b/bn_mp_add_d.c index e5ede1f..1132f0e 100644 --- a/bn_mp_add_d.c +++ b/bn_mp_add_d.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* single digit addition */ diff --git a/bn_mp_addmod.c b/bn_mp_addmod.c index 0d612c3..63d30ae 100644 --- a/bn_mp_addmod.c +++ b/bn_mp_addmod.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* d = a + b (mod c) */ diff --git a/bn_mp_and.c b/bn_mp_and.c index 09ff772..8776e2f 100644 --- a/bn_mp_and.c +++ b/bn_mp_and.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* AND two ints together */ diff --git a/bn_mp_clamp.c b/bn_mp_clamp.c index 79a5b20..36081be 100644 --- a/bn_mp_clamp.c +++ b/bn_mp_clamp.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* trim unused digits diff --git a/bn_mp_clear.c b/bn_mp_clear.c index fcf4d61..348872e 100644 --- a/bn_mp_clear.c +++ b/bn_mp_clear.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* clear one (frees) */ diff --git a/bn_mp_clear_multi.c b/bn_mp_clear_multi.c index ac3949a..aa9927f 100644 --- a/bn_mp_clear_multi.c +++ b/bn_mp_clear_multi.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ #include diff --git a/bn_mp_cmp.c b/bn_mp_cmp.c index a33d483..a19ae86 100644 --- a/bn_mp_cmp.c +++ b/bn_mp_cmp.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* compare two ints (signed)*/ diff --git a/bn_mp_cmp_d.c b/bn_mp_cmp_d.c index 576a073..3bf0da3 100644 --- a/bn_mp_cmp_d.c +++ b/bn_mp_cmp_d.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* compare a digit */ diff --git a/bn_mp_cmp_mag.c b/bn_mp_cmp_mag.c index e2c723f..0aadac8 100644 --- a/bn_mp_cmp_mag.c +++ b/bn_mp_cmp_mag.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* compare maginitude of two ints (unsigned) */ diff --git a/bn_mp_cnt_lsb.c b/bn_mp_cnt_lsb.c index 219c369..d897a2f 100644 --- a/bn_mp_cnt_lsb.c +++ b/bn_mp_cnt_lsb.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ static const int lnz[16] = { diff --git a/bn_mp_copy.c b/bn_mp_copy.c index 17816e8..93474d5 100644 --- a/bn_mp_copy.c +++ b/bn_mp_copy.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* copy, b = a */ diff --git a/bn_mp_count_bits.c b/bn_mp_count_bits.c index 4530c92..8d1cafb 100644 --- a/bn_mp_count_bits.c +++ b/bn_mp_count_bits.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* returns the number of bits in an int */ diff --git a/bn_mp_div.c b/bn_mp_div.c index f64f485..3f75114 100644 --- a/bn_mp_div.c +++ b/bn_mp_div.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ #ifdef BN_MP_DIV_SMALL diff --git a/bn_mp_div_2.c b/bn_mp_div_2.c index 2907a1b..683efec 100644 --- a/bn_mp_div_2.c +++ b/bn_mp_div_2.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* b = a/2 */ diff --git a/bn_mp_div_2d.c b/bn_mp_div_2d.c index aeaa8f2..2b0269e 100644 --- a/bn_mp_div_2d.c +++ b/bn_mp_div_2d.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* shift right by a certain bit count (store quotient in c, optional remainder in d) */ diff --git a/bn_mp_div_3.c b/bn_mp_div_3.c index 9d41793..640288e 100644 --- a/bn_mp_div_3.c +++ b/bn_mp_div_3.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* divide by three (based on routine from MPI and the GMP manual) */ diff --git a/bn_mp_div_d.c b/bn_mp_div_d.c index 2124bcc..a0b85a5 100644 --- a/bn_mp_div_d.c +++ b/bn_mp_div_d.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ static int s_is_power_of_two(mp_digit b, int *p) diff --git a/bn_mp_dr_is_modulus.c b/bn_mp_dr_is_modulus.c index bf4ed8b..2efda5e 100644 --- a/bn_mp_dr_is_modulus.c +++ b/bn_mp_dr_is_modulus.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* determines if a number is a valid DR modulus */ diff --git a/bn_mp_dr_reduce.c b/bn_mp_dr_reduce.c index d677b03..096f23d 100644 --- a/bn_mp_dr_reduce.c +++ b/bn_mp_dr_reduce.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* reduce "x" in place modulo "n" using the Diminished Radix algorithm. diff --git a/bn_mp_dr_setup.c b/bn_mp_dr_setup.c index 32aa582..ecc6ee6 100644 --- a/bn_mp_dr_setup.c +++ b/bn_mp_dr_setup.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* determines the setup value */ diff --git a/bn_mp_exch.c b/bn_mp_exch.c index 2bc635f..141c3ae 100644 --- a/bn_mp_exch.c +++ b/bn_mp_exch.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* swap the elements of two integers, for cases where you can't simply swap the diff --git a/bn_mp_export.c b/bn_mp_export.c index 92a85d5..13818f4 100644 --- a/bn_mp_export.c +++ b/bn_mp_export.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* based on gmp's mpz_export. diff --git a/bn_mp_expt_d.c b/bn_mp_expt_d.c index f5ce3c1..7831aa5 100644 --- a/bn_mp_expt_d.c +++ b/bn_mp_expt_d.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* wrapper function for mp_expt_d_ex() */ diff --git a/bn_mp_expt_d_ex.c b/bn_mp_expt_d_ex.c index d363d59..7a6f161 100644 --- a/bn_mp_expt_d_ex.c +++ b/bn_mp_expt_d_ex.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* calculate c = a**b using a square-multiply algorithm */ diff --git a/bn_mp_exptmod.c b/bn_mp_exptmod.c index 934fd25..36fb20d 100644 --- a/bn_mp_exptmod.c +++ b/bn_mp_exptmod.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ diff --git a/bn_mp_exptmod_fast.c b/bn_mp_exptmod_fast.c index 52d4a55..091da31 100644 --- a/bn_mp_exptmod_fast.c +++ b/bn_mp_exptmod_fast.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* computes Y == G**X mod P, HAC pp.616, Algorithm 14.85 diff --git a/bn_mp_exteuclid.c b/bn_mp_exteuclid.c index 29bad83..84e5202 100644 --- a/bn_mp_exteuclid.c +++ b/bn_mp_exteuclid.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* Extended euclidean algorithm of (a, b) produces diff --git a/bn_mp_fread.c b/bn_mp_fread.c index 6922183..95011fc 100644 --- a/bn_mp_fread.c +++ b/bn_mp_fread.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ #ifndef LTM_NO_FILE diff --git a/bn_mp_fwrite.c b/bn_mp_fwrite.c index 8541bc7..d7153e5 100644 --- a/bn_mp_fwrite.c +++ b/bn_mp_fwrite.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ #ifndef LTM_NO_FILE diff --git a/bn_mp_gcd.c b/bn_mp_gcd.c index f5aa78b..5815016 100644 --- a/bn_mp_gcd.c +++ b/bn_mp_gcd.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* Greatest Common Divisor using the binary method */ diff --git a/bn_mp_get_int.c b/bn_mp_get_int.c index d99a0a0..90f1bac 100644 --- a/bn_mp_get_int.c +++ b/bn_mp_get_int.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* get the lower 32-bits of an mp_int */ diff --git a/bn_mp_get_long.c b/bn_mp_get_long.c index 9ec2664..de9933f 100644 --- a/bn_mp_get_long.c +++ b/bn_mp_get_long.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* get the lower unsigned long of an mp_int, platform dependent */ diff --git a/bn_mp_get_long_long.c b/bn_mp_get_long_long.c index ffde373..0a3b5c0 100644 --- a/bn_mp_get_long_long.c +++ b/bn_mp_get_long_long.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* get the lower unsigned long long of an mp_int, platform dependent */ diff --git a/bn_mp_grow.c b/bn_mp_grow.c index 60f8f32..e62c192 100644 --- a/bn_mp_grow.c +++ b/bn_mp_grow.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* grow as required */ diff --git a/bn_mp_import.c b/bn_mp_import.c index 9bbd215..8f8b839 100644 --- a/bn_mp_import.c +++ b/bn_mp_import.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* based on gmp's mpz_import. diff --git a/bn_mp_init.c b/bn_mp_init.c index ad630e3..37d50a1 100644 --- a/bn_mp_init.c +++ b/bn_mp_init.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* init a new mp_int */ diff --git a/bn_mp_init_copy.c b/bn_mp_init_copy.c index 5681015..7f4c043 100644 --- a/bn_mp_init_copy.c +++ b/bn_mp_init_copy.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* creates "a" then copies b into it */ diff --git a/bn_mp_init_multi.c b/bn_mp_init_multi.c index 9ed777c..5dd0fb4 100644 --- a/bn_mp_init_multi.c +++ b/bn_mp_init_multi.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ #include diff --git a/bn_mp_init_set.c b/bn_mp_init_set.c index e9c1b12..c91901b 100644 --- a/bn_mp_init_set.c +++ b/bn_mp_init_set.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* initialize and set a digit */ diff --git a/bn_mp_init_set_int.c b/bn_mp_init_set_int.c index 8e7441a..afeed8a 100644 --- a/bn_mp_init_set_int.c +++ b/bn_mp_init_set_int.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* initialize and set a digit */ diff --git a/bn_mp_init_size.c b/bn_mp_init_size.c index 35713ac..d3a32ea 100644 --- a/bn_mp_init_size.c +++ b/bn_mp_init_size.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* init an mp_init for a given size */ diff --git a/bn_mp_invmod.c b/bn_mp_invmod.c index 96717ea..879511c 100644 --- a/bn_mp_invmod.c +++ b/bn_mp_invmod.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* hac 14.61, pp608 */ diff --git a/bn_mp_invmod_slow.c b/bn_mp_invmod_slow.c index 360f161..bc12b3b 100644 --- a/bn_mp_invmod_slow.c +++ b/bn_mp_invmod_slow.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* hac 14.61, pp608 */ diff --git a/bn_mp_is_square.c b/bn_mp_is_square.c index 329d727..18d74b8 100644 --- a/bn_mp_is_square.c +++ b/bn_mp_is_square.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* Check if remainders are possible squares - fast exclude non-squares */ diff --git a/bn_mp_jacobi.c b/bn_mp_jacobi.c index ef2e72f..d9739b0 100644 --- a/bn_mp_jacobi.c +++ b/bn_mp_jacobi.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* computes the jacobi c = (a | n) (or Legendre if n is prime) diff --git a/bn_mp_karatsuba_mul.c b/bn_mp_karatsuba_mul.c index 1a84211..a69f9d1 100644 --- a/bn_mp_karatsuba_mul.c +++ b/bn_mp_karatsuba_mul.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* c = |a| * |b| using Karatsuba Multiplication using diff --git a/bn_mp_karatsuba_sqr.c b/bn_mp_karatsuba_sqr.c index c566b06..4c4276b 100644 --- a/bn_mp_karatsuba_sqr.c +++ b/bn_mp_karatsuba_sqr.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* Karatsuba squaring, computes b = a*a using three diff --git a/bn_mp_lcm.c b/bn_mp_lcm.c index 24b621c..82e1790 100644 --- a/bn_mp_lcm.c +++ b/bn_mp_lcm.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* computes least common multiple as |a*b|/(a, b) */ diff --git a/bn_mp_lshd.c b/bn_mp_lshd.c index b49b545..e2edce0 100644 --- a/bn_mp_lshd.c +++ b/bn_mp_lshd.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* shift left a certain amount of digits */ diff --git a/bn_mp_mod.c b/bn_mp_mod.c index 64e73ea..4da21c4 100644 --- a/bn_mp_mod.c +++ b/bn_mp_mod.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* c = a mod b, 0 <= c < b if b > 0, b < c <= 0 if b < 0 */ diff --git a/bn_mp_mod_2d.c b/bn_mp_mod_2d.c index 7a74746..e8a15a0 100644 --- a/bn_mp_mod_2d.c +++ b/bn_mp_mod_2d.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* calc a value mod 2**b */ diff --git a/bn_mp_mod_d.c b/bn_mp_mod_d.c index 9a24e78..adb4e2a 100644 --- a/bn_mp_mod_d.c +++ b/bn_mp_mod_d.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ int mp_mod_d(const mp_int *a, mp_digit b, mp_digit *c) diff --git a/bn_mp_montgomery_calc_normalization.c b/bn_mp_montgomery_calc_normalization.c index 360e3e5..048dbc7 100644 --- a/bn_mp_montgomery_calc_normalization.c +++ b/bn_mp_montgomery_calc_normalization.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* diff --git a/bn_mp_montgomery_reduce.c b/bn_mp_montgomery_reduce.c index e3a0eaa..ecaa046 100644 --- a/bn_mp_montgomery_reduce.c +++ b/bn_mp_montgomery_reduce.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* computes xR**-1 == x (mod N) via Montgomery Reduction */ diff --git a/bn_mp_montgomery_setup.c b/bn_mp_montgomery_setup.c index 75da42b..ddbee95 100644 --- a/bn_mp_montgomery_setup.c +++ b/bn_mp_montgomery_setup.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* setups the montgomery reduction stuff */ diff --git a/bn_mp_mul.c b/bn_mp_mul.c index babb12b..1db0e91 100644 --- a/bn_mp_mul.c +++ b/bn_mp_mul.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* high level multiplication (handles sign) */ diff --git a/bn_mp_mul_2.c b/bn_mp_mul_2.c index 7611536..55c1d5f 100644 --- a/bn_mp_mul_2.c +++ b/bn_mp_mul_2.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* b = a*2 */ diff --git a/bn_mp_mul_2d.c b/bn_mp_mul_2d.c index 96aef85..88bec99 100644 --- a/bn_mp_mul_2d.c +++ b/bn_mp_mul_2d.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* shift left by a certain bit count */ diff --git a/bn_mp_mul_d.c b/bn_mp_mul_d.c index 13f94a2..4081c9b 100644 --- a/bn_mp_mul_d.c +++ b/bn_mp_mul_d.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* multiply by a digit */ diff --git a/bn_mp_mulmod.c b/bn_mp_mulmod.c index aeee4ee..14dc55f 100644 --- a/bn_mp_mulmod.c +++ b/bn_mp_mulmod.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* d = a * b (mod c) */ diff --git a/bn_mp_n_root.c b/bn_mp_n_root.c index a09804f..69569b6 100644 --- a/bn_mp_n_root.c +++ b/bn_mp_n_root.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* wrapper function for mp_n_root_ex() diff --git a/bn_mp_n_root_ex.c b/bn_mp_n_root_ex.c index 60c9929..e4ea8e5 100644 --- a/bn_mp_n_root_ex.c +++ b/bn_mp_n_root_ex.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* find the n'th root of an integer diff --git a/bn_mp_neg.c b/bn_mp_neg.c index 75f8bbd..bd28df8 100644 --- a/bn_mp_neg.c +++ b/bn_mp_neg.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* b = -a */ diff --git a/bn_mp_or.c b/bn_mp_or.c index f411509..1769117 100644 --- a/bn_mp_or.c +++ b/bn_mp_or.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* OR two ints together */ diff --git a/bn_mp_prime_fermat.c b/bn_mp_prime_fermat.c index e71e0ae..59b0082 100644 --- a/bn_mp_prime_fermat.c +++ b/bn_mp_prime_fermat.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* performs one Fermat test. diff --git a/bn_mp_prime_is_divisible.c b/bn_mp_prime_is_divisible.c index c49fdd2..b69a394 100644 --- a/bn_mp_prime_is_divisible.c +++ b/bn_mp_prime_is_divisible.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* determines if an integers is divisible by one diff --git a/bn_mp_prime_is_prime.c b/bn_mp_prime_is_prime.c index e97712d..aacd7a7 100644 --- a/bn_mp_prime_is_prime.c +++ b/bn_mp_prime_is_prime.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* performs a variable number of rounds of Miller-Rabin diff --git a/bn_mp_prime_miller_rabin.c b/bn_mp_prime_miller_rabin.c index 34c4d1c..77d2ee0 100644 --- a/bn_mp_prime_miller_rabin.c +++ b/bn_mp_prime_miller_rabin.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* Miller-Rabin test of "a" to the base of "b" as described in diff --git a/bn_mp_prime_next_prime.c b/bn_mp_prime_next_prime.c index b106a74..f83e48d 100644 --- a/bn_mp_prime_next_prime.c +++ b/bn_mp_prime_next_prime.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* finds the next prime after the number "a" using "t" trials diff --git a/bn_mp_prime_rabin_miller_trials.c b/bn_mp_prime_rabin_miller_trials.c index cde309a..45fbb97 100644 --- a/bn_mp_prime_rabin_miller_trials.c +++ b/bn_mp_prime_rabin_miller_trials.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ diff --git a/bn_mp_prime_random_ex.c b/bn_mp_prime_random_ex.c index 1ae2934..ec926da 100644 --- a/bn_mp_prime_random_ex.c +++ b/bn_mp_prime_random_ex.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* makes a truly random prime of a given size (bits), diff --git a/bn_mp_radix_size.c b/bn_mp_radix_size.c index 29355cb..5f8af60 100644 --- a/bn_mp_radix_size.c +++ b/bn_mp_radix_size.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* returns size of ASCII reprensentation */ diff --git a/bn_mp_radix_smap.c b/bn_mp_radix_smap.c index 262775c..e1c7fbc 100644 --- a/bn_mp_radix_smap.c +++ b/bn_mp_radix_smap.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* chars used in radix conversions */ diff --git a/bn_mp_rand.c b/bn_mp_rand.c index 2ed665e..5e0c1b3 100644 --- a/bn_mp_rand.c +++ b/bn_mp_rand.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ #if defined(MP_8BIT) || defined(MP_16BIT) diff --git a/bn_mp_read_radix.c b/bn_mp_read_radix.c index 55c5ee1..77dfe08 100644 --- a/bn_mp_read_radix.c +++ b/bn_mp_read_radix.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* read a string [ASCII] in a given radix */ diff --git a/bn_mp_read_signed_bin.c b/bn_mp_read_signed_bin.c index 17bc6ce..1b3f96d 100644 --- a/bn_mp_read_signed_bin.c +++ b/bn_mp_read_signed_bin.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* read signed bin, big endian, first byte is 0==positive or 1==negative */ diff --git a/bn_mp_read_unsigned_bin.c b/bn_mp_read_unsigned_bin.c index 6398c43..b42a356 100644 --- a/bn_mp_read_unsigned_bin.c +++ b/bn_mp_read_unsigned_bin.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* reads a unsigned char array, assumes the msb is stored first [big endian] */ diff --git a/bn_mp_reduce.c b/bn_mp_reduce.c index 5b1d405..ff7bfc5 100644 --- a/bn_mp_reduce.c +++ b/bn_mp_reduce.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* reduces x mod m, assumes 0 < x < m**2, mu is diff --git a/bn_mp_reduce_2k.c b/bn_mp_reduce_2k.c index e1e2bc8..e26ac9f 100644 --- a/bn_mp_reduce_2k.c +++ b/bn_mp_reduce_2k.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* reduces a modulo n where n is of the form 2**p - d */ diff --git a/bn_mp_reduce_2k_l.c b/bn_mp_reduce_2k_l.c index 23381bf..59d095e 100644 --- a/bn_mp_reduce_2k_l.c +++ b/bn_mp_reduce_2k_l.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* reduces a modulo n where n is of the form 2**p - d diff --git a/bn_mp_reduce_2k_setup.c b/bn_mp_reduce_2k_setup.c index e6ae839..8e158d4 100644 --- a/bn_mp_reduce_2k_setup.c +++ b/bn_mp_reduce_2k_setup.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* determines the setup value */ diff --git a/bn_mp_reduce_2k_setup_l.c b/bn_mp_reduce_2k_setup_l.c index af81b5b..a2debdd 100644 --- a/bn_mp_reduce_2k_setup_l.c +++ b/bn_mp_reduce_2k_setup_l.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* determines the setup value */ diff --git a/bn_mp_reduce_is_2k.c b/bn_mp_reduce_is_2k.c index f59d535..3b42138 100644 --- a/bn_mp_reduce_is_2k.c +++ b/bn_mp_reduce_is_2k.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* determines if mp_reduce_2k can be used */ diff --git a/bn_mp_reduce_is_2k_l.c b/bn_mp_reduce_is_2k_l.c index 22c7582..77fe1f9 100644 --- a/bn_mp_reduce_is_2k_l.c +++ b/bn_mp_reduce_is_2k_l.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* determines if reduce_2k_l can be used */ diff --git a/bn_mp_reduce_setup.c b/bn_mp_reduce_setup.c index 70e193a..d02ad6d 100644 --- a/bn_mp_reduce_setup.c +++ b/bn_mp_reduce_setup.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* pre-calculate the value required for Barrett reduction diff --git a/bn_mp_rshd.c b/bn_mp_rshd.c index fd06735..fef76d2 100644 --- a/bn_mp_rshd.c +++ b/bn_mp_rshd.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* shift right a certain amount of digits */ diff --git a/bn_mp_set.c b/bn_mp_set.c index 952d080..d065b3b 100644 --- a/bn_mp_set.c +++ b/bn_mp_set.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* set to a digit */ diff --git a/bn_mp_set_int.c b/bn_mp_set_int.c index 006f263..25ed219 100644 --- a/bn_mp_set_int.c +++ b/bn_mp_set_int.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* set a 32-bit const */ diff --git a/bn_mp_set_long.c b/bn_mp_set_long.c index 8cbb811..ea529d4 100644 --- a/bn_mp_set_long.c +++ b/bn_mp_set_long.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* set a platform dependent unsigned long int */ diff --git a/bn_mp_set_long_long.c b/bn_mp_set_long_long.c index 3566b45..9c7b0e0 100644 --- a/bn_mp_set_long_long.c +++ b/bn_mp_set_long_long.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* set a platform dependent unsigned long long int */ diff --git a/bn_mp_shrink.c b/bn_mp_shrink.c index 3e4dde0..b5898e8 100644 --- a/bn_mp_shrink.c +++ b/bn_mp_shrink.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* shrink a bignum */ diff --git a/bn_mp_signed_bin_size.c b/bn_mp_signed_bin_size.c index 1fdfd85..137d585 100644 --- a/bn_mp_signed_bin_size.c +++ b/bn_mp_signed_bin_size.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* get the size for an signed equivalent */ diff --git a/bn_mp_sqr.c b/bn_mp_sqr.c index a98f16c..668e4a1 100644 --- a/bn_mp_sqr.c +++ b/bn_mp_sqr.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* computes b = a*a */ diff --git a/bn_mp_sqrmod.c b/bn_mp_sqrmod.c index c3c7ec9..be4fcc2 100644 --- a/bn_mp_sqrmod.c +++ b/bn_mp_sqrmod.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* c = a * a (mod b) */ diff --git a/bn_mp_sqrt.c b/bn_mp_sqrt.c index d70c523..f25cd05 100644 --- a/bn_mp_sqrt.c +++ b/bn_mp_sqrt.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* this function is less generic than mp_n_root, simpler and faster */ diff --git a/bn_mp_sub.c b/bn_mp_sub.c index 19cb65e..c04e3a4 100644 --- a/bn_mp_sub.c +++ b/bn_mp_sub.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* high level subtraction (handles signs) */ diff --git a/bn_mp_sub_d.c b/bn_mp_sub_d.c index e5fbfff..92a1b0c 100644 --- a/bn_mp_sub_d.c +++ b/bn_mp_sub_d.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* single digit subtraction */ diff --git a/bn_mp_submod.c b/bn_mp_submod.c index c4db397..c27ad50 100644 --- a/bn_mp_submod.c +++ b/bn_mp_submod.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* d = a - b (mod c) */ diff --git a/bn_mp_to_signed_bin.c b/bn_mp_to_signed_bin.c index 4d4be88..78b3e19 100644 --- a/bn_mp_to_signed_bin.c +++ b/bn_mp_to_signed_bin.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* store in signed [big endian] format */ diff --git a/bn_mp_to_signed_bin_n.c b/bn_mp_to_signed_bin_n.c index f1d7c8b..0fa5c7a 100644 --- a/bn_mp_to_signed_bin_n.c +++ b/bn_mp_to_signed_bin_n.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* store in signed [big endian] format */ diff --git a/bn_mp_to_unsigned_bin.c b/bn_mp_to_unsigned_bin.c index a53f711..fe9ba91 100644 --- a/bn_mp_to_unsigned_bin.c +++ b/bn_mp_to_unsigned_bin.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* store in unsigned [big endian] format */ diff --git a/bn_mp_to_unsigned_bin_n.c b/bn_mp_to_unsigned_bin_n.c index e7d303c..ea9f874 100644 --- a/bn_mp_to_unsigned_bin_n.c +++ b/bn_mp_to_unsigned_bin_n.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* store in unsigned [big endian] format */ diff --git a/bn_mp_toom_mul.c b/bn_mp_toom_mul.c index 00b6bfb..474ab41 100644 --- a/bn_mp_toom_mul.c +++ b/bn_mp_toom_mul.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* multiplication using the Toom-Cook 3-way algorithm diff --git a/bn_mp_toom_sqr.c b/bn_mp_toom_sqr.c index 183de20..4dc929a 100644 --- a/bn_mp_toom_sqr.c +++ b/bn_mp_toom_sqr.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* squaring using Toom-Cook 3-way algorithm */ diff --git a/bn_mp_toradix.c b/bn_mp_toradix.c index 7dd6e4f..d4c5a0a 100644 --- a/bn_mp_toradix.c +++ b/bn_mp_toradix.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* stores a bignum as a ASCII string in a given radix (2..64) */ diff --git a/bn_mp_toradix_n.c b/bn_mp_toradix_n.c index ef885fc..491fdca 100644 --- a/bn_mp_toradix_n.c +++ b/bn_mp_toradix_n.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* stores a bignum as a ASCII string in a given radix (2..64) diff --git a/bn_mp_unsigned_bin_size.c b/bn_mp_unsigned_bin_size.c index 2b9ce8a..313544b 100644 --- a/bn_mp_unsigned_bin_size.c +++ b/bn_mp_unsigned_bin_size.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* get the size for an unsigned equivalent */ diff --git a/bn_mp_xor.c b/bn_mp_xor.c index 9ebc53a..734f533 100644 --- a/bn_mp_xor.c +++ b/bn_mp_xor.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* XOR two ints together */ diff --git a/bn_mp_zero.c b/bn_mp_zero.c index 08aac2a..9e43f11 100644 --- a/bn_mp_zero.c +++ b/bn_mp_zero.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* set to zero */ diff --git a/bn_prime_tab.c b/bn_prime_tab.c index bcd23ed..97d44bc 100644 --- a/bn_prime_tab.c +++ b/bn_prime_tab.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ const mp_digit ltm_prime_tab[] = { diff --git a/bn_reverse.c b/bn_reverse.c index 71e3d03..729d32b 100644 --- a/bn_reverse.c +++ b/bn_reverse.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* reverse an array, used for radix code */ diff --git a/bn_s_mp_add.c b/bn_s_mp_add.c index 3f908ef..9810cb0 100644 --- a/bn_s_mp_add.c +++ b/bn_s_mp_add.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* low level addition, based on HAC pp.594, Algorithm 14.7 */ diff --git a/bn_s_mp_exptmod.c b/bn_s_mp_exptmod.c index a954757..ff67369 100644 --- a/bn_s_mp_exptmod.c +++ b/bn_s_mp_exptmod.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ #ifdef MP_LOW_MEM diff --git a/bn_s_mp_mul_digs.c b/bn_s_mp_mul_digs.c index 214ae31..f1bdbe3 100644 --- a/bn_s_mp_mul_digs.c +++ b/bn_s_mp_mul_digs.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* multiplies |a| * |b| and only computes upto digs digits of result diff --git a/bn_s_mp_mul_high_digs.c b/bn_s_mp_mul_high_digs.c index 3c0418a..485f962 100644 --- a/bn_s_mp_mul_high_digs.c +++ b/bn_s_mp_mul_high_digs.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* multiplies |a| * |b| and does not compute the lower digs digits diff --git a/bn_s_mp_sqr.c b/bn_s_mp_sqr.c index 71bbccd..d670907 100644 --- a/bn_s_mp_sqr.c +++ b/bn_s_mp_sqr.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* low level squaring, b = a*a, HAC pp.596-597, Algorithm 14.16 */ diff --git a/bn_s_mp_sub.c b/bn_s_mp_sub.c index c8472af..2cd2807 100644 --- a/bn_s_mp_sub.c +++ b/bn_s_mp_sub.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* low level subtraction (assumes |a| > |b|), HAC pp.595 Algorithm 14.9 */ diff --git a/bncore.c b/bncore.c index cfd19f0..3596313 100644 --- a/bncore.c +++ b/bncore.c @@ -11,8 +11,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://libtom.org */ /* Known optimal configurations diff --git a/doc/bn.tex b/doc/bn.tex index 4f1724d..b3618e3 100644 --- a/doc/bn.tex +++ b/doc/bn.tex @@ -50,7 +50,7 @@ \frontmatter \pagestyle{empty} \title{LibTomMath User Manual \\ v1.0.1} -\author{Tom St Denis \\ tstdenis82@gmail.com} +\author{LibTom Projects \\ www.libtom.net} \maketitle This text, the library and the accompanying textbook are all hereby placed in the public domain. This book has been formatted for B5 [176x250] paper using the \LaTeX{} {\em book} macro package. @@ -60,6 +60,9 @@ formatted for B5 [176x250] paper using the \LaTeX{} {\em book} macro package. \begin{flushright}Open Source. Open Academia. Open Minds. \mbox{ } +LibTom Projects + +\& originally Tom St Denis, diff --git a/tommath.h b/tommath.h index e229bc6..9a85b65 100644 --- a/tommath.h +++ b/tommath.h @@ -9,8 +9,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://math.libtomcrypt.com */ #ifndef BN_H_ #define BN_H_ diff --git a/tommath_private.h b/tommath_private.h index 678edc4..2c0557b 100644 --- a/tommath_private.h +++ b/tommath_private.h @@ -9,8 +9,6 @@ * * The library is free for all purposes without any express * guarantee it works. - * - * Tom St Denis, tstdenis82@gmail.com, http://math.libtomcrypt.com */ #ifndef TOMMATH_PRIV_H_ #define TOMMATH_PRIV_H_ From 1a00b42c472f5c9ebbd009f182ac36aa77f97e26 Mon Sep 17 00:00:00 2001 From: Steffen Jaeckel Date: Fri, 2 Feb 2018 12:08:58 +0100 Subject: [PATCH 6/8] add fixme-check to zipup make-target --- makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/makefile b/makefile index fe1c2cf..a6f7690 100644 --- a/makefile +++ b/makefile @@ -131,6 +131,8 @@ zipup: clean pre_gen new_file manual poster docs rm -rf libtommath-$(VERSION) ltm-$(VERSION).* @# files/dirs excluded from "git archive" are defined in .gitattributes git archive --format=tar --prefix=libtommath-$(VERSION)/ HEAD | tar x + @echo 'fixme check' + -@(find libtommath-$(VERSION)/ -type f | xargs grep 'FIXM[E]') && echo '############## BEWARE: the "fixme" marker was found !!! ##############' || true mkdir -p libtommath-$(VERSION)/doc cp doc/bn.pdf doc/tommath.pdf doc/poster.pdf libtommath-$(VERSION)/doc/ tar -c libtommath-$(VERSION)/ | xz -6e -c - > ltm-$(VERSION).tar.xz From ee241c95e6f2b3ca0dac246767b168dd87bbc82e Mon Sep 17 00:00:00 2001 From: Steffen Jaeckel Date: Fri, 2 Feb 2018 13:43:13 +0100 Subject: [PATCH 7/8] fix makefile.msvc This fixes #74 --- makefile.msvc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/makefile.msvc b/makefile.msvc index a47aadd..3ed7fe7 100644 --- a/makefile.msvc +++ b/makefile.msvc @@ -2,7 +2,7 @@ # #Tom St Denis -CFLAGS = /I. /Ox /DWIN32 /W3 /Fo$@ +LTM_CFLAGS = /Ox /nologo /I. /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_DEPRECATE /W3 $(CFLAGS) default: library @@ -34,7 +34,10 @@ bn_s_mp_sqr.obj bn_s_mp_sub.obj #END_INS -HEADERS=tommath.h tommath_class.h tommath_superclass.h +HEADERS=tommath.h tommath_class.h tommath_private.h tommath_superclass.h library: $(OBJECTS) lib /out:tommath.lib $(OBJECTS) + +.c.obj: + $(CC) $(LTM_CFLAGS) /c $< /Fo$@ From 0bc755139c057286b2c7bbc1d13d6016af94f5de Mon Sep 17 00:00:00 2001 From: Michael Shigorin Date: Mon, 26 Feb 2018 09:32:12 +0100 Subject: [PATCH 8/8] add e2k/lcc support --- tommath.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tommath.h b/tommath.h index 9a85b65..e26e1b9 100644 --- a/tommath.h +++ b/tommath.h @@ -25,7 +25,7 @@ extern "C" { #endif /* MS Visual C++ doesn't have a 128bit type for words, so fall back to 32bit MPI's (where words are 64bit) */ -#if defined(_MSC_VER) || defined(__LLP64__) +#if defined(_MSC_VER) || defined(__LLP64__) || defined(__e2k__) || defined(__LCC__) # define MP_32BIT #endif