import time import sys t1=time.clock() f1 = file('in12_2.txt' , 'r') k=4 a=[] b=[] l=f1.readlines() f=l[0].split(' ') s=l[1].split(' ') f[len(f)-1]=f[len(f)-1].rstrip() for i in range(0,len(f)): f[i]=int( f[i]) for j in range(0,len(s)): s[j]=int( s[j]) a1=[f[0],f[1],f[4],f[5]] a2=[f[2],f[3],f[6],f[7]] a3=[f[8],f[9],f[12],f[13]] a4=[f[10],f[11],f[14],f[15]] a.append(a1) a.append(a2) a.append(a3) a.append(a4) b1=[s[0],s[1],s[4],s[5]] b2=[s[2],s[3],s[6],s[7]] b3=[s[8],s[9],s[12],s[13]] b4=[s[10],s[11],s[14],s[15]] b.append(b1) b.append(b2) b.append(b3) b.append(b4) def matmul(a,b): c=[] a11=a[0] a12=a[1] a21=a[2] a22=a[3] b11=b[0] b12=b[1] b21=b[2] b22=b[3] m1=(a11+a22)*(b11+b22) m2=(a21+a22)*b11 m3=a11*(b12-b22) m4=a22*(b21-b11) m5=(a11+a12)*b22 m6=(a21-a11)*(b11+b12) m7=(a12-a22)*(b21+b22) c.append(m1+m4-m5+m7) c.append(m3+m5) c.append(m2+m4) c.append(m1-m2+m3+m6) return c res=[] for y in range(0,16): res.append(0) r1=matmul(a1,b1) r2=matmul(a2,b3) r3=matmul(a1,b2) r4=matmul(a2,b4) r5=matmul(a3,b1) r6=matmul(a4,b3) r7=matmul(a3,b2) r8=matmul(a4,b4) res[0]=r1[0]+r2[0] res[1]=r1[1]+r2[1] res[2]=r3[0]+r4[0] res[3]=r3[1]+r4[1] res[4]=r1[2]+r2[2] res[5]=r1[3]+r2[3] res[6]=r3[2]+r4[2] res[7]=r3[3]+r4[3] res[8]=r5[0]+r6[0] res[9]=r5[1]+r6[1] res[10]=r7[0]+r8[0] res[11]=r7[1]+r8[1] res[12]=r5[2]+r6[2] res[13]=r5[3]+r6[3] res[14]=r7[2]+r8[2] res[15]=r7[3]+r8[3] f2=open('out_12_12_2.txt', 'w') for c in range(0,len(res)): f2.write(str(res[c])+',') f2.write('\nno pf recursive calls= 8') f2.write('\nno of additions=152 ') f2.write('\nno of multipliactions= 56 '+ '\n') var_list=[t1,f1,f2,k,a,b,l,f,s,i,j,a,a1,a2,a3,a4,b,b1,b2,b3,b4] memory=0 for i in range(0, len(var_list)): memory = memory+sys.getsizeof(var_list[i]) memory=memory+sys.getsizeof(t1)+sys.getsizeof(memory)+12 '''t1 take same as t2 and 12 for i of 2nd loop''' f2.write('memory used is '+str(memory)+' bytes'+'\n') t2=time.clock() f2.write('time taken is '+ str(t2-t1)+' seconds'+ '\n') f1.close f2.close