Author: tlinnet Date: Wed Jun 25 19:31:40 2014 New Revision: 24323 URL: http://svn.gna.org/viewcvs/relax?rev=24323&view=rev Log: Implemented a dependency check for numpy einsum, so relax can still start. Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis. Modified: branches/disp_spin_speed/dep_check.py branches/disp_spin_speed/target_functions/relax_disp.py Modified: branches/disp_spin_speed/dep_check.py URL: http://svn.gna.org/viewcvs/relax/branches/disp_spin_speed/dep_check.py?rev=24323&r1=24322&r2=24323&view=diff ============================================================================== --- branches/disp_spin_speed/dep_check.py (original) +++ branches/disp_spin_speed/dep_check.py Wed Jun 25 19:31:40 2014 @@ -57,6 +57,14 @@ # Optional packages. #################### + +# numpy einsum import. +try: + from numpy import einsum + einsum_module = True +except ImportError: + sys.stderr.write("The dependency 'numpy einsum' has not been installed. Numerical models in dispersion analysis will not be possible.\n") + einsum_module = False # Bmrblib python package check. try: Modified: branches/disp_spin_speed/target_functions/relax_disp.py URL: http://svn.gna.org/viewcvs/relax/branches/disp_spin_speed/target_functions/relax_disp.py?rev=24323&r1=24322&r2=24323&view=diff ============================================================================== --- branches/disp_spin_speed/target_functions/relax_disp.py (original) +++ branches/disp_spin_speed/target_functions/relax_disp.py Wed Jun 25 19:31:40 2014 @@ -30,6 +30,7 @@ from numpy.ma import masked_equal # relax module imports. +import dep_check from lib.dispersion.b14 import r2eff_B14 from lib.dispersion.cr72 import r2eff_CR72 from lib.dispersion.dpl94 import r1rho_DPL94 @@ -40,13 +41,7 @@ from lib.dispersion.m61b import r1rho_M61b from lib.dispersion.mp05 import r1rho_MP05 from lib.dispersion.mmq_cr72 import r2eff_mmq_cr72 -from lib.dispersion.ns_cpmg_2site_3d import r2eff_ns_cpmg_2site_3D from lib.dispersion.ns_cpmg_2site_expanded import r2eff_ns_cpmg_2site_expanded -from lib.dispersion.ns_cpmg_2site_star import r2eff_ns_cpmg_2site_star -from lib.dispersion.ns_mmq_3site import r2eff_ns_mmq_3site_mq, r2eff_ns_mmq_3site_sq_dq_zq -from lib.dispersion.ns_mmq_2site import r2eff_ns_mmq_2site_mq, r2eff_ns_mmq_2site_sq_dq_zq -from lib.dispersion.ns_r1rho_2site import ns_r1rho_2site -from lib.dispersion.ns_r1rho_3site import ns_r1rho_3site from lib.dispersion.ns_matrices import r180x_3d from lib.dispersion.tp02 import r1rho_TP02 from lib.dispersion.tap03 import r1rho_TAP03 @@ -56,6 +51,14 @@ from target_functions.chi2 import chi2, chi2_rankN from specific_analyses.relax_disp.variables import EXP_TYPE_CPMG_DQ, EXP_TYPE_CPMG_MQ, EXP_TYPE_CPMG_PROTON_MQ, EXP_TYPE_CPMG_PROTON_SQ, EXP_TYPE_CPMG_SQ, EXP_TYPE_CPMG_ZQ, EXP_TYPE_LIST_CPMG, EXP_TYPE_R1RHO, MODEL_B14, MODEL_B14_FULL, MODEL_CR72, MODEL_CR72_FULL, MODEL_DPL94, MODEL_IT99, MODEL_LIST_CPMG, MODEL_LIST_CPMG_FULL, MODEL_LIST_FULL, MODEL_LIST_MMQ, MODEL_LIST_MQ_CPMG, MODEL_LIST_R1RHO, MODEL_LIST_R1RHO_FULL, MODEL_LM63, MODEL_LM63_3SITE, MODEL_M61, MODEL_M61B, MODEL_MP05, MODEL_MMQ_CR72, MODEL_NOREX, MODEL_NS_CPMG_2SITE_3D, MODEL_NS_CPMG_2SITE_3D_FULL, MODEL_NS_CPMG_2SITE_EXPANDED, MODEL_NS_CPMG_2SITE_STAR, MODEL_NS_CPMG_2SITE_STAR_FULL, MODEL_NS_MMQ_2SITE, MODEL_NS_MMQ_3SITE, MODEL_NS_MMQ_3SITE_LINEAR, MODEL_NS_R1RHO_2SITE, MODEL_NS_R1RHO_3SITE, MODEL_NS_R1RHO_3SITE_LINEAR, MODEL_TAP03, MODEL_TP02, MODEL_TSMFK01 +# Check if eisum is available for numerical models. +if dep_check.einsum_module: + from lib.dispersion.ns_cpmg_2site_3d import r2eff_ns_cpmg_2site_3D + from lib.dispersion.ns_cpmg_2site_star import r2eff_ns_cpmg_2site_star + from lib.dispersion.ns_mmq_3site import r2eff_ns_mmq_3site_mq, r2eff_ns_mmq_3site_sq_dq_zq + from lib.dispersion.ns_mmq_2site import r2eff_ns_mmq_2site_mq, r2eff_ns_mmq_2site_sq_dq_zq + from lib.dispersion.ns_r1rho_2site import ns_r1rho_2site + from lib.dispersion.ns_r1rho_3site import ns_r1rho_3site class Dispersion: def __init__(self, model=None, num_params=None, num_spins=None, num_frq=None, exp_types=None, values=None, errors=None, missing=None, frqs=None, frqs_H=None, cpmg_frqs=None, spin_lock_nu1=None, chemical_shifts=None, offset=None, tilt_angles=None, r1=None, relax_times=None, scaling_matrix=None, recalc_tau=True):