2025-07-08

        * Version 2.1.0 released
        ========================

        Add GSPIEventCube::model_name() method
        Add GModelDataMultiplicative class (#16)
        Improve COMPTEL response computation (#14)
        Implement SPI specific numerical gradient step size (#13)
        Improve elliptical disk and Gaussian models (#13)
        Interpret position angle of elliptical models in Galactic system if 
          location is specified in Galactic coordinates (#13)
        Add gammalib::get_current_clock() method (#12)
        Implement SPI vector response computation (#12) 
        Implement native code for sparse matrix unary addition and subtraction (#11)
        Use sparse vectors in GObservation binned likelihood methods (#9)
        Add GVectorSparse class (#9)
        Add GMatrixSparse methods colfill_init(), colfill_set_column() and
          colfill_flush() (#9) 
        Add GMatrixSparse::column_to_vector() method (#9)
        Add GGti::append(GTimes,GTimes) method (#8)
        Fix unused parameters in GSPIModelDataSpace::setup_pars() method (#7)
        GObservation(s)::nobserved() and GEvents::number() return values
          changed from int to double (#6)
        Add coordinate string constructor and set() method to GSkyDir (#5)
        Write GSPIResponse group name in GSPIObservation::write() method (#4)
        Implement GSPIModelDataSpace::eval() vector method (#3)
        Add gammalib::get_current_rss() method (#3)
        Compute scale gradients for composite spatial model (#2)
        Add GSkyMap scalar multiplication and division (#1)
        Add GCOMResponse::backproject method (#1)
        Do no longer clip negative sky map pixels in GModelSpatialDiffuseMap (#1)
        Add kludge to enable reading of CTA SDC data
        Fix bug in GModelSpectralTable::par_index
        Extract MWL observation attributes from filename
        Add support for eV units in GEnergy
        Generalise flux computation in GModelSpatial::flux method (#4467)
        Fix solidangle computation in GSkyRegionRectangle (#4461)
        Replace distutils by setuptools for Python setup (#4223)
        Add GCOMHkd and GCOMHkds classes (#4209)
        Add COMPTEL DRW support to GCOMObservation and GCOMDris (#4209)
        Add GSkyMap comparison operators (#4209)
        Add GIntegral::adaptive_gauss_kronrod() method (#4204)
        Add optional unit parameter to GApplication::log_value() methods (#4202)
        Fix segfault on saving empty GModelSpectralTable (#4198)
        Implement response vector cache storage in FITS file (#4159)
        Add GCOMObservation::npred() method
        Add optional energy scaling in GModelSpectralTable class (#4069)
        Add GNdarray::index() method (#4069)


2022-06-06

        * Version 2.0.0 released
        ========================

        Add gammalib::getenv() function (#4063)
        Add GEbounds::remove() method (#4062)
        Add ASTRI and FACT as supported instrument type for the CTA module (#4058)
        Fix bug in GGti::insert() and GGti::merge() methods (#4030)
        By default, do not allow log-likelihood decrease in LM optimiser
        Support Galactic coordinates in spatial models (#3988)
        Correctly return UTC times before 1972 (#3974)
        Implement CGRO clock correction (#3973)
        Add support for COMPTEL pulsar analysis (#3973)
        Add GCOMObservation::tim() and GCOMObservation::oads() setter methods
        Add GModelSpatialRadialGeneralGauss and 
          GModelSpatialEllipticalGeneralGauss classes (#3924)
        Remove GCOMSelection::zeta_min() and GCOMSelection::zeta_max()
          methods
        Add GCOMSelection::fpmtflag(), GCOMSelection::use_d1() and 
          GCOMSelection::use_d2() methods (#3917)
        Rename GCOMModelDRBFitting class to GCOMModelDRBPhibarNodes (#3914)
        Add GCOMModelDRBPhibarBins class (#3913)
        Compute spectral model gradients for negative factor values
        Add likelihood fit event selection hook (#3912)
        Add GCOMModelDRM class (#3910)
        Add angle(GVector&,GVector&) friend function (#3908)
        Add GSkyDir::galvector() methods (#3907)
        Make extension name check case insensitive in GFits::extno()
        Add numerical gradient step size member to GObservation
        Add stamp() methods to GApplication (#3662)
        Display application header in debug mode (#3631) 
        Add ASCL shield to "About" page (#3630)
        Add GModelSpectralFunc spectral constructor (#3626)
        Add GModelSpectralBins class (#3606)
        Added GApplication statistics() and add_celapse() methods (#3592)
        Add GammaLib daemon for application statistics management (#3592)
        Add carbon footprint estimation and application statistic logging to
          GApplication (#3592)
        Add phase selection to GCOMSelection and GCOMDri (#3564)
        Fix incompatibility in GMatrixSparse::mix_column_prepare() method (#3563)
        Add missing members to GOptimizerLM::copy_members() method
        Store DRB, DRG and DRX as GCOMDri in GCOMObservation (#3560)
        Implement COMPTEL response for diffuse models (#3558)
        Implement COMPTEL background model computation (#3557)
        Fix reading of scaled FITS columns, remove GFitsTableCol::scale() method (#3553)
        Add gammalib::compare() function (#3552)
        Add DRI constructor to GCOMObservation class
        Add member access methods to GCOMDri class
        Implement ToF correction for COMPTEL EVP version 2 datasets (#3549)
        Implement ToF correction in IRF computation (#3548)
        Correct COMPTEL average deadtime to 0.965 (#3547)
        Fix handling of empty matrix objects (#3541)
        Add methods to GCOMObservation class to access DRI filenames
        Add GModelSpectralFunc methods to build file function in memory (#3535)
        Add GCTABackground2D class (#3527)
        Implement vectorised response computation for COMPTEL (#3501)
        Fix response cache removal for vector cache (#3499)
        Missing file in GModelSpectralFunc throws exception (#3474)
        Add GModelAssociation and GModelAssociations classes (#3469)
        Add GSkyMap::correlate() method (#3461)
        Add GModels::eval() vector evaluation method (#3455)
        Fix GSkyMap::stack_maps() method for WCS maps
        Add GCTAModelSkyCube class (#3442)
        Add GSkyModel flux() and eflux() methods (#3439)
        Add XML value constructors and access methods to GXmlElement class (#3431)
        Correct application elapsed CPU time for OpenMP (#3417) 
        Implement sparse vector response cache (#3403)
        Support spectral line fitting (#3386)
        Implement GMatrixSparse::row() and GMatrixSparse::add_to_row() methods
        Integrate analytical gradients for energy dispersion computation (#3333)
        Add GFunctions abstract base class (#3328)
        Add GIntegrals class (#3328)
        Remove implicit conversion warnings (#3324)
        Add gammalib::tmpnam() function (#3324)
        Add GSkyDirs container class (#3324)
        Add GSkyRegionRect class (#3248)
        Implement vectorised response computation (#3203)
        Implement analytical gradients for the radial Gaussian model in a
          stacked analysis (#3203)
        Add GSkyModel flux_error() and eflux_error() methods (#3074)
        Remove COMPTEL internal response caching (#2973)
        Add GSkyMap::flux(GRegion(s)) and GSkyMap::solidangle(GRegion(s)) methods (#1785)
        Reimplement GModelSpatial::flux() method for diffuse and combined models (#1785)
        Implement pre-computation cache in GModelSpatialGauss (#1300)
        Replace specific by generic exceptions (#35)


2021-04-28

        * Bug fix version 1.7.4 released
        ================================

        Add conda activation and deactivation scripts for csh (#3628)
        Speed-up Monte-Carlo sampling of exponentially cut-off power
          law models (#3625)


2020-12-02

        * Bug fix version 1.7.3 released
        ================================

        Fix inaccuracy in CTA background model evaluation (#3472)


2020-10-15

        * Bug fix version 1.7.2 released
        ================================

        Fix copy of base class members in copy constructor of some
          spatial models (#3402)


2020-09-07

        * Bug fix version 1.7.1 released
        ================================

        Add Python include path in search for Python.h (#3329)
        Test for Big Sur in configuration step (#3326)
        Copy Python modules into pyext/gammalib folder (#3322)
        Write units of response cubes into FITS files (#3321)
        Implement specific response cache for CTA stacked analysis (#3316)
        Speed up model definition XML file writing (#3308)
        Fix automatic type casting in Python interface (#3295)
        Make parameter file reading and writing thread safe (#3287)
        Add quotes to sky region names (#3280)
        Fix broken power law flux and eflux computation bug (#3279)


2020-07-02

        * Version 1.7.0 released
        ========================

        Add equality and non-equality operators to GSkyRegionCircle class
        Add GModelSpatialRadialRing class (#3253)
        Fix ambiguity problem in GSkyDir::posang() and posang_deg() (#3199)
        Fix GModelSpatialDiffuseCube pickeling issue (#3179)
        Rename GModelSpatialDiffuseCube::set_mc_cone() to mc_cone() (#3179)
        Rename GModelSpatialDiffuseMap::set_mc_cone() to mc_cone() (#3179)
        Properly set region for GModelSpatialDiffuseCube class (#3145)
        Avoid rounding errors in GSkyMap operators (#3126)
        Fix inverted min-max boundary in GOptimizePar for negative scale factors (#3072)
        Add GObservations::npred() methods (#3062)
        Exclude upper edge boundary in GSkyMap::contains() method (#3012)
        Add GSkyMap::extract() methods (#2990)
        Add GCOMDri::cone_content() method (#2973)
        Add GCOMObservation::drm(GModels&) method (#2973)
        Implement methods to remove models from a response cache (#2973)
        Improve COMPTEL classes (#2973)
        Install example binaries in share/examples folder (#2971)
        Add GModelSpatial::flux() method (#2961)
        Change order of Python module import (#2961)
        Add GGti::overlap() method
        Correctly write model attributes in GCOMModelDRBFitting class
        Fix GTime.utc() precision bug (#2917)
        Add GTime.datetime() method and add optional precision to GTime.utc() (#2909)
        Remove obsolete methods from GCTAResponseCache class (#2893)
        Replace log flag by string in GEbounds and GEnergies classes (#2881)
        Allow RoI centres different from pointing direction in unbinned analysis
          (#2695)
        Add GSkyDir::moon() method (#1855)
        Add GSkyDir::sun(), GSkyDir::precess() and GTime::julian_epoch() methods
          (#1854)
        GSkyProjection::coordsys() method now returns CEL instead of EQU (#1829)
        Remove GModelSpatialDiffuseCube::maps() and
          GModelSpatialDiffuseCube::pixels() methods (#1761)
        Implement INTEGRAL/SPI instrument interface (#733, #734, #735, #736,
          #740, #742, #745, #746)
        Add GModelSpectralTable class (#599)


2019-11-07

        * Bug fix version 1.6.3 released
        ================================

        Remove nested levels from CTA response cache to reduce memory requirements (#2893)


2019-07-15

        * Bug fix version 1.6.2 released
        ================================

        Set dependency library versions for conda build (#2958)


2019-06-05

        * Bug fix version 1.6.1 released
        ================================

        Fix initialisation script for c-shell (#2724)


2019-05-29

        * Version 1.6.0 released
        ========================

        Allow fitting of instrument scale factors (#2892)
        Add GCTAModelSpatialLookup class to handle CTA background lookups (#2878)
        Implement energy-dependent Gaussian CTA spatial background model (#2868)
        Take instrument scale factors in On/Off analysis into account (#2867)
        GWcs::wcs_set() method now sets radesys and equinox members (#2866)
        Add GCTAPointing::is_valid() method and remove table methods
        Set CTA IRF integration iterations to 6 to cope with H.E.S.S. PSF (#2860)
        Add kludge to handle incomplete Fermi-LAT source maps (#2850)
        Correct Nbgd computation in GCTAOnOffObservation for Non=0 (#2838)
        Improve OpenMP handling in GWcs::dir2pix (#2770)
        Add support for Fermi/LAT P8V3 response functions
        CTA background rates are now per ontime (#2758)
        Add GPythonOptimizerFunction class (#2733)
        Remove diffuse response cube caching (#2722)
        Revise GCTAEdispCube::operator() interface and disable stacked response
          cutting in true energy (#2721)
        Rename GCTAResponseIrf::lo_save_thres() and GCTAResponseIrf::hi_save_thres()
          to GCTAResponseIrf::lo_safe_thres() and GCTAResponseIrf::hi_safe_thres()
          (#2716)
        Add generic CTA response cache (#2715)
        GCTAOnOffObservation now supports any kind of background model (#2710)
        Fix precision issue with GCTABackground3D Monte-Carlo simulations (#2708)
        Integrate energy dispersion linearly instead of logarithmically (#2706)
        Revise GCTAEdisp class interface (#2704) 
        GCTAEdisp returns now energy dispersion values per MeV (#2704) 
        Protect GCTAInstDir from access to invalid information (#2694)
        Implement general CTA background model (#2694)
        Fix bug that potentially wrote the wrong exposure time in a PHA file (#2683)
        Correct handling of stacked On/Off observations without background IRF
          (#2683)
        Fix OpenMP bug in GObservations::likelihood::eval (#2678)
        Define GCTACubeBackground for energy boundaries instead of nodes (#2677) 
        Remove setting of effective area energy boundaries from "LO_THRES" and
          "HI_THRES" keywords (#2674)
        Correctly compute maximum energy in GCTAAeff2D class (#2674)
        Support "ENERG" column name for CTA energy dispersion FITS file (#2670)
        Make IRF interface compatible with H.E.S.S. format (#2660)
        Add use_irf_bkg argument to GCTAOnOffObservation constructor (#2659)
        Support effective area with theta cut in GCTAOnOffObservation (#2657)
        Add gammalib::replace_segment() function
        Apply CTA 2D energy dispersion kludge only to CTA data (#2654)
        Add ARC WCS projection (#2541)
        Add GLog::buffer() method.
        Renamed GPhoton::mcid() to GPhoton::mc_id()
        Remove at() methods from Python interface (#2515)
        Support application specific system parameter files (#2513)
        Add methods and operators to handle additional columns in GPha 
        Made GApplicationPar::query() method public
        Fix handling of q-mode parameters (#2495)
        Speed up computation of diffuse map models for CTA (#2466)
        Enhance GModelSpatialRadialProfileGauss class (#2463)
        Increase integration precision for CTA diffuse model response (#2458)
        Add GModelSpectralExponential class (#2454)
        Add GCTAModelRadialAcceptance model component setter methods
        Handle observation-specific energy thresholds in CTA On/Off analysis (#2429)
        Add GCTAEdisp::prob_erecobin() method (#2422)
        Add gammalib::gauss_integral() function (#2422)
        Keep existing library path in installation script on Mac OS X (#2420)
        Make GPha, GArf and GRmf output files XSPEC compliant (#2404)
        Add methods to store file attributes in GPha (#2404)
        CTA 3D background model now supports "BKG" column names (#2343)
        Ignore non-manadory columns in GCTABackground3D::read() method (#2339)
        Add GFitsTable::remove() methods (#2339)
        Compute likelihood values also if there are no model parameters (#2312)
        Add GSkyDir::cos_dist() method (#2309)
        Add GCTABackground::rate_ebin() method and gammalib::atan2() and
          gammalib::plaw_integral() functions (#2308)
        Handle extended models in CTA On/Off analysis (#2292)
        Preserve GTIs when copying GCTAEventList and GCTAEventCube objects (#2054)
        Use MJD reference of first observation for exposure cube (#2054)
        Implement Python pickeling support (#1938)


2019-05-15

        * Bug fix version 1.5.4 released
        ================================

        Handle new CTA energy dispersion format


2019-05-11

        * Bug fix version 1.5.3 released
        ================================

        Use "BKG" instead of "BGD" for CTA background column (#2343)


2018-04-26

        * Bug fix version 1.5.2 released
        ================================

        Correct number of internal spectral nodes in GCTABackground3D (#2462)


2018-03-26

        * Bug fix version 1.5.1 released
        ================================

        Fix MANPATH for Mac OS X systems (#2420)
        Add kludge to handle noisy CTA 2D energy dispersion (#2342, #2403).
        Prevent unintentional deallocation of arguments (#2340).
        Correct sky map smoothing.


2018-01-23

        * Version 1.5.0 released
        ========================

        Change DATE_OBS, DATE_END, TIME_OBS and TIME_END FITS keywords into DATA-OBS,
          DATE-END, TIME-OBS and TIME-END
        Non-point source model throws exception in On/Off fitting (#2296)
        Set reference time to CTA reference time in GCTAEventcube, GCTAEventList and
          GCTACubeExposure (#2295)
        GCsv interprets lines in CSV files starting with # as comment lines (#2291)
        Add GPha::counts_spectrum() and GPha::backscal_spectrum() methods (#2290)
        Add GNdarray sign(), operator*= and operator/= (#2290)
        Add GSkyMap::counts() and GSkyMap::flux() methods and clip() friend operator
          (#2290)
        Add GSkyMap::array() method to Python interface (#2285)
        Add Off sky regions to GCTAObservation (#2284)
        By default require cfitsio library (#2265)
        CTA observations handle "statistic" attribute in XML file (#2238)
        Use CSTAT and CHI2 instead of POISSON and GAUSSIAN for statistic (#2237)
        Changed GObservation::statistics() to statistic() (#2238)
        Prevent negative response values for COMPTEL IRF (#2234)
        Add GCTAOnOffObservation PHA, ARF and RMF constructor (#2231)
        Implement observation stacking in GCTAOnOffObservation (#2228)
        Implement region integration in GCTAOnOffObservation (#2210)
        Implement WSTAT in GCTAOnOffObservation (#2209)
        Add GPha arithmetic operators and scale access methods
        Add GArf arithmetic operators
        Add GRmf arithmetic operators
        Add GEbounds equality and inequality operators
        Improve efficiency of GGti::contains() method.
        Add GFitsTableCol::scale() method (#2191)
        Implement code generator for GammaLib extensions (#2190)
        Implement COMPTEL event list support (#2187)
        Implement COMPTEL response computation (#2186)
        Add COMPTEL SDA, SDB and ICT response files (#2186)
        Correct output of COMPTEL DRB fitting XML model (#2184)
        Allow source position fitting for Fermi-LAT data (#2183)
        Add GModelSpectralNodes spectral model constructor (#2178)
        Add GSkyMap division operator for Python 3.x (#2122)
        Add time parameter to GApplicationPar class (#1864)
        Add time string constructor and set method to GTime class (#1864)
        Remove GCTAObservation::obs_id() methods (#1836)
        Use GNdarray to store GSkyMap pixels and add smooth() method (#1729)
        Use XML support functions in all model classes (#1430)
        Add GSkyRegionMap class (#1121)


2017-10-31

        * Bug fix version 1.4.3 released
        ================================

        Correct background interpolation in GCTACubeBackground::operator() (#2268)
        Fix OpenMP segfault issue when fetching CTA events (#2192)
        Fix UTC rounding error in GTime::utc() method (#2177)
        Correct GModelSpatialComposite::copy_members() bug


2017-08-24

        * Bug fix version 1.4.2 released
        ================================

        Correct rate computation in GModelTemporalLightCurve::mc() (#2181)


2017-08-22

        * Bug fix version 1.4.1 released
        ================================

        Correct GModelSpectralNodes::mc() regression for energies outside the node energy range (#2179)


2017-07-28

        * Version 1.4.0 released
        ========================

        Add GCTAEventBin::ipix() and ieng() setter methods (#2171)
        Write response information into simulated observation definition file (#2170)
        Normalise phase curves by default (#2154, #2172)
        Support Python list slicing for container classes (#2128)
        Add Python typemaps for GObservation::likelihood() output argument (#2126)
        Add GSkyRegions::overlaps() and GSkyMap::overlaps() classes (#1980)


2017-07-06

        * Bug fix version 1.3.1 released
        ================================

        Add margin to maximum light and phase curve values (#2149)
        Improve caching in GSkyDir (#2148)
        Make GCTAPsfKing save against invalid values (#2133)


2017-06-06

        * Version 1.3.0 released
        ========================

        Add header card keyword map to GFitsHeader for fast access (#2120)
        Correct set names of spatial GLON/GLAT model parameters (#2113)
        Increase maximum CTA King PSF radius to 2 degrees (#2112)
        Support "BKG" as name of CTA background template
        Scale optimizer convergence criterion with step size (#2022)
        Put response cube loading and saving in OpenMP critical zone (#2021)
        Add GPhases class (#1996)
        Allow fitting of scale parameter in composite models (#1992)
        Add GEventList::append_column() method (#1991)
        Add scalar addition and subtraction operators to matrix classes (#1990)
        Add GCTAAeff::ebounds() method (#1989)
        Add GEbounds::emin() and GEbounds::emax() setter methods (#1989)
        Protect GEbounds::set_lin() and set_log() methods from invalid arguments (#1989)
        Avoid hang-up of GCTAModelAeffBackground::mc() method (#1988)
        Copy shared Python libraries instead of creating a symbolic link (#1987)
        Added FITS image conversion operators (#1986)
        If code originates from Git, always compile the Python bindings (#1985)
        Raise exception instead of exiting with return code in Python tests (#1983)
        Add GEventList::has_phase() and GEventList::has_detxy() methods (#1982)
        Enhance precision of GCTAEdisp2D::compute_ebounds_src
        Add conversion methods between GEbounds and GEnergies (#1977)
        Do no longer interpret a CTA calibration database as file path (#1969)
        GWcs now supports CD keywords instead of CDELT (#1951)
        Add GModelSpectralSmoothBrokenPlaw class (#1948)
        Implement lazy loading of energy dispersion in GCTAEdisp2D (#1940)
        Add GCTARoi::contains method
        Add GCTAResponseIrf::rspname() method
        Correct GCTAPsf2D containment radius computation (#1876)
        Add GFilename::type() method (#1863)
        Rename GFitsTableCol::length() to GFitsTableCol::nrows() (#1860)
        Rename GFitsHDU::size() to GFitsHDU::cards() (#1859)
        Rename GFitsImage::size() to GFitsImage::npix() (#1858)
        Remove GFitsTable::size() method (#1857)
        Add GLS and SFL WCS projections (#1851)
        Add GModelSpatialRadialProfile class (#1520)
        Add GModelSpatialRadialProfileGauss class (#1520)
        Add GModelSpatialRadialProfileDMBurkert class (#1520)
        Add GModelSpatialRadialProfileDMEinasto class (#1520)
        Add GModelSpatialRadialProfileDMZhao class (#1520)
        Add support for Monte Carlo identifier metadata (#1483)
        Add GEventList::has_mc_id() and GEventAtom::mc_id() methods (#1483)
        GModelSpectralNodes throws exception for non-positive energy or intensity (#990)


2017-02-24

        * Version 1.2.0 released
        ========================

        Reduce length of LAT response filenames by unzipping a number of energy dispersion files (#1931)
        Skip zero livetime observations in stacked cubes for CTA (#1920)
        Correct handling of time references in GGti::extend() method (#1922)
        Check that MC energy is comprised in validity range for CTA 3D background template (#1918)
        Add GModelTemporalPhaseCurve class (#1916)
        Monte Carlo for empty maps or map cubes no longer throws an exception (#1915)
        Add GModelTemporalLightCurve class (#1914)
        Add GSkyMap FITS HDU constructor
        Add leap second for 1-1-2017 (#1887)
        Add region() method to GModelSpatial (#1764)
        Correct containment radius computation in GCTAPsf2D::containment_radius (#1876)
        Add composite spatial and spectral models (#1706)
        Add GObservations::save_covmat() method (#1863)
        Add GFft and GFftWavetable classes (#1731)
        Add GNdarray class (#1768)
        Increase precision of gammalib::str() floating point functions
        Add GFits::publish() methods (#1231)
        Add GVOTable class (#1231)
        Add multiplicative spectral model (#1861)
        Add additional time setting and getting methods (#1856)
        Check CTA response table dimension for consistency (#1848)
        Remove eval_gradients() methods and remplace by eval() method with optional gradients argument (#1847)
        Add GTestSuite::test_value() method with automatic precision computation
        Add GSkyMap::is_empty() method (#1828)
        Add GApplication access by index operator (#1838)
        Add GApplication::pars() and GApplicationPar::current_value() methods (#1838)
        Add GLog is_open(), is_empty() and written_size() methods (#1837)
        Fix invalid pointer problem in GLog copies (#1823)
        Fix GSkyMap::publish() bug for empty sky maps (#1835)
        Fix loss of application name and version (#1835)
        Add methods for logging in applications (#1828)
        Fix removal of Python wrappers after make clean (#1826)
        Add GModelSpectralExpInvPlaw class (#1800)
        Add GModelSpectralPlawEnergyFlux class (#1790)
        Rename GModelSpectralPlaw2 to GModelSpectralPlawPhotonFlux (#1790)


2016-07-24

        * Version 1.1.0 released
        ========================

        Check on model parameters in spectral registry (#1824)
        Rename spectral model components (#1821)
        Fix exception handling SWIG interface for Python 3
        Write same XML element names than those that were read (#1820)
        Rename spatial model components (#1818)
        Fix consistency problem in GCTABackground3D (#1815)
        Models accessing file now support relative file names (#1808)
        Add GXmlElement and GXmlDocument filename() methods (#1808)
        Move node parent from GXmlElement to GXmlNode class (#1808)
        Fix Makefile for example executables (#1806)
        Include examples in unit tests (#1803)
        Handle additional columns in GArf class
        GCTAAeff2D no longer extrapolates beyond response table (#1784)
        Add GWcsSIN projection class (#1798)
        Add weights to CTA event cube and event bin (#1789)
        Remove GCTACubeExposure, GCTACubePsf and GCTACubeBackground elogmeans() methods
        GCTACubeExposure, GCTACubePsf and GCTACubeBackground use energy values (#1788)
        GSkyMap::save() now overwrites files (#1787)
        Add GCTAPsfTable class (#1786)
        Use std::vector for naxes argument in GFitsImage (#1779)
        GCTACubePsf and GCTACubeEdisp now save 4D images
        Change interpolation scheme in GCTABackground3D
        Add GCsv::append() method (#1773)
        Add GTestSuite::test_value() string method (#1772)
        Add component setting methods to GModelSky (#1770)
        Add GApplication::logFileClose() method
        Add GModel::read_attributes() and write_attributes() private methods (#1765)
        Also write test reports in case of an exception (#1746)
        GCaldb::filename() method now returns GFilename (#1745)
        Add GCTAObservation filename constructor (#1744)
        Add gammalib::number() function (#1743)
        Add GSkyMap::shape() and ndim() methods (#1733)
        Add GEnergy division operator
        Use rejection method in GModelSpatialDiffuseMap::mc() (#1725)
        Add GObservations::nobserved() method (#1723)
        Use rejection method in GCTABackground3D::mc() (#1722)
        Use rejection method in GModelSpatialDiffuseCube::mc() (#1722)
        Add energy dispersion cube for stacked analysis (#1721, #1801)
        Make GFilename::is_fits thread safe (#1717)
        Revise GTime operators (#1714)
        Add GSkyMap::publish() method to publish map on VO Hub (#1710)
        Add GVOClient::publish() method to publish a FITS HDU (#1710)
        Remove GCTAOnOffObservations class (#1669)
        Handle FITS extensions in GSkyMap load() and save() methods (#1695)
        Restrict Monte Carlo simulations in GModelSpatialDiffuseConst to simulation cone (#1674)
        Use default GTime in GModelSpectral eval() and eval_gradients() methods (#1672)
        Optimise GModelSpatialDiffuseMap::set_mc_cone() method (#1673)
        Optimise GModelSpatialDiffuseCube::set_mc_cone() method (#1673)
        Use default GTime in GObservation::deadc() method (#1670)
        The GApplicationPar::filename() methods now take and return GFilename (#1671)
        Add GFilename methods and remove equivalents from GTools (#1666)
        Use column names for CTA response table access (#1656)
        Add non-const GObservation::events() method (#1664)
        Remove event fetching from GCTAObservation class (#1648)
        Implement event fetching and disposal in GCTAEventList class (#1648)
        Add GFilename::fullname() method
        Add GCTAEventList::remove() method
        Handle also additional columns in GCTAEventList::append() method
        Fix GFitsTableCol::insert() method for empty columns
        Fix GCTAEdisp2D::compute_ebounds_xxx() methods (#1662)
        Use GFilename in GFits to store filename (#1649)
        Load CTA GTI extension from the HDU name provided by the DSS keyword (#1598)
        Support Fermi LAT Pass 8 response functions (#1517)
        Support out of source builds (#1484)
        Finalize implementation of CTA On/Off fitting (#1044, #1781)


2016-01-27

        * Bug fix version 1.0.1 released
        ================================

        Add units to CTA event list columns (#1616)
        Allow usage of numbers in FITS extension names (#1611)
        Solve compatibility issues with Anaconda on Mac OS X (#1607)
        Correct diffuse map MC normalisation (#1584)


2015-12-18

        * Version 1.0.0 released
        ========================

        Ignore errors for El Capitan post processing (#1605)
        Read only mandatory columns in GCTAEventList (#1600)
        Remove extname arguments from classes (#1601)
        Add GFilename class (#1599)
        Check existence of files in CTA response loading (#1586)
        GSkyMap::__getitem__ throw exception if out of bound (#1581)
        Handle ~ in filenames (#1580)
        Add GModel::has_ts() method (#1578)
        Perform __init__.py creation only in build step (#1569)
        Remove access by name methods from GSkyRegions (#1564)
        Resolve Python test problem on El Capitan (#1563)


2015-10-28

        * Version 0.11.0 released
        =========================

        Add need_help() method to GApplication (#572)
        Correct GModelSpatialDiffuseCube computations (#1559)
        Add save() and write() methods to GModelSpatialDiffuseCube
        Add interval constructor and set methods to GEnergies class
        Add Python unit test function to gammalib module (#1486)
        Increase CTA IRF integration precision for shell model (#1521)
        Correctly handle MC simulations for unnormalized diffuse maps (#1548)
        Improve precision of shell model in unbinned analysis (#1521)
        Add GCTAModelAeffBackground class
        Remove small angle approximation from GModelSpatialRadialShell
        Rename GSkymap to GSkyMap
        Add binary operators to GSkymap class
        GSkymap::operator/=(GSkymap) operator now ignores division by zero
        Remove deadtime correction from GCTAModelCubeBackground (#1503)
        Add GCTAObservation::object() method
        Correct model gradient computation
        Correct check of pixel containment in sky map (GSkymap::contains())
        Do only search in users pfiles if PFILES environment variable is not set
        Correct GModelSpatialDiffuseConst::mc() method (#1480)
        Add is_valid() method to GCTARoi and write keywords only if ROI is valid (#1476)
        Increased number of integration iterations for energy dispersion (#1472)
        Add GOptimizerLM::logger() method, logger constructor takes pointer (#1471)
        Replaced fixed precision integration by fixed iterations (#1466)
        Implement rejection method for skymap Monte Carlo (#1465)


2015-05-22

        * Version 0.10.0 released
        =========================

        Add optional PHASE information to CTA event lists
        Use URL path informtion in GVOClient connection to Hub
        Ignore empty string parameters in GModel::is_valid()
        Add some constructors
        Add classname methods to Python interface (#1321)
        Rename CTA cube analysis classes (#1269)
        Do not dump unqueried parameters (#1349)
        Add GBilinear class
        Add WCS projections (MOL)
        Add GXmlElement::has_attribute() method
        Add GSkymap scaling operators (#1296)
        Add GSkymap::extract() method (#1442)
        Implement GApplicationPar range checking (#285)
        Forbid appending to text, comment and PI XML nodes (#804)
        Increase precision for diffuse model Npred computation (#1248)
        Implement observation definition reader/writer (#1429)
        Remove etrue flag from CTA background IRF (#1437)
        Allow appending of empty intervals to GEbounds and GGti
        Add single interval constructor to GGti
        Allow calling GNodeArray::set_value() for a single node
        Add GTI and livetime information to GCTACubeExposure
        Add GModelSpatial::contains method (#1446)
        Add GModelSpatialEllipticalGauss class (#1412)
        Add GVOHub class (#1229)
        Add CTA Prod2 instrument response function (#1464)


2015-01-07

        * Bug fix version 0.9.1 released
        ================================

        Fixed bug #1383 (unit test error with recent gcc compiler)


2014-11-13

        * Version 0.9.0 released
        ========================

        Add energy dispersion to CTA module
        Add pointing table support to CTA module
        Add event filtering for binned analysis
        Add +=, -=, *= and /= operators to GSkymap
        Add integration status tracking to GIntegral
        Add GCTAExposure and GCTAMeanPsf classes
        Add ts and tscalc attributes to GModel and use them in models
        Add manipulation methods to GCTAResponseTable
        Add read(), write() and save() methods to GCTAPsf2D and GCTAPsfKing
        Add classname() method to all classes
        Add utc() methods to GTime class
        Add hierachical element access methods to GXml and GXmlNode
        Add table creation and saving methods to GCsv class
        Add predefined entity support to XML module
        Read/write altitude and azimuth attributes of CTA data
        Refactor CTA response class, add GCTAResponseCube class
        Improve CTA response computation for extended models
        Implement CTA stacked analysis
        Optimize CTA binned and stacked analysis
        LM optimizer now allows logL decreases up to 1.0
        Load events only when needed into GCTAObservation
        Implement full automatic typecasting in Python module
        Fill DETX and DETY values in GCTAResponseIrf::mc 
        Rename GCTAModelBackground to GCTAModelCubeBackground
        Rename GCTAModelInstBackground to GCTAModelIrfBackground
        Rename GIntegral::romb() to GIntegral::romberg()
        Correctly take into account logfile name change in Python
        Correctly use DETX/DETY in radians in GCTAInstDir
        Introduce class codes to avoid dynamic type casting
        Remove error computation from optimization
        Add GOptimize::errors() method for error computation
        Add support for user and save CTA energy thresholds
        Several bug corrections


2014-03-12

        * Bug fix Version 0.8.2 released
        ================================

        Avoid division by zero error in GModelSpectralPlaw2 (#1141)
        Add __len__ and copy() methods to GEvents Python interface
        Increase Npred spectral integration precision to 1e-8 (#1142)
        Use GCaldb for COMPTEL response handling
        Add Pass 7 response files for Fermi/LAT
        Load cube in GModelSpatialDiffuseCube only when needed (#1143)
        Correct bug in Fermi/LAT PSF computation (#1004)
        Implement CTA instrument background (#1146)
        Add GModelSpectralSuperExpPlaw spectral model (#1147)
        Added normalize attribute to GModelSpatialDiffuseMap (#1134)
        Take into account spatial model normalization in MC sampling (#1135)
        Add load() and save() methods to GCATObservation (#1149)
        Correct LAT PSF computation for sources outside event cube


2014-02-05
        
        * Bug fix Version 0.8.1 released
        ================================
        
        Added missing hyphens in pfiles synchronisation section (#1091)
        Add configuration test script (#1091)
        GModelSky, GCTAModelBackground and GCTAModelRadialAcceptance write id attribute into XML file (#1092)
        Add GChatter typedef to Python interface
        GAMMALIB_CALDB takes precedence over CALDB environment variable (#1094)
        Added vo module and GVOClient class to Python interface
        Track results of Python unit tests (#1119)
        Clean-up calibration database interface (#1102)
        Correct 2D PSF Monte-Carlo simulations (#1128)
        Correct deadtime computation for CTA non point source response (#1133)


2014-01-18

        * Version 0.8.0 released
        ========================

        Major review of public interfaces of all classes
        Reorganize sky models
        Introduce GContainer interface class
        Add Virtual Observatory support
        Introduce GUrl classes for transparent URL handling
        Make use of GUrl class in XML I/O
        Optimize computations
        Introduce gammalib namespace for constants and functions
        GModelSpatialDiffuseCube reads ENERGIES extension
        Add sky region handling
        Add on/off analysis support for CTA
        Add xspec interface support
        Rework registry classes to remove memory leaks on termination
        Add support for variable-length FITS columns
        Generalise GSkyPixel to 1D and 2D pixelisations
        Added King profile PSF for CTA
        Reorganise GOptimizerPars class and add GOptimizerPar class
        Put likelihood computation in GObservation class
        Add broken power law spectral model
        Add Gaussian spectral model
        Update parameter files if necessary
        Implement exact sky map pixel solid angle computation
        Rename the following classes:
        - GWcs => GSkyProjection
        - GWcslib => GWcs
        - GWcsHPX => GHealpix


2012-12-18

        * Version 0.7.0 released
        ========================

        Add base module for interface classes
        Introduce GBase from which almost all classes derive
        Add dependency tracking for Python interface
        Add COMPTEL instrument interface
        Open FITS image using the equivalent data type
        Refactor CTA response classes
        Define new instrument response interface
        Add GSource class
        File locking failures do no longer throw exceptions
        Optimize GNodeArray computations and add unit tests
        Add handling of undefined and NaN values to GPar class
        Add GPhotons photon container class
        Implement mc(), flux() and eflux() for all spectral models
        Rework GTime interface and introduce GTimeReference class
        Add GModelSpectralLogParabola spectral model


2012-09-17

        * Bug fix version 0.6.2 released
        ================================

        clang++ compiler precedence is only taken for Mac OS X >= 10.7
        Omit Python checks if Python bindings are disabled
        Enhance OpenMP configuration on Darwin
        Export MACOSX_DEPLOYMENT_TARGET only for --enable-universalsdk
        Improve Python bindings configuration
        Add TEST_ENV_DIR to load library path


2012-09-15

        * Bug fix version 0.6.1 released
        ================================

        Do not require gammalib/__init__.py file to be present
        clang++ compiler takes precedence over g++ compiler


2012-09-14

        * Version 0.6.0 released
        ========================

        Add support for Fermi/LAT Pass 7 data
        Add GModelSpatialMap model
        Add sky direction access operator to GSkymap class
        Add support for diffuse source models to CTA response
        Add OpenMP support and parallelize likelihood optimizer
        Add unit test support (introduce test module)
        Correct bugs in GSparseMatrix
        Enhance code quality


2012-04-03

        * Version 0.5.0 released
        ========================

        Update license text
        Add configure options for Mac OSX universal builds
        Break gammalib Python extension into modules
        Comply to CTA event list format v1.0.0
        Implement XML protocol for observation loading
        Add support for CTA 1DC response format
        Add GCTAResponseTable class for response file handling
        Add GCTAModelRadialPolynom model
        Add GCTAModelRadialProfile model
        Add GModelSpectralNodes model
        Correct Npred integration in GCTAModelRadialAcceptance


2011-10-12

        * Version 0.4.12 released
        =========================

        Add missing #include <cstring> to GTools.cpp
        Correct but in python interface for GSymMatrix and GSparseMatrix


2011-10-03

        * Version 0.4.11 released
        =========================

        Add set response() to observation classes
        Expose GCTAResponse::offset_sigma() in python
        GCTAResponse::aeff() no longer returns negative areas
        Improve Npred integration for extended sources in GCTAResponse
        Implement environment variable expansion
        Correctly fit unbinned for multiple observations
        Add eflux() methods to spectral models
        Implement flux(), eflux() and mc() for GModelSpectralFunc
        Add GLog output methods to Python interface
        Add append() and append_standard() methods to GPars
        Protect parfile read/write by a file lock
        LM optimizer frees any internally fixed parameter at exit
        Add row and column manipulation methods for FITS tables
        Replace FITS table column methods by access operators
        Fix bug in GSparseMatrix::cs_transpose


2011-07-20

        * Version 0.4.10 released
        =========================

        Improve configuration script
        Minor bug fixes


2011-07-09

        * Version 0.4.9 released
        ========================

        Implement wcslib adaption for GWcs classes
        Added AZP, STG, and TAN WCS projections
        Add simple offset angle dependence of CTA response
        Does not require pkg-config anymore
        Add NaN/Inf check in various places (--enable-nan-check)
        Test for presence of Python.h


2011-02-24

        * Version 0.4.7 released
        ========================

        Fix memory leaks in container classes handling pointers
        Add more example scripts


2011-02-21

        * Version 0.4.6 released
        ========================

        Add support for extended source models
        Implement CTA binned and unbinned support for extended source models
        Update GEvents, GObservation and GResponse interfaces
        Use operator[] for element access
        Strict usage of C++ headers
        Add Doxygen and man support (make doxygen; make doxygen-install)
        Add html documentation


2011-02-02

        * Version 0.4.5 released
        ========================

        Implement CTA radial acceptance model
        Generalize model class
        Generation of Python bindings no longer requires swig
        Include missing headers for Ubuntu and OpenSuse
        Improve automatic configuration, remove autogen.sh
        Adapt for Solaris 2.10


2011-01-06

        * Version 0.4.4 released
        ========================

        Tag sources with GammaLib-00-04-04
        Clean up response interface
        Correct some bugs and enhance some classes
        Correct and validate Fermi-LAT interface for binned analysis


2010-12-20

        * Version 0.4.3 released
        ========================

        Tag sources with GammaLib-00-04-03
        Add CSV Table interface
        Add more source models
        First working Fermi-LAT interface for binned analysis


2010-11-23

        * Version 0.4.2 released
        ========================

        Tag sources with GammaLib-00-04-02
        Enhance FITS interface


2010-11-15

        * Version 0.4.1 released
        ========================

        Tag sources with GammaLib-00-04-01
        Prototype implementation of XML interface
        Prototype implementation of application logger
        Cleanup of FITS interface


2010-06-11

        * Version 0.4.0 released
        ========================

        Tag sources with GammaLib-00-04-00


2009-10-09

        * Version 0.2.0 released
        ========================

        Tag sources with VER-0-2-0
