DTSource is a C++ source library, released with a BSD license.
The design goals for DTSource are:
- Portable C++ code. Only uses standard C++ and STL.
- High performance array classes. Instead of using list of list and lists of lists it allocates a single big block of memory and overloads the () operator to access it's elements.
- Simple to use when combining C++ and Fortran.
- Very limited use of inheritance. Done to reduce interdependency of source files and for efficiency.
- No memory leaks, since new/delete statements are only in a few constructors/destructors and the all memory management is done through the array/list/smart pointer classes.
- Assignment operator and copy constructors should be cheap. Type casting kept to a minimum to avoid unexpected surprises.
- Simple to debug . This means that templates are kept to a minimum and some of the member functions are intended to be used to inspect the variable classes inside the debugger.
DTSource can be downloaded separately.
DTSource is a general purpose framework, geared towards scientific computing. It contains
- Array classes for float/double/etc. These classes do not use templates. This will allow you to easily inspect the array in the debugger and call its member functions from the debug command line. There is also an array template if you need to create an array of structures.
- Input/Output routines. Both to read and write matlab data files as well as a custom binary data file format created for DataTank.
- Classes for polygons in 2D,3D, triangulated surfaces, grids etc. Each class can be written to and read from a binary file.
- Class to import and export AIFF audio files.
DTSource is still being developed. It is used to write computational modules for DataTank, so it should not have many bugs, but any code that is over 30,000 lines is bound to have a few. Please send questions, bug reports, design suggestions etc to email@example.com.