File: NEWS

package info (click to toggle)
flint 2.6.3-3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 39,080 kB
  • sloc: ansic: 425,302; cpp: 11,266; sh: 700; makefile: 249; python: 63
file content (1239 lines) | stat: -rw-r--r-- 45,328 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
863
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
v 1.0 -- 2-Dec-07 : 
 
   * First version of FLINT, includes fmpz_poly, fmpz and mpQS

v 1.0.1 -- 7-Dec-07 : 
   
   * Fixed a bug in _fmpz_poly_maxbits1 on 32 bit machines, reported by Michael Abshoff and Carl Witty
   * Removed some instances of u_int64_t and replaced them with uint64_t, reported by Michael Abshoff
   * Replaced sys/types.h with stdint.h
   * Added FLINT macros to documentation
   * Corrected numerous typos in documentation   

v 1.0.2 -- 10-Dec-07

   * Rewrote tuning code for integer multiplication functions, making it more robust and fixing a bug
     which showed up on 32 bit machines (reported by Michael Abshoff and Jaap Spies). Factored the tuning
     code out into a number of macros.

v 1.0.3 -- 16-Dec-07

   * Fixed a bug in the polynomial memory managment code which caused a segfault
   * Fixed a bug in the pseudo division code which caused a block overrun
    
v 1.0.4 -- 04-Jan-08

   * Fixed a bug in the bernoulli_zmod example program and associated polynomial zmod code which caused memory corruption.
   * Fixed a bug in the fmpz-test code which manifested on 32 bit machines, reported by David Harvey.   
   * Fixed some bugs in the pari profiling code.     

v 1.0.5 -- 05-Jan-08

   * Fixed some inline issues which cause problems because of the C99 inline rules (reported by David Harvey). 
   * Fixed a makefile issue reported (and solved) by David Harvey when *not* linking against NTL.

v 1.0.6 -- 17-Jan-08

   * Fixed an issue with FLINT_BIT_COUNT on certain machines (probably due to arithmetic shift issues)

v 1.0.7 -- 22-Jan-08

   * Made F_mpn_mul binary compatible with the way mpn_mul *operates* in practice.

v 1.0.8 -- 15-Feb-08

   * Fixed a bug in fmpz_poly_right_shift (reported by Kiran Kedlaya)

v 1.0.9 -- 11-Mar-08

   * Fixed a memory allocation bug in fmpz_poly_power

v 1.0.10 -- 16-Jun-08:

   * integer gcd (this just wraps the GMP gcd code)
   * polynomial content
   * convert to and from FLINT and NTL integers and polynomials
   * get a coefficient of a polynomial efficiently as a read only mpz_t
   * print polynomials in a prettified format with a specified variable         

v 1.0.11 -- 9-Jul-08

   * Fixed a bug in z_ll_mod_precomp on ia64 (reported by Michael Abshoff and William Stein)

v 1.0.12 -- 11-Jul-08
   * Removed some Opteron tuning flags which cause illegal instruction errors on Pentium4
   * Fixed numerous memory leaks in fmpz_poly test code
   * Fixed memory leak in fmpz_poly_power_trunc_n
   * Fixed major memory leaks in fmpz_poly_xgcd_modular
   * Rewrote __fmpz_poly_mul_karatrunc_recursive and _fmpz_poly_mul_karatsuba_trunc to "prove code" and got rid of some dirty memory issues
   * Fixed some potential illegal memory accesses to do with cache prefetching in fmpz_poly.c

v 1.0.13 -- 13-Jul-08
   * Fixed memory leaks and dirty memory issues in test code for numerous modules.
   * Removed further issues with cache prefetching in mpn_extras.c

v 1.0.14 -- 23-Sep-08
   * Update long_extras and test code for the sake of new quadratic sieve (new functions in long_extras remain undocumented)
   * Removed many bugs from tinyQS and mpQS and joined them into a single program for factoring integers

v 1.0.15 -- 15-Oct-08
   * Fixed a bug which causes a segfault when setting a coefficient of the zero polynomial to zero
   * Fixed build bug in longlong.h on s390 platform

v 1.0.16 -- 22-Oct-08
   * Fixed a segfault when trying to truncate a polynomial to an longer length than it currently is, with the function fmpz_poly_truncate (reported by Craig Citro)

v 1.0.17 -- 30-Nov-08
   * Fixed a segfault caused by left shifting of polynomials with zero limbs allocated in division and pseudo division functions.
   * Fixed a bound used in fmpz_gcd_modular to use a proven bound
   * Fixed a bug in fmpz_poly-profile where the top bit of random coefficients of n bits was always set

v 1.0.18 -- 05-Dec-08
   * Fixed another bug in the fmpz_poly_set_coeff_* functions which resulted in dirty coefficients

v 1.0.19 -- 12-Dec-08
   * Fixed a bug in z_remove_precomp

v 1.0.20 -- 13-Dec-08
   * Fixed some bugs in conversion of zmod_poly's to and from strings

v 1.0.21 -- 25-Dec-08
   * Fixed the Christmas bug reported by Michael Abshoff which causes a test failure in fmpz_poly_gcd_modular and a hang in fmpz_poly_invmod_modular on 32 bit machines 

v 1.1.0 -- 21-Dec-08 (some of the following features were previewed in FLINT 1.0.11):

   * integer gcd (this just wraps the GMP gcd code)
   * polynomial content
   * primitive part
   * convert to and from FLINT and NTL integers and polynomials
   * get a coefficient of a polynomial efficiently as a read only mpz_t
   * print polynomials in a prettified format with a specified variable 
   * Sped up integer multiplication
   * Convert to and from zmod_polys from fmpz_polys
   * Chinese remainder for fmpz_polys
   * Leading coeff macro
   * Euclidean norm of polynomials
   * Exact division testing of polynomials
   * Polynomial GCD (subresultant, heuristic, modular)
   * Modular inversion of polynomials
   * Resultant
   * XGCD (Pohst-Zassenhaus)
   * Multimodular polynomial multiplication
   * Rewritten karatsuba_trunc function
   * Rewritten division functions
   * Polynomial derivative
   * Polynomial evaluation
   * Polynomial composition
   * Addition and subtraction of zmod_polys
   * Sped up multiplication of zmod_polys
   * Extended multiplication of zmod_polys to allow up to 63 bit moduli
   * zmod_poly subpolynomials
   * zmod_poly reverse
   * Truncated multiplication for zmod_polys (left, right, classical and KS)
   * Scalar multiplication
   * Division for zmod_polys (divrem and div, classical, divide and conquer and newton)
   * Series inversion for zmod_polys
   * Series division for zmod_polys
   * Resultant for zmod_polys
   * GCD for zmod_polys including half-gcd
   * Inversion modulo a polynomial for zmod_polys
   * XGCD for zmod_polys
   * Squarefree factorisation for zmod_polys
   * Berlekamp factorisation for zmod_polys
   * Irreducibility testing for zmod_polys
   * Derivative for zmod_polys
   * Middle product for zmod_polys (sped up newton division)
   * addmod, submod and divmod for ulongs
   * Sped up limb sized integer square root
   * Partial factoring of ulongs
   * z_randbits
   * Pocklington-Lehmer primality testing
   * BSPW pseudo-primality testing
   * Fermat pseudo-primality testing
   * Fast Legendre symbol computation
   * Chinese remainder for fmpzs
   * Square root with remainder for fmpzs
   * Left and right shift for fmpzs
   * Reduction modulo a ulong for fmpzs
   * Montgomery redc, mulmod, divmod and mod for fmpzs
   * Multimodular reduction and CRT for fmpzs
   * fmpz_mulmod and fmpz_divmod
   * fmpz_invert for inversion modulo an fmpz
   * Dramatically sped up gcd for small fmpzs
   * Computation of 1D, 2D and some 3D theta functions
   * Example program for multiplying theta functions
   * Test code now times test functions
   * Quick and dirty timing function for profiler
   * Tiny quadratic sieve for small one and two limb integers
   * Completely rewritten self initialising multiple polynomial quadratic sieve
   * Build fix for 64 bit OSX dylibs (reported by Michael Abshoff)
   
v 1.1.1 -- 11-Feb-09

   * Fixed bugs in _fmpz_poly_scalar_mul_fmpz, fmpz_poly_gcd_heuristic and fmpz_poly_gcd_subresultant and fixed bugs in test__fmpz_poly_scalar_div_fmpz, test_fmpz_poly_scalar_div_fmpz and test_fmpz_poly_scalar_div_mpz.

v 1.1.2 -- 1-Mar-09

   * Fixed some memory allocation slowdowns and bugs in fmpz_poly division and pseudo division functions (reported by William Stein).
   
v 1.1.3 -- 1-Mar-09

   * Inserted some missing return values in zmod_poly test code.
  
v 1.2.0 -- 10-Mar-09

   * made memory manager, fmpz and fmpz_poly threadsafe
   * Code for running tests in parallel (not activated)
   * Sped up fmpz_poly_scalar_div_ui/si when scalar is 1/-1
   * Parallelise _fmpz_poly_mul_modular 
   * fmpz_mul_modular_packed to pack coefficients to the byte before running _fmpz_poly_mul_modular 
   * fmpz_poly_pseudo_rem_cohen (not documented)
   * special case for leading coeff 1/-1 in fmpz_poly_pseudo_divrem_basecase
   * removed a memory allocation bug which caused a massive slowdown in fmpz_poly_pseudo_divrem_basecase
   * fmpz_poly_pseudo_rem_basecase (not documented)
   * fmpz_poly_pseudo_rem (not asymptotically fast)
   * fmpz_poly_signature (not asymptotically fast)
   * basic fmpz_poly_is_squarefree function
   * included zn_poly in trunk and made FLINT build zn_poly as part of its build process
   * switched to using zn_poly for polynomial multiplication, newton inversion, scalar multiplication in zmod_poly
   * Integer cube root of word sized integers
   * Fibonacci pseudoprime test
   * BSPW probable prime test
   * n - 1 primality test
   * Complete implementation of z_issquarefree
   * Significantly improved the thetaproduct example program. 
   * Fixed bug in fmpz_poly_byte_pack which is triggered when trying to pack into fields a multiple of 8 bytes (could cause a segfault)
   * Fixed a bug in fmpz_poly_pseudo_divrem (relied on an uninitialised poly to have length 0)
   * Fixed bug in fmpz_multi_CRT_ui (could segfault)
   * Fixed bug in fmpz_multi_mod_ui (could segfault)
   * Fixed memory leak in zmod_poly_factor_squarefree 
   * Fixed memory leak in zmod_poly_from_string

v 1.2.1 -- 14-Mar-09

   * Removed some FLINT 2.0 code which was interfering with the build of the NTL-interface
   * Removed an omp.h from fmpz_poly.c.

v 1.2.2 -- 20-Mar-09

   * Fixed a memory leak in zmod_poly_factor
   * Fixed zmod_poly-profile build

v 1.2.3 -- 31-Mar-09

   * Fixed bugs in all fmpz_poly evaluation functions, identified by Burcin Erocal. 

v 1.2.4 -- 4-Apr-09

   * Defined THREAD to be blank on Apple CC and __thread for thread local storage on other gcc's (where it's defined)
   * #undef ulong in profiler.h where time.h and other system time headers are included (both reported by M. Abshoff)

v 1.2.5 -- 18-Apr-09

   * Upgraded to zn_poly-0.9 to avoid a serious error in squaring of large polynomials over Z/nZ

v 1.3.0 -- 09-Jun-09

   * Added new code for checking 2nd, 3rd and 5th roots
   * Fixed a bug in z_factor
   * Connected quadratic sieve for factoring large ulongs
   * Added one line factor algorithm
   * constructed best of breed factor algorithm
   * Fixed termination conditions for z_intcuberoot and z_intfifthroot which were broken
   * Added some code for special cases which cause infinite loops in cuberoot and fifthroot
   * Went back to ceil(pow(n, 0.33333333)) and ceil(pow(n, 0.2)) for initial guesses in cube and fifth root functions as these were about 50% faster than sqrt(n) and sqrt(sqrt(n)) respectively.
   * Added test code for z_intfifthroot
   * Added test code for z_factor_235power
   * Fixed some uninitialised data found by valgrind in intcuberoot and intfifthroot
   * Fixed multiply defined PRIME_COUNT in long_extras-test
   * Got rid of gotos in some functions in long_extras
   * Knocked optimisation level back to -O2 because it miscompiles on sage.math
   * Changed tables to use uint64_t's instead of ulongs which are not 64 bits on a 32 bit machine
   * Only checked MAX_HOLF on 64 bit machine
   * Changed MAX_SQUFOF to WORD(-1)
   * Check constant 0x3FFFFFFFFUL only on a 64 bit machine
   * Fixed a bug in z_oddprime_lt_4096 on 32 bit machines
   * Fixed some TLS issues with Cygwin
   * Fixed some typos in makefile
   * Fixed a wrong path in fmpz.c

v 1.4.0 -- 06-Jul-09

   * Sped up zmod_poly division in case where operands are the same length
   * Sped up zmod_poly division in case where operands have lengths differing by 1
   * Fixed a bug in zmod_poly_gcd for polynomials of zero length
   * Sped up zmod_poly_gcd considerably (both euclidean and half gcd)
   * Sped up zmod_poly_gcd_invert and zmod_poly_xgcd considerably
   * Made zmod_poly_gcd_invert and zmod_poly_xgcd asymptotically fast
   * Made zmod_poly_resultant asymptotically fast
   * Added optimised zmod_poly_rem function
   * Fixed a divide by zero bug in zmod_poly_factor_berlekamp 
   * Added test code for z_factor_tinyQS and z_factor_HOLF
   * Fixed many bugs in the z_factor code, tinyQS and mpQS
   * Corrected numerous typos in the documentation and added missing descriptions
   * Added F_mpz_cmp function
   * Added documentation to the manual for the new F_mpz module

v 1.5.0 -- 22-Sep-09

   * Added multimodular reduction and CRT to F_mpz module
   * Fixed some bugs in F_mpz module and numerous bugs in test code
   * Added zmod_poly_compose
   * Added zmod_poly_evaluate
   * Added functions for reduced evaluation and composition to fmpz_poly module (contributed by Burcin Erocal)
   * Fixed bugs in the primality tests in long_extras
   * Removed all polynomial multimodular multiplication functions
   * Added new thetaproduct code used in the 1 trillion triangles computation
   * Fixed a severe bug in the fmpz_poly_pseudo_div function reported by Sebastian Pancratz
   * Added fmpz_comb_temp_init/clear functions
   * Fixed a normalisation buglet in fmpz_poly_pack_bytes
   * Added F_mpz_pow_ui function (contributed by Andy Novocin)
   * Fixed a severe bug in the FFT reported by William Stein and Mariah Lennox (fix contributed by David Harvey)
   * Removed some memory leaks from F_mpz test code
   * Fixed bug in zmod_poly_evaluate test code

v 1.6.0 -- 24-Dec-10

   Bugs:
   ====

   * Fixed a memory leak in mpz_poly_to_string_pretty
   * Fixed a bug inherited from an old version of fpLLL 
   * Makefile to respect CC and CXX
   * Fixed bug in F_mpz_set_si
   * Fixed bug in F_mpz_equal
   * Most for loops to C90 standard (for easier MSVC porting)
   * Better Cygwin support
   * Fixed a bug in zmod_poly_resultant
   * Fixed bug in F_mpz_mul_KS/2
   * Fixed bug in tinyQS
   * Worked around some known bugs in older GMP/MPIR's

   Major new functionality
   =======================
   * F_mpz_poly_factor_zassenhaus 
   * F_mpz_poly_factor (incl. fmpz_poly_factor wrapper) using new vH-N approach
    (see the paper of van Hoeij and Novocin and the paper of van Hoeij, Novocin 
     and Hart)
   * Implementation of new CLD bounds function for polynomial factors
     (see the paper of van Hoeij, Novocin and Hart
   * Restartable Hensel lifting
   * Heuristic LLL implementations using doubles and mpfr
   * LLL implementations optimised for knapsack lattices
   * New (probably subquadratic) LLL implementation (ULLL)
   * zmod_poly_factor_cantor_zassenhaus
   * New F_mpz_mod_poly module for polynomials over Z/pZ for multiprec. p

   Some of the other new functions added
   =====================================

   F_mpz:

   * F_mpz_gcd
   * F_mpz_smod
   * F_mpz_mod_preinv
   * F_mpz_fdiv_qr
   * F_mpz_get/set_mpfr/2exp
   * F_mpz_sscanf
   * F_mpz_set_d

   F_mpz_poly:

   * read F_mpz_poly to_string/from_string/fprint/print/fread/pretty
   * F_mpz_poly_to/from_zmod_poly
   * F_mpz_poly_scalar_div_exact
   * F_mpz_poly_smod
   * F_mpz_poly_derivative, F_mpz_poly_content, F_mpz_poly_eval_horner_d/2exp
   * F_mpz_poly_scalar_abs
   * F_mpz_poly_set_d_2exp
   * F_mpz_poly_div/divrem
   * F_mpz_poly_gcd
   * F_mpz_poly_is_squarefree
   * F_mpz_poly_factor_squarefree
   * F_mpz_poly_mul_trunc_left
   * F_mpz_poly_pseudo_div
   * F_mpz_poly_set_coeff
   * F_mpz_poly_pow_ui
   * Inflation/deflation trick for factorisation

   zmod_poly:

   * Inflation/deflation trick for factorisation

   mpz_mat:

   * mpz_mat_from_string/to_string/fprint/fread/pretty

   mpq_mat:

   * mpq_mat_init/clear
   * Gramm-schmidt Orthogonalisation

   F_mpz_mat:

   * F_mpz_mat_print/fprint/fread/pretty
   * F_mpz_mat_mul_classical
   * F_mpz_mat_max_bits/2
   * F_mpz_mat_scalar_mul/div_2exp
   * F_mpz_mat_col_equal
   * F_mpz_mat_smod
   * F_mpz_vec_scalar_product/norm
   * F_mpz_vec_add/submul_ui/si/F_mpz/2exp

   zmod_mat:

   * classical multiplication
   * strassen multiplication
   * scalar multiplication
   * zmod_mat_equal
   * zmod_mat_add/sub
   * zmod_mat_addmul_classical

   d_mat:

   * d_vec_norm, d_vec_scalar_product

   mpfr_mat:

   * mpfr_vec_scalar_product/norm

v 2.0 -- 16 Jan 2011
  N.B: FLINT 2 is  a complete rewrite of flint from scratch
  It includes the following modules:

ulong_extras: (word sized integers and modular arithmetic)
  * random numbers (randint, randbits, randprime, randint)
  * powering
  * reverse binary
  * mod, divrem, mulmod all with precomputed inverses
  * gcd, invgcd, xgcd
  * jacobi symbols
  * addmod, submod, invmod, powmod
  * prime sieve, nextprime, prime-pi, nth-prime
  * primality testing (small, binary search, Pocklington-Lehmer, Pseudosquare)
  * probably prime tests (strong base-a, Fermat, Fibonacci, BPSW, Lucas)
  * sqrt, sqrtrem, is-square, perfect-power (2,3,5)
  * remove, is-squarefree
  * factorisation (trial-range, trial, power (2,3,5), one-line, SQUFOF)
  * Moebius mu, Euler phi
   
fmpz: (memory managed multiple precision integers)
  * memory management (init, clear)
  * random numbers (randbits, randm)
  * conversion to and from long, ulong, doubles, mpz's, strings
  * read/write to file, stdin, stdout
  * sizeinbase, bits, size, sgn, swap, set, zero
  * cmp, cmp-ui, cmpabs, equal, is-zero, is-one
  * neg, abs, add, add-ui, sub, sub-ui, mul, mul-si, mul-ui, mul-2exp
  * addmul, addmul-ui, submul, submul-ui
  * cdiv-q, cdiv-q-si, cdiv-q-ui
  * fdiv-q, fdiv-q-si, fdiv-q-ui, fdiv-qr, fdiv-q-2exp
  * tdiv-q, tdiv-q-si
  * divexact, divexact-si, divexact-ui
  * mod, mod-ui
  * powering
  * sqrt, sqrt-rem
  * factorial
  * gcd, invmod
  * bit-pack, bit-unpack
  * multimodular reduction, CRT 

fmpz_vec: (vectors over fmpz's)
  * memory management (init, clear)
  * random vectors
  * max-bits, max-limbs
  * read/write to file/stdin/stdout
  * set, swap, zero, neg
  * equal, is-zero
  * sort
  * add, sub
  * scalar multiplication by fmpz, ulong, long, 2exp
  * exact division by fmpz, long, ulong
  * fdiv-q by fmpz, long, ulong, 2exp
  * tdiv-q by fmpq, long, ulong
  * addmul by fmpz, long, long by 2exp
  * submul by fmpz, long, long by 2exp
  * Gaussian content

fmpz_poly: (polys over fmpz's)
  * memory management (init, realloc, fit-length, clear)
  * random polys
  * normalise, set-length, truncate
  * length, degree, max-limbs, max-bits
  * set, set-si, set-ui, set-fmpz, set-str
  * get-str, get-str-pretty
  * zero, one, zero-coeffs
  * swap, reverse
  * get/set coeffs from fmpz, long, ulong
  * get-coeff-ptr, lead
  * equal, is-zero
  * add, sub
  * scalar multiplication by fmpz, long, ulong
  * scalar addmul/submul by fmpz
  * scalar fdiv by fmpz, long, ulong
  * scalar tdiv by fmpz, long, ulong
  * scalar divexact by fmpz, long, ulong
  * bit pack, bit unpack
  * multiplication (classical, karatsuba, KS)
  * mullow (classical, karatsuba, KS)
  * mulhigh (classical, karatsuba)
  * middle product (classical)
  * powering (small, binary exponent, binomial, multinomial, addition chains)
  * truncated powering (binary exponent)
  * shift left/right
  * euclidean norm
  * gcd (subresultant)
  * resultant
  * content, primitive part
  * divrem (basecase, divide-and-conquer)
  * div (basecase, divide-and-conquer)
  * rem (basecase)
  * invert series (basecase, Newton)
  * div series
  * pseudo divrem (basecase, divide-and-conquer, Cohen)
  * rem (Cohen)
  * div
  * evaluate (Horner) at fmpz, mpq, a mod n
  * composition (Horner, divide-and-conquer)
  * signature
  * read/write to file/stdin/stdout

fmpq_poly: (polynomials over Q stored as poly over fmpz with fmpz denominator)
  * memory management (init, realloc, fit-length, clear)
  * random polys
  * set-length, canonicalise, normalise, truncate
  * is-canonical, length, degree
  * reference to numerator, denominator
  * set, set-si, set-ui, set-fmpz, set-mpz, set-mpq
  * set-array-mpq, set-str
  * get-str, get-str-pretty
  * zero, neg, swap
  * invert
  * set coefficient to mpq, long, ulong, fmpz, mpz
  * get coefficient as mpq
  * equal, cmp, is-one, is-zero
  * add, sub
  * scalar multiplication by long, ulong, fmpz, mpq
  * scalar division by fmpz, long, ulong, mpq
  * multiplication, mullow
  * powering 
  * shift left/right
  * divrem, div, rem
  * invert series (Newton iteration)
  * divide series
  * derivative
  * evaluate at fmpz, mpq
  * composition, scale by constant
  * content, primitive part
  * make-monic, is-monic
  * is-squarefree
  * read/write to file/stdin/stdout

nmod_vec: (vectors over Z/nZ for n fitting in a machine word)
  * memory management (init/clear)
  * macros for efficient reduction of 1, 2 and 3 limb integers mod n
  * macro for addmul mod n
  * add/sub/neg individual coefficients mod n
  * random vectors
  * set, zero, swap
  * reduce, max-bits
  * equal
  * add, sub, neg
  * scalar multiplication by a value reduced mod n
  * scalar addmul by a value reduced mod n

nmod_poly: (polynomials over Z/nZ for n fitting in a machine word)
  * memory management (init, realloc, fit-length, clear)
  * random polys
  * normalise, truncate
  * length, degree, modulus, max-bits
  * set, swap, zero, reverse
  * get/set coefficients as ulongs, strings
  * read/write to file, stdin, stdout
  * equal, is-zero
  * shift left/right
  * add, sub, neg
  * scalar multiplication by a value reduced mod n
  * make-monic
  * bit pack, bit unpack
  * multiplication (classical, KS)
  * mullow (classical, KS)
  * mulhigh (classical)
  * powering (binary exponent)
  * pow-trunc (binary exponent)
  * divrem (basecase, divide-and-conquer, Newton iteration)
  * div (basecase, divide-and-conquer, Newton iteration)
  * invert series (basecase, Newton iteration)
  * divide series (Newton iteration)
  * derivative
  * evaluation at a value taken mod n
  * composition (Horner, divide-and-conquer)
  * gcd (euclidean)

fmpz_mat: (matrices over fmpz's)
  * memory management (init, clear)
  * random matrices (bits, integer relations, simultaneous diophantine equations
    NTRU-like, ajtai, permutation of rows and cols of a diagonal matrix, random
    of given rank, random of given determinant, random elementary operations)
  * set, init-set, swap, entry pointer
  * write to file or stdout
  * equal
  * transpose
  * multiplication (classical, multimodular)
  * inverse
  * determinant
  * row reduce (Gaussian and Gauss-Jordan fraction-free elimination)
  * rank
  * solve Ax = b, solve AX = B
  * fraction free LU decomposition

nmod_mat: (matrices over Z/nZ for n fitting in a machine word)
  * memory management (init, clear)
  * random matrices (uniform, full, permutations of diagonal matrix, random of 
    given rank, random elementary operations)
  * set, equal
  * print to stdout
  * add
  * transpose
  * multiplication (classical, Strassen, A*B^T)
  * row reduction (Gaussian and Gauss-Jordan)
  * determinant
  * rank
  * solve (Ax = b, AX = B, solve with precomputed LU)
  * invert

arith: (arithmetic functions)
  * Bernoulli numbers
  * Bernoulli polynomials
  * primorials (product of primes up to n)
  * harmonic numbers
  * Stirling numbers
  * Euler phi function
  * Moebius mu function
  * Sigma (sum of powers of divisors)
  * Ramanujan tau function
  

examples: (example programs)
  * compute coefficients of q-series of Delta function

mpfr_vec: (vectors over mpfr reals)
  * memory management (init, clear)
  * add
  * set, zero
  * scalar multiplication by mpfr, 2exp
  * scalar product

mpfr_mat: (matrices over mpfr reals)
  * memory management (init, clear)

v 2.1 -- 9 Mar 2011

fmpz
----
  * Simplified interface for fast multimodular reduction and CRT reconstruction
  * Fixed segmentation fault in fmpz_multi_mod_ui when the input exceeds the product of the moduli
  * Added simple incremental CRT functions (fmpz_CRT_ui, fmpz_CRT_ui_unsigned) to complement the existing fast ones
  * Added example programs for CRT
  * Added random number generators designed for testing modular code (fmpz_randtest_mod, fmpz_randtest_mod_signed)
  * Added fmpz_fdiv_ui for remainder on division by an ulong
  * Added fmpz_bin_uiui for computing binomial coefficients
  * Added fmpz_mul2_uiui and fmpz_divexact2_uiui for multiplying or dividing an fmpz by a pair of ulongs (efficiently when their product fits in a single limb)

fmpz_mat
--------
  * Added utility functions for basic arithmetic and creating unit matrices
  * Added multimodular determinant computation (certified or heuristic)
  * Added support for computing right nullspaces (fmpz_mat_kernel). Fast only for small matrices.
  * Some internal code cleanup and various small fixes

nmod_mat
--------
  * Faster Gaussian elimination for small moduli
  * Faster determinants
  * Faster matrix inversion and nonsingular solving

nmod_poly
---------
  * Added nmod_poly_integral for computing integrals
  * Added fast square root and inverse square root of power series
  * Added fast transcendental functions of power series (log, exp, sin, cos, tan, sinh, cosh, tanh, asin, atan, asinh, atanh)
  * Made nmod_poly_inv_series_newton more memory efficient

fmpq_poly
---------
  * Added fmpq_poly_integral for computing integrals
  * Added fast transcendental functions of power series (log, exp, sin, cos, tan, sinh, cosh, tanh, asin, atan, asinh, atanh)

arith
-----
  * Made computation of vectors of Bernoulli numbers faster
  * Added fast computation of single Bernoulli numbers
  * Added a separate function for computing denominators of Bernoulli numbers
  * Added fast computation of Bell numbers (vector and single)
  * Added fast computation of Euler numbers (vector and single)
  * Added fast computation of Euler polynomials
  * Added fast computation of Swinnerton-Dyer polynomials
  * Added fast computation of Legendre polynomials
  * Added fast vector computation of the partition function
  * Added fast vector computation of Landau's function

ulong_extras
------------
  * Added a function for computing factorials mod n

build system
------------
  * Added support for building static and shared libraries
  * All object files and test/profile/example binaries now build in separate build directory

documentation
-------------
  * Large number of corrections

v 2.2 -- 4 Jun 2011

fmpq (multiprecision rational numbers)
--------------------------------------
  * Basic arithmetic functions
  * Utility functions
  * Rational reconstruction
  * Functions for enumerating the rationals

fmpq_mat (matrices over Q)
--------------------------
  * Basic arithmetic functions
  * Utility functions
  * Fast multiplication
  * Classical and fraction-free reduced row echelon form
  * Determinants
  * Fast non-singular solving

fmpz_poly_mat (matrices over Z[x]
---------------------------------
  * Basic arithmetic functions
  * Utility functions
  * Fraction-free row reduction and determinants
  * Fast determinants (experimental)

fmpz_mat
--------
  * Added more utility functions (scalar multiplication, etc)
  * Added Dixon's p-adic algorithm (used by fast nonsingular rational system
    solving)
  * Added reduced row echelon form
  * Added conversions between fmpz_mat and nmod_mat
  * Added CRT functions for fmpz_mats
  * Faster matrix multiplication for small to medium dimensions

longlong.h
----------
  * Added x86 assembly macros for accumulating sums of two limb operands

nmod_mat
--------
  * Sped up arithmetic for moduli close to FLINT_BITS

arith
-----
  * Changed interface of various functions to use new fmpq type

fmpz
----
  * Added fmpz_set_ui_mod
  * Inlined fmpz_neg, fmpz_set_si, fmpz_set_ui for better performance
  * Added fmpz_lcm
  * Small performance improvement to fmpz_CRT_ui

fmpz_vec
--------
  * Added _fmpz_vec_lcm

fmpz_poly_q (rational functions over Q, modeled as quotients of fmpz_polys)
---------------------------------------------------------------------------
  * Basic arithmetic functions
  * Conversion and IO functions
  * Evaluation

padic (p-adic numbers -- experimental)
-------------------------------------
  * Basic arithmetic
  * Data conversion and IO
  * Inverse and square root using Newton iteration
  * Teichmuller lifts (not optimised)
  * p-adic exponential function (not optimised)

fmpz_poly
---------
  * Added fmpz_poly_gcd_modular (and fmpz_poly_gcd wrapper)
  * Added fmpz_poly_xgcd_modular (and fmpz_poly_xgcd wrapper)
  * Added conversions between fmpz_poly and nmod_poly
  * Added CRT functions
  * Added multipoint evaluation and interpolation

nmod_poly
---------
  * Added nmod_poly_xgcd_euclidean (and nmod_poly_xgcd wrapper)
  * nmod_poly_gcd wrapper

mpn_extras
----------
  * Added MPN_NORM and MPN_SWAP macros.
  * Added mpn_gcd_full to remove some of the restrictions from the usual mpn_gcd

build fixes
------------
  * fixed make install to create nonexistent dirs (reported by Serge Torres)
  * -L use /usr instead of /usr/local by default (reported by Serge Torres)
  * guards for system headers because of flint's use of ulong

v 2.3 -- 1 Jul 2012

general
-------
  * many changes to the build system
  * added NTL interface
  * switched to custom memory allocation functions flint_malloc etc
  * in addition to the entries below, fixed a large number of memory leaks,
    problems with the test code, and bugs in corner cases of various functions
  * added _fmpz_cleanup_mpz_content as an alternative to _fmpz_cleanup
  * support MinGW32
  * support Cygwin
  * bugfix on ia64
  * support sparc32/sparc64
  * support OSX
  * support Solaris, NetBSD, OpenBSD, etc (if bash, GNU Make present)

ulong_extras
------------
  * implemented the improved Lehman algorithm
  * added n_jacobi_unsigned to allow n > WORD_MAX
  * fixed n_sqrtmod for n > WORD_MAX
  * fixed bug causing n_sqrtmod to hang
  * added sublinear algorithm for computing factorials mod p
  * added n_sqrtmod_primepow, n_sqrtmodn and associated functions for
    computing square roots modulo composite integers
  * fixed bugs in n_is_prime_pocklington
  * fixed UWORD_MAX case in powmod and powmod2
  * fixed problems with the random number generators
  * fixed rare bug in n_mod_precomp
  * fixed rare bug in n_is_prime_pseudosquare

long_extras
-----------
  * added z_sizeinbase

qsieve
------
  * new module implementing a quadratic sieve for numbers up to two limbs

fft
---
  * new module providing an efficient Schoenhage-Strassen FFT

longlong
--------
  * added assembly code for ia64 and ARM
  * fixed bug in fallback version of add_sssaaaaaa

fmpz
----
  * added fmpz_fib_ui
  * added double precision natural logarithm
  * added fmpz_val2 for 2-valuation
  * added mul_2exp, div_2exp, cdiv_q_2exp, tdiv_q_2exp, fdiv_r, fdiv_r_2exp,
    tdiv_ui, mul_tdiv_q_2exp
  * added get_d/set_d
  * added fmpz_divisible, divisible_si
  * optimised fmpz_powm and fmpz_powm_ui
  * added clog, clog_ui, flog, flog_ui for computing logarithms
  * added abs_lbound_ui_2exp, ubound_ui_2exp
  * added fmpz_rfac_ui and fmpz_rfac_uiui for rising factorials
  * added functions to obtain read-only fmpz_t's from mpz_t's
  * added fmpz_init_set, init_set_ui
  * added fmpz_gcdinv
  * added fmpz_is_square
  * added fmpz_tstbit, setbit, clrbit, complement, combit, and, or, xor, popcnt
  * added a sign flag for CRT instead of using separate methods
  * fixed bugs in fmpz_sqrtmod
  * fixed a bug in fmpz_bit_unpack that could cause corruption of the global
    fmpz array when compiled in single mode
  * fixed a bug in fmpz_sub_ui that could cause memory corruption

fmpz_vec
--------
  * added functions for obtaining the largest absolute value coefficient
  * added functions for computing the sum and product of an integer vector
  * made max_bits much faster
  * added _fmpz_vec_mod_fmpz
  * made randtest produce sparse output

fmpz_poly
---------
  * added fmpz_poly_sqr, fmpz_poly_sqrlow for squaring a polynomial
  * added fmpz_poly_lcm
  * made multipoint interpolation faster by using the Newton basis
  * added a function for fast division by a linear polynomial
  * added power series composition (classical and Brent-Kung)
  * added power series reversion (classical, Newton, fast Lagrange)
  * added a function for obtaining the largest absolute value coefficient
  * fixed quadratic memory usage and stack overflow when performing
    unbalanced division or pseudo division using the divconquer algorithm
  * fixed a bug in poly_zero_coeffs
  * fixed a bug in xgcd_modular
  * allowing  /-1 in the constant term of power series inversion
  * fixed aliasing bug in divrem
  * added restartable Hensel lifting and associated utility functions
  * fixed rem, which used to only call the basecase algorithm
  * fixed pseudo_divrem, which used to only call the basecase algorithm
  * implemented Schoenhage-Strassen multiplication (mul_SS, mullow_SS)
    and enabled this by default
  * fixed a bug in the heuristic GCD algorithm
  * added functions for Newton basis conversion
  * added functions for fast Taylor shift
  * added fmpz_poly_sqrt implementing a basecase algorithm
  * added scalar mul_2exp, fdiv_2exp, tdiv_2exp
  * made randtest produce sparse output
  * added fmpz_poly_equal_fmpz
  * improved performance by always using basecase multiplicatio
    when one polynomial is short
  * improved algorithm selection for fmpz_poly_gcd
  * fixed several bugs in gcd_modular
  * improved performance of gcd_modular

fmpz_poly_factor
----------------
  * new module for factorisation of fmpz_polys
  * added a naive implementation of the Zassenhaus algorithm

fmpz_mod_poly
-------------
  * new module for polynomials modulo over Z/nZ for arbitrary-precision n
  * multiplication, powering
  * classical and divconquer division
  * series inversion
  * Euclidean GCD and XGCD
  * invmod
  * radix conversion
  * divconquer composition
  * GCD and division functions that test invertibility of the
    leading coefficient

fmpz_mat
--------
  * added det_divisor for computing a random divisor of the determinant
  * faster determinant computation using divisor trick
  * faster determinant computation by using multimodular updates
  * fixed n x 0 x m product not zeroing the result
  * various interface improvements
  * faster implementation of Cramer's rule for multiple right hand sides
  * added fmpz_mat_fread and read
  * added multi CRT/mod functions
  * added trace

fmpz_poly_mat
-------------
  * fixed n x 0 x m product not zeroing the result
  * added inverse
  * added rank computation
  * added reduced row echelon form and nullspace computation
  * added more utility functions
  * added squaring and exponentiation
  * added balanced product of a sequence of matrices
  * added truncate, mullow, sqrlow, pow_trunc
  * added trace

fmpz_factor
-----------
  * new module providing interface for integer factorisation
  * fast expansion of a factored integer

fmpq
----
  * cleaned up and improved performance of rational reconstruction code
  * allow separate numerator and denominator bounds for rational
    reconstruction
  * added continued fraction expansion
  * added functions for summation using binary splitting
  * added fmpq_swap
  * added fmpq_print, fmpq_get_str
  * added fmpq_pow_si
  * added functions to obtain read-only fmpq_t's from mpq_t's
  * added fmpq_cmp

fmpq_mat
--------
  * fixed n x 0 x m product not zeroing the result
  * added fmpq_mat_transpose
  * added trace

fmpq_poly
---------
  * improved speed of multipoint interpolation using _fmpz_poly_div_root
  * fmpq_poly: added power series composition (classical and Brent-Kung)
  * fmpq_poly: added power series reversion (classical, Newton, fast Lagrange)
  * fixed bug wherein set_array_mpq modified the input
  * added gcd, xgcd, lcm, resultant
  * added fmpq_poly_set_fmpq
  * added fmpq_poly_get_slice, fmpq_poly_reverse
  * fixed aliasing bug in divrem
  * changed some functions to use FLINT scalar types instead of MPIR data types
  * added fmpq_poly_get_numerator

nmod_poly
---------
  * implemented the half gcd algorithm for subquadratic gcd and xgcd
  * added multipoint evaluation and interpolation
  * added asymptotically fast multipoint evaluation and interpolation
  * added a function for forming the product of linear factors
  * added a function for fast division by a linear polynomial
  * added power series composition (classical and Brent-Kung)
  * added power series reversion (classical, Newton, fast Lagrange)
  * added nmod_poly_mulmod, powmod and related functions
    (ported from flint1)
  * added squarefree, irreducibility tests (ported from flint1)
  * added Berlekamp and Cantor-Zassenhaus factoring (ported from flint1)
  * fixed quadratic memory usage and stack overflow when performing
    unbalanced division using the divconquer algorithm
  * added compose_series_divconquer
  * added resultant
  * fixed aliasing bug in divrem
  * added rem functions
  * added divrem_q0, q1 for special cases of division
  * added functions for fast Taylor shift
  * added nmod_poly_sqrt
  * made fread read the modulus from the file
  * made randtest produce sparse output
  * fixed bug in xgcd_euclidean with scalar inputs

nmod_vec
--------
  * added functions and macros for computing dot products
  * made randtest produce sparse output

nmod_mat
--------
  * added addmul/submul functions
  * asymptotically fast solving of triangular systems
  * asymptotically fast LUP decomposition
  * asymptotically fast determinant and rank computation
  * asymptotically fast reduced row echelon form and nullspace
  * asymptotically fast nonsingular solving
  * asymptotically fast inverse
  * tidied some interfaces
  * fixed n x 0 x m product not zeroing the result
  * added trace
  * made multiplication faster for tiny moduli by means of bit packing

nmod_poly_mat
-------------
  * new module for matrices over Z/nZ[x], with similar
    functionality as the fmpz_poly_mat module
  * determinant, rank, solving, reduced echelon form, nullspace
  * fraction-free Gaussian elimination
  * multiplication using bit packing
  * multiplication using evaluation-interpolation
  * determinant using evaluation-interpolation

padic
-----
  * restructured and improved much of the code
  * added padic_log
  * improved log and exp using rectangular splitting
  * added asymptotically fast log and exp based on binary splitting

perm
----
  * added the perm module for permutation matrices
  * computing the parity of a permutation
  * inverting a permutation

arith
-----
  * added generation of cyclotomic polynomials
  * added functions for evaluating Dedekind sums
  * fast computation of the partition function
  * added a function for factoring a Hardy-Ramanujan-Rademacher
    type exponential sum
  * added Chebyshev polynomials T and U
  * added computation of the minimal polynomial of cos(2pi/n)
  * added asymptotically fast high-precision approximation of zeta(n)
  * added asymptotically fast computation of Euler's constant
  * added new algorithms and functions for computing Bell numbers
  * fast computation of pi (adapting code written by Hanhong Xue)
  * added functions for computing the number of sum of squares
    representations of an integer
  * renamed functions to have an arith_ prefix

v 2.4 -- 20 Nov 2013

  * C   expressions template wrapper
  * Fast factorisation of polynomials over Z/nZ
  * improved p-adics
  * polynomials/matrices over p-adics
  * qadics
  * Finite fields (small and large F_q), polynomials/matrices over F_q
  * Finite fields with Zech logarithm representation
  * Fast factorisation of polynomials over F_q
  * Faster Brent-Kung modular composition
  * New prime sieving code
  * Lambert-W function
  * Precomputed inverses for polynomials and large integers
  * Williams' P 1 integer factoring algorithm
  * Harvey's KS2/KS4 polynomial multiplication  
  * Faster primality testing up to 64 bits
  * Support for Cygwin64 and MinGW64
  * Support for Clang
  * Support for GMP
  * Support for Boehm-Demers-Weiser GC
  * Support for flint extension modules

v 2.4.2 -- 11 Mar 2014

  * Fix bug in ARM assembly

v 2.4.3 -- 01 Apr 2014

  * Fix a linker issue on Mac OSX.

v 2.4.4 -- fixed a severe bug in flint's primality code (n_is_prime() affecting n_factor())

v 2.4.5 -- fixed a severe bug in flint's fmpz_poly_gcd_heuristic, reported by
    Anton Mellit.

v 2.5.0 -- 07 Aug 2015

  * LLL (rational, Nguyen-Stehle, from Gram matrix, with_removal, Storjohann/ULLL)
  * Hermite normal form (naive, xgcd, Domich-Kannan-Trotter, Kannan-Bachem, Pernet-Stein)
  * Smith normal form (diagonal, Kannen-Bachem, Iliopoulos)
  * Paterson-Stockmeyer algorithm
  * modular resultant
  * hgcd resultant
  * polynomial discriminant
  * multithreaded multimodular Taylor shift
  * multithreaded Brent-Kung composition
  * multithreaded Kaltofen-Shoup distinct degree factorisation
  * multiplication based reduced row echelon form
  * place inline functions in library for foreign function interfaces
  * Primality tests for large integers (Pocklington, Morrison)
  * Probable prime tests for large integers (Lucas, Baillie-PSW, strong-psp, Brillhart-Lehmer-Selfridge)
  * CRT for large integers
  * Dixon algorithm for nullspace
  * Brent-Kung composition in irreducibility and distinct degree factorisation
  * floating point QR decomposition
  * Schwarz-Rutishauser Gram-Schmidt algorithm
  * Ogita-Rump-Oishi dot product
  * matrix window functions
  * MSVC support (Brian Gladman)
  * fast cube/nth-root (Newton, Kahan, magic number, Chebyshev)
  * Bodrato matrix squaring
  * matrix concatenation functions
  * matrix content
  * faster n_gcd
  * faster n_sqrtmod and fmpz_sqrtmod
  * additional functions for returning factor of modulus in polys over Z/nZ
  * Hadamard matrix construction
  * series addition/subtraction
  * faster prime_pi bounds
  * speedup creation of sparse polynomials
  * speedup n_isprime n_nextprime
  * speedup n_isprime_pocklington
  * speedups to fmpq_poly and fmpz_poly arithmetic
  * speedup polynomial irreducibility testing over Z/pZ
  * speedup of rank computation over ZZ
  * made CPimport compile time dependency only
  * teach flint_printf/sprintf about explicit width format specifiers
  * support relative paths in configure
  * library soname versioning
  * ARM64 patches
  * Support MSYS2
  * Progress towards supporting MIPS64
  * Fix a serious bug in fmpz_poly_signature

v 2.5.1 -- 12 Aug 2015

  * Fix some build bugs related to soname versioning and ldconfig
  * Fix issue with Windows MSVC build

v 2.5.2 -- 13 Aug 2015

  * Fix further issues with soname versioning and ldconfig
  * Fix a bug when using GMP instead of MPIR.

v 2.6.0 -- 5 Jun 2020

  * multivariate polynomials over most standard rings (sparse distributed)
  * APR-CL primality proving
  * elliptic curve integer factoring
  * minpoly and charpoly
  * improved quadratic sieve for integer factoring
  * embeddings of finite fields
  * pollard rho integer factoring
  * p 1 integer factoring
  * best of breed smooth integer factoring routine
  * best of breed general integer factoring routine
  * howell and strong echelon form
  * large speedups for solve and hence inverse over Z and Q
  * randprime and nextprime functions
  * pernet-stein HNF improvements
  * moller-granlund precomputed inverses
  * resultant_modular_div
  * fibonacci polynomials
  * exception mechanism/flint_abort
  * sqrt of series and polynomials
  * division of series over Z
  * power sums
  * improved base cases of various power series functions
  * ability to switch memory allocators
  * fast recurrence for Hermite polys
  * shifted Legendre polynomials
  * Laguerre polynomials
  * Gegenbauer polys
  * sphinx documentation
  * van hoeij with gradual feeding implementation of polynomial factoring over Z
  * perfect power detection
  * divisibility testing for polynomials
  * fast block based memory manager for bundling fmpz allocations
  * uniform random generation
  * CMake build system
  * linear algebra speedups when everything can be kept in longs
  * nmod module for integers mod (small) n
  * fmpz_mod_mat module for matrices over integers mod multiprecision n
  * kronecker product (tensor product)
  * random primitive polys (for finite fields)
  * thread pool implementation
  * threading of FFT for integer and polynomial multiplication over Z
  * threading of quadratic sieve for integer factoring
  * improved threading of factoring of polynomials mod p
  * threading for multivariate polynomial multiplication, division and GCD
  * threaded multiplication of matrices mod p
  * Berlekamp-Massey (nmod)
  * fmpz_mod module for integers mod multiprecision n
  * Pohlig-Hellman (discrete log)
  * farey_neighbours
  * remove openMP option
  * additional integer division variants
  * speed up mpn_mulmod_preinv
  * fft precaching
  * cyclotomic polynomial detection
  * polynomial root finding over finite fields
  * GMP 6.2 support
  * MPIR 3.0.0 support
  * many small speedups and additional convenience functions added

v 2.6.1 -- 23 Jul 2020

 * Fix issues on Debian major architectures
 * Fix numerous reported bugs (mpoly, fq_poly, mpn_mul_1, mod 2 code, etc.)

v 2.6.2 -- 31 Jul 2020

 * Fix for choice of generator in an fq finite field of degree one
 * Fix an incorrectly written test

v 2.6.3 -- 12 Aug 2020

 * Fix a bug in generator of finite field in characteristic 2
 * Allow Flint to work with GMP 6.1.2 and 6.2.0 interchangeagbly
 * Fix some old license headers