⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bugfixes and updates to calc.htm

📁 calc大数库
💻 HTM
📖 第 1 页 / 共 3 页
字号:
  <TT>nfunc.c</TT>. (I had freed W a few lines too soon!) MSDOS version not yet 
  fixed. 
  <LI>29th June 1999. Added the choice of finding <EM>all</EM> shortest 
  solutions to <TT>axb()</TT>. 
  <LI>17th May 1999. Added <TT>power_cubicm()</TT> ( the kth power of (X,Y) on 
  an elliptic curve over Z<SUB>p</SUB>), <TT>order_cubicr()</TT> and 
  <TT>order_cubicm()</TT>, which find the order of a point P on an elliptic 
  curve over the rationals and Z<SUB>p</SUB>, respectively. The latter is not 
  sophisticated and simply tests each iterate kP for k=2,... calc.exe has still 
  not been updated since 4th Feb. 
  <LI>21st March 1999. Removed a bug at the end of collatz.c. I had freed the 
  arrays m[] by carelessly first freeing the pointer to m and then the actual 
  m[i]!. Similarly for X[]. (The bug was passed by solaris, but linux was 
  unforgiving and dumped a core.) 
  <LI>15th March 1999. Added <TT>cycle()</TT> a cycle finding program for the 
  generalised collatz function. (see <A 
  href="http://www.numbertheory.org/pdfs/survey.pdf">survey</A> (pdf)). 
  <LI>4th February 1999. Added some hidden stuff on my gcd research for use by 
  fellow researchers, but of no interest to the average calc user. 
  <LI>20th January 1999. Added a shortest lattice vector program <A 
  href="http://www.numbertheory.org/calc/krm_calc.html#[42]"><TT>slv</TT></A>(). 

  <LI>19th January 1999. cosmetic changes to the output of <TT>fp</TT>() and 
  <TT>inhomfp</TT>(). 
  <LI>18th January 1999. Updated calc.tar.gz and calc.exe.gz. I improved 
  functions <TT>egcd</TT>(), <TT>lllgcd</TT>() and <TT>lllgcd0</TT>(), making it 
  easier to get a complete list of all shortest multipliers. I also added an 
  option to <TT>factor</TT>(n) whereby one can enter the number of elliptic 
  curves used. I removed the function short() as it is no longer needed. 
  <LI>18th November 1998. Updated calc.tar.gz. Fixed a bug in i5m.c in FFM, line 
  763. The elements c[i] may be ≥ 2<SUP>16</SUP>, so SHIFTLB() cannot be used. 
  In any case I don't use FFM as my implementation seems slow. Anyone who wishes 
  to use it should uncomment the relevant code in MULTI() in i1.c. Also I am 
  unable to free the temporary arrays B and C in FFT because of the way the 
  recursion acts; consequently there is a buildup of nettbytes. Any suggestions 
  on this score are welcome.<BR>
  <LI>4th January 1999. Now allow the user to enter arbitrary m1 and n1, as 
  mentioned previously. 
  <LI>30th December 1998. Realized I'd forgotten to warn users of LLL-based 
  programs that m1 and n1 are less than 2<SUP>16</SUP>. I will render this 
  warning unnecessary in the near future. My misuse of this in <TT>lllgcd</TT>() 
  provided a counter-example in paper HMM, with m1/n1=100001/400000, which was 
  in fact not a counter-example after all. (100001&gt;655536.) 
  <LI>27th November 1998. The above bug seems to disappear when I compile with 
  the -O2 option instead of -O3. 
  <LI>21st November 1998. On factorizing (10<SUP>65</SUP>-1)/9, calc hung in 
  mpqsieve.c. This turned out to be due to not observing that 100000 is not less 
  than 2<SUP>16</SUP>. This caused a problem on line 116 with INT0_, which is 
  solved by introducing srange=CHANGE(SRANGE) and then using INT0 instead of 
  INT0_. There is one bug which continues to elude me. When I factorize numbers 
  of greater than 50 digits invoking MPQS1, while the factoring processs runs to 
  completion, one cannot always quit gracefully and also cannot continue using 
  calc. Thus one has to kill calc on a UNIX machine, for example. This is 
  unsatisfactory. The problem is clearly to do with freeing and I had hoped the 
  error lay in the 1000000 bug discovered above. But apparently not. The code is 
  so complicated and the bug only manifests itself after 3 hours running on an 
  Ultra Sparc machine that it seems impossible at the moment for me to detect. 
  If any enthusiast out there has any ideas, please let me know. One example 
  where I think it hung was in factorising the 65 digit prime formed from 64 1's 
  with a 4 in the middle. 
  <LI>20th August 1998. removed the changes just made. Did make changes to 
  nfunc.c, i9.c, fun.h, as regards SMITHI and SMITHI1. 
  <LI>15th August 1998. Updated calc.tar.gz, because of introduction of verbose 
  mode in SMITH() in nfunc.c and i9.c. (Changes made to fun.h well.) 
  <LI>9th August 1998. Fixed a small bug in lllhermi.c, where lines 38-39 should 
  have been part of the body of the <TT>if(!keith97)</TT>. Also updated 
  calc.exe.gz. 
  <LI>6th August 1998. Fixed a small bug in axb(), whereby -X was returned 
  instead of X at times. 
  <LI>5th August 1998. Added a new function <TT>axb</TT>(), which solves the 
  linear system AX=B, where A,X,B have integer coefficients. 
  <LI>19th June 1998. Updated calc.exe.gz. 
  <LI>10th June 1998. Deleted lines 468-469 of elliptic.c, (ie, FREEMPI(P); and 
  FREEMPI(tmp); to avoid double freeing. Also changed j &gt; 100 to j &gt; 5 at 
  line 374. Also made a slight improvement to BRENT_POLLARD as regards 
  increasing a. calc.exe will be similarly updated soon. 
  <LI>13th May 1998. Updated calc.exe.gz. 
  <LI>9th May 1998. The only change being in mpqsieve.c, line 75, where I now 
  use FBASE = 3000; SRANGE = 180000; TOLERANCE = 22; This enabled me to 
  factorise 10<SUP>103</SUP>+1 overnight, the stumbling block hitherto being a 
  61 digit number.<BR>10<SUP>103</SUP>+1= 
  11*1237*44092859*984385009*102860539*612053256358933*<BR>182725114866521155647161*1471865453993855302660887614137521979 

  <LI>3rd March 1998. Updated calc.exe.gz in case my absentmindedness had 
  extended to calc.exe. 
  <LI>26th February 1998. I had absentmindedly not updated all the relevant 
  source files on 10th February. This has been fixed and calc.tar.gz updated. 
  <LI>11th February 1998. Updated calc.exe.gz. 
  <LI>10th February 1998. Rewrote <TT>POLLARD()</TT>. Removed segmentation error 
  and hanging problems arising from returning (MPI *)NULL from various functions 
  such as <TT>POLLARD</TT>, by altering parse.y and symbol.c at a few places, 
  not using <TT>FREEMPI(N)</TT> and <TT>COPYI(N)</TT> when N = 
  NULL.<BR><TT>pollard()</TT> and <TT>perfectpower</TT> added to list of defined 
  functions.<BR>
  <LI>5th February 1998. Removed the array R[1280] from inside 
  <TT>EFACTOR()</TT> and placed it in a separate file primepowers.h. This now 
  makes elliptic.o compile much quicker.<BR>Also created a new function 
  <TT>elliptic(n,m,p)</TT> to factor n using the elliptic curve method.<BR>
  <LI>2nd February 1998. Updated calc.exe.gz. 
  <LI>29th January 1998. Alex Balfour pointed out that factoring 
  10<SUP>100</SUP>+1 gave rise to rubbish. The cause turned out to be five 
  global arrays Q_[50], Q[50]; Q_PRIME[50]; K_[50], K[50] in 
  primes1.c.<BR>Replacing 50 by 100 solves the problem. This bug will be fixed 
  soon. I have also increased the Brent-Pollard step number from 2048 to 8192. 
  <LI>19th December 1997. I changed <TT>lagrange(a,n,m)</TT> to 
  <TT>lagrange(a,&amp;aa[],n,m)</TT>. Also changed 
  <TT>convergents(a,n,&amp;p,&amp;q)</TT> to 
  <TT>convergents(a,&amp;p[],&amp;q[],n)</TT>. Also changed the meaning of n in 
  <TT>euclid(a,b,&amp;c[],&amp;n)</TT>, so as to be consistent with its usage in 
  convergents and lagrange. 
  <LI>18th December 1997. Also at the request of Edward Brisse, I added 
  <TT>lagrange(a,n,m)</TT>. 
  <LI>15th December 1997. At the request of Edward Brisse, I added 
  <TT>euclid(a,b,&amp;c[],&amp;n)</TT> and 
  <TT>convergents(a,n,&amp;p,&amp;q)</TT>. 
  <LI>4th December 1997. Changed <TT>collatz(x)</TT> to <TT>collatz(x,e)</TT> 
  and <TT>pell(d,&amp;x,&amp;y)</TT> to <TT>pell(d,e,&amp;x,&amp;y)</TT>, so 
  that iterates and partial quotients (respectively) are printed iff e is non 
  zero. 
  <LI>2nd December 1997. Oops - I somehow did not comment out the call to ffm 
  inthe MSDOS version of calc, as stated on 30th July 1997. 
  <LI>10th October 1997. Updated the MSDOS executable. 
  <LI>9th October 1997. Oops! I noticed I had absentmindedly left some print 
  statements in lllgcd.c in <TT>LLLGCD()</TT> lines 89-123 which only pertained 
  to the gcd of 3 integers, causing a problem in verbose mode for other than 3 
  integers. Fixed the source and the SUN executable. 
  <LI>24th September 1997. Upgraded the SUN executable and file primes1.c by 
  adding <TT>PERFECT_POWER(N)</TT>. This is employed in <TT>BIG_FACTOR(N)</TT> 
  to return X if N=X<SUP>p</SUP>. A corresponding declaration was added to 
  fun.h. (Many thanks to Lew Baxter for pointing out that calc was not factoring 
  a perfect power.) 
  <LI>30th July 1997. Upgraded the SUN and MSDOS executables on alphasun as the 
  Fast Fourier Transform has a subtle bug. Consequently multiplication of very 
  large numbers is now done using the brute force method. 
  <LI>8th March 1997. Changed <TT>lllhermite1()</TT> to <TT>lllhermite()</TT>. 
  This is the current LLL-based Hermite normal form algorithm as described off 
  my homepage via notes.html. 
  <LI>27th February 1997. Replaced the previous LLL based Hermite normal form 
  algorithm in SUN version on alphasun by an aesthetically more satisfying 
  version. 
  <LI>20th February 1997. Included LLL based Hermite normal form algorithm in 
  SUN version on alphasun. 
  <LI>7th February 1997. Added a <A 
  href="http://www.numbertheory.org/calc/calc_doc.html">list of CALC 
  functions</A> that a programmer might wish to use. 
  <LI>18th September 1996. Modified <TT>sgcd()</TT> to <TT>sgcd(N)</TT> in 
  private version 
  <LI>23rd April 1996. <TT>gcda(x,n)</TT> was actually calculating the lcm. I 
  also fixed a serious corruption of data was occurring in some functions using 
  <TT>FACTOR()</TT> such as <TT>orderm()</TT> and <TT>lprimroot()</TT>. <BR>(I 
  was freeing stuff that had already been freed.) 
  <LI>9th February 1996. Updated Sun version at alphasun (runs faster-compiled 
  with the O2 option. 
  <LI>7th December 1995. Updated MSDOS version at alphasun.<BR>Improved 
  <TT>BRENT_POLLARD()</TT> doing something I should have done initially - ie. 
  only computed gcd's of every accumulated 10th product.<BR>Also now bring in 
  the elliptic curve algorithm after 65 digits. 
  <LI>6th December 1995. Removed a bug in jacobi(n,m) which only came into 
  effect when n &lt; 0. 
  <LI>5th November 1995: Removed a small error in <TT>fund(d)</TT> when d=t^2+1, 
  t odd. Also removed a small bug in <TT>pell()</TT> resulting from using the 
  same name pell in init.c for two functions. 
  <LI>10th October 1995: Added <TT>addcubicr()</TT> and <TT>powercubicr()</TT>. 
  <LI>23rd July 1995: I fixed a bug in improvep() which only came into effect if 
  rank(A)=number of rows of A. 
  <LI>11th June 1995: I noticed <TT>calc</TT> was not factoring 2^135+1- a 
  trivial example. I increased the range of Brent-Pollard and the factor base in 
  MPQS for numbers of &lt; 20 digits. I also added an elliptic curve 
  factorization algorithm in case MPQS yields nothing. 
  <LI>28th May 1995: Removed a small error in <TT>fund(d)</TT> when d=t^2+4. 
  </LI></UL></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -