Changeset 5da3cc5 in sasview for sansmodels/src/python_wrapper


Ignore:
Timestamp:
Jul 10, 2012 9:59:33 AM (12 years ago)
Author:
Kieran Campbell <kieranrcampbell@…>
Branches:
master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
83d9120
Parents:
c2e5898
Message:

Implemented erf(x) in libfunc.c and added pass down to C++ of multfactor

Location:
sansmodels/src/python_wrapper
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • sansmodels/src/python_wrapper/WrapperGenerator.py

    rfa6db8b r5da3cc5  
    9292        # Model category 
    9393        self.category = None 
     94        # Whether model belongs to multifunc 
     95        self.is_multifunc = False 
    9496        ## output directory for wrappers 
    9597        self.output_dir = output_dir 
     
    228230                    raise ValueError, "Could not parse file %s" % self.file 
    229231 
    230  
     232            # is_multifunc 
     233            key = "[MULTIPLICITY_INFO]" 
     234            if line.count(key) > 0: 
     235                self.is_multifunc = True 
     236                try: 
     237                    index = line.index(key) 
     238                    toks = line[index:].split("=") 
     239                    self.multiplicity_info = toks[1].lstrip().rstrip() 
     240                except: 
     241                    raise ValueError, "Could not parse file %s" % self.file 
    231242 
    232243            # Catch struct name 
     
    331342            newline = self.replaceToken(newline,  
    332343                                        "[MODELSTRUCT]", self.structName) 
     344 
     345            # Sort model initialization based on multifunc 
     346            if(self.is_multifunc): 
     347                line = "int level = 1;\nPyArg_ParseTuple(args,\"i\",&level);\n" 
     348                line += "self->model = new " + self.pythonClass + "(level);" 
     349            else: 
     350                line = "self->model = new " + self.pythonClass + "();" 
     351     
     352            newline = self.replaceToken(newline,"[INITIALIZE_MODEL]", 
     353                                            line) 
    333354             
    334355            # Dictionary initialization 
     
    465486            newline = self.replaceToken(newline,  
    466487                                        "[PAR_DETAILS]", self.details) 
     488             
     489            # Call base constructor 
     490            if self.is_multifunc: 
     491                newline = self.replaceToken(newline,"[CALL_CPYTHON_INIT]", 
     492                                            'C' + self.pythonClass + ".__init__(self,multfactor)\n\tself.is_multifunc = True") 
     493                newline = self.replaceToken(newline,"[MULTIPLICITY_INFO]",self.multiplicity_info) 
     494            else: 
     495                newline = self.replaceToken(newline,"[CALL_CPYTHON_INIT]", 
     496                                            'C' + self.pythonClass + ".__init__(self)\n\tself.is_multifunc = False") 
     497                newline = self.replaceToken(newline,"[MULTIPLICITY_INFO]","None") 
     498 
    467499            
    468500            # fixed list  details 
  • sansmodels/src/python_wrapper/classTemplate.txt

    re08bd5b r5da3cc5  
    8686        self->params = PyDict_New(); 
    8787        self->dispersion = PyDict_New(); 
    88         self->model = new [CMODEL](); 
    89          
     88 
     89        [INITIALIZE_MODEL] 
     90 
    9091        [INITDICTIONARY] 
    9192          
  • sansmodels/src/python_wrapper/modelTemplate.txt

    rfa6db8b r5da3cc5  
    4343    """ 
    4444         
    45     def __init__(self): 
     45    def __init__(self,multfactor=1): 
    4646        """ Initialization """ 
    4747        self.__dict__ = {} 
     
    5050        BaseComponent.__init__(self) 
    5151        #apply([CPYTHONCLASS].__init__, (self,))  
    52         [CPYTHONCLASS].__init__(self) 
    53          
     52 
     53        [CALL_CPYTHON_INIT] 
     54                         
    5455        ## Name of the model 
    5556        self.name = "[PYTHONCLASS]" 
     
    7071 
    7172        self.category = [CATEGORY] 
     73        self.multiplicity_info = [MULTIPLICITY_INFO] 
     74         
    7275 
    7376    def __setstate__(self, state): 
Note: See TracChangeset for help on using the changeset viewer.