Changeset 447abc in git for ntl


Ignore:
Timestamp:
Oct 16, 2007, 4:47:17 PM (17 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
f8c656fb004951aa0c1a4bb2c29b815065a61c69
Parents:
0eaaf64a76dc074505a4f63a9f556ddc5e08b19a
Message:
*hannes: NTL 5.4.1


git-svn-id: file:///usr/local/Singular/svn/trunk@10336 2c84dea3-7e68-4137-9b89-c4e89433aadc
Location:
ntl
Files:
18 edited

Legend:

Unmodified
Added
Removed
  • ntl/README

    r0eaaf6 r447abc  
    1 NTL  -- a library for doing numbery theory --  version 5.4
    2 Release date: 2005.03.25
     1NTL  -- a library for doing numbery theory --  version 5.4.1
     2Release date: 2007.05.09
    33
    44Author: Victor Shoup (victor@shoup.net)
     
    1919The latest version of NTL is available at http://www.shoup.net.
    2020
    21 The sources have been modified for Singular-2-0-7 / Singular-3-0-1
     21The sources have been modified for Singular-3-0-3
    2222- for errors blame singular@mathematik.uni-kl.de,
    2323not Victor Shoup (victor@shoup.net)
  • ntl/doc/copying.txt

    r0eaaf6 r447abc  
    33
    44NTL -- A Library for Doing Number Theory
    5 Copyright (C) 1996-2005  Victor Shoup
     5Copyright (C) 1996-2007  Victor Shoup
    66
    77The most recent version of NTL is available at http://www.shoup.net
  • ntl/doc/quad_float.txt

    r0eaaf6 r447abc  
    293293dealing with DP and similar techniques, arranged chronologically.
    294294
     295
    295296Kahan, W., Further Remarks on Reducing Truncation Errors,
    296297  {\it Comm.\ ACM\/} {\bf 8} (1965), 40.
     
    366367  addition/subtraction, gives other summation algorithms.
    367368
     369Another relevant paper:
     370
     371X. S. Li, et al.
     372Design, implementation, and testing of extended and mixed
     373precision BLAS.  ACM Trans. Math. Soft., 28:152-205, 2002.
     374
     375
     376
    368377\***********************************************************************/
    369378
  • ntl/doc/tour-changes.html

    r0eaaf6 r447abc  
    1717</p>
    1818</h1>
     19
     20<p> <hr> <p>
     21<h3>
     222007.05.09: Changes between NTL 5.4 and 5.4.1
     23</h3>
     24
     25<ul>
     26<li>
     27Fixed rounding bug in <tt>expm1</tt> (reported by Paul Zimmerman).
     28
     29<li>
     30Fixed memory leak in several LLL routines (reported by Friedrich Bahr).
     31
     32<li>
     33Fixed infinite loop in several LLL routines
     34(this only occurred on machines, like x86, with double rounding).
     35
     36<li>
     37Improved <tt>GF2X</tt> timing tests (suggested by Paul Zimmerman).
     38
     39</ul>
    1940
    2041<p> <hr> <p>
  • ntl/include/NTL/tools.h

    r0eaaf6 r447abc  
    257257
    258258void Error(const char *s);
    259 
    260 
    261259inline double GetTime() { return _ntl_GetTime(); }
    262 
    263260inline long IsFinite(double *p) { return _ntl_IsFinite(p); }
     261
     262
     263#if (NTL_EXT_DOUBLE)
    264264inline void ForceToMem(double *p) { _ntl_ForceToMem(p); }
     265#else
     266inline void ForceToMem(double *p) { }
     267#endif
    265268
    266269
  • ntl/include/NTL/version.h

    r0eaaf6 r447abc  
    33#define NTL_version__H
    44
    5 #define NTL_VERSION "5.4"
     5#define NTL_VERSION "5.4.1"
    66
    77#define NTL_MAJOR_VERSION  (5)
    88#define NTL_MINOR_VERSION  (4)
    9 #define NTL_REVISION       (0)
     9#define NTL_REVISION       (1)
    1010
    1111#endif
  • ntl/src/DoConfig

    r0eaaf6 r447abc  
    7777foreach $arg (@ARGV) {
    7878
    79    if ($arg =~ '^-h|help|-help|--help') {
     79   if ($arg =~ '-h|help|-help|--help') {
    8080      system("more ../doc/config.txt");
    8181      exit;
  • ntl/src/GF2XTimeTest.c

    r0eaaf6 r447abc  
    8181   
    8282
    83    n = 5*NTL_BITS_PER_LONG;
    84    s = 64;
     83   n = 16;
     84   s = 56;
    8585
    8686   GF2X *a = new GF2X[s];
     
    9090
    9191   for (k = 0; k < s; k++) {
    92       random(a[k], n);
    93       random(b[k], n);
     92      random(a[k], (n + (k % 7))*NTL_BITS_PER_LONG);
     93      random(b[k], (n + (k % 8))*NTL_BITS_PER_LONG);
    9494   }
    9595
     
    102102     t = GetTime();
    103103     for (i = 0; i < iter; i++) {
    104         for (j = 0; j < 50; j++) for (k = 0; k < s; k++) mul(c, a[k], b[k]);
     104        for (j = 0; j < 1; j++) for (k = 0; k < s; k++) mul(c, a[k], b[k]);
    105105     }
    106106     t = GetTime() - t;
     
    118118     t = GetTime();
    119119     for (i = 0; i < iter; i++) {
    120         for (j = 0; j < 50; j++) for (k = 0; k < s; k++) mul(c, a[k], b[k]);
     120        for (j = 0; j < 1; j++) for (k = 0; k < s; k++) mul(c, a[k], b[k]);
    121121     }
    122122     t = GetTime() - t;
  • ntl/src/G_LLL_FP.c

    r0eaaf6 r447abc  
    595595
    596596   
     597   //cerr << "G_LLL_FP: warning--relaxing reduction (" << log_red << ")\n";
     598
    597599   if (log_red < 4)
    598600      Error("G_LLL_FP: too much loss of precision...stop!");
    599601}
     602
     603
     604#if 0
     605
     606static void print_mus(double **mu, long k)
     607{
     608   long i;
     609
     610   for (i = k-1; i >= 1; i--)
     611      cerr << mu[k][i] << " ";
     612   cerr << "\n";
     613}
     614
     615#endif
    600616
    601617
     
    659675      GivensComputeGS(B1, mu, aux, k, n, cache);
    660676
     677      if (swap_cnt > 200000) {
     678         Error("G_LLL_FP: swap loop?\n");
     679         swap_cnt = 0;
     680      }
     681
    661682      counter = 0;
    662683      trigger_index = k;
     
    678699            if ((counter >> 7) == 1 || new_sz < sz) {
    679700               sz = new_sz;
     701            }
     702            else {
     703               Error( "G_LLL_FP: warning--infinite loop?\n");
    680704            }
    681705         }
     
    887911   // clean-up
    888912
    889    for (i = 1; i <= m; i++) {
     913   for (i = 1; i <= m+dep; i++) {
    890914      delete [] B1[i];
    891915   }
     
    893917   delete [] B1;
    894918
    895    for (i = 1; i <= m; i++) {
     919   for (i = 1; i <= m+dep; i++) {
    896920      delete [] mu[i];
    897921   }
     
    899923   delete [] mu;
    900924
    901    for (i = 1; i <= m; i++) {
     925   for (i = 1; i <= m+dep; i++) {
    902926      delete [] aux[i];
    903927   }
     
    915939   verbose = verb;
    916940   NumSwaps = 0;
    917    if (verbose) {
    918       StartTime = GetTime();
    919       LastTime = StartTime;
    920    }
    921941
    922942   if (delta < 0.50 || delta >= 1) Error("G_LLL_FP: bad delta");
     
    930950   verbose = verb;
    931951   NumSwaps = 0;
    932    if (verbose) {
    933       StartTime = GetTime();
    934       LastTime = StartTime;
    935    }
    936952
    937953   if (delta < 0.50 || delta >= 1) Error("G_LLL_FP: bad delta");
     
    11861202         double tt1;
    11871203
    1188          if (verb) {
    1189             tt1 = GetTime();
    1190          }
    1191 
    11921204         for (i = jj; i <= kk; i++) {
    11931205            c[i] = mu[i][i]*mu[i][i];
     
    12211233            ctilda[t] = ctilda[t+1] +
    12221234               (yvec[t]+utildavec[t])*(yvec[t]+utildavec[t])*c[t];
     1235
     1236            ForceToMem(&ctilda[t]); // prevents an infinite loop
    12231237   
    12241238            if (prune > 0 && t > jj) {
     
    12631277         }
    12641278
    1265          if (verb) {
    1266             tt1 = GetTime() - tt1;
    1267             enum_time += tt1;
    1268          }
    1269          
    12701279         NumIterations++;
    12711280   
     
    14271436   }
    14281437
    1429    for (i = 1; i <= m+1; i++) {
     1438   for (i = 1; i <= m_orig+1; i++) {
    14301439      delete [] B1[i];
    14311440   }
     
    14331442   delete [] B1;
    14341443
    1435    for (i = 1; i <= m+1; i++) {
     1444   for (i = 1; i <= m_orig+1; i++) {
    14361445      delete [] mu[i];
    14371446   }
     
    14391448   delete [] mu;
    14401449
    1441    for (i = 1; i <= m+1; i++) {
     1450   for (i = 1; i <= m_orig+1; i++) {
    14421451      delete [] aux[i];
    14431452   }
     
    14621471   verbose = verb;
    14631472   NumSwaps = 0;
    1464    if (verbose) {
    1465       StartTime = GetTime();
    1466       LastTime = StartTime;
    1467    }
    14681473
    14691474   if (delta < 0.50 || delta >= 1) Error("G_BKZ_FP: bad delta");
     
    14781483   verbose = verb;
    14791484   NumSwaps = 0;
    1480    if (verbose) {
    1481       StartTime = GetTime();
    1482       LastTime = StartTime;
    1483    }
    14841485
    14851486   if (delta < 0.50 || delta >= 1) Error("G_BKZ_FP: bad delta");
  • ntl/src/G_LLL_QP.c

    r0eaaf6 r447abc  
    609609   log_red--;
    610610
     611   //cerr << "G_LLL_QP: warning--relaxing reduction (" << log_red << ")\n";
     612
    611613   if (log_red < 4)
    612614      Error("G_LLL_QP: too much loss of precision...stop!");
     
    680682
    681683         counter++;
     684         if (counter > 10000) {
     685            Error("G_LLL_QP: warning--possible infinite loop\n");
     686            counter = 0;
     687         }
    682688
    683689
     
    891897   // clean-up
    892898
    893    for (i = 1; i <= m; i++) {
     899   for (i = 1; i <= m+dep; i++) {
    894900      delete [] B1[i];
    895901   }
     
    897903   delete [] B1;
    898904
    899    for (i = 1; i <= m; i++) {
     905   for (i = 1; i <= m+dep; i++) {
    900906      delete [] mu[i];
    901907   }
     
    903909   delete [] mu;
    904910
    905    for (i = 1; i <= m; i++) {
     911   for (i = 1; i <= m+dep; i++) {
    906912      delete [] aux[i];
    907913   }
     
    919925   verbose = verb;
    920926   NumSwaps = 0;
    921    if (verbose) {
    922       StartTime = GetTime();
    923       LastTime = StartTime;
    924    }
    925927
    926928   if (delta < 0.50 || delta >= 1) Error("G_LLL_QP: bad delta");
     
    934936   verbose = verb;
    935937   NumSwaps = 0;
    936    if (verbose) {
    937       StartTime = GetTime();
    938       LastTime = StartTime;
    939    }
    940 
    941938
    942939   if (delta < 0.50 || delta >= 1) Error("G_LLL_QP: bad delta");
     
    11881185         }
    11891186
    1190    
    11911187         // ENUM
    11921188
    11931189         double tt1;
    1194 
    1195          if (verb) {
    1196             tt1 = GetTime();
    1197          }
    11981190
    11991191         for (i = jj; i <= kk; i++) {
     
    12751267         }
    12761268
    1277          if (verb) {
    1278             tt1 = GetTime() - tt1;
    1279             enum_time += tt1;
    1280          }
    1281 
    12821269         NumIterations++;
    12831270
     
    14421429   }
    14431430
    1444    for (i = 1; i <= m+1; i++) {
     1431   for (i = 1; i <= m_orig+1; i++) {
    14451432      delete [] B1[i];
    14461433   }
     
    14481435   delete [] B1;
    14491436
    1450    for (i = 1; i <= m+1; i++) {
     1437   for (i = 1; i <= m_orig+1; i++) {
    14511438      delete [] mu[i];
    14521439   }
     
    14541441   delete [] mu;
    14551442
    1456    for (i = 1; i <= m+1; i++) {
     1443   for (i = 1; i <= m_orig+1; i++) {
    14571444      delete [] aux[i];
    14581445   }
     
    14781465   verbose = verb;
    14791466   NumSwaps = 0;
    1480    if (verbose) {
    1481       StartTime = GetTime();
    1482       LastTime = StartTime;
    1483    }
    14841467
    14851468
     
    14951478   verbose = verb;
    14961479   NumSwaps = 0;
    1497    if (verbose) {
    1498       StartTime = GetTime();
    1499       LastTime = StartTime;
    1500    }
    1501 
    1502 
    15031480
    15041481   if (delta < 0.50 || delta >= 1) Error("G_BKZ_QP: bad delta");
     
    16791656         double tt1;
    16801657
    1681          if (verb) {
    1682             tt1 = GetTime();
    1683          }
    1684 
    16851658         for (i = jj; i <= kk; i++) {
    16861659            c[i] = mu[i][i]*mu[i][i];
     
    17151688            ctilda[t] = ctilda[t+1] +
    17161689               (yvec[t]+utildavec[t])*(yvec[t]+utildavec[t])*to_double(c[t]);
     1690
     1691            ForceToMem(&ctilda[t]); // prevents an infinite loop
    17171692   
    17181693            if (prune > 0 && t > jj) {
     
    17631738         }
    17641739
    1765          if (verb) {
    1766             tt1 = GetTime() - tt1;
    1767             enum_time += tt1;
    1768          }
    1769 
    17701740         NumIterations++;
    17711741
     
    19071877
    19081878
    1909 
    19101879   // clean up
    19111880
     
    19331902   }
    19341903
    1935    for (i = 1; i <= m+1; i++) {
     1904   for (i = 1; i <= m_orig+1; i++) {
    19361905      delete [] B1[i];
    19371906   }
     
    19391908   delete [] B1;
    19401909
    1941    for (i = 1; i <= m+1; i++) {
     1910   for (i = 1; i <= m_orig+1; i++) {
    19421911      delete [] mu[i];
    19431912   }
     
    19451914   delete [] mu;
    19461915
    1947    for (i = 1; i <= m+1; i++) {
     1916   for (i = 1; i <= m_orig+1; i++) {
    19481917      delete [] aux[i];
    19491918   }
     
    19691938   verbose = verb;
    19701939   NumSwaps = 0;
    1971    if (verbose) {
    1972       StartTime = GetTime();
    1973       LastTime = StartTime;
    1974    }
    1975 
    19761940
    19771941   if (delta < 0.50 || delta >= 1) Error("G_BKZ_QP: bad delta");
     
    19861950   verbose = verb;
    19871951   NumSwaps = 0;
    1988    if (verbose) {
    1989       StartTime = GetTime();
    1990       LastTime = StartTime;
    1991    }
    1992 
    1993 
    19941952
    19951953   if (delta < 0.50 || delta >= 1) Error("G_BKZ_QP: bad delta");
  • ntl/src/G_LLL_RR.c

    r0eaaf6 r447abc  
    406406   log_red--;
    407407
    408    cerr << "G_LLL_RR: warning--relaxing reduction (" << log_red << ")\n";
     408   //cerr << "G_LLL_RR: warning--relaxing reduction (" << log_red << ")\n";
    409409
    410410   if (log_red < 4)
     
    474474         counter++;
    475475         if (counter > 10000) {
    476             cerr << "G_LLL_XD: warning--possible infinite loop\n";
     476            Error("G_LLL_XD: warning--possible infinite loop\n");
    477477            counter = 0;
    478478         }
     
    669669   verbose = verb;
    670670   NumSwaps = 0;
    671    if (verbose) {
    672       StartTime = GetTime();
    673       LastTime = StartTime;
    674    }
    675671
    676672   if (delta < 0.50 || delta >= 1) Error("G_LLL_RR: bad delta");
     
    686682   verbose = verb;
    687683   NumSwaps = 0;
    688    if (verbose) {
    689       StartTime = GetTime();
    690       LastTime = StartTime;
    691    }
    692684
    693685   if (delta < 0.50 || delta >= 1) Error("G_LLL_RR: bad delta");
     
    915907
    916908         double tt1;
    917 
    918          if (verb) {
    919             tt1 = GetTime();
    920          }
    921909
    922910         for (i = jj; i <= kk; i++)
     
    1011999         }
    10121000         
    1013          if (verb) {
    1014             tt1 = GetTime() - tt1;
    1015             enum_time += tt1;
    1016          }
    1017 
    10181001         NumIterations++;
    10191002   
     
    11841167   verbose = verb;
    11851168   NumSwaps = 0;
    1186    if (verbose) {
    1187       StartTime = GetTime();
    1188       LastTime = StartTime;
    1189    }
    11901169
    11911170   if (delta < 0.50 || delta >= 1) Error("G_BKZ_RR: bad delta");
     
    12031182   verbose = verb;
    12041183   NumSwaps = 0;
    1205    if (verbose) {
    1206       StartTime = GetTime();
    1207       LastTime = StartTime;
    1208    }
    12091184
    12101185   if (delta < 0.50 || delta >= 1) Error("G_BKZ_RR: bad delta");
  • ntl/src/G_LLL_XD.c

    r0eaaf6 r447abc  
    375375   log_red--;
    376376
     377   //cerr << "G_LLL_XD: warning--relaxing reduction (" << log_red << ")\n";
     378
    377379   if (log_red < 4)
    378380      Error("G_LLL_XD: can not continue...sorry");
     
    441443
    442444         counter++;
     445         if (counter > 10000) {
     446            Error("G_LLL_XD: warning--possible infinite loop\n");
     447            counter = 0;
     448         }
     449
    443450
    444451         Fc1 = 0;
     
    641648   // clean-up
    642649
    643    for (i = 1; i <= m; i++) {
     650   for (i = 1; i <= m+dep; i++) {
    644651      delete [] B1[i];
    645652   }
     
    647654   delete [] B1;
    648655
    649    for (i = 1; i <= m; i++) {
     656   for (i = 1; i <= m+dep; i++) {
    650657      delete [] mu[i];
    651658   }
     
    653660   delete [] mu;
    654661
    655    for (i = 1; i <= m; i++) {
     662   for (i = 1; i <= m+dep; i++) {
    656663      delete [] aux[i];
    657664   }
     
    669676   verbose = verb;
    670677   NumSwaps = 0;
    671    if (verbose) {
    672       StartTime = GetTime();
    673       LastTime = StartTime;
    674    }
    675678
    676679   if (delta < 0.50 || delta >= 1) Error("G_LLL_XD: bad delta");
     
    684687   verbose = verb;
    685688   NumSwaps = 0;
    686    if (verbose) {
    687       StartTime = GetTime();
    688       LastTime = StartTime;
    689    }
    690 
    691689
    692690   if (delta < 0.50 || delta >= 1) Error("G_LLL_XD: bad delta");
     
    940938
    941939         double tt1;
    942 
    943          if (verb) {
    944             tt1 = GetTime();
    945          }
    946940
    947941         for (i = jj; i <= kk; i++)
     
    10201014         }
    10211015         
    1022          if (verb) {
    1023             tt1 = GetTime() - tt1;
    1024             enum_time += tt1;
    1025          }
    1026 
    10271016         NumIterations++;
    10281017
     
    11821171   }
    11831172
    1184    for (i = 1; i <= m+1; i++) {
     1173   for (i = 1; i <= m_orig+1; i++) {
    11851174      delete [] B1[i];
    11861175   }
     
    11881177   delete [] B1;
    11891178
    1190    for (i = 1; i <= m+1; i++) {
     1179   for (i = 1; i <= m_orig+1; i++) {
    11911180      delete [] mu[i];
    11921181   }
     
    11941183   delete [] mu;
    11951184
    1196    for (i = 1; i <= m+1; i++) {
     1185   for (i = 1; i <= m_orig+1; i++) {
    11971186      delete [] aux[i];
    11981187   }
     
    12181207   verbose = verb;
    12191208   NumSwaps = 0;
    1220    if (verbose) {
    1221       StartTime = GetTime();
    1222       LastTime = StartTime;
    1223    }
    1224 
    12251209
    12261210   if (delta < 0.50 || delta >= 1) Error("G_BKZ_XD: bad delta");
     
    12351219   verbose = verb;
    12361220   NumSwaps = 0;
    1237    if (verbose) {
    1238       StartTime = GetTime();
    1239       LastTime = StartTime;
    1240    }
    1241 
    1242 
    12431221
    12441222   if (delta < 0.50 || delta >= 1) Error("G_BKZ_XD: bad delta");
  • ntl/src/LLL_FP.c

    r0eaaf6 r447abc  
    419419static long verbose = 0;
    420420
     421double LLLStatusInterval = 900.0;
    421422char *LLLDumpFile = 0;
    422423
     
    446447
    447448   
     449   //cerr << "LLL_FP: warning--relaxing reduction (" << log_red << ")\n";
     450
    448451   if (log_red < 4)
    449452      Error("LLL_FP: too much loss of precision...stop!");
    450453}
    451454
     455
     456#if 0
     457
     458static void print_mus(double **mu, long k)
     459{
     460   long i;
     461
     462   for (i = k-1; i >= 1; i--)
     463      cerr << mu[k][i] << " ";
     464   cerr << "\n";
     465}
     466
     467#endif
    452468
    453469void ComputeGS(const mat_ZZ& B, mat_RR& B1,
     
    466482   double tt;
    467483
     484   //cerr << "LLL_FP: RR refresh " << rr_st << "..." << k << "...";
    468485   tt = GetTime();
    469486
     
    534551   tt = GetTime()-tt;
    535552   RR_GS_time += tt;
     553   //cerr << tt << " (" << RR_GS_time << ")\n";
    536554}
    537555
     
    686704
    687705      if (swap_cnt > 200000) {
     706         Error("LLL_FP: swap loop?\n");
    688707         RR_GS(B, B1, mu, b, c, buf, prec,
    689708               rr_st, k, m_orig, rr_B1, rr_mu, rr_b, rr_c);
     
    717736            if ((counter >> 7) == 1 || new_sz < sz) {
    718737               sz = new_sz;
     738            }
     739            else {
     740               Error("LLL_FP: warning--infinite loop?\n");
    719741            }
    720742         }
     
    9901012   // clean-up
    9911013
    992    for (i = 1; i <= m; i++) {
     1014   for (i = 1; i <= m+dep; i++) {
    9931015      delete [] B1[i];
    9941016   }
     
    9961018   delete [] B1;
    9971019
    998    for (i = 1; i <= m; i++) {
     1020   for (i = 1; i <= m+dep; i++) {
    9991021      delete [] mu[i];
    10001022   }
     
    10171039   RR_GS_time = 0;
    10181040   NumSwaps = 0;
    1019    if (verbose) {
    1020       StartTime = GetTime();
    1021       LastTime = StartTime;
    1022    }
    10231041
    10241042   if (delta < 0.50 || delta >= 1) Error("LLL_FP: bad delta");
     
    10331051   RR_GS_time = 0;
    10341052   NumSwaps = 0;
    1035    if (verbose) {
    1036       StartTime = GetTime();
    1037       LastTime = StartTime;
    1038    }
    10391053
    10401054   if (delta < 0.50 || delta >= 1) Error("LLL_FP: bad delta");
     
    12901304         double tt1;
    12911305
    1292          if (verb) {
    1293             tt1 = GetTime();
    1294          }
    1295 
    1296 
    12971306         if (prune > 0)
    12981307            ComputeBKZThresh(&c[jj], kk-jj+1);
     
    13221331            ctilda[t] = ctilda[t+1] +
    13231332               (yvec[t]+utildavec[t])*(yvec[t]+utildavec[t])*c[t];
     1333
     1334            ForceToMem(&ctilda[t]);  // prevents an infinite loop
    13241335   
    13251336            if (prune > 0 && t > jj) {
     
    13641375         }
    13651376
    1366          if (verb) {
    1367             tt1 = GetTime() - tt1;
    1368             enum_time += tt1;
    1369          }
    1370          
    13711377         NumIterations++;
    13721378   
     
    15331539   }
    15341540
    1535    for (i = 1; i <= m+1; i++) {
     1541   for (i = 1; i <= m_orig+1; i++) {
    15361542      delete [] B1[i];
    15371543   }
     
    15391545   delete [] B1;
    15401546
    1541    for (i = 1; i <= m+1; i++) {
     1547   for (i = 1; i <= m_orig+1; i++) {
    15421548      delete [] mu[i];
    15431549   }
     
    15641570   RR_GS_time = 0;
    15651571   NumSwaps = 0;
    1566    if (verbose) {
    1567       StartTime = GetTime();
    1568       LastTime = StartTime;
    1569    }
    15701572
    15711573   if (delta < 0.50 || delta >= 1) Error("BKZ_FP: bad delta");
     
    15811583   RR_GS_time = 0;
    15821584   NumSwaps = 0;
    1583    if (verbose) {
    1584       StartTime = GetTime();
    1585       LastTime = StartTime;
    1586    }
    15871585
    15881586   if (delta < 0.50 || delta >= 1) Error("BKZ_FP: bad delta");
  • ntl/src/LLL_QP.c

    r0eaaf6 r447abc  
    448448   log_red--;
    449449
     450   //cerr << "LLL_QP: warning--relaxing reduction (" << log_red << ")\n";
     451
    450452   if (log_red < 4)
    451453      Error("LLL_QP: too much loss of precision...stop!");
     
    556558         counter++;
    557559         if (counter > 10000) {
     560            Error("LLL_QP: warning--possible infinite loop\n");
    558561            counter = 0;
    559562         }
     
    799802   // clean-up
    800803
    801    for (i = 1; i <= m; i++) {
     804   for (i = 1; i <= m+dep; i++) {
    802805      delete [] B1[i];
    803806   }
     
    805808   delete [] B1;
    806809
    807    for (i = 1; i <= m; i++) {
     810   for (i = 1; i <= m+dep; i++) {
    808811      delete [] mu[i];
    809812   }
     
    825828   verbose = verb;
    826829   NumSwaps = 0;
    827    if (verbose) {
    828       StartTime = GetTime();
    829       LastTime = StartTime;
    830    }
    831830
    832831   if (delta < 0.50 || delta >= 1) Error("LLL_QP: bad delta");
     
    840839   verbose = verb;
    841840   NumSwaps = 0;
    842    if (verbose) {
    843       StartTime = GetTime();
    844       LastTime = StartTime;
    845    }
    846 
    847841
    848842   if (delta < 0.50 || delta >= 1) Error("LLL_QP: bad delta");
     
    11001094
    11011095         double tt1;
    1102 
    1103          if (verb) {
    1104             tt1 = GetTime();
    1105          }
    1106 
    11071096
    11081097         if (prune > 0)
     
    11771166               utildavec[t] = vvec[t] + Deltavec[t];
    11781167            }
    1179          }
    1180 
    1181          if (verb) {
    1182             tt1 = GetTime() - tt1;
    1183             enum_time += tt1;
    11841168         }
    11851169
     
    13501334   }
    13511335
    1352    for (i = 1; i <= m+1; i++) {
     1336   for (i = 1; i <= m_orig+1; i++) {
    13531337      delete [] B1[i];
    13541338   }
     
    13561340   delete [] B1;
    13571341
    1358    for (i = 1; i <= m+1; i++) {
     1342   for (i = 1; i <= m_orig+1; i++) {
    13591343      delete [] mu[i];
    13601344   }
     
    13811365   verbose = verb;
    13821366   NumSwaps = 0;
    1383    if (verbose) {
    1384       StartTime = GetTime();
    1385       LastTime = StartTime;
    1386    }
    1387 
    13881367
    13891368   if (delta < 0.50 || delta >= 1) Error("BKZ_QP: bad delta");
     
    13981377   verbose = verb;
    13991378   NumSwaps = 0;
    1400    if (verbose) {
    1401       StartTime = GetTime();
    1402       LastTime = StartTime;
    1403    }
    1404 
    1405 
    14061379
    14071380   if (delta < 0.50 || delta >= 1) Error("BKZ_QP: bad delta");
     
    15781551         }
    15791552
     1553   
    15801554         // ENUM
    15811555
    15821556         double tt1;
    1583 
    1584          if (verb) {
    1585             tt1 = GetTime();
    1586          }
    1587 
    15881557
    15891558         if (prune > 0)
     
    16141583            ctilda[t] = ctilda[t+1] +
    16151584               (yvec[t]+utildavec[t])*(yvec[t]+utildavec[t])*to_double(c[t]);
     1585
     1586            ForceToMem(&ctilda[t]);  // prevents an infinite loop
    16161587   
    16171588            if (prune > 0 && t > jj) {
     
    16601631               utildavec[t] = vvec[t] + Deltavec[t];
    16611632            }
    1662          }
    1663 
    1664          if (verb) {
    1665             tt1 = GetTime() - tt1;
    1666             enum_time += tt1;
    16671633         }
    16681634
     
    18351801   }
    18361802
    1837    for (i = 1; i <= m+1; i++) {
     1803   for (i = 1; i <= m_orig+1; i++) {
    18381804      delete [] B1[i];
    18391805   }
     
    18411807   delete [] B1;
    18421808
    1843    for (i = 1; i <= m+1; i++) {
     1809   for (i = 1; i <= m_orig+1; i++) {
    18441810      delete [] mu[i];
    18451811   }
     
    18661832   verbose = verb;
    18671833   NumSwaps = 0;
    1868    if (verbose) {
    1869       StartTime = GetTime();
    1870       LastTime = StartTime;
    1871    }
    1872 
    18731834
    18741835   if (delta < 0.50 || delta >= 1) Error("BKZ_QP: bad delta");
     
    18831844   verbose = verb;
    18841845   NumSwaps = 0;
    1885    if (verbose) {
    1886       StartTime = GetTime();
    1887       LastTime = StartTime;
    1888    }
    1889 
    1890 
    18911846
    18921847   if (delta < 0.50 || delta >= 1) Error("BKZ_QP: bad delta");
  • ntl/src/LLL_RR.c

    r0eaaf6 r447abc  
    177177   log_red--;
    178178
     179   //cerr << "LLL_RR: warning--relaxing reduction (" << log_red << ")\n";
     180
    179181   if (log_red < 4)
    180182      Error("LLL_RR: can not continue...sorry");
     
    272274
    273275         counter++;
     276         if (counter > 10000) {
     277            Error("LLL_XD: warning--possible infinite loop\n");
     278            counter = 0;
     279         }
     280
    274281
    275282         Fc1 = 0;
     
    493500   verbose = verb;
    494501   NumSwaps = 0;
    495    if (verbose) {
    496       StartTime = GetTime();
    497       LastTime = StartTime;
    498    }
    499502
    500503   if (delta < 0.50 || delta >= 1) Error("LLL_RR: bad delta");
     
    510513   verbose = verb;
    511514   NumSwaps = 0;
    512    if (verbose) {
    513       StartTime = GetTime();
    514       LastTime = StartTime;
    515    }
    516515
    517516   if (delta < 0.50 || delta >= 1) Error("LLL_RR: bad delta");
     
    741740
    742741         double tt1;
    743 
    744          if (verb) {
    745             tt1 = GetTime();
    746          }
    747742
    748743         if (prune > 0)
     
    833828         }
    834829         
    835          if (verb) {
    836             tt1 = GetTime() - tt1;
    837             enum_time += tt1;
    838          }
    839 
    840830         NumIterations++;
    841831   
     
    977967   }
    978968
    979 
    980969   // clean up
    981970
     
    1010999   verbose = verb;
    10111000   NumSwaps = 0;
    1012    if (verbose) {
    1013       StartTime = GetTime();
    1014       LastTime = StartTime;
    1015    }
    10161001
    10171002   if (delta < 0.50 || delta >= 1) Error("BKZ_RR: bad delta");
     
    10291014   verbose = verb;
    10301015   NumSwaps = 0;
    1031    if (verbose) {
    1032       StartTime = GetTime();
    1033       LastTime = StartTime;
    1034    }
    10351016
    10361017   if (delta < 0.50 || delta >= 1) Error("BKZ_RR: bad delta");
  • ntl/src/LLL_XD.c

    r0eaaf6 r447abc  
    198198   log_red--;
    199199
     200   //cerr << "LLL_XD: warning--relaxing reduction (" << log_red << ")\n";
     201
    200202   if (log_red < 4)
    201203      Error("LLL_XD: can not continue...sorry");
     
    300302         counter++;
    301303         if (counter > 10000) {
     304            cerr << "LLL_XD: warning--possible infinite loop\n";
    302305            counter = 0;
    303306         }
     
    530533   // clean-up
    531534
    532    for (i = 1; i <= m; i++) {
     535   for (i = 1; i <= m+dep; i++) {
    533536      delete [] B1[i];
    534537   }
     
    536539   delete [] B1;
    537540
    538    for (i = 1; i <= m; i++) {
     541   for (i = 1; i <= m+dep; i++) {
    539542      delete [] mu[i];
    540543   }
     
    556559   verbose = verb;
    557560   NumSwaps = 0;
     561   if (verbose) {
     562      StartTime = GetTime();
     563      LastTime = StartTime;
     564   }
    558565
    559566   if (delta < 0.50 || delta >= 1) Error("LLL_XD: bad delta");
     
    816823
    817824         double tt1;
    818 
    819          if (verb) {
    820             tt1 = GetTime();
    821          }
    822825
    823826         if (prune > 0)
     
    893896         }
    894897         
    895          if (verb) {
    896             tt1 = GetTime() - tt1;
    897             enum_time += tt1;
    898          }
    899 
    900898         NumIterations++;
    901899
     
    10571055   }
    10581056
    1059    for (i = 1; i <= m+1; i++) {
     1057   for (i = 1; i <= m_orig+1; i++) {
    10601058      delete [] B1[i];
    10611059   }
     
    10631061   delete [] B1;
    10641062
    1065    for (i = 1; i <= m+1; i++) {
     1063   for (i = 1; i <= m_orig+1; i++) {
    10661064      delete [] mu[i];
    10671065   }
     
    10891087   NumSwaps = 0;
    10901088
    1091 
    10921089   if (delta < 0.50 || delta >= 1) Error("BKZ_XD: bad delta");
    10931090   if (beta < 2) Error("BKZ_XD: bad block size");
     
    11021099   NumSwaps = 0;
    11031100
    1104 
    11051101   if (delta < 0.50 || delta >= 1) Error("BKZ_XD: bad delta");
    11061102   if (beta < 2) Error("BKZ_XD: bad block size");
  • ntl/src/def_makefile

    r0eaaf6 r447abc  
    437437
    438438
    439 DIRNAME=ntl-5.4
    440 WINDIR=WinNTL-5_4
     439DIRNAME=ntl-5.4.1
     440WINDIR=WinNTL-5_4_1
    441441
    442442package:
  • ntl/src/mfile

    r0eaaf6 r447abc  
    437437
    438438
    439 DIRNAME=ntl-5.4
    440 WINDIR=WinNTL-5_4
     439DIRNAME=ntl-5.4.1
     440WINDIR=WinNTL-5_4_1
    441441
    442442package:
Note: See TracChangeset for help on using the changeset viewer.