Total Complexity | 7 |
Total Lines | 22 |
Duplicated Lines | 0 % |
Changes | 2 | ||
Bugs | 0 | Features | 1 |
1 | import numpy as np |
||
4 | class PositionUpdater: |
||
5 | def __init__(self, stage): |
||
6 | self.stage = stage |
||
7 | self.lower_bounds = np.asarray(self.stage.lower_bounds) |
||
8 | self.upper_bounds = np.asarray(self.stage.upper_bounds) |
||
9 | |||
10 | def set_initial_control_params(self): |
||
11 | random = np.random.rand(len(self.stage.control_params)) |
||
12 | delta = self.upper_bounds - self.lower_bounds |
||
13 | control_params = self.lower_bounds + random * delta |
||
14 | self.stage.control_params = control_params.tolist() |
||
15 | |||
16 | def update_position(self, velocity): |
||
17 | self.stage.control_params = self.stage.control_params + velocity |
||
18 | self._fix_coordinates() |
||
19 | |||
20 | def _fix_coordinates(self): |
||
21 | for i in range(len(self.stage.control_params)): |
||
22 | if self.stage.control_params[i] > self.stage.upper_bounds[i]: |
||
23 | self.stage.control_params[i] = self.stage.upper_bounds[i] |
||
24 | elif self.stage.control_params[i] < self.stage.lower_bounds[i]: |
||
25 | self.stage.control_params[i] = self.stage.lower_bounds[i] |
||
26 |
The coding style of this project requires that you add a docstring to this code element. Below, you find an example for methods:
If you would like to know more about docstrings, we recommend to read PEP-257: Docstring Conventions.