Changeset 8d62008 in sasmodels for sasmodels/details.py
- Timestamp:
- Apr 15, 2016 10:16:41 AM (8 years ago)
- Branches:
- master, core_shell_microgels, costrafo411, magnetic_model, release_v0.94, release_v0.95, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
- Children:
- 8f6817d
- Parents:
- 3599d36
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/details.py
r7ae2b7f r8d62008 5 5 except ImportError: 6 6 pass 7 else: 8 from .modelinfo import ModelInfo 7 9 8 10 … … 10 12 parts = None # type: List["CallDetails"] 11 13 def __init__(self, model_info): 14 # type: (ModelInfo) -> None 12 15 parameters = model_info.parameters 13 16 max_pd = parameters.max_pd 14 17 npars = parameters.npars 15 18 par_offset = 4*max_pd 16 self. _details = np.zeros(par_offset + 3*npars + 4, 'i4')19 self.buffer = np.zeros(par_offset + 3 * npars + 4, 'i4') 17 20 18 21 # generate views on different parts of the array 19 self._pd_par = self. _details[0*max_pd:1*max_pd]20 self._pd_length = self. _details[1*max_pd:2*max_pd]21 self._pd_offset = self. _details[2*max_pd:3*max_pd]22 self._pd_stride = self. _details[3*max_pd:4*max_pd]23 self._par_offset = self. _details[par_offset+0*npars:par_offset+1*npars]24 self._par_coord = self. _details[par_offset+1*npars:par_offset+2*npars]25 self._pd_coord = self. _details[par_offset+2*npars:par_offset+3*npars]22 self._pd_par = self.buffer[0 * max_pd:1 * max_pd] 23 self._pd_length = self.buffer[1 * max_pd:2 * max_pd] 24 self._pd_offset = self.buffer[2 * max_pd:3 * max_pd] 25 self._pd_stride = self.buffer[3 * max_pd:4 * max_pd] 26 self._par_offset = self.buffer[par_offset + 0 * npars:par_offset + 1 * npars] 27 self._par_coord = self.buffer[par_offset + 1 * npars:par_offset + 2 * npars] 28 self._pd_coord = self.buffer[par_offset + 2 * npars:par_offset + 3 * npars] 26 29 27 30 # theta_par is fixed 28 self._details[-1] = parameters.theta_offset 29 30 @property 31 def ctypes(self): return self._details.ctypes 31 self.buffer[-1] = parameters.theta_offset 32 32 33 33 @property … … 53 53 54 54 @property 55 def num_active(self): return self. _details[-4]55 def num_active(self): return self.buffer[-4] 56 56 @num_active.setter 57 def num_active(self, v): self. _details[-4] = v57 def num_active(self, v): self.buffer[-4] = v 58 58 59 59 @property 60 def total_pd(self): return self. _details[-3]60 def total_pd(self): return self.buffer[-3] 61 61 @total_pd.setter 62 def total_pd(self, v): self. _details[-3] = v62 def total_pd(self, v): self.buffer[-3] = v 63 63 64 64 @property 65 def num_coord(self): return self. _details[-2]65 def num_coord(self): return self.buffer[-2] 66 66 @num_coord.setter 67 def num_coord(self, v): self. _details[-2] = v67 def num_coord(self, v): self.buffer[-2] = v 68 68 69 69 @property 70 def theta_par(self): return self. _details[-1]70 def theta_par(self): return self.buffer[-1] 71 71 72 72 def show(self): … … 81 81 print("par_coord", self.par_coord) 82 82 print("pd_coord", self.pd_coord) 83 print("theta par", self. _details[-1])83 print("theta par", self.buffer[-1]) 84 84 85 85 def build_details(kernel, pairs): … … 88 88 call_details = poly_details(kernel.info, weights) 89 89 else: 90 call_details = kernel.info.mono_details90 call_details = mono_details(kernel.info) 91 91 weights, values = [np.hstack(v) for v in (weights, values)] 92 92 weights = weights.astype(dtype=kernel.dtype)
Note: See TracChangeset
for help on using the changeset viewer.