-
I ran this build: CXXFLAGS="-Wall -Wno-c++11-long-long -pedantic -std=c++98" ./configure make -j 1 This commit fixes the few compiler warnings that showed up (all unimportant). There is no way to fix the issue that `long long` is not standard C++98, but it's an extension that has been supported by most compilers for a decade, so it's OK to ignore: http://stackoverflow.com/questions/4017621/how-to-do-portable-64-bit-arithmetic-without-compiler-warnings
-
These are the final modifications for the GammaLib core code review.
-
Actually, the indices during column mix were allowed to run beyond the valid array. An index check has been added to avoid this.
-
The methods transpose(), invert() and abs() now return a matrix instead of working on the actual matrix. The transpose(), inverse(), abs(), and negate() friend functions have been removed. The method solve() has been added that solves the linear matrix equation. The Cholesky methods now also return a matrix instead of working on the actual object.
-
The invert() method does not need to call the Cholesky decomposition, as cholseky_invert() does this itself.
-
During the rework of the print() method following the introduction of the gammalib namespace, some extra linefeeds have been introduced that have now been removed again.
-
Add GChatter argument to print() method. The print() method now takes an argument of type GChatter to control the chattiness of the output in a homogenous manner. Pass NORMAL chatter level in __str__ method. Add chatter argument to print() methods. Use GLog::chatter() method to control the chattiness of the log stream operator. Add chatter() methods and provide member access through const references. Add chatter() methods, provide member access through const references, and declare one liners as inline methods. The chatter() methods control the new m_chatter attribute that is used to control the chattiness of the object's print() methods. name() and version() methods return const references. logFileOpen() method now sets the chattiness from the applications's chatter parameter, and name() and version() methods now return a const reference.
-
The corresponding functionality is now implement on the derived class level.
-
The abstract matrix interface defined in GMatrixBase was reviewed and modified according to common practices. All "col" arguments and method names were expanded to "column". The cols() method which returned the number of columns in a matrix is now named columns(). The insert_row/col and set_row/col methods were renamed to row() and column() which allow setting and getting a row or a column in a matrix using a GVector object. In the set methods, the row or column index are now passed as first argument, followed by the vector. The add_row/col methods were renamed to add_to_row() and add_to_column() to be more explicit. Also here, the row or column index are now passed as first argument, followed by the vector. Every matrix class will now have a transpose(), invert(), negate(), abs(), fill(), min(), max(), and sum() method. A size() method has been added to GMatrixBase that returns the number of elements in a matrix.