source: git/ntl/src/LLLTest.c @ 6ce030f

spielwiese
Last change on this file since 6ce030f was 2cfffe, checked in by Hans Schönemann <hannes@…>, 21 years ago
This commit was generated by cvs2svn to compensate for changes in r6316, which included commits to RCS files with non-trunk default branches. git-svn-id: file:///usr/local/Singular/svn/trunk@6317 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 2.7 KB
Line 
1
2#include <NTL/LLL.h>
3
4NTL_CLIENT
5
6int main()
7{
8   mat_ZZ B;
9   long s;
10
11#if 1
12   cin >> B;
13#else
14   long i, j;
15   long n;
16   cerr << "n: ";
17   cin >> n;
18
19   long m;
20   cerr << "m: ";
21   cin >> m;
22
23   long k;
24   cerr << "k: ";
25   cin >> k;
26
27   B.SetDims(n, m);
28   for (i = 1; i <= n; i++)
29      for (j = 1; j <= m; j++) {
30         RandomLen(B(i,j), k);
31         if (RandomBnd(2)) negate(B(i,j), B(i,j));
32      }
33
34
35#endif
36
37   mat_ZZ U, B0, B1, B2;
38
39   B0 = B;
40
41   double t;
42   ZZ d;
43
44   B = B0;
45   cerr << "LLL_FP...";
46   t = GetTime();
47   s = LLL_FP(B, U, 0.99);
48   cerr << (GetTime()-t) << "\n";
49   mul(B1, U, B0);
50   if (B1 != B) Error("bad LLLTest (1)");
51   LLL(d, B, 90, 100);
52   if (B1 != B) Error("bad LLLTest (2)");
53
54   B = B0;
55   cerr << "LLL_QP...";
56   t = GetTime();
57   s = LLL_QP(B, U, 0.99);
58   cerr << (GetTime()-t) << "\n";
59   mul(B1, U, B0);
60   if (B1 != B) Error("bad LLLTest (1)");
61   LLL(d, B, 90, 100);
62   if (B1 != B) Error("bad LLLTest (2)");
63
64
65   B = B0;
66   cerr << "LLL_XD...";
67   t = GetTime();
68   s = LLL_XD(B, U, 0.99);
69   cerr << (GetTime()-t) << "\n";
70   mul(B1, U, B0);
71   if (B1 != B) Error("bad LLLTest (1)");
72   LLL(d, B, 90, 100);
73   if (B1 != B) Error("bad LLLTest (2)");
74
75   B = B0;
76   cerr << "LLL_RR...";
77   t = GetTime();
78   s = LLL_RR(B, U, 0.99);
79   cerr << (GetTime()-t) << "\n";
80   mul(B1, U, B0);
81   if (B1 != B) Error("bad LLLTest (1)");
82   LLL(d, B, 90, 100);
83   if (B1 != B) Error("bad LLLTest (2)");
84
85   B = B0;
86   cerr << "G_LLL_FP...";
87   t = GetTime();
88   s = G_LLL_FP(B, U, 0.99);
89   cerr << (GetTime()-t) << "\n";
90   mul(B1, U, B0);
91   if (B1 != B) Error("bad LLLTest (1)");
92   LLL(d, B, 90, 100);
93   if (B1 != B) Error("bad LLLTest (2)");
94
95   B = B0;
96   cerr << "G_LLL_QP...";
97   t = GetTime();
98   s = G_LLL_QP(B, U, 0.99);
99   cerr << (GetTime()-t) << "\n";
100   mul(B1, U, B0);
101   if (B1 != B) Error("bad LLLTest (1)");
102   LLL(d, B, 90, 100);
103   if (B1 != B) Error("bad LLLTest (2)");
104
105   B = B0;
106   cerr << "G_LLL_XD...";
107   t = GetTime();
108   s = G_LLL_XD(B, U, 0.99);
109   cerr << (GetTime()-t) << "\n";
110   mul(B1, U, B0);
111   if (B1 != B) Error("bad LLLTest (1)");
112   LLL(d, B, 90, 100);
113   if (B1 != B) Error("bad LLLTest (2)");
114
115   B = B0;
116   cerr << "G_LLL_RR...";
117   t = GetTime();
118   s = G_LLL_RR(B, U, 0.99);
119   cerr << (GetTime()-t) << "\n";
120   mul(B1, U, B0);
121   if (B1 != B) Error("bad LLLTest (1)");
122   LLL(d, B, 90, 100);
123   if (B1 != B) Error("bad LLLTest (2)");
124
125
126   B = B0;
127   cerr << "LLL...";
128   t = GetTime();
129   s = LLL(d, B, U);
130   cerr << (GetTime()-t) << "\n";
131   mul(B1, U, B0);
132   if (B1 != B) Error("bad LLLTest (1)");
133
134   cout << "rank = " << s << "\n";
135   cout << "det = " << d << "\n";
136   cout << "B = " << B << "\n";
137   cout << "U = " << U << "\n";
138}
139
Note: See TracBrowser for help on using the repository browser.