Menu

SVN archive Commit Log


Commit Date  
[r2308] by bugman

Added a chapter to the manual for coding and the development of relax.

The current contents of the chapter is the text from the file 'docs/style'.

2006-01-10 04:44:05 Tree
[r2307] by bugman

Moved all the temporary manual files out of version control.

2006-01-10 04:30:02 Tree
[r2306] by bugman

Compilation of the manual is now by 'make'.

To create the PDF version of the manual, type 'make manual' in the base directory, while to create
the HTML version, type 'make manual_html'. The two scripts 'docs/latex/compile' and
'docs/latex/create_html' have been shifted into the new makefile 'docs/latex/Makefile'.

2006-01-10 04:15:18 Tree
[r2305] by bugman

Shifted the installation instructions from the text file docs/INSTALL to a chapter of the manual.

2006-01-10 03:37:13 Tree
[r2304] by bugman

Changed a few of the to do items.

2006-01-10 03:12:18 Tree
[r2303] by bugman

Relaxation curve fitting and Makefile changes.

A second Makefile within the 'maths_fns' directory has been created as a copy of the Makefile in the
base directory. The new Makefile contains the compilation rules for the maths_fns directory which
were located in the old file.

The files 'exp_fn.c' and 'exp_fn.h' have been renamed to 'relax_fit.c' and 'relax_fit.h'
respectively. This is so the old function names can contain the code for back calculating the
peak intensities from the given parameters, while the relax_fit code contains the setup function as
well as the functions func, dfunc, and d2func.

More minimisation code has been added to 'specific_fns/relax_fit.py'.

2006-01-10 03:05:54 Tree
[r2302] by bugman

Rolling back all changes to the 1.0 branch back to revision 2294.

The changes which are being removed now exist in the 1.1 branch.

2006-01-09 06:01:59 Tree
[r2301] by bugman

Creating an unstable development fork from 1.0 called 1.1.

This fork exists because the last few commits of the relaxation curve fitting modifications have
involved changes which significantly alter parts of the program and could cause the program not to
work in certain situations. Therefore the stable branch 1.0 has been forked and the unstable 1.1
branch has been created for developing the relaxation curve fitting code.

One of the major changes includes the addition of C code for the implementation of functions
involved in the optimisation of the parameters of the exponential curves. This code is compiled
into shared objects '*.so' which are loaded at run-time as modules into the Python code. The
interface between C and Python is the low level Python/C API.

To build these C modules, relax has shifted to using Makefiles. Therefore to compile the code, the
command 'make' will create the shared objects. Instead of relying on a script, 'make clean' will
remove all the '*.pyc', '*.o', and '*.so' files. The Makefile will be extended to include
procedures which include the creation of the relax manual, creation of the HTML version of the
manual, and the compilation and packaging of relax for distribution.

C code has been introduced solely to decrease computation time. This inclusion also allows the use
of fast Fortran linear algebra libraries using C to Fortran interfaces. Despite using C code, relax
will be developed so that the compilation of this code is not essential for running the program. If
the shared objects do not exist, relax will disable these components of the program.

The 1.0 branch will be reverted back to revision r2294 which was the last commit not involving
relaxation curve fitting. This stable branch is now reserved for bug fixes only, features will be
added to the 1.1 branch.

2006-01-09 04:31:42 Tree
[r2300] by bugman

A huge number of changes for the relaxation curve fitting functions.

As C code has been added, the compilation of that code, as well as the functions of the clean_up
script have been placed into a Makefile. The command 'make' will compile the C code into a python
module in the format of a binary shared object '*.so'. The command 'make clean' will remove all the
byte compiled python files '*.pyc', any backup files created by certain editors '*.bak', all
compiled object files '*.o', and all compiled shared object files '*.so'. These 'rm' commands are
identical to those that were in the 'clean_up' script, hence the script has been deleted.
Rudimentary make rules for the creation of the relax manual, relax HTML manual, and creating a relax
distribution file have been added, although these rules don't work properly yet.

A rudimentary C file 'maths_fns/exp_fn.c' and C header file 'maths_fns/exp_fn.h' has been created
for the optimisation of the parameters of the exponential function. The parameters are Rx (either
the R1 or R2) and I0 (the initial peak intensity). The parameter Iinf (the intensity at infinity)
is used for the three parameter exponential of the inversion recovery experiment. The header file
currently contains two define statements, one for PY_ARRAY_UNIQUE_SYMBOL needed to tie C code to
Python, and MAXPARAMS. The C file contains the function 'exponential_fn()' for setting up prior to
optimisation, the function 'exponential_test_fn()' for testing the integration of C and Python, the
functions 'func()', 'dfunc()', and 'd2func()' for passing to the minimisation code, a method table
required for the functions called by Python, and the function 'initexp_fn()' used for initialising
the module in Python.

Reliance on Swig has been removed, therefore the file 'maths_fns/c_chi2.i' is unnecessary and has
been deleted.

For the specific relaxation curve fitting module 'specific_fns/relax_fit.py', the C code which has
been compiled into a shared object '*.so' is imported with a try statement so that relax will
function without compilation. The flag 'C_module_exp_fn' has been added to __builtin__ so that if
there is a problem with the module, relaxation curve fitting will be disallowed in the run setup
function in 'generic_fns/runs.py'.

The class Relax_fit in 'specific_fns/relax_fit.py' is now subclassed with the class Common_functions
from 'specific_fns/base_class.py' being the base class. Two functions have been shifted from the
model-free code of 'specific_fns/model_free.py' into 'specific_fns/base_class.py'. These are the
functions 'return_value()' and 'set()' as these functions are identical in both relaxation curve
fitting and model-free analysis (or any specific code which would use minimisation). Two functions
for each of these classes of analysis have been created called 'set_doc()' which include the
specific docstrings of the previous functions 'set()'. This docstring is appended to some of the
docstrings in the user functions of the prompt.

The function 'ave_and_sd' has been added to 'specific_fns/relax_fit.py' to calculate the average
peak intensity for each time point as well as calculating the average standard deviation for all
duplicated spectra. All mentions of model-free in the file have also been removed, the function
'default_value()' has been added, a few bugs have been removed from the 'read()' function, the
'minimise()' function has been updated, and the 'return_data_name()' function has been fixed to
include all parameters.

The 'return_data_name' and 'set' functions for relaxation curve fitting have been added to
'specific_fns/specific_setup.py'.

The indentation in 'generic_fns/value.py' has been fixed.

The 'set()' function in 'specific_fns/jw_mapping.py' has been fixed.

2006-01-09 02:39:10 Tree
[r2299] by bugman

Bug fixes and completion of the NOE data analysis section of the manual.

The grace file produced by grace.write() has had one bug removed (not \n). The point are now small
circles instead of crosses.

The NOE functions return_conversion_factor, return_grace_string, and return_units have been added
to the specific_fns/specific_setup.py file.

2006-01-07 00:58:33 Tree
Older >
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.