# How to make the product of two linear spaces?

Let $F_{q^m}$ be a finite field that is the extension of degree m of a finite field $F_q$. r<m, d<m.<="" p="">

E1 is an $F_q$-linear space of dimension r of $F_{q^m}$.

E2 is an $F_q$-linear space of dimension d of $F_{q^m}$.

How to fastly obtain the product of E1 and E2?

How about

`E1.cartesian_product(E2)`

?No cartesian_product. I only know this method with poor efficiency. Do you have other efficient methods?

q = 2 ; m = 229; n = 83; r = 8; d= 7

Fqm = GF(q^m)

def gen_vec_space(t): # generate a vector space of dimension t over Fqm

E = gen_vec_space(r)

F = gen_vec_space(d)

def two_spaces_product(T1, T2):

EF = two_spaces_product(E,F)

I don't understand why

`cartesian_product`

doesn't do what you want. Can you please explain?