Author: bugman Date: Thu Apr 4 17:15:33 2013 New Revision: 19367 URL: http://svn.gna.org/viewcvs/relax?rev=19367&view=rev Log: Created the new lib.curve_fit.exponential module for exponential curve-fitting. This contains the single exponential_2param_neg() function which will be used for the relaxation dispersion target functions. This is based on Sebastien Morin's function exp_2param_neg in maths_fns.exponential.c in his dormant inversion-recovery branch. Added: branches/relax_disp/lib/curve_fit/exponential.py Modified: branches/relax_disp/lib/curve_fit/__init__.py Modified: branches/relax_disp/lib/curve_fit/__init__.py URL: http://svn.gna.org/viewcvs/relax/branches/relax_disp/lib/curve_fit/__init__.py?rev=19367&r1=19366&r2=19367&view=diff ============================================================================== --- branches/relax_disp/lib/curve_fit/__init__.py (original) +++ branches/relax_disp/lib/curve_fit/__init__.py Thu Apr 4 17:15:33 2013 @@ -23,5 +23,5 @@ """The relax-lib NMR package - a library of functions for various types of curve-fitting.""" __all__ = [ - '' + 'exponential' ] Added: branches/relax_disp/lib/curve_fit/exponential.py URL: http://svn.gna.org/viewcvs/relax/branches/relax_disp/lib/curve_fit/exponential.py?rev=19367&view=auto ============================================================================== --- branches/relax_disp/lib/curve_fit/exponential.py (added) +++ branches/relax_disp/lib/curve_fit/exponential.py Thu Apr 4 17:15:33 2013 @@ -1,0 +1,47 @@ +############################################################################### +# # +# Copyright (C) 2013 Edward d'Auvergne # +# # +# This file is part of the program relax (http://www.nmr-relax.com). # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see <http://www.gnu.org/licenses/>. # +# # +############################################################################### + +# Module docstring. +"""Module for exponential curve-fitting.""" + +# Python module imports. +from math import exp + + +def exponential_2param_neg(rate=None, i0=None, x=None, y=None): + """Calculate the data for a standard two parameter decreasing exponential. + + The y-values will be calculated based on the x-values. + + + @keyword rate: The exponential rate. + @type rate: float + @keyword i0: The initial intensity. + @type i0: float + @keyword x: The x-values at which to calculate the y-values. + @type x: numpy rank-1 float array + @keyword y: The data structure to store the y-values in. + @type y: numpy rank-1 float array + """ + + # Loop over the x-values. + for i in range(len(x)): + y[i] = i0 * exp(-rate*y)