Commit 75e0d5ec77c8dba1c2af68eabb5af881dbd8e6d7

Authored by Jürgen Knödlseder
1 parent 41f76ab4

Use GMatrix instead of GMatrixSpare (#3203)

include/GResponse.hpp
@@ -113,7 +113,8 @@ public: @@ -113,7 +113,8 @@ public:
113 const GObservation& obs) const; 113 const GObservation& obs) const;
114 virtual GVector irf_spatial(const GModelSky& model, 114 virtual GVector irf_spatial(const GModelSky& model,
115 const GObservation& obs, 115 const GObservation& obs,
116 - GMatrixSparse* gradients = NULL) const; 116 + //GMatrixSparse* gradients = NULL) const;
  117 + GMatrix* gradients = NULL) const;
117 virtual void remove_response_cache(const std::string& name); 118 virtual void remove_response_cache(const std::string& name);
118 119
119 protected: 120 protected:
@@ -149,19 +150,24 @@ protected: @@ -149,19 +150,24 @@ protected:
149 const GObservation& obs) const; 150 const GObservation& obs) const;
150 virtual GVector irf_ptsrc(const GModelSky& model, 151 virtual GVector irf_ptsrc(const GModelSky& model,
151 const GObservation& obs, 152 const GObservation& obs,
152 - GMatrixSparse* gradients = NULL) const; 153 + //GMatrixSparse* gradients = NULL) const;
  154 + GMatrix* gradients = NULL) const;
153 virtual GVector irf_radial(const GModelSky& model, 155 virtual GVector irf_radial(const GModelSky& model,
154 const GObservation& obs, 156 const GObservation& obs,
155 - GMatrixSparse* gradients = NULL) const; 157 + //GMatrixSparse* gradients = NULL) const;
  158 + GMatrix* gradients = NULL) const;
156 virtual GVector irf_elliptical(const GModelSky& model, 159 virtual GVector irf_elliptical(const GModelSky& model,
157 const GObservation& obs, 160 const GObservation& obs,
158 - GMatrixSparse* gradients = NULL) const; 161 + //GMatrixSparse* gradients = NULL) const;
  162 + GMatrix* gradients = NULL) const;
159 virtual GVector irf_diffuse(const GModelSky& model, 163 virtual GVector irf_diffuse(const GModelSky& model,
160 const GObservation& obs, 164 const GObservation& obs,
161 - GMatrixSparse* gradients = NULL) const; 165 + //GMatrixSparse* gradients = NULL) const;
  166 + GMatrix* gradients = NULL) const;
162 virtual GVector irf_composite(const GModelSky& model, 167 virtual GVector irf_composite(const GModelSky& model,
163 const GObservation& obs, 168 const GObservation& obs,
164 - GMatrixSparse* gradients = NULL) const; 169 + //GMatrixSparse* gradients = NULL) const;
  170 + GMatrix* gradients = NULL) const;
165 171
166 // Protected classes 172 // Protected classes
167 class edisp_kerns : public GFunctions { 173 class edisp_kerns : public GFunctions {
inst/cta/include/GCTAResponseCube.hpp
@@ -155,7 +155,8 @@ private: @@ -155,7 +155,8 @@ private:
155 // New methods 155 // New methods
156 GVector irf_radial(const GModelSky& model, 156 GVector irf_radial(const GModelSky& model,
157 const GObservation& obs, 157 const GObservation& obs,
158 - GMatrixSparse* gradients = NULL) const; 158 + //GMatrixSparse* gradients = NULL) const;
  159 + GMatrix* gradients = NULL) const;
159 GVector psf_radial(const GModelSpatialRadial* model, 160 GVector psf_radial(const GModelSpatialRadial* model,
160 const double& zeta, 161 const double& zeta,
161 const GSkyDir& obsDir, 162 const GSkyDir& obsDir,
inst/cta/src/GCTAResponseCube.cpp
@@ -1750,7 +1750,8 @@ double GCTAResponseCube::irf_diffuse(const GEvent& event, @@ -1750,7 +1750,8 @@ double GCTAResponseCube::irf_diffuse(const GEvent& event,
1750 ***************************************************************************/ 1750 ***************************************************************************/
1751 GVector GCTAResponseCube::irf_radial(const GModelSky& model, 1751 GVector GCTAResponseCube::irf_radial(const GModelSky& model,
1752 const GObservation& obs, 1752 const GObservation& obs,
1753 - GMatrixSparse* gradients) const 1753 +// GMatrixSparse* gradients) const
  1754 + GMatrix* gradients) const
1754 { 1755 {
1755 // Get number of events 1756 // Get number of events
1756 int nevents = obs.events()->size(); 1757 int nevents = obs.events()->size();
@@ -1868,7 +1869,7 @@ GVector GCTAResponseCube::irf_radial(const GModelSky& model, @@ -1868,7 +1869,7 @@ GVector GCTAResponseCube::irf_radial(const GModelSky& model,
1868 // matrix 1869 // matrix
1869 if (grad) { 1870 if (grad) {
1870 for (int ipar = 0; ipar < npars; ++ipar) { 1871 for (int ipar = 0; ipar < npars; ++ipar) {
1871 - gradients->add_to_column(ipar, gradient[ipar]); 1872 + gradients->column(ipar, gradient[ipar]);
1872 } 1873 }
1873 } 1874 }
1874 1875
src/obs/GResponse.cpp
@@ -668,7 +668,8 @@ double GResponse::irf_spatial(const GEvent&amp; event, @@ -668,7 +668,8 @@ double GResponse::irf_spatial(const GEvent&amp; event,
668 ***************************************************************************/ 668 ***************************************************************************/
669 GVector GResponse::irf_spatial(const GModelSky& model, 669 GVector GResponse::irf_spatial(const GModelSky& model,
670 const GObservation& obs, 670 const GObservation& obs,
671 - GMatrixSparse* gradients) const 671 + //GMatrixSparse* gradients) const
  672 + GMatrix* gradients) const
672 { 673 {
673 // Get number of model parameters and number of events 674 // Get number of model parameters and number of events
674 int npars = model.size(); 675 int npars = model.size();
@@ -1253,7 +1254,8 @@ double GResponse::irf_composite(const GEvent&amp; event, @@ -1253,7 +1254,8 @@ double GResponse::irf_composite(const GEvent&amp; event,
1253 ***************************************************************************/ 1254 ***************************************************************************/
1254 GVector GResponse::irf_ptsrc(const GModelSky& model, 1255 GVector GResponse::irf_ptsrc(const GModelSky& model,
1255 const GObservation& obs, 1256 const GObservation& obs,
1256 - GMatrixSparse* gradients) const 1257 + //GMatrixSparse* gradients) const
  1258 + GMatrix* gradients) const
1257 { 1259 {
1258 // Get number of events 1260 // Get number of events
1259 int nevents = obs.events()->size(); 1261 int nevents = obs.events()->size();
@@ -1296,7 +1298,8 @@ GVector GResponse::irf_ptsrc(const GModelSky&amp; model, @@ -1296,7 +1298,8 @@ GVector GResponse::irf_ptsrc(const GModelSky&amp; model,
1296 ***************************************************************************/ 1298 ***************************************************************************/
1297 GVector GResponse::irf_radial(const GModelSky& model, 1299 GVector GResponse::irf_radial(const GModelSky& model,
1298 const GObservation& obs, 1300 const GObservation& obs,
1299 - GMatrixSparse* gradients) const 1301 +// GMatrixSparse* gradients) const
  1302 + GMatrix* gradients) const
1300 { 1303 {
1301 // Get number of events 1304 // Get number of events
1302 int nevents = obs.events()->size(); 1305 int nevents = obs.events()->size();
@@ -1339,7 +1342,8 @@ GVector GResponse::irf_radial(const GModelSky&amp; model, @@ -1339,7 +1342,8 @@ GVector GResponse::irf_radial(const GModelSky&amp; model,
1339 ***************************************************************************/ 1342 ***************************************************************************/
1340 GVector GResponse::irf_elliptical(const GModelSky& model, 1343 GVector GResponse::irf_elliptical(const GModelSky& model,
1341 const GObservation& obs, 1344 const GObservation& obs,
1342 - GMatrixSparse* gradients) const 1345 + //GMatrixSparse* gradients) const
  1346 + GMatrix* gradients) const
1343 { 1347 {
1344 // Get number of events 1348 // Get number of events
1345 int nevents = obs.events()->size(); 1349 int nevents = obs.events()->size();
@@ -1382,7 +1386,8 @@ GVector GResponse::irf_elliptical(const GModelSky&amp; model, @@ -1382,7 +1386,8 @@ GVector GResponse::irf_elliptical(const GModelSky&amp; model,
1382 ***************************************************************************/ 1386 ***************************************************************************/
1383 GVector GResponse::irf_diffuse(const GModelSky& model, 1387 GVector GResponse::irf_diffuse(const GModelSky& model,
1384 const GObservation& obs, 1388 const GObservation& obs,
1385 - GMatrixSparse* gradients) const 1389 + //GMatrixSparse* gradients) const
  1390 + GMatrix* gradients) const
1386 { 1391 {
1387 // Get number of events 1392 // Get number of events
1388 int nevents = obs.events()->size(); 1393 int nevents = obs.events()->size();
@@ -1425,7 +1430,8 @@ GVector GResponse::irf_diffuse(const GModelSky&amp; model, @@ -1425,7 +1430,8 @@ GVector GResponse::irf_diffuse(const GModelSky&amp; model,
1425 ***************************************************************************/ 1430 ***************************************************************************/
1426 GVector GResponse::irf_composite(const GModelSky& model, 1431 GVector GResponse::irf_composite(const GModelSky& model,
1427 const GObservation& obs, 1432 const GObservation& obs,
1428 - GMatrixSparse* gradients) const 1433 + //GMatrixSparse* gradients) const
  1434 + GMatrix* gradients) const
1429 { 1435 {
1430 // Get number of events 1436 // Get number of events
1431 int nevents = obs.events()->size(); 1437 int nevents = obs.events()->size();
@@ -1631,7 +1637,8 @@ GVector GResponse::eval_probs(const GModelSky&amp; model, @@ -1631,7 +1637,8 @@ GVector GResponse::eval_probs(const GModelSky&amp; model,
1631 if (model.spatial() != NULL) { 1637 if (model.spatial() != NULL) {
1632 1638
1633 // Initialise sparse matrix to hold spatial gradients 1639 // Initialise sparse matrix to hold spatial gradients
1634 - GMatrixSparse spat_gradients(nevents, model.spatial()->size()); 1640 + //GMatrixSparse spat_gradients(nevents, model.spatial()->size());
  1641 + GMatrix spat_gradients(nevents, model.spatial()->size());
1635 1642
1636 // Compute IRF value 1643 // Compute IRF value
1637 //probs = irf_spatial(model, obs); 1644 //probs = irf_spatial(model, obs);