Author: bugman
Date: Tue Aug 26 11:09:30 2014
New Revision: 25269
URL: http://svn.gna.org/viewcvs/relax?rev=25269&view=rev
Log:
The parameter index is now passed into exponential_dI0() and exponential_dR().
This is for the relaxation curve-fitting C module so that the indices are not
hardcoded.
Modified:
trunk/target_functions/exponential.c
trunk/target_functions/exponential.h
trunk/target_functions/relax_fit.c
Modified: trunk/target_functions/exponential.c
URL:
http://svn.gna.org/viewcvs/relax/trunk/target_functions/exponential.c?rev=25269&r1=25268&r2=25269&view=diff
==============================================================================
--- trunk/target_functions/exponential.c (original)
+++ trunk/target_functions/exponential.c Tue Aug 26 11:09:30 2014
@@ -49,7 +49,7 @@
}
}
-void exponential_dI0(double I0, double R, double *relax_times, double
back_calc_grad[][MAXTIMES], int num_times) {
+void exponential_dI0(double I0, double R, int param_index, double
*relax_times, double back_calc_grad[][MAXTIMES], int num_times) {
/* Calculate the dI0 partial derivate of the 2-parameter exponential curve.
*/
@@ -60,16 +60,16 @@
for (i = 0; i < num_times; i++) {
/* Zero Rx value */
if (R == 0.0)
- back_calc_grad[1][i] = 1.0;
+ back_calc_grad[param_index][i] = 1.0;
/* The partial derivate */
else
- back_calc_grad[1][i] = exp(-relax_times[i] * R);
+ back_calc_grad[param_index][i] = exp(-relax_times[i] * R);
}
}
-void exponential_dR(double I0, double R, double *relax_times, double
back_calc_grad[][MAXTIMES], int num_times) {
+void exponential_dR(double I0, double R, int param_index, double *relax_times,
double back_calc_grad[][MAXTIMES], int num_times) {
/* Calculate the dR partial derivate of the 2-parameter exponential curve.
*/
@@ -80,10 +80,10 @@
for (i = 0; i < num_times; i++) {
/* Zero Rx value */
if (R == 0.0)
- back_calc_grad[0][i] = -I0 * relax_times[i];
+ back_calc_grad[param_index][i] = -I0 * relax_times[i];
/* The partial derivate */
else
- back_calc_grad[0][i] = -I0 * relax_times[i] * exp(-relax_times[i]
* R);
+ back_calc_grad[param_index][i] = -I0 * relax_times[i] *
exp(-relax_times[i] * R);
}
}
Modified: trunk/target_functions/exponential.h
URL:
http://svn.gna.org/viewcvs/relax/trunk/target_functions/exponential.h?rev=25269&r1=25268&r2=25269&view=diff
==============================================================================
--- trunk/target_functions/exponential.h (original)
+++ trunk/target_functions/exponential.h Tue Aug 26 11:09:30 2014
@@ -26,7 +26,7 @@
void exponential(double I0, double R, double *relax_times, double *back_calc,
int num_times);
-void exponential_dI0(double I0, double R, double *relax_times, double
back_calc_grad[][MAXTIMES], int num_times);
-void exponential_dR(double I0, double R, double *relax_times, double
back_calc_grad[][MAXTIMES], int num_times);
+void exponential_dI0(double I0, double R, int param_index, double
*relax_times, double back_calc_grad[][MAXTIMES], int num_times);
+void exponential_dR(double I0, double R, int param_index, double *relax_times,
double back_calc_grad[][MAXTIMES], int num_times);
#endif
Modified: trunk/target_functions/relax_fit.c
URL:
http://svn.gna.org/viewcvs/relax/trunk/target_functions/relax_fit.c?rev=25269&r1=25268&r2=25269&view=diff
==============================================================================
--- trunk/target_functions/relax_fit.c (original)
+++ trunk/target_functions/relax_fit.c Tue Aug 26 11:09:30 2014
@@ -148,8 +148,8 @@
exponential(params[1], params[0], relax_times, back_calc, num_times);
/* The partial derivates */
- exponential_dR(params[1], params[0], relax_times, back_calc_grad,
num_times);
- exponential_dI0(params[1], params[0], relax_times, back_calc_grad,
num_times);
+ exponential_dR(params[1], params[0], 0, relax_times, back_calc_grad,
num_times);
+ exponential_dI0(params[1], params[0], 1, relax_times, back_calc_grad,
num_times);
/* The chi-squared gradient */
dchi2(dchi2_vals, values, back_calc, back_calc_grad, sd, num_times,
num_params);
@@ -220,8 +220,8 @@
}
/* The partial derivates */
- exponential_dR(params[1], params[0], relax_times, back_calc_grad,
num_times);
- exponential_dI0(params[1], params[0], relax_times, back_calc_grad,
num_times);
+ exponential_dR(params[1], params[0], 0, relax_times, back_calc_grad,
num_times);
+ exponential_dI0(params[1], params[0], 1, relax_times, back_calc_grad,
num_times);
/* Convert to a Python list of lists */
PyObject *list = PyList_New(0);
_______________________________________________
relax (http://www.nmr-relax.com)
This is the relax-commits mailing list
[email protected]
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