-
All classes now derive from GBase. ostream and GLog friends are removed since they are now implement at the GBase level.
-
Matrix elements are now also displayed using the print() method. Note that for matrices with more than a given number of rows and columns (10 for the time being), excedent elements will be replaced by ..., showing only the corners of the matrix.
-
Added an integer parameter to print_elements() method that allows limiting the maximum number of rows and columns in the output. If more rows and/or columns are present than the number specified by the parameter, the excedent elements will be replaced by "..." in the centre of the matrix (i.e. only the corner elements of the matrix will be shown). If the parameter is set to 0, all matrix elements will be printed. The parameter defaults to 10.
-
For cosmetic reasons the include directives have been reordered.
-
The matrix classes have been refactored and made compliant to actual coding standards. Furthermore, the != operator has been fixed as it was not testing the full matrix before. This revealed another problem with the fill stack that was corrupted for vector fills. The internal array m_stack_work was used by the vector fill stack method and the flush method, and the flush method corrupted the vector fill values before they were used. To solve this issue, an additional working array m_stack_rows has been introduced that is now exclusively used by the vector fill stack. The m_stack_work working array is now exclusively used by the flush method.
-
The matrix tools module is not needed anymore as the conversion constructors were put back into the matrix classes.
-
According to the property of the GMatrix class, the allocation of an empty matrix (i.e. with zero rows and columns) is now allowed.
-
We bring the class up to the standards by adding a print method and a logger for matrix output.
-
In the old scheme we dumped the output directly in the output stream. Now we first print in a string, and then handle the string to whatever routine wants to use it. We thus added print_ methods that can remplace the old dump_ methods. Once all matrix classes use the print_ methods, the dump_ methods should be removed.
-
Due to a bad copy/paste error, only the upper triangle of the matrix has been copied. This has been corrected.
-
The matrix storage class convertors have been removed a while ago as I was not aware of the technique of forward declarations. With forwards declarations we can now put them back.