mailr25269 - in /trunk/target_functions: exponential.c exponential.h relax_fit.c


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by edward on August 26, 2014 - 11:09:
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);




Related Messages


Powered by MHonArc, Updated Tue Aug 26 11:20:02 2014