Ignore:
Timestamp:
Oct 28, 2008 3:22:22 PM (16 years ago)
Author:
Gervaise Alina <gervyh@…>
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:
92320e5
Parents:
89fef2c
Message:

added description to model

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sansmodels/src/sans/models/c_extensions/CSphereModel.c

    rae3ce4e r9316609  
    1 /** CSphereModel 
     1/** [PYTHONCLASS] 
    22 * 
    33 * C extension  
     
    2020 
    2121/// Error object for raised exceptions 
    22 static PyObject * CSphereModelError = NULL; 
     22static PyObject * [PYTHONCLASS]Error = NULL; 
    2323 
    2424 
     
    3232    /// Model parameters 
    3333        SphereParameters model_pars; 
    34 } CSphereModel; 
     34} [PYTHONCLASS]; 
    3535 
    3636 
    3737static void 
    38 CSphereModel_dealloc(CSphereModel* self) 
     38[PYTHONCLASS]_dealloc([PYTHONCLASS]* self) 
    3939{ 
    4040    self->ob_type->tp_free((PyObject*)self); 
     
    4444 
    4545static PyObject * 
    46 CSphereModel_new(PyTypeObject *type, PyObject *args, PyObject *kwds) 
     46[PYTHONCLASS]_new(PyTypeObject *type, PyObject *args, PyObject *kwds) 
    4747{ 
    48     CSphereModel *self; 
    49      
    50     self = (CSphereModel *)type->tp_alloc(type, 0); 
     48    [PYTHONCLASS] *self; 
     49     
     50    self = ([PYTHONCLASS] *)type->tp_alloc(type, 0); 
    5151    
    5252    return (PyObject *)self; 
     
    5454 
    5555static int 
    56 CSphereModel_init(CSphereModel *self, PyObject *args, PyObject *kwds) 
     56[PYTHONCLASS]_init([PYTHONCLASS] *self, PyObject *args, PyObject *kwds) 
    5757{ 
    5858    if (self != NULL) { 
     
    7777} 
    7878 
    79 static PyMemberDef CSphereModel_members[] = { 
    80     {"params", T_OBJECT, offsetof(CSphereModel, params), 0, 
     79static PyMemberDef [PYTHONCLASS]_members[] = { 
     80    {"params", T_OBJECT, offsetof([PYTHONCLASS], params), 0, 
    8181     "Parameters"}, 
    82     {"log", T_OBJECT, offsetof(CSphereModel, log), 0, 
     82    {"log", T_OBJECT, offsetof([PYTHONCLASS], log), 0, 
    8383     "Log"}, 
    8484    {NULL}  /* Sentinel */ 
     
    8989    @return double 
    9090*/ 
    91 double CSphereModel_readDouble(PyObject *p) { 
     91double [PYTHONCLASS]_readDouble(PyObject *p) { 
    9292    if (PyFloat_Check(p)==1) { 
    9393        return (double)(((PyFloatObject *)(p))->ob_fval); 
     
    107107 * @return: function value 
    108108 */ 
    109 static PyObject * run(CSphereModel *self, PyObject *args) { 
     109static PyObject * run([PYTHONCLASS] *self, PyObject *args) { 
    110110        double q_value, phi_value; 
    111111        PyObject* pars; 
     
    123123        // Get input and determine whether we have to supply a 1D or 2D return value. 
    124124        if ( !PyArg_ParseTuple(args,"O",&pars) ) { 
    125             PyErr_SetString(CSphereModelError,  
    126                 "CSphereModel.run expects a q value."); 
     125            PyErr_SetString([PYTHONCLASS]Error,  
     126                "[PYTHONCLASS].run expects a q value."); 
    127127                return NULL; 
    128128        } 
     
    134134            npars = PyList_GET_SIZE(pars);  
    135135            if(npars!=2) { 
    136                 PyErr_SetString(CSphereModelError,  
    137                         "CSphereModel.run expects a double or a list of dimension 2."); 
     136                PyErr_SetString([PYTHONCLASS]Error,  
     137                        "[PYTHONCLASS].run expects a double or a list of dimension 2."); 
    138138                return NULL; 
    139139            } 
    140140            // We have a vector q, get the q and phi values at which 
    141141            // to evaluate I(q,phi) 
    142             q_value = CSphereModel_readDouble(PyList_GET_ITEM(pars,0)); 
    143             phi_value = CSphereModel_readDouble(PyList_GET_ITEM(pars,1)); 
     142            q_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,0)); 
     143            phi_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,1)); 
    144144            // Skip zero 
    145145            if (q_value==0) { 
     
    151151 
    152152                // We have a scalar q, we will evaluate I(q) 
    153                 q_value = CSphereModel_readDouble(pars);                 
     153                q_value = [PYTHONCLASS]_readDouble(pars);                
    154154                 
    155155                return Py_BuildValue("d",sphere_analytical_1D(&(self->model_pars),q_value)); 
     
    162162 * @return: function value 
    163163 */ 
    164 static PyObject * runXY(CSphereModel *self, PyObject *args) { 
     164static PyObject * runXY([PYTHONCLASS] *self, PyObject *args) { 
    165165        double qx_value, qy_value; 
    166166        PyObject* pars; 
     
    178178        // Get input and determine whether we have to supply a 1D or 2D return value. 
    179179        if ( !PyArg_ParseTuple(args,"O",&pars) ) { 
    180             PyErr_SetString(CSphereModelError,  
    181                 "CSphereModel.run expects a q value."); 
     180            PyErr_SetString([PYTHONCLASS]Error,  
     181                "[PYTHONCLASS].run expects a q value."); 
    182182                return NULL; 
    183183        } 
     
    189189            npars = PyList_GET_SIZE(pars);  
    190190            if(npars!=2) { 
    191                 PyErr_SetString(CSphereModelError,  
    192                         "CSphereModel.run expects a double or a list of dimension 2."); 
     191                PyErr_SetString([PYTHONCLASS]Error,  
     192                        "[PYTHONCLASS].run expects a double or a list of dimension 2."); 
    193193                return NULL; 
    194194            } 
    195195            // We have a vector q, get the qx and qy values at which 
    196196            // to evaluate I(qx,qy) 
    197             qx_value = CSphereModel_readDouble(PyList_GET_ITEM(pars,0)); 
    198             qy_value = CSphereModel_readDouble(PyList_GET_ITEM(pars,1)); 
     197            qx_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,0)); 
     198            qy_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,1)); 
    199199                return Py_BuildValue("d",sphere_analytical_2DXY(&(self->model_pars),qx_value,qy_value)); 
    200200 
     
    202202 
    203203                // We have a scalar q, we will evaluate I(q) 
    204                 qx_value = CSphereModel_readDouble(pars);                
     204                qx_value = [PYTHONCLASS]_readDouble(pars);               
    205205                 
    206206                return Py_BuildValue("d",sphere_analytical_1D(&(self->model_pars),qx_value)); 
     
    208208} 
    209209 
    210 static PyObject * reset(CSphereModel *self, PyObject *args) { 
     210static PyObject * reset([PYTHONCLASS] *self, PyObject *args) { 
    211211     
    212212 
     
    215215 
    216216 
    217 static PyMethodDef CSphereModel_methods[] = { 
     217static PyMethodDef [PYTHONCLASS]_methods[] = { 
    218218    {"run",      (PyCFunction)run     , METH_VARARGS, 
    219219      "Evaluate the model at a given Q or Q, phi"}, 
     
    227227}; 
    228228 
    229 static PyTypeObject CSphereModelType = { 
     229static PyTypeObject [PYTHONCLASS]Type = { 
    230230    PyObject_HEAD_INIT(NULL) 
    231231    0,                         /*ob_size*/ 
    232     "CSphereModel",             /*tp_name*/ 
    233     sizeof(CSphereModel),             /*tp_basicsize*/ 
     232    "[PYTHONCLASS]",             /*tp_name*/ 
     233    sizeof([PYTHONCLASS]),             /*tp_basicsize*/ 
    234234    0,                         /*tp_itemsize*/ 
    235     (destructor)CSphereModel_dealloc, /*tp_dealloc*/ 
     235    (destructor)[PYTHONCLASS]_dealloc, /*tp_dealloc*/ 
    236236    0,                         /*tp_print*/ 
    237237    0,                         /*tp_getattr*/ 
     
    249249    0,                         /*tp_as_buffer*/ 
    250250    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/ 
    251     "CSphereModel objects",           /* tp_doc */ 
     251    "[PYTHONCLASS] objects",           /* tp_doc */ 
    252252    0,                         /* tp_traverse */ 
    253253    0,                         /* tp_clear */ 
     
    256256    0,                         /* tp_iter */ 
    257257    0,                         /* tp_iternext */ 
    258     CSphereModel_methods,             /* tp_methods */ 
    259     CSphereModel_members,             /* tp_members */ 
     258    [PYTHONCLASS]_methods,             /* tp_methods */ 
     259    [PYTHONCLASS]_members,             /* tp_members */ 
    260260    0,                         /* tp_getset */ 
    261261    0,                         /* tp_base */ 
     
    264264    0,                         /* tp_descr_set */ 
    265265    0,                         /* tp_dictoffset */ 
    266     (initproc)CSphereModel_init,      /* tp_init */ 
     266    (initproc)[PYTHONCLASS]_init,      /* tp_init */ 
    267267    0,                         /* tp_alloc */ 
    268     CSphereModel_new,                 /* tp_new */ 
     268    [PYTHONCLASS]_new,                 /* tp_new */ 
    269269}; 
    270270 
     
    278278 * @param module: module to add the class to 
    279279 */  
    280 void addCSphereModel(PyObject *module) { 
     280void add[PYTHONCLASS](PyObject *module) { 
    281281        PyObject *d; 
    282282         
    283     if (PyType_Ready(&CSphereModelType) < 0) 
     283    if (PyType_Ready(&[PYTHONCLASS]Type) < 0) 
    284284        return; 
    285285 
    286     Py_INCREF(&CSphereModelType); 
    287     PyModule_AddObject(module, "CSphereModel", (PyObject *)&CSphereModelType); 
     286    Py_INCREF(&[PYTHONCLASS]Type); 
     287    PyModule_AddObject(module, "[PYTHONCLASS]", (PyObject *)&[PYTHONCLASS]Type); 
    288288     
    289289    d = PyModule_GetDict(module); 
    290     CSphereModelError = PyErr_NewException("CSphereModel.error", NULL, NULL); 
    291     PyDict_SetItemString(d, "CSphereModelError", CSphereModelError); 
    292 } 
    293  
     290    [PYTHONCLASS]Error = PyErr_NewException("[PYTHONCLASS].error", NULL, NULL); 
     291    PyDict_SetItemString(d, "[PYTHONCLASS]Error", [PYTHONCLASS]Error); 
     292} 
     293 
Note: See TracChangeset for help on using the changeset viewer.