Hi, I've now reintroduced the old C module target_function.relax_fit.jacobian() function. See r25429 (http://article.gmane.org/gmane.science.nmr.relax.scm/23188). I also renamed target_function.relax_fit.jacobian() to target_function.relax_fit.jacobian_chi2().
Regards, Edward On 29 August 2014 12:40, <tlin...@nmr-relax.com> wrote: > Author: tlinnet > Date: Fri Aug 29 12:40:07 2014 > New Revision: 25429 > > URL: http://svn.gna.org/viewcvs/relax?rev=25429&view=rev > Log: > Swithced in estimate_r2eff_err() to use the chi2 Jacobian from C code, and > Jacobian from python code. > > task #7822(https://gna.org/task/index.php?7822): Implement user function to > estimate R2eff and associated errors for exponential curve fitting. > > Modified: > trunk/specific_analyses/relax_disp/estimate_r2eff.py > > Modified: trunk/specific_analyses/relax_disp/estimate_r2eff.py > URL: > http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/relax_disp/estimate_r2eff.py?rev=25429&r1=25428&r2=25429&view=diff > ============================================================================== > --- trunk/specific_analyses/relax_disp/estimate_r2eff.py (original) > +++ trunk/specific_analyses/relax_disp/estimate_r2eff.py Fri Aug 29 > 12:40:07 2014 > @@ -175,7 +175,7 @@ > i0 = getattr(cur_spin, 'i0')[param_key] > > # Pack data > - params = [r2eff, i0] > + param_vector = [r2eff, i0] > > # The peak intensities, errors and times. > values = [] > @@ -193,15 +193,18 @@ > > # Initialise data in C code. > scaling_list = [1.0, 1.0] > - setup(num_params=len(params), num_times=len(times), > values=values, sd=errors, relax_times=times, scaling_matrix=scaling_list) > - > + setup(num_params=len(param_vector), num_times=len(times), > values=values, sd=errors, relax_times=times, scaling_matrix=scaling_list) > + > + # Determine Jacobian and weights. > if chi2_jacobian: > - jacobian_matrix_exp = func_exp_chi2_grad(params=params, > times=times, values=values, errors=errors) > + # Calculate the direct exponential Jacobian matrix from C > code. > + jacobian_matrix_exp = transpose(asarray( > jacobian(param_vector) ) ) > + > + # The Jacobian in the C-code is from chi2 function, and is > already weighted. > weights = ones(errors.shape) > else: > - # Calculate the direct exponential Jacobian matrix from C > code. > - #jacobian_matrix_exp = transpose(asarray( jacobian(params) ) > ) > - jacobian_matrix_exp = func_exp_grad(params=params, > times=times, values=values, errors=errors) > + # Use the direct Jacobian from python Code > + jacobian_matrix_exp = func_exp_grad(params=param_vector, > times=times, values=values, errors=errors) > weights = 1. / errors**2 > > # Get the co-variance > > > _______________________________________________ > relax (http://www.nmr-relax.com) > > This is the relax-commits mailing list > relax-comm...@gna.org > > 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://www.nmr-relax.com) This is the relax-devel mailing list relax-devel@gna.org 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