The gpp4 library

1.0.4

Introduction

This distribution is a special version of the CCP4 library, released under the Lesser GNU Public License version 2.1.

The last version of the CCP4 library covered by a free license was version 5.0.2. This version was patched by Ralf Grosse-Kunstleve to address some of the more serious deficiencies of the older libraries.

It is the patched version of the CCP4 library that forms the basis for this distribution, which includes a GNU autotools build environment developed by Paul Emsley and Morten Kjeldgaard.

The reason for creating this public fork of the CCP4 libraries is that several third party software distributions depend on the CCP4 libraries.

However, you cannot create a derived work containing both CCP4 6.* licensed code and GPL'd code, and distribute the resulting program, since the GPL demands that the derived work be distributed without additional restrictions. The CCP4 6.* license imposes additional restrictions on redistribution - in particular (but not limited to) an indemnity clause.

The goal of this project -- named gpp4 to distinguish it from CCP4 -- is to provide a drop-in replacement for the non-free CCP4 libraries, that as carefully as possible will implement the current CCP4 library interface.

Aims

The CCP4 software suite is based around a library of routines which cover common tasks, such as file opening, parsing keyworded input, reading and writing of standard data formats, applying symmetry operations, etc. Programs in the suite call these routines which, as well as saving the programmer some effort, ensure that the varied programs in the suite have a similar look-and-feel.

Since 2002, there has been a major effort to re-write much of the CCP4 library into C/C++. The aims are:

This incremental approach, maintaining the existing suite while improving the underlying code, puts constraints on what is possible, but is considered more appropriate for a collaborative project like CCP4.

This documentation

This documentation is generated automatically by Doxygen from comment sections in the code. It is therefore detailed and extensive. The library divides roughly into the following sections:
CMTZ library
See the CMTZ library page for C/C++ programmers, and the cmtz_f_page page for Fortran programmers.

CMAP library
See the CMAP library page for C/C++ programmers, and the cmap_f_page page for Fortran programmers.

MMDB library
See Eugene's documentation.

CSYM library
See the CSYM library page for C/C++ programmers, and the Software Library for handling symmetry operations page for Fortran programmers.

CCP4 utility library
See the CCP4 Library Utilities page for C/C++ programmers.

CCP4 Parser library
See the CParser library page for details on how to use the CCP4 parser routines from C/C++ programs.

CCP4 resizable arrays
See the CCP4 resizable array implementation page for information on Kevin Cowtan's resizable array implementation.

Low level disk i/o
See the diskio_f_page page for Fortran programmers.


Generated on Wed Oct 29 21:05:08 2008 for gpp4 by  doxygen 1.5.6