Ramón Casero Cañas on Sun, 12 Jan 2003 14:06:09 +0100 (MET)


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: the problem of inversing a big boolean matrix


Bernadette.PERRIN-RIOU@math.u-psud.fr wrote:

 >A64 = [mattranspose(A), A; A,A]  define a matrix of matrices. Use
 >
 >A64=concat(concat(A~,A)~,concat(A,A)~)~;
 >A2=Mod(A64,2);
 >
 >A2*A2^(-1)
 >

Bernadette, thank you. I tried what you said, and yes, it works for a 
128 x 128 matrix. So now I'll try to do this in C code, with ginv(), as
Karim said. I have found another function in the User's Guide, 
ginvmod(). Does somebody know something about performance of 
ginv() and ginvmod()? What is better?

a) matrix of t_INT[MOD] + ginv()
b) matrix of t_INT[MOD] + ginvmod()

It has come to me as a surprise that in the User's Guide it advises not 
to use t_VEC nor t_MAT (see below 4.5.15 Type t_MAT of the User's Guide),
and use instead C constructs. But in section 4.3.1 Creation of PARI objects,
example 3) it shows:

z = cgetg(4, t_MAT);
for (i = 1; i < 4; i++) z[i] = lgetg(5, t_COL);

(double loop to fill columns)

What's the equivalent C constructs way? Do you have to manually make an
array of longs? How do you set the information about the type, syze, etc. that is
supposed to go in the z[0] of a GEN?

Cheers,

Ramón.

-- 
+++ GMX - Mail, Messaging & more  http://www.gmx.net +++
NEU: Mit GMX ins Internet. Rund um die Uhr für 1 ct/ Min. surfen!