On Saturday, March 28, 2026 at 11:53:40 AM UTC+1 Georgi Guninski wrote:

I believed that matrix multiplication and squaring to be significantly 
faster over GF(p) instead over ZZ. 
 

Numerical evidence supports the opposite, is it a bug or reality? 

Session: 

def randmat(N,K): return Matrix(K,N,N,[K.random_element() for _ in 
range(N^2)]) 
N=200 
Kq=GF(next_prime(2^200)) 
M1=randmat(N,Kq) 
%time MsZZ=M1.change_ring(ZZ)^2 #Wall time: 188 ms 
%time Msqu=M1^2 #Wall time: 7.75 s 


I would expect matrix multiplication to be around as fast over GF(p) and ZZ 
if the entries are the same. Large-p GF(p) matrices being a lot slower in 
Sage is surely because they use a generic matrix implementation rather than 
a specialized one.

With current FLINT on my machine squaring a 200x200 matrix with 200-bit 
entries costs as follows:

0.032 seconds over ZZ with fmpz_mat
0.035 seconds over GF(p) with fmpz_mod_mat
0.029 seconds over GF(p) with mpn_mod_mat

Fredrik
 

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/sage-devel/5bd108cd-ca0c-4b45-8193-dc1f51b010e2n%40googlegroups.com.

Reply via email to