"Source: Text/System/Par.text";
"Line: 614";
"Date: Thu Jul 13 10:19:10 2023";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/System/Par.text, line: 614
// Example: H5E5 ()
print "Example: H5E5";
ei := GetEchoInput();
SetEchoInput(true);
// no-test
K := GF(PreviousPrime(2^16));
r := 6; n := r + 3; k := (n - r)^2;
n, k, r;
time B := MinRankSystem(K, n, k, r);
I := Ideal(B);
I: Minimal;                                                                  
// Single thread
SetNthreads(1);
// DynamicStrategy handles large reduction to zero better:
time Groebner(I: PairsLimit := 2000, Dense, DynamicStrategy);
QuotientDimension(I);
time V := Variety(I: Al := "Wiedemann");
V;
// Check solution is correct:
time { Evaluate(f, V[1]): f in B };
// 24 threads
SetNthreads(24);
I := Ideal(B); // Recreate ideal
time Groebner(I: PairsLimit := 2000, Dense, DynamicStrategy);
time V := Variety(I: Al := "Wiedemann");
V;
// GPU
SetNthreads(1); SetGPU(true);
I := Ideal(B); // Recreate ideal
time Groebner(I: PairsLimit := 2000, Dense, DynamicStrategy);
time V := Variety(I: Al := "Wiedemann");
V;
K := GF(PreviousPrime(2^16));
r := 7; n := r + 3; k := (n - r)^2;
n, k, r;
time B := MinRankSystem(K, n, k, r);
I := Ideal(B);
I: Minimal;                                                                  
#B;
{* Length(f): f in B *};
SetNthreads(1);
time Groebner(I: PairsLimit := 5000, Dense, DynamicStrategy);
QuotientDimension(I);
time V := Variety(I: Al := "Wiedemann");
V;
// Check solution is correct:
time { Evaluate(f, V[1]): f in B };
SetNthreads(24);
I := Ideal(B); // Recreate ideal
time Groebner(I: PairsLimit := 5000, Dense, DynamicStrategy);
time V := Variety(I: Al := "Wiedemann");
V;
SetNthreads(1); SetGPU(true);
I := Ideal(B); // Recreate ideal
time Groebner(I: PairsLimit := 5000, Dense, DynamicStrategy);
time V := Variety(I: Al := "Wiedemann");
V;
SetEchoInput(ei);
