Author: bugman Date: Mon Dec 1 19:49:34 2014 New Revision: 26884 URL: http://svn.gna.org/viewcvs/relax?rev=26884&view=rev Log: Updated all code that accesses the target_functions.relax_fit module. The target_functions.relax_fit_wrapper.Relax_fit_opt class no longer exists. Instead the target_functions.relax_fit.Relax_fit C class is being used. The input into the C code has been updated to make sure that all arguments for the target functions are numpy arrays rather than Python lists. Modified: branches/relax_fit_c_class/specific_analyses/relax_disp/estimate_r2eff.py branches/relax_fit_c_class/specific_analyses/relax_disp/optimisation.py branches/relax_fit_c_class/specific_analyses/relax_fit/api.py branches/relax_fit_c_class/specific_analyses/relax_fit/optimisation.py branches/relax_fit_c_class/test_suite/system_tests/relax_disp.py Modified: branches/relax_fit_c_class/specific_analyses/relax_disp/estimate_r2eff.py URL: http://svn.gna.org/viewcvs/relax/branches/relax_fit_c_class/specific_analyses/relax_disp/estimate_r2eff.py?rev=26884&r1=26883&r2=26884&view=diff ============================================================================== --- branches/relax_fit_c_class/specific_analyses/relax_disp/estimate_r2eff.py (original) +++ branches/relax_fit_c_class/specific_analyses/relax_disp/estimate_r2eff.py Mon Dec 1 19:49:34 2014 @@ -25,7 +25,7 @@ # Python module imports. from copy import deepcopy -from numpy import array, asarray, diag, dot, exp, eye, log, multiply, ones, sqrt, sum, transpose, zeros +from numpy import array, asarray, diag, dot, exp, eye, float64, log, multiply, ones, sqrt, sum, transpose, zeros from minfx.generic import generic_minimise import sys from warnings import warn @@ -42,7 +42,7 @@ from specific_analyses.relax_disp.data import average_intensity, loop_exp_frq_offset_point, loop_time, return_param_key_from_data from specific_analyses.relax_disp.parameters import disassemble_param_vector from target_functions.chi2 import chi2_rankN, dchi2 -from target_functions.relax_fit_wrapper import Relax_fit_opt +from target_functions.relax_fit import Relax_fit # Scipy installed. if scipy_module: @@ -101,7 +101,7 @@ i0 = getattr(cur_spin, 'i0')[param_key] # Pack data - param_vector = [r2eff, i0] + param_vector = array([r2eff, i0], float64) # The peak intensities, errors and times. values = [] @@ -119,10 +119,10 @@ # Initialise data in C code. scaling_list = [1.0, 1.0] - model = Relax_fit_opt(model='exp', num_params=len(param_vector), values=values, errors=errors, relax_times=times, scaling_matrix=scaling_list) + model = Relax_fit(model='exp', num_params=len(param_vector), num_times=len(times), values=values, sd=errors, relax_times=times, scaling_matrix=scaling_list) # Use the direct Jacobian from function. - jacobian_matrix_exp = transpose(asarray( model.jacobian(param_vector) ) ) + jacobian_matrix_exp = transpose(model.jacobian(param_vector)) weights = 1. / errors**2 # Get the co-variance @@ -789,7 +789,7 @@ # Initialise the function to minimise. scaling_list = [1.0, 1.0] - model = Relax_fit_opt(model='exp', num_params=len(x0), values=E.values, errors=E.errors, relax_times=E.times, scaling_matrix=scaling_list) + model = Relax_fit(model='exp', num_params=len(x0), num_times=len(E.times), values=E.values, sd=E.errors, relax_times=E.times, scaling_matrix=scaling_list) # Define function to minimise for minfx. t_func = model.func Modified: branches/relax_fit_c_class/specific_analyses/relax_disp/optimisation.py URL: http://svn.gna.org/viewcvs/relax/branches/relax_fit_c_class/specific_analyses/relax_disp/optimisation.py?rev=26884&r1=26883&r2=26884&view=diff ============================================================================== --- branches/relax_fit_c_class/specific_analyses/relax_disp/optimisation.py (original) +++ branches/relax_fit_c_class/specific_analyses/relax_disp/optimisation.py Mon Dec 1 19:49:34 2014 @@ -46,7 +46,7 @@ from specific_analyses.relax_disp.data import average_intensity, count_spins, find_intensity_keys, has_exponential_exp_type, has_proton_mmq_cpmg, is_r1_optimised, loop_exp, loop_exp_frq_offset_point, loop_exp_frq_offset_point_time, loop_frq, loop_offset, loop_time, pack_back_calc_r2eff, return_cpmg_frqs, return_offset_data, return_param_key_from_data, return_r1_data, return_r2eff_arrays, return_spin_lock_nu1 from specific_analyses.relax_disp.parameters import assemble_param_vector, disassemble_param_vector, linear_constraints, param_conversion, param_num, r1_setup from target_functions.relax_disp import Dispersion -from target_functions.relax_fit_wrapper import Relax_fit_opt +from target_functions.relax_fit import Relax_fit def back_calc_peak_intensities(spin=None, exp_type=None, frq=None, offset=None, point=None): @@ -92,7 +92,7 @@ scaling_list.append(1.0) # Initialise the relaxation fit functions. - model = Relax_fit_opt(model='exp', num_params=len(spin.params), values=values, errors=errors, relax_times=times, scaling_matrix=scaling_list) + model = Relax_fit(model='exp', num_params=len(spin.params), num_times=len(times), values=values, sd=errors, relax_times=times, scaling_matrix=scaling_list) # Make a single function call. This will cause back calculation and the data will be stored in the C module. model.func(param_vector) @@ -403,7 +403,7 @@ scaling_list.append(scaling_matrix[i, i]) # Initialise the function to minimise. - model = Relax_fit_opt(model='exp', num_params=len(param_vector), values=values, errors=errors, relax_times=times, scaling_matrix=scaling_list) + model = Relax_fit(model='exp', num_params=len(param_vector), num_times=len(times), values=values, sd=errors, relax_times=times, scaling_matrix=scaling_list) # Grid search. if search('^[Gg]rid', min_algor): Modified: branches/relax_fit_c_class/specific_analyses/relax_fit/api.py URL: http://svn.gna.org/viewcvs/relax/branches/relax_fit_c_class/specific_analyses/relax_fit/api.py?rev=26884&r1=26883&r2=26884&view=diff ============================================================================== --- branches/relax_fit_c_class/specific_analyses/relax_fit/api.py (original) +++ branches/relax_fit_c_class/specific_analyses/relax_fit/api.py Mon Dec 1 19:49:34 2014 @@ -44,7 +44,7 @@ from specific_analyses.relax_fit.optimisation import back_calc from specific_analyses.relax_fit.parameter_object import Relax_fit_params from specific_analyses.relax_fit.parameters import assemble_param_vector, disassemble_param_vector, linear_constraints -from target_functions.relax_fit_wrapper import Relax_fit_opt +from target_functions import relax_fit class Relax_fit(API_base, API_common): @@ -130,7 +130,7 @@ scaling_list.append(1.0) # Initialise data in C code. - model = Relax_fit_opt(model=spin.model, num_params=len(param_vector), values=values, errors=errors, relax_times=times, scaling_matrix=scaling_list) + model = relax_fit.Relax_fit(model=spin.model, num_params=len(param_vector), num_times=len(times), values=values, sd=errors, relax_times=times, scaling_matrix=scaling_list) # Use the direct Jacobian from function. jacobian_matrix_exp = transpose(asarray( model.jacobian(param_vector) ) ) @@ -364,7 +364,7 @@ scaling_list.append(scaling_matrix[model_index][i, i]) # Set up the target function. - model = Relax_fit_opt(model=spin.model, num_params=len(spin.params), values=values, errors=errors, relax_times=times, scaling_matrix=scaling_list) + model = relax_fit.Relax_fit(model=spin.model, num_params=len(spin.params), num_times=len(times), values=values, sd=errors, relax_times=times, scaling_matrix=scaling_list) # Setup the minimisation algorithm when constraints are present. Modified: branches/relax_fit_c_class/specific_analyses/relax_fit/optimisation.py URL: http://svn.gna.org/viewcvs/relax/branches/relax_fit_c_class/specific_analyses/relax_fit/optimisation.py?rev=26884&r1=26883&r2=26884&view=diff ============================================================================== --- branches/relax_fit_c_class/specific_analyses/relax_fit/optimisation.py (original) +++ branches/relax_fit_c_class/specific_analyses/relax_fit/optimisation.py Mon Dec 1 19:49:34 2014 @@ -25,7 +25,7 @@ # relax module imports. from specific_analyses.relax_fit.parameters import assemble_param_vector -from target_functions.relax_fit_wrapper import Relax_fit_opt +from target_functions.relax_fit import Relax_fit def back_calc(spin=None, relax_time_id=None): @@ -60,7 +60,7 @@ scaling_list.append(1.0) # Initialise the relaxation fit functions. - model = Relax_fit_opt(model=spin.model, num_params=len(spin.params), values=values, errors=errors, relax_times=times, scaling_matrix=scaling_list) + model = Relax_fit(model=spin.model, num_params=len(spin.params), num_times=len(times), values=values, sd=errors, relax_times=times, scaling_matrix=scaling_list) # Make a single function call. This will cause back calculation and the data will be stored in the C module. model.func(param_vector) Modified: branches/relax_fit_c_class/test_suite/system_tests/relax_disp.py URL: http://svn.gna.org/viewcvs/relax/branches/relax_fit_c_class/test_suite/system_tests/relax_disp.py?rev=26884&r1=26883&r2=26884&view=diff ============================================================================== --- branches/relax_fit_c_class/test_suite/system_tests/relax_disp.py (original) +++ branches/relax_fit_c_class/test_suite/system_tests/relax_disp.py Mon Dec 1 19:49:34 2014 @@ -50,7 +50,7 @@ from specific_analyses.relax_disp.model import models_info, nesting_param from specific_analyses.relax_disp.parameters import linear_constraints from status import Status; status = Status() -from target_functions.relax_fit_wrapper import Relax_fit_opt +from target_functions.relax_fit import Relax_fit from test_suite.system_tests.base_classes import SystemTestCase @@ -3591,7 +3591,7 @@ I_err = asarray(I_err) x0 = [r2eff, i0] - model = Relax_fit_opt(model='exp', num_params=len(x0), values=I_err, errors=errors, relax_times=times, scaling_matrix=scaling_list) + model = Relax_fit(model='exp', num_params=len(x0), num_times=len(times), values=I_err, sd=errors, relax_times=times, scaling_matrix=scaling_list) params_minfx_sim_j, chi2_minfx_sim_j, iter_count, f_count, g_count, h_count, warning = generic_minimise(func=model.func, dfunc=model.dfunc, d2func=model.d2func, args=(), x0=x0, min_algor=min_algor, min_options=min_options, full_output=True, print_flag=0) R_m_sim_j, I0_m_sim_j = params_minfx_sim_j @@ -3730,11 +3730,11 @@ errors = array([ 9.48032653, 11.34093541, 9.35149017, 10.84867928, 12.17590736]) scaling_list = [1.0, 1.0] - model = Relax_fit_opt(model='exp', num_params=2, values=I, errors=errors, relax_times=times, scaling_matrix=scaling_list) + model = Relax_fit(model='exp', num_params=2, num_times=len(times), values=I, sd=errors, relax_times=times, scaling_matrix=scaling_list) R = - 500. I0 = 1000. - params = [R, I0] + params = array([R, I0]) chi2 = model.func(params) @@ -9027,7 +9027,7 @@ I_err = asarray(I_err) x0 = [r2eff, i0] - model = Relax_fit_opt(num_params=len(x0), values=I_err, errors=errors, relax_times=times, scaling_matrix=scaling_list) + model = Relax_fit(num_params=len(x0), num_times=len(times), values=I_err, sd=errors, relax_times=times, scaling_matrix=scaling_list) # Ref input. #def generic_minimise(func=None, dfunc=None, d2func=None, args=(), x0=None, min_algor=None, min_options=None, func_tol=1e-25, grad_tol=None, maxiter=1e6, A=None, b=None, l=None, u=None, c=None, dc=None, d2c=None, print_flag=0, print_prefix="", full_output=False):