SDL Base & MathPack 10.6 Lohninger Full Source
SDL Base & MathPack 10.6 Lohninger Full Source
The package MathPack contains a lot of routines and classes offering various mathematical methods. Among them are linear regression (simple and multiple), curve fitting, random generators, vector and matrix algebra, eigenvectors, principal components, cluster analysis, Fourier transform, Kohonen networks, statistical distributions, and more. The package BasePack contains several units of the SDL Component Suite which fall into the category "basic operations and data structures". Among them are FIFO registers, bit arrays, system specific routines, the handling of streams, and string processing.
The unit SDLColors contains a collection of basic declarations, procedures and functions for manipulating colors. Amongst these routines are conversion functions for HSI (hue, saturation, intensity) and RGB (red, green, blue) color systems. Further, the unit SDLColors contains the class TColorArray which supports the handling of color arrays.
The unit DSTRUCT contains several classes which support commonly used data structures (FIFO buffers, and bit arrays, string arrays).
The class TAssocArray provides an associative string array which is comparable to the array found in PHP.
The class TFifo supports the handling of First-In-First-Out (FIFO) and Last-In-First-Out (LIFO) buffers. FIFOs are commonly used for the communication of asynchronous processes.
The class TBitFld supports boolean arrays of a size of up to 2^31 entries (approx. 2 billion). TBitFld is highly memory efficient, using only one bit per entry. Each element of the array is addressed by a number between 0 and the maximum specified length of the array.
The class TByteMatrix provides a two-dimensional matrix of bytes.
The class TRLEncoder supports the run length encoding of byte streams.
The class TStringAccu supports the counting of strings.
The class TStringArray has been designed for store arrays of strings with special attention to (1) the ease of sorting, (2) the transparent and efficient handling of strings of different lengths, and (3) the efficient use of memory for large sparse arrays.
The unit HTMLSUPPORT contains a loose collection of routines and classes to support the generation and manipulation of HTML texts. Besides common and often needed conversion routines, the unit contains an HTML producer class which can be used to generate HTML code from data sources.
The THtmlProducer class takes an HTML template code, analyses it and triggers an event when it encounters specially marked HTML tags. This approach allows to generate HTML code controlled by, for example, records of a database.
The unit UNIVCONST offers a collection of universal constants and conversion factors covering
Common Measurement Units,
All the constants are based on the SI system, however some of the constants are declared twice if this constant is often used with different units, e.g. the Planck constant is given in Js (SI units) and in eVs (non-SI units). Please have a look into the help pages for further details.
The unit CPUID offers routines to access the CPU identification tags. By using CPUID you can access the type of the CPU, its serial number, the vendor, the CPU signature and other specific information about the processor. In addition, CPUID contains a function which allows to generate a (for practical purposes) unique ID, and a function to check the validity of a foreign ID. Further, you can measure the actual CPU frequency. See the online help pages for detailed information on the unit CPUID.
The unit STRINGL offers some means to process strings. A collection of procedures and functions provide several often used string formatting functions. In addition, STRINGL contains the class TGrep which offers a versatile string search utility using the wide-spread definition of regular expressions as e.g. in the Unix command "grep". More details can be found in the online help pages.
The unit COMPLEX is a collection of routines supporting the calculation with complex numbers. It provides all major types of calculations, including the conversion between the Cartesian and the polar representation of complex numbers.
The unit DataTable implements an often needed data structure when working with measurement data. It combines a rectangular numeric matrix with additional information, such as row and column names, cell states, or attributes.
The numeric matrix is inherited from TMatrix, thus all mathematical methods of TMatrix can be used for the data table as well. In addition to the row and column names, each row and each column of the data table provides an 8-bit user-defined attribute which can be used, for example to introduce additional classification of the row entries. Besides an arbitrary comment which is assigned to the entire data table, each numeric cell is described by an 8-bit state flag, which can be used by the programmer to indicate any user-defined state of the cell.
The unit FOURIER contains the fast Fourier transform (FFT) component TFastFourier.
TFastFourier can transform data sets of up to 16 million samples in both directions and provides several of the most important windowing functions (such as Hamming, Blackman, Cosine Square, Triangle, and others). It calculates the real and imaginary parts (xx and quadrature), the power spectrum, the magnitude and the phase spectrum.
Following is a short table of conversion times obtained with an Athlon CPU (1333 MHz). The conversion times have been measured by transforming a random signal (white noise):
The unit KOHONEN provides a selforganizing map (SOM) as it has been described by Teuvo Kohonen [1, 2]. These SOMs are also known as Kohonen maps, or Kohonen neural networks. More details on this kind of neural networks can be found in the background information. The unit KOHONEN contains the class TKohonen which simulates a Kohonen neural network. Details on the implementation can be found in the online help pages.
Only for V.I.P
Warning! You are not allowed to view this text.