******* Testing Sparse_Vec ******* v1=[0 3 0 0 0] v2=[0 1 2 0 0] v1+v2= [0 4 2 0 0] v1*v2=3 density(v1)=0.2 v1=[0 0 0 0 0] Set [1 2 4 3] to the indices [0 2 2 3] v1=[1 0 6 3 0] Set new [1 2 4 3] to the indices [0 2 2 3] Unnoticed error in set_new() if the same index is used several times v1=[1 0 4 3 0] v1(for v1-=v2) = [0 -1 -2 0 0] v1(for v1/=4) = [0 -0.25 -0.5 0 0] v1(for v1*=2) = [0 -0.5 -1 0 0] v1(for v1+=v2/2) = [0 0 0 0 0] number of non-zero elements in v1: nnz = 0 Add [-1 5 -2 4] to the indices [0 2 2 1] v1=[-1 4 3 0 0] v1(element 2 cleared) = [-1 4 0 0 0] v3= [3 0] v3=[0 0 0 0 0] v4=[0 1 2 0 0] v5=[0 1 4 0 0] v4 not equal to v5 ******* Testing Sparse_Mat ******* m1= [[0 0 0] [0 3 0] [0 0 0]] m2= [[0 0 0] [0 0 1] [0 2 0]] m1+m2= [[0 0 0] [0 3 1] [0 2 0]] m1*m2= [[0 0 0] [0 0 3] [0 0 0]] density(m1)=0.111111 transpose(m2)= [[0 0 0] [0 0 2] [0 1 0]] m1.zeros()= [[0 0 0] [0 0 0] [0 0 0]] m1(-=m2)= [[0 0 0] [0 0 -1] [0 -2 0]] m1(/=4)= [[0 0 0] [0 0 -0.25] [0 -0.5 0]] m1(*=2)= [[0 0 0] [0 0 -0.5] [0 -1 0]] m1.add_elem(0,2,4)= [[0 0 4] [0 0 -0.5] [0 -1 0]] m1.clear_elem(1,2)= [[0 0 4] [0 0 0] [0 -1 0]] m3= [[3 0 0] [0 0 0]] m4= [[0 1] [0 0] [2 0]] m3*m4= [[0 3] [0 0]] transpose(m4)= [[0 0 2] [1 0 0]] trans_mult(m4,m4)=[[4 0] [0 1]] mult_trans(m4,m4)=[[1 0 0] [0 0 0] [0 0 4]] mult_trans(m4,m4)=[[1 0 0] [0 0 0] [0 0 4]] v = [1 2 3] m3 * v = [3 0]