-
The mc() method went in endless loops as the exit condition of the while loop was inversed (the method continued looping when the energy was within the valid range and only exited when it was outside). The eval_gradients() method computed the gradients with respect to the parameter values and not the parameter factors. All gradients have be multiplied by the scales. Also, the gradients are now set to 0 if the parameters are fixed. Finally, the parameter "Prefactor" was renamed to "Normalization" because the parameter gives the integral flux under the Gaussian, not the prefactor.
-
(I chose `centre` because there were more `centre` than `center` around.)
-
The coding and design conventions (CDC) document was also updated.
-
Conflicts: doc/source/user_manual/modules/model.rst
-
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
-
The abstract pointing class has been removed as so far no abstract pointing interface is needed.
-
The events() set method now takes a const reference instead of a const pointer as argument. Some methods have now been defined inline.
-
GEvents GEventList The clobber argument of the save() method is now passed as const reference. GEventCube The clobber argument of the save() method and the axis argument of the naxis() method are now passed as const references.
-
GTime The secs() method now returns a const reference. GTimeReference The load constructor and the read() and write() methods take a const reference instead of a pointer. GGti The read() and write() methods now use references instead of pointers. The clobber argument in the save() method is passed as const reference. GEbounds The read() and write() methods now use FITS references instead of pointers. The clobber argument in the save() method is passed as const reference. GPhoton Add mcid argument to Photon constructor (defaults to -1).
-
The GFits class allows for flexible HDU manipulation using the container methods set(), append(), insert(), remove() and extend(). So far the code was unable to save correctly a manipulated FITS file. This has now been corrected for. If for a given extension number the type of a HDU has changed during manipulations (e.g. an image has become a table or vice versa), the old HDU is deleted and a new HDU is inserted in place. Also, exedent HDUs that are not present anymore in the GFits object will be removed from the FITS file upon saving.
-
The GFits class now derives from GContainer and implements all generic container class methods (at(), size(), isempty(), set(), append(), insert(), remove(), reserve(), extend()). The hashdu() method has been renamed to contains() for compliance with other container classes. The hdu() methods have been renamed to at(), also for compliance. Boolean arguments are now passed as const references, and members are returned as const references. HDU access operators[] have been implemented to access FITS extensions without range checking.
-
GTestSuites The GTestSuites class now derives from GContainer and implements the usual container class methods (at(), size(), isempty(), set(), append(), insert(), remove(), reserve() and extend()). The operator[] now returns pointers to GTestSuite. The name() and timestamp() methods now return const references. GTestSuite The GTestSuite class now derives from GBase. This implies that the clone() method needs to be implemented for derived classes. The test_assert() method now takes a const reference for the boolean argument. The name(), errors(), failures(), and timestamp() methods return const references. The obsolete add_test() method has been removed. The unit tests have been updated to conform to the new interfaces.
-
The node array class now derives from the container base class. All typical container methods, such as at(), size(), isempty(), append(), insert(), remove(), reserve() and extend() are now implemented. Unit tests have been added to check the functionnality. The Python interface now implements the __len__ method on the GContainer class level. This allows to determine container sizes using the len() function. The __len__ method is now obsolete in the derived classes and thus has been removed.
-
The GFunction::eval interface has been revised and all affected GammaLib classes have been adapted.
-
The GSkyPixel class now handles 1D and 2D sky indices. This made the distinctive 1D and 2D methods in GSkyProjection and the derived classes obsolete. Now, all projection classes take GSkyPixel as argument. The GSkymap class now uses the universal GSkyPixel class. Methods have been renamed consistently. An integer index is now consistently called "sky map index" and the GSkyPixel object is named a "sky map pixel". Methods operating on indices contain now "inx", method operating on sky map pixels "pix".
-
GSkyPixel is now able to handle both 1D and 2D sky map pixels. 1D sky map pixels behave like int or double types, and conversion from and to these types is supported. 2D sky map pixels store the X and Y component of the pixel. Methods are provided to test whether a pixel is 1D or 2D.
-
The GWcslib class has been renamed to GWcs for consistency with the naming convention for GammaLib base classes. All WCS implementations derive now from GWcs. The code has been adapted to this new naming convention.
-
The Healpix pixelisation is not a World Coordinate System projection, and to make this clear the name has been changed from GWcsHPX to GHealpix. The code has been adapted to this new naming convention.
-
A major revision of the GFitsTable class interface has been done, making it more similar to the interface of other container classes. In particular, the column access operator now returns a pointer instead of a reference, preventing code slicing. The set() method has been introduced to set columns in a table. The append_column() and insert_column() methods have been renamed to append() and insert() as they act on columns, and a table is a column container. Some arguments or return values are now also declared as const references. A size() method has been added that return the number of table columns. As the GFitsTable class is widely used throughout GammaLib, a number of classes had to be adapted to this new interface.
-
…ement elements() method for defining variable-length column. A variable-length column is now constructued by passing a negative column vector length. The size of a row is specified using the elements() method that makes use of the resize_data() method implemented by the derived classes. The only column type that is not yet implemented is the Bit column. Also the string columns do not yet work properly for variable-length columns.
-
… a variable-length column. The generic GFitsTableCol::elements() method has been implemented that makes use of the virtual data_resize() method that should be implemented by all derived classes. This method has so far been implemented and tested for the GFitsTableShortCol class. A unit test has also been added for this class that uses the elements() method for setup of the variable-length column.
-
All models derived from GModelData now need to implement a mc() method. The abstract mc() method returns a pointer to GEvents*, thus allowing a method to either simulate an event list or an event cube.
-
The load constructor creates an instance of the GEnergies class by loading the energy information from a FITS file.