Author: bugman
Date: Fri Aug 29 16:20:44 2014
New Revision: 25438
URL: http://svn.gna.org/viewcvs/relax?rev=25438&view=rev
Log:
Reintroduced the original target_functions.relax_fit.jacobian() function.
The new function for the Jacobian of the chi-squared function has been renamed
to
target_functions.relax_fit.jacobian_chi2() so that both Python functions are
accessible within the C
module.
Modified:
trunk/target_functions/relax_fit.c
Modified: trunk/target_functions/relax_fit.c
URL:
http://svn.gna.org/viewcvs/relax/trunk/target_functions/relax_fit.c?rev=25438&r1=25437&r2=25438&view=diff
==============================================================================
--- trunk/target_functions/relax_fit.c (original)
+++ trunk/target_functions/relax_fit.c Fri Aug 29 16:20:44 2014
@@ -235,6 +235,43 @@
static PyObject *
jacobian(PyObject *self, PyObject *args) {
+ /* Return the Jacobian as a Python list of lists. */
+
+ /* Declarations. */
+ PyObject *params_arg;
+ PyObject *list, *list2;
+ int i, j;
+
+ /* Parse the function arguments, the only argument should be the parameter
array. */
+ if (!PyArg_ParseTuple(args, "O", ¶ms_arg))
+ return NULL;
+
+ /* Convert the parameters Python list to a C array. */
+ param_to_c(params_arg);
+
+ /* The partial derivatives. */
+ exponential_dR(params[index_I0], params[index_R], index_R, relax_times,
back_calc_grad, num_times);
+ exponential_dI0(params[index_I0], params[index_R], index_I0, relax_times,
back_calc_grad, num_times);
+
+ /* Convert to a Python list of lists. */
+ list = PyList_New(0);
+ Py_INCREF(list);
+ for (i = 0; i < num_params; i++) {
+ list2 = PyList_New(0);
+ Py_INCREF(list2);
+ for (j = 0; j < num_times; j++) {
+ PyList_Append(list2, PyFloat_FromDouble(back_calc_grad[i][j]));
+ }
+ PyList_Append(list, list2);
+ }
+
+ /* Return the Jacobian. */
+ return list;
+}
+
+
+static PyObject *
+jacobian_chi2(PyObject *self, PyObject *args) {
/* Return the Jacobian as a Python list of lists.
The Jacobian
_______________________________________________
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