Ignore:
Timestamp:
Aug 24, 2009 10:08:37 AM (15 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:
df4702f
Parents:
2339ff1e
Message:

change the orientation of vector for 2D models

Location:
sansmodels/src/sans/models/c_extensions
Files:
7 edited

Legend:

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

    r9316609 ra8d6888  
    1 /** [PYTHONCLASS] 
     1/** CCoreShellCylinderModel 
    22 * 
    33 * C extension  
     
    2020 
    2121/// Error object for raised exceptions 
    22 static PyObject * [PYTHONCLASS]Error = NULL; 
     22static PyObject * CCoreShellCylinderModelError = NULL; 
    2323 
    2424 
     
    3232    /// Model parameters 
    3333        CoreShellCylinderParameters model_pars; 
    34 } [PYTHONCLASS]; 
     34} CCoreShellCylinderModel; 
    3535 
    3636 
    3737static void 
    38 [PYTHONCLASS]_dealloc([PYTHONCLASS]* self) 
     38CCoreShellCylinderModel_dealloc(CCoreShellCylinderModel* self) 
    3939{ 
    4040    self->ob_type->tp_free((PyObject*)self); 
     
    4444 
    4545static PyObject * 
    46 [PYTHONCLASS]_new(PyTypeObject *type, PyObject *args, PyObject *kwds) 
     46CCoreShellCylinderModel_new(PyTypeObject *type, PyObject *args, PyObject *kwds) 
    4747{ 
    48     [PYTHONCLASS] *self; 
     48    CCoreShellCylinderModel *self; 
    4949     
    50     self = ([PYTHONCLASS] *)type->tp_alloc(type, 0); 
     50    self = (CCoreShellCylinderModel *)type->tp_alloc(type, 0); 
    5151    
    5252    return (PyObject *)self; 
     
    5454 
    5555static int 
    56 [PYTHONCLASS]_init([PYTHONCLASS] *self, PyObject *args, PyObject *kwds) 
     56CCoreShellCylinderModel_init(CCoreShellCylinderModel *self, PyObject *args, PyObject *kwds) 
    5757{ 
    5858    if (self != NULL) { 
     
    8383} 
    8484 
    85 static PyMemberDef [PYTHONCLASS]_members[] = { 
    86     {"params", T_OBJECT, offsetof([PYTHONCLASS], params), 0, 
     85static PyMemberDef CCoreShellCylinderModel_members[] = { 
     86    {"params", T_OBJECT, offsetof(CCoreShellCylinderModel, params), 0, 
    8787     "Parameters"}, 
    88     {"log", T_OBJECT, offsetof([PYTHONCLASS], log), 0, 
     88    {"log", T_OBJECT, offsetof(CCoreShellCylinderModel, log), 0, 
    8989     "Log"}, 
    9090    {NULL}  /* Sentinel */ 
     
    9595    @return double 
    9696*/ 
    97 double [PYTHONCLASS]_readDouble(PyObject *p) { 
     97double CCoreShellCylinderModel_readDouble(PyObject *p) { 
    9898    if (PyFloat_Check(p)==1) { 
    9999        return (double)(((PyFloatObject *)(p))->ob_fval); 
     
    113113 * @return: function value 
    114114 */ 
    115 static PyObject * run([PYTHONCLASS] *self, PyObject *args) { 
     115static PyObject * run(CCoreShellCylinderModel *self, PyObject *args) { 
    116116        double q_value, phi_value; 
    117117        PyObject* pars; 
     
    135135        // Get input and determine whether we have to supply a 1D or 2D return value. 
    136136        if ( !PyArg_ParseTuple(args,"O",&pars) ) { 
    137             PyErr_SetString([PYTHONCLASS]Error,  
    138                 "[PYTHONCLASS].run expects a q value."); 
     137            PyErr_SetString(CCoreShellCylinderModelError,  
     138                "CCoreShellCylinderModel.run expects a q value."); 
    139139                return NULL; 
    140140        } 
     
    146146            npars = PyList_GET_SIZE(pars);  
    147147            if(npars!=2) { 
    148                 PyErr_SetString([PYTHONCLASS]Error,  
    149                         "[PYTHONCLASS].run expects a double or a list of dimension 2."); 
     148                PyErr_SetString(CCoreShellCylinderModelError,  
     149                        "CCoreShellCylinderModel.run expects a double or a list of dimension 2."); 
    150150                return NULL; 
    151151            } 
    152152            // We have a vector q, get the q and phi values at which 
    153153            // to evaluate I(q,phi) 
    154             q_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,0)); 
    155             phi_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,1)); 
     154            q_value = CCoreShellCylinderModel_readDouble(PyList_GET_ITEM(pars,0)); 
     155            phi_value = CCoreShellCylinderModel_readDouble(PyList_GET_ITEM(pars,1)); 
    156156            // Skip zero 
    157157            if (q_value==0) { 
     
    163163 
    164164                // We have a scalar q, we will evaluate I(q) 
    165                 q_value = [PYTHONCLASS]_readDouble(pars);                
     165                q_value = CCoreShellCylinderModel_readDouble(pars);              
    166166                 
    167167                return Py_BuildValue("d",core_shell_cylinder_analytical_1D(&(self->model_pars),q_value)); 
     
    174174 * @return: function value 
    175175 */ 
    176 static PyObject * runXY([PYTHONCLASS] *self, PyObject *args) { 
     176static PyObject * runXY(CCoreShellCylinderModel *self, PyObject *args) { 
    177177        double qx_value, qy_value; 
    178178        PyObject* pars; 
     
    196196        // Get input and determine whether we have to supply a 1D or 2D return value. 
    197197        if ( !PyArg_ParseTuple(args,"O",&pars) ) { 
    198             PyErr_SetString([PYTHONCLASS]Error,  
    199                 "[PYTHONCLASS].run expects a q value."); 
     198            PyErr_SetString(CCoreShellCylinderModelError,  
     199                "CCoreShellCylinderModel.run expects a q value."); 
    200200                return NULL; 
    201201        } 
     
    207207            npars = PyList_GET_SIZE(pars);  
    208208            if(npars!=2) { 
    209                 PyErr_SetString([PYTHONCLASS]Error,  
    210                         "[PYTHONCLASS].run expects a double or a list of dimension 2."); 
     209                PyErr_SetString(CCoreShellCylinderModelError,  
     210                        "CCoreShellCylinderModel.run expects a double or a list of dimension 2."); 
    211211                return NULL; 
    212212            } 
    213213            // We have a vector q, get the qx and qy values at which 
    214214            // to evaluate I(qx,qy) 
    215             qx_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,0)); 
    216             qy_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,1)); 
     215            qx_value = CCoreShellCylinderModel_readDouble(PyList_GET_ITEM(pars,0)); 
     216            qy_value = CCoreShellCylinderModel_readDouble(PyList_GET_ITEM(pars,1)); 
    217217                return Py_BuildValue("d",core_shell_cylinder_analytical_2DXY(&(self->model_pars),qx_value,qy_value)); 
    218218 
     
    220220 
    221221                // We have a scalar q, we will evaluate I(q) 
    222                 qx_value = [PYTHONCLASS]_readDouble(pars);               
     222                qx_value = CCoreShellCylinderModel_readDouble(pars);             
    223223                 
    224224                return Py_BuildValue("d",core_shell_cylinder_analytical_1D(&(self->model_pars),qx_value)); 
     
    226226} 
    227227 
    228 static PyObject * reset([PYTHONCLASS] *self, PyObject *args) { 
     228static PyObject * reset(CCoreShellCylinderModel *self, PyObject *args) { 
    229229     
    230230 
     
    233233 
    234234 
    235 static PyMethodDef [PYTHONCLASS]_methods[] = { 
     235static PyMethodDef CCoreShellCylinderModel_methods[] = { 
    236236    {"run",      (PyCFunction)run     , METH_VARARGS, 
    237237      "Evaluate the model at a given Q or Q, phi"}, 
     
    245245}; 
    246246 
    247 static PyTypeObject [PYTHONCLASS]Type = { 
     247static PyTypeObject CCoreShellCylinderModelType = { 
    248248    PyObject_HEAD_INIT(NULL) 
    249249    0,                         /*ob_size*/ 
    250     "[PYTHONCLASS]",             /*tp_name*/ 
    251     sizeof([PYTHONCLASS]),             /*tp_basicsize*/ 
     250    "CCoreShellCylinderModel",             /*tp_name*/ 
     251    sizeof(CCoreShellCylinderModel),             /*tp_basicsize*/ 
    252252    0,                         /*tp_itemsize*/ 
    253     (destructor)[PYTHONCLASS]_dealloc, /*tp_dealloc*/ 
     253    (destructor)CCoreShellCylinderModel_dealloc, /*tp_dealloc*/ 
    254254    0,                         /*tp_print*/ 
    255255    0,                         /*tp_getattr*/ 
     
    267267    0,                         /*tp_as_buffer*/ 
    268268    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/ 
    269     "[PYTHONCLASS] objects",           /* tp_doc */ 
     269    "CCoreShellCylinderModel objects",           /* tp_doc */ 
    270270    0,                         /* tp_traverse */ 
    271271    0,                         /* tp_clear */ 
     
    274274    0,                         /* tp_iter */ 
    275275    0,                         /* tp_iternext */ 
    276     [PYTHONCLASS]_methods,             /* tp_methods */ 
    277     [PYTHONCLASS]_members,             /* tp_members */ 
     276    CCoreShellCylinderModel_methods,             /* tp_methods */ 
     277    CCoreShellCylinderModel_members,             /* tp_members */ 
    278278    0,                         /* tp_getset */ 
    279279    0,                         /* tp_base */ 
     
    282282    0,                         /* tp_descr_set */ 
    283283    0,                         /* tp_dictoffset */ 
    284     (initproc)[PYTHONCLASS]_init,      /* tp_init */ 
     284    (initproc)CCoreShellCylinderModel_init,      /* tp_init */ 
    285285    0,                         /* tp_alloc */ 
    286     [PYTHONCLASS]_new,                 /* tp_new */ 
     286    CCoreShellCylinderModel_new,                 /* tp_new */ 
    287287}; 
    288288 
     
    296296 * @param module: module to add the class to 
    297297 */  
    298 void add[PYTHONCLASS](PyObject *module) { 
     298void addCCoreShellCylinderModel(PyObject *module) { 
    299299        PyObject *d; 
    300300         
    301     if (PyType_Ready(&[PYTHONCLASS]Type) < 0) 
     301    if (PyType_Ready(&CCoreShellCylinderModelType) < 0) 
    302302        return; 
    303303 
    304     Py_INCREF(&[PYTHONCLASS]Type); 
    305     PyModule_AddObject(module, "[PYTHONCLASS]", (PyObject *)&[PYTHONCLASS]Type); 
     304    Py_INCREF(&CCoreShellCylinderModelType); 
     305    PyModule_AddObject(module, "CCoreShellCylinderModel", (PyObject *)&CCoreShellCylinderModelType); 
    306306     
    307307    d = PyModule_GetDict(module); 
    308     [PYTHONCLASS]Error = PyErr_NewException("[PYTHONCLASS].error", NULL, NULL); 
    309     PyDict_SetItemString(d, "[PYTHONCLASS]Error", [PYTHONCLASS]Error); 
    310 } 
    311  
     308    CCoreShellCylinderModelError = PyErr_NewException("CCoreShellCylinderModel.error", NULL, NULL); 
     309    PyDict_SetItemString(d, "CCoreShellCylinderModelError", CCoreShellCylinderModelError); 
     310} 
     311 
  • sansmodels/src/sans/models/c_extensions/CCoreShellModel.c

    r9316609 ra8d6888  
    1 /** [PYTHONCLASS] 
     1/** CCoreShellModel 
    22 * 
    33 * C extension  
     
    2020 
    2121/// Error object for raised exceptions 
    22 static PyObject * [PYTHONCLASS]Error = NULL; 
     22static PyObject * CCoreShellModelError = NULL; 
    2323 
    2424 
     
    3232    /// Model parameters 
    3333        CoreShellParameters model_pars; 
    34 } [PYTHONCLASS]; 
     34} CCoreShellModel; 
    3535 
    3636 
    3737static void 
    38 [PYTHONCLASS]_dealloc([PYTHONCLASS]* self) 
     38CCoreShellModel_dealloc(CCoreShellModel* self) 
    3939{ 
    4040    self->ob_type->tp_free((PyObject*)self); 
     
    4444 
    4545static PyObject * 
    46 [PYTHONCLASS]_new(PyTypeObject *type, PyObject *args, PyObject *kwds) 
     46CCoreShellModel_new(PyTypeObject *type, PyObject *args, PyObject *kwds) 
    4747{ 
    48     [PYTHONCLASS] *self; 
     48    CCoreShellModel *self; 
    4949     
    50     self = ([PYTHONCLASS] *)type->tp_alloc(type, 0); 
     50    self = (CCoreShellModel *)type->tp_alloc(type, 0); 
    5151    
    5252    return (PyObject *)self; 
     
    5454 
    5555static int 
    56 [PYTHONCLASS]_init([PYTHONCLASS] *self, PyObject *args, PyObject *kwds) 
     56CCoreShellModel_init(CCoreShellModel *self, PyObject *args, PyObject *kwds) 
    5757{ 
    5858    if (self != NULL) { 
     
    8080} 
    8181 
    82 static PyMemberDef [PYTHONCLASS]_members[] = { 
    83     {"params", T_OBJECT, offsetof([PYTHONCLASS], params), 0, 
     82static PyMemberDef CCoreShellModel_members[] = { 
     83    {"params", T_OBJECT, offsetof(CCoreShellModel, params), 0, 
    8484     "Parameters"}, 
    85     {"log", T_OBJECT, offsetof([PYTHONCLASS], log), 0, 
     85    {"log", T_OBJECT, offsetof(CCoreShellModel, log), 0, 
    8686     "Log"}, 
    8787    {NULL}  /* Sentinel */ 
     
    9292    @return double 
    9393*/ 
    94 double [PYTHONCLASS]_readDouble(PyObject *p) { 
     94double CCoreShellModel_readDouble(PyObject *p) { 
    9595    if (PyFloat_Check(p)==1) { 
    9696        return (double)(((PyFloatObject *)(p))->ob_fval); 
     
    110110 * @return: function value 
    111111 */ 
    112 static PyObject * run([PYTHONCLASS] *self, PyObject *args) { 
     112static PyObject * run(CCoreShellModel *self, PyObject *args) { 
    113113        double q_value, phi_value; 
    114114        PyObject* pars; 
     
    129129        // Get input and determine whether we have to supply a 1D or 2D return value. 
    130130        if ( !PyArg_ParseTuple(args,"O",&pars) ) { 
    131             PyErr_SetString([PYTHONCLASS]Error,  
    132                 "[PYTHONCLASS].run expects a q value."); 
     131            PyErr_SetString(CCoreShellModelError,  
     132                "CCoreShellModel.run expects a q value."); 
    133133                return NULL; 
    134134        } 
     
    140140            npars = PyList_GET_SIZE(pars);  
    141141            if(npars!=2) { 
    142                 PyErr_SetString([PYTHONCLASS]Error,  
    143                         "[PYTHONCLASS].run expects a double or a list of dimension 2."); 
     142                PyErr_SetString(CCoreShellModelError,  
     143                        "CCoreShellModel.run expects a double or a list of dimension 2."); 
    144144                return NULL; 
    145145            } 
    146146            // We have a vector q, get the q and phi values at which 
    147147            // to evaluate I(q,phi) 
    148             q_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,0)); 
    149             phi_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,1)); 
     148            q_value = CCoreShellModel_readDouble(PyList_GET_ITEM(pars,0)); 
     149            phi_value = CCoreShellModel_readDouble(PyList_GET_ITEM(pars,1)); 
    150150            // Skip zero 
    151151            if (q_value==0) { 
     
    157157 
    158158                // We have a scalar q, we will evaluate I(q) 
    159                 q_value = [PYTHONCLASS]_readDouble(pars);                
     159                q_value = CCoreShellModel_readDouble(pars);              
    160160                 
    161161                return Py_BuildValue("d",core_shell_analytical_1D(&(self->model_pars),q_value)); 
     
    168168 * @return: function value 
    169169 */ 
    170 static PyObject * runXY([PYTHONCLASS] *self, PyObject *args) { 
     170static PyObject * runXY(CCoreShellModel *self, PyObject *args) { 
    171171        double qx_value, qy_value; 
    172172        PyObject* pars; 
     
    187187        // Get input and determine whether we have to supply a 1D or 2D return value. 
    188188        if ( !PyArg_ParseTuple(args,"O",&pars) ) { 
    189             PyErr_SetString([PYTHONCLASS]Error,  
    190                 "[PYTHONCLASS].run expects a q value."); 
     189            PyErr_SetString(CCoreShellModelError,  
     190                "CCoreShellModel.run expects a q value."); 
    191191                return NULL; 
    192192        } 
     
    198198            npars = PyList_GET_SIZE(pars);  
    199199            if(npars!=2) { 
    200                 PyErr_SetString([PYTHONCLASS]Error,  
    201                         "[PYTHONCLASS].run expects a double or a list of dimension 2."); 
     200                PyErr_SetString(CCoreShellModelError,  
     201                        "CCoreShellModel.run expects a double or a list of dimension 2."); 
    202202                return NULL; 
    203203            } 
    204204            // We have a vector q, get the qx and qy values at which 
    205205            // to evaluate I(qx,qy) 
    206             qx_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,0)); 
    207             qy_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,1)); 
     206            qx_value = CCoreShellModel_readDouble(PyList_GET_ITEM(pars,0)); 
     207            qy_value = CCoreShellModel_readDouble(PyList_GET_ITEM(pars,1)); 
    208208                return Py_BuildValue("d",core_shell_analytical_2DXY(&(self->model_pars),qx_value,qy_value)); 
    209209 
     
    211211 
    212212                // We have a scalar q, we will evaluate I(q) 
    213                 qx_value = [PYTHONCLASS]_readDouble(pars);               
     213                qx_value = CCoreShellModel_readDouble(pars);             
    214214                 
    215215                return Py_BuildValue("d",core_shell_analytical_1D(&(self->model_pars),qx_value)); 
     
    217217} 
    218218 
    219 static PyObject * reset([PYTHONCLASS] *self, PyObject *args) { 
     219static PyObject * reset(CCoreShellModel *self, PyObject *args) { 
    220220     
    221221 
     
    224224 
    225225 
    226 static PyMethodDef [PYTHONCLASS]_methods[] = { 
     226static PyMethodDef CCoreShellModel_methods[] = { 
    227227    {"run",      (PyCFunction)run     , METH_VARARGS, 
    228228      "Evaluate the model at a given Q or Q, phi"}, 
     
    236236}; 
    237237 
    238 static PyTypeObject [PYTHONCLASS]Type = { 
     238static PyTypeObject CCoreShellModelType = { 
    239239    PyObject_HEAD_INIT(NULL) 
    240240    0,                         /*ob_size*/ 
    241     "[PYTHONCLASS]",             /*tp_name*/ 
    242     sizeof([PYTHONCLASS]),             /*tp_basicsize*/ 
     241    "CCoreShellModel",             /*tp_name*/ 
     242    sizeof(CCoreShellModel),             /*tp_basicsize*/ 
    243243    0,                         /*tp_itemsize*/ 
    244     (destructor)[PYTHONCLASS]_dealloc, /*tp_dealloc*/ 
     244    (destructor)CCoreShellModel_dealloc, /*tp_dealloc*/ 
    245245    0,                         /*tp_print*/ 
    246246    0,                         /*tp_getattr*/ 
     
    258258    0,                         /*tp_as_buffer*/ 
    259259    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/ 
    260     "[PYTHONCLASS] objects",           /* tp_doc */ 
     260    "CCoreShellModel objects",           /* tp_doc */ 
    261261    0,                         /* tp_traverse */ 
    262262    0,                         /* tp_clear */ 
     
    265265    0,                         /* tp_iter */ 
    266266    0,                         /* tp_iternext */ 
    267     [PYTHONCLASS]_methods,             /* tp_methods */ 
    268     [PYTHONCLASS]_members,             /* tp_members */ 
     267    CCoreShellModel_methods,             /* tp_methods */ 
     268    CCoreShellModel_members,             /* tp_members */ 
    269269    0,                         /* tp_getset */ 
    270270    0,                         /* tp_base */ 
     
    273273    0,                         /* tp_descr_set */ 
    274274    0,                         /* tp_dictoffset */ 
    275     (initproc)[PYTHONCLASS]_init,      /* tp_init */ 
     275    (initproc)CCoreShellModel_init,      /* tp_init */ 
    276276    0,                         /* tp_alloc */ 
    277     [PYTHONCLASS]_new,                 /* tp_new */ 
     277    CCoreShellModel_new,                 /* tp_new */ 
    278278}; 
    279279 
     
    287287 * @param module: module to add the class to 
    288288 */  
    289 void add[PYTHONCLASS](PyObject *module) { 
     289void addCCoreShellModel(PyObject *module) { 
    290290        PyObject *d; 
    291291         
    292     if (PyType_Ready(&[PYTHONCLASS]Type) < 0) 
     292    if (PyType_Ready(&CCoreShellModelType) < 0) 
    293293        return; 
    294294 
    295     Py_INCREF(&[PYTHONCLASS]Type); 
    296     PyModule_AddObject(module, "[PYTHONCLASS]", (PyObject *)&[PYTHONCLASS]Type); 
     295    Py_INCREF(&CCoreShellModelType); 
     296    PyModule_AddObject(module, "CCoreShellModel", (PyObject *)&CCoreShellModelType); 
    297297     
    298298    d = PyModule_GetDict(module); 
    299     [PYTHONCLASS]Error = PyErr_NewException("[PYTHONCLASS].error", NULL, NULL); 
    300     PyDict_SetItemString(d, "[PYTHONCLASS]Error", [PYTHONCLASS]Error); 
    301 } 
    302  
     299    CCoreShellModelError = PyErr_NewException("CCoreShellModel.error", NULL, NULL); 
     300    PyDict_SetItemString(d, "CCoreShellModelError", CCoreShellModelError); 
     301} 
     302 
  • sansmodels/src/sans/models/c_extensions/CCylinderModel.c

    r9316609 ra8d6888  
    1 /** [PYTHONCLASS] 
     1/** CCylinderModel 
    22 * 
    33 * C extension  
    44 * 
    55 * WARNING: THIS FILE WAS GENERATED BY WRAPPERGENERATOR.PY 
    6  *          DO NOT MODIFY THIS FILE, MODIFY Cylinder.h 
     6 *          DO NOT MODIFY THIS FILE, MODIFY cylinder.h 
    77 *          AND RE-RUN THE GENERATOR SCRIPT 
    88 * 
     
    1717#include <time.h> 
    1818 
    19 #include "Cylinder.h" 
     19#include "cylinder.h" 
    2020 
    2121/// Error object for raised exceptions 
    22 static PyObject * [PYTHONCLASS]Error = NULL; 
     22static PyObject * CCylinderModelError = NULL; 
    2323 
    2424 
     
    3232    /// Model parameters 
    3333        CylinderParameters model_pars; 
    34 } [PYTHONCLASS]; 
     34} CCylinderModel; 
    3535 
    3636 
    3737static void 
    38 [PYTHONCLASS]_dealloc([PYTHONCLASS]* self) 
     38CCylinderModel_dealloc(CCylinderModel* self) 
    3939{ 
    4040    self->ob_type->tp_free((PyObject*)self); 
     
    4444 
    4545static PyObject * 
    46 [PYTHONCLASS]_new(PyTypeObject *type, PyObject *args, PyObject *kwds) 
     46CCylinderModel_new(PyTypeObject *type, PyObject *args, PyObject *kwds) 
    4747{ 
    48     [PYTHONCLASS] *self; 
     48    CCylinderModel *self; 
    4949     
    50     self = ([PYTHONCLASS] *)type->tp_alloc(type, 0); 
     50    self = (CCylinderModel *)type->tp_alloc(type, 0); 
    5151    
    5252    return (PyObject *)self; 
     
    5454 
    5555static int 
    56 [PYTHONCLASS]_init([PYTHONCLASS] *self, PyObject *args, PyObject *kwds) 
     56CCylinderModel_init(CCylinderModel *self, PyObject *args, PyObject *kwds) 
    5757{ 
    5858    if (self != NULL) { 
     
    8080} 
    8181 
    82 static PyMemberDef [PYTHONCLASS]_members[] = { 
    83     {"params", T_OBJECT, offsetof([PYTHONCLASS], params), 0, 
     82static PyMemberDef CCylinderModel_members[] = { 
     83    {"params", T_OBJECT, offsetof(CCylinderModel, params), 0, 
    8484     "Parameters"}, 
    85     {"log", T_OBJECT, offsetof([PYTHONCLASS], log), 0, 
     85    {"log", T_OBJECT, offsetof(CCylinderModel, log), 0, 
    8686     "Log"}, 
    8787    {NULL}  /* Sentinel */ 
     
    9292    @return double 
    9393*/ 
    94 double [PYTHONCLASS]_readDouble(PyObject *p) { 
     94double CCylinderModel_readDouble(PyObject *p) { 
    9595    if (PyFloat_Check(p)==1) { 
    9696        return (double)(((PyFloatObject *)(p))->ob_fval); 
     
    110110 * @return: function value 
    111111 */ 
    112 static PyObject * run([PYTHONCLASS] *self, PyObject *args) { 
     112static PyObject * run(CCylinderModel *self, PyObject *args) { 
    113113        double q_value, phi_value; 
    114114        PyObject* pars; 
     
    129129        // Get input and determine whether we have to supply a 1D or 2D return value. 
    130130        if ( !PyArg_ParseTuple(args,"O",&pars) ) { 
    131             PyErr_SetString([PYTHONCLASS]Error,  
    132                 "[PYTHONCLASS].run expects a q value."); 
     131            PyErr_SetString(CCylinderModelError,  
     132                "CCylinderModel.run expects a q value."); 
    133133                return NULL; 
    134134        } 
     
    140140            npars = PyList_GET_SIZE(pars);  
    141141            if(npars!=2) { 
    142                 PyErr_SetString([PYTHONCLASS]Error,  
    143                         "[PYTHONCLASS].run expects a double or a list of dimension 2."); 
     142                PyErr_SetString(CCylinderModelError,  
     143                        "CCylinderModel.run expects a double or a list of dimension 2."); 
    144144                return NULL; 
    145145            } 
    146146            // We have a vector q, get the q and phi values at which 
    147147            // to evaluate I(q,phi) 
    148             q_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,0)); 
    149             phi_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,1)); 
     148            q_value = CCylinderModel_readDouble(PyList_GET_ITEM(pars,0)); 
     149            phi_value = CCylinderModel_readDouble(PyList_GET_ITEM(pars,1)); 
    150150            // Skip zero 
    151151            if (q_value==0) { 
    152152                return Py_BuildValue("d",0.0); 
    153153            } 
    154                 return Py_BuildValue("d",Cylinder_analytical_2D(&(self->model_pars),q_value,phi_value)); 
     154                return Py_BuildValue("d",cylinder_analytical_2D(&(self->model_pars),q_value,phi_value)); 
    155155 
    156156        } else { 
    157157 
    158158                // We have a scalar q, we will evaluate I(q) 
    159                 q_value = [PYTHONCLASS]_readDouble(pars);                
     159                q_value = CCylinderModel_readDouble(pars);               
    160160                 
    161                 return Py_BuildValue("d",Cylinder_analytical_1D(&(self->model_pars),q_value)); 
     161                return Py_BuildValue("d",cylinder_analytical_1D(&(self->model_pars),q_value)); 
    162162        }        
    163163} 
     
    168168 * @return: function value 
    169169 */ 
    170 static PyObject * runXY([PYTHONCLASS] *self, PyObject *args) { 
     170static PyObject * runXY(CCylinderModel *self, PyObject *args) { 
    171171        double qx_value, qy_value; 
    172172        PyObject* pars; 
     
    187187        // Get input and determine whether we have to supply a 1D or 2D return value. 
    188188        if ( !PyArg_ParseTuple(args,"O",&pars) ) { 
    189             PyErr_SetString([PYTHONCLASS]Error,  
    190                 "[PYTHONCLASS].run expects a q value."); 
     189            PyErr_SetString(CCylinderModelError,  
     190                "CCylinderModel.run expects a q value."); 
    191191                return NULL; 
    192192        } 
     
    198198            npars = PyList_GET_SIZE(pars);  
    199199            if(npars!=2) { 
    200                 PyErr_SetString([PYTHONCLASS]Error,  
    201                         "[PYTHONCLASS].run expects a double or a list of dimension 2."); 
     200                PyErr_SetString(CCylinderModelError,  
     201                        "CCylinderModel.run expects a double or a list of dimension 2."); 
    202202                return NULL; 
    203203            } 
    204204            // We have a vector q, get the qx and qy values at which 
    205205            // to evaluate I(qx,qy) 
    206             qx_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,0)); 
    207             qy_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,1)); 
    208                 return Py_BuildValue("d",Cylinder_analytical_2DXY(&(self->model_pars),qx_value,qy_value)); 
     206            qx_value = CCylinderModel_readDouble(PyList_GET_ITEM(pars,0)); 
     207            qy_value = CCylinderModel_readDouble(PyList_GET_ITEM(pars,1)); 
     208                return Py_BuildValue("d",cylinder_analytical_2DXY(&(self->model_pars),qx_value,qy_value)); 
    209209 
    210210        } else { 
    211211 
    212212                // We have a scalar q, we will evaluate I(q) 
    213                 qx_value = [PYTHONCLASS]_readDouble(pars);               
     213                qx_value = CCylinderModel_readDouble(pars);              
    214214                 
    215                 return Py_BuildValue("d",Cylinder_analytical_1D(&(self->model_pars),qx_value)); 
     215                return Py_BuildValue("d",cylinder_analytical_1D(&(self->model_pars),qx_value)); 
    216216        }        
    217217} 
    218218 
    219 static PyObject * reset([PYTHONCLASS] *self, PyObject *args) { 
     219static PyObject * reset(CCylinderModel *self, PyObject *args) { 
    220220     
    221221 
     
    224224 
    225225 
    226 static PyMethodDef [PYTHONCLASS]_methods[] = { 
     226static PyMethodDef CCylinderModel_methods[] = { 
    227227    {"run",      (PyCFunction)run     , METH_VARARGS, 
    228228      "Evaluate the model at a given Q or Q, phi"}, 
     
    236236}; 
    237237 
    238 static PyTypeObject [PYTHONCLASS]Type = { 
     238static PyTypeObject CCylinderModelType = { 
    239239    PyObject_HEAD_INIT(NULL) 
    240240    0,                         /*ob_size*/ 
    241     "[PYTHONCLASS]",             /*tp_name*/ 
    242     sizeof([PYTHONCLASS]),             /*tp_basicsize*/ 
     241    "CCylinderModel",             /*tp_name*/ 
     242    sizeof(CCylinderModel),             /*tp_basicsize*/ 
    243243    0,                         /*tp_itemsize*/ 
    244     (destructor)[PYTHONCLASS]_dealloc, /*tp_dealloc*/ 
     244    (destructor)CCylinderModel_dealloc, /*tp_dealloc*/ 
    245245    0,                         /*tp_print*/ 
    246246    0,                         /*tp_getattr*/ 
     
    258258    0,                         /*tp_as_buffer*/ 
    259259    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/ 
    260     "[PYTHONCLASS] objects",           /* tp_doc */ 
     260    "CCylinderModel objects",           /* tp_doc */ 
    261261    0,                         /* tp_traverse */ 
    262262    0,                         /* tp_clear */ 
     
    265265    0,                         /* tp_iter */ 
    266266    0,                         /* tp_iternext */ 
    267     [PYTHONCLASS]_methods,             /* tp_methods */ 
    268     [PYTHONCLASS]_members,             /* tp_members */ 
     267    CCylinderModel_methods,             /* tp_methods */ 
     268    CCylinderModel_members,             /* tp_members */ 
    269269    0,                         /* tp_getset */ 
    270270    0,                         /* tp_base */ 
     
    273273    0,                         /* tp_descr_set */ 
    274274    0,                         /* tp_dictoffset */ 
    275     (initproc)[PYTHONCLASS]_init,      /* tp_init */ 
     275    (initproc)CCylinderModel_init,      /* tp_init */ 
    276276    0,                         /* tp_alloc */ 
    277     [PYTHONCLASS]_new,                 /* tp_new */ 
     277    CCylinderModel_new,                 /* tp_new */ 
    278278}; 
    279279 
     
    287287 * @param module: module to add the class to 
    288288 */  
    289 void add[PYTHONCLASS](PyObject *module) { 
     289void addCCylinderModel(PyObject *module) { 
    290290        PyObject *d; 
    291291         
    292     if (PyType_Ready(&[PYTHONCLASS]Type) < 0) 
     292    if (PyType_Ready(&CCylinderModelType) < 0) 
    293293        return; 
    294294 
    295     Py_INCREF(&[PYTHONCLASS]Type); 
    296     PyModule_AddObject(module, "[PYTHONCLASS]", (PyObject *)&[PYTHONCLASS]Type); 
     295    Py_INCREF(&CCylinderModelType); 
     296    PyModule_AddObject(module, "CCylinderModel", (PyObject *)&CCylinderModelType); 
    297297     
    298298    d = PyModule_GetDict(module); 
    299     [PYTHONCLASS]Error = PyErr_NewException("[PYTHONCLASS].error", NULL, NULL); 
    300     PyDict_SetItemString(d, "[PYTHONCLASS]Error", [PYTHONCLASS]Error); 
    301 } 
    302  
     299    CCylinderModelError = PyErr_NewException("CCylinderModel.error", NULL, NULL); 
     300    PyDict_SetItemString(d, "CCylinderModelError", CCylinderModelError); 
     301} 
     302 
  • sansmodels/src/sans/models/c_extensions/CEllipsoidModel.c

    r9316609 ra8d6888  
    1 /** [PYTHONCLASS] 
     1/** CEllipsoidModel 
    22 * 
    33 * C extension  
     
    2020 
    2121/// Error object for raised exceptions 
    22 static PyObject * [PYTHONCLASS]Error = NULL; 
     22static PyObject * CEllipsoidModelError = NULL; 
    2323 
    2424 
     
    3232    /// Model parameters 
    3333        EllipsoidParameters model_pars; 
    34 } [PYTHONCLASS]; 
     34} CEllipsoidModel; 
    3535 
    3636 
    3737static void 
    38 [PYTHONCLASS]_dealloc([PYTHONCLASS]* self) 
     38CEllipsoidModel_dealloc(CEllipsoidModel* self) 
    3939{ 
    4040    self->ob_type->tp_free((PyObject*)self); 
     
    4444 
    4545static PyObject * 
    46 [PYTHONCLASS]_new(PyTypeObject *type, PyObject *args, PyObject *kwds) 
     46CEllipsoidModel_new(PyTypeObject *type, PyObject *args, PyObject *kwds) 
    4747{ 
    48     [PYTHONCLASS] *self; 
     48    CEllipsoidModel *self; 
    4949     
    50     self = ([PYTHONCLASS] *)type->tp_alloc(type, 0); 
     50    self = (CEllipsoidModel *)type->tp_alloc(type, 0); 
    5151    
    5252    return (PyObject *)self; 
     
    5454 
    5555static int 
    56 [PYTHONCLASS]_init([PYTHONCLASS] *self, PyObject *args, PyObject *kwds) 
     56CEllipsoidModel_init(CEllipsoidModel *self, PyObject *args, PyObject *kwds) 
    5757{ 
    5858    if (self != NULL) { 
     
    8080} 
    8181 
    82 static PyMemberDef [PYTHONCLASS]_members[] = { 
    83     {"params", T_OBJECT, offsetof([PYTHONCLASS], params), 0, 
     82static PyMemberDef CEllipsoidModel_members[] = { 
     83    {"params", T_OBJECT, offsetof(CEllipsoidModel, params), 0, 
    8484     "Parameters"}, 
    85     {"log", T_OBJECT, offsetof([PYTHONCLASS], log), 0, 
     85    {"log", T_OBJECT, offsetof(CEllipsoidModel, log), 0, 
    8686     "Log"}, 
    8787    {NULL}  /* Sentinel */ 
     
    9292    @return double 
    9393*/ 
    94 double [PYTHONCLASS]_readDouble(PyObject *p) { 
     94double CEllipsoidModel_readDouble(PyObject *p) { 
    9595    if (PyFloat_Check(p)==1) { 
    9696        return (double)(((PyFloatObject *)(p))->ob_fval); 
     
    110110 * @return: function value 
    111111 */ 
    112 static PyObject * run([PYTHONCLASS] *self, PyObject *args) { 
     112static PyObject * run(CEllipsoidModel *self, PyObject *args) { 
    113113        double q_value, phi_value; 
    114114        PyObject* pars; 
     
    129129        // Get input and determine whether we have to supply a 1D or 2D return value. 
    130130        if ( !PyArg_ParseTuple(args,"O",&pars) ) { 
    131             PyErr_SetString([PYTHONCLASS]Error,  
    132                 "[PYTHONCLASS].run expects a q value."); 
     131            PyErr_SetString(CEllipsoidModelError,  
     132                "CEllipsoidModel.run expects a q value."); 
    133133                return NULL; 
    134134        } 
     
    140140            npars = PyList_GET_SIZE(pars);  
    141141            if(npars!=2) { 
    142                 PyErr_SetString([PYTHONCLASS]Error,  
    143                         "[PYTHONCLASS].run expects a double or a list of dimension 2."); 
     142                PyErr_SetString(CEllipsoidModelError,  
     143                        "CEllipsoidModel.run expects a double or a list of dimension 2."); 
    144144                return NULL; 
    145145            } 
    146146            // We have a vector q, get the q and phi values at which 
    147147            // to evaluate I(q,phi) 
    148             q_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,0)); 
    149             phi_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,1)); 
     148            q_value = CEllipsoidModel_readDouble(PyList_GET_ITEM(pars,0)); 
     149            phi_value = CEllipsoidModel_readDouble(PyList_GET_ITEM(pars,1)); 
    150150            // Skip zero 
    151151            if (q_value==0) { 
     
    157157 
    158158                // We have a scalar q, we will evaluate I(q) 
    159                 q_value = [PYTHONCLASS]_readDouble(pars);                
     159                q_value = CEllipsoidModel_readDouble(pars);              
    160160                 
    161161                return Py_BuildValue("d",ellipsoid_analytical_1D(&(self->model_pars),q_value)); 
     
    168168 * @return: function value 
    169169 */ 
    170 static PyObject * runXY([PYTHONCLASS] *self, PyObject *args) { 
     170static PyObject * runXY(CEllipsoidModel *self, PyObject *args) { 
    171171        double qx_value, qy_value; 
    172172        PyObject* pars; 
     
    187187        // Get input and determine whether we have to supply a 1D or 2D return value. 
    188188        if ( !PyArg_ParseTuple(args,"O",&pars) ) { 
    189             PyErr_SetString([PYTHONCLASS]Error,  
    190                 "[PYTHONCLASS].run expects a q value."); 
     189            PyErr_SetString(CEllipsoidModelError,  
     190                "CEllipsoidModel.run expects a q value."); 
    191191                return NULL; 
    192192        } 
     
    198198            npars = PyList_GET_SIZE(pars);  
    199199            if(npars!=2) { 
    200                 PyErr_SetString([PYTHONCLASS]Error,  
    201                         "[PYTHONCLASS].run expects a double or a list of dimension 2."); 
     200                PyErr_SetString(CEllipsoidModelError,  
     201                        "CEllipsoidModel.run expects a double or a list of dimension 2."); 
    202202                return NULL; 
    203203            } 
    204204            // We have a vector q, get the qx and qy values at which 
    205205            // to evaluate I(qx,qy) 
    206             qx_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,0)); 
    207             qy_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,1)); 
     206            qx_value = CEllipsoidModel_readDouble(PyList_GET_ITEM(pars,0)); 
     207            qy_value = CEllipsoidModel_readDouble(PyList_GET_ITEM(pars,1)); 
    208208                return Py_BuildValue("d",ellipsoid_analytical_2DXY(&(self->model_pars),qx_value,qy_value)); 
    209209 
     
    211211 
    212212                // We have a scalar q, we will evaluate I(q) 
    213                 qx_value = [PYTHONCLASS]_readDouble(pars);               
     213                qx_value = CEllipsoidModel_readDouble(pars);             
    214214                 
    215215                return Py_BuildValue("d",ellipsoid_analytical_1D(&(self->model_pars),qx_value)); 
     
    217217} 
    218218 
    219 static PyObject * reset([PYTHONCLASS] *self, PyObject *args) { 
     219static PyObject * reset(CEllipsoidModel *self, PyObject *args) { 
    220220     
    221221 
     
    224224 
    225225 
    226 static PyMethodDef [PYTHONCLASS]_methods[] = { 
     226static PyMethodDef CEllipsoidModel_methods[] = { 
    227227    {"run",      (PyCFunction)run     , METH_VARARGS, 
    228228      "Evaluate the model at a given Q or Q, phi"}, 
     
    236236}; 
    237237 
    238 static PyTypeObject [PYTHONCLASS]Type = { 
     238static PyTypeObject CEllipsoidModelType = { 
    239239    PyObject_HEAD_INIT(NULL) 
    240240    0,                         /*ob_size*/ 
    241     "[PYTHONCLASS]",             /*tp_name*/ 
    242     sizeof([PYTHONCLASS]),             /*tp_basicsize*/ 
     241    "CEllipsoidModel",             /*tp_name*/ 
     242    sizeof(CEllipsoidModel),             /*tp_basicsize*/ 
    243243    0,                         /*tp_itemsize*/ 
    244     (destructor)[PYTHONCLASS]_dealloc, /*tp_dealloc*/ 
     244    (destructor)CEllipsoidModel_dealloc, /*tp_dealloc*/ 
    245245    0,                         /*tp_print*/ 
    246246    0,                         /*tp_getattr*/ 
     
    258258    0,                         /*tp_as_buffer*/ 
    259259    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/ 
    260     "[PYTHONCLASS] objects",           /* tp_doc */ 
     260    "CEllipsoidModel objects",           /* tp_doc */ 
    261261    0,                         /* tp_traverse */ 
    262262    0,                         /* tp_clear */ 
     
    265265    0,                         /* tp_iter */ 
    266266    0,                         /* tp_iternext */ 
    267     [PYTHONCLASS]_methods,             /* tp_methods */ 
    268     [PYTHONCLASS]_members,             /* tp_members */ 
     267    CEllipsoidModel_methods,             /* tp_methods */ 
     268    CEllipsoidModel_members,             /* tp_members */ 
    269269    0,                         /* tp_getset */ 
    270270    0,                         /* tp_base */ 
     
    273273    0,                         /* tp_descr_set */ 
    274274    0,                         /* tp_dictoffset */ 
    275     (initproc)[PYTHONCLASS]_init,      /* tp_init */ 
     275    (initproc)CEllipsoidModel_init,      /* tp_init */ 
    276276    0,                         /* tp_alloc */ 
    277     [PYTHONCLASS]_new,                 /* tp_new */ 
     277    CEllipsoidModel_new,                 /* tp_new */ 
    278278}; 
    279279 
     
    287287 * @param module: module to add the class to 
    288288 */  
    289 void add[PYTHONCLASS](PyObject *module) { 
     289void addCEllipsoidModel(PyObject *module) { 
    290290        PyObject *d; 
    291291         
    292     if (PyType_Ready(&[PYTHONCLASS]Type) < 0) 
     292    if (PyType_Ready(&CEllipsoidModelType) < 0) 
    293293        return; 
    294294 
    295     Py_INCREF(&[PYTHONCLASS]Type); 
    296     PyModule_AddObject(module, "[PYTHONCLASS]", (PyObject *)&[PYTHONCLASS]Type); 
     295    Py_INCREF(&CEllipsoidModelType); 
     296    PyModule_AddObject(module, "CEllipsoidModel", (PyObject *)&CEllipsoidModelType); 
    297297     
    298298    d = PyModule_GetDict(module); 
    299     [PYTHONCLASS]Error = PyErr_NewException("[PYTHONCLASS].error", NULL, NULL); 
    300     PyDict_SetItemString(d, "[PYTHONCLASS]Error", [PYTHONCLASS]Error); 
    301 } 
    302  
     299    CEllipsoidModelError = PyErr_NewException("CEllipsoidModel.error", NULL, NULL); 
     300    PyDict_SetItemString(d, "CEllipsoidModelError", CEllipsoidModelError); 
     301} 
     302 
  • sansmodels/src/sans/models/c_extensions/CEllipticalCylinderModel.c

    r9316609 ra8d6888  
    1 /** [PYTHONCLASS] 
     1/** CEllipticalCylinderModel 
    22 * 
    33 * C extension  
     
    2020 
    2121/// Error object for raised exceptions 
    22 static PyObject * [PYTHONCLASS]Error = NULL; 
     22static PyObject * CEllipticalCylinderModelError = NULL; 
    2323 
    2424 
     
    3232    /// Model parameters 
    3333        EllipticalCylinderParameters model_pars; 
    34 } [PYTHONCLASS]; 
     34} CEllipticalCylinderModel; 
    3535 
    3636 
    3737static void 
    38 [PYTHONCLASS]_dealloc([PYTHONCLASS]* self) 
     38CEllipticalCylinderModel_dealloc(CEllipticalCylinderModel* self) 
    3939{ 
    4040    self->ob_type->tp_free((PyObject*)self); 
     
    4444 
    4545static PyObject * 
    46 [PYTHONCLASS]_new(PyTypeObject *type, PyObject *args, PyObject *kwds) 
     46CEllipticalCylinderModel_new(PyTypeObject *type, PyObject *args, PyObject *kwds) 
    4747{ 
    48     [PYTHONCLASS] *self; 
     48    CEllipticalCylinderModel *self; 
    4949     
    50     self = ([PYTHONCLASS] *)type->tp_alloc(type, 0); 
     50    self = (CEllipticalCylinderModel *)type->tp_alloc(type, 0); 
    5151    
    5252    return (PyObject *)self; 
     
    5454 
    5555static int 
    56 [PYTHONCLASS]_init([PYTHONCLASS] *self, PyObject *args, PyObject *kwds) 
     56CEllipticalCylinderModel_init(CEllipticalCylinderModel *self, PyObject *args, PyObject *kwds) 
    5757{ 
    5858    if (self != NULL) { 
     
    8282} 
    8383 
    84 static PyMemberDef [PYTHONCLASS]_members[] = { 
    85     {"params", T_OBJECT, offsetof([PYTHONCLASS], params), 0, 
     84static PyMemberDef CEllipticalCylinderModel_members[] = { 
     85    {"params", T_OBJECT, offsetof(CEllipticalCylinderModel, params), 0, 
    8686     "Parameters"}, 
    87     {"log", T_OBJECT, offsetof([PYTHONCLASS], log), 0, 
     87    {"log", T_OBJECT, offsetof(CEllipticalCylinderModel, log), 0, 
    8888     "Log"}, 
    8989    {NULL}  /* Sentinel */ 
     
    9494    @return double 
    9595*/ 
    96 double [PYTHONCLASS]_readDouble(PyObject *p) { 
     96double CEllipticalCylinderModel_readDouble(PyObject *p) { 
    9797    if (PyFloat_Check(p)==1) { 
    9898        return (double)(((PyFloatObject *)(p))->ob_fval); 
     
    112112 * @return: function value 
    113113 */ 
    114 static PyObject * run([PYTHONCLASS] *self, PyObject *args) { 
     114static PyObject * run(CEllipticalCylinderModel *self, PyObject *args) { 
    115115        double q_value, phi_value; 
    116116        PyObject* pars; 
     
    133133        // Get input and determine whether we have to supply a 1D or 2D return value. 
    134134        if ( !PyArg_ParseTuple(args,"O",&pars) ) { 
    135             PyErr_SetString([PYTHONCLASS]Error,  
    136                 "[PYTHONCLASS].run expects a q value."); 
     135            PyErr_SetString(CEllipticalCylinderModelError,  
     136                "CEllipticalCylinderModel.run expects a q value."); 
    137137                return NULL; 
    138138        } 
     
    144144            npars = PyList_GET_SIZE(pars);  
    145145            if(npars!=2) { 
    146                 PyErr_SetString([PYTHONCLASS]Error,  
    147                         "[PYTHONCLASS].run expects a double or a list of dimension 2."); 
     146                PyErr_SetString(CEllipticalCylinderModelError,  
     147                        "CEllipticalCylinderModel.run expects a double or a list of dimension 2."); 
    148148                return NULL; 
    149149            } 
    150150            // We have a vector q, get the q and phi values at which 
    151151            // to evaluate I(q,phi) 
    152             q_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,0)); 
    153             phi_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,1)); 
     152            q_value = CEllipticalCylinderModel_readDouble(PyList_GET_ITEM(pars,0)); 
     153            phi_value = CEllipticalCylinderModel_readDouble(PyList_GET_ITEM(pars,1)); 
    154154            // Skip zero 
    155155            if (q_value==0) { 
     
    161161 
    162162                // We have a scalar q, we will evaluate I(q) 
    163                 q_value = [PYTHONCLASS]_readDouble(pars);                
     163                q_value = CEllipticalCylinderModel_readDouble(pars);             
    164164                 
    165165                return Py_BuildValue("d",elliptical_cylinder_analytical_1D(&(self->model_pars),q_value)); 
     
    172172 * @return: function value 
    173173 */ 
    174 static PyObject * runXY([PYTHONCLASS] *self, PyObject *args) { 
     174static PyObject * runXY(CEllipticalCylinderModel *self, PyObject *args) { 
    175175        double qx_value, qy_value; 
    176176        PyObject* pars; 
     
    193193        // Get input and determine whether we have to supply a 1D or 2D return value. 
    194194        if ( !PyArg_ParseTuple(args,"O",&pars) ) { 
    195             PyErr_SetString([PYTHONCLASS]Error,  
    196                 "[PYTHONCLASS].run expects a q value."); 
     195            PyErr_SetString(CEllipticalCylinderModelError,  
     196                "CEllipticalCylinderModel.run expects a q value."); 
    197197                return NULL; 
    198198        } 
     
    204204            npars = PyList_GET_SIZE(pars);  
    205205            if(npars!=2) { 
    206                 PyErr_SetString([PYTHONCLASS]Error,  
    207                         "[PYTHONCLASS].run expects a double or a list of dimension 2."); 
     206                PyErr_SetString(CEllipticalCylinderModelError,  
     207                        "CEllipticalCylinderModel.run expects a double or a list of dimension 2."); 
    208208                return NULL; 
    209209            } 
    210210            // We have a vector q, get the qx and qy values at which 
    211211            // to evaluate I(qx,qy) 
    212             qx_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,0)); 
    213             qy_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,1)); 
     212            qx_value = CEllipticalCylinderModel_readDouble(PyList_GET_ITEM(pars,0)); 
     213            qy_value = CEllipticalCylinderModel_readDouble(PyList_GET_ITEM(pars,1)); 
    214214                return Py_BuildValue("d",elliptical_cylinder_analytical_2DXY(&(self->model_pars),qx_value,qy_value)); 
    215215 
     
    217217 
    218218                // We have a scalar q, we will evaluate I(q) 
    219                 qx_value = [PYTHONCLASS]_readDouble(pars);               
     219                qx_value = CEllipticalCylinderModel_readDouble(pars);            
    220220                 
    221221                return Py_BuildValue("d",elliptical_cylinder_analytical_1D(&(self->model_pars),qx_value)); 
     
    223223} 
    224224 
    225 static PyObject * reset([PYTHONCLASS] *self, PyObject *args) { 
     225static PyObject * reset(CEllipticalCylinderModel *self, PyObject *args) { 
    226226     
    227227 
     
    230230 
    231231 
    232 static PyMethodDef [PYTHONCLASS]_methods[] = { 
     232static PyMethodDef CEllipticalCylinderModel_methods[] = { 
    233233    {"run",      (PyCFunction)run     , METH_VARARGS, 
    234234      "Evaluate the model at a given Q or Q, phi"}, 
     
    242242}; 
    243243 
    244 static PyTypeObject [PYTHONCLASS]Type = { 
     244static PyTypeObject CEllipticalCylinderModelType = { 
    245245    PyObject_HEAD_INIT(NULL) 
    246246    0,                         /*ob_size*/ 
    247     "[PYTHONCLASS]",             /*tp_name*/ 
    248     sizeof([PYTHONCLASS]),             /*tp_basicsize*/ 
     247    "CEllipticalCylinderModel",             /*tp_name*/ 
     248    sizeof(CEllipticalCylinderModel),             /*tp_basicsize*/ 
    249249    0,                         /*tp_itemsize*/ 
    250     (destructor)[PYTHONCLASS]_dealloc, /*tp_dealloc*/ 
     250    (destructor)CEllipticalCylinderModel_dealloc, /*tp_dealloc*/ 
    251251    0,                         /*tp_print*/ 
    252252    0,                         /*tp_getattr*/ 
     
    264264    0,                         /*tp_as_buffer*/ 
    265265    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/ 
    266     "[PYTHONCLASS] objects",           /* tp_doc */ 
     266    "CEllipticalCylinderModel objects",           /* tp_doc */ 
    267267    0,                         /* tp_traverse */ 
    268268    0,                         /* tp_clear */ 
     
    271271    0,                         /* tp_iter */ 
    272272    0,                         /* tp_iternext */ 
    273     [PYTHONCLASS]_methods,             /* tp_methods */ 
    274     [PYTHONCLASS]_members,             /* tp_members */ 
     273    CEllipticalCylinderModel_methods,             /* tp_methods */ 
     274    CEllipticalCylinderModel_members,             /* tp_members */ 
    275275    0,                         /* tp_getset */ 
    276276    0,                         /* tp_base */ 
     
    279279    0,                         /* tp_descr_set */ 
    280280    0,                         /* tp_dictoffset */ 
    281     (initproc)[PYTHONCLASS]_init,      /* tp_init */ 
     281    (initproc)CEllipticalCylinderModel_init,      /* tp_init */ 
    282282    0,                         /* tp_alloc */ 
    283     [PYTHONCLASS]_new,                 /* tp_new */ 
     283    CEllipticalCylinderModel_new,                 /* tp_new */ 
    284284}; 
    285285 
     
    293293 * @param module: module to add the class to 
    294294 */  
    295 void add[PYTHONCLASS](PyObject *module) { 
     295void addCEllipticalCylinderModel(PyObject *module) { 
    296296        PyObject *d; 
    297297         
    298     if (PyType_Ready(&[PYTHONCLASS]Type) < 0) 
     298    if (PyType_Ready(&CEllipticalCylinderModelType) < 0) 
    299299        return; 
    300300 
    301     Py_INCREF(&[PYTHONCLASS]Type); 
    302     PyModule_AddObject(module, "[PYTHONCLASS]", (PyObject *)&[PYTHONCLASS]Type); 
     301    Py_INCREF(&CEllipticalCylinderModelType); 
     302    PyModule_AddObject(module, "CEllipticalCylinderModel", (PyObject *)&CEllipticalCylinderModelType); 
    303303     
    304304    d = PyModule_GetDict(module); 
    305     [PYTHONCLASS]Error = PyErr_NewException("[PYTHONCLASS].error", NULL, NULL); 
    306     PyDict_SetItemString(d, "[PYTHONCLASS]Error", [PYTHONCLASS]Error); 
    307 } 
    308  
     305    CEllipticalCylinderModelError = PyErr_NewException("CEllipticalCylinderModel.error", NULL, NULL); 
     306    PyDict_SetItemString(d, "CEllipticalCylinderModelError", CEllipticalCylinderModelError); 
     307} 
     308 
  • sansmodels/src/sans/models/c_extensions/CParallelepipedModel.c

    r8a48713 ra8d6888  
    44 * 
    55 * WARNING: THIS FILE WAS GENERATED BY WRAPPERGENERATOR.PY 
    6  *          DO NOT MODIFY THIS FILE, MODIFY ..\c_extensions\parallelepiped.h 
     6 *          DO NOT MODIFY THIS FILE, MODIFY parallelepiped.h 
    77 *          AND RE-RUN THE GENERATOR SCRIPT 
    88 * 
     
    1717#include <time.h> 
    1818 
    19 #include "..\c_extensions\parallelepiped.h" 
     19#include "parallelepiped.h" 
    2020 
    2121/// Error object for raised exceptions 
     
    6262         
    6363        // Initialize parameter dictionary 
     64        PyDict_SetItemString(self->params,"short_a",Py_BuildValue("d",35.000000)); 
     65        PyDict_SetItemString(self->params,"short_b",Py_BuildValue("d",75.000000)); 
    6466        PyDict_SetItemString(self->params,"scale",Py_BuildValue("d",1.000000)); 
    65         PyDict_SetItemString(self->params,"longer_edgeB",Py_BuildValue("d",75.000000)); 
    66         PyDict_SetItemString(self->params,"longuest_edgeC",Py_BuildValue("d",400.000000)); 
    67         PyDict_SetItemString(self->params,"parallel_phi",Py_BuildValue("d",1.000000)); 
    68         PyDict_SetItemString(self->params,"parallel_theta",Py_BuildValue("d",1.000000)); 
     67        PyDict_SetItemString(self->params,"long_c",Py_BuildValue("d",400.000000)); 
     68        PyDict_SetItemString(self->params,"parallel_psi",Py_BuildValue("d",0.000000)); 
     69        PyDict_SetItemString(self->params,"parallel_phi",Py_BuildValue("d",0.000000)); 
     70        PyDict_SetItemString(self->params,"parallel_theta",Py_BuildValue("d",0.000000)); 
    6971        PyDict_SetItemString(self->params,"background",Py_BuildValue("d",0.000000)); 
    70         PyDict_SetItemString(self->params,"short_edgeA",Py_BuildValue("d",35.000000)); 
    7172        PyDict_SetItemString(self->params,"contrast",Py_BuildValue("d",0.000005)); 
    7273 
     
    119120         
    120121        // Reader parameter dictionary 
     122    self->model_pars.short_a = PyFloat_AsDouble( PyDict_GetItemString(self->params, "short_a") ); 
     123    self->model_pars.short_b = PyFloat_AsDouble( PyDict_GetItemString(self->params, "short_b") ); 
    121124    self->model_pars.scale = PyFloat_AsDouble( PyDict_GetItemString(self->params, "scale") ); 
    122     self->model_pars.longer_edgeB = PyFloat_AsDouble( PyDict_GetItemString(self->params, "longer_edgeB") ); 
    123     self->model_pars.longuest_edgeC = PyFloat_AsDouble( PyDict_GetItemString(self->params, "longuest_edgeC") ); 
     125    self->model_pars.long_c = PyFloat_AsDouble( PyDict_GetItemString(self->params, "long_c") ); 
     126    self->model_pars.parallel_psi = PyFloat_AsDouble( PyDict_GetItemString(self->params, "parallel_psi") ); 
    124127    self->model_pars.parallel_phi = PyFloat_AsDouble( PyDict_GetItemString(self->params, "parallel_phi") ); 
    125128    self->model_pars.parallel_theta = PyFloat_AsDouble( PyDict_GetItemString(self->params, "parallel_theta") ); 
    126129    self->model_pars.background = PyFloat_AsDouble( PyDict_GetItemString(self->params, "background") ); 
    127     self->model_pars.short_edgeA = PyFloat_AsDouble( PyDict_GetItemString(self->params, "short_edgeA") ); 
    128130    self->model_pars.contrast = PyFloat_AsDouble( PyDict_GetItemString(self->params, "contrast") ); 
    129131 
     
    154156                return Py_BuildValue("d",0.0); 
    155157            } 
    156                 return Py_BuildValue("d",_analytical_2D(&(self->model_pars),q_value,phi_value)); 
     158                return Py_BuildValue("d",parallelepiped_analytical_2D(&(self->model_pars),q_value,phi_value)); 
    157159 
    158160        } else { 
     
    161163                q_value = CParallelepipedModel_readDouble(pars);                 
    162164                 
    163                 return Py_BuildValue("d",_analytical_1D(&(self->model_pars),q_value)); 
     165                return Py_BuildValue("d",parallelepiped_analytical_1D(&(self->model_pars),q_value)); 
    164166        }        
    165167} 
     
    178180         
    179181        // Reader parameter dictionary 
     182    self->model_pars.short_a = PyFloat_AsDouble( PyDict_GetItemString(self->params, "short_a") ); 
     183    self->model_pars.short_b = PyFloat_AsDouble( PyDict_GetItemString(self->params, "short_b") ); 
    180184    self->model_pars.scale = PyFloat_AsDouble( PyDict_GetItemString(self->params, "scale") ); 
    181     self->model_pars.longer_edgeB = PyFloat_AsDouble( PyDict_GetItemString(self->params, "longer_edgeB") ); 
    182     self->model_pars.longuest_edgeC = PyFloat_AsDouble( PyDict_GetItemString(self->params, "longuest_edgeC") ); 
     185    self->model_pars.long_c = PyFloat_AsDouble( PyDict_GetItemString(self->params, "long_c") ); 
     186    self->model_pars.parallel_psi = PyFloat_AsDouble( PyDict_GetItemString(self->params, "parallel_psi") ); 
    183187    self->model_pars.parallel_phi = PyFloat_AsDouble( PyDict_GetItemString(self->params, "parallel_phi") ); 
    184188    self->model_pars.parallel_theta = PyFloat_AsDouble( PyDict_GetItemString(self->params, "parallel_theta") ); 
    185189    self->model_pars.background = PyFloat_AsDouble( PyDict_GetItemString(self->params, "background") ); 
    186     self->model_pars.short_edgeA = PyFloat_AsDouble( PyDict_GetItemString(self->params, "short_edgeA") ); 
    187190    self->model_pars.contrast = PyFloat_AsDouble( PyDict_GetItemString(self->params, "contrast") ); 
    188191 
     
    209212            qx_value = CParallelepipedModel_readDouble(PyList_GET_ITEM(pars,0)); 
    210213            qy_value = CParallelepipedModel_readDouble(PyList_GET_ITEM(pars,1)); 
    211                 return Py_BuildValue("d",_analytical_2DXY(&(self->model_pars),qx_value,qy_value)); 
     214                return Py_BuildValue("d",parallelepiped_analytical_2DXY(&(self->model_pars),qx_value,qy_value)); 
    212215 
    213216        } else { 
     
    216219                qx_value = CParallelepipedModel_readDouble(pars);                
    217220                 
    218                 return Py_BuildValue("d",_analytical_1D(&(self->model_pars),qx_value)); 
     221                return Py_BuildValue("d",parallelepiped_analytical_1D(&(self->model_pars),qx_value)); 
    219222        }        
    220223} 
  • sansmodels/src/sans/models/c_extensions/CSphereModel.c

    r9316609 ra8d6888  
    1 /** [PYTHONCLASS] 
     1/** CSphereModel 
    22 * 
    33 * C extension  
     
    2020 
    2121/// Error object for raised exceptions 
    22 static PyObject * [PYTHONCLASS]Error = NULL; 
     22static PyObject * CSphereModelError = NULL; 
    2323 
    2424 
     
    3232    /// Model parameters 
    3333        SphereParameters model_pars; 
    34 } [PYTHONCLASS]; 
     34} CSphereModel; 
    3535 
    3636 
    3737static void 
    38 [PYTHONCLASS]_dealloc([PYTHONCLASS]* self) 
     38CSphereModel_dealloc(CSphereModel* self) 
    3939{ 
    4040    self->ob_type->tp_free((PyObject*)self); 
     
    4444 
    4545static PyObject * 
    46 [PYTHONCLASS]_new(PyTypeObject *type, PyObject *args, PyObject *kwds) 
     46CSphereModel_new(PyTypeObject *type, PyObject *args, PyObject *kwds) 
    4747{ 
    48     [PYTHONCLASS] *self; 
    49      
    50     self = ([PYTHONCLASS] *)type->tp_alloc(type, 0); 
     48    CSphereModel *self; 
     49     
     50    self = (CSphereModel *)type->tp_alloc(type, 0); 
    5151    
    5252    return (PyObject *)self; 
     
    5454 
    5555static int 
    56 [PYTHONCLASS]_init([PYTHONCLASS] *self, PyObject *args, PyObject *kwds) 
     56CSphereModel_init(CSphereModel *self, PyObject *args, PyObject *kwds) 
    5757{ 
    5858    if (self != NULL) { 
     
    6262         
    6363        // Initialize parameter dictionary 
    64         PyDict_SetItemString(self->params,"scale",Py_BuildValue("d",0.000001)); 
     64        PyDict_SetItemString(self->params,"scale",Py_BuildValue("d",1.000000)); 
    6565        PyDict_SetItemString(self->params,"radius",Py_BuildValue("d",60.000000)); 
    6666        PyDict_SetItemString(self->params,"background",Py_BuildValue("d",0.000000)); 
    67         PyDict_SetItemString(self->params,"contrast",Py_BuildValue("d",1.000000)); 
     67        PyDict_SetItemString(self->params,"contrast",Py_BuildValue("d",0.000001)); 
    6868 
    6969          
     
    7777} 
    7878 
    79 static PyMemberDef [PYTHONCLASS]_members[] = { 
    80     {"params", T_OBJECT, offsetof([PYTHONCLASS], params), 0, 
     79static PyMemberDef CSphereModel_members[] = { 
     80    {"params", T_OBJECT, offsetof(CSphereModel, params), 0, 
    8181     "Parameters"}, 
    82     {"log", T_OBJECT, offsetof([PYTHONCLASS], log), 0, 
     82    {"log", T_OBJECT, offsetof(CSphereModel, log), 0, 
    8383     "Log"}, 
    8484    {NULL}  /* Sentinel */ 
     
    8989    @return double 
    9090*/ 
    91 double [PYTHONCLASS]_readDouble(PyObject *p) { 
     91double CSphereModel_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([PYTHONCLASS] *self, PyObject *args) { 
     109static PyObject * run(CSphereModel *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([PYTHONCLASS]Error,  
    126                 "[PYTHONCLASS].run expects a q value."); 
     125            PyErr_SetString(CSphereModelError,  
     126                "CSphereModel.run expects a q value."); 
    127127                return NULL; 
    128128        } 
     
    134134            npars = PyList_GET_SIZE(pars);  
    135135            if(npars!=2) { 
    136                 PyErr_SetString([PYTHONCLASS]Error,  
    137                         "[PYTHONCLASS].run expects a double or a list of dimension 2."); 
     136                PyErr_SetString(CSphereModelError,  
     137                        "CSphereModel.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 = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,0)); 
    143             phi_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,1)); 
     142            q_value = CSphereModel_readDouble(PyList_GET_ITEM(pars,0)); 
     143            phi_value = CSphereModel_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 = [PYTHONCLASS]_readDouble(pars);                
     153                q_value = CSphereModel_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([PYTHONCLASS] *self, PyObject *args) { 
     164static PyObject * runXY(CSphereModel *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([PYTHONCLASS]Error,  
    181                 "[PYTHONCLASS].run expects a q value."); 
     180            PyErr_SetString(CSphereModelError,  
     181                "CSphereModel.run expects a q value."); 
    182182                return NULL; 
    183183        } 
     
    189189            npars = PyList_GET_SIZE(pars);  
    190190            if(npars!=2) { 
    191                 PyErr_SetString([PYTHONCLASS]Error,  
    192                         "[PYTHONCLASS].run expects a double or a list of dimension 2."); 
     191                PyErr_SetString(CSphereModelError,  
     192                        "CSphereModel.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 = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,0)); 
    198             qy_value = [PYTHONCLASS]_readDouble(PyList_GET_ITEM(pars,1)); 
     197            qx_value = CSphereModel_readDouble(PyList_GET_ITEM(pars,0)); 
     198            qy_value = CSphereModel_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 = [PYTHONCLASS]_readDouble(pars);               
     204                qx_value = CSphereModel_readDouble(pars);                
    205205                 
    206206                return Py_BuildValue("d",sphere_analytical_1D(&(self->model_pars),qx_value)); 
     
    208208} 
    209209 
    210 static PyObject * reset([PYTHONCLASS] *self, PyObject *args) { 
     210static PyObject * reset(CSphereModel *self, PyObject *args) { 
    211211     
    212212 
     
    215215 
    216216 
    217 static PyMethodDef [PYTHONCLASS]_methods[] = { 
     217static PyMethodDef CSphereModel_methods[] = { 
    218218    {"run",      (PyCFunction)run     , METH_VARARGS, 
    219219      "Evaluate the model at a given Q or Q, phi"}, 
     
    227227}; 
    228228 
    229 static PyTypeObject [PYTHONCLASS]Type = { 
     229static PyTypeObject CSphereModelType = { 
    230230    PyObject_HEAD_INIT(NULL) 
    231231    0,                         /*ob_size*/ 
    232     "[PYTHONCLASS]",             /*tp_name*/ 
    233     sizeof([PYTHONCLASS]),             /*tp_basicsize*/ 
     232    "CSphereModel",             /*tp_name*/ 
     233    sizeof(CSphereModel),             /*tp_basicsize*/ 
    234234    0,                         /*tp_itemsize*/ 
    235     (destructor)[PYTHONCLASS]_dealloc, /*tp_dealloc*/ 
     235    (destructor)CSphereModel_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     "[PYTHONCLASS] objects",           /* tp_doc */ 
     251    "CSphereModel objects",           /* tp_doc */ 
    252252    0,                         /* tp_traverse */ 
    253253    0,                         /* tp_clear */ 
     
    256256    0,                         /* tp_iter */ 
    257257    0,                         /* tp_iternext */ 
    258     [PYTHONCLASS]_methods,             /* tp_methods */ 
    259     [PYTHONCLASS]_members,             /* tp_members */ 
     258    CSphereModel_methods,             /* tp_methods */ 
     259    CSphereModel_members,             /* tp_members */ 
    260260    0,                         /* tp_getset */ 
    261261    0,                         /* tp_base */ 
     
    264264    0,                         /* tp_descr_set */ 
    265265    0,                         /* tp_dictoffset */ 
    266     (initproc)[PYTHONCLASS]_init,      /* tp_init */ 
     266    (initproc)CSphereModel_init,      /* tp_init */ 
    267267    0,                         /* tp_alloc */ 
    268     [PYTHONCLASS]_new,                 /* tp_new */ 
     268    CSphereModel_new,                 /* tp_new */ 
    269269}; 
    270270 
     
    278278 * @param module: module to add the class to 
    279279 */  
    280 void add[PYTHONCLASS](PyObject *module) { 
     280void addCSphereModel(PyObject *module) { 
    281281        PyObject *d; 
    282282         
    283     if (PyType_Ready(&[PYTHONCLASS]Type) < 0) 
     283    if (PyType_Ready(&CSphereModelType) < 0) 
    284284        return; 
    285285 
    286     Py_INCREF(&[PYTHONCLASS]Type); 
    287     PyModule_AddObject(module, "[PYTHONCLASS]", (PyObject *)&[PYTHONCLASS]Type); 
     286    Py_INCREF(&CSphereModelType); 
     287    PyModule_AddObject(module, "CSphereModel", (PyObject *)&CSphereModelType); 
    288288     
    289289    d = PyModule_GetDict(module); 
    290     [PYTHONCLASS]Error = PyErr_NewException("[PYTHONCLASS].error", NULL, NULL); 
    291     PyDict_SetItemString(d, "[PYTHONCLASS]Error", [PYTHONCLASS]Error); 
    292 } 
    293  
     290    CSphereModelError = PyErr_NewException("CSphereModel.error", NULL, NULL); 
     291    PyDict_SetItemString(d, "CSphereModelError", CSphereModelError); 
     292} 
     293 
Note: See TracChangeset for help on using the changeset viewer.