/%/* Program written in Together/C++ Information Export script and HTML. */%/ /%/* Produces a one HTML page documentation one or more classes in a */%/ /%/* Borland C++ project. For functions to be hidden (e.g. private ones) */%/ /%/* they must have the tag "Hidden". No data members are documented. */%/ /%/*------------------------------------------------------------------------*/%/ /%PROC ProjectTitle()%/ The Bioinformatics Template Library (BTL) Documentation /%ENDPROC%/ /%/*------------------------------------------------------------------------*/%/ /%PROC VersionNumber()%/ 2.0 alpha /%ENDPROC%/ /%/*------------------------------------------------------------------------*/%/ /%PROC ProjectDescription()%/ The focus of this library is on the data structures and algorithms used within the fields of bioinformatics and molecular modelling. The approach used closely follows that of the Standard Template Library (STL) which is part of ISO/ANSI standard C++. This library uses templates to implement generic programming. Templates allow the development of efficient generic programming modules using compile-time mechanisms. Although the BTL has been designed with biomolecular applications in mind it contains classes of more general utility. For instance, the Matrix class could be used for matrix algebra in many contexts. There are many freely available matrix classes that pre-date the one we have written but non are well suited to our needs. Most provide many functions that unlikely to be used by bioinformatics and molecular modelling applications. We aim to provide an extremely simple matrix class to be used by people who may not have a particularly strong mathematical background. /%ENDPROC%/ /%/*------------------------------------------------------------------------*/%/ /%PROC TemplatesDesciption()%/ Templates are functions and classes that work equally well with different types. For instance, a template list class can model a list of integers, a list of real numbers or even a list of some compound object type. The type of list is determined by a template parameter. This effect can be achieved by copying and judicially editing of conventional code. However, ith templates the copying and substitution are carried out by the compiler. In this way templates greatly reduce human error.
On current compilers this procedure is carried out in a pre-processing phase and all template definitions must be put the same file as the equivalent declarations (in header files). This explains why the template classes in this library (e.g. LeastSquaresFit) only have .h files while the non-template classes (e.g. Matrix) have a .h file and .cpp file. /%ENDPROC%/ /%/*------------------------------------------------------------------------*/%/ /%PROC LibraryPrecision()%/ The floating point precision of the library as a whole is defined as the user defined type BTL_REAL. A typedef statement in the BTL.h. e.g.
typedef double BTL_REAL;
To change the precision used simply alter this statement and recompile the library. Of course not all floating point variables in the library are of type BTL_REAL, some, for instance, are fixed at type double to avoid large round off errors. In spite of this, setting BTL_REAL to be of type float may well result significant round off problems in certain calculations such as those used by the Matrix::Eigens() method. /%ENDPROC%/ /%/*------------------------------------------------------------------------*/%/ /%PROC DebugVersionOfLibrary()%/ If the DEBUG_VERSION symbol is defined then the library will carry out extra error checking such as some array bounds checking. This checking will obviously make the library more robust but will also increase excecution times. Simply comment the define statement in the BTL.h file out if the extra checking is not required. /%ENDPROC%/ /%/*------------------------------------------------------------------------*/%/ /%PROC ProjectFiles()%/
/%ENDPROC%/ /%/*------------------------------------------------------------------------*/%/ /%PROC ProjectFooter()%/
/%ProjectHeader()%/ Version /%VersionNumber()%/Description
/%ProjectDescription()%/
Floating Point Precision
/%LibraryPrecision()%/
Debugging Version of Library
/%DebugVersionOfLibrary()%/
/%ENDIF%/ /%ENDFOR%/
Files
/%ProjectFiles()%/
/%cls%/
/%Comments(cls)%/
/%PrintLinked(cls, "Generalizations", "Generalizations")%/
/%PrintLinked(cls, "Specializations", "Specializations")%/
/%PrintLinked(cls, "Aggregations (Wholes)", "Wholes")%/
/%PrintLinked(cls, "Aggregations (Parts)", "Parts")%/
/%PrintLinked(cls, "Senders", "Senders")%/
/%PrintLinked(cls, "Receivers", "Receivers")%/
/%PrintLinked(cls, "Associated Classes", "Associated")%/
Operations
/%Cnt = 0%/
/%FOR temp IN "Operations" OF cls%/
/%IF (NOT temp.HasProperty("Hidden")) %/
/%srv.Declaration()%/
/%Cnt = Cnt + 1%/ /%ENDIF%/ /%ENDFOR 2%/