From 8726a24d920d711a5df9075f3b9bba20c4f15413 Mon Sep 17 00:00:00 2001
From: Dmitry Yurov <d.yurov@fz-juelich.de>
Date: Tue, 30 Jan 2018 14:54:07 +0100
Subject: [PATCH] Amendments according to reviewer recommendations

Redmine: #1860
---
 Core/Simulation/Simulation.cpp         |   1 +
 Core/Simulation/Simulation.h           |   5 +-
 Core/Simulation/SpecularSimulation.cpp |   6 -
 Core/Simulation/SpecularSimulation.h   |   7 +-
 auto/Wrap/doxygen_core.i               |   3 -
 auto/Wrap/libBornAgainCore.py          |  13 -
 auto/Wrap/libBornAgainCore_wrap.cpp    | 368 -------------------------
 7 files changed, 7 insertions(+), 396 deletions(-)

diff --git a/Core/Simulation/Simulation.cpp b/Core/Simulation/Simulation.cpp
index 6e9750eedf2..b2dea4052c4 100644
--- a/Core/Simulation/Simulation.cpp
+++ b/Core/Simulation/Simulation.cpp
@@ -207,6 +207,7 @@ void Simulation::addParameterDistribution(const std::string& param_name,
 
 void Simulation::addParameterDistribution(const ParameterDistribution& par_distr)
 {
+    validateParametrization(par_distr);
     m_distribution_handler.addParameterDistribution(par_distr);
 }
 
diff --git a/Core/Simulation/Simulation.h b/Core/Simulation/Simulation.h
index d16777ff18d..7b8b66821b4 100644
--- a/Core/Simulation/Simulation.h
+++ b/Core/Simulation/Simulation.h
@@ -82,7 +82,7 @@ public:
     void addParameterDistribution(
         const std::string& param_name, const IDistribution1D& distribution, size_t nbr_samples,
         double sigma_factor=0.0, const RealLimits& limits = RealLimits());
-    virtual void addParameterDistribution(const ParameterDistribution& par_distr);
+    void addParameterDistribution(const ParameterDistribution& par_distr);
     const DistributionHandler& getDistributionHandler() const { return m_distribution_handler; }
 
     void setOptions(const SimulationOptions& options) { m_options = options; }
@@ -127,6 +127,9 @@ private:
     virtual std::unique_ptr<IComputation>
     generateSingleThreadedComputation(size_t start, size_t n_elements) = 0;
 
+    //! Checks the distribution validity for simulation.
+    virtual void validateParametrization(const ParameterDistribution&) const {}
+
     virtual void addBackGroundIntensity(size_t start_ind, size_t n_elements) = 0;
 
     //! Normalize the detector counts to beam intensity, to solid angle, and to exposure angle.
diff --git a/Core/Simulation/SpecularSimulation.cpp b/Core/Simulation/SpecularSimulation.cpp
index 3d82b6700e5..ce2b5b11456 100644
--- a/Core/Simulation/SpecularSimulation.cpp
+++ b/Core/Simulation/SpecularSimulation.cpp
@@ -184,12 +184,6 @@ OutputData<double>* SpecularSimulation::getDetectorIntensity(AxesUnits units_typ
     return detector->createDetectorIntensity(m_sim_elements, m_instrument.getBeam(), units_type);
 }
 
-void SpecularSimulation::addParameterDistribution(const ParameterDistribution& par_distr)
-{
-    validateParametrization(par_distr);
-    Simulation::addParameterDistribution(par_distr);
-}
-
 Histogram1D* SpecularSimulation::getIntensityData(AxesUnits units_type) const
 {
     std::unique_ptr<OutputData<double>> result(getDetectorIntensity(units_type));
diff --git a/Core/Simulation/SpecularSimulation.h b/Core/Simulation/SpecularSimulation.h
index aa617c799d7..16d30cabf05 100644
--- a/Core/Simulation/SpecularSimulation.h
+++ b/Core/Simulation/SpecularSimulation.h
@@ -62,9 +62,6 @@ public:
     OutputData<double>* getDetectorIntensity(
             AxesUnits units_type= AxesUnits::DEFAULT) const override;
 
-    using Simulation::addParameterDistribution;
-    void addParameterDistribution(const ParameterDistribution& par_distr) override;
-
     //! Returns detector signal (\f$ \propto |R|^2\f$) in the form of 1D Histogram
     Histogram1D* getIntensityData(AxesUnits units_type = AxesUnits::DEFAULT) const;
 
@@ -92,8 +89,8 @@ private:
 
     void checkCache() const;
 
-    //! Checks if distribution is valid for inclination angle.
-    void validateParametrization(const ParameterDistribution& par_distr) const;
+    //! Checks the distribution validity for simulation.
+    void validateParametrization(const ParameterDistribution& par_distr) const override;
 
     //! Initializes simulation
     void initialize();
diff --git a/auto/Wrap/doxygen_core.i b/auto/Wrap/doxygen_core.i
index ffe1cd73788..953b8654ba1 100644
--- a/auto/Wrap/doxygen_core.i
+++ b/auto/Wrap/doxygen_core.i
@@ -14234,9 +14234,6 @@ Returns a pointer to incident angle axis.
 Returns detector count values in the form of  OutputData<double>. Detector counts are proportional to  $Reflectivity = |R|^2$ from the upper layer. 
 ";
 
-%feature("docstring")  SpecularSimulation::addParameterDistribution "void SpecularSimulation::addParameterDistribution(const ParameterDistribution &par_distr) override
-";
-
 %feature("docstring")  SpecularSimulation::getIntensityData "Histogram1D * SpecularSimulation::getIntensityData(AxesUnits units_type=AxesUnits::DEFAULT) const
 
 Returns detector signal (  $ \\\\propto |R|^2$) in the form of 1D Histogram. 
diff --git a/auto/Wrap/libBornAgainCore.py b/auto/Wrap/libBornAgainCore.py
index 2b42a61dad4..5a099a5b011 100644
--- a/auto/Wrap/libBornAgainCore.py
+++ b/auto/Wrap/libBornAgainCore.py
@@ -26511,19 +26511,6 @@ class SpecularSimulation(Simulation):
         return _libBornAgainCore.SpecularSimulation_getDetectorIntensity(self, *args)
 
 
-    def addParameterDistribution(self, *args):
-        """
-        addParameterDistribution(SpecularSimulation self, std::string const & param_name, IDistribution1D distribution, size_t nbr_samples, double sigma_factor=0.0, RealLimits limits)
-        addParameterDistribution(SpecularSimulation self, std::string const & param_name, IDistribution1D distribution, size_t nbr_samples, double sigma_factor=0.0)
-        addParameterDistribution(SpecularSimulation self, std::string const & param_name, IDistribution1D distribution, size_t nbr_samples)
-        addParameterDistribution(SpecularSimulation self, ParameterDistribution par_distr)
-
-        void SpecularSimulation::addParameterDistribution(const ParameterDistribution &par_distr) override
-
-        """
-        return _libBornAgainCore.SpecularSimulation_addParameterDistribution(self, *args)
-
-
     def getIntensityData(self, *args):
         """
         getIntensityData(SpecularSimulation self, AxesUnits units_type) -> Histogram1D
diff --git a/auto/Wrap/libBornAgainCore_wrap.cpp b/auto/Wrap/libBornAgainCore_wrap.cpp
index 46e87ad7dac..956fcf26fb5 100644
--- a/auto/Wrap/libBornAgainCore_wrap.cpp
+++ b/auto/Wrap/libBornAgainCore_wrap.cpp
@@ -111257,365 +111257,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_SpecularSimulation_addParameterDistribution__SWIG_0_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  SpecularSimulation *arg1 = (SpecularSimulation *) 0 ;
-  std::string *arg2 = 0 ;
-  IDistribution1D *arg3 = 0 ;
-  size_t arg4 ;
-  double arg5 ;
-  RealLimits *arg6 = 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  int res2 = SWIG_OLDOBJ ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
-  size_t val4 ;
-  int ecode4 = 0 ;
-  double val5 ;
-  int ecode5 = 0 ;
-  void *argp6 = 0 ;
-  int res6 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
-  PyObject * obj4 = 0 ;
-  PyObject * obj5 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:SpecularSimulation_addParameterDistribution",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SpecularSimulation, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "1"" of type '" "SpecularSimulation *""'"); 
-  }
-  arg1 = reinterpret_cast< SpecularSimulation * >(argp1);
-  {
-    std::string *ptr = (std::string *)0;
-    res2 = SWIG_AsPtr_std_string(obj1, &ptr);
-    if (!SWIG_IsOK(res2)) {
-      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "2"" of type '" "std::string const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "2"" of type '" "std::string const &""'"); 
-    }
-    arg2 = ptr;
-  }
-  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_IDistribution1D,  0  | 0);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "3"" of type '" "IDistribution1D const &""'"); 
-  }
-  if (!argp3) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "3"" of type '" "IDistribution1D const &""'"); 
-  }
-  arg3 = reinterpret_cast< IDistribution1D * >(argp3);
-  ecode4 = SWIG_AsVal_size_t(obj3, &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "4"" of type '" "size_t""'");
-  } 
-  arg4 = static_cast< size_t >(val4);
-  ecode5 = SWIG_AsVal_double(obj4, &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "5"" of type '" "double""'");
-  } 
-  arg5 = static_cast< double >(val5);
-  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_RealLimits,  0  | 0);
-  if (!SWIG_IsOK(res6)) {
-    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "6"" of type '" "RealLimits const &""'"); 
-  }
-  if (!argp6) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "6"" of type '" "RealLimits const &""'"); 
-  }
-  arg6 = reinterpret_cast< RealLimits * >(argp6);
-  (arg1)->addParameterDistribution((std::string const &)*arg2,(IDistribution1D const &)*arg3,arg4,arg5,(RealLimits const &)*arg6);
-  resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res2)) delete arg2;
-  return resultobj;
-fail:
-  if (SWIG_IsNewObj(res2)) delete arg2;
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_SpecularSimulation_addParameterDistribution__SWIG_0_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  SpecularSimulation *arg1 = (SpecularSimulation *) 0 ;
-  std::string *arg2 = 0 ;
-  IDistribution1D *arg3 = 0 ;
-  size_t arg4 ;
-  double arg5 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  int res2 = SWIG_OLDOBJ ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
-  size_t val4 ;
-  int ecode4 = 0 ;
-  double val5 ;
-  int ecode5 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
-  PyObject * obj4 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"OOOOO:SpecularSimulation_addParameterDistribution",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SpecularSimulation, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "1"" of type '" "SpecularSimulation *""'"); 
-  }
-  arg1 = reinterpret_cast< SpecularSimulation * >(argp1);
-  {
-    std::string *ptr = (std::string *)0;
-    res2 = SWIG_AsPtr_std_string(obj1, &ptr);
-    if (!SWIG_IsOK(res2)) {
-      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "2"" of type '" "std::string const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "2"" of type '" "std::string const &""'"); 
-    }
-    arg2 = ptr;
-  }
-  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_IDistribution1D,  0  | 0);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "3"" of type '" "IDistribution1D const &""'"); 
-  }
-  if (!argp3) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "3"" of type '" "IDistribution1D const &""'"); 
-  }
-  arg3 = reinterpret_cast< IDistribution1D * >(argp3);
-  ecode4 = SWIG_AsVal_size_t(obj3, &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "4"" of type '" "size_t""'");
-  } 
-  arg4 = static_cast< size_t >(val4);
-  ecode5 = SWIG_AsVal_double(obj4, &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "5"" of type '" "double""'");
-  } 
-  arg5 = static_cast< double >(val5);
-  (arg1)->addParameterDistribution((std::string const &)*arg2,(IDistribution1D const &)*arg3,arg4,arg5);
-  resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res2)) delete arg2;
-  return resultobj;
-fail:
-  if (SWIG_IsNewObj(res2)) delete arg2;
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_SpecularSimulation_addParameterDistribution__SWIG_0_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  SpecularSimulation *arg1 = (SpecularSimulation *) 0 ;
-  std::string *arg2 = 0 ;
-  IDistribution1D *arg3 = 0 ;
-  size_t arg4 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  int res2 = SWIG_OLDOBJ ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
-  size_t val4 ;
-  int ecode4 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:SpecularSimulation_addParameterDistribution",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SpecularSimulation, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "1"" of type '" "SpecularSimulation *""'"); 
-  }
-  arg1 = reinterpret_cast< SpecularSimulation * >(argp1);
-  {
-    std::string *ptr = (std::string *)0;
-    res2 = SWIG_AsPtr_std_string(obj1, &ptr);
-    if (!SWIG_IsOK(res2)) {
-      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "2"" of type '" "std::string const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "2"" of type '" "std::string const &""'"); 
-    }
-    arg2 = ptr;
-  }
-  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_IDistribution1D,  0  | 0);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "3"" of type '" "IDistribution1D const &""'"); 
-  }
-  if (!argp3) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "3"" of type '" "IDistribution1D const &""'"); 
-  }
-  arg3 = reinterpret_cast< IDistribution1D * >(argp3);
-  ecode4 = SWIG_AsVal_size_t(obj3, &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "4"" of type '" "size_t""'");
-  } 
-  arg4 = static_cast< size_t >(val4);
-  (arg1)->addParameterDistribution((std::string const &)*arg2,(IDistribution1D const &)*arg3,arg4);
-  resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res2)) delete arg2;
-  return resultobj;
-fail:
-  if (SWIG_IsNewObj(res2)) delete arg2;
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_SpecularSimulation_addParameterDistribution__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  SpecularSimulation *arg1 = (SpecularSimulation *) 0 ;
-  ParameterDistribution *arg2 = 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"OO:SpecularSimulation_addParameterDistribution",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SpecularSimulation, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "1"" of type '" "SpecularSimulation *""'"); 
-  }
-  arg1 = reinterpret_cast< SpecularSimulation * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_ParameterDistribution,  0  | 0);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "2"" of type '" "ParameterDistribution const &""'"); 
-  }
-  if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SpecularSimulation_addParameterDistribution" "', argument " "2"" of type '" "ParameterDistribution const &""'"); 
-  }
-  arg2 = reinterpret_cast< ParameterDistribution * >(argp2);
-  (arg1)->addParameterDistribution((ParameterDistribution const &)*arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_SpecularSimulation_addParameterDistribution(PyObject *self, PyObject *args) {
-  Py_ssize_t argc;
-  PyObject *argv[7] = {
-    0
-  };
-  Py_ssize_t ii;
-  
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? PyObject_Length(args) : 0;
-  for (ii = 0; (ii < 6) && (ii < argc); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 2) {
-    int _v;
-    void *vptr = 0;
-    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SpecularSimulation, 0);
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_ParameterDistribution, 0);
-      _v = SWIG_CheckState(res);
-      if (_v) {
-        return _wrap_SpecularSimulation_addParameterDistribution__SWIG_1(self, args);
-      }
-    }
-  }
-  if (argc == 4) {
-    int _v;
-    void *vptr = 0;
-    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SpecularSimulation, 0);
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      int res = SWIG_AsPtr_std_string(argv[1], (std::string**)(0));
-      _v = SWIG_CheckState(res);
-      if (_v) {
-        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_IDistribution1D, 0);
-        _v = SWIG_CheckState(res);
-        if (_v) {
-          {
-            int res = SWIG_AsVal_size_t(argv[3], NULL);
-            _v = SWIG_CheckState(res);
-          }
-          if (_v) {
-            return _wrap_SpecularSimulation_addParameterDistribution__SWIG_0_2(self, args);
-          }
-        }
-      }
-    }
-  }
-  if (argc == 5) {
-    int _v;
-    void *vptr = 0;
-    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SpecularSimulation, 0);
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      int res = SWIG_AsPtr_std_string(argv[1], (std::string**)(0));
-      _v = SWIG_CheckState(res);
-      if (_v) {
-        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_IDistribution1D, 0);
-        _v = SWIG_CheckState(res);
-        if (_v) {
-          {
-            int res = SWIG_AsVal_size_t(argv[3], NULL);
-            _v = SWIG_CheckState(res);
-          }
-          if (_v) {
-            {
-              int res = SWIG_AsVal_double(argv[4], NULL);
-              _v = SWIG_CheckState(res);
-            }
-            if (_v) {
-              return _wrap_SpecularSimulation_addParameterDistribution__SWIG_0_1(self, args);
-            }
-          }
-        }
-      }
-    }
-  }
-  if (argc == 6) {
-    int _v;
-    void *vptr = 0;
-    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SpecularSimulation, 0);
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      int res = SWIG_AsPtr_std_string(argv[1], (std::string**)(0));
-      _v = SWIG_CheckState(res);
-      if (_v) {
-        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_IDistribution1D, 0);
-        _v = SWIG_CheckState(res);
-        if (_v) {
-          {
-            int res = SWIG_AsVal_size_t(argv[3], NULL);
-            _v = SWIG_CheckState(res);
-          }
-          if (_v) {
-            {
-              int res = SWIG_AsVal_double(argv[4], NULL);
-              _v = SWIG_CheckState(res);
-            }
-            if (_v) {
-              int res = SWIG_ConvertPtr(argv[5], 0, SWIGTYPE_p_RealLimits, 0);
-              _v = SWIG_CheckState(res);
-              if (_v) {
-                return _wrap_SpecularSimulation_addParameterDistribution__SWIG_0_0(self, args);
-              }
-            }
-          }
-        }
-      }
-    }
-  }
-  
-fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'SpecularSimulation_addParameterDistribution'.\n"
-    "  Possible C/C++ prototypes are:\n"
-    "    addParameterDistribution(std::string const &,IDistribution1D const &,size_t,double,RealLimits const &)\n"
-    "    addParameterDistribution(std::string const &,IDistribution1D const &,size_t,double)\n"
-    "    addParameterDistribution(std::string const &,IDistribution1D const &,size_t)\n"
-    "    SpecularSimulation::addParameterDistribution(ParameterDistribution const &)\n");
-  return 0;
-}
-
-
 SWIGINTERN PyObject *_wrap_SpecularSimulation_getIntensityData__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SpecularSimulation *arg1 = (SpecularSimulation *) 0 ;
@@ -127521,15 +127162,6 @@ static PyMethodDef SwigMethods[] = {
 		"Returns detector count values in the form of  OutputData<double>. Detector counts are proportional to  $Reflectivity = |R|^2$ from the upper layer. \n"
 		"\n"
 		""},
-	 { (char *)"SpecularSimulation_addParameterDistribution", _wrap_SpecularSimulation_addParameterDistribution, METH_VARARGS, (char *)"\n"
-		"addParameterDistribution(std::string const & param_name, IDistribution1D distribution, size_t nbr_samples, double sigma_factor=0.0, RealLimits limits)\n"
-		"addParameterDistribution(std::string const & param_name, IDistribution1D distribution, size_t nbr_samples, double sigma_factor=0.0)\n"
-		"addParameterDistribution(std::string const & param_name, IDistribution1D distribution, size_t nbr_samples)\n"
-		"SpecularSimulation_addParameterDistribution(SpecularSimulation self, ParameterDistribution par_distr)\n"
-		"\n"
-		"void Simulation::addParameterDistribution(const ParameterDistribution &par_distr)\n"
-		"\n"
-		""},
 	 { (char *)"SpecularSimulation_getIntensityData", _wrap_SpecularSimulation_getIntensityData, METH_VARARGS, (char *)"\n"
 		"getIntensityData(AxesUnits units_type) -> Histogram1D\n"
 		"SpecularSimulation_getIntensityData(SpecularSimulation self) -> Histogram1D\n"
-- 
GitLab