Hi Troels, We have a major problem in trunk caused by the recent merger of the disp_spin_speed branch. When I run the Relax_disp system tests, the unit tests, or the Relax_disp GUI tests, I see many, many failures due to problems with the numpy.linalg.eig() function on numpy 1.6.1, 1.6.2, and 1.7.0. The error for one of the unit tests is: ====================================================================== ERROR: Test the r2eff_ns_cpmg_2site_3D() function for no exchange when dw = 0.0. ---------------------------------------------------------------------- Traceback (most recent call last): File "/data/relax/relax-trunk/test_suite/unit_tests/_lib/_dispersion/test_ns_cpmg_2site_3d.py", line 130, in test_ns_cpmg_2site_3D_no_rex1 self.calc_r2eff() File "/data/relax/relax-trunk/test_suite/unit_tests/_lib/_dispersion/test_ns_cpmg_2site_3d.py", line 79, in calc_r2eff r2eff_ns_cpmg_2site_3D(r180x=self.r180x, M0=self.M0, M0_T=self.M0_T, r20a=self.r20a*a, r20b=self.r20b*a, pA=self.pA, dw=dw_frq*a, dw_orig=dw_frq*a, kex=self.kex, inv_tcpmg=self.inv_relax_times*a, tcp=self.tau_cpmg*a, back_calc=self.R2eff, num_points=self.num_points*b, power=self.ncyc*a) File "/data/relax/relax-trunk/lib/dispersion/ns_cpmg_2site_3d.py", line 299, in r2eff_ns_cpmg_2site_3D Rexpo_mat = matrix_exponential_rank_NE_NS_NM_NO_ND_x_x(R_mat) File "/data/relax/relax-trunk/lib/dispersion/matrix_exponential.py", line 78, in matrix_exponential_rank_NE_NS_NM_NO_ND_x_x W, V = eig(A) File "/data/python/lib/python2.5/site-packages/numpy/linalg/linalg.py", line 1015, in eig _assertRank2(a) File "/data/python/lib/python2.5/site-packages/numpy/linalg/linalg.py", line 155, in _assertRank2 two-dimensional' % len(a.shape) LinAlgError: 7-dimensional array given. Array must be two-dimensional ---------------------------------------------------------------------- Here are the API differences between numpy versions: 1.8.1: http://docs.scipy.org/doc/numpy-1.8.1/reference/generated/numpy.linalg.eig.html#numpy.linalg.eig 1.8.0: http://docs.scipy.org/doc/numpy-1.8.0/reference/generated/numpy.linalg.eig.html#numpy.linalg.eig 1.7.0: http://docs.scipy.org/doc/numpy-1.7.0/reference/generated/numpy.linalg.eig.html#numpy.linalg.eig 1.6.0: http://docs.scipy.org/doc/numpy-1.6.0/reference/generated/numpy.linalg.eig.html#numpy.linalg.eig You can see that the input changes from (M, M) to (..., M, M) between 1.7.0 and 1.8.0. We cannot require numpy >= 1.8 as many current distributions have not shifted to this version yet. Most sys admins would kill me for even suggesting that ;) Therefore we need to come up with a solution and quickly. The best would be to add an eig() function to the lib.compat module. For numpy >= 1.8.0 it will use the numpy.linalg.eig() function. For the other versions, we need an alternative solution. Maybe using slow Python looping over the higher dimensions would be ok. I will not report this as a bug, as no released relax versions are affected. Cheers, Edward