mailr23976 - in /branches/frame_order_cleanup/test_suite/shared_data/frame_order/timings: flag_array.log flag_array.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by edward on June 16, 2014 - 16:03:
Author: bugman
Date: Mon Jun 16 16:03:55 2014
New Revision: 23976

URL: http://svn.gna.org/viewcvs/relax?rev=23976&view=rev
Log:
Added a timeit script and log file for different ways of checking a binary 
numpy array.


Added:
    
branches/frame_order_cleanup/test_suite/shared_data/frame_order/timings/flag_array.log
    
branches/frame_order_cleanup/test_suite/shared_data/frame_order/timings/flag_array.py
      - copied, changed from r23956, 
branches/frame_order_cleanup/test_suite/shared_data/frame_order/timings/tensor_projections.py

Added: 
branches/frame_order_cleanup/test_suite/shared_data/frame_order/timings/flag_array.log
URL: 
http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/test_suite/shared_data/frame_order/timings/flag_array.log?rev=23976&view=auto
==============================================================================
--- 
branches/frame_order_cleanup/test_suite/shared_data/frame_order/timings/flag_array.log
      (added)
+++ 
branches/frame_order_cleanup/test_suite/shared_data/frame_order/timings/flag_array.log
      Mon Jun 16 16:03:55 2014
@@ -0,0 +1,28 @@
+
+1st check - 0 in flags.
+Zeros present: True
+Timing (s): 2.36345410347
+
+2nd check - min(flags).
+Zeros present: True
+Timing (s): 1.0689060688
+
+3rd check - flags.min().
+Zeros present: True
+Timing (s): 5.45578408241
+
+4th check - sum(flags).
+Zeros present: True
+Timing (s): 2.30188107491
+
+5th check - for loop.
+Zeros present: True
+Timing (s): 0.846194982529
+
+6th check - not flags.all().
+Zeros present: True
+Timing (s): 4.40921497345
+
+7th check - pre-convert to single flag.
+Zeros present: True
+Timing (s): 0.0773220062256

Copied: 
branches/frame_order_cleanup/test_suite/shared_data/frame_order/timings/flag_array.py
 (from r23956, 
branches/frame_order_cleanup/test_suite/shared_data/frame_order/timings/tensor_projections.py)
URL: 
http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/test_suite/shared_data/frame_order/timings/flag_array.py?p2=branches/frame_order_cleanup/test_suite/shared_data/frame_order/timings/flag_array.py&p1=branches/frame_order_cleanup/test_suite/shared_data/frame_order/timings/tensor_projections.py&r1=23956&r2=23976&rev=23976&view=diff
==============================================================================
--- 
branches/frame_order_cleanup/test_suite/shared_data/frame_order/timings/tensor_projections.py
       (original)
+++ 
branches/frame_order_cleanup/test_suite/shared_data/frame_order/timings/flag_array.py
       Mon Jun 16 16:03:55 2014
@@ -1,127 +1,112 @@
 # Python module imports.
-from numpy import *
-from numpy.linalg import norm
+from numpy import array
 from os import pardir, sep
 import sys
-from time import sleep
 from timeit import timeit
 
 # Modify the system path.
 sys.path.append(pardir+sep+pardir+sep+pardir+sep+pardir+sep)
 
-# relax module imports.
-from lib.geometry.rotations import euler_to_R_zyz
+
+def check1(flags, N=1, verb=True):
+    for i in range(N):
+        flag = False
+        if 0 in flags:
+            flag = True
+    if verb:
+        print("\n1st check - 0 in flags.")
+        print("Zeros present: %s" % flag)
 
 
-def proj1(vect, A, N=1, verb=True):
-    d = zeros(len(vect), float64)
+def check2(flags, N=1, verb=True):
     for i in range(N):
-        for j in xrange(len(vect)):
-            d[j] = dot(vect[j], dot(A, vect[j]))
+        flag = False
+        if min(flags) == 0:
+            flag = True
     if verb:
-        print("\n1st projection - element by element r[i].A.r[i].")
-        print("Proj: %s" % d[:2])
+        print("\n2nd check - min(flags).")
+        print("Zeros present: %s" % flag)
 
 
-def proj2(vect, A, N=1, verb=True):
+def check3(flags, N=1, verb=True):
     for i in range(N):
-        d = diagonal(tensordot(vect, tensordot(A, transpose(vect), axes=1), 
axes=1))
+        flag = False
+        if flags.min() == 0:
+            flag = True
     if verb:
-        print("\n2nd projection - diag of double tensordot.")
-        print("Proj: %s" % d[:2])
+        print("\n3rd check - flags.min().")
+        print("Zeros present: %s" % flag)
 
 
-def proj3(vect, A, N=1, verb=True):
+def check4(flags, N=1, verb=True):
     for i in range(N):
-        d = diagonal(tensordot(tensordot(A, vect, axes=([0],[1])), vect, 
axes=([0],[1])))
+        flag = False
+        if sum(flags) > 0:
+            flag = True
     if verb:
-        print("\n3rd projection - diag of double tensordot, no transpose.")
-        print("Proj: %s" % d[:2])
+        print("\n4th check - sum(flags).")
+        print("Zeros present: %s" % flag)
 
 
-def proj4(vect, A, N=1, verb=True):
-    d = zeros(len(vect), float64)
+def check5(flags, N=1, verb=True):
     for i in range(N):
-        a = tensordot(A, vect, axes=([0],[1]))
-        for j in range(len(vect)):
-            d[j] = dot(vect[j], a[:,j])
+        flag = False
+        for i in xrange(len(flags)):
+            if flags[i] == 0:
+                flag = True
+                break
     if verb:
-        print("\n4th projection - mixed tensordot() and per-vector dot().")
-        print("Proj: %s" % d[:2])
+        print("\n5th check - for loop.")
+        print("Zeros present: %s" % flag)
 
 
-def proj5(vect, A, N=1, verb=True):
-    d = zeros(len(vect), float64)
+def check6(flags, N=1, verb=True):
     for i in range(N):
-        vect2 = vect**2
-        double_vect = 2.0 * vect
-        for j in xrange(len(vect)):
-            d[j] = vect2[j][0]*A[0, 0] + vect2[j][1]*A[1, 1] + 
vect2[j][2]*(A[2, 2]) + double_vect[j][0]*vect[j][1]*A[0, 1] + 
double_vect[j][0]*vect[j][2]*A[0, 2] + double_vect[j][1]*vect[j][2]*A[1, 2]
+        flag = False
+        if not flags.all():
+            flag = True
     if verb:
-        print("\n5th projection - expansion and sum.")
-        print("Proj: %s" % d[:2])
+        print("\n6th check - not flags.all().")
+        print("Zeros present: %s" % flag)
 
 
-def proj6(vect, A, N=1, verb=True):
-    d = zeros(len(vect), float64)
+def check7(flags, N=1, verb=True):
+    pre = False
+    if min(flags) == 0:
+        pre = True
     for i in range(N):
-        d = vect[:,0]**2*A[0, 0] + vect[:,1]**2*A[1, 1] + vect[:,2]**2*(A[2, 
2]) + 2.0*vect[:,0]*vect[:,1]*A[0, 1] + 2.0*vect[:,0]*vect[:,2]*A[0, 2] + 
2.0*vect[:,1]*vect[:,2]*A[1, 2]
+        flag = False
+        if pre:
+            flag = True
     if verb:
-        print("\n6th projection - expansion.")
-        print("Proj: %s" % d[:2])
+        print("\n7th check - pre-convert to single flag.")
+        print("Zeros present: %s" % flag)
 
 
-def proj7(vect, A, N=1, verb=True):
-    d = zeros(len(vect), float64)
-    for i in range(N):
-        vect2 = vect**2
-        double_vect = 2.0 * vect
-        d = vect2[:,0]*A[0, 0] + vect2[:,1]*A[1, 1] + vect2[:,2]*(A[2, 2]) + 
double_vect[:,0]*vect[:,1]*A[0, 1] + double_vect[:,0]*vect[:,2]*A[0, 2] + 
double_vect[:,1]*vect[:,2]*A[1, 2]
-    if verb:
-        print("\n7th projection - expansion with pre-calculation.")
-        print("Proj: %s" % d[:2])
+# Flag array.
+flags = array([0, 1, 1, 0, 1])
 
-
-# Some 200 vectors.
-vect = array([[1, 2, 3], [2, 2, 2]], float64)
-vect = tile(vect, (100, 1))
-if __name__ == '__main__':
-    print("Original vectors:\n%s\nShape: %s" % (vect[:2], vect.shape))
-
-# Init the alignment tensor.
-A = zeros((3, 3), float64)
-A_5D = [1.42219822168827662867e-04, -1.44543001566521341940e-04, 
-7.07796211648713973798e-04, -6.01619494082773244303e-04, 
2.02008007072950861996e-04]
-A[0, 0] = A_5D[0]
-A[1, 1] = A_5D[1]
-A[2, 2] = -A_5D[0] -A_5D[1]
-A[0, 1] = A[1, 0] = A_5D[2]
-A[0, 2] = A[2, 0] = A_5D[3]
-A[1, 2] = A[2, 1] = A_5D[4]
-A *= 1e4
-if __name__ == '__main__':
-    print("\nTensor:\n%s\n" % A)
-
-# Projections.
-N = 100
+# Checks.
+N = 10000
 M = 100
 if __name__ == '__main__':
-    proj1(vect=vect, A=A, N=1, verb=True)
-    print("Timing (s): %s" % timeit("proj1(vect=vect, A=A, N=N, 
verb=False)", setup="from tensor_projections import proj1, vect, A, N", 
number=M))
+    check1(flags=flags, N=1, verb=True)
+    print("Timing (s): %s" % timeit("check1(flags=flags, N=N, verb=False)", 
setup="from flag_array import check1, flags, N", number=M))
 
-    proj2(vect=vect, A=A, N=1, verb=True)
-    print("Timing (s): %s" % timeit("proj2(vect=vect, A=A, N=N, 
verb=False)", setup="from tensor_projections import proj2, vect, A, N", 
number=M))
+    check2(flags=flags, N=1, verb=True)
+    print("Timing (s): %s" % timeit("check2(flags=flags, N=N, verb=False)", 
setup="from flag_array import check2, flags, N", number=M))
 
-    proj3(vect=vect, A=A, N=1, verb=True)
-    print("Timing (s): %s" % timeit("proj3(vect=vect, A=A, N=N, 
verb=False)", setup="from tensor_projections import proj3, vect, A, N", 
number=M))
+    check3(flags=flags, N=1, verb=True)
+    print("Timing (s): %s" % timeit("check3(flags=flags, N=N, verb=False)", 
setup="from flag_array import check3, flags, N", number=M))
 
-    proj4(vect=vect, A=A, N=1, verb=True)
-    print("Timing (s): %s" % timeit("proj4(vect=vect, A=A, N=N, 
verb=False)", setup="from tensor_projections import proj4, vect, A, N", 
number=M))
+    check4(flags=flags, N=1, verb=True)
+    print("Timing (s): %s" % timeit("check4(flags=flags, N=N, verb=False)", 
setup="from flag_array import check4, flags, N", number=M))
 
-    proj5(vect=vect, A=A, N=1, verb=True)
-    print("Timing (s): %s" % timeit("proj5(vect=vect, A=A, N=N, 
verb=False)", setup="from tensor_projections import proj5, vect, A, N", 
number=M))
+    check5(flags=flags, N=1, verb=True)
+    print("Timing (s): %s" % timeit("check5(flags=flags, N=N, verb=False)", 
setup="from flag_array import check5, flags, N", number=M))
 
-    proj6(vect=vect, A=A, N=1, verb=True)
-    print("Timing (s): %s" % timeit("proj6(vect=vect, A=A, N=N, 
verb=False)", setup="from tensor_projections import proj6, vect, A, N", 
number=M))
+    check6(flags=flags, N=1, verb=True)
+    print("Timing (s): %s" % timeit("check6(flags=flags, N=N, verb=False)", 
setup="from flag_array import check6, flags, N", number=M))
 
-    proj7(vect=vect, A=A, N=1, verb=True)
-    print("Timing (s): %s" % timeit("proj7(vect=vect, A=A, N=N, 
verb=False)", setup="from tensor_projections import proj7, vect, A, N", 
number=M))
+    check7(flags=flags, N=1, verb=True)
+    print("Timing (s): %s" % timeit("check7(flags=flags, N=N, verb=False)", 
setup="from flag_array import check7, flags, N", number=M))




Related Messages


Powered by MHonArc, Updated Mon Jun 16 17:20:02 2014