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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sansmodels/src/sans/models/c_models/CMultiShellModel.cpp

    r9bd69098 ra8d6888  
    173173    return PyArray_Return(result);  
    174174 } 
    175 /** 
    176  * Function to call to evaluate model 
    177  * @param args: input numpy array  [q[],phi[]] 
    178  * @return: numpy array object  
    179  */ 
    180 static PyObject * evaluateTwoDim( MultiShellModel* model,  
    181                               PyArrayObject *q, PyArrayObject *phi) 
    182  { 
    183     PyArrayObject *result; 
    184     //check validity of input vectors 
    185     if (q->nd != 1 || q->descr->type_num != PyArray_DOUBLE 
    186         || phi->nd != 1 || phi->descr->type_num != PyArray_DOUBLE 
    187         || phi->dimensions[0] != q->dimensions[0]){ 
    188       
    189         //const char * message= "Invalid array: q->nd=%d,type_num=%d\n",q->nd,q->descr->type_num; 
    190         PyErr_SetString(PyExc_ValueError ,"wrong input");  
    191         return NULL; 
    192     } 
    193         result= (PyArrayObject *)PyArray_FromDims(q->nd,(int*)(q->dimensions), PyArray_DOUBLE); 
    194  
    195         if (result == NULL){ 
    196             const char * message= "Could not create result "; 
    197         PyErr_SetString(PyExc_RuntimeError , message); 
    198             return NULL; 
    199         } 
    200          
    201     for (int i = 0; i < q->dimensions[0]; i++) { 
    202       double q_value = *(double *)(q->data + i*q->strides[0]); 
    203       double phi_value = *(double *)(phi->data + i*phi->strides[0]); 
    204       double *result_value = (double *)(result->data + i*result->strides[0]); 
    205       if (q_value == 0) 
    206           *result_value = 0.0; 
    207       else 
    208           *result_value = model->evaluate_rphi(q_value, phi_value); 
    209     } 
    210     return PyArray_Return(result);  
    211  } 
     175 
    212176 /** 
    213177 * Function to call to evaluate model 
     
    230194    
    231195        if (PyArray_Check(x) && PyArray_Check(y)) { 
    232             x_len = dims[0]= x->dimensions[0]; 
    233         y_len = dims[1]= y->dimensions[1]; 
     196                 
     197            x_len = dims[1]= x->dimensions[1]; 
     198        y_len = dims[0]= y->dimensions[0]; 
    234199             
    235200            // Make a new double matrix of same dims 
     
    244209        for ( i=0; i< x_len; i++) { 
    245210            for ( j=0; j< y_len; j++) { 
    246                 double x_value = *(double *)(x->data + i*x->strides[0]); 
    247                     double y_value = *(double *)(y->data + j*y->strides[1]); 
     211                double x_value = *(double *)(x->data + i*x->strides[1]); 
     212                    double y_value = *(double *)(y->data + j*y->strides[0]); 
    248213                        double *result_value = (double *)(result->data + 
    249                               i*result->strides[0] + j*result->strides[1]); 
     214                              i*result->strides[1] + j*result->strides[0]); 
    250215                        *result_value = (*model)(x_value, y_value); 
    251216            }            
Note: See TracChangeset for help on using the changeset viewer.