t  := Cputime();
p  := NextPrime(10^100);
Fp := GF(p);

/*Fp := RationalField();*/

print "Base field = ", Fp;

print "Loading the matrix A...";
load "19-matrix.dat";
d  := Round(Sqrt(#A));
M  := MatrixAlgebra(Fp,d);
V  := VectorSpace(Fp,d);

print "Loading vector v...";
load "19-vector.dat";
v := V!v;

print "Computing the inverse matrix...";
B := M!A;
time Binv := B^(-1);

print "Computing answer...";
time w := v*Binv;

print "Total time =",Cputime(t);



