-
Conflicts: inst/cta/Makefile.am inst/cta/include/GCTALib.hpp inst/cta/pyext/cta.i Some of the newly introduced methods have been renamed to fit more the GammaLib standards. The GCTAEdispRMF class needs quite some rework, but I merge it in right now to have a working reference of the code. Some initial code modifications have been done, more to come soon.
-
…d outputs to a new GVector
-
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.
-
Before the matrix access operator was used in matrix multiplication which led to a substantial overhead. Now, a pointer on the matrix memory is used which considerably speeds-up the computations.
-
No significant change to the GVector interface has been done, but many of the complex inline functions have been put into the .cpp file, and functions that do not need to be friends are no longer declared friends. The Doxygen documentation has been improved.
-
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.
-
…t access with index check. We follow now the standard of the std::vector library that provides no index check for operator[] access and index check for at() access methods.