Changeset 8d62008 in sasmodels for sasmodels/details.py


Ignore:
Timestamp:
Apr 15, 2016 10:16:41 AM (8 years ago)
Author:
Paul Kienzle <pkienzle@…>
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
Message:

remove circular dependency between details/modelinfo; fix compare Calculator type hint

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/details.py

    r7ae2b7f r8d62008  
    55except ImportError: 
    66    pass 
     7else: 
     8    from .modelinfo import ModelInfo 
    79 
    810 
     
    1012    parts = None  # type: List["CallDetails"] 
    1113    def __init__(self, model_info): 
     14        # type: (ModelInfo) -> None 
    1215        parameters = model_info.parameters 
    1316        max_pd = parameters.max_pd 
    1417        npars = parameters.npars 
    1518        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') 
    1720 
    1821        # 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] 
    2629 
    2730        # 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 
    3232 
    3333    @property 
     
    5353 
    5454    @property 
    55     def num_active(self): return self._details[-4] 
     55    def num_active(self): return self.buffer[-4] 
    5656    @num_active.setter 
    57     def num_active(self, v): self._details[-4] = v 
     57    def num_active(self, v): self.buffer[-4] = v 
    5858 
    5959    @property 
    60     def total_pd(self): return self._details[-3] 
     60    def total_pd(self): return self.buffer[-3] 
    6161    @total_pd.setter 
    62     def total_pd(self, v): self._details[-3] = v 
     62    def total_pd(self, v): self.buffer[-3] = v 
    6363 
    6464    @property 
    65     def num_coord(self): return self._details[-2] 
     65    def num_coord(self): return self.buffer[-2] 
    6666    @num_coord.setter 
    67     def num_coord(self, v): self._details[-2] = v 
     67    def num_coord(self, v): self.buffer[-2] = v 
    6868 
    6969    @property 
    70     def theta_par(self): return self._details[-1] 
     70    def theta_par(self): return self.buffer[-1] 
    7171 
    7272    def show(self): 
     
    8181        print("par_coord", self.par_coord) 
    8282        print("pd_coord", self.pd_coord) 
    83         print("theta par", self._details[-1]) 
     83        print("theta par", self.buffer[-1]) 
    8484 
    8585def build_details(kernel, pairs): 
     
    8888        call_details = poly_details(kernel.info, weights) 
    8989    else: 
    90         call_details = kernel.info.mono_details 
     90        call_details = mono_details(kernel.info) 
    9191    weights, values = [np.hstack(v) for v in (weights, values)] 
    9292    weights = weights.astype(dtype=kernel.dtype) 
Note: See TracChangeset for help on using the changeset viewer.