home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / progs / pari / pari_137 / newin1.37 < prev    next >
Text File  |  1992-05-20  |  11KB  |  218 lines

  1. Description of the main changes between versions 1.35 and 1.37
  2. *** The changes since version 1.36 are preceded by ***.
  3.  
  4. (Since some intermediate releases like 1.35.01 have widely circulated, some
  5. changes described below do not apply.)
  6.  
  7. In addition to the new programs and improvements described below, many bugs
  8. have been corrected and improvements have been made. See the file Changes for 
  9. details.
  10.  
  11. 1) Linear algebra
  12.  
  13. a) New programs
  14.  
  15. suppl (supplement a subspace), image (image of a linear map), inverseimage
  16. (find a preimage of a vector by a linear map), indexrank (find row and column
  17. indices for extraction of a maximal rank square submatrix), matrixqz (primitive
  18. matrix having the same $\Bbb Q$-image), matrixqz2 (intersection of $\Bbb Z^n$
  19. with a lattice), matrixqz3 (intersection of $\Bbb Z^n$ with a 
  20. $\Bbb Q$-subspace), kerint, kerint1 and kerint2 ($\Bbb Z$-kernel of a linear
  21. map), intersect (intersection of subspaces), lllgramint and lllint (LLL when 
  22. the gram matrix is integral, completely accurate and fast if applicable),
  23. lllgramkerim and lllkerim ($\Bbb Z$-kernel and image of a linear map,
  24. generalizing lllgramint and lllint to the case where the vectors may be
  25. dependent).
  26.  
  27. b) Improvements
  28.  
  29. Modified many programs to handle empty matrices in a reasonable way.
  30. smith modified so as to allow singular matrices, and hermite modified so as to
  31. accept matrices of any size, in particular with more rows than columns.
  32. norml2 accepts now any type, in particular matrices.
  33. The LLL algorithms have been improved and speeded up. In particular, the
  34. linear and algebraic dependence algorithms lindep2 and algdep2 now give
  35. considerably better results than before, since they call lllint instead of lll.
  36. hess is now (hopefully) correct.
  37. In a GP statement, rows and columns of a matrix can now be accessed or modified
  38. directly using m[j,] for the j-th row and m[,k] for the k-th column.
  39. *** Addition of a scalar zero to a vector/matrix and of any scalar to a square
  40. *** matrix is now allowed.
  41.  
  42. 2) Polynomials, polymods and rational funtions
  43.  
  44. a) New programs
  45.  
  46. factfq (factorization of polynomials over any finite field), cyclo (cyclotomic
  47. polynomials), modreverse (reverse of a polymod), polred2 (polred with the
  48. integral basis elements), polyrev (same as poly in reverse order), 
  49. smallpolred2 (smallpolred+polred2), factoredpolred2 (factoredpolred+polred2),
  50. rootslong (a much slower but safer polynomial root finder), galois (galois
  51. group of a polynomial of degree up to 7), galoisconj (list of conjugates of
  52. an algebraic number belonging to the same number field), tchirnhausen (apply
  53. a random tchirnhausen transformation), initalg (give basic information about
  54. a number field), resultant2 (resultant for non-exact types), 
  55. factornf (factoring polynomials over number fields).
  56.  
  57. b) Improvements
  58.  
  59. gcd of two polymods or between a polymod and a polynomial is now more 
  60. reasonable, and vector/matrix arguments are allowed in gcd and lcm.
  61. Major modifications have been introduced in the treatment of polymods which
  62. now behave in a much more reasonable way.
  63. The simplification of rational functions has been enhanced, resulting in
  64. more completely simplified expressions, but also in slower speed.
  65. *** sturmpart was incorrect.
  66.  
  67. 3) Arithmetic functions.
  68.  
  69. a) New programs
  70.  
  71. factr (n! as a real number), centerlift (lift of mod(a,b) to a with |a| 
  72. minimum), shift (left or right shift), shiftmul (multiplication or division by
  73. a power of 2), rhorealnod and redrealnod (same as rhoreal and redreal without
  74. distance computation), comprealraw, sqrealraw and powrealraw (composition,
  75. squaring and powering of binary quadratic forms with positive discriminant
  76. without performing any reduction), isisom (test isomorphism of number fields),
  77. isincl (test inclusion of number fields), rootsof1 (number of roots of unity
  78. in a number field), nucomp, nudupl and nupow (composition of primitive 
  79. positive definite binary quadratic forms a la Shanks).
  80. *** Optionally: buchimag and buchreal (sub-exponential algorithms for class
  81. *** group structure and regulator of imaginary and real quadratic fields).
  82.  
  83. b) Improvements
  84.  
  85. sumdivk(n,k) now accepts k<0.
  86. When an impossible inverse modulo occurs, the error message prints the culprit
  87. so that one can factor the modulus if necessary.
  88. smallfact and boundfact can now have rational arguments.
  89. All operations (except nucomp and co.) on quadratic forms now accept 
  90. nonprimitive forms (whatever the result means however).
  91. *** Almost all arithmetic functions now accept vector or matrix arguments.
  92.  
  93. 4) Transcendental functions
  94.  
  95. a) New programs
  96.  
  97. izeta (zeta function for integer arguments, not accessible from GP but called
  98. automatically by zeta), incgam4 (incomplete gamma with given gamma value), 
  99. cxpolylog (polylog of complex argumnet, not accessible from GP but called
  100. automatically by polylog).
  101.  
  102. b) Improvements
  103.  
  104. incgam(a,x) now accepts a<=0.
  105. The polylog functions have been deeply modified. They now work in the whole
  106. complex plane, accept negative indices, and all useful modified versions
  107. are implemented. Also power series arguments are now accepted.
  108. gamma and lngamma now accept power series arguments.
  109. *** arg accepts vector/matrix arguments.
  110. *** theta(q,z) now works correctly when z is complex.
  111.  
  112. 5) Elliptic curves
  113.  
  114. a) New programs
  115. initell2 (fast initell, but for reasonable size coefficients), lseriesell
  116. (fast computation of the L series of an elliptic curve), pointell (Weierstrass
  117. P-function and its derivative), 
  118. *** akell (individual value of a_k).
  119.  
  120. b) Improvements
  121. Elliptic curves with huge coefficients can now be treated.
  122. zell is now in priciple correct and more accurate.
  123. The coefficients of matell have been doubled, so the determinant of the 
  124. height matrix is the usual regulator.
  125. isoncurve gives a reasonable answer in case of imprecise coefficients.
  126. apell now accepts prime numbers larger than 65536.
  127. *** smallinitell does not give an error message when D=0, but sets j=0.
  128. *** ordell now treats correctly rational numbers.
  129.  
  130. 6) Plotting functions
  131.  
  132. a) New programs
  133.  
  134. *** plothraw (plot of a set of points) has been added to the existing ploth and
  135. *** ploth2 (at present only under X11 and suntools). In addition a large set of
  136. *** more primitive plotting functions has been added: box and rbox (draw a 
  137. *** rectangular box), cursor (give current position of cursor), draw 
  138. *** (physically draw the contents of the windows, for the moment only under 
  139. *** X11 and suntools), initrect (initialize a window), killrect (erase a
  140. *** window), line and rline (draw a line), lines (draw a polygon), move and
  141. *** rmove (move the cursor), point and rpoint (draw a single point), points
  142. *** (draw a vector of points), string (draw a string or print a real number).
  143. *** postploth, postploth2, postplothraw, postdraw (postscript output of the
  144. *** corresponding plotting functions).
  145.  
  146. 7) Miscellaneous
  147.  
  148. a) New programs
  149.  
  150. vecsort (sort by some component), read (read an expression from a GP program),
  151. random (generate a random number), permutation (list all permutations), 
  152. matsize (dimensions of a matrix), size (maximal number of decimal digits),
  153. rounderror (maximum error made in rounding), lex (lexicographic comparison),
  154. lexsort (lexicographic sort), simplify (remove a zero imaginary part in a
  155. complex or quadratic, and convert a constant polynomial into its constant
  156. term).
  157.  
  158. b) Improvements
  159.  
  160. The time to input a large file into GP by \r is much shorter.
  161. suminf, prodinf, suminf1, prodinf1 can now have zero coefficients without
  162. stopping the computation.
  163. A vector can now be raised to an integral power componentwise (of course
  164. not a matrix).
  165. A new output format has been added (the prettymatrix format), which allows to
  166. print matrices as boxes, the components being still in raw format. This is now
  167. the default instead of the raw format (type \p to switch between the three
  168. output formats, \a, \m and \b to print in raw, prettymatrix and prettyprint 
  169. format respectively).
  170. *** When the dreaded message "the pari stack overflows" appears, all is not
  171. *** lost. Pari attempts to double the stack size, and if it succeeds, the 
  172. *** user can proceed under GP with a larger stack by simply retyping the 
  173. *** last command.
  174. *** Comments can now be included inside a {...} block under GP.
  175.  
  176. 8) Documentation and examples.
  177.  
  178. a) Two new chapters have been added to the manual (which now exceeds 103 pages,
  179. not counting the table of contents and the index). Chapter 5 gives a complete
  180. list of the low level functions of the PARI library, with a description of
  181. their use. The last chapter is a tutorial to the use of the GP calculator. It
  182. is not yet finished in this release. If you do not want it in the manual,
  183. put a % sign in front of the line \input tutorial in the file users.tex.
  184.  
  185. b) Two examples of complete and non-trivial GP programs are given in the
  186. directory examples. The first one is in the file squfof.gp. Just read in this
  187. file under GP with the command \r squfof.gp, and use the function squfof on
  188. positive integers which you want to factor. SQUFOF is a very nice factoring
  189. method invented in the 70's by D. Shanks for factoring integers, and is 
  190. reasonably fast for numbers having up to 15 or 16 digits. The squfof program
  191. which is given is a very crude implementation. It also prints out some
  192. intermediate information as it goes along. The final result is some factor of
  193. the number to be factored.
  194.  
  195. *** A second example is in the file clareg.gp. This allows you in many cases
  196. *** to compute the class number, the structure of the class group and a system
  197. *** of fundamental units of a general number field (this programs sometimes
  198. *** fails to give an answer). The first thing to do is to call the function
  199. *** clareg(pol,limp,lima,extra) where pol is the monic irreducible polynomial 
  200. *** defining the number field, limp is the prime factor base limit (try 
  201. *** values between 19 and 113), lima is another search limit (try 50 or 100)
  202. *** and extra is the number of desired extra relations (try 2 to 10). The
  203. *** program prints the number of relations that it needs, and tries to find 
  204. *** them. If you see that clearly it slows down too much before succeeding,
  205. *** abort and try other values. If it succeeds, it will print the class number,
  206. *** class group, regulator. These are tentative values. Then use the function
  207. *** check(lim) (take lim=200 for example) to check if the value is consistent
  208. *** with the value of the L-series (the value returned by check should be close
  209. *** to 1). Finally, the function fu() returns a family of units which generates
  210. *** the unit group.
  211.  
  212. 9) New platforms
  213.  
  214. *** A sparcv8.s assembler file is included for use with version 8 and higher
  215. *** sparc systems.
  216. *** An HP-PA version is now included in the sources, including a small 
  217. *** assembler file, as for the sparc versions.
  218.