Hi Seb,

Try running relax with the debug flag, this might show what the
ImportError of this module really is.

Regards,

Edward



On 26 August 2011 10:10,  <[email protected]> wrote:
> Author: semor
> Date: Fri Aug 26 10:10:59 2011
> New Revision: 14465
>
> URL: http://svn.gna.org/viewcvs/relax?rev=14465&view=rev
> Log:
> A further step at getting the chosen equation passed from Python to C.
>
> Not clear if it works.
> Need for fixing the dependency check, as relax thinks the C module is
> not compiled, although compilation seems to happen without error...
>
>
> Modified:
>    branches/inversion-recovery/maths_fns/relax_fit.c
>
> Modified: branches/inversion-recovery/maths_fns/relax_fit.c
> URL: 
> http://svn.gna.org/viewcvs/relax/branches/inversion-recovery/maths_fns/relax_fit.c?rev=14465&r1=14464&r2=14465&view=diff
> ==============================================================================
> --- branches/inversion-recovery/maths_fns/relax_fit.c (original)
> +++ branches/inversion-recovery/maths_fns/relax_fit.c Fri Aug 26 10:10:59 2011
> @@ -32,20 +32,21 @@
>  static PyObject *
>  setup(PyObject *self, PyObject *args, PyObject *keywords) {
>     /* Python object declarations */
> -    PyObject *values_arg, *sd_arg, *relax_times_arg, *scaling_matrix_arg;
> +    PyObject *curve_type_arg, *values_arg, *sd_arg, *relax_times_arg, 
> *scaling_matrix_arg;
>     PyObject *element;
>
>     /* Normal declarations */
> +    extern char *curve_type;
>     extern double *params, *values, *sd, *relax_times, *scaling_matrix;
>     extern double relax_time_array;
>     extern int num_params, num_times;
>     int i;
>
>     /* The keyword list */
> -    static char *keyword_list[] = {"num_params", "num_times", "values", 
> "sd", "relax_times", "scaling_matrix", NULL};
> +    static char *keyword_list[] = {"curve_type", "num_params", "num_times", 
> "values", "sd", "relax_times", "scaling_matrix", NULL};
>
>     /* Parse the function arguments */
> -    if (!PyArg_ParseTupleAndKeywords(args, keywords, "iiOOOO", keyword_list, 
> &num_params, &num_times, &values_arg, &sd_arg, &relax_times_arg, 
> &scaling_matrix_arg))
> +    if (!PyArg_ParseTupleAndKeywords(args, keywords, "iiOOOO", keyword_list, 
> &curve_type, &num_params, &num_times, &values_arg, &sd_arg, &relax_times_arg, 
> &scaling_matrix_arg))
>         return NULL;
>
>     /* Dynamic C arrays */
> @@ -55,6 +56,15 @@
>     relax_times = (double *) malloc(sizeof(double)*num_times);
>     scaling_matrix = (double *) malloc(sizeof(double)*num_params);
>
> +    /* Place the curve_type element into the C array */
> +    for (i = 0; i < PySequence_Fast_GET_SIZE(curve_type); i++) {
> +        /* Get the element */
> +        element = PySequence_GetItem(curve_type_arg, i);
> +
> +        /* Convert to a C char array */
> +        curve_type[i] = PyString_AsChar(element);
> +    }
> +
>     /* Place the value elements into the C array */
>     for (i = 0; i < num_times; i++) {
>         /* Get the element */
> @@ -107,6 +117,7 @@
>     /* Declarations */
>     PyObject *params_arg;
>     PyObject *element;
> +    char *curve_type;
>     extern double *params;
>     int i;
>
> @@ -124,9 +135,9 @@
>     }
>
>     /* Back calculated the peak intensities */
> -    if(sizeof(num_params) == 2)
> +    if (curve_type == "exp_2param_neg")
>         exp_2param_neg(params, relax_times, back_calc, num_times);
> -    if(sizeof(num_params) == 3)
> +    if (curve_type == "exp_3param_inv_neg")
>         exp_3param_inv_neg(params, relax_times, back_calc, num_times);
>
>     /* Calculate and return the chi-squared value */
> @@ -139,9 +150,11 @@
>     /* Function for calculating and returning the chi-squared gradient. */
>
>     /* Declarations */
> +    PyObject *curve_type_arg;
>     PyObject *params_arg;
>
>     /* Temp Declarations */
> +    char *curve_type;
>     double aaa[MAXPARAMS] = {1.0, 2.0};
>     int i;
>     double *params;
> @@ -151,9 +164,9 @@
>         return NULL;
>
>     /* Back calculated the peak intensities */
> -    if(sizeof(num_params) == 2)
> +    if (curve_type == "exp_2param_neg")
>         exp_2param_neg(params, relax_times, back_calc, num_times);
> -    if(sizeof(num_params) == 3)
> +    if (curve_type == "exp_3param_inv_neg")
>         exp_3param_inv_neg(params, relax_times, back_calc, num_times);
>
>
>
>
> _______________________________________________
> relax (http://nmr-relax.com)
>
> This is the relax-commits mailing list
> [email protected]
>
> To unsubscribe from this list, get a password
> reminder, or change your subscription options,
> visit the list information page at
> https://mail.gna.org/listinfo/relax-commits
>

_______________________________________________
relax (http://nmr-relax.com)

This is the relax-devel mailing list
[email protected]

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-devel

Reply via email to