and
The matrix_write_event_data writes the event data while the matrix_read_event_data reads it. The file format is as follows:
Line #1 1 title The title-string must not contain any spaces.
Line #2 left_size right_size multipler amount
Line #3 through line #(3 + amount) left_size of x * multiplier right_size of y * multiplier
Line #(3 + amount + 1) “this_is_the_end_of_the_data_file” This line is ignored by the reading subroutine.
We employ an unsigned long integer multiplier to convert the values to integers, in keeping with the inability of most data-bases to represent a floating-point number.
The matrix_write_array writes the array structure while the matrix_read_array reads it. The file format is as follows:
Line #1 2 tile
Line #2 imx jmx mx imp jmp sym cmp part positive inh.valid_t inh.valid_d
Line #3 mult (inh.trace * mult) (inh.determinant * mult) where mult = multiplier / norm(array).
Here we validate the array structure.
Line #4 through line #(4 + imx) jmx of (element * mult) That is, each line is a row of the matrix.
Line #(4 + imx + 1) “this_is_the_end_of_the_array_file” This line is ignored by the reading subroutine.
The matrix_write_complex_array write the cmplx-array structure while the matrix_read_complex_array reads it. The file format is as follows:
Line #1 3 title
Line #2 imx jmx mx sym inh.valid_t inh.valid_d
Line #3 mult (inh.trace.a * mult) (inh.trace.b * mult) (inh.sqmagdet * mult * mult)
Here we validate the array structure.
Line #4 through #(4 + imx) jmx of the ordered pairs (real-element * mult) (imaginary-element * mult)
Line #(4 + imx + 1) “this_is_the_end_of_the_complex_array_file” This line is ignored by the reading subroutine.
The channel structure includes a set of arrays, within eleven. Their names are
ELEVEN_MX 17 the size of this set.
ARR 0 the positive-definite symmetric partitioned-in-the-middle matrix of the variance.
AVE 1 the corresponding average horizontal-vector.
LBRA 2 the seven small-style components of the channel, in sequence: left bra.
LDIAG 3 left diagonal.
MBRA 4 middle bra.
MDIAG 5 middle diagonal.
MKET 6 middle ket.
RDIAG 7 right diagonal.
RKET 8 right ket.
LAVE 9 the two small-style average vectors: left average.
RAVE 10 right average.
REGRxyFWD 11 the four regression coefficients: forward from x to y.
REGRxyINV 12 inverse from x to y. that is, this is the inverse of REGRyxFWD.
REGRyxFWD 13 forward from y to x.
REGRyxINV 14 inverse from x to y. that is, this is the inverse of REGRxyFWD.
VarRESyy 15 the predicted variance-yy of the residue
VarRESxx 16 the predicted variance-xx of the residue.
The linear algebra library matrix_library.zip file consists of:
the helper *.h files
the source *.cpp files
matrix_c00.cpp (this source file is NOT included in the distribution.)
matrix_c01.cpp (this source file is NOT included in the distribution.)
matrix_c02.cpp (this source file is NOT included in the distribution.)
matrix_c03.cpp (this source file is NOT included in the distribution.)
matrix_c04.cpp (this source file is NOT included in the distribution.)
matrix_c05.cpp (this source file is NOT included in the distribution.)
matrix_c06.cpp (this source file is NOT included in the distribution.)
matrix_c07.cpp (this source file is NOT included in the distribution.)
matrix_c08.cpp (this source file is NOT included in the distribution.)
matrix_c09.cpp (this source file IS included in the distribution.)
matrix_dll.cpp (this source file IS included in the distribution.)
matrix_m03.cpp (this source file IS included in the distribution.)
matrix_m04.cpp (this source file IS included in the distribution.)
StdAfx.cpp (this source file IS included in the distribution.)
the dynamic link library matrix_dll.dll, consisting of the foregoing matrix_c00 through matrix_c08, inclusive.
the object *.obj files. These *.obj files are not downloadable; hence, I do not provide links. However, they ARE included in the *.zip file, above.
matrix_c09.obj
matrix_m03.obj
matrix_m04.obj
the executable *.exe files
the output *.txt files
readme.txt provides a note as to the shareware fee and my snail-mail address.
release notes documents new features, known problems, and a to-do list.
dummy place-holder
The documentation files are posted on the Web site -- you are reading one of them right now! The rest of the documentation is available by going UP.
The matrix_m03 and matrix_m04 have the two-fold purpose of providing an example of how to employ the library and of constituting a test of the subroutines in the library. A dynamic link library file (matrix_dll.dll, in our case) may be located in either the same directory as an executable file -- in which case it will pre-empt any other dll file of the same name -- or in within the Program Files directory tree -- in which case it will become available system-wide. The matrix_c09 is the DOS user interface and also serves as an example of how an interface to Excel or Access could be constructed. Since both Excel and Access have the ability to import from or export to DOS (and from each other), the DOS interface already provides a Excel or Access to utilize the matrix library, indirectly. My intention to provide the latter two direct interfaces had been frustrated by the incompleteness of the installation of Excel and Access on the computer on which I developed this library. I might be willing to consider providing an interface to Excel or Access, upon request.
[I wrote this library and documentation, in my spare time, beginning in late December 2003 through the middle of May 2004. It first was posted on the Web sometime in early June 2004.]
Copyright (c) 2003, 4 by R.I. ‘Scibor-Marchocki. Last revised Saturday 24-th August 2004.