mailr10173 - /branches/multi_processor_merge/generic_fns/subdivide_grid.py


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

Header


Content

Posted by edward on January 11, 2010 - 17:10:
Author: bugman
Date: Mon Jan 11 17:10:01 2010
New Revision: 10173

URL: http://svn.gna.org/viewcvs/relax?rev=10173&view=rev
Log:
Alphabetical ordering of methods.


Modified:
    branches/multi_processor_merge/generic_fns/subdivide_grid.py

Modified: branches/multi_processor_merge/generic_fns/subdivide_grid.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/multi_processor_merge/generic_fns/subdivide_grid.py?rev=10173&r1=10172&r2=10173&view=diff
==============================================================================
--- branches/multi_processor_merge/generic_fns/subdivide_grid.py (original)
+++ branches/multi_processor_merge/generic_fns/subdivide_grid.py Mon Jan 11 
17:10:01 2010
@@ -76,31 +76,75 @@
             self.range = range
 
 
-    def sub_grid(self, start, range):
-        return Grid_info(self.grid_ops, start=start, range=range)
-
-
-    def sub_divide(self, steps):
-        if steps > self.range:
-            steps = self.range
-
-        increment = self.range/(steps * 1.0)
-        max_div_end = self.start + self.range
-
-        divs = []
-        last_div = self.start
-        for i in range(steps):
-            div_end = int(math.ceil(self.start + ((i+1) * increment)))
-
-            # this garuntees completion in the face of roundoff errors
-            if div_end > max_div_end:
-                div_end = max_div_end
-
-            div_range = div_end - last_div
-            divs.append(self.sub_grid(start= last_div, range=div_range))
-            last_div = div_end
-
-        return divs
+    def __iter__(self):
+        return Grid_info.Iterator(self, self.start, self.start+self.range)
+
+
+    def __str__(self):
+        message = '''\
+                        grid info:
+
+                        number of axes:        %d
+                        full number of steps:  %d
+                        sub range indices:     %d - %d
+
+                        full grid range:
+
+                  '''
+        message = dedent(message)
+        message = message % (self.n, self.steps, self.start, 
self.start+self.range)
+
+        op_message_list = []
+        for i, op in enumerate(self.grid_ops):
+            op_message = '%d.  %f...[%d steps]...%f'
+            op_list = (i+1, op[GRID_LOWER], op[GRID_STEPS], op[GRID_UPPER])
+            op_message_list .append(op_message % op_list)
+
+        op_message = '\n'.join(op_message_list)
+
+        message = message + op_message
+
+        return message
+
+
+    def calc_grid_size(self):
+        """Calculate the total number of grid points.
+
+        @return:    The number of grid points.
+        @rtype:     int
+        """
+
+        # Multiply the increments of all dimensions.
+        size = 1
+        for inc in self.inc:
+            size = size * inc
+
+        # Return the size.
+        return size
+
+
+    def calc_grid_values(self):
+        """Calculate the coordinates of all grid points.
+
+        @return:    A list of lists of coordinates for each grid point.  The 
first index corresponds to the dimensionality of the grid and the second is 
the increment values.
+        @rtype:     list of lists of float
+        """
+
+        # Initialise the coordinate list.
+        coords = []
+
+        # Loop over the dimensions.
+        for i in range(self.n):
+            # Initialise the list of values for the dimension and add it to 
the coordinate list.
+            values = []
+            coords.append(values)
+
+            # Loop over the increments.
+            for j in range(self.inc[i]):
+                values.append(self.lower[i] + j * (self.upper[i] - 
self.lower[i]) / (self.inc[i] - 1.0))
+
+        # Return the grid points.
+        return coords
 
 
     def calc_strides(self):
@@ -121,90 +165,14 @@
         return data
 
 
-    def calc_grid_size(self):
-        """Calculate the total number of grid points.
-
-        @return:    The number of grid points.
-        @rtype:     int
-        """
-
-        # Multiply the increments of all dimensions.
-        size = 1
-        for inc in self.inc:
-            size = size * inc
-
-        # Return the size.
-        return size
-
-
-    def calc_grid_values(self):
-        """Calculate the coordinates of all grid points.
-
-        @return:    A list of lists of coordinates for each grid point.  The 
first index corresponds to the dimensionality of the grid and the second is 
the increment values.
-        @rtype:     list of lists of float
-        """
-
-        # Initialise the coordinate list.
-        coords = []
-
-        # Loop over the dimensions.
-        for i in range(self.n):
-            # Initialise the list of values for the dimension and add it to 
the coordinate list.
-            values = []
-            coords.append(values)
-
-            # Loop over the increments.
-            for j in range(self.inc[i]):
-                values.append(self.lower[i] + j * (self.upper[i] - 
self.lower[i]) / (self.inc[i] - 1.0))
-
-        # Return the grid points.
-        return coords
-
-
-    def __str__(self):
-        message = '''\
-                        grid info:
-
-                        number of axes:        %d
-                        full number of steps:  %d
-                        sub range indices:     %d - %d
-
-                        full grid range:
-
-                  '''
-        message = dedent(message)
-        message = message % (self.n, self.steps, self.start, 
self.start+self.range)
-
-        op_message_list = []
-        for i, op in enumerate(self.grid_ops):
-            op_message = '%d.  %f...[%d steps]...%f'
-            op_list = (i+1, op[GRID_LOWER], op[GRID_STEPS], op[GRID_UPPER])
-            op_message_list .append(op_message % op_list)
-
-        op_message = '\n'.join(op_message_list)
-
-        message = message + op_message
-
-        return message
-
-
-    def print_steps(self):
-        offsets = self.get_step_offset(self.start)
-        #params = self.get_params(step_num)
-        #for op in self.grid_ops:
-        #    params.append(op[GRID_LOWER])
-
-        for i in xrange(self.start, self.start+self.range):
-
-            print `i+1` + '. ', self.get_params(offsets)
-            for j in range(self.n):
-                if offsets[j] < self.grid_ops[j][GRID_STEPS]-1:
-                    offsets[j] = offsets[j] + 1
-
-                    # Exit so that the other step numbers are not 
incremented.
-                    break
-                else:
-                    offsets[j] = 0
+    def get_params(self, offsets, params=None):
+        if params == None:
+            params = ones(len(offsets), float)
+
+        for i, offset in enumerate(offsets):
+            params[i] = self.values[i][offset]
+
+        return params
 
 
     def get_step_offset(self, step):
@@ -224,14 +192,50 @@
         #return res_values
 
 
-    def get_params(self, offsets, params=None):
-        if params == None:
-            params = ones(len(offsets), float)
-
-        for i, offset in enumerate(offsets):
-            params[i] = self.values[i][offset]
-
-        return params
+    def print_steps(self):
+        offsets = self.get_step_offset(self.start)
+        #params = self.get_params(step_num)
+        #for op in self.grid_ops:
+        #    params.append(op[GRID_LOWER])
+
+        for i in xrange(self.start, self.start+self.range):
+
+            print `i+1` + '. ', self.get_params(offsets)
+            for j in range(self.n):
+                if offsets[j] < self.grid_ops[j][GRID_STEPS]-1:
+                    offsets[j] = offsets[j] + 1
+
+                    # Exit so that the other step numbers are not 
incremented.
+                    break
+                else:
+                    offsets[j] = 0
+
+
+    def sub_divide(self, steps):
+        if steps > self.range:
+            steps = self.range
+
+        increment = self.range/(steps * 1.0)
+        max_div_end = self.start + self.range
+
+        divs = []
+        last_div = self.start
+        for i in range(steps):
+            div_end = int(math.ceil(self.start + ((i+1) * increment)))
+
+            # this garuntees completion in the face of roundoff errors
+            if div_end > max_div_end:
+                div_end = max_div_end
+
+            div_range = div_end - last_div
+            divs.append(self.sub_grid(start= last_div, range=div_range))
+            last_div = div_end
+
+        return divs
+
+
+    def sub_grid(self, start, range):
+        return Grid_info(self.grid_ops, start=start, range=range)
 
 
 
@@ -256,16 +260,21 @@
             return self
 
 
-        def next(self):
-            if self.step >= self.end:
-                raise StopIteration()
-
-            self.params = self.info.get_params(self.offsets, self.params)
-
-            self.step = self.step + 1
-            self.increment()
-
-            return self.params
+        def __str__(self):
+            print type(self.start)
+            print type(self.end)
+            print type(self.step)
+            return ''' info:
+
+                       %s
+
+                       iter:
+
+                       start %d
+                       end   %d
+                       step  %d
+                       offsets %s
+                       params  %s ''' % (`self.info`, self.start, self.end, 
self.step, `self.offsets`, `self.params`)
 
 
         def increment(self):
@@ -280,22 +289,13 @@
                     self.offsets[j] = 0
 
 
-        def __str__(self):
-            print type(self.start)
-            print type(self.end)
-            print type(self.step)
-            return ''' info:
-
-                       %s
-
-                       iter:
-
-                       start %d
-                       end   %d
-                       step  %d
-                       offsets %s
-                       params  %s ''' % (`self.info`, self.start, self.end, 
self.step, `self.offsets`, `self.params`)
-
-
-    def __iter__(self):
-        return Grid_info.Iterator(self, self.start, self.start+self.range)
+        def next(self):
+            if self.step >= self.end:
+                raise StopIteration()
+
+            self.params = self.info.get_params(self.offsets, self.params)
+
+            self.step = self.step + 1
+            self.increment()
+
+            return self.params




Related Messages


Powered by MHonArc, Updated Mon Jan 11 17:20:02 2010