diff --git a/include/GCaldb.hpp b/include/GCaldb.hpp index dca48dc..287cd7d 100644 --- a/include/GCaldb.hpp +++ b/include/GCaldb.hpp @@ -82,14 +82,15 @@ public: GCaldb& operator= (const GCaldb& caldb); // Methods - void clear(void); - GCaldb* clone(void) const; - int size(void) const; - std::string dir(void) const { return m_caldb; } - void dir(const std::string& pathname); - void open(const std::string& mission, const std::string& instrument = ""); - void close(void); - std::string print(const GChatter& chatter = NORMAL) const; + void clear(void); + GCaldb* clone(void) const; + int size(void) const; + const std::string& dir(void) const; + void dir(const std::string& pathname); + void open(const std::string& mission, + const std::string& instrument = ""); + void close(void); + std::string print(const GChatter& chatter = NORMAL) const; protected: // Protected methods @@ -110,4 +111,16 @@ protected: GFitsTable* m_cif; //!< Pointer to CIF table }; + +/***********************************************************************//** + * @brief Return calibration directory + * + * @return Calibration directory. + ***************************************************************************/ +inline +const std::string& GCaldb::dir(void) const +{ + return m_caldb; +} + #endif /* GCALDB_HPP */ diff --git a/include/GEnergies.hpp b/include/GEnergies.hpp index d06d318..dcd216e 100644 --- a/include/GEnergies.hpp +++ b/include/GEnergies.hpp @@ -73,7 +73,7 @@ public: void extend(const GEnergies& energies); void load(const std::string& filename, const std::string& extname = "ENERGIES"); - void save(const std::string& filename, bool clobber, + void save(const std::string& filename, const bool& clobber, const std::string& extname = "ENERGIES") const; void read(const GFitsTable& table); void write(GFits& file, diff --git a/include/GMatrixSparse.hpp b/include/GMatrixSparse.hpp index a3430e4..a5f1246 100644 --- a/include/GMatrixSparse.hpp +++ b/include/GMatrixSparse.hpp @@ -256,9 +256,9 @@ public: GMatrixSparse invert(void) const; GVector solve(const GVector& vector) const; GMatrixSparse abs(void) const; - GMatrixSparse cholesky_decompose(bool compress = true) const; - GVector cholesky_solver(const GVector& vector, bool compress = true) const; - GMatrixSparse cholesky_invert(bool compress = true) const; + GMatrixSparse cholesky_decompose(const bool& compress = true) const; + GVector cholesky_solver(const GVector& vector, const bool& compress = true) const; + GMatrixSparse cholesky_invert(const bool& compress = true) const; void set_mem_block(const int& block); void stack_init(const int& size = 0, const int& entries = 0); int stack_push_column(const GVector& vector, const int& col); diff --git a/include/GMatrixSymmetric.hpp b/include/GMatrixSymmetric.hpp index 323546f..462adc2 100644 --- a/include/GMatrixSymmetric.hpp +++ b/include/GMatrixSymmetric.hpp @@ -120,9 +120,9 @@ public: GMatrixSymmetric abs(void) const; GMatrix extract_lower_triangle(void) const; GMatrix extract_upper_triangle(void) const; - GMatrixSymmetric cholesky_decompose(bool compress = true) const; - GVector cholesky_solver(const GVector& vector, bool compress = true) const; - GMatrixSymmetric cholesky_invert(bool compress = true) const; + GMatrixSymmetric cholesky_decompose(const bool& compress = true) const; + GVector cholesky_solver(const GVector& vector, const bool& compress = true) const; + GMatrixSymmetric cholesky_invert(const bool& compress = true) const; private: // Private methods diff --git a/include/GRoi.hpp b/include/GRoi.hpp index b01fc6b..d42b5a1 100644 --- a/include/GRoi.hpp +++ b/include/GRoi.hpp @@ -1,5 +1,5 @@ /*************************************************************************** - * GRoi.hpp - Region of interest interface class * + * GRoi.hpp - Abstract Region of interest base class * * ----------------------------------------------------------------------- * * copyright (C) 2010-2013 by Juergen Knoedlseder * * ----------------------------------------------------------------------- * @@ -20,7 +20,7 @@ ***************************************************************************/ /** * @file GRoi.hpp - * @brief Region of interest interface class definition + * @brief Abstract Region of interest base class definition * @author Juergen Knoedlseder */ diff --git a/include/GSkyRegion.hpp b/include/GSkyRegion.hpp index 68d5412..db5c5ab 100644 --- a/include/GSkyRegion.hpp +++ b/include/GSkyRegion.hpp @@ -76,9 +76,9 @@ public: virtual std::string print(const GChatter& chatter = NORMAL) const = 0; // Implemented methods - std::string type(void) const; - std::string name(void) const; - double solidangle(void) const; + const std::string& type(void) const; + const std::string& name(void) const; + const double& solidangle(void) const; protected: // Protected methods @@ -101,7 +101,7 @@ protected: * Returns the region name. ***************************************************************************/ inline -std::string GSkyRegion::name(void) const +const std::string& GSkyRegion::name(void) const { return (m_name); } @@ -115,7 +115,7 @@ std::string GSkyRegion::name(void) const * Returns the region type. ***************************************************************************/ inline -std::string GSkyRegion::type(void) const +const std::string& GSkyRegion::type(void) const { return (m_type); } @@ -129,7 +129,7 @@ std::string GSkyRegion::type(void) const * Returns the solid angle subtended by the region (in steradian). ***************************************************************************/ inline -double GSkyRegion::solidangle(void) const +const double& GSkyRegion::solidangle(void) const { return (m_solid); } diff --git a/include/GSkyRegionCircle.hpp b/include/GSkyRegionCircle.hpp index d6dc446..3da9413 100644 --- a/include/GSkyRegionCircle.hpp +++ b/include/GSkyRegionCircle.hpp @@ -72,9 +72,9 @@ public: // Implemented methods void clear(void); GSkyRegionCircle* clone(void) const; - double radius(void) const; + const double& radius(void) const; void radius(const double& radius); - GSkyDir centre(void) const; + const GSkyDir& centre(void) const; void centre(const GSkyDir& centre); void centre(const double& ra,const double& dec); double ra(void) const; @@ -107,7 +107,7 @@ protected: * Returns the region radius in degrees. ***************************************************************************/ inline -double GSkyRegionCircle::radius(void) const +const double& GSkyRegionCircle::radius(void) const { return (m_radius); } @@ -121,7 +121,7 @@ double GSkyRegionCircle::radius(void) const * Returns the region centre. ***************************************************************************/ inline -GSkyDir GSkyRegionCircle::centre(void) const +const GSkyDir& GSkyRegionCircle::centre(void) const { return (m_centre); } diff --git a/include/GSource.hpp b/include/GSource.hpp index da35ef1..76744b9 100644 --- a/include/GSource.hpp +++ b/include/GSource.hpp @@ -63,7 +63,7 @@ public: virtual ~GSource(void); // Operators - GSource& operator= (const GSource& src); + GSource& operator=(const GSource& src); // Methods void clear(void); diff --git a/include/GUrl.hpp b/include/GUrl.hpp index 165f7a6..01dd801 100644 --- a/include/GUrl.hpp +++ b/include/GUrl.hpp @@ -59,7 +59,7 @@ public: virtual void close(void) = 0; virtual int read(void* buffer, const int& nbyte) = 0; virtual int write(const void* buffer, const int& nbyte) = 0; - virtual int getchar(void) = 0; + virtual int getchar(void) const = 0; virtual void putchar(const int& character) = 0; virtual void scanf(const char* format, ...) = 0; virtual void printf(const char* format, ...) = 0; diff --git a/include/GUrlFile.hpp b/include/GUrlFile.hpp index f396fe7..9f6fea1 100644 --- a/include/GUrlFile.hpp +++ b/include/GUrlFile.hpp @@ -57,7 +57,7 @@ public: virtual void close(void); virtual int read(void* buffer, const int& nbyte); virtual int write(const void* buffer, const int& nbyte); - virtual int getchar(void); + virtual int getchar(void) const; virtual void putchar(const int& character); virtual void scanf(const char* format, ...); virtual void printf(const char* format, ...); diff --git a/include/GUrlString.hpp b/include/GUrlString.hpp index 6fb62e3..c6732c4 100644 --- a/include/GUrlString.hpp +++ b/include/GUrlString.hpp @@ -58,7 +58,7 @@ public: virtual void close(void); virtual int read(void* buffer, const int& nbyte); virtual int write(const void* buffer, const int& nbyte); - virtual int getchar(void); + virtual int getchar(void) const; virtual void putchar(const int& character); virtual void scanf(const char* format, ...); virtual void printf(const char* format, ...); @@ -75,7 +75,7 @@ protected: void free_members(void); // Protected members - int m_index; //!< String position indicator + mutable int m_index; //!< String position indicator std::string m_buffer; //!< Text string }; diff --git a/include/GXml.hpp b/include/GXml.hpp index 92f2ff1..0373821 100644 --- a/include/GXml.hpp +++ b/include/GXml.hpp @@ -207,7 +207,7 @@ public: const GXmlElement* element(const std::string& name, const int& index) const; void load(const std::string& filename); void save(const std::string& filename); - void read(GUrl& url); + void read(const GUrl& url); void write(GUrl& url, const int& indent = 0) const; std::string print(const GChatter& chatter = NORMAL) const; std::string print(const GChatter& chatter = NORMAL, @@ -229,7 +229,7 @@ protected: void init_members(void); void copy_members(const GXml& xml); void free_members(void); - void parse(GUrl& url); + void parse(const GUrl& url); void process_markup(GXmlNode** current, const std::string& segment); void process_text(GXmlNode** current, const std::string& segment); MarkupType get_markuptype(const std::string& segment) const; diff --git a/pyext/GCaldb.i b/pyext/GCaldb.i index 80079ed..feefbc9 100644 --- a/pyext/GCaldb.i +++ b/pyext/GCaldb.i @@ -26,7 +26,6 @@ %{ /* Put headers and other declarations here that are needed for compilation */ #include "GCaldb.hpp" -#include "GTools.hpp" %} @@ -44,13 +43,14 @@ public: virtual ~GCaldb(void); // Methods - void clear(void); - GCaldb* clone(void) const; - int size(void) const; - std::string dir(void) const; - void dir(const std::string& pathname); - void open(const std::string& mission, const std::string& instrument = ""); - void close(void); + void clear(void); + GCaldb* clone(void) const; + int size(void) const; + const std::string& dir(void) const; + void dir(const std::string& pathname); + void open(const std::string& mission, + const std::string& instrument = ""); + void close(void); }; @@ -58,9 +58,6 @@ public: * @brief GCaldb class extension ***************************************************************************/ %extend GCaldb { - char *__str__() { - return gammalib::tochar(self->print()); - } GCaldb copy() { return (*self); } diff --git a/pyext/GEnergies.i b/pyext/GEnergies.i index e056fa6..9a6f176 100644 --- a/pyext/GEnergies.i +++ b/pyext/GEnergies.i @@ -59,7 +59,7 @@ public: void extend(const GEnergies& energies); void load(const std::string& filename, const std::string& extname = "ENERGIES"); - void save(const std::string& filename, bool clobber, + void save(const std::string& filename, const bool& clobber, const std::string& extname = "ENERGIES") const; void read(const GFitsTable& table); void write(GFits& file, const std::string& extname = "ENERGIES") const; diff --git a/pyext/GSkyRegion.i b/pyext/GSkyRegion.i index 4034738..2b6b7ce 100644 --- a/pyext/GSkyRegion.i +++ b/pyext/GSkyRegion.i @@ -52,9 +52,9 @@ public: virtual bool contains(const GSkyRegion& reg) const = 0; // Implemented methods - std::string type(void) const; - std::string name(void) const; - double solidangle(void) const; + const std::string& type(void) const; + const std::string& name(void) const; + const double& solidangle(void) const; }; diff --git a/pyext/GSkyRegionCircle.i b/pyext/GSkyRegionCircle.i index 4d963f4..81f3464 100644 --- a/pyext/GSkyRegionCircle.i +++ b/pyext/GSkyRegionCircle.i @@ -45,12 +45,12 @@ public: GSkyRegionCircle(const GSkyRegionCircle& region); virtual ~GSkyRegionCircle(void); - // Implemented methods + // Implemented methods void clear(void); GSkyRegionCircle* clone(void) const; - double radius(void) const; + const double& radius(void) const; void radius(const double& radius); - GSkyDir centre(void) const; + const GSkyDir& centre(void) const; void centre(const GSkyDir& centre); void centre(const double& ra,const double& dec); double ra(void) const; diff --git a/pyext/GUrl.i b/pyext/GUrl.i index 0ce8b81..164333f 100644 --- a/pyext/GUrl.i +++ b/pyext/GUrl.i @@ -47,7 +47,7 @@ public: virtual GUrl* clone(void) const = 0; virtual void open(const std::string& url, const std::string& mode) = 0; virtual void close(void) = 0; - virtual int getchar(void) = 0; + virtual int getchar(void) const = 0; virtual void putchar(const int& character) = 0; }; diff --git a/pyext/GUrlFile.i b/pyext/GUrlFile.i index 21fcadd..1ef5aae 100644 --- a/pyext/GUrlFile.i +++ b/pyext/GUrlFile.i @@ -48,7 +48,7 @@ public: virtual GUrlFile* clone(void) const; virtual void open(const std::string& url, const std::string& mode); virtual void close(void); - virtual int getchar(void); + virtual int getchar(void) const; virtual void putchar(const int& character); }; diff --git a/pyext/GUrlString.i b/pyext/GUrlString.i index d93c85a..4c0e15d 100644 --- a/pyext/GUrlString.i +++ b/pyext/GUrlString.i @@ -48,7 +48,7 @@ public: virtual GUrlString* clone(void) const; virtual void open(const std::string& string, const std::string& mode = ""); virtual void close(void); - virtual int getchar(void); + virtual int getchar(void) const; virtual void putchar(const int& character); // Other methods diff --git a/pyext/GXml.i b/pyext/GXml.i index c1bd009..12d820c 100644 --- a/pyext/GXml.i +++ b/pyext/GXml.i @@ -83,7 +83,7 @@ public: GXmlElement* element(const std::string& name, const int& index); void load(const std::string& filename); void save(const std::string& filename); - void read(GUrl& url); + void read(const GUrl& url); void write(GUrl& url, const int& indent = 0) const; }; diff --git a/src/linalg/GMatrixSparse.cpp b/src/linalg/GMatrixSparse.cpp index fad958b..71b96d1 100644 --- a/src/linalg/GMatrixSparse.cpp +++ b/src/linalg/GMatrixSparse.cpp @@ -1615,7 +1615,7 @@ double GMatrixSparse::sum(void) const * Returns the Cholesky decomposition of a sparse matrix. The decomposition * is stored within a GMatrixSparse object. ***************************************************************************/ -GMatrixSparse GMatrixSparse::cholesky_decompose(bool compress) const +GMatrixSparse GMatrixSparse::cholesky_decompose(const bool& compress) const { // Create copy of matrix GMatrixSparse matrix = *this; @@ -1695,7 +1695,7 @@ GMatrixSparse GMatrixSparse::cholesky_decompose(bool compress) const * Choleksy factorization has been produced using 'cholesky_decompose'. ***************************************************************************/ GVector GMatrixSparse::cholesky_solver(const GVector& vector, - bool compress) const + const bool& compress) const { // Dump header #if defined(G_DEBUG_SPARSE_COMPRESSION) @@ -1920,7 +1920,7 @@ GVector GMatrixSparse::cholesky_solver(const GVector& vector, * * Inverts the matrix using a Cholesky decomposition. ***************************************************************************/ -GMatrixSparse GMatrixSparse::cholesky_invert(bool compress) const +GMatrixSparse GMatrixSparse::cholesky_invert(const bool& compress) const { // Generate Cholesky decomposition of matrix GMatrixSparse decomposition = cholesky_decompose(compress); diff --git a/src/linalg/GMatrixSymmetric.cpp b/src/linalg/GMatrixSymmetric.cpp index ab48b2d..75c50bd 100644 --- a/src/linalg/GMatrixSymmetric.cpp +++ b/src/linalg/GMatrixSymmetric.cpp @@ -914,7 +914,7 @@ GMatrix GMatrixSymmetric::extract_upper_triangle(void) const * Case A operates on a full matrix, Case B operates on a (logically) * compressed matrix where zero rows/columns have been removed. ***************************************************************************/ -GMatrixSymmetric GMatrixSymmetric::cholesky_decompose(bool compress) const +GMatrixSymmetric GMatrixSymmetric::cholesky_decompose(const bool& compress) const { // Create copy of matrix GMatrixSymmetric matrix = *this; @@ -1020,7 +1020,7 @@ GMatrixSymmetric GMatrixSymmetric::cholesky_decompose(bool compress) const * matrix, Case B on a zero rows/columns (logically) compressed matrix. ***************************************************************************/ GVector GMatrixSymmetric::cholesky_solver(const GVector& vector, - bool compress) const + const bool& compress) const { // Raise an exception if the matrix and vector dimensions are not compatible if (m_rows != vector.size()) { @@ -1113,7 +1113,7 @@ GVector GMatrixSymmetric::cholesky_solver(const GVector& vector, * Case B operates on a (logically) compressed matrix where all zero * rows/columns are skipped. ***************************************************************************/ -GMatrixSymmetric GMatrixSymmetric::cholesky_invert(bool compress) const +GMatrixSymmetric GMatrixSymmetric::cholesky_invert(const bool& compress) const { // Generate Cholesky decomposition of matrix GMatrixSymmetric matrix = cholesky_decompose(compress); diff --git a/src/obs/GEnergies.cpp b/src/obs/GEnergies.cpp index e67a475..4861509 100644 --- a/src/obs/GEnergies.cpp +++ b/src/obs/GEnergies.cpp @@ -389,7 +389,7 @@ void GEnergies::load(const std::string& filename, const std::string& extname) * extension. If another energies extension exists already it is overwritten * if @p clobber=true. ***************************************************************************/ -void GEnergies::save(const std::string& filename, bool clobber, +void GEnergies::save(const std::string& filename, const bool& clobber, const std::string& extname) const { // Allocate FITS file diff --git a/src/support/GUrlFile.cpp b/src/support/GUrlFile.cpp index f6d522b..313f0c7 100644 --- a/src/support/GUrlFile.cpp +++ b/src/support/GUrlFile.cpp @@ -345,7 +345,7 @@ int GUrlFile::write(const void* buffer, const int& nbyte) * * If no file has been opened, the method returns EOF. ***************************************************************************/ -int GUrlFile::getchar(void) +int GUrlFile::getchar(void) const { // Initialise character to EOF int character = EOF; diff --git a/src/support/GUrlString.cpp b/src/support/GUrlString.cpp index 9d3bfe7..d27c06b 100644 --- a/src/support/GUrlString.cpp +++ b/src/support/GUrlString.cpp @@ -348,7 +348,7 @@ int GUrlString::write(const void* buffer, const int& nbyte) * * If no string exists, the method returns EOF. ***************************************************************************/ -int GUrlString::getchar(void) +int GUrlString::getchar(void) const { // Initialise character to EOF int character = EOF; diff --git a/src/xml/GXml.cpp b/src/xml/GXml.cpp index d2d9e5a..0d1b963 100644 --- a/src/xml/GXml.cpp +++ b/src/xml/GXml.cpp @@ -524,7 +524,7 @@ void GXml::save(const std::string& filename) * Reads in the XML document by parsing a Unified Resource Locator of any * type. ***************************************************************************/ -void GXml::read(GUrl& url) +void GXml::read(const GUrl& url) { // Clear object clear(); @@ -656,7 +656,7 @@ void GXml::free_members(void) * nodes. The XML file is split into segments, made either of text or of * tags. ***************************************************************************/ -void GXml::parse(GUrl& url) +void GXml::parse(const GUrl& url) { // Initialise parser int c;