with(LinearAlgebra): # primitive root of unity w := (sqrt(5)-1)/4 + I*sqrt((5+sqrt(5))/8): u1 := -5/2 - I/2*sqrt(25-10*sqrt(5)): u2 := (-5-5*sqrt(5) - I*sqrt(10*(5-sqrt(5))))/4: u3 := (5-5*sqrt(5) + I*sqrt(10*(5+sqrt(5))))/4: # original matrix W := <<1,1,1,1,1>|<1,w,w^2,w^3,w^4>|<1,w^2,w^4,w,w^3>|<1,w^3,w,w^4,w^2>|<1,w^4,w^3,w^2,w>>: # 3 nonzero entries S := <|<0,u2,0,0,0>|<0,0,u3,0,0>|<0,0,0,0,0>|<0,0,0,0,0>>: # compute rank printf("The rank of W+S is: %d\n", Rank(W+S));