diff --git a/Core/DecoratedFormFactor/FormFactorDecoratorDebyeWaller.cpp b/Core/DecoratedFormFactor/FormFactorDecoratorDebyeWaller.cpp
index 680fbf044e34ce1690e705abf4aab3f896543cde..40527761dc1cdc7ff2d66a9d315a2de4cc7d94e0 100644
--- a/Core/DecoratedFormFactor/FormFactorDecoratorDebyeWaller.cpp
+++ b/Core/DecoratedFormFactor/FormFactorDecoratorDebyeWaller.cpp
@@ -29,6 +29,16 @@ FormFactorDecoratorDebyeWaller::FormFactorDecoratorDebyeWaller(
     registerParameter(BornAgain::RadiusDWFactor, &m_r_dw_factor).setPositive();
 }
 
+FormFactorDecoratorDebyeWaller::FormFactorDecoratorDebyeWaller(
+	const IFormFactor & form_factor, double dw_factor)
+	: IFormFactorDecorator(form_factor),
+	m_h_dw_factor(dw_factor), m_r_dw_factor(dw_factor)
+{
+	setName(BornAgain::FormFactorDecoratorDebyeWallerType);
+	registerParameter(BornAgain::HeightDWFactor, &m_h_dw_factor).setPositive();
+	registerParameter(BornAgain::RadiusDWFactor, &m_r_dw_factor).setPositive();
+}
+
 complex_t FormFactorDecoratorDebyeWaller::evaluate(const WavevectorInfo& wavevectors) const
 {
     cvector_t q = wavevectors.getQ();
diff --git a/Core/DecoratedFormFactor/FormFactorDecoratorDebyeWaller.h b/Core/DecoratedFormFactor/FormFactorDecoratorDebyeWaller.h
index 09c52e5a5c6e7b7e9d9619c67bc7b8034f7cbd69..9d867c7363ddc08d701f74758c99156a994d51c4 100644
--- a/Core/DecoratedFormFactor/FormFactorDecoratorDebyeWaller.h
+++ b/Core/DecoratedFormFactor/FormFactorDecoratorDebyeWaller.h
@@ -29,8 +29,7 @@ public:
                                    double dw_r_factor);
 
     //! Isotropic Debye-Waller factor.
-    FormFactorDecoratorDebyeWaller(const IFormFactor& form_factor, double dw_factor)
-        : FormFactorDecoratorDebyeWaller(form_factor, dw_factor, dw_factor) {}
+	FormFactorDecoratorDebyeWaller(const IFormFactor& form_factor, double dw_factor);
 
     FormFactorDecoratorDebyeWaller* clone() const final {
         return new FormFactorDecoratorDebyeWaller(*mp_form_factor, m_h_dw_factor, m_r_dw_factor); }
diff --git a/Core/Fitting/FitKernel.cpp b/Core/Fitting/FitKernel.cpp
index 554a705cc1c8620562d643c54f1d0f6f2eb14687..10d3a4ce08b79eecc204702423fd11e260ea2ef7 100644
--- a/Core/Fitting/FitKernel.cpp
+++ b/Core/Fitting/FitKernel.cpp
@@ -14,7 +14,7 @@
 // ************************************************************************** //
 
 #include "FitKernel.h"
-#include "Limits.h"
+#include "RealLimits.h"
 #include "FitParameter.h"
 #include "FitParameterLinked.h"
 #include "Logger.h"
@@ -58,11 +58,11 @@ void FitKernel::addSimulationAndRealData(const GISASSimulation& simulation,
 //! Adds fit parameter, step is calculated from initial parameter value
 void FitKernel::addFitParameter(const std::string& name, double value)
 {
-    addFitParameter(name, value, Limits::limitless(), Attributes::free());
+    addFitParameter(name, value, RealLimits::limitless(), Attributes::free());
 }
 
 //! Adds fit parameter, step is calculated from initial parameter value
-void FitKernel::addFitParameter(const std::string& name, double value, const Limits& lim,
+void FitKernel::addFitParameter(const std::string& name, double value, const RealLimits& lim,
                                 const Attributes& attr, double step, double error)
 {
     if(step <=0.0)
diff --git a/Core/Fitting/FitKernel.h b/Core/Fitting/FitKernel.h
index faa638ad5c70dfff56331136e4e656fea0435f42..27602079f6469a93ff0ded81d6fdbdf129657024 100644
--- a/Core/Fitting/FitKernel.h
+++ b/Core/Fitting/FitKernel.h
@@ -28,7 +28,7 @@
 #endif
 
 class Attributes;
-class Limits;
+class RealLimits;
 class GISASSimulation;
 class IMinimizer;
 
@@ -55,7 +55,7 @@ class BA_CORE_API_ FitKernel
     void addFitParameter(const std::string& name, double value);
     //! Adds fit parameter
     void addFitParameter(const std::string& name, double value,
-                         const Limits& lim, const Attributes& attr,
+                         const RealLimits& lim, const Attributes& attr,
                          double step=0.0, double error=0.0);
 
     //! Adds fit strategy
diff --git a/Core/Fitting/FitParameterLinked.cpp b/Core/Fitting/FitParameterLinked.cpp
index da8a48b6d7f8730a1228e2fd05ffd8e385d22bd0..bc7fa77f4eb8c00bcb68aa2d83b86f8b66f8e811 100644
--- a/Core/Fitting/FitParameterLinked.cpp
+++ b/Core/Fitting/FitParameterLinked.cpp
@@ -19,7 +19,7 @@
 #include "RealParameter.h"
 
 FitParameterLinked::FitParameterLinked(
-    const std::string& name, double value, double step, const Limits& lim,
+    const std::string& name, double value, double step, const RealLimits& lim,
     const Attributes& attr, double error)
     : FitParameter(name, value, step, lim, attr, error)
 {}
diff --git a/Core/Fitting/FitParameterLinked.h b/Core/Fitting/FitParameterLinked.h
index d8e6dc57e73fc2473674c033bc38cd4541d62be9..976d7c3d95c5c59853c1a95b6569bd0320d6b67a 100644
--- a/Core/Fitting/FitParameterLinked.h
+++ b/Core/Fitting/FitParameterLinked.h
@@ -30,7 +30,8 @@ class BA_CORE_API_ FitParameterLinked : public FitParameter
  public:
     FitParameterLinked() {}
     FitParameterLinked(
-        const std::string& name, double value, double step, const Limits& lim=Limits::limitless(),
+        const std::string& name, double value, double step,
+        const RealLimits& lim=RealLimits::limitless(),
         const Attributes& attr=Attributes::free(), double error=0.0);
     FitParameterLinked(const FitParameterLinked&) = delete;
     FitParameterLinked& operator=(const FitParameterLinked&) = delete;
diff --git a/Core/Fitting/FitSuite.cpp b/Core/Fitting/FitSuite.cpp
index a10aae52586cef9114e3262b04fe8c0da36f6ced..9518ba10b94cc288298a57e8d36e253b5d04a8cd 100644
--- a/Core/Fitting/FitSuite.cpp
+++ b/Core/Fitting/FitSuite.cpp
@@ -39,7 +39,7 @@ void FitSuite::addSimulationAndRealData(const GISASSimulation& simulation,
     m_kernel->addSimulationAndRealData(simulation, *data, weight);
 }
 
-void FitSuite::addFitParameter(const std::string& name, double value, const Limits& lim,
+void FitSuite::addFitParameter(const std::string& name, double value, const RealLimits& lim,
                                const Attributes& attr, double step)
 {
     m_kernel->addFitParameter(name, value, lim, attr, step);
diff --git a/Core/Fitting/FitSuite.h b/Core/Fitting/FitSuite.h
index eea70223dde45b7d32766c3eaed10b53f4650806..f182e22d0493392118e752c40568205c75504687 100644
--- a/Core/Fitting/FitSuite.h
+++ b/Core/Fitting/FitSuite.h
@@ -17,7 +17,7 @@
 #define FITSUITE_H
 
 #include "Attributes.h"
-#include "Limits.h"
+#include "RealLimits.h"
 #include "IObserver.h"
 #include "OutputData.h"
 
@@ -61,7 +61,7 @@ public:
     //! @param attlim Limits attribute
     //! @param step Initial parameter's step (some minimizers don't use it)
     void addFitParameter(const std::string& name, double value,
-                         const Limits& lim=Limits::limitless(),
+                         const RealLimits& lim=RealLimits::limitless(),
                          const Attributes& attr=Attributes::free(), double step = 0.0);
 
     //! Sets minimizer with given name and algorithm type
diff --git a/Core/HardParticle/FormFactorLongRipple1Gauss.cpp b/Core/HardParticle/FormFactorLongRipple1Gauss.cpp
index 9aeb4754219b6c43a23da2f1b3db159f9ee54d3e..c13b87eeeccf8be7d7f634cb14b75920e206e3d8 100644
--- a/Core/HardParticle/FormFactorLongRipple1Gauss.cpp
+++ b/Core/HardParticle/FormFactorLongRipple1Gauss.cpp
@@ -16,7 +16,7 @@
 #include "FormFactorLongRipple1Gauss.h"
 #include "BornAgainNamespace.h"
 #include "Exceptions.h"
-#include "Limits.h"
+#include "RealLimits.h"
 #include "MathFunctions.h"
 #include "Pi.h"
 #include "RealParameter.h"
diff --git a/Core/HardParticle/FormFactorRipple1.cpp b/Core/HardParticle/FormFactorRipple1.cpp
index 4f5fd120174542c035ab7d3155e7fca1aa448244..0070127836617d692becbf185486aedf163e0a2d 100644
--- a/Core/HardParticle/FormFactorRipple1.cpp
+++ b/Core/HardParticle/FormFactorRipple1.cpp
@@ -16,7 +16,7 @@
 #include "FormFactorRipple1.h"
 #include "BornAgainNamespace.h"
 #include "Exceptions.h"
-#include "Limits.h"
+#include "RealLimits.h"
 #include "MathFunctions.h"
 #include "Pi.h"
 #include "RealParameter.h"
diff --git a/Core/HardParticle/FormFactorTriangle.cpp b/Core/HardParticle/FormFactorTriangle.cpp
index 512ebe9ac67be94ab2084c5a7a649dc4bbdf7d83..690bc3ded08cb24314cc797c12da9b5ac560aa84 100644
--- a/Core/HardParticle/FormFactorTriangle.cpp
+++ b/Core/HardParticle/FormFactorTriangle.cpp
@@ -15,7 +15,7 @@
 
 #include "FormFactorTriangle.h"
 #include "BornAgainNamespace.h"
-#include "Limits.h"
+#include "RealLimits.h"
 #include "RealParameter.h"
 
 FormFactorTriangle::FormFactorTriangle(const double base_edge)
diff --git a/Core/HardParticle/FormFactorTruncatedSphere.cpp b/Core/HardParticle/FormFactorTruncatedSphere.cpp
index 4e831a63d668c5c3f24c3fd5b47815c7c053eb78..718054c7e6c8cc19ef3f496c9171a27a2b448732 100644
--- a/Core/HardParticle/FormFactorTruncatedSphere.cpp
+++ b/Core/HardParticle/FormFactorTruncatedSphere.cpp
@@ -16,7 +16,7 @@
 #include "FormFactorTruncatedSphere.h"
 #include "BornAgainNamespace.h"
 #include "Exceptions.h"
-#include "Limits.h"
+#include "RealLimits.h"
 #include "MathFunctions.h"
 #include "Pi.h"
 #include "RealParameter.h"
diff --git a/Core/Instrument/CumulativeValue.h b/Core/Instrument/CumulativeValue.h
index 650d371443620780e565fa1f627f66b5517cb962..9664d74ce40c9883a216b73fe7995cf1d436373e 100644
--- a/Core/Instrument/CumulativeValue.h
+++ b/Core/Instrument/CumulativeValue.h
@@ -36,9 +36,6 @@ public:
     double getAverage() const { return m_average; }
     double getRMS() const;
 
-    friend bool operator< (const CumulativeValue& lhs, const CumulativeValue& rhs);
-    friend bool operator> (const CumulativeValue& lhs, const CumulativeValue& rhs);
-
 private:
     int m_n_entries;
     double m_sum;
@@ -47,4 +44,8 @@ private:
     double m_sum_of_weights;
 };
 
+BA_CORE_API_ bool operator< (const CumulativeValue& lhs, const CumulativeValue& rhs);
+BA_CORE_API_ bool operator> (const CumulativeValue& lhs, const CumulativeValue& rhs);
+
+
 #endif // CUMULATIVEVALUE_H
diff --git a/Core/Parametrization/DistributionHandler.cpp b/Core/Parametrization/DistributionHandler.cpp
index 1aa35d19bb933d2c9f83b5cc71410a0186d16ab4..0834daa9a56faa79ef8e013c3b8ce9c67c4dee3b 100644
--- a/Core/Parametrization/DistributionHandler.cpp
+++ b/Core/Parametrization/DistributionHandler.cpp
@@ -30,7 +30,7 @@ DistributionHandler::~DistributionHandler()
 
 void DistributionHandler::addParameterDistribution(
     const std::string& param_name, const IDistribution1D& distribution,
-    size_t nbr_samples, double sigma_factor, const Limits& limits)
+    size_t nbr_samples, double sigma_factor, const RealLimits& limits)
 {
     if (nbr_samples > 0) {
         ParameterDistribution par_distr(
diff --git a/Core/Parametrization/DistributionHandler.h b/Core/Parametrization/DistributionHandler.h
index 34e4adf8804af798fd4e8c56688e10269c5a70c5..4704d8f95402fd892210af853ca2cb693c8461a5 100644
--- a/Core/Parametrization/DistributionHandler.h
+++ b/Core/Parametrization/DistributionHandler.h
@@ -33,7 +33,7 @@ public:
     void addParameterDistribution(const std::string &param_name,
             const IDistribution1D &distribution, size_t nbr_samples,
             double sigma_factor=0.0,
-            const Limits &limits=Limits());
+            const RealLimits &limits=RealLimits());
 
     void addParameterDistribution(const ParameterDistribution &par_distr);
 
diff --git a/Core/Parametrization/Distributions.cpp b/Core/Parametrization/Distributions.cpp
index 0cb3f612f9e46d06a3adfc1b3bc0eb6051208116..9a5d8e7bb40c46319849750443a4c11946bc691f 100644
--- a/Core/Parametrization/Distributions.cpp
+++ b/Core/Parametrization/Distributions.cpp
@@ -28,7 +28,7 @@ IDistribution1D* IDistribution1D::clone() const
 }
 
 std::vector<ParameterSample> IDistribution1D::generateSamples(
-    size_t nbr_samples, double sigma_factor, const Limits &limits) const
+    size_t nbr_samples, double sigma_factor, const RealLimits &limits) const
 {
     if (nbr_samples == 0)
         throw Exceptions::OutOfBoundsException("IDistribution1D::generateSamples: number "
@@ -86,7 +86,7 @@ void IDistribution1D::SignalBadInitialization(std::string distribution_name)
 }
 
 void IDistribution1D::adjustMinMaxForLimits(
-    double &xmin, double &xmax, const Limits &limits) const
+    double &xmin, double &xmax, const RealLimits &limits) const
 {
     if(limits.hasLowerLimit() && xmin < limits.getLowerLimit()) xmin = limits.getLowerLimit();
     if(limits.hasUpperLimit() && xmax > limits.getUpperLimit()) xmax = limits.getUpperLimit();
@@ -143,7 +143,7 @@ double DistributionGate::probabilityDensity(double x) const
 }
 
 std::vector<double> DistributionGate::generateValueList(size_t nbr_samples,
-        double sigma_factor, const Limits &limits) const
+        double sigma_factor, const RealLimits &limits) const
 {
     (void)sigma_factor;
     (void)limits;
@@ -192,7 +192,7 @@ double DistributionLorentz::probabilityDensity(double x) const
 }
 
 std::vector<double> DistributionLorentz::generateValueList(size_t nbr_samples,
-        double sigma_factor, const Limits &limits) const
+        double sigma_factor, const RealLimits &limits) const
 {
     if (sigma_factor <= 0.0) sigma_factor = 2.0;
     double xmin = m_mean - sigma_factor*m_hwhm;
@@ -249,7 +249,7 @@ double DistributionGaussian::probabilityDensity(double x) const
 }
 
 std::vector<double> DistributionGaussian::generateValueList(size_t nbr_samples,
-        double sigma_factor, const Limits &limits) const
+        double sigma_factor, const RealLimits &limits) const
 {
     if (sigma_factor <= 0.0) sigma_factor = 2.0;
     double xmin = m_mean - sigma_factor*m_std_dev;
@@ -311,7 +311,7 @@ double DistributionLogNormal::getMean() const
 }
 
 std::vector<double> DistributionLogNormal::generateValueList(size_t nbr_samples,
-        double sigma_factor, const Limits &limits) const
+        double sigma_factor, const RealLimits &limits) const
 {
     if(nbr_samples < 2) {
         std::vector<double> result;
@@ -374,7 +374,7 @@ double DistributionCosine::probabilityDensity(double x) const
 }
 
 std::vector<double> DistributionCosine::generateValueList(size_t nbr_samples,
-        double sigma_factor, const Limits &limits) const
+        double sigma_factor, const RealLimits &limits) const
 {
     if (sigma_factor <= 0.0 || sigma_factor > 2.0) sigma_factor = 2.0;
     double xmin = m_mean - sigma_factor*m_sigma*Pi::PID2;
diff --git a/Core/Parametrization/Distributions.h b/Core/Parametrization/Distributions.h
index ce41e54398e9425aaef86a20e87bedb99114a8fc..a91b96af1487e77494d14a103378b9c45293b0f0 100644
--- a/Core/Parametrization/Distributions.h
+++ b/Core/Parametrization/Distributions.h
@@ -17,7 +17,7 @@
 #define DISTRIBUTIONS_H
 
 #include "IParameterized.h"
-#include "Limits.h"
+#include "RealLimits.h"
 #include "ParameterSample.h"
 #include <vector>
 
@@ -41,7 +41,7 @@ public:
     //! generate list of sampled values with their weight
     //! xmin, xmax for sample generations are deduced from sigma_factor and possible limits
     std::vector<ParameterSample> generateSamples(
-        size_t nbr_samples, double sigma_factor=0.0, const Limits& limits = Limits()) const;
+        size_t nbr_samples, double sigma_factor=0.0, const RealLimits& limits = RealLimits()) const;
 
     //! generate list of sampled values with their weight within given xmin, xmax
     std::vector<ParameterSample> generateSamples(
@@ -53,7 +53,7 @@ public:
     //! @param limits
     //! @return vector of generated values
     virtual std::vector<double> generateValueList(size_t nbr_samples,
-            double sigma_factor, const Limits& limits = Limits()) const=0;
+            double sigma_factor, const RealLimits& limits = RealLimits()) const=0;
 
     //! generate list of sample values
     //! @param nbr_samples number of values to generate
@@ -72,7 +72,7 @@ protected:
     static void SignalBadInitialization(std::string distribution_name);
 
     //! modifies xmin and xmax if they are outside of limits
-    void adjustMinMaxForLimits(double& xmin, double& xmax, const Limits& limits) const;
+    void adjustMinMaxForLimits(double& xmin, double& xmax, const RealLimits& limits) const;
 
     //! generate list of sampled values with their weight from value list
     std::vector<ParameterSample> generateSamplesFromValues(
@@ -106,7 +106,7 @@ public:
 
     //! Returns list of sample values
     virtual std::vector<double> generateValueList(
-        size_t nbr_samples, double sigma_factor, const Limits& limits = Limits()) const;
+        size_t nbr_samples, double sigma_factor, const RealLimits& limits = RealLimits()) const;
 
     //! signals that the distribution is in the limit case of a delta distribution
     virtual bool isDelta() const;
@@ -146,7 +146,7 @@ public:
 
     //! generate list of sample values
     virtual std::vector<double> generateValueList(
-        size_t nbr_samples, double sigma_factor, const Limits& limits = Limits()) const;
+        size_t nbr_samples, double sigma_factor, const RealLimits& limits = RealLimits()) const;
 
     //! signals that the distribution is in the limit case of a delta distribution
     virtual bool isDelta() const;
@@ -188,7 +188,7 @@ public:
 
     //! generate list of sample values
     virtual std::vector<double> generateValueList(size_t nbr_samples,
-            double sigma_factor, const Limits& limits = Limits()) const;
+            double sigma_factor, const RealLimits& limits = RealLimits()) const;
 
     //! signals that the distribution is in the limit case of a delta distribution
     virtual bool isDelta() const;
@@ -233,7 +233,7 @@ public:
 
     //! generate list of sample values
     virtual std::vector<double> generateValueList(
-        size_t nbr_samples, double sigma_factor, const Limits& limits = Limits()) const;
+        size_t nbr_samples, double sigma_factor, const RealLimits& limits = RealLimits()) const;
 
     //! signals that the distribution is in the limit case of a delta distribution
     virtual bool isDelta() const;
@@ -274,7 +274,7 @@ public:
 
     //! generate list of sample values
     virtual std::vector<double> generateValueList(
-        size_t nbr_samples, double sigma_factor, const Limits& limits = Limits()) const;
+        size_t nbr_samples, double sigma_factor, const RealLimits& limits = RealLimits()) const;
 
     //! signals that the distribution is in the limit case of a delta distribution
     virtual bool isDelta() const;
diff --git a/Core/Parametrization/IParameterized.cpp b/Core/Parametrization/IParameterized.cpp
index 66db9651c704446ed8c8fc1a5a81704573252f1f..de0401f6da6aa0a0d16ace6bc99b9c24cff4ff0a 100644
--- a/Core/Parametrization/IParameterized.cpp
+++ b/Core/Parametrization/IParameterized.cpp
@@ -14,7 +14,7 @@
 // ************************************************************************** //
 
 #include "IParameterized.h"
-#include "Limits.h"
+#include "RealLimits.h"
 #include "ParameterPool.h"
 #include "RealParameter.h"
 #include <iostream>
diff --git a/Core/Parametrization/IParameterized.h b/Core/Parametrization/IParameterized.h
index 5ac0dc1f219fb5c13cf440302af5b22d66dab20a..d69589cf2a2c4dbe5b82b0e0f5576cbb3da499a5 100644
--- a/Core/Parametrization/IParameterized.h
+++ b/Core/Parametrization/IParameterized.h
@@ -18,7 +18,7 @@
 
 #include "INamed.h"
 
-class Limits;
+class RealLimits;
 class ParameterPool;
 class RealParameter;
 
diff --git a/Core/Parametrization/ParameterDistribution.cpp b/Core/Parametrization/ParameterDistribution.cpp
index aaee08a4c6a7fd7b1c0b259eb929df0db9e28e1f..04f5060d1e798a74e39877515d432a7885b9b151 100644
--- a/Core/Parametrization/ParameterDistribution.cpp
+++ b/Core/Parametrization/ParameterDistribution.cpp
@@ -19,7 +19,7 @@
 
 ParameterDistribution::ParameterDistribution(const std::string &par_name,
     const IDistribution1D &distribution, size_t nbr_samples,
-    double sigma_factor, const Limits &limits)
+    double sigma_factor, const RealLimits &limits)
     : IParameterized("ParameterDistribution")
     , m_name(par_name)
     , m_nbr_samples(nbr_samples)
diff --git a/Core/Parametrization/ParameterDistribution.h b/Core/Parametrization/ParameterDistribution.h
index e6150b0b6209294c340c0dc0879c48fea23cc39d..a821f997e0d3fc149e59216fe7a96236da7fdf54 100644
--- a/Core/Parametrization/ParameterDistribution.h
+++ b/Core/Parametrization/ParameterDistribution.h
@@ -17,7 +17,7 @@
 #define PARAMETERDISTRIBUTION_H
 
 #include "IParameterized.h"
-#include "Limits.h"
+#include "RealLimits.h"
 #include "ParameterSample.h"
 #include <memory>
 #include <vector>
@@ -30,7 +30,7 @@ public:
     ParameterDistribution(const std::string& par_name,
                           const IDistribution1D& distribution,
                           size_t nbr_samples, double sigma_factor=0.0,
-                          const Limits& limits = Limits());
+                          const RealLimits& limits = RealLimits());
 
     ParameterDistribution(const std::string& par_name,
                           const IDistribution1D& distribution,
@@ -61,7 +61,7 @@ public:
     //! get list of linked parameter names
     std::vector<std::string> getLinkedParameterNames() const { return m_linked_par_names; }
 
-    Limits getLimits() const { return m_limits; }
+    RealLimits getLimits() const { return m_limits; }
 
     double getMinValue() const { return m_xmin; }
     double getMaxValue() const { return m_xmax; }
@@ -72,7 +72,7 @@ private:
     size_t m_nbr_samples;
     double m_sigma_factor;
     std::vector<std::string> m_linked_par_names;
-    Limits m_limits;
+    RealLimits m_limits;
     double m_xmin;
     double m_xmax;
 };
diff --git a/Core/Parametrization/ParameterPool.cpp b/Core/Parametrization/ParameterPool.cpp
index 40648ef6e90e7b530efd74e2a35334550080c56e..75af9abc67314e38f626a0d24cbc51149f7ab5f4 100644
--- a/Core/Parametrization/ParameterPool.cpp
+++ b/Core/Parametrization/ParameterPool.cpp
@@ -14,7 +14,7 @@
 // ************************************************************************** //
 
 #include "ParameterPool.h"
-#include "Limits.h"
+#include "RealLimits.h"
 #include "RealParameter.h"
 #include <stdexcept>
 #include "StringUtils.h"
diff --git a/Core/Parametrization/ParameterPool.h b/Core/Parametrization/ParameterPool.h
index 670dca7d41320b2873c481a4fe1cc82fd6cdfe2c..71c8be4570e59480c0b41ee95fb9ba83e9621a29 100644
--- a/Core/Parametrization/ParameterPool.h
+++ b/Core/Parametrization/ParameterPool.h
@@ -22,7 +22,7 @@
 #include <string>
 #include <vector>
 
-class Limits;
+class RealLimits;
 class RealParameter;
 
 //! Holds a map of pointers to parameters.
diff --git a/Core/Parametrization/RealParameter.cpp b/Core/Parametrization/RealParameter.cpp
index 27d441a9ad0662ccfc063c830511dcfcc6ffd253..903f5184580e715959f8355837df5ed225616314 100644
--- a/Core/Parametrization/RealParameter.cpp
+++ b/Core/Parametrization/RealParameter.cpp
@@ -19,7 +19,7 @@
 #include <sstream>
 
 RealParameter::RealParameter(const std::string& name, ParameterPool* parent,
-                             volatile double* par, const Limits& limits, const Attributes& attr)
+                             volatile double* par, const RealLimits& limits, const Attributes& attr)
     : INamed(name)
     , m_parent(parent)
     , m_data(par)
@@ -82,19 +82,19 @@ void RealParameter::setValue(double value)
 
 RealParameter& RealParameter::setLimited(double lower, double upper)
 {
-    setLimits( Limits::limited(lower, upper) );
+    setLimits( RealLimits::limited(lower, upper) );
     return *this;
 }
 
 RealParameter& RealParameter::setPositive()
 {
-    setLimits( Limits::positive() );
+    setLimits( RealLimits::positive() );
     return *this;
 }
 
 RealParameter& RealParameter::setNonnegative()
 {
-    setLimits( Limits::nonnegative() );
+    setLimits( RealLimits::nonnegative() );
     return *this;
 }
 
diff --git a/Core/Parametrization/RealParameter.h b/Core/Parametrization/RealParameter.h
index 5258026660d8e91d1bc49f66b78c61e33ff3cf32..a4ef2ecc621693867714eedac2a3f913e30c8c37 100644
--- a/Core/Parametrization/RealParameter.h
+++ b/Core/Parametrization/RealParameter.h
@@ -18,7 +18,7 @@
 
 #include "INamed.h"
 #include "Attributes.h"
-#include "Limits.h"
+#include "RealLimits.h"
 #include "Unit.h"
 #include <string>
 
@@ -32,7 +32,7 @@ class BA_CORE_API_ RealParameter : public INamed {
 public:
     explicit RealParameter(
         const std::string& name, ParameterPool* parent,
-        volatile double* par, const Limits& limits=Limits::limitless(),
+        volatile double* par, const RealLimits& limits=RealLimits::limitless(),
         const Attributes& attr=Attributes::free());
     RealParameter(const RealParameter& other);
     RealParameter(const std::string& name, const RealParameter& other);
@@ -57,8 +57,8 @@ public:
     friend std::ostream& operator<<(std::ostream& ostr, const RealParameter& p) {
         ostr << p.m_data; return ostr; }
 
-    RealParameter& setLimits(const Limits& limits) { m_limits = limits; return *this; }
-    Limits getLimits() const { return m_limits; }
+    RealParameter& setLimits(const RealLimits& limits) { m_limits = limits; return *this; }
+    RealLimits getLimits() const { return m_limits; }
 
     RealParameter& setLimited(double lower, double upper);
     RealParameter& setPositive();
@@ -75,7 +75,7 @@ protected:
     ParameterPool* m_parent; //!< "owns" this parameter
     volatile double* m_data;
     Unit m_unit;
-    Limits m_limits;
+    RealLimits m_limits;
     Attributes m_attr;
     std::string fullName(); //!< For use in error messages
 };
diff --git a/Core/Simulation/Simulation.cpp b/Core/Simulation/Simulation.cpp
index 2770b0908bcd765aaad1b2df19d6dd705978b8fe..b5dd2fa60e57114207309b615bcd2e04d8d1ca13 100644
--- a/Core/Simulation/Simulation.cpp
+++ b/Core/Simulation/Simulation.cpp
@@ -154,7 +154,7 @@ std::string Simulation::addParametersToExternalPool(std::string path, ParameterP
 
 void Simulation::addParameterDistribution(const std::string& param_name,
                                           const IDistribution1D& distribution, size_t nbr_samples,
-                                          double sigma_factor, const Limits& limits)
+                                          double sigma_factor, const RealLimits& limits)
 {
     m_distribution_handler.addParameterDistribution(param_name, distribution, nbr_samples,
                                                     sigma_factor, limits);
diff --git a/Core/Simulation/Simulation.h b/Core/Simulation/Simulation.h
index 31996436decfe8cab52078d32eb9fc60ff79274c..ae63e2bfe1fa7b8977884f43eb72830521488ec1 100644
--- a/Core/Simulation/Simulation.h
+++ b/Core/Simulation/Simulation.h
@@ -74,7 +74,7 @@ public:
     //! add a sampled parameter distribution
     void addParameterDistribution(
         const std::string& param_name, const IDistribution1D& distribution, size_t nbr_samples,
-        double sigma_factor=0.0, const Limits& limits = Limits());
+        double sigma_factor=0.0, const RealLimits& limits = RealLimits());
 
     //! add a sampled parameter distribution
     void addParameterDistribution(const ParameterDistribution& par_distr);
diff --git a/Core/SoftParticle/FormFactorLorentz.cpp b/Core/SoftParticle/FormFactorLorentz.cpp
index 72d99589af3e2b19f0e91de7fce4f1afcc0fe1f7..27d70a84cc3efa2f346b061eec94be2c6326025f 100644
--- a/Core/SoftParticle/FormFactorLorentz.cpp
+++ b/Core/SoftParticle/FormFactorLorentz.cpp
@@ -15,7 +15,7 @@
 
 #include "FormFactorLorentz.h"
 #include "BornAgainNamespace.h"
-#include "Limits.h"
+#include "RealLimits.h"
 #include "Pi.h"
 #include "RealParameter.h"
 
diff --git a/Core/SoftParticle/FormFactorSphereGaussianRadius.cpp b/Core/SoftParticle/FormFactorSphereGaussianRadius.cpp
index bbf585bda24c0a5bd3eb23d9f604c7c53ad38200..dd87bb7580b674b436d6389019404948c001dffd 100644
--- a/Core/SoftParticle/FormFactorSphereGaussianRadius.cpp
+++ b/Core/SoftParticle/FormFactorSphereGaussianRadius.cpp
@@ -15,7 +15,7 @@
 
 #include "FormFactorSphereGaussianRadius.h"
 #include "BornAgainNamespace.h"
-#include "Limits.h"
+#include "RealLimits.h"
 #include "RealParameter.h"
 
 using namespace BornAgain;
diff --git a/Core/Tools/FileSystem.h b/Core/Tools/FileSystem.h
index 47be7306056e3d4605a186c55cc6a66a76dc5e37..88d4d71d7bc8d8e1a7b867358bf986847bec82f6 100644
--- a/Core/Tools/FileSystem.h
+++ b/Core/Tools/FileSystem.h
@@ -25,22 +25,22 @@
 namespace FileSystem {
 
     //! Returns file extension
-    std::string GetFileExtension(const std::string& name);
+	BA_CORE_API_ std::string GetFileExtension(const std::string& name);
 
     //! creates directory in current directory
-    bool CreateDirectory(const std::string& dir_name);
+	BA_CORE_API_ bool CreateDirectory(const std::string& dir_name);
 
     //! Returns filenames of files in directory
-    std::vector<std::string> filesInDirectory(const std::string &dir_name);
+	BA_CORE_API_ std::vector<std::string> filesInDirectory(const std::string &dir_name);
 
     //! join paths together
-    std::string GetJoinPath(const std::string& spath1, const std::string& spath2);
+	BA_CORE_API_ std::string GetJoinPath(const std::string& spath1, const std::string& spath2);
 
     //! Returns path without directory part ("Foo/Bar/Doz.int.gz" -> "Doz.int.gz")
-    std::string filename(const std::string& path);
+	BA_CORE_API_ std::string filename(const std::string& path);
 
     //! Returns file names that agree with a regex glob pattern.
-    std::vector<std::string> reglob(const std::string& dir, const std::string& pattern);
+	BA_CORE_API_ std::vector<std::string> reglob(const std::string& dir, const std::string& pattern);
 
 } // namespace FileSystem
 
diff --git a/Examples/python/fitting/ex02_FitCylindersAndPrisms/FitCylindersPrisms.py b/Examples/python/fitting/ex02_FitCylindersAndPrisms/FitCylindersPrisms.py
index 8aeab8762d829fb3bba7f7e6ea54c8b9f48d5790..8650fc4feb280537b249d4a8be1b32aece087b3e 100644
--- a/Examples/python/fitting/ex02_FitCylindersAndPrisms/FitCylindersPrisms.py
+++ b/Examples/python/fitting/ex02_FitCylindersAndPrisms/FitCylindersPrisms.py
@@ -63,13 +63,13 @@ def run_fitting():
 
     # setting fitting parameters with starting values
     fit_suite.addFitParameter("*Cylinder/Height", 4.*nm,
-                              ba.Limits.lowerLimited(0.01))
+                              ba.RealLimits.lowerLimited(0.01))
     fit_suite.addFitParameter("*Cylinder/Radius", 6.*nm,
-                              ba.Limits.lowerLimited(0.01))
+                              ba.RealLimits.lowerLimited(0.01))
     fit_suite.addFitParameter("*Prism3/Height", 4.*nm,
-                              ba.Limits.lowerLimited(0.01))
+                              ba.RealLimits.lowerLimited(0.01))
     fit_suite.addFitParameter("*Prism3/BaseEdge", 12.*nm,
-                              ba.Limits.lowerLimited(0.01))
+                              ba.RealLimits.lowerLimited(0.01))
 
     # running fit
     fit_suite.runFit()
diff --git a/Examples/python/fitting/ex02_FitCylindersAndPrisms/FitCylindersPrisms_detailed.py b/Examples/python/fitting/ex02_FitCylindersAndPrisms/FitCylindersPrisms_detailed.py
index 12e6c646f84197da9c306d54ae22b3889da33b60..cfcfaefc5ae081eecf68b2b8b46850098af31e8d 100644
--- a/Examples/python/fitting/ex02_FitCylindersAndPrisms/FitCylindersPrisms_detailed.py
+++ b/Examples/python/fitting/ex02_FitCylindersAndPrisms/FitCylindersPrisms_detailed.py
@@ -163,13 +163,13 @@ def create_fit():
 
     # setting fitting parameters with starting values
     fit_suite.addFitParameter("*Cylinder/Height", 4.*nm,
-                              ba.Limits.lowerLimited(0.01))
+                              ba.RealLimits.lowerLimited(0.01))
     fit_suite.addFitParameter("*Cylinder/Radius", 6.*nm,
-                              ba.Limits.lowerLimited(0.01))
+                              ba.RealLimits.lowerLimited(0.01))
     fit_suite.addFitParameter("*Prism3/Height", 4.*nm,
-                              ba.Limits.lowerLimited(0.01))
+                              ba.RealLimits.lowerLimited(0.01))
     fit_suite.addFitParameter("*Prism3/BaseEdge", 12.*nm,
-                              ba.Limits.lowerLimited(0.01))
+                              ba.RealLimits.lowerLimited(0.01))
 
     return fit_suite
 
diff --git a/Examples/python/fitting/ex03_FitSpheresInHexLattice/FitSpheresInHexLattice.py b/Examples/python/fitting/ex03_FitSpheresInHexLattice/FitSpheresInHexLattice.py
index 75138aa0566cc0d5ba7159f6956a167cda11d732..f46f6e1e6cdd7a6a5264fb3b4f21e32d43e19da5 100644
--- a/Examples/python/fitting/ex03_FitSpheresInHexLattice/FitSpheresInHexLattice.py
+++ b/Examples/python/fitting/ex03_FitSpheresInHexLattice/FitSpheresInHexLattice.py
@@ -94,9 +94,9 @@ def run_fitting():
 
     # this fit parameter will change both length_1 and length_2 simultaneously
     fit_suite.addFitParameter(
-        "*2DLattice/LatticeLength*", 8.*nm, ba.Limits.limited(4., 12.))
+        "*2DLattice/LatticeLength*", 8.*nm, ba.RealLimits.limited(4., 12.))
     fit_suite.addFitParameter(
-        "*/FullSphere/Radius", 8.*nm, ba.Limits.limited(4., 12.))
+        "*/FullSphere/Radius", 8.*nm, ba.RealLimits.limited(4., 12.))
 
     # running fit
     fit_suite.runFit()
diff --git a/Examples/python/fitting/ex03_FitSpheresInHexLattice/FitSpheresInHexLattice_builder.py b/Examples/python/fitting/ex03_FitSpheresInHexLattice/FitSpheresInHexLattice_builder.py
index 488174464c20864038c1e62090a70cecfc4586a2..1056dcdda03a3fd4c15229b1648eaa5de4643822 100644
--- a/Examples/python/fitting/ex03_FitSpheresInHexLattice/FitSpheresInHexLattice_builder.py
+++ b/Examples/python/fitting/ex03_FitSpheresInHexLattice/FitSpheresInHexLattice_builder.py
@@ -115,9 +115,9 @@ def run_fitting():
     fit_suite.attachObserver(draw_observer)
 
     # setting fitting parameters with starting values
-    fit_suite.addFitParameter("*radius", 8.*nm, ba.Limits.limited(4., 12.))
+    fit_suite.addFitParameter("*radius", 8.*nm, ba.RealLimits.limited(4., 12.))
     fit_suite.addFitParameter("*lattice_constant",
-                              8.*nm, ba.Limits.limited(4., 12.))
+                              8.*nm, ba.RealLimits.limited(4., 12.))
 
     # running fit
     fit_suite.runFit()
diff --git a/Examples/python/fitting/ex04_FitScaleAndShift/FitScaleAndShift.py b/Examples/python/fitting/ex04_FitScaleAndShift/FitScaleAndShift.py
index e38161695dd6b80e72b4ec20e46021b9e4ef8090..0ac34a693cd6ef6e16a2590815103c417160299b 100644
--- a/Examples/python/fitting/ex04_FitScaleAndShift/FitScaleAndShift.py
+++ b/Examples/python/fitting/ex04_FitScaleAndShift/FitScaleAndShift.py
@@ -110,13 +110,13 @@ def run_fitting():
 
     # setting fitting parameters with starting values
     fit_suite.addFitParameter("*/Cylinder/Radius", 6.*nm,
-                              ba.Limits.limited(4., 8.))
+                              ba.RealLimits.limited(4., 8.))
     fit_suite.addFitParameter("*/Cylinder/Height", 9.*nm,
-                              ba.Limits.limited(8., 12.))
+                              ba.RealLimits.limited(8., 12.))
     fit_suite.addFitParameter("*/Normalizer/scale", 1.5,
-                              ba.Limits.limited(1.0, 3.0))
+                              ba.RealLimits.limited(1.0, 3.0))
     fit_suite.addFitParameter("*/Normalizer/shift", 50.,
-                              ba.Limits.limited(1, 500.))
+                              ba.RealLimits.limited(1, 500.))
 
     # running fit
     fit_suite.runFit()
diff --git a/Examples/python/fitting/ex05_FitWithMasks/FitWithMasks.py b/Examples/python/fitting/ex05_FitWithMasks/FitWithMasks.py
index f01b91773b52cda8ffcb63793dec1ff9a597e6f2..f50595def15158edc789811f31ecf06bd80c98b3 100644
--- a/Examples/python/fitting/ex05_FitWithMasks/FitWithMasks.py
+++ b/Examples/python/fitting/ex05_FitWithMasks/FitWithMasks.py
@@ -139,9 +139,9 @@ def run_fitting():
 
     # setting fitting parameters with starting values
     fit_suite.addFitParameter(
-        "*/Cylinder/Radius", 6.*nm, ba.Limits.limited(4., 8.))
+        "*/Cylinder/Radius", 6.*nm, ba.RealLimits.limited(4., 8.))
     fit_suite.addFitParameter(
-        "*/Cylinder/Height", 9.*nm, ba.Limits.limited(8., 12.))
+        "*/Cylinder/Height", 9.*nm, ba.RealLimits.limited(8., 12.))
 
     # running fit
     fit_suite.runFit()
diff --git a/Examples/python/fitting/ex06_FitStrategies/FitStrategyAdjustMinimizer.py b/Examples/python/fitting/ex06_FitStrategies/FitStrategyAdjustMinimizer.py
index b4a1e0f38c2e0579c3277c28b3aa1a80f9e21fab..4d038460d91844a45adbfe6c278202fc1b322778 100644
--- a/Examples/python/fitting/ex06_FitStrategies/FitStrategyAdjustMinimizer.py
+++ b/Examples/python/fitting/ex06_FitStrategies/FitStrategyAdjustMinimizer.py
@@ -97,9 +97,9 @@ def run_fitting():
     # Here we select starting values being quite far from true values
     # to puzzle our minimizer's as much as possible
     fit_suite.addFitParameter(
-        "*Height", 1.*nm, ba.Limits.limited(0.01, 30.), 0.04*nm)
+        "*Height", 1.*nm, ba.RealLimits.limited(0.01, 30.), 0.04*nm)
     fit_suite.addFitParameter(
-        "*Radius", 20.*nm, ba.Limits.limited(0.01, 30.), 0.06*nm)
+        "*Radius", 20.*nm, ba.RealLimits.limited(0.01, 30.), 0.06*nm)
 
     # Now we create first fig strategy which will run first minimization round
     # using the Genetic minimizer.
diff --git a/Examples/python/fitting/ex07_FitAlongSlices/FitAlongSlices.py b/Examples/python/fitting/ex07_FitAlongSlices/FitAlongSlices.py
index 67112d5625bba34a5954caafbfdd0919dddf40d7..3936e39c852166a81540f4683b7cdc44251d5b53 100644
--- a/Examples/python/fitting/ex07_FitAlongSlices/FitAlongSlices.py
+++ b/Examples/python/fitting/ex07_FitAlongSlices/FitAlongSlices.py
@@ -199,9 +199,9 @@ def run_fitting():
 
     # setting fitting parameters with starting values
     fit_suite.addFitParameter(
-        "*/Cylinder/Radius", 6.*nm, ba.Limits.limited(4., 8.))
+        "*/Cylinder/Radius", 6.*nm, ba.RealLimits.limited(4., 8.))
     fit_suite.addFitParameter(
-        "*/Cylinder/Height", 9.*nm, ba.Limits.limited(8., 12.))
+        "*/Cylinder/Height", 9.*nm, ba.RealLimits.limited(8., 12.))
 
     # running fit
     fit_suite.runFit()
diff --git a/Examples/python/fitting/ex08_SimultaneousFitOfTwoDatasets/SimultaneousFitOfTwoDatasets.py b/Examples/python/fitting/ex08_SimultaneousFitOfTwoDatasets/SimultaneousFitOfTwoDatasets.py
index 1dc8339a33661c05597a3ddc88ebeb71e8b9205b..a7bc2afffcb0aee842bc9485882d6e079e4067b8 100644
--- a/Examples/python/fitting/ex08_SimultaneousFitOfTwoDatasets/SimultaneousFitOfTwoDatasets.py
+++ b/Examples/python/fitting/ex08_SimultaneousFitOfTwoDatasets/SimultaneousFitOfTwoDatasets.py
@@ -163,11 +163,11 @@ def run_fitting():
 
     # setting fitting parameters with starting values
     fit_suite.addFitParameter(
-        "*/HemiEllipsoid/RadiusX", 4.*nm, ba.Limits.limited(2., 10.))
+        "*/HemiEllipsoid/RadiusX", 4.*nm, ba.RealLimits.limited(2., 10.))
     fit_suite.addFitParameter(
-        "*/HemiEllipsoid/RadiusY", 6.*nm, ba.Limits.fixed())
+        "*/HemiEllipsoid/RadiusY", 6.*nm, ba.RealLimits.fixed())
     fit_suite.addFitParameter(
-        "*/HemiEllipsoid/Height", 4.*nm, ba.Limits.limited(2., 10.))
+        "*/HemiEllipsoid/Height", 4.*nm, ba.RealLimits.limited(2., 10.))
 
     # running fit
     fit_suite.runFit()
diff --git a/Examples/python/fitting/ex10_FitGALAXIData/FitGALAXIData.py b/Examples/python/fitting/ex10_FitGALAXIData/FitGALAXIData.py
index 689ba0f28f7fd86b66375f8c5a875306da61435d..09b0fa62d1e0a0818fbf05778d6262524cfb5b31 100644
--- a/Examples/python/fitting/ex10_FitGALAXIData/FitGALAXIData.py
+++ b/Examples/python/fitting/ex10_FitGALAXIData/FitGALAXIData.py
@@ -73,12 +73,12 @@ def run_fitting():
 
     # setting fitting parameters with starting values
     fit_suite.addFitParameter(
-        "*radius", 5.0*ba.nm, ba.Limits.limited(4.0, 6.0),
+        "*radius", 5.0*ba.nm, ba.RealLimits.limited(4.0, 6.0),
         0.1*ba.nm)
     fit_suite.addFitParameter(
-        "*sigma", 0.55, ba.Limits.limited(0.2, 0.8), 0.01*ba.nm)
+        "*sigma", 0.55, ba.RealLimits.limited(0.2, 0.8), 0.01*ba.nm)
     fit_suite.addFitParameter(
-        "*distance", 27.*ba.nm, ba.Limits.limited(20, 70),
+        "*distance", 27.*ba.nm, ba.RealLimits.limited(20, 70),
         0.1*ba.nm)
 
     use_two_minimizers_strategy = False
diff --git a/Fit/Parameters/FitParameter.cpp b/Fit/Parameters/FitParameter.cpp
index c2b122b28afb58bed68f3f3eae3a1deab1c90417..00a3b7251c230928b4ec4009541965d0005feaf4 100644
--- a/Fit/Parameters/FitParameter.cpp
+++ b/Fit/Parameters/FitParameter.cpp
@@ -20,9 +20,9 @@ FitParameter::FitParameter() : m_value(0), m_step(0), m_error(0)
 {}
 
 FitParameter::FitParameter(
-    const std::string& name, double value, double step, const Limits& limits,
+    const std::string& name, double value, double step, const RealLimits& limits,
     const Attributes& attr, double error)
-    : Limits(limits)
+    : RealLimits(limits)
     , Attributes(attr)
     , m_name(name)
     , m_value(value)
@@ -38,5 +38,5 @@ void FitParameter::print(std::ostream& ostr) const
     ostr << adjusted_name << std::scientific << std::setprecision(8) << m_value << "  ";
     Attributes::print(ostr);
     ostr << " ";
-    Limits::print(ostr);
+    RealLimits::print(ostr);
 }
diff --git a/Fit/Parameters/FitParameter.h b/Fit/Parameters/FitParameter.h
index f8f9f2128476b67b50cc0353af7c0bd430dba860..00c7b7e41466de305108893fe4d9e27b34948abd 100644
--- a/Fit/Parameters/FitParameter.h
+++ b/Fit/Parameters/FitParameter.h
@@ -17,19 +17,19 @@
 #define FITPARAMETER_H
 
 #include "Attributes.h"
-#include "Limits.h"
+#include "RealLimits.h"
 #include <string>
 
 //! Fittable parameter with value, error, step, limits, and fixed flag.
 //! @ingroup fitting_internal
 
-class BA_CORE_API_ FitParameter : public Limits, public Attributes
+class BA_CORE_API_ FitParameter : public RealLimits, public Attributes
 {
  public:
     FitParameter();
     FitParameter(
         const std::string& name, double value, double step=0.0,
-        const Limits& limits=Limits::limitless(), const Attributes& attr=Attributes::free(),
+        const RealLimits& limits=RealLimits::limitless(), const Attributes& attr=Attributes::free(),
         double error=0.0);
     virtual ~FitParameter() {}
 
diff --git a/Fit/Parameters/FitSuiteParameters.h b/Fit/Parameters/FitSuiteParameters.h
index 23c513818a8a19a8d3b235988e14129bad80c181..63f8c1d3bf17ed9f5c58057903902583071f06ae 100644
--- a/Fit/Parameters/FitSuiteParameters.h
+++ b/Fit/Parameters/FitSuiteParameters.h
@@ -20,7 +20,7 @@
 #include <vector>
 #include <string>
 
-class Limits;
+class RealLimits;
 class FitParameter;
 class ParameterPool;
 
diff --git a/Fit/Parameters/Limits.cpp b/Fit/Parameters/RealLimits.cpp
similarity index 89%
rename from Fit/Parameters/Limits.cpp
rename to Fit/Parameters/RealLimits.cpp
index ad2e30556fba45c68b9186472e30c4354029d30a..19cb8ec25dd3d6faf48231c658605d2a458c7c76 100644
--- a/Fit/Parameters/Limits.cpp
+++ b/Fit/Parameters/RealLimits.cpp
@@ -13,19 +13,19 @@
 //
 // ************************************************************************** //
 
-#include "Limits.h"
+#include "RealLimits.h"
 #include <iomanip>
 #include <iostream>
 #include <limits>
 
 //! Creates an object which can have only positive values (>0., zero is not included)
-Limits Limits::positive()
+RealLimits RealLimits::positive()
 {
     return lowerLimited(std::numeric_limits<double>::min());
 }
 
 //! Prints class
-void Limits::print(std::ostream& ostr) const
+void RealLimits::print(std::ostream& ostr) const
 {
     if      (!hasLowerLimit() && !hasUpperLimit())
         ostr << "unlimited";
@@ -38,14 +38,14 @@ void Limits::print(std::ostream& ostr) const
             std::fixed <<std::setprecision(2) << m_upper_limit << ")";
 }
 
-bool Limits::isInRange(double value) const
+bool RealLimits::isInRange(double value) const
 {
     if(hasLowerLimit() && value < m_lower_limit) return false;
     if(hasUpperLimit() && value >= m_upper_limit) return false;
     return true;
 }
 
-bool Limits::operator==(const Limits& other) const
+bool RealLimits::operator==(const RealLimits& other) const
 {
     return (m_has_lower_limit == other.m_has_lower_limit) &&
             (m_has_upper_limit == other.m_has_upper_limit) &&
diff --git a/Fit/Parameters/Limits.h b/Fit/Parameters/RealLimits.h
similarity index 73%
rename from Fit/Parameters/Limits.h
rename to Fit/Parameters/RealLimits.h
index c27bab2b340ba2f7513212289b9d05c5c60afc8e..86d01de12eed712d1fabbb9611d21b086cd52c1a 100644
--- a/Fit/Parameters/Limits.h
+++ b/Fit/Parameters/RealLimits.h
@@ -2,8 +2,8 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Fit/Parameters/Limits.h
-//! @brief     Defines class Limits.
+//! @file      Fit/Parameters/RealLimits.h
+//! @brief     Defines class RealLimits.
 //!
 //! @homepage  http://www.bornagainproject.org
 //! @license   GNU General Public License v3 or higher (see COPYING)
@@ -13,19 +13,19 @@
 //
 // ************************************************************************** //
 
-#ifndef LIMITS_H
-#define LIMITS_H
+#ifndef REALLIMITS_H
+#define REALLIMITS_H
 
 #include "WinDllMacros.h"
 #include <ostream>
 
-//! Limits for a fit parameter.
+//! Limits for a real fit parameter.
 //! @ingroup fitting
 
-class BA_CORE_API_ Limits
+class BA_CORE_API_ RealLimits
 {
  public:
-    Limits()
+    RealLimits()
         : m_has_lower_limit(false), m_has_upper_limit(false),
         m_lower_limit(0.), m_upper_limit(0.) {}
 
@@ -69,33 +69,33 @@ class BA_CORE_API_ Limits
     // static creation methods
 
     //! Creates an object bounded from the left
-    static Limits lowerLimited(double bound_value) { return Limits(true, false, bound_value, 0.); }
+    static RealLimits lowerLimited(double bound_value) { return RealLimits(true, false, bound_value, 0.); }
 
     //! Creates an object which can have only positive values (>0., zero is not included)
-    static Limits positive();
+    static RealLimits positive();
 
     //! Creates an object which can have only positive values with 0. included
-    static Limits nonnegative() { return lowerLimited(0.); }
+    static RealLimits nonnegative() { return lowerLimited(0.); }
 
     //! Creates an object bounded from the right
-    static Limits upperLimited(double bound_value) { return Limits(false, true, 0., bound_value); }
+    static RealLimits upperLimited(double bound_value) { return RealLimits(false, true, 0., bound_value); }
 
     //! Creates an object bounded from the left and right
-    static Limits limited(double left_bound_value, double right_bound_value) {
-        return Limits(true, true, left_bound_value, right_bound_value); }
+    static RealLimits limited(double left_bound_value, double right_bound_value) {
+        return RealLimits(true, true, left_bound_value, right_bound_value); }
 
     //! Creates an object withoud bounds (default)
-    static Limits limitless() { return Limits(); }
+    static RealLimits limitless() { return RealLimits(); }
 
     //! Prints class
-    friend std::ostream& operator<<(std::ostream& ostr, const Limits& m)
+    friend std::ostream& operator<<(std::ostream& ostr, const RealLimits& m)
     { m.print(ostr); return ostr; }
 
-    bool operator==(const Limits &other) const;
-    bool operator!=(const Limits &other) const { return !(*this == other); }
+    bool operator==(const RealLimits &other) const;
+    bool operator!=(const RealLimits &other) const { return !(*this == other); }
 
  protected:
-    Limits(bool has_lower_limit, bool has_upper_limit, double lower_limit, double upper_limit)
+    RealLimits(bool has_lower_limit, bool has_upper_limit, double lower_limit, double upper_limit)
         : m_has_lower_limit(has_lower_limit)
         , m_has_upper_limit(has_upper_limit)
         , m_lower_limit(lower_limit)
@@ -109,4 +109,4 @@ class BA_CORE_API_ Limits
     void print(std::ostream& ostr) const;
 };
 
-#endif // LIMITS_H
+#endif // REALLIMITS_H
diff --git a/GUI/coregui/Models/AxesItems.cpp b/GUI/coregui/Models/AxesItems.cpp
index 83a96fa65b5bcef966103eee9f927042381451a7..591d905a94ff7e5f90439e2020b3142b3a4f1305 100644
--- a/GUI/coregui/Models/AxesItems.cpp
+++ b/GUI/coregui/Models/AxesItems.cpp
@@ -39,11 +39,11 @@ BasicAxisItem::BasicAxisItem(const QString &type)
 void BasicAxisItem::register_basic_properties()
 {
     addProperty(P_IS_VISIBLE, true)->setVisible(false);
-    addProperty(P_NBINS, 100)->setLimits(Limits::limited(1, max_detector_pixels));
+    addProperty(P_NBINS, 100)->setLimits(RealLimits::limited(1, max_detector_pixels));
     addProperty(P_MIN, 0.0)->setDecimals(3);
-    getItem(P_MIN)->setLimits(Limits::limitless());
+    getItem(P_MIN)->setLimits(RealLimits::limitless());
     addProperty(P_MAX, -1.0)->setDecimals(3);
-    getItem(P_MAX)->setLimits(Limits::limitless());
+    getItem(P_MAX)->setLimits(RealLimits::limitless());
     addProperty(P_TITLE, QString());
 }
 
diff --git a/GUI/coregui/Models/BeamAngleItems.cpp b/GUI/coregui/Models/BeamAngleItems.cpp
index 54658713745b86a23b49b19ff7f0ace402840807..e855be777c829a54273caeef3a1814ea0b6c111d 100644
--- a/GUI/coregui/Models/BeamAngleItems.cpp
+++ b/GUI/coregui/Models/BeamAngleItems.cpp
@@ -26,7 +26,7 @@ BeamInclinationAngleItem::BeamInclinationAngleItem()
     SessionItem *distribution = dynamic_cast<DistributionNoneItem *>(getGroupItem(P_DISTRIBUTION));
     Q_ASSERT(distribution);
     auto value = distribution->getItem(DistributionNoneItem::P_VALUE);
-    value->setLimits(Limits::limited(0.0, 90.0));
+    value->setLimits(RealLimits::limited(0.0, 90.0));
     value->setDecimals(3);
     value->setValue(0.2);
 }
@@ -48,7 +48,7 @@ BeamAzimuthalAngleItem::BeamAzimuthalAngleItem()
     SessionItem *distribution = dynamic_cast<DistributionNoneItem *>(getGroupItem(P_DISTRIBUTION));
     Q_ASSERT(distribution);
     auto value = distribution->getItem(DistributionNoneItem::P_VALUE);
-    value->setLimits(Limits::limited(-90.0, 90.0));
+    value->setLimits(RealLimits::limited(-90.0, 90.0));
     value->setDecimals(3);
     value->setValue(0.0);
 }
diff --git a/GUI/coregui/Models/BeamDistributionItem.cpp b/GUI/coregui/Models/BeamDistributionItem.cpp
index 57c720e546626eb2e70efeb92e8e945febfc96ce..40b38b97bb658780b9ba55f4aa86f8edaefdc69d 100644
--- a/GUI/coregui/Models/BeamDistributionItem.cpp
+++ b/GUI/coregui/Models/BeamDistributionItem.cpp
@@ -66,13 +66,13 @@ BeamDistributionItem::getParameterDistributionForName(const std::string &paramet
                 sigma_factor = distributionItem->getItemValue(
                                                      DistributionItem::P_SIGMA_FACTOR).toInt();
             }
-            Limits limits;
+            RealLimits limits;
             SessionItem *distributionNoneValueItem =
                     getGroupItem(P_DISTRIBUTION,Constants::DistributionNoneType)->getItem(DistributionNoneItem::P_VALUE);
             if (modelType() == Constants::BeamWavelengthType) {
                 limits = distributionNoneValueItem->limits();
             } else {
-                Limits orig = distributionNoneValueItem->limits();
+                RealLimits orig = distributionNoneValueItem->limits();
                 if (orig.hasLowerLimit())
                     limits.setLowerLimit(Units::deg2rad(orig.getLowerLimit()));
                 if (orig.hasUpperLimit())
diff --git a/GUI/coregui/Models/BeamItem.cpp b/GUI/coregui/Models/BeamItem.cpp
index 54c50b00ba1ef60ee468674823b028e70b849fa8..2680df8f7bf3bbb9050c575c154001f20d33d751 100644
--- a/GUI/coregui/Models/BeamItem.cpp
+++ b/GUI/coregui/Models/BeamItem.cpp
@@ -28,7 +28,7 @@ const QString BeamItem::P_AZIMUTHAL_ANGLE = "Azimuthal Angle";
 BeamItem::BeamItem() : SessionItem(Constants::BeamType)
 {
     ScientificDoubleProperty intensity(1e+08);
-    addProperty(P_INTENSITY, intensity.getVariant())->setLimits(Limits::limited(0.0, 1e+32));
+    addProperty(P_INTENSITY, intensity.getVariant())->setLimits(RealLimits::limited(0.0, 1e+32));
     addGroupProperty(P_WAVELENGTH, Constants::BeamWavelengthType);
     addGroupProperty(P_INCLINATION_ANGLE, Constants::BeamInclinationAngleType);
     addGroupProperty(P_AZIMUTHAL_ANGLE, Constants::BeamAzimuthalAngleType);
diff --git a/GUI/coregui/Models/DistributionItem.cpp b/GUI/coregui/Models/DistributionItem.cpp
index 91b9d45ee37f13bd5167e1e6f47639b6e8e19cb9..312198324673d8841d2ae38434476e3709f70065 100644
--- a/GUI/coregui/Models/DistributionItem.cpp
+++ b/GUI/coregui/Models/DistributionItem.cpp
@@ -59,7 +59,7 @@ const QString DistributionNoneItem::P_VALUE = "Value";
 DistributionNoneItem::DistributionNoneItem()
     : DistributionItem(Constants::DistributionNoneType)
 {
-    addProperty(P_VALUE, 0.1)->setLimits(Limits::lowerLimited(1e-4));
+    addProperty(P_VALUE, 0.1)->setLimits(RealLimits::lowerLimited(1e-4));
     getItem(P_VALUE)->setDecimals(4);
 }
 
@@ -81,8 +81,8 @@ const QString DistributionGateItem::P_MAX = "Maximum";
 DistributionGateItem::DistributionGateItem()
     : DistributionItem(Constants::DistributionGateType)
 {
-    addProperty(P_MIN, 0.0)->setLimits(Limits::limitless());
-    addProperty(P_MAX, 1.0)->setLimits(Limits::limitless());
+    addProperty(P_MIN, 0.0)->setLimits(RealLimits::limitless());
+    addProperty(P_MAX, 1.0)->setLimits(RealLimits::limitless());
     register_number_of_samples();
     register_sigma_factor();
 }
@@ -110,7 +110,7 @@ const QString DistributionLorentzItem::P_HWHM = "HWHM";
 DistributionLorentzItem::DistributionLorentzItem()
     : DistributionItem(Constants::DistributionLorentzType)
 {
-    addProperty(P_MEAN, 0.0)->setLimits(Limits::limitless());
+    addProperty(P_MEAN, 0.0)->setLimits(RealLimits::limitless());
     addProperty(P_HWHM, 1.0);
     register_number_of_samples();
     register_sigma_factor();
@@ -130,7 +130,7 @@ void DistributionLorentzItem::init_distribution(double value)
 
     setItemValue(P_MEAN, value);
     setItemValue(P_HWHM, sigma);
-    getItem(P_HWHM)->setLimits(Limits::lowerLimited(0.0));
+    getItem(P_HWHM)->setLimits(RealLimits::lowerLimited(0.0));
 }
 
 /* ------------------------------------------------ */
@@ -141,7 +141,7 @@ const QString DistributionGaussianItem::P_STD_DEV = "Standard deviation";
 DistributionGaussianItem::DistributionGaussianItem()
     : DistributionItem(Constants::DistributionGaussianType)
 {
-    addProperty(P_MEAN, 0.0)->setLimits(Limits::limitless());
+    addProperty(P_MEAN, 0.0)->setLimits(RealLimits::limitless());
     addProperty(P_STD_DEV, 1.0);
     register_number_of_samples();
     register_sigma_factor();
@@ -161,7 +161,7 @@ void DistributionGaussianItem::init_distribution(double value)
 
     setItemValue(P_MEAN, value);
     setItemValue(P_STD_DEV, sigma);
-    getItem(P_STD_DEV)->setLimits(Limits::lowerLimited(0.0));
+    getItem(P_STD_DEV)->setLimits(RealLimits::lowerLimited(0.0));
 }
 
 /* ------------------------------------------------ */
@@ -192,7 +192,7 @@ void DistributionLogNormalItem::init_distribution(double value)
 
     setItemValue(P_MEDIAN, value);
     setItemValue(P_SCALE_PAR, sigma);
-    getItem(P_SCALE_PAR)->setLimits(Limits::lowerLimited(0.0));
+    getItem(P_SCALE_PAR)->setLimits(RealLimits::lowerLimited(0.0));
 }
 
 /* ------------------------------------------------ */
@@ -203,7 +203,7 @@ const QString DistributionCosineItem::P_SIGMA = "Sigma";
 DistributionCosineItem::DistributionCosineItem()
     : DistributionItem(Constants::DistributionCosineType)
 {
-    addProperty(P_MEAN, 0.0)->setLimits(Limits::limitless());
+    addProperty(P_MEAN, 0.0)->setLimits(RealLimits::limitless());
     addProperty(P_SIGMA, 1.0);
     register_number_of_samples();
     register_sigma_factor();
@@ -223,5 +223,5 @@ void DistributionCosineItem::init_distribution(double value)
 
     setItemValue(P_MEAN, value);
     setItemValue(P_SIGMA, sigma);
-    getItem(P_SIGMA)->setLimits(Limits::lowerLimited(0.0));
+    getItem(P_SIGMA)->setLimits(RealLimits::lowerLimited(0.0));
 }
diff --git a/GUI/coregui/Models/DomainSimulationBuilder.h b/GUI/coregui/Models/DomainSimulationBuilder.h
index 2680bb2d41718f8f2c83f42e7b368c957a3c99e0..cfc1fe15df2e709b5388c935ac6a532550054eb6 100644
--- a/GUI/coregui/Models/DomainSimulationBuilder.h
+++ b/GUI/coregui/Models/DomainSimulationBuilder.h
@@ -17,6 +17,7 @@
 #ifndef DOMAINSIMULATIONBUILDER_H
 #define DOMAINSIMULATIONBUILDER_H
 
+#include "WinDllMacros.h"
 
 class GISASSimulation;
 class MultiLayerItem;
@@ -25,7 +26,7 @@ class SimulationOptionsItem;
 
 //! The DomainSimulationBuilder class builds the domain simulation
 //! from instrument and sample models.
-class DomainSimulationBuilder
+class BA_CORE_API_ DomainSimulationBuilder
 {
 public:
     static GISASSimulation *getSimulation(const MultiLayerItem *sampleItem,
diff --git a/GUI/coregui/Models/FTDecayFunctionItems.cpp b/GUI/coregui/Models/FTDecayFunctionItems.cpp
index 6eff56cd26314ea0138bbada01a4d5c69a9f5cf5..77e4da8f10f7f2ffe5830ed53366185884057ba2 100644
--- a/GUI/coregui/Models/FTDecayFunctionItems.cpp
+++ b/GUI/coregui/Models/FTDecayFunctionItems.cpp
@@ -70,7 +70,7 @@ FTDecayFunction1DVoigtItem::FTDecayFunction1DVoigtItem()
     : FTDecayFunction1DItem(FTDecayFunction1DVoigtType)
 {
     addProperty(P_DECAY_LENGTH, 1000.0);
-    addProperty(P_ETA, 0.5)->setLimits(Limits::limited(0.0, 1.0));
+    addProperty(P_ETA, 0.5)->setLimits(RealLimits::limited(0.0, 1.0));
 }
 
 IFTDecayFunction1D* FTDecayFunction1DVoigtItem::createFTDecayFunction() const
@@ -119,7 +119,7 @@ FTDecayFunction2DVoigtItem::FTDecayFunction2DVoigtItem()
 {
     addProperty(P_DECAY_LENGTH_X, 1000.0);
     addProperty(P_DECAY_LENGTH_Y, 1000.0);
-    addProperty(P_ETA, 0.5)->setLimits(Limits::limited(0.0, 1.0));
+    addProperty(P_ETA, 0.5)->setLimits(RealLimits::limited(0.0, 1.0));
 }
 
 IFTDecayFunction2D* FTDecayFunction2DVoigtItem::createFTDecayFunction() const
diff --git a/GUI/coregui/Models/FTDistributionItems.cpp b/GUI/coregui/Models/FTDistributionItems.cpp
index 0d8e0b2e589e7fdf9ae5ad7de2576fdeb096805b..de36203ebd60fb7a0821f581178e5d4a4108bdb8 100644
--- a/GUI/coregui/Models/FTDistributionItems.cpp
+++ b/GUI/coregui/Models/FTDistributionItems.cpp
@@ -100,7 +100,7 @@ FTDistribution1DVoigtItem::FTDistribution1DVoigtItem()
     : FTDistribution1DItem(FTDistribution1DVoigtType)
 {
     addProperty(P_CORR_LENGTH, 1.0);
-    addProperty(P_ETA, 0.5)->setLimits(Limits::limited(0.0, 1.0));
+    addProperty(P_ETA, 0.5)->setLimits(RealLimits::limited(0.0, 1.0));
 }
 
 IFTDistribution1D *FTDistribution1DVoigtItem::createFTDistribution() const
@@ -195,7 +195,7 @@ FTDistribution2DVoigtItem::FTDistribution2DVoigtItem()
 {
     addProperty(P_CORR_LENGTH_X, 1.0);
     addProperty(P_CORR_LENGTH_Y, 1.0);
-    addProperty(P_ETA, 0.5)->setLimits(Limits::limited(0.0, 1.0));
+    addProperty(P_ETA, 0.5)->setLimits(RealLimits::limited(0.0, 1.0));
 }
 
 IFTDistribution2D *FTDistribution2DVoigtItem::createFTDistribution() const
diff --git a/GUI/coregui/Models/FitParameterItems.cpp b/GUI/coregui/Models/FitParameterItems.cpp
index d0957a3fd0e9af5c5eaf8e26165e3259fdedaec2..24ffdb08b4d59fed8e509a5b37161474760412f0 100644
--- a/GUI/coregui/Models/FitParameterItems.cpp
+++ b/GUI/coregui/Models/FitParameterItems.cpp
@@ -88,7 +88,7 @@ FitParameterItem::FitParameterItem()
 
 //! Inits P_MIN and P_MAX taking into account current value and external limits
 
-void FitParameterItem::initMinMaxValues(const Limits &limits)
+void FitParameterItem::initMinMaxValues(const RealLimits &limits)
 {
     double value = getItemValue(P_START_VALUE).toDouble();
 
@@ -112,18 +112,18 @@ void FitParameterItem::initMinMaxValues(const Limits &limits)
 
 //! Constructs Limits correspodning to current GUI settings.
 
-Limits FitParameterItem::getLimits()
+RealLimits FitParameterItem::getLimits()
 {
     if(isLimited())
-        return Limits::limited(getItemValue(P_MIN).toDouble(), getItemValue(P_MAX).toDouble());
+        return RealLimits::limited(getItemValue(P_MIN).toDouble(), getItemValue(P_MAX).toDouble());
 
     if(isLowerLimited())
-        return Limits::lowerLimited(getItemValue(P_MIN).toDouble());
+        return RealLimits::lowerLimited(getItemValue(P_MIN).toDouble());
 
     if(isUpperLimited())
-        return Limits::upperLimited(getItemValue(P_MAX).toDouble());
+        return RealLimits::upperLimited(getItemValue(P_MAX).toDouble());
 
-    return Limits::limitless();
+    return RealLimits::limitless();
 }
 
 //! Enables/disables min, max properties on FitParameterItem's type
diff --git a/GUI/coregui/Models/FitParameterItems.h b/GUI/coregui/Models/FitParameterItems.h
index 9a3aed33627f8ab3e029587562ff83432c807deb..2e51e175e35efa2770356449f6c6c615c034a018 100644
--- a/GUI/coregui/Models/FitParameterItems.h
+++ b/GUI/coregui/Models/FitParameterItems.h
@@ -46,9 +46,9 @@ public:
     static const QString T_LINK;
     explicit FitParameterItem();
 
-    void initMinMaxValues(const Limits &limits);
+    void initMinMaxValues(const RealLimits &limits);
 
-    Limits getLimits();
+    RealLimits getLimits();
 
 private:
     void onTypeChange();
diff --git a/GUI/coregui/Models/FormFactorItems.cpp b/GUI/coregui/Models/FormFactorItems.cpp
index 9cd62eb7f92a962fe7554442911d0a12b8a50e4d..81460c2d047cbfe99fc5283ff3eea4884a26b3f4 100644
--- a/GUI/coregui/Models/FormFactorItems.cpp
+++ b/GUI/coregui/Models/FormFactorItems.cpp
@@ -127,7 +127,7 @@ CuboctahedronItem::CuboctahedronItem()
 {
     addProperty(P_LENGTH, 20.0);
     addProperty(P_HEIGHT, 13.0);
-    addProperty(P_HEIGHT_RATIO, 0.7)->setLimits(Limits::lowerLimited(0.0));
+    addProperty(P_HEIGHT_RATIO, 0.7)->setLimits(RealLimits::lowerLimited(0.0));
     addProperty(P_ALPHA, 60.0);
 }
 
diff --git a/GUI/coregui/Models/LayerItem.cpp b/GUI/coregui/Models/LayerItem.cpp
index 9636a6f2aefb991fc4003c766ea7a0902b3ff793..2fa86d7ea8177af6f5d5fc1f692f42986c99093c 100644
--- a/GUI/coregui/Models/LayerItem.cpp
+++ b/GUI/coregui/Models/LayerItem.cpp
@@ -26,7 +26,7 @@ LayerItem::LayerItem()
     : SessionGraphicsItem(Constants::LayerType)
 {
     addProperty(P_THICKNESS, 0.0);
-    getItem(P_THICKNESS)->setLimits(Limits::lowerLimited(0.0));
+    getItem(P_THICKNESS)->setLimits(RealLimits::lowerLimited(0.0));
     addProperty(P_MATERIAL, MaterialUtils::getDefaultMaterialProperty().getVariant());
 
     addGroupProperty(P_ROUGHNESS, Constants::LayerRoughnessGroup);
diff --git a/GUI/coregui/Models/LayerRoughnessItems.cpp b/GUI/coregui/Models/LayerRoughnessItems.cpp
index 990729d95cd9b0df59dd35d689ce757238b4744b..4d63e24a457037d63902622e98604577c88776c0 100644
--- a/GUI/coregui/Models/LayerRoughnessItems.cpp
+++ b/GUI/coregui/Models/LayerRoughnessItems.cpp
@@ -30,7 +30,7 @@ LayerBasicRoughnessItem::LayerBasicRoughnessItem()
     : SessionItem(Constants::LayerBasicRoughnessType)
 {
     addProperty(P_SIGMA, 1.0);
-    addProperty(P_HURST, 0.3)->setLimits(Limits::limited(0.0, 1.0));
+    addProperty(P_HURST, 0.3)->setLimits(RealLimits::limited(0.0, 1.0));
     getItem(P_HURST)->setDecimals(3);
     addProperty(P_LATERAL_CORR_LENGTH, 5.0);
 }
diff --git a/GUI/coregui/Models/MaskItems.cpp b/GUI/coregui/Models/MaskItems.cpp
index fa098d4dc6b948770f4eaf6f2dd5533aa97d4f3d..8d347efe4c60a12ad8a03fc7e744d2a7e4e41bac 100644
--- a/GUI/coregui/Models/MaskItems.cpp
+++ b/GUI/coregui/Models/MaskItems.cpp
@@ -60,10 +60,10 @@ RectangleItem::RectangleItem()
     : MaskItem(Constants::RectangleMaskType)
 {
     setItemName(Constants::RectangleMaskType);
-    addProperty(P_XLOW, 0.0)->setLimits(Limits::limitless());
-    addProperty(P_YLOW, 0.0)->setLimits(Limits::limitless());
-    addProperty(P_XUP, 0.0)->setLimits(Limits::limitless());
-    addProperty(P_YUP, 0.0)->setLimits(Limits::limitless());
+    addProperty(P_XLOW, 0.0)->setLimits(RealLimits::limitless());
+    addProperty(P_YLOW, 0.0)->setLimits(RealLimits::limitless());
+    addProperty(P_XUP, 0.0)->setLimits(RealLimits::limitless());
+    addProperty(P_YUP, 0.0)->setLimits(RealLimits::limitless());
 }
 
 std::unique_ptr<Geometry::IShape2D> RectangleItem::createShape(double scale) const
@@ -83,8 +83,8 @@ PolygonPointItem::PolygonPointItem()
     : SessionItem(Constants::PolygonPointType)
 {
     setItemName(Constants::PolygonPointType);
-    addProperty(P_POSX, 0.0)->setLimits(Limits::limitless());
-    addProperty(P_POSY, 0.0)->setLimits(Limits::limitless());
+    addProperty(P_POSX, 0.0)->setLimits(RealLimits::limitless());
+    addProperty(P_POSY, 0.0)->setLimits(RealLimits::limitless());
 }
 
 /* ------------------------------------------------------------------------- */
@@ -118,7 +118,7 @@ VerticalLineItem::VerticalLineItem()
     : MaskItem(Constants::VerticalLineMaskType)
 {
     setItemName(Constants::VerticalLineMaskType);
-    addProperty(P_POSX, 0.0)->setLimits(Limits::limitless());
+    addProperty(P_POSX, 0.0)->setLimits(RealLimits::limitless());
 }
 
 std::unique_ptr<Geometry::IShape2D> VerticalLineItem::createShape(double scale) const
@@ -134,7 +134,7 @@ HorizontalLineItem::HorizontalLineItem()
     : MaskItem(Constants::HorizontalLineMaskType)
 {
     setItemName(Constants::HorizontalLineMaskType);
-    addProperty(P_POSY, 0.0)->setLimits(Limits::limitless());
+    addProperty(P_POSY, 0.0)->setLimits(RealLimits::limitless());
 }
 
 std::unique_ptr<Geometry::IShape2D> HorizontalLineItem::createShape(double scale) const
@@ -155,11 +155,11 @@ EllipseItem::EllipseItem()
     : MaskItem(Constants::EllipseMaskType)
 {
     setItemName(Constants::EllipseMaskType);
-    addProperty(P_XCENTER, 0.0)->setLimits(Limits::limitless());
-    addProperty(P_YCENTER, 0.0)->setLimits(Limits::limitless());
+    addProperty(P_XCENTER, 0.0)->setLimits(RealLimits::limitless());
+    addProperty(P_YCENTER, 0.0)->setLimits(RealLimits::limitless());
     addProperty(P_XRADIUS, 0.0);
     addProperty(P_YRADIUS, 0.0);
-    addProperty(P_ANGLE, 0.0)->setLimits(Limits::limitless());
+    addProperty(P_ANGLE, 0.0)->setLimits(RealLimits::limitless());
 }
 
 std::unique_ptr<Geometry::IShape2D> EllipseItem::createShape(double scale) const
diff --git a/GUI/coregui/Models/ParticleCompositionItem.cpp b/GUI/coregui/Models/ParticleCompositionItem.cpp
index 4403aa9472831a71303cdbe380ab8597b6960a5a..0862541994e23952068f9862f64499b94c8cefc6 100644
--- a/GUI/coregui/Models/ParticleCompositionItem.cpp
+++ b/GUI/coregui/Models/ParticleCompositionItem.cpp
@@ -27,7 +27,7 @@ ParticleCompositionItem::ParticleCompositionItem()
     : SessionGraphicsItem(Constants::ParticleCompositionType)
 {
     addProperty(ParticleItem::P_ABUNDANCE, 1.0);
-    getItem(ParticleItem::P_ABUNDANCE)->setLimits(Limits::limited(0.0, 1.0));
+    getItem(ParticleItem::P_ABUNDANCE)->setLimits(RealLimits::limited(0.0, 1.0));
     getItem(ParticleItem::P_ABUNDANCE)->setDecimals(3);
     addGroupProperty(ParticleItem::P_POSITION, Constants::VectorType);
     PositionTranslator position_translator;
diff --git a/GUI/coregui/Models/ParticleCoreShellItem.cpp b/GUI/coregui/Models/ParticleCoreShellItem.cpp
index 52dce1d55cfb372adc3a29d83285dc2a0c55c90a..dcd1ce880f5c1e27ecf7f09cd59dc14de172cb91 100644
--- a/GUI/coregui/Models/ParticleCoreShellItem.cpp
+++ b/GUI/coregui/Models/ParticleCoreShellItem.cpp
@@ -27,7 +27,7 @@ ParticleCoreShellItem::ParticleCoreShellItem()
     : SessionGraphicsItem(Constants::ParticleCoreShellType)
 {
     addProperty(ParticleItem::P_ABUNDANCE, 1.0);
-    getItem(ParticleItem::P_ABUNDANCE)->setLimits(Limits::limited(0.0, 1.0));
+    getItem(ParticleItem::P_ABUNDANCE)->setLimits(RealLimits::limited(0.0, 1.0));
     getItem(ParticleItem::P_ABUNDANCE)->setDecimals(3);
     addGroupProperty(ParticleItem::P_POSITION, Constants::VectorType);
     PositionTranslator position_translator;
diff --git a/GUI/coregui/Models/ParticleDistributionItem.cpp b/GUI/coregui/Models/ParticleDistributionItem.cpp
index fa3f381c10ea56e308654d219bc5653e5b512820..2cfc0b0ad7b4eb6f0189605287378f27dbfdf011 100644
--- a/GUI/coregui/Models/ParticleDistributionItem.cpp
+++ b/GUI/coregui/Models/ParticleDistributionItem.cpp
@@ -35,7 +35,7 @@ ParticleDistributionItem::ParticleDistributionItem()
     : SessionGraphicsItem(Constants::ParticleDistributionType)
 {
     addProperty(ParticleItem::P_ABUNDANCE, 1.0);
-    getItem(ParticleItem::P_ABUNDANCE)->setLimits(Limits::limited(0.0, 1.0));
+    getItem(ParticleItem::P_ABUNDANCE)->setLimits(RealLimits::limited(0.0, 1.0));
     getItem(ParticleItem::P_ABUNDANCE)->setDecimals(3);
 
     addGroupProperty(P_DISTRIBUTION, Constants::DistributionGroup);
diff --git a/GUI/coregui/Models/ParticleItem.cpp b/GUI/coregui/Models/ParticleItem.cpp
index 628676eb0844ded26734311f50a6d11e89691e9a..5d1d80d301206a41c8ea08242cc190276ee1341f 100644
--- a/GUI/coregui/Models/ParticleItem.cpp
+++ b/GUI/coregui/Models/ParticleItem.cpp
@@ -36,7 +36,7 @@ ParticleItem::ParticleItem()
     addGroupProperty(P_FORM_FACTOR, Constants::FormFactorGroup);
     addProperty(P_MATERIAL,
                      MaterialUtils::getDefaultMaterialProperty().getVariant());
-    addProperty(P_ABUNDANCE, 1.0)->setLimits(Limits::limited(0.0, 1.0));
+    addProperty(P_ABUNDANCE, 1.0)->setLimits(RealLimits::limited(0.0, 1.0));
     getItem(P_ABUNDANCE)->setDecimals(3);
     addGroupProperty(P_POSITION, Constants::VectorType);
     PositionTranslator position_translator;
diff --git a/GUI/coregui/Models/PropertyAttribute.cpp b/GUI/coregui/Models/PropertyAttribute.cpp
index ceedc98c4bd37ba8b846e408ad71e83a263c9033..0f520e8d2d666276d758ac6d740343babd27f5bd 100644
--- a/GUI/coregui/Models/PropertyAttribute.cpp
+++ b/GUI/coregui/Models/PropertyAttribute.cpp
@@ -19,7 +19,7 @@
 #include "tooltipdatabase.h"
 
 PropertyAttribute::PropertyAttribute(PropertyAttribute::Appearance appearance,
-                                     const Limits &limits, int decimals, const QString &label,
+                                     const RealLimits &limits, int decimals, const QString &label,
                                      const QString &tooltip)
     : m_appearance(appearance)
     , m_limits(limits)
@@ -30,7 +30,7 @@ PropertyAttribute::PropertyAttribute(PropertyAttribute::Appearance appearance,
 
 }
 
-PropertyAttribute::PropertyAttribute(const Limits &limits, int decimals)
+PropertyAttribute::PropertyAttribute(const RealLimits &limits, int decimals)
     : m_appearance(VISIBLE)
     , m_limits(limits)
     , m_decimals(decimals)
@@ -40,7 +40,7 @@ PropertyAttribute::PropertyAttribute(const Limits &limits, int decimals)
 
 PropertyAttribute PropertyAttribute::labeled(const QString &label)
 {
-    return PropertyAttribute(VISIBLE, Limits::lowerLimited(0.0), 2, label);
+    return PropertyAttribute(VISIBLE, RealLimits::lowerLimited(0.0), 2, label);
 }
 
 PropertyAttribute::Appearance PropertyAttribute::getAppearance() const
@@ -53,12 +53,12 @@ void PropertyAttribute::setAppearance(PropertyAttribute::Appearance appearance)
     m_appearance = appearance;
 }
 
-Limits PropertyAttribute::getLimits() const
+RealLimits PropertyAttribute::getLimits() const
 {
     return m_limits;
 }
 
-PropertyAttribute& PropertyAttribute::setLimits(const Limits &limits)
+PropertyAttribute& PropertyAttribute::setLimits(const RealLimits &limits)
 {
     m_limits = limits;
     return *this;
@@ -66,25 +66,25 @@ PropertyAttribute& PropertyAttribute::setLimits(const Limits &limits)
 
 PropertyAttribute &PropertyAttribute::lowerLimited(double value)
 {
-    m_limits = Limits::lowerLimited(value);
+    m_limits = RealLimits::lowerLimited(value);
     return *this;
 }
 
 PropertyAttribute &PropertyAttribute::upperLimited(double value)
 {
-    m_limits = Limits::upperLimited(value);
+    m_limits = RealLimits::upperLimited(value);
     return *this;
 }
 
 PropertyAttribute &PropertyAttribute::limited(double left_bound_value, double right_bound_value)
 {
-    m_limits = Limits::limited(left_bound_value, right_bound_value);
+    m_limits = RealLimits::limited(left_bound_value, right_bound_value);
     return *this;
 }
 
 PropertyAttribute &PropertyAttribute::limitless()
 {
-    m_limits = Limits::limitless();
+    m_limits = RealLimits::limitless();
     return *this;
 }
 
diff --git a/GUI/coregui/Models/PropertyAttribute.h b/GUI/coregui/Models/PropertyAttribute.h
index d740bbc717beead1f8e428ea1b260b0bf8002ce4..d0cf5ad1f4ade4c6f123898f03845159080b544f 100644
--- a/GUI/coregui/Models/PropertyAttribute.h
+++ b/GUI/coregui/Models/PropertyAttribute.h
@@ -18,7 +18,7 @@
 #define PROPERTYATTRIBUTE_H
 
 
-#include "Limits.h"
+#include "RealLimits.h"
 #include <QMetaType>
 #include <QString>
 
@@ -38,19 +38,19 @@ public:
     Q_DECLARE_FLAGS(Appearance, EAppearance)
 
     PropertyAttribute(Appearance appearance = VISIBLE,
-                      const Limits &limits = Limits::lowerLimited(0.0),
+                      const RealLimits &limits = RealLimits::lowerLimited(0.0),
                       int decimals = 2, const QString &label = QString(),
                       const QString &tooltip = QString());
 
-    PropertyAttribute(const Limits &limits, int decimals=2);
+    PropertyAttribute(const RealLimits &limits, int decimals=2);
 
     static PropertyAttribute labeled(const QString &label);
 
     Appearance getAppearance() const;
     void setAppearance(PropertyAttribute::Appearance appearance);
 
-    Limits getLimits() const;
-    PropertyAttribute& setLimits(const Limits &limits);
+    RealLimits getLimits() const;
+    PropertyAttribute& setLimits(const RealLimits &limits);
     PropertyAttribute& lowerLimited(double value);
     PropertyAttribute& upperLimited(double value);
     PropertyAttribute& limited(double left_bound_value, double right_bound_value);
@@ -82,7 +82,7 @@ public:
 
 private:
     Appearance m_appearance;
-    Limits m_limits;
+    RealLimits m_limits;
     int m_decimals; // number of digits
     QString m_label;
     QString m_tooltip;
diff --git a/GUI/coregui/Models/ResolutionFunctionItems.cpp b/GUI/coregui/Models/ResolutionFunctionItems.cpp
index adab412f0cc1b91f1df1da77dd500407daeac5ca..4281b72ad53baab6d7e578ebbab0a159dab0647f 100644
--- a/GUI/coregui/Models/ResolutionFunctionItems.cpp
+++ b/GUI/coregui/Models/ResolutionFunctionItems.cpp
@@ -43,10 +43,10 @@ ResolutionFunction2DGaussianItem::ResolutionFunction2DGaussianItem()
     : ResolutionFunctionItem(Constants::ResolutionFunction2DGaussianType)
 {
     addProperty(P_SIGMA_X, 0.02);
-    getItem(P_SIGMA_X)->setLimits(Limits::lowerLimited(0.0));
+    getItem(P_SIGMA_X)->setLimits(RealLimits::lowerLimited(0.0));
     getItem(P_SIGMA_X)->setDecimals(3);
     addProperty(P_SIGMA_Y, 0.02);
-    getItem(P_SIGMA_Y)->setLimits(Limits::lowerLimited(0.0));
+    getItem(P_SIGMA_Y)->setLimits(RealLimits::lowerLimited(0.0));
     getItem(P_SIGMA_Y)->setDecimals(3);
 }
 
diff --git a/GUI/coregui/Models/SessionItem.cpp b/GUI/coregui/Models/SessionItem.cpp
index a10fe4e62e9f8047ea000dc8f9282449af682ba4..21319bb7ed4dfb3ae1a01edae36ba30f2f64e233 100644
--- a/GUI/coregui/Models/SessionItem.cpp
+++ b/GUI/coregui/Models/SessionItem.cpp
@@ -46,7 +46,7 @@ SessionItem::SessionItem(const QString &modelType)
     setData(SessionModel::ModelTypeRole, modelType);
     setDisplayName(modelType);
     setDecimals(3);
-    setLimits(Limits::lowerLimited(0.0));
+    setLimits(RealLimits::lowerLimited(0.0));
 }
 
 //! Destructor deletes all its children and request parent to delete this item.
@@ -756,14 +756,14 @@ bool SessionItem::isEditable() const
 
 // more roles
 
-Limits SessionItem::limits() const
+RealLimits SessionItem::limits() const
 {
-    return data(SessionModel::LimitsRole).value<Limits>();
+    return data(SessionModel::LimitsRole).value<RealLimits>();
 }
 
-void SessionItem::setLimits(const Limits &value)
+void SessionItem::setLimits(const RealLimits &value)
 {
-    this->setData(SessionModel::LimitsRole, QVariant::fromValue<Limits>(value));
+    this->setData(SessionModel::LimitsRole, QVariant::fromValue<RealLimits>(value));
 }
 
 int SessionItem::decimals() const
diff --git a/GUI/coregui/Models/SessionItem.h b/GUI/coregui/Models/SessionItem.h
index a638ffbb22d2ba9d025d71b379fcae6a006e9f9c..09a7653a92b7cc4823f851c49742ae2d1c4792e1 100644
--- a/GUI/coregui/Models/SessionItem.h
+++ b/GUI/coregui/Models/SessionItem.h
@@ -17,13 +17,13 @@
 #ifndef SESSIONITEM_H
 #define SESSIONITEM_H
 
-#include "Limits.h"
+#include "RealLimits.h"
 #include "ModelMapper.h"
 #include "item_constants.h"
 #include <QStringList>
 #include <memory>
 
-Q_DECLARE_METATYPE(Limits)
+Q_DECLARE_METATYPE(RealLimits)
 
 class SessionItemData;
 
@@ -123,8 +123,8 @@ public:
     bool isEnabled() const;
     bool isEditable() const;
 
-    Limits limits() const;
-    void setLimits(const Limits &value);
+    RealLimits limits() const;
+    void setLimits(const RealLimits &value);
 
     int decimals() const;
     void setDecimals(int n);
diff --git a/GUI/coregui/Models/VectorItem.cpp b/GUI/coregui/Models/VectorItem.cpp
index e401fb1340685e02db14f01deaedd9330ae78f93..ca23e3a214e305f649ed4a820eb38b29d85f6457 100644
--- a/GUI/coregui/Models/VectorItem.cpp
+++ b/GUI/coregui/Models/VectorItem.cpp
@@ -23,9 +23,9 @@ const QString VectorItem::P_Z = "Z";
 VectorItem::VectorItem()
     : SessionItem(Constants::VectorType)
 {
-    addProperty(P_X, 0.0)->setLimits(Limits::limitless());
-    addProperty(P_Y, 0.0)->setLimits(Limits::limitless());
-    addProperty(P_Z, 0.0)->setLimits(Limits::limitless());
+    addProperty(P_X, 0.0)->setLimits(RealLimits::limitless());
+    addProperty(P_Y, 0.0)->setLimits(RealLimits::limitless());
+    addProperty(P_Z, 0.0)->setLimits(RealLimits::limitless());
 
     mapper()->setOnPropertyChange(
         [this](const QString &){
diff --git a/GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.cpp b/GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.cpp
index 851d9f629ae139ecb47dd115cf4dafd94dfa6fad..e7113a7fb481e6418f56875cf0f745294a7017d5 100644
--- a/GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.cpp
+++ b/GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.cpp
@@ -58,7 +58,7 @@ void ParameterTuningDelegate::SliderData::setRangeFactor(double range_factor)
     m_range_factor = range_factor;
 }
 
-void ParameterTuningDelegate::SliderData::setItemLimits(const Limits &item_limits)
+void ParameterTuningDelegate::SliderData::setItemLimits(const RealLimits &item_limits)
 {
     m_item_limits = item_limits;
 }
@@ -156,7 +156,7 @@ QWidget *ParameterTuningDelegate::createEditor(QWidget *parent,
         if(!m_currentItem)
             return nullptr;
 
-        Limits limits = m_currentItem->getLinkedItem()->limits();
+        RealLimits limits = m_currentItem->getLinkedItem()->limits();
 
         // initializing value box
         m_valueBox = new QDoubleSpinBox();
diff --git a/GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.h b/GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.h
index 50622d8157e0a029a6587ffad027d86d37e1e184..aa497d1ad5415d95adaceeb922e47503e5ad5cb4 100644
--- a/GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.h
+++ b/GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.h
@@ -17,7 +17,7 @@
 #ifndef PARAMETERTUNINGDELEGATE_H
 #define PARAMETERTUNINGDELEGATE_H
 
-#include "Limits.h"
+#include "RealLimits.h"
 #include <QItemDelegate>
 #include <memory>
 
@@ -35,7 +35,7 @@ public:
     public:
         SliderData();
         void setRangeFactor(double range_factor);
-        void setItemLimits(const Limits &item_limits);
+        void setItemLimits(const RealLimits &item_limits);
         int value_to_slider(double value);
         double slider_to_value(int slider);
         int m_smin;
@@ -43,7 +43,7 @@ public:
         double m_rmin;
         double m_rmax;
         double m_range_factor;
-        Limits m_item_limits;
+        RealLimits m_item_limits;
     };
 
 
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentEditorPrivate.cpp b/GUI/coregui/Views/PropertyEditor/ComponentEditorPrivate.cpp
index 02d7e3e87c9507897ddc5f9a3e77cb3b6c181d0b..abb834562d9041d9f106e878c6ab2f33d65c3544 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentEditorPrivate.cpp
+++ b/GUI/coregui/Views/PropertyEditor/ComponentEditorPrivate.cpp
@@ -220,7 +220,7 @@ void ComponentEditorPrivate::updatePropertyAppearance(QtVariantProperty *propert
     int type = GUIHelpers::getVariantType(prop_value);
 
     if (type == QVariant::Double) {
-        Limits limits = attribute.getLimits();
+        RealLimits limits = attribute.getLimits();
         if (limits.hasLowerLimit())
             property->setAttribute(QStringLiteral("minimum"), limits.getLowerLimit());
         if (limits.hasUpperLimit())
@@ -229,7 +229,7 @@ void ComponentEditorPrivate::updatePropertyAppearance(QtVariantProperty *propert
         property->setAttribute(QStringLiteral("singleStep"),
                                1. / std::pow(10., attribute.getDecimals() - 1));
     } else if (type == QVariant::Int) {
-        Limits limits = attribute.getLimits();
+        RealLimits limits = attribute.getLimits();
         if (limits.hasLowerLimit())
             property->setAttribute(QStringLiteral("minimum"), int(limits.getLowerLimit()));
         if (limits.hasUpperLimit())
diff --git a/GUI/coregui/utils/GUIHelpers.cpp b/GUI/coregui/utils/GUIHelpers.cpp
index 0391cc1f4e00140030556770e866d1afd9d56b1e..8061c7fb411cf0847e9f183e9216ebc4c3cd30b1 100644
--- a/GUI/coregui/utils/GUIHelpers.cpp
+++ b/GUI/coregui/utils/GUIHelpers.cpp
@@ -14,6 +14,7 @@
 //
 // ************************************************************************** //
 
+#include "GUIHelpers.h"
 #include "BAVersion.h"
 #include "JobItem.h"
 #include "RealDataItem.h"
@@ -23,8 +24,6 @@
 #include <QMessageBox>
 #include <QPushButton>
 
-namespace GUIHelpers {
-
 namespace {
 QMap<QString, QString> initializeCharacterMap()
 {
@@ -40,8 +39,9 @@ QMap<QString, QString> initializeCharacterMap()
 }
 
 const QMap<QString, QString> invalidCharacterMap = initializeCharacterMap();
+}  // Anonymous namespace
 
-}
+namespace GUIHelpers {
 
 void information(QWidget *parent, const QString &title, const QString &text, const QString &detailedText)
 {
diff --git a/Tests/Functional/Fit/ExperimentalFitTest.cpp b/Tests/Functional/Fit/ExperimentalFitTest.cpp
index 7018ae97861fae54221df0f4c3b54925fc35e428..a00435024a05aebfc3729f7cd244b534b96fbf1b 100644
--- a/Tests/Functional/Fit/ExperimentalFitTest.cpp
+++ b/Tests/Functional/Fit/ExperimentalFitTest.cpp
@@ -29,6 +29,6 @@ std::unique_ptr<FitSuite> ExperimentalFitTest::createFitSuite()
     for (const auto& par: m_parameters)
         result->addFitParameter(
             par.m_name, par.m_start_value,
-            Limits::lowerLimited(0.01), Attributes::free(), par.m_start_value/100.);
+            RealLimits::lowerLimited(0.01), Attributes::free(), par.m_start_value/100.);
     return result;
 }
diff --git a/Tests/Functional/Fit/IMinimizerTest.cpp b/Tests/Functional/Fit/IMinimizerTest.cpp
index 31532425800f46313816554af7cf61e28b5024ba..afb6f3d7f9046fddaba2f21500d9b8b0f342b160 100644
--- a/Tests/Functional/Fit/IMinimizerTest.cpp
+++ b/Tests/Functional/Fit/IMinimizerTest.cpp
@@ -93,7 +93,7 @@ std::unique_ptr<FitSuite> IMinimizerTest::createFitSuite()
     for (size_t i = 0; i < m_parameters.size(); ++i)
         result->addFitParameter(
             m_parameters[i].m_name, m_parameters[i].m_start_value,
-            Limits::lowerLimited(0.01), Attributes::free(), m_parameters[i].m_start_value / 100.);
+            RealLimits::lowerLimited(0.01), Attributes::free(), m_parameters[i].m_start_value / 100.);
     return result;
 }
 
diff --git a/Tests/Functional/Fit/MinimizerTests.cpp b/Tests/Functional/Fit/MinimizerTests.cpp
index fca43a3ddbaa67c5243b6bd7f52ec9c18238a043..0f09cfe5a1ee09979986661c5bd9eac25ad72ac9 100644
--- a/Tests/Functional/Fit/MinimizerTests.cpp
+++ b/Tests/Functional/Fit/MinimizerTests.cpp
@@ -60,7 +60,7 @@ std::unique_ptr<FitSuite> GSLSimulatedAnnealingTest::createFitSuite()
     for (const auto& par: m_parameters)
         result->addFitParameter(
             par.m_name, par.m_start_value,
-            Limits::limited(4.0, 6.0), Attributes::free(), par.m_start_value/100.);
+            RealLimits::limited(4.0, 6.0), Attributes::free(), par.m_start_value/100.);
     return result;
 }
 
@@ -82,6 +82,6 @@ std::unique_ptr<FitSuite> GeneticTest::createFitSuite()
     for (const auto& par: m_parameters)
         result->addFitParameter(
             par.m_name, par.m_start_value,
-            Limits::limited(4.0, 6.0), Attributes::free(), par.m_start_value/100.);
+            RealLimits::limited(4.0, 6.0), Attributes::free(), par.m_start_value/100.);
     return result;
 }
diff --git a/Tests/Functional/PyCore/persistence/CMakeLists.txt b/Tests/Functional/PyCore/persistence/CMakeLists.txt
index 0a9d3cec636e91354547eebdb518d9719ba36bad..de7c1e02e95948fcede567e98c575334b13478cf 100644
--- a/Tests/Functional/PyCore/persistence/CMakeLists.txt
+++ b/Tests/Functional/PyCore/persistence/CMakeLists.txt
@@ -1,5 +1,5 @@
 ############################################################################
-# Tests/Functional/PyCore/presistence/CMakeLists.txt
+# Tests/Functional/PyCore/persistence/CMakeLists.txt
 ############################################################################
 
 set(PYPERSIST_REF_DIR ${REFERENCE_DIR}/PyPersist)
@@ -15,15 +15,17 @@ file(GLOB PY_EXAMPLES
     "${PY_EXAMPLES_DIR}/fitting/ex02*/FitCylindersPrisms_detailed.py"
     )
 
-# for some reason these flags doesn't propagated here by SetUpWindows.cmake
+# for some reason these flags aren't propagated here by SetUpWindows.cmake
 if(MSVC)
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc ")
     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /EHsc ")
+	add_definitions(-DYAML_CPP_DLL)
 endif()
 
 include_directories(
     ${BornAgainCore_INCLUDE_DIRS}
     ${EIGEN3_INCLUDE_DIR}
+    ${YAMLCPP_INCLUDE_DIR}
     ${CMAKE_SOURCE_DIR}/Core/Simulation
     ${CMAKE_CURRENT_SOURCE_DIR}/../../TestMachinery
 )
diff --git a/Tests/Functional/PyFit/testfit_UsingBuilder.py b/Tests/Functional/PyFit/testfit_UsingBuilder.py
index 791bf821dbb0dc7809c4ce37ff1f1c293e72ec99..8788597b6acf9a1dbcce86e2c73eae03092f7f0c 100644
--- a/Tests/Functional/PyFit/testfit_UsingBuilder.py
+++ b/Tests/Functional/PyFit/testfit_UsingBuilder.py
@@ -48,15 +48,15 @@ def runTest():
     fitSuite.setMinimizer("Minuit2", "Combined")
     fitSuite.initPrint(10)
     fitSuite.addFitParameter(
-        "*SampleBuilder/cylinder_height",  4*nanometer,  Limits.lowerLimited(0.01) )
+        "*SampleBuilder/cylinder_height",  4*nanometer,  RealLimits.lowerLimited(0.01) )
     fitSuite.addFitParameter(
-        "*SampleBuilder/cylinder_radius",  6*nanometer,  Limits.lowerLimited(0.01) )
+        "*SampleBuilder/cylinder_radius",  6*nanometer,  RealLimits.lowerLimited(0.01) )
     fitSuite.addFitParameter(
-        "*SampleBuilder/prism3_half_side", 4*nanometer,  Limits.lowerLimited(0.01) )
+        "*SampleBuilder/prism3_half_side", 4*nanometer,  RealLimits.lowerLimited(0.01) )
     fitSuite.addFitParameter(
-        "*SampleBuilder/prism3_height",    6*nanometer,  Limits.lowerLimited(0.01) )
+        "*SampleBuilder/prism3_height",    6*nanometer,  RealLimits.lowerLimited(0.01) )
     fitSuite.addFitParameter(
-        "*SampleBuilder/cylinder_ratio", 0.2, Limits.limitless(), Attributes.fixed())
+        "*SampleBuilder/cylinder_ratio", 0.2, RealLimits.limitless(), Attributes.fixed())
 
     # chiModule = ChiSquaredModule()
     # chiModule.setChiSquaredFunction( SquaredFunctionMeanSquaredError() )
diff --git a/Tests/Functional/TestMachinery/IReferencedTest.h b/Tests/Functional/TestMachinery/IReferencedTest.h
index 26d1b899a0ff6c17489794eff19adcf175b56f30..bf59e9f411412f5f8582edd57e59f37fc789440a 100644
--- a/Tests/Functional/TestMachinery/IReferencedTest.h
+++ b/Tests/Functional/TestMachinery/IReferencedTest.h
@@ -24,7 +24,7 @@
 //! Base class for tests that compare results with reference data.
 //! @ingroup standard_samples
 
-class IReferencedTest : public IFunctionalTest
+class BA_CORE_API_ IReferencedTest : public IFunctionalTest
 {
 public:
     IReferencedTest();
diff --git a/Tests/Functional/TestMachinery/IStandardTest.h b/Tests/Functional/TestMachinery/IStandardTest.h
index cfdc51e258ad86e7a72f187ef12e8dd531c34ec8..5d0bab14278b7dbc9c824ebbc6a326b535cc7704 100644
--- a/Tests/Functional/TestMachinery/IStandardTest.h
+++ b/Tests/Functional/TestMachinery/IStandardTest.h
@@ -53,7 +53,7 @@ class IParameterized;
 //!   test->analyseResults() // implemented in FooTest
 //!   test->getTestResult()  // implemented in IFunctionalTest
 
-class IStandardTest : public INamed
+class BA_CORE_API_ IStandardTest : public INamed
 {
 public:
     IStandardTest(const std::string& name) : INamed(name) {}
diff --git a/Tests/UnitTests/Core/4/LimitsTest.h b/Tests/UnitTests/Core/4/LimitsTest.h
index 72955e1f29c7910193961859a802dc76a8d4d5ec..f3de8d1968b5d04b67345943e693f374b1992733 100644
--- a/Tests/UnitTests/Core/4/LimitsTest.h
+++ b/Tests/UnitTests/Core/4/LimitsTest.h
@@ -1,7 +1,7 @@
 #ifndef LIMITSTEST_H
 #define LIMITSTEST_H
 
-#include "Limits.h"
+#include "RealLimits.h"
 #include <limits>
 
 
@@ -16,7 +16,7 @@ class LimitsTest : public ::testing::Test
 
 TEST_F(LimitsTest, LimitsInitial)
 {
-    Limits limits;
+    RealLimits limits;
 
     EXPECT_FALSE(limits.hasLowerLimit());
     EXPECT_FALSE(limits.hasUpperLimit());
@@ -25,7 +25,7 @@ TEST_F(LimitsTest, LimitsInitial)
 
 TEST_F(LimitsTest, LimitsSetLimit)
 {
-    Limits limits;
+    RealLimits limits;
 
     //set limit [-1.0, 10.0[
     limits.setLimits(-1.0,10.0);
@@ -97,7 +97,7 @@ TEST_F(LimitsTest, LimitsSetLimit)
 
 TEST_F(LimitsTest, LimitsLowerLimited)
 {
-    Limits limits = Limits::lowerLimited(5.0);
+    RealLimits limits = RealLimits::lowerLimited(5.0);
     EXPECT_TRUE(limits.hasLowerLimit());
     EXPECT_FALSE(limits.hasUpperLimit());
     EXPECT_FALSE(limits.hasLowerAndUpperLimits());
@@ -108,7 +108,7 @@ TEST_F(LimitsTest, LimitsLowerLimited)
 
 TEST_F(LimitsTest, LimitsUpperLimited)
 {
-    Limits limits = Limits::upperLimited(5.0);
+    RealLimits limits = RealLimits::upperLimited(5.0);
     EXPECT_FALSE(limits.hasLowerLimit());
     EXPECT_TRUE(limits.hasUpperLimit());
     EXPECT_FALSE(limits.hasLowerAndUpperLimits());
@@ -119,7 +119,7 @@ TEST_F(LimitsTest, LimitsUpperLimited)
 
 TEST_F(LimitsTest, LimitsLimited)
 {
-    Limits limits = Limits::limited(-10.0, 2.0);
+    RealLimits limits = RealLimits::limited(-10.0, 2.0);
     EXPECT_TRUE(limits.hasLowerLimit());
     EXPECT_TRUE(limits.hasUpperLimit());
     EXPECT_TRUE(limits.hasLowerAndUpperLimits());
@@ -130,7 +130,7 @@ TEST_F(LimitsTest, LimitsLimited)
 
 TEST_F(LimitsTest, LimitsLimitless)
 {
-    Limits limits = Limits::limitless();
+    RealLimits limits = RealLimits::limitless();
 
     EXPECT_FALSE(limits.hasLowerLimit());
     EXPECT_FALSE(limits.hasUpperLimit());
@@ -139,35 +139,35 @@ TEST_F(LimitsTest, LimitsLimitless)
 
 TEST_F(LimitsTest, ComparisonOperators)
 {
-    Limits lim1 = Limits::limited(1.0, 2.0);
-    Limits lim2 = Limits::limited(1.0, 2.0);
+    RealLimits lim1 = RealLimits::limited(1.0, 2.0);
+    RealLimits lim2 = RealLimits::limited(1.0, 2.0);
     EXPECT_TRUE(lim1 == lim2);
     EXPECT_FALSE(lim1 != lim2);
 
-    Limits lim3 = Limits::limitless();
-    Limits lim4 = Limits::limitless();
+    RealLimits lim3 = RealLimits::limitless();
+    RealLimits lim4 = RealLimits::limitless();
     EXPECT_TRUE(lim3 == lim4);
     EXPECT_FALSE(lim3 != lim4);
 
-    Limits lim5 = Limits::lowerLimited(1.0);
-    Limits lim6 = Limits::lowerLimited(1.0);
+    RealLimits lim5 = RealLimits::lowerLimited(1.0);
+    RealLimits lim6 = RealLimits::lowerLimited(1.0);
     EXPECT_TRUE(lim5 == lim6);
     EXPECT_FALSE(lim5 != lim6);
 
-    Limits lim7 = Limits::upperLimited(1.0);
-    Limits lim8 = Limits::upperLimited(1.0);
+    RealLimits lim7 = RealLimits::upperLimited(1.0);
+    RealLimits lim8 = RealLimits::upperLimited(1.0);
     EXPECT_TRUE(lim7 == lim8);
     EXPECT_FALSE(lim7 != lim8);
 }
 
 TEST_F(LimitsTest, CopyConstructor)
 {
-    Limits lim1 = Limits::limited(1.0, 2.0);
-    Limits lim2 = lim1;
+    RealLimits lim1 = RealLimits::limited(1.0, 2.0);
+    RealLimits lim2 = lim1;
     EXPECT_TRUE(lim1 == lim2);
     EXPECT_FALSE(lim1 != lim2);
 
-    Limits lim3(lim1);
+    RealLimits lim3(lim1);
     EXPECT_TRUE(lim1 == lim3);
     EXPECT_FALSE(lim1 != lim3);
 }
diff --git a/Tests/UnitTests/Core/5/DistributionsTest.h b/Tests/UnitTests/Core/5/DistributionsTest.h
index 9d2996c9ca2791166a7ef68563b0cec079f6366d..89f02ca1c48f8e88d6d29e9f48c3c5afbb827188 100644
--- a/Tests/UnitTests/Core/5/DistributionsTest.h
+++ b/Tests/UnitTests/Core/5/DistributionsTest.h
@@ -178,7 +178,7 @@ TEST_F(DistributionsTest, DistributionLorentzSamples)
     EXPECT_EQ(samples[2].weight, d3/(d1+d2+d3));
 
     // with Limits
-    samples = distr.generateSamples(nbr_samples, sigma_factor, Limits::lowerLimited(0.99));
+    samples = distr.generateSamples(nbr_samples, sigma_factor, RealLimits::lowerLimited(0.99));
     EXPECT_EQ(samples[0].value, 0.99);
     EXPECT_EQ(samples[1].value, samples[0].value + (samples[2].value - samples[0].value)/2.0);
     EXPECT_EQ(samples[2].value, 1.0 + sigma_factor*0.1);
diff --git a/Tests/UnitTests/Core/5/ParameterDistributionTest.h b/Tests/UnitTests/Core/5/ParameterDistributionTest.h
index 29b78bc92615ab8542494ece50378ba4581f5184..c09cc5fac97719274f319785402b67a11e8cb9b5 100644
--- a/Tests/UnitTests/Core/5/ParameterDistributionTest.h
+++ b/Tests/UnitTests/Core/5/ParameterDistributionTest.h
@@ -33,15 +33,15 @@ TEST_F(ParameterDistributionTest, ParameterDistributionConstructor)
     EXPECT_EQ(name, pardistr.getMainParameterName());
     EXPECT_EQ(size_t(1), pardistr.getNbrSamples());
     EXPECT_EQ(0.0, pardistr.getSigmaFactor());
-    EXPECT_EQ(Limits(), pardistr.getLimits());
+    EXPECT_EQ(RealLimits(), pardistr.getLimits());
     EXPECT_EQ(pardistr.getLinkedParameterNames().size(), size_t(0));
     EXPECT_EQ(1.0, pardistr.getMinValue());
     EXPECT_EQ(-1.0, pardistr.getMaxValue());
 
-    ParameterDistribution pardistr2(name, distribution, 5, 2.0, Limits::limited(1.0, 2.0));
+    ParameterDistribution pardistr2(name, distribution, 5, 2.0, RealLimits::limited(1.0, 2.0));
     EXPECT_EQ(size_t(5), pardistr2.getNbrSamples());
     EXPECT_EQ(2.0, pardistr2.getSigmaFactor());
-    EXPECT_EQ(Limits::limited(1.0, 2.0), pardistr2.getLimits());
+    EXPECT_EQ(RealLimits::limited(1.0, 2.0), pardistr2.getLimits());
 
     // xmin, xmax constructor
     ParameterDistribution pardistr3(name, distribution, 5, 1.0, 2.0);
@@ -52,7 +52,7 @@ TEST_F(ParameterDistributionTest, ParameterDistributionConstructor)
     EXPECT_EQ(name, pardistr3.getMainParameterName());
     EXPECT_EQ(size_t(5), pardistr3.getNbrSamples());
     EXPECT_EQ(0.0, pardistr3.getSigmaFactor());
-    EXPECT_EQ(Limits(), pardistr3.getLimits());
+    EXPECT_EQ(RealLimits(), pardistr3.getLimits());
     EXPECT_EQ(pardistr3.getLinkedParameterNames().size(), size_t(0));
 }
 
@@ -60,7 +60,7 @@ TEST_F(ParameterDistributionTest, ParameterDistributionCopyConstructor)
 {
     DistributionGate distribution(1.0, 2.0);
     std::string name = "MainParameterName";
-    ParameterDistribution pardistr(name, distribution, 5, 2.0, Limits::limited(1.0, 2.0));
+    ParameterDistribution pardistr(name, distribution, 5, 2.0, RealLimits::limited(1.0, 2.0));
     pardistr.linkParameter("link1").linkParameter("link2");
 
     ParameterDistribution pcopy(pardistr);
@@ -84,7 +84,7 @@ TEST_F(ParameterDistributionTest, ParameterDistributionAssignment)
 {
     DistributionGate distribution(1.0, 2.0);
     std::string name = "MainParameterName";
-    ParameterDistribution pardistr(name, distribution, 5, 2.0, Limits::limited(1.0, 2.0));
+    ParameterDistribution pardistr(name, distribution, 5, 2.0, RealLimits::limited(1.0, 2.0));
     pardistr.linkParameter("link1").linkParameter("link2");
 
     ParameterDistribution pcopy = pardistr;
@@ -123,7 +123,7 @@ TEST_F(ParameterDistributionTest, GenerateSamples)
     EXPECT_EQ(sample_values[2].value, mean+sigma_factor*sigma);
 
     // with Limits
-    ParameterDistribution pardistr2(name, distribution, nbr_samples, sigma_factor, Limits::lowerLimited(mean));
+    ParameterDistribution pardistr2(name, distribution, nbr_samples, sigma_factor, RealLimits::lowerLimited(mean));
     sample_values = pardistr2.generateSamples();
     EXPECT_EQ(sample_values.size(), size_t(3));
     EXPECT_EQ(sample_values[0].value, mean);
diff --git a/Tests/UnitTests/Fit/0/FitParameterLinkedTest.h b/Tests/UnitTests/Fit/0/FitParameterLinkedTest.h
index f7140bb7ef72d60f933e683196ef04bbc822d24a..77ebe1b7db7ea1c1ba8a06596e499bb3f73fcccf 100644
--- a/Tests/UnitTests/Fit/0/FitParameterLinkedTest.h
+++ b/Tests/UnitTests/Fit/0/FitParameterLinkedTest.h
@@ -32,7 +32,7 @@ TEST_F(FitParameterLinkedTest, FitParameterLinkedInitial)
 
 TEST_F(FitParameterLinkedTest, FitParameterLinkedWithValue)
 {
-    Limits limits = Limits::limited(-10.0, 2.0);
+    RealLimits limits = RealLimits::limited(-10.0, 2.0);
 
     FitParameterLinked fitParameter("FitPL", 2.0, 0.2, limits, Attributes::free(), 0.01);
 
diff --git a/Tests/UnitTests/Fit/0/FitParameterTest.h b/Tests/UnitTests/Fit/0/FitParameterTest.h
index a4cb5187b17925a106d5dd374490e36edc01c60a..31b4c09593cb0b919865fe6d9fa38b3a73025ac8 100644
--- a/Tests/UnitTests/Fit/0/FitParameterTest.h
+++ b/Tests/UnitTests/Fit/0/FitParameterTest.h
@@ -42,7 +42,7 @@ TEST_F(FitParameterTest, FitParameterSetValue)
 
 TEST_F(FitParameterTest, FitParameterWithValue)
 {
-    Limits limits = Limits::limited(-10.0, 2.0);
+    RealLimits limits = RealLimits::limited(-10.0, 2.0);
 
     FitParameter fitParameter("FitP", 2.0, 0.2, limits, Attributes::free(), 0.01);
 
diff --git a/Wrap/swig/libBornAgainCore.i b/Wrap/swig/libBornAgainCore.i
index 46d269a8363475cbc3009f4b37ee6f8736107154..f0a1700a6122de61c2e15d1dad075207e5794624 100644
--- a/Wrap/swig/libBornAgainCore.i
+++ b/Wrap/swig/libBornAgainCore.i
@@ -237,7 +237,7 @@
 // Note that the order matters, as base classes must be included before derived classes.
 
 %import(module="libBornAgainFit") "Attributes.h"
-%import(module="libBornAgainFit") "Limits.h"
+%import(module="libBornAgainFit") "RealLimits.h"
 
 %include "BAVersion.h"
 %include "BasicVector3D.h"
diff --git a/Wrap/swig/libBornAgainFit.i b/Wrap/swig/libBornAgainFit.i
index 13f389fca13250648adb7e88bfef72b3bac0d395..11f86adb78f5643939a099e897da30c603aad3dc 100644
--- a/Wrap/swig/libBornAgainFit.i
+++ b/Wrap/swig/libBornAgainFit.i
@@ -77,7 +77,7 @@ import_array();
 // Note that the order matters, as base classes must be included before derived classes.
 
 %include "Attributes.h"
-%include "Limits.h"
+%include "RealLimits.h"
 
 %include "Configurable.h"
 %include "IMinimizer.h"
diff --git a/auto/Wrap/libBornAgainCore.py b/auto/Wrap/libBornAgainCore.py
index 3fb00b2cfd4c7fbe35dbd047e005aa4680aec8cb..cfbd61bee051027cce460f4435d898714651b5b7 100644
--- a/auto/Wrap/libBornAgainCore.py
+++ b/auto/Wrap/libBornAgainCore.py
@@ -1,5 +1,5 @@
 # This file was automatically generated by SWIG (http://www.swig.org).
-# Version 3.0.7
+# Version 3.0.8
 #
 # Do not make changes to this file unless you know what you are doing--modify
 # the SWIG interface file instead.
@@ -77,7 +77,7 @@ def _swig_getattr(self, class_type, name):
 def _swig_repr(self):
     try:
         strthis = "proxy of " + self.this.__repr__()
-    except:
+    except Exception:
         strthis = ""
     return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
 
@@ -93,12 +93,13 @@ except AttributeError:
 try:
     import weakref
     weakref_proxy = weakref.proxy
-except:
+except Exception:
     weakref_proxy = lambda x: x
 
 
 class SwigPyIterator(_object):
-    """Proxy of C++ swig::SwigPyIterator class"""
+    """Proxy of C++ swig::SwigPyIterator class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, SwigPyIterator, name, value)
     __swig_getmethods__ = {}
@@ -207,7 +208,8 @@ SwigPyIterator_swigregister(SwigPyIterator)
 _libBornAgainCore.SHARED_PTR_DISOWN_swigconstant(_libBornAgainCore)
 SHARED_PTR_DISOWN = _libBornAgainCore.SHARED_PTR_DISOWN
 class vdouble1d_t(_object):
-    """Proxy of C++ std::vector<(double)> class"""
+    """Proxy of C++ std::vector<(double)> class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, vdouble1d_t, name, value)
     __swig_getmethods__ = {}
@@ -236,11 +238,6 @@ class vdouble1d_t(_object):
         return _libBornAgainCore.vdouble1d_t___len__(self)
 
 
-    def pop(self):
-        """pop(vdouble1d_t self) -> std::vector< double >::value_type"""
-        return _libBornAgainCore.vdouble1d_t_pop(self)
-
-
     def __getslice__(self, i, j):
         """__getslice__(vdouble1d_t self, std::vector< double >::difference_type i, std::vector< double >::difference_type j) -> vdouble1d_t"""
         return _libBornAgainCore.vdouble1d_t___getslice__(self, i, j)
@@ -248,8 +245,8 @@ class vdouble1d_t(_object):
 
     def __setslice__(self, *args):
         """
-        __setslice__(vdouble1d_t self, std::vector< double >::difference_type i, std::vector< double >::difference_type j, vdouble1d_t v)
         __setslice__(vdouble1d_t self, std::vector< double >::difference_type i, std::vector< double >::difference_type j)
+        __setslice__(vdouble1d_t self, std::vector< double >::difference_type i, std::vector< double >::difference_type j, vdouble1d_t v)
         """
         return _libBornAgainCore.vdouble1d_t___setslice__(self, *args)
 
@@ -284,6 +281,11 @@ class vdouble1d_t(_object):
         return _libBornAgainCore.vdouble1d_t___setitem__(self, *args)
 
 
+    def pop(self):
+        """pop(vdouble1d_t self) -> std::vector< double >::value_type"""
+        return _libBornAgainCore.vdouble1d_t_pop(self)
+
+
     def append(self, x):
         """append(vdouble1d_t self, std::vector< double >::value_type const & x)"""
         return _libBornAgainCore.vdouble1d_t_append(self, x)
@@ -299,21 +301,11 @@ class vdouble1d_t(_object):
         return _libBornAgainCore.vdouble1d_t_size(self)
 
 
-    def clear(self):
-        """clear(vdouble1d_t self)"""
-        return _libBornAgainCore.vdouble1d_t_clear(self)
-
-
     def swap(self, v):
         """swap(vdouble1d_t self, vdouble1d_t v)"""
         return _libBornAgainCore.vdouble1d_t_swap(self, v)
 
 
-    def get_allocator(self):
-        """get_allocator(vdouble1d_t self) -> std::vector< double >::allocator_type"""
-        return _libBornAgainCore.vdouble1d_t_get_allocator(self)
-
-
     def begin(self):
         """begin(vdouble1d_t self) -> std::vector< double >::iterator"""
         return _libBornAgainCore.vdouble1d_t_begin(self)
@@ -334,6 +326,16 @@ class vdouble1d_t(_object):
         return _libBornAgainCore.vdouble1d_t_rend(self)
 
 
+    def clear(self):
+        """clear(vdouble1d_t self)"""
+        return _libBornAgainCore.vdouble1d_t_clear(self)
+
+
+    def get_allocator(self):
+        """get_allocator(vdouble1d_t self) -> std::vector< double >::allocator_type"""
+        return _libBornAgainCore.vdouble1d_t_get_allocator(self)
+
+
     def pop_back(self):
         """pop_back(vdouble1d_t self)"""
         return _libBornAgainCore.vdouble1d_t_pop_back(self)
@@ -357,7 +359,7 @@ class vdouble1d_t(_object):
         this = _libBornAgainCore.new_vdouble1d_t(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def push_back(self, x):
@@ -411,7 +413,8 @@ vdouble1d_t_swigregister = _libBornAgainCore.vdouble1d_t_swigregister
 vdouble1d_t_swigregister(vdouble1d_t)
 
 class vdouble2d_t(_object):
-    """Proxy of C++ std::vector<(std::vector<(double)>)> class"""
+    """Proxy of C++ std::vector<(std::vector<(double)>)> class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, vdouble2d_t, name, value)
     __swig_getmethods__ = {}
@@ -440,11 +443,6 @@ class vdouble2d_t(_object):
         return _libBornAgainCore.vdouble2d_t___len__(self)
 
 
-    def pop(self):
-        """pop(vdouble2d_t self) -> vdouble1d_t"""
-        return _libBornAgainCore.vdouble2d_t_pop(self)
-
-
     def __getslice__(self, i, j):
         """__getslice__(vdouble2d_t self, std::vector< std::vector< double > >::difference_type i, std::vector< std::vector< double > >::difference_type j) -> vdouble2d_t"""
         return _libBornAgainCore.vdouble2d_t___getslice__(self, i, j)
@@ -452,8 +450,8 @@ class vdouble2d_t(_object):
 
     def __setslice__(self, *args):
         """
-        __setslice__(vdouble2d_t self, std::vector< std::vector< double > >::difference_type i, std::vector< std::vector< double > >::difference_type j, vdouble2d_t v)
         __setslice__(vdouble2d_t self, std::vector< std::vector< double > >::difference_type i, std::vector< std::vector< double > >::difference_type j)
+        __setslice__(vdouble2d_t self, std::vector< std::vector< double > >::difference_type i, std::vector< std::vector< double > >::difference_type j, vdouble2d_t v)
         """
         return _libBornAgainCore.vdouble2d_t___setslice__(self, *args)
 
@@ -488,6 +486,11 @@ class vdouble2d_t(_object):
         return _libBornAgainCore.vdouble2d_t___setitem__(self, *args)
 
 
+    def pop(self):
+        """pop(vdouble2d_t self) -> vdouble1d_t"""
+        return _libBornAgainCore.vdouble2d_t_pop(self)
+
+
     def append(self, x):
         """append(vdouble2d_t self, vdouble1d_t x)"""
         return _libBornAgainCore.vdouble2d_t_append(self, x)
@@ -503,21 +506,11 @@ class vdouble2d_t(_object):
         return _libBornAgainCore.vdouble2d_t_size(self)
 
 
-    def clear(self):
-        """clear(vdouble2d_t self)"""
-        return _libBornAgainCore.vdouble2d_t_clear(self)
-
-
     def swap(self, v):
         """swap(vdouble2d_t self, vdouble2d_t v)"""
         return _libBornAgainCore.vdouble2d_t_swap(self, v)
 
 
-    def get_allocator(self):
-        """get_allocator(vdouble2d_t self) -> std::vector< std::vector< double > >::allocator_type"""
-        return _libBornAgainCore.vdouble2d_t_get_allocator(self)
-
-
     def begin(self):
         """begin(vdouble2d_t self) -> std::vector< std::vector< double > >::iterator"""
         return _libBornAgainCore.vdouble2d_t_begin(self)
@@ -538,6 +531,16 @@ class vdouble2d_t(_object):
         return _libBornAgainCore.vdouble2d_t_rend(self)
 
 
+    def clear(self):
+        """clear(vdouble2d_t self)"""
+        return _libBornAgainCore.vdouble2d_t_clear(self)
+
+
+    def get_allocator(self):
+        """get_allocator(vdouble2d_t self) -> std::vector< std::vector< double > >::allocator_type"""
+        return _libBornAgainCore.vdouble2d_t_get_allocator(self)
+
+
     def pop_back(self):
         """pop_back(vdouble2d_t self)"""
         return _libBornAgainCore.vdouble2d_t_pop_back(self)
@@ -561,7 +564,7 @@ class vdouble2d_t(_object):
         this = _libBornAgainCore.new_vdouble2d_t(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def push_back(self, x):
@@ -615,7 +618,8 @@ vdouble2d_t_swigregister = _libBornAgainCore.vdouble2d_t_swigregister
 vdouble2d_t_swigregister(vdouble2d_t)
 
 class vector_integer_t(_object):
-    """Proxy of C++ std::vector<(int)> class"""
+    """Proxy of C++ std::vector<(int)> class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, vector_integer_t, name, value)
     __swig_getmethods__ = {}
@@ -644,11 +648,6 @@ class vector_integer_t(_object):
         return _libBornAgainCore.vector_integer_t___len__(self)
 
 
-    def pop(self):
-        """pop(vector_integer_t self) -> std::vector< int >::value_type"""
-        return _libBornAgainCore.vector_integer_t_pop(self)
-
-
     def __getslice__(self, i, j):
         """__getslice__(vector_integer_t self, std::vector< int >::difference_type i, std::vector< int >::difference_type j) -> vector_integer_t"""
         return _libBornAgainCore.vector_integer_t___getslice__(self, i, j)
@@ -656,8 +655,8 @@ class vector_integer_t(_object):
 
     def __setslice__(self, *args):
         """
-        __setslice__(vector_integer_t self, std::vector< int >::difference_type i, std::vector< int >::difference_type j, vector_integer_t v)
         __setslice__(vector_integer_t self, std::vector< int >::difference_type i, std::vector< int >::difference_type j)
+        __setslice__(vector_integer_t self, std::vector< int >::difference_type i, std::vector< int >::difference_type j, vector_integer_t v)
         """
         return _libBornAgainCore.vector_integer_t___setslice__(self, *args)
 
@@ -692,6 +691,11 @@ class vector_integer_t(_object):
         return _libBornAgainCore.vector_integer_t___setitem__(self, *args)
 
 
+    def pop(self):
+        """pop(vector_integer_t self) -> std::vector< int >::value_type"""
+        return _libBornAgainCore.vector_integer_t_pop(self)
+
+
     def append(self, x):
         """append(vector_integer_t self, std::vector< int >::value_type const & x)"""
         return _libBornAgainCore.vector_integer_t_append(self, x)
@@ -707,21 +711,11 @@ class vector_integer_t(_object):
         return _libBornAgainCore.vector_integer_t_size(self)
 
 
-    def clear(self):
-        """clear(vector_integer_t self)"""
-        return _libBornAgainCore.vector_integer_t_clear(self)
-
-
     def swap(self, v):
         """swap(vector_integer_t self, vector_integer_t v)"""
         return _libBornAgainCore.vector_integer_t_swap(self, v)
 
 
-    def get_allocator(self):
-        """get_allocator(vector_integer_t self) -> std::vector< int >::allocator_type"""
-        return _libBornAgainCore.vector_integer_t_get_allocator(self)
-
-
     def begin(self):
         """begin(vector_integer_t self) -> std::vector< int >::iterator"""
         return _libBornAgainCore.vector_integer_t_begin(self)
@@ -742,6 +736,16 @@ class vector_integer_t(_object):
         return _libBornAgainCore.vector_integer_t_rend(self)
 
 
+    def clear(self):
+        """clear(vector_integer_t self)"""
+        return _libBornAgainCore.vector_integer_t_clear(self)
+
+
+    def get_allocator(self):
+        """get_allocator(vector_integer_t self) -> std::vector< int >::allocator_type"""
+        return _libBornAgainCore.vector_integer_t_get_allocator(self)
+
+
     def pop_back(self):
         """pop_back(vector_integer_t self)"""
         return _libBornAgainCore.vector_integer_t_pop_back(self)
@@ -765,7 +769,7 @@ class vector_integer_t(_object):
         this = _libBornAgainCore.new_vector_integer_t(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def push_back(self, x):
@@ -819,7 +823,8 @@ vector_integer_t_swigregister = _libBornAgainCore.vector_integer_t_swigregister
 vector_integer_t_swigregister(vector_integer_t)
 
 class vector_longinteger_t(_object):
-    """Proxy of C++ std::vector<(unsigned long)> class"""
+    """Proxy of C++ std::vector<(unsigned long)> class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, vector_longinteger_t, name, value)
     __swig_getmethods__ = {}
@@ -848,11 +853,6 @@ class vector_longinteger_t(_object):
         return _libBornAgainCore.vector_longinteger_t___len__(self)
 
 
-    def pop(self):
-        """pop(vector_longinteger_t self) -> std::vector< unsigned long >::value_type"""
-        return _libBornAgainCore.vector_longinteger_t_pop(self)
-
-
     def __getslice__(self, i, j):
         """__getslice__(vector_longinteger_t self, std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::difference_type j) -> vector_longinteger_t"""
         return _libBornAgainCore.vector_longinteger_t___getslice__(self, i, j)
@@ -860,8 +860,8 @@ class vector_longinteger_t(_object):
 
     def __setslice__(self, *args):
         """
-        __setslice__(vector_longinteger_t self, std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::difference_type j, vector_longinteger_t v)
         __setslice__(vector_longinteger_t self, std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::difference_type j)
+        __setslice__(vector_longinteger_t self, std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::difference_type j, vector_longinteger_t v)
         """
         return _libBornAgainCore.vector_longinteger_t___setslice__(self, *args)
 
@@ -896,6 +896,11 @@ class vector_longinteger_t(_object):
         return _libBornAgainCore.vector_longinteger_t___setitem__(self, *args)
 
 
+    def pop(self):
+        """pop(vector_longinteger_t self) -> std::vector< unsigned long >::value_type"""
+        return _libBornAgainCore.vector_longinteger_t_pop(self)
+
+
     def append(self, x):
         """append(vector_longinteger_t self, std::vector< unsigned long >::value_type const & x)"""
         return _libBornAgainCore.vector_longinteger_t_append(self, x)
@@ -911,21 +916,11 @@ class vector_longinteger_t(_object):
         return _libBornAgainCore.vector_longinteger_t_size(self)
 
 
-    def clear(self):
-        """clear(vector_longinteger_t self)"""
-        return _libBornAgainCore.vector_longinteger_t_clear(self)
-
-
     def swap(self, v):
         """swap(vector_longinteger_t self, vector_longinteger_t v)"""
         return _libBornAgainCore.vector_longinteger_t_swap(self, v)
 
 
-    def get_allocator(self):
-        """get_allocator(vector_longinteger_t self) -> std::vector< unsigned long >::allocator_type"""
-        return _libBornAgainCore.vector_longinteger_t_get_allocator(self)
-
-
     def begin(self):
         """begin(vector_longinteger_t self) -> std::vector< unsigned long >::iterator"""
         return _libBornAgainCore.vector_longinteger_t_begin(self)
@@ -946,6 +941,16 @@ class vector_longinteger_t(_object):
         return _libBornAgainCore.vector_longinteger_t_rend(self)
 
 
+    def clear(self):
+        """clear(vector_longinteger_t self)"""
+        return _libBornAgainCore.vector_longinteger_t_clear(self)
+
+
+    def get_allocator(self):
+        """get_allocator(vector_longinteger_t self) -> std::vector< unsigned long >::allocator_type"""
+        return _libBornAgainCore.vector_longinteger_t_get_allocator(self)
+
+
     def pop_back(self):
         """pop_back(vector_longinteger_t self)"""
         return _libBornAgainCore.vector_longinteger_t_pop_back(self)
@@ -969,7 +974,7 @@ class vector_longinteger_t(_object):
         this = _libBornAgainCore.new_vector_longinteger_t(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def push_back(self, x):
@@ -1023,7 +1028,8 @@ vector_longinteger_t_swigregister = _libBornAgainCore.vector_longinteger_t_swigr
 vector_longinteger_t_swigregister(vector_longinteger_t)
 
 class vector_complex_t(_object):
-    """Proxy of C++ std::vector<(std::complex<(double)>)> class"""
+    """Proxy of C++ std::vector<(std::complex<(double)>)> class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, vector_complex_t, name, value)
     __swig_getmethods__ = {}
@@ -1052,11 +1058,6 @@ class vector_complex_t(_object):
         return _libBornAgainCore.vector_complex_t___len__(self)
 
 
-    def pop(self):
-        """pop(vector_complex_t self) -> std::vector< std::complex< double > >::value_type"""
-        return _libBornAgainCore.vector_complex_t_pop(self)
-
-
     def __getslice__(self, i, j):
         """__getslice__(vector_complex_t self, std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::difference_type j) -> vector_complex_t"""
         return _libBornAgainCore.vector_complex_t___getslice__(self, i, j)
@@ -1064,8 +1065,8 @@ class vector_complex_t(_object):
 
     def __setslice__(self, *args):
         """
-        __setslice__(vector_complex_t self, std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::difference_type j, vector_complex_t v)
         __setslice__(vector_complex_t self, std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::difference_type j)
+        __setslice__(vector_complex_t self, std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::difference_type j, vector_complex_t v)
         """
         return _libBornAgainCore.vector_complex_t___setslice__(self, *args)
 
@@ -1100,6 +1101,11 @@ class vector_complex_t(_object):
         return _libBornAgainCore.vector_complex_t___setitem__(self, *args)
 
 
+    def pop(self):
+        """pop(vector_complex_t self) -> std::vector< std::complex< double > >::value_type"""
+        return _libBornAgainCore.vector_complex_t_pop(self)
+
+
     def append(self, x):
         """append(vector_complex_t self, std::vector< std::complex< double > >::value_type const & x)"""
         return _libBornAgainCore.vector_complex_t_append(self, x)
@@ -1115,21 +1121,11 @@ class vector_complex_t(_object):
         return _libBornAgainCore.vector_complex_t_size(self)
 
 
-    def clear(self):
-        """clear(vector_complex_t self)"""
-        return _libBornAgainCore.vector_complex_t_clear(self)
-
-
     def swap(self, v):
         """swap(vector_complex_t self, vector_complex_t v)"""
         return _libBornAgainCore.vector_complex_t_swap(self, v)
 
 
-    def get_allocator(self):
-        """get_allocator(vector_complex_t self) -> std::vector< std::complex< double > >::allocator_type"""
-        return _libBornAgainCore.vector_complex_t_get_allocator(self)
-
-
     def begin(self):
         """begin(vector_complex_t self) -> std::vector< std::complex< double > >::iterator"""
         return _libBornAgainCore.vector_complex_t_begin(self)
@@ -1150,6 +1146,16 @@ class vector_complex_t(_object):
         return _libBornAgainCore.vector_complex_t_rend(self)
 
 
+    def clear(self):
+        """clear(vector_complex_t self)"""
+        return _libBornAgainCore.vector_complex_t_clear(self)
+
+
+    def get_allocator(self):
+        """get_allocator(vector_complex_t self) -> std::vector< std::complex< double > >::allocator_type"""
+        return _libBornAgainCore.vector_complex_t_get_allocator(self)
+
+
     def pop_back(self):
         """pop_back(vector_complex_t self)"""
         return _libBornAgainCore.vector_complex_t_pop_back(self)
@@ -1173,7 +1179,7 @@ class vector_complex_t(_object):
         this = _libBornAgainCore.new_vector_complex_t(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def push_back(self, x):
@@ -1227,7 +1233,8 @@ vector_complex_t_swigregister = _libBornAgainCore.vector_complex_t_swigregister
 vector_complex_t_swigregister(vector_complex_t)
 
 class vector_string_t(_object):
-    """Proxy of C++ std::vector<(std::string)> class"""
+    """Proxy of C++ std::vector<(std::string)> class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, vector_string_t, name, value)
     __swig_getmethods__ = {}
@@ -1256,11 +1263,6 @@ class vector_string_t(_object):
         return _libBornAgainCore.vector_string_t___len__(self)
 
 
-    def pop(self):
-        """pop(vector_string_t self) -> std::vector< std::string >::value_type"""
-        return _libBornAgainCore.vector_string_t_pop(self)
-
-
     def __getslice__(self, i, j):
         """__getslice__(vector_string_t self, std::vector< std::string >::difference_type i, std::vector< std::string >::difference_type j) -> vector_string_t"""
         return _libBornAgainCore.vector_string_t___getslice__(self, i, j)
@@ -1268,8 +1270,8 @@ class vector_string_t(_object):
 
     def __setslice__(self, *args):
         """
-        __setslice__(vector_string_t self, std::vector< std::string >::difference_type i, std::vector< std::string >::difference_type j, vector_string_t v)
         __setslice__(vector_string_t self, std::vector< std::string >::difference_type i, std::vector< std::string >::difference_type j)
+        __setslice__(vector_string_t self, std::vector< std::string >::difference_type i, std::vector< std::string >::difference_type j, vector_string_t v)
         """
         return _libBornAgainCore.vector_string_t___setslice__(self, *args)
 
@@ -1304,6 +1306,11 @@ class vector_string_t(_object):
         return _libBornAgainCore.vector_string_t___setitem__(self, *args)
 
 
+    def pop(self):
+        """pop(vector_string_t self) -> std::vector< std::string >::value_type"""
+        return _libBornAgainCore.vector_string_t_pop(self)
+
+
     def append(self, x):
         """append(vector_string_t self, std::vector< std::string >::value_type const & x)"""
         return _libBornAgainCore.vector_string_t_append(self, x)
@@ -1319,21 +1326,11 @@ class vector_string_t(_object):
         return _libBornAgainCore.vector_string_t_size(self)
 
 
-    def clear(self):
-        """clear(vector_string_t self)"""
-        return _libBornAgainCore.vector_string_t_clear(self)
-
-
     def swap(self, v):
         """swap(vector_string_t self, vector_string_t v)"""
         return _libBornAgainCore.vector_string_t_swap(self, v)
 
 
-    def get_allocator(self):
-        """get_allocator(vector_string_t self) -> std::vector< std::string >::allocator_type"""
-        return _libBornAgainCore.vector_string_t_get_allocator(self)
-
-
     def begin(self):
         """begin(vector_string_t self) -> std::vector< std::string >::iterator"""
         return _libBornAgainCore.vector_string_t_begin(self)
@@ -1354,6 +1351,16 @@ class vector_string_t(_object):
         return _libBornAgainCore.vector_string_t_rend(self)
 
 
+    def clear(self):
+        """clear(vector_string_t self)"""
+        return _libBornAgainCore.vector_string_t_clear(self)
+
+
+    def get_allocator(self):
+        """get_allocator(vector_string_t self) -> std::vector< std::string >::allocator_type"""
+        return _libBornAgainCore.vector_string_t_get_allocator(self)
+
+
     def pop_back(self):
         """pop_back(vector_string_t self)"""
         return _libBornAgainCore.vector_string_t_pop_back(self)
@@ -1377,7 +1384,7 @@ class vector_string_t(_object):
         this = _libBornAgainCore.new_vector_string_t(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def push_back(self, x):
@@ -1473,6 +1480,7 @@ class INoncopyable(_object):
     C++ includes: INoncopyable.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, INoncopyable, name, value)
     __swig_getmethods__ = {}
@@ -1489,7 +1497,7 @@ class INoncopyable(_object):
         this = _libBornAgainCore.new_INoncopyable()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_INoncopyable
     __del__ = lambda self: None
@@ -1512,6 +1520,7 @@ class ICloneable(INoncopyable):
     C++ includes: ICloneable.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [INoncopyable]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -1560,6 +1569,7 @@ class INamed(_object):
     C++ includes: INamed.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, INamed, name, value)
     __swig_getmethods__ = {}
@@ -1581,7 +1591,7 @@ class INamed(_object):
         this = _libBornAgainCore.new_INamed(_self, *args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_INamed
     __del__ = lambda self: None
@@ -1611,6 +1621,7 @@ class IParameterized(INamed):
     C++ includes: IParameterized.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [INamed]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -1637,7 +1648,7 @@ class IParameterized(INamed):
         this = _libBornAgainCore.new_IParameterized(_self, *args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_IParameterized
     __del__ = lambda self: None
@@ -1733,6 +1744,7 @@ class kvector_t(_object):
     C++ includes: BasicVector3D.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, kvector_t, name, value)
     __swig_getmethods__ = {}
@@ -1752,7 +1764,7 @@ class kvector_t(_object):
         this = _libBornAgainCore.new_kvector_t(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def x(self):
@@ -2035,7 +2047,8 @@ kvector_t_swigregister = _libBornAgainCore.kvector_t_swigregister
 kvector_t_swigregister(kvector_t)
 
 class vector_kvector_t(_object):
-    """Proxy of C++ std::vector<(BasicVector3D<(double)>)> class"""
+    """Proxy of C++ std::vector<(BasicVector3D<(double)>)> class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, vector_kvector_t, name, value)
     __swig_getmethods__ = {}
@@ -2064,11 +2077,6 @@ class vector_kvector_t(_object):
         return _libBornAgainCore.vector_kvector_t___len__(self)
 
 
-    def pop(self):
-        """pop(vector_kvector_t self) -> kvector_t"""
-        return _libBornAgainCore.vector_kvector_t_pop(self)
-
-
     def __getslice__(self, i, j):
         """__getslice__(vector_kvector_t self, std::vector< BasicVector3D< double > >::difference_type i, std::vector< BasicVector3D< double > >::difference_type j) -> vector_kvector_t"""
         return _libBornAgainCore.vector_kvector_t___getslice__(self, i, j)
@@ -2076,8 +2084,8 @@ class vector_kvector_t(_object):
 
     def __setslice__(self, *args):
         """
-        __setslice__(vector_kvector_t self, std::vector< BasicVector3D< double > >::difference_type i, std::vector< BasicVector3D< double > >::difference_type j, vector_kvector_t v)
         __setslice__(vector_kvector_t self, std::vector< BasicVector3D< double > >::difference_type i, std::vector< BasicVector3D< double > >::difference_type j)
+        __setslice__(vector_kvector_t self, std::vector< BasicVector3D< double > >::difference_type i, std::vector< BasicVector3D< double > >::difference_type j, vector_kvector_t v)
         """
         return _libBornAgainCore.vector_kvector_t___setslice__(self, *args)
 
@@ -2112,6 +2120,11 @@ class vector_kvector_t(_object):
         return _libBornAgainCore.vector_kvector_t___setitem__(self, *args)
 
 
+    def pop(self):
+        """pop(vector_kvector_t self) -> kvector_t"""
+        return _libBornAgainCore.vector_kvector_t_pop(self)
+
+
     def append(self, x):
         """append(vector_kvector_t self, kvector_t x)"""
         return _libBornAgainCore.vector_kvector_t_append(self, x)
@@ -2127,21 +2140,11 @@ class vector_kvector_t(_object):
         return _libBornAgainCore.vector_kvector_t_size(self)
 
 
-    def clear(self):
-        """clear(vector_kvector_t self)"""
-        return _libBornAgainCore.vector_kvector_t_clear(self)
-
-
     def swap(self, v):
         """swap(vector_kvector_t self, vector_kvector_t v)"""
         return _libBornAgainCore.vector_kvector_t_swap(self, v)
 
 
-    def get_allocator(self):
-        """get_allocator(vector_kvector_t self) -> std::vector< BasicVector3D< double > >::allocator_type"""
-        return _libBornAgainCore.vector_kvector_t_get_allocator(self)
-
-
     def begin(self):
         """begin(vector_kvector_t self) -> std::vector< BasicVector3D< double > >::iterator"""
         return _libBornAgainCore.vector_kvector_t_begin(self)
@@ -2162,6 +2165,16 @@ class vector_kvector_t(_object):
         return _libBornAgainCore.vector_kvector_t_rend(self)
 
 
+    def clear(self):
+        """clear(vector_kvector_t self)"""
+        return _libBornAgainCore.vector_kvector_t_clear(self)
+
+
+    def get_allocator(self):
+        """get_allocator(vector_kvector_t self) -> std::vector< BasicVector3D< double > >::allocator_type"""
+        return _libBornAgainCore.vector_kvector_t_get_allocator(self)
+
+
     def pop_back(self):
         """pop_back(vector_kvector_t self)"""
         return _libBornAgainCore.vector_kvector_t_pop_back(self)
@@ -2185,7 +2198,7 @@ class vector_kvector_t(_object):
         this = _libBornAgainCore.new_vector_kvector_t(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def push_back(self, x):
@@ -2247,6 +2260,7 @@ class cvector_t(_object):
     C++ includes: BasicVector3D.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, cvector_t, name, value)
     __swig_getmethods__ = {}
@@ -2266,7 +2280,7 @@ class cvector_t(_object):
         this = _libBornAgainCore.new_cvector_t(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def x(self):
@@ -2462,7 +2476,8 @@ cvector_t_swigregister = _libBornAgainCore.cvector_t_swigregister
 cvector_t_swigregister(cvector_t)
 
 class vector_cvector_t(_object):
-    """Proxy of C++ std::vector<(BasicVector3D<(std::complex<(double)>)>)> class"""
+    """Proxy of C++ std::vector<(BasicVector3D<(std::complex<(double)>)>)> class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, vector_cvector_t, name, value)
     __swig_getmethods__ = {}
@@ -2491,11 +2506,6 @@ class vector_cvector_t(_object):
         return _libBornAgainCore.vector_cvector_t___len__(self)
 
 
-    def pop(self):
-        """pop(vector_cvector_t self) -> cvector_t"""
-        return _libBornAgainCore.vector_cvector_t_pop(self)
-
-
     def __getslice__(self, i, j):
         """__getslice__(vector_cvector_t self, std::vector< BasicVector3D< std::complex< double > > >::difference_type i, std::vector< BasicVector3D< std::complex< double > > >::difference_type j) -> vector_cvector_t"""
         return _libBornAgainCore.vector_cvector_t___getslice__(self, i, j)
@@ -2503,8 +2513,8 @@ class vector_cvector_t(_object):
 
     def __setslice__(self, *args):
         """
-        __setslice__(vector_cvector_t self, std::vector< BasicVector3D< std::complex< double > > >::difference_type i, std::vector< BasicVector3D< std::complex< double > > >::difference_type j, vector_cvector_t v)
         __setslice__(vector_cvector_t self, std::vector< BasicVector3D< std::complex< double > > >::difference_type i, std::vector< BasicVector3D< std::complex< double > > >::difference_type j)
+        __setslice__(vector_cvector_t self, std::vector< BasicVector3D< std::complex< double > > >::difference_type i, std::vector< BasicVector3D< std::complex< double > > >::difference_type j, vector_cvector_t v)
         """
         return _libBornAgainCore.vector_cvector_t___setslice__(self, *args)
 
@@ -2539,6 +2549,11 @@ class vector_cvector_t(_object):
         return _libBornAgainCore.vector_cvector_t___setitem__(self, *args)
 
 
+    def pop(self):
+        """pop(vector_cvector_t self) -> cvector_t"""
+        return _libBornAgainCore.vector_cvector_t_pop(self)
+
+
     def append(self, x):
         """append(vector_cvector_t self, cvector_t x)"""
         return _libBornAgainCore.vector_cvector_t_append(self, x)
@@ -2554,21 +2569,11 @@ class vector_cvector_t(_object):
         return _libBornAgainCore.vector_cvector_t_size(self)
 
 
-    def clear(self):
-        """clear(vector_cvector_t self)"""
-        return _libBornAgainCore.vector_cvector_t_clear(self)
-
-
     def swap(self, v):
         """swap(vector_cvector_t self, vector_cvector_t v)"""
         return _libBornAgainCore.vector_cvector_t_swap(self, v)
 
 
-    def get_allocator(self):
-        """get_allocator(vector_cvector_t self) -> std::vector< BasicVector3D< std::complex< double > > >::allocator_type"""
-        return _libBornAgainCore.vector_cvector_t_get_allocator(self)
-
-
     def begin(self):
         """begin(vector_cvector_t self) -> std::vector< BasicVector3D< std::complex< double > > >::iterator"""
         return _libBornAgainCore.vector_cvector_t_begin(self)
@@ -2589,6 +2594,16 @@ class vector_cvector_t(_object):
         return _libBornAgainCore.vector_cvector_t_rend(self)
 
 
+    def clear(self):
+        """clear(vector_cvector_t self)"""
+        return _libBornAgainCore.vector_cvector_t_clear(self)
+
+
+    def get_allocator(self):
+        """get_allocator(vector_cvector_t self) -> std::vector< BasicVector3D< std::complex< double > > >::allocator_type"""
+        return _libBornAgainCore.vector_cvector_t_get_allocator(self)
+
+
     def pop_back(self):
         """pop_back(vector_cvector_t self)"""
         return _libBornAgainCore.vector_cvector_t_pop_back(self)
@@ -2612,7 +2627,7 @@ class vector_cvector_t(_object):
         this = _libBornAgainCore.new_vector_cvector_t(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def push_back(self, x):
@@ -2714,6 +2729,7 @@ class WavevectorInfo(_object):
     C++ includes: WavevectorInfo.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, WavevectorInfo, name, value)
     __swig_getmethods__ = {}
@@ -2732,7 +2748,7 @@ class WavevectorInfo(_object):
         this = _libBornAgainCore.new_WavevectorInfo(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def getKi(self):
@@ -2804,6 +2820,7 @@ class Beam(IParameterized):
     C++ includes: Beam.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -2825,7 +2842,7 @@ class Beam(IParameterized):
         this = _libBornAgainCore.new_Beam(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_Beam
     __del__ = lambda self: None
@@ -2923,7 +2940,8 @@ Beam_swigregister = _libBornAgainCore.Beam_swigregister
 Beam_swigregister(Beam)
 
 class Bin1D(_object):
-    """Proxy of C++ Bin1D class"""
+    """Proxy of C++ Bin1D class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, Bin1D, name, value)
     __swig_getmethods__ = {}
@@ -2941,7 +2959,7 @@ class Bin1D(_object):
         this = _libBornAgainCore.new_Bin1D(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_setmethods__["m_lower"] = _libBornAgainCore.Bin1D_m_lower_set
     __swig_getmethods__["m_lower"] = _libBornAgainCore.Bin1D_m_lower_get
@@ -2985,6 +3003,7 @@ class Bin1DKVector(_object):
     C++ includes: Bin.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, Bin1DKVector, name, value)
     __swig_getmethods__ = {}
@@ -3005,7 +3024,7 @@ class Bin1DKVector(_object):
         this = _libBornAgainCore.new_Bin1DKVector(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def getMidPoint(self):
@@ -3049,6 +3068,7 @@ class Bin1DCVector(_object):
     C++ includes: Bin.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, Bin1DCVector, name, value)
     __swig_getmethods__ = {}
@@ -3069,7 +3089,7 @@ class Bin1DCVector(_object):
         this = _libBornAgainCore.new_Bin1DCVector(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def getMidPoint(self):
@@ -3113,6 +3133,7 @@ class IAxis(_object):
     C++ includes: IAxis.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, IAxis, name, value)
     __swig_getmethods__ = {}
@@ -3318,6 +3339,7 @@ class VariableBinAxis(IAxis):
     C++ includes: VariableBinAxis.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IAxis]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -3352,7 +3374,7 @@ class VariableBinAxis(IAxis):
         this = _libBornAgainCore.new_VariableBinAxis(name, nbins, bin_boundaries)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_VariableBinAxis
     __del__ = lambda self: None
@@ -3487,6 +3509,7 @@ class ConstKBinAxis(VariableBinAxis):
     C++ includes: ConstKBinAxis.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [VariableBinAxis]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -3524,7 +3547,7 @@ class ConstKBinAxis(VariableBinAxis):
         this = _libBornAgainCore.new_ConstKBinAxis(name, nbins, start, end)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_ConstKBinAxis
     __del__ = lambda self: None
@@ -3564,6 +3587,7 @@ class CustomBinAxis(VariableBinAxis):
     C++ includes: CustomBinAxis.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [VariableBinAxis]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -3601,7 +3625,7 @@ class CustomBinAxis(VariableBinAxis):
         this = _libBornAgainCore.new_CustomBinAxis(name, nbins, start, end)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_CustomBinAxis
     __del__ = lambda self: None
@@ -3663,6 +3687,7 @@ class IShape2D(ICloneable, INamed):
     C++ includes: IShape2D.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICloneable, INamed]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -3716,6 +3741,7 @@ class ISample(ICloneable, IParameterized):
     C++ includes: ISample.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICloneable, IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -3857,7 +3883,7 @@ class ISample(ICloneable, IParameterized):
         this = _libBornAgainCore.new_ISample(_self, )
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_ISample
     __del__ = lambda self: None
@@ -3879,7 +3905,8 @@ ISample_swigregister = _libBornAgainCore.ISample_swigregister
 ISample_swigregister(ISample)
 
 class swig_dummy_type_isample_vector(_object):
-    """Proxy of C++ std::vector<(p.ISample)> class"""
+    """Proxy of C++ std::vector<(p.ISample)> class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, swig_dummy_type_isample_vector, name, value)
     __swig_getmethods__ = {}
@@ -3908,11 +3935,6 @@ class swig_dummy_type_isample_vector(_object):
         return _libBornAgainCore.swig_dummy_type_isample_vector___len__(self)
 
 
-    def pop(self):
-        """pop(swig_dummy_type_isample_vector self) -> ISample"""
-        return _libBornAgainCore.swig_dummy_type_isample_vector_pop(self)
-
-
     def __getslice__(self, i, j):
         """__getslice__(swig_dummy_type_isample_vector self, std::vector< ISample * >::difference_type i, std::vector< ISample * >::difference_type j) -> swig_dummy_type_isample_vector"""
         return _libBornAgainCore.swig_dummy_type_isample_vector___getslice__(self, i, j)
@@ -3920,8 +3942,8 @@ class swig_dummy_type_isample_vector(_object):
 
     def __setslice__(self, *args):
         """
-        __setslice__(swig_dummy_type_isample_vector self, std::vector< ISample * >::difference_type i, std::vector< ISample * >::difference_type j, swig_dummy_type_isample_vector v)
         __setslice__(swig_dummy_type_isample_vector self, std::vector< ISample * >::difference_type i, std::vector< ISample * >::difference_type j)
+        __setslice__(swig_dummy_type_isample_vector self, std::vector< ISample * >::difference_type i, std::vector< ISample * >::difference_type j, swig_dummy_type_isample_vector v)
         """
         return _libBornAgainCore.swig_dummy_type_isample_vector___setslice__(self, *args)
 
@@ -3956,6 +3978,11 @@ class swig_dummy_type_isample_vector(_object):
         return _libBornAgainCore.swig_dummy_type_isample_vector___setitem__(self, *args)
 
 
+    def pop(self):
+        """pop(swig_dummy_type_isample_vector self) -> ISample"""
+        return _libBornAgainCore.swig_dummy_type_isample_vector_pop(self)
+
+
     def append(self, x):
         """append(swig_dummy_type_isample_vector self, ISample x)"""
         return _libBornAgainCore.swig_dummy_type_isample_vector_append(self, x)
@@ -3966,14 +3993,9 @@ class swig_dummy_type_isample_vector(_object):
         return _libBornAgainCore.swig_dummy_type_isample_vector_empty(self)
 
 
-    def size(self):
-        """size(swig_dummy_type_isample_vector self) -> std::vector< ISample * >::size_type"""
-        return _libBornAgainCore.swig_dummy_type_isample_vector_size(self)
-
-
-    def clear(self):
-        """clear(swig_dummy_type_isample_vector self)"""
-        return _libBornAgainCore.swig_dummy_type_isample_vector_clear(self)
+    def size(self):
+        """size(swig_dummy_type_isample_vector self) -> std::vector< ISample * >::size_type"""
+        return _libBornAgainCore.swig_dummy_type_isample_vector_size(self)
 
 
     def swap(self, v):
@@ -3981,11 +4003,6 @@ class swig_dummy_type_isample_vector(_object):
         return _libBornAgainCore.swig_dummy_type_isample_vector_swap(self, v)
 
 
-    def get_allocator(self):
-        """get_allocator(swig_dummy_type_isample_vector self) -> std::vector< ISample * >::allocator_type"""
-        return _libBornAgainCore.swig_dummy_type_isample_vector_get_allocator(self)
-
-
     def begin(self):
         """begin(swig_dummy_type_isample_vector self) -> std::vector< ISample * >::iterator"""
         return _libBornAgainCore.swig_dummy_type_isample_vector_begin(self)
@@ -4006,6 +4023,16 @@ class swig_dummy_type_isample_vector(_object):
         return _libBornAgainCore.swig_dummy_type_isample_vector_rend(self)
 
 
+    def clear(self):
+        """clear(swig_dummy_type_isample_vector self)"""
+        return _libBornAgainCore.swig_dummy_type_isample_vector_clear(self)
+
+
+    def get_allocator(self):
+        """get_allocator(swig_dummy_type_isample_vector self) -> std::vector< ISample * >::allocator_type"""
+        return _libBornAgainCore.swig_dummy_type_isample_vector_get_allocator(self)
+
+
     def pop_back(self):
         """pop_back(swig_dummy_type_isample_vector self)"""
         return _libBornAgainCore.swig_dummy_type_isample_vector_pop_back(self)
@@ -4029,7 +4056,7 @@ class swig_dummy_type_isample_vector(_object):
         this = _libBornAgainCore.new_swig_dummy_type_isample_vector(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def push_back(self, x):
@@ -4083,7 +4110,8 @@ swig_dummy_type_isample_vector_swigregister = _libBornAgainCore.swig_dummy_type_
 swig_dummy_type_isample_vector_swigregister(swig_dummy_type_isample_vector)
 
 class swig_dummy_type_const_isample_vector(_object):
-    """Proxy of C++ std::vector<(p.q(const).ISample)> class"""
+    """Proxy of C++ std::vector<(p.q(const).ISample)> class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, swig_dummy_type_const_isample_vector, name, value)
     __swig_getmethods__ = {}
@@ -4112,11 +4140,6 @@ class swig_dummy_type_const_isample_vector(_object):
         return _libBornAgainCore.swig_dummy_type_const_isample_vector___len__(self)
 
 
-    def pop(self):
-        """pop(swig_dummy_type_const_isample_vector self) -> ISample"""
-        return _libBornAgainCore.swig_dummy_type_const_isample_vector_pop(self)
-
-
     def __getslice__(self, i, j):
         """__getslice__(swig_dummy_type_const_isample_vector self, std::vector< ISample const * >::difference_type i, std::vector< ISample const * >::difference_type j) -> swig_dummy_type_const_isample_vector"""
         return _libBornAgainCore.swig_dummy_type_const_isample_vector___getslice__(self, i, j)
@@ -4124,8 +4147,8 @@ class swig_dummy_type_const_isample_vector(_object):
 
     def __setslice__(self, *args):
         """
-        __setslice__(swig_dummy_type_const_isample_vector self, std::vector< ISample const * >::difference_type i, std::vector< ISample const * >::difference_type j, swig_dummy_type_const_isample_vector v)
         __setslice__(swig_dummy_type_const_isample_vector self, std::vector< ISample const * >::difference_type i, std::vector< ISample const * >::difference_type j)
+        __setslice__(swig_dummy_type_const_isample_vector self, std::vector< ISample const * >::difference_type i, std::vector< ISample const * >::difference_type j, swig_dummy_type_const_isample_vector v)
         """
         return _libBornAgainCore.swig_dummy_type_const_isample_vector___setslice__(self, *args)
 
@@ -4160,6 +4183,11 @@ class swig_dummy_type_const_isample_vector(_object):
         return _libBornAgainCore.swig_dummy_type_const_isample_vector___setitem__(self, *args)
 
 
+    def pop(self):
+        """pop(swig_dummy_type_const_isample_vector self) -> ISample"""
+        return _libBornAgainCore.swig_dummy_type_const_isample_vector_pop(self)
+
+
     def append(self, x):
         """append(swig_dummy_type_const_isample_vector self, ISample x)"""
         return _libBornAgainCore.swig_dummy_type_const_isample_vector_append(self, x)
@@ -4175,21 +4203,11 @@ class swig_dummy_type_const_isample_vector(_object):
         return _libBornAgainCore.swig_dummy_type_const_isample_vector_size(self)
 
 
-    def clear(self):
-        """clear(swig_dummy_type_const_isample_vector self)"""
-        return _libBornAgainCore.swig_dummy_type_const_isample_vector_clear(self)
-
-
     def swap(self, v):
         """swap(swig_dummy_type_const_isample_vector self, swig_dummy_type_const_isample_vector v)"""
         return _libBornAgainCore.swig_dummy_type_const_isample_vector_swap(self, v)
 
 
-    def get_allocator(self):
-        """get_allocator(swig_dummy_type_const_isample_vector self) -> std::vector< ISample const * >::allocator_type"""
-        return _libBornAgainCore.swig_dummy_type_const_isample_vector_get_allocator(self)
-
-
     def begin(self):
         """begin(swig_dummy_type_const_isample_vector self) -> std::vector< ISample const * >::iterator"""
         return _libBornAgainCore.swig_dummy_type_const_isample_vector_begin(self)
@@ -4210,6 +4228,16 @@ class swig_dummy_type_const_isample_vector(_object):
         return _libBornAgainCore.swig_dummy_type_const_isample_vector_rend(self)
 
 
+    def clear(self):
+        """clear(swig_dummy_type_const_isample_vector self)"""
+        return _libBornAgainCore.swig_dummy_type_const_isample_vector_clear(self)
+
+
+    def get_allocator(self):
+        """get_allocator(swig_dummy_type_const_isample_vector self) -> std::vector< ISample const * >::allocator_type"""
+        return _libBornAgainCore.swig_dummy_type_const_isample_vector_get_allocator(self)
+
+
     def pop_back(self):
         """pop_back(swig_dummy_type_const_isample_vector self)"""
         return _libBornAgainCore.swig_dummy_type_const_isample_vector_pop_back(self)
@@ -4233,7 +4261,7 @@ class swig_dummy_type_const_isample_vector(_object):
         this = _libBornAgainCore.new_swig_dummy_type_const_isample_vector(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def push_back(self, x):
@@ -4297,6 +4325,7 @@ class IChiSquaredModule(ICloneable):
     C++ includes: IChiSquaredModule.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICloneable]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -4417,6 +4446,7 @@ class IObserver(_object):
     C++ includes: IObserver.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, IObserver, name, value)
     __swig_getmethods__ = {}
@@ -4451,6 +4481,7 @@ class IObservable(_object):
     C++ includes: IObserver.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, IObservable, name, value)
     __swig_getmethods__ = {}
@@ -4501,7 +4532,7 @@ class IObservable(_object):
         this = _libBornAgainCore.new_IObservable(_self, )
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     def __disown__(self):
         self.this.disown()
@@ -4519,6 +4550,7 @@ class IFitObserver(IObserver):
     C++ includes: IFitObserver.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IObserver]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -4543,7 +4575,7 @@ class IFitObserver(IObserver):
         this = _libBornAgainCore.new_IFitObserver(_self, update_every_nth)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def notify(self, subject):
@@ -4589,6 +4621,7 @@ class IFitStrategy(INamed):
     C++ includes: IFitStrategy.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [INamed]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -4645,6 +4678,7 @@ class FitStrategyDefault(IFitStrategy):
     C++ includes: IFitStrategy.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFitStrategy]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -4665,7 +4699,7 @@ class FitStrategyDefault(IFitStrategy):
         this = _libBornAgainCore.new_FitStrategyDefault()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -4701,6 +4735,7 @@ class IIntensityFunction(_object):
     C++ includes: IIntensityFunction.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, IIntensityFunction, name, value)
     __swig_getmethods__ = {}
@@ -4743,6 +4778,7 @@ class IntensityFunctionLog(IIntensityFunction):
     C++ includes: IIntensityFunction.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IIntensityFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -4789,7 +4825,7 @@ class IntensityFunctionLog(IIntensityFunction):
         this = _libBornAgainCore.new_IntensityFunctionLog()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 IntensityFunctionLog_swigregister = _libBornAgainCore.IntensityFunctionLog_swigregister
 IntensityFunctionLog_swigregister(IntensityFunctionLog)
@@ -4803,6 +4839,7 @@ class IntensityFunctionSqrt(IIntensityFunction):
     C++ includes: IIntensityFunction.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IIntensityFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -4849,7 +4886,7 @@ class IntensityFunctionSqrt(IIntensityFunction):
         this = _libBornAgainCore.new_IntensityFunctionSqrt()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 IntensityFunctionSqrt_swigregister = _libBornAgainCore.IntensityFunctionSqrt_swigregister
 IntensityFunctionSqrt_swigregister(IntensityFunctionSqrt)
@@ -4863,6 +4900,7 @@ class IIntensityNormalizer(IParameterized):
     C++ includes: IIntensityNormalizer.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -4929,6 +4967,7 @@ class IntensityNormalizer(IIntensityNormalizer):
     C++ includes: IIntensityNormalizer.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IIntensityNormalizer]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -4951,7 +4990,7 @@ class IntensityNormalizer(IIntensityNormalizer):
         this = _libBornAgainCore.new_IntensityNormalizer(scale, shift)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_IntensityNormalizer
     __del__ = lambda self: None
@@ -5007,6 +5046,7 @@ class IntensityScaleAndShiftNormalizer(IntensityNormalizer):
     C++ includes: IIntensityNormalizer.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IntensityNormalizer]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -5029,7 +5069,7 @@ class IntensityScaleAndShiftNormalizer(IntensityNormalizer):
         this = _libBornAgainCore.new_IntensityScaleAndShiftNormalizer(scale, shift)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_IntensityScaleAndShiftNormalizer
     __del__ = lambda self: None
@@ -5067,6 +5107,7 @@ class ISquaredFunction(_object):
     C++ includes: ISquaredFunction.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, ISquaredFunction, name, value)
     __swig_getmethods__ = {}
@@ -5122,6 +5163,7 @@ class SquaredFunctionDefault(ISquaredFunction):
     C++ includes: ISquaredFunction.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ISquaredFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -5142,7 +5184,7 @@ class SquaredFunctionDefault(ISquaredFunction):
         this = _libBornAgainCore.new_SquaredFunctionDefault()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_SquaredFunctionDefault
     __del__ = lambda self: None
@@ -5191,6 +5233,7 @@ class SquaredFunctionSimError(ISquaredFunction):
     C++ includes: ISquaredFunction.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ISquaredFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -5249,6 +5292,7 @@ class SquaredFunctionMeanSquaredError(ISquaredFunction):
     C++ includes: ISquaredFunction.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ISquaredFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -5307,6 +5351,7 @@ class SquaredFunctionSystematicError(ISquaredFunction):
     C++ includes: ISquaredFunction.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ISquaredFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -5365,6 +5410,7 @@ class SquaredFunctionGaussianError(ISquaredFunction):
     C++ includes: ISquaredFunction.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ISquaredFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -5421,6 +5467,7 @@ class ChiSquaredModule(IChiSquaredModule):
     C++ includes: ChiSquaredModule.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IChiSquaredModule]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -5442,7 +5489,7 @@ class ChiSquaredModule(IChiSquaredModule):
         this = _libBornAgainCore.new_ChiSquaredModule(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_ChiSquaredModule
     __del__ = lambda self: None
@@ -5480,6 +5527,7 @@ class FitObject(IParameterized):
     C++ includes: FitObject.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -5519,7 +5567,7 @@ class FitObject(IParameterized):
         this = _libBornAgainCore.new_FitObject(simulation, real_data, weight, adjust_detector_to_data)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FitObject
     __del__ = lambda self: None
@@ -5620,6 +5668,7 @@ class FitOptions(_object):
     C++ includes: FitOptions.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, FitOptions, name, value)
     __swig_getmethods__ = {}
@@ -5636,7 +5685,7 @@ class FitOptions(_object):
         this = _libBornAgainCore.new_FitOptions()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FitOptions
     __del__ = lambda self: None
@@ -5692,6 +5741,7 @@ class FitSuite(IObservable):
     C++ includes: FitSuite.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IObservable]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -5712,7 +5762,7 @@ class FitSuite(IObservable):
         this = _libBornAgainCore.new_FitSuite()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FitSuite
     __del__ = lambda self: None
@@ -5734,9 +5784,9 @@ class FitSuite(IObservable):
 
     def addFitParameter(self, *args):
         """
-        addFitParameter(FitSuite self, std::string const & name, double value, Limits lim, Attributes attr, double step=0.0)
-        addFitParameter(FitSuite self, std::string const & name, double value, Limits lim, Attributes attr)
-        addFitParameter(FitSuite self, std::string const & name, double value, Limits lim)
+        addFitParameter(FitSuite self, std::string const & name, double value, RealLimits lim, Attributes attr, double step=0.0)
+        addFitParameter(FitSuite self, std::string const & name, double value, RealLimits lim, Attributes attr)
+        addFitParameter(FitSuite self, std::string const & name, double value, RealLimits lim)
         addFitParameter(FitSuite self, std::string const & name, double value)
 
         void FitSuite::addFitParameter(const std::string &name, double value, const Limits &lim=Limits::limitless(), const Attributes &attr=Attributes::free(), double step=0.0)
@@ -6116,6 +6166,7 @@ class FitSuiteObjects(IParameterized):
     C++ includes: FitSuiteObjects.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -6136,7 +6187,7 @@ class FitSuiteObjects(IParameterized):
         this = _libBornAgainCore.new_FitSuiteObjects()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FitSuiteObjects
     __del__ = lambda self: None
@@ -6499,6 +6550,7 @@ class FitStrategyAdjustMinimizer(IFitStrategy):
     C++ includes: FitStrategyAdjustMinimizer.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFitStrategy]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -6522,7 +6574,7 @@ class FitStrategyAdjustMinimizer(IFitStrategy):
         this = _libBornAgainCore.new_FitStrategyAdjustMinimizer(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FitStrategyAdjustMinimizer
     __del__ = lambda self: None
@@ -6591,6 +6643,7 @@ class IMultiLayerBuilder(IParameterized):
     C++ includes: IMultiLayerBuilder.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -6615,7 +6668,7 @@ class IMultiLayerBuilder(IParameterized):
         this = _libBornAgainCore.new_IMultiLayerBuilder(_self, )
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_IMultiLayerBuilder
     __del__ = lambda self: None
@@ -6711,6 +6764,7 @@ class ISampleVisitor(_object):
     C++ includes: ISampleVisitor.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, ISampleVisitor, name, value)
     __swig_getmethods__ = {}
@@ -6727,7 +6781,7 @@ class ISampleVisitor(_object):
         this = _libBornAgainCore.new_ISampleVisitor()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_ISampleVisitor
     __del__ = lambda self: None
@@ -6885,6 +6939,7 @@ class ICompositeSample(ISample):
     C++ includes: ICompositeSample.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ISample]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -6985,6 +7040,7 @@ class IClusteredParticles(ICompositeSample):
     C++ includes: IClusteredParticles.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICompositeSample]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -7081,6 +7137,7 @@ class Crystal(IClusteredParticles):
     C++ includes: Crystal.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IClusteredParticles]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -7101,7 +7158,7 @@ class Crystal(IClusteredParticles):
         this = _libBornAgainCore.new_Crystal(lattice_basis, lattice)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_Crystal
     __del__ = lambda self: None
@@ -7207,6 +7264,7 @@ class IDistribution1D(IParameterized):
     C++ includes: Distributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -7258,7 +7316,7 @@ class IDistribution1D(IParameterized):
 
     def generateSamples(self, *args):
         """
-        generateSamples(IDistribution1D self, size_t nbr_samples, double sigma_factor=0.0, Limits limits) -> std::vector< ParameterSample,std::allocator< ParameterSample > >
+        generateSamples(IDistribution1D self, size_t nbr_samples, double sigma_factor=0.0, RealLimits limits) -> std::vector< ParameterSample,std::allocator< ParameterSample > >
         generateSamples(IDistribution1D self, size_t nbr_samples, double sigma_factor=0.0) -> std::vector< ParameterSample,std::allocator< ParameterSample > >
         generateSamples(IDistribution1D self, size_t nbr_samples) -> std::vector< ParameterSample,std::allocator< ParameterSample > >
         generateSamples(IDistribution1D self, size_t nbr_samples, double xmin, double xmax) -> std::vector< ParameterSample,std::allocator< ParameterSample > >
@@ -7273,7 +7331,7 @@ class IDistribution1D(IParameterized):
 
     def generateValueList(self, *args):
         """
-        generateValueList(IDistribution1D self, size_t nbr_samples, double sigma_factor, Limits limits) -> vdouble1d_t
+        generateValueList(IDistribution1D self, size_t nbr_samples, double sigma_factor, RealLimits limits) -> vdouble1d_t
         generateValueList(IDistribution1D self, size_t nbr_samples, double sigma_factor) -> vdouble1d_t
 
         virtual std::vector<double> IDistribution1D::generateValueList(size_t nbr_samples, double sigma_factor, const Limits &limits=Limits()) const =0
@@ -7358,6 +7416,7 @@ class DistributionGate(IDistribution1D):
     C++ includes: Distributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -7379,7 +7438,7 @@ class DistributionGate(IDistribution1D):
         this = _libBornAgainCore.new_DistributionGate(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_DistributionGate
     __del__ = lambda self: None
@@ -7446,7 +7505,7 @@ class DistributionGate(IDistribution1D):
 
     def generateValueList(self, *args):
         """
-        generateValueList(DistributionGate self, size_t nbr_samples, double sigma_factor, Limits limits) -> vdouble1d_t
+        generateValueList(DistributionGate self, size_t nbr_samples, double sigma_factor, RealLimits limits) -> vdouble1d_t
         generateValueList(DistributionGate self, size_t nbr_samples, double sigma_factor) -> vdouble1d_t
 
         std::vector< double > DistributionGate::generateValueList(size_t nbr_samples, double sigma_factor, const Limits &limits=Limits()) const
@@ -7480,6 +7539,7 @@ class DistributionLorentz(IDistribution1D):
     C++ includes: Distributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -7501,7 +7561,7 @@ class DistributionLorentz(IDistribution1D):
         this = _libBornAgainCore.new_DistributionLorentz(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_DistributionLorentz
     __del__ = lambda self: None
@@ -7554,7 +7614,7 @@ class DistributionLorentz(IDistribution1D):
 
     def generateValueList(self, *args):
         """
-        generateValueList(DistributionLorentz self, size_t nbr_samples, double sigma_factor, Limits limits) -> vdouble1d_t
+        generateValueList(DistributionLorentz self, size_t nbr_samples, double sigma_factor, RealLimits limits) -> vdouble1d_t
         generateValueList(DistributionLorentz self, size_t nbr_samples, double sigma_factor) -> vdouble1d_t
 
         std::vector< double > DistributionLorentz::generateValueList(size_t nbr_samples, double sigma_factor, const Limits &limits=Limits()) const
@@ -7588,6 +7648,7 @@ class DistributionGaussian(IDistribution1D):
     C++ includes: Distributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -7609,7 +7670,7 @@ class DistributionGaussian(IDistribution1D):
         this = _libBornAgainCore.new_DistributionGaussian(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_DistributionGaussian
     __del__ = lambda self: None
@@ -7664,7 +7725,7 @@ class DistributionGaussian(IDistribution1D):
 
     def generateValueList(self, *args):
         """
-        generateValueList(DistributionGaussian self, size_t nbr_samples, double sigma_factor, Limits limits) -> vdouble1d_t
+        generateValueList(DistributionGaussian self, size_t nbr_samples, double sigma_factor, RealLimits limits) -> vdouble1d_t
         generateValueList(DistributionGaussian self, size_t nbr_samples, double sigma_factor) -> vdouble1d_t
 
         std::vector< double > DistributionGaussian::generateValueList(size_t nbr_samples, double sigma_factor, const Limits &limits=Limits()) const
@@ -7698,6 +7759,7 @@ class DistributionLogNormal(IDistribution1D):
     C++ includes: Distributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -7719,7 +7781,7 @@ class DistributionLogNormal(IDistribution1D):
         this = _libBornAgainCore.new_DistributionLogNormal(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_DistributionLogNormal
     __del__ = lambda self: None
@@ -7786,7 +7848,7 @@ class DistributionLogNormal(IDistribution1D):
 
     def generateValueList(self, *args):
         """
-        generateValueList(DistributionLogNormal self, size_t nbr_samples, double sigma_factor, Limits limits) -> vdouble1d_t
+        generateValueList(DistributionLogNormal self, size_t nbr_samples, double sigma_factor, RealLimits limits) -> vdouble1d_t
         generateValueList(DistributionLogNormal self, size_t nbr_samples, double sigma_factor) -> vdouble1d_t
 
         std::vector< double > DistributionLogNormal::generateValueList(size_t nbr_samples, double sigma_factor, const Limits &limits=Limits()) const
@@ -7820,6 +7882,7 @@ class DistributionCosine(IDistribution1D):
     C++ includes: Distributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -7841,7 +7904,7 @@ class DistributionCosine(IDistribution1D):
         this = _libBornAgainCore.new_DistributionCosine(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_DistributionCosine
     __del__ = lambda self: None
@@ -7896,7 +7959,7 @@ class DistributionCosine(IDistribution1D):
 
     def generateValueList(self, *args):
         """
-        generateValueList(DistributionCosine self, size_t nbr_samples, double sigma_factor, Limits limits) -> vdouble1d_t
+        generateValueList(DistributionCosine self, size_t nbr_samples, double sigma_factor, RealLimits limits) -> vdouble1d_t
         generateValueList(DistributionCosine self, size_t nbr_samples, double sigma_factor) -> vdouble1d_t
 
         std::vector< double > DistributionCosine::generateValueList(size_t nbr_samples, double sigma_factor, const Limits &limits=Limits()) const
@@ -7930,6 +7993,7 @@ class DetectorMask(_object):
     C++ includes: DetectorMask.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, DetectorMask, name, value)
     __swig_getmethods__ = {}
@@ -7947,7 +8011,7 @@ class DetectorMask(_object):
         this = _libBornAgainCore.new_DetectorMask(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def addMask(self, shape, mask_value):
@@ -8079,6 +8143,7 @@ class Ellipse(IShape2D):
     C++ includes: Ellipse.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IShape2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -8118,7 +8183,7 @@ class Ellipse(IShape2D):
         this = _libBornAgainCore.new_Ellipse(xcenter, ycenter, xradius, yradius, theta)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -8207,6 +8272,7 @@ class IFTDecayFunction1D(IParameterized):
     C++ includes: FTDecayFunctions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -8273,6 +8339,7 @@ class FTDecayFunction1DCauchy(IFTDecayFunction1D):
     C++ includes: FTDecayFunctions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDecayFunction1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -8293,7 +8360,7 @@ class FTDecayFunction1DCauchy(IFTDecayFunction1D):
         this = _libBornAgainCore.new_FTDecayFunction1DCauchy(omega)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -8329,6 +8396,7 @@ class FTDecayFunction1DGauss(IFTDecayFunction1D):
     C++ includes: FTDecayFunctions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDecayFunction1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -8349,7 +8417,7 @@ class FTDecayFunction1DGauss(IFTDecayFunction1D):
         this = _libBornAgainCore.new_FTDecayFunction1DGauss(omega)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -8385,6 +8453,7 @@ class FTDecayFunction1DTriangle(IFTDecayFunction1D):
     C++ includes: FTDecayFunctions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDecayFunction1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -8405,7 +8474,7 @@ class FTDecayFunction1DTriangle(IFTDecayFunction1D):
         this = _libBornAgainCore.new_FTDecayFunction1DTriangle(omega)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -8441,6 +8510,7 @@ class FTDecayFunction1DVoigt(IFTDecayFunction1D):
     C++ includes: FTDecayFunctions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDecayFunction1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -8461,7 +8531,7 @@ class FTDecayFunction1DVoigt(IFTDecayFunction1D):
         this = _libBornAgainCore.new_FTDecayFunction1DVoigt(omega, eta)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -8507,6 +8577,7 @@ class IFTDecayFunction2D(IParameterized):
     C++ includes: FTDecayFunctions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -8627,6 +8698,7 @@ class FTDecayFunction2DCauchy(IFTDecayFunction2D):
     C++ includes: FTDecayFunctions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDecayFunction2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -8649,7 +8721,7 @@ class FTDecayFunction2DCauchy(IFTDecayFunction2D):
         this = _libBornAgainCore.new_FTDecayFunction2DCauchy(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -8687,6 +8759,7 @@ class FTDecayFunction2DGauss(IFTDecayFunction2D):
     C++ includes: FTDecayFunctions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDecayFunction2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -8709,7 +8782,7 @@ class FTDecayFunction2DGauss(IFTDecayFunction2D):
         this = _libBornAgainCore.new_FTDecayFunction2DGauss(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -8747,6 +8820,7 @@ class FTDecayFunction2DVoigt(IFTDecayFunction2D):
     C++ includes: FTDecayFunctions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDecayFunction2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -8769,7 +8843,7 @@ class FTDecayFunction2DVoigt(IFTDecayFunction2D):
         this = _libBornAgainCore.new_FTDecayFunction2DVoigt(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -8817,6 +8891,7 @@ class IFTDistribution1D(IParameterized):
     C++ includes: FTDistributions1D.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -8885,6 +8960,7 @@ class FTDistribution1DCauchy(IFTDistribution1D):
     C++ includes: FTDistributions1D.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -8905,7 +8981,7 @@ class FTDistribution1DCauchy(IFTDistribution1D):
         this = _libBornAgainCore.new_FTDistribution1DCauchy(omega)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -8943,6 +9019,7 @@ class FTDistribution1DGauss(IFTDistribution1D):
     C++ includes: FTDistributions1D.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -8963,7 +9040,7 @@ class FTDistribution1DGauss(IFTDistribution1D):
         this = _libBornAgainCore.new_FTDistribution1DGauss(omega)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -9001,6 +9078,7 @@ class FTDistribution1DGate(IFTDistribution1D):
     C++ includes: FTDistributions1D.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -9021,7 +9099,7 @@ class FTDistribution1DGate(IFTDistribution1D):
         this = _libBornAgainCore.new_FTDistribution1DGate(omega)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -9059,6 +9137,7 @@ class FTDistribution1DTriangle(IFTDistribution1D):
     C++ includes: FTDistributions1D.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -9079,7 +9158,7 @@ class FTDistribution1DTriangle(IFTDistribution1D):
         this = _libBornAgainCore.new_FTDistribution1DTriangle(omega)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FTDistribution1DTriangle
     __del__ = lambda self: None
@@ -9117,6 +9196,7 @@ class FTDistribution1DCosine(IFTDistribution1D):
     C++ includes: FTDistributions1D.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -9137,7 +9217,7 @@ class FTDistribution1DCosine(IFTDistribution1D):
         this = _libBornAgainCore.new_FTDistribution1DCosine(omega)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -9175,6 +9255,7 @@ class FTDistribution1DVoigt(IFTDistribution1D):
     C++ includes: FTDistributions1D.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -9195,7 +9276,7 @@ class FTDistribution1DVoigt(IFTDistribution1D):
         this = _libBornAgainCore.new_FTDistribution1DVoigt(omega, eta)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -9243,6 +9324,7 @@ class IFTDistribution2D(IParameterized):
     C++ includes: FTDistributions2D.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -9341,6 +9423,7 @@ class FTDistribution2DCauchy(IFTDistribution2D):
     C++ includes: FTDistributions2D.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -9363,7 +9446,7 @@ class FTDistribution2DCauchy(IFTDistribution2D):
         this = _libBornAgainCore.new_FTDistribution2DCauchy(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -9401,6 +9484,7 @@ class FTDistribution2DGauss(IFTDistribution2D):
     C++ includes: FTDistributions2D.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -9423,7 +9507,7 @@ class FTDistribution2DGauss(IFTDistribution2D):
         this = _libBornAgainCore.new_FTDistribution2DGauss(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -9461,6 +9545,7 @@ class FTDistribution2DGate(IFTDistribution2D):
     C++ includes: FTDistributions2D.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -9483,7 +9568,7 @@ class FTDistribution2DGate(IFTDistribution2D):
         this = _libBornAgainCore.new_FTDistribution2DGate(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -9521,6 +9606,7 @@ class FTDistribution2DCone(IFTDistribution2D):
     C++ includes: FTDistributions2D.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -9543,7 +9629,7 @@ class FTDistribution2DCone(IFTDistribution2D):
         this = _libBornAgainCore.new_FTDistribution2DCone(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -9581,6 +9667,7 @@ class FTDistribution2DVoigt(IFTDistribution2D):
     C++ includes: FTDistributions2D.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -9603,7 +9690,7 @@ class FTDistribution2DVoigt(IFTDistribution2D):
         this = _libBornAgainCore.new_FTDistribution2DVoigt(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -9651,6 +9738,7 @@ class FixedBinAxis(IAxis):
     C++ includes: FixedBinAxis.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IAxis]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -9688,7 +9776,7 @@ class FixedBinAxis(IAxis):
         this = _libBornAgainCore.new_FixedBinAxis(name, nbins, start, end)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FixedBinAxis
     __del__ = lambda self: None
@@ -9827,6 +9915,7 @@ class IFormFactor(ISample):
     C++ includes: IFormFactor.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ISample]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -9851,7 +9940,7 @@ class IFormFactor(ISample):
         this = _libBornAgainCore.new_IFormFactor(_self, )
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_IFormFactor
     __del__ = lambda self: None
@@ -9957,7 +10046,8 @@ IFormFactor_swigregister = _libBornAgainCore.IFormFactor_swigregister
 IFormFactor_swigregister(IFormFactor)
 
 class vector_IFormFactorPtr_t(_object):
-    """Proxy of C++ std::vector<(p.IFormFactor)> class"""
+    """Proxy of C++ std::vector<(p.IFormFactor)> class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, vector_IFormFactorPtr_t, name, value)
     __swig_getmethods__ = {}
@@ -9986,11 +10076,6 @@ class vector_IFormFactorPtr_t(_object):
         return _libBornAgainCore.vector_IFormFactorPtr_t___len__(self)
 
 
-    def pop(self):
-        """pop(vector_IFormFactorPtr_t self) -> IFormFactor"""
-        return _libBornAgainCore.vector_IFormFactorPtr_t_pop(self)
-
-
     def __getslice__(self, i, j):
         """__getslice__(vector_IFormFactorPtr_t self, std::vector< IFormFactor * >::difference_type i, std::vector< IFormFactor * >::difference_type j) -> vector_IFormFactorPtr_t"""
         return _libBornAgainCore.vector_IFormFactorPtr_t___getslice__(self, i, j)
@@ -9998,8 +10083,8 @@ class vector_IFormFactorPtr_t(_object):
 
     def __setslice__(self, *args):
         """
-        __setslice__(vector_IFormFactorPtr_t self, std::vector< IFormFactor * >::difference_type i, std::vector< IFormFactor * >::difference_type j, vector_IFormFactorPtr_t v)
         __setslice__(vector_IFormFactorPtr_t self, std::vector< IFormFactor * >::difference_type i, std::vector< IFormFactor * >::difference_type j)
+        __setslice__(vector_IFormFactorPtr_t self, std::vector< IFormFactor * >::difference_type i, std::vector< IFormFactor * >::difference_type j, vector_IFormFactorPtr_t v)
         """
         return _libBornAgainCore.vector_IFormFactorPtr_t___setslice__(self, *args)
 
@@ -10034,6 +10119,11 @@ class vector_IFormFactorPtr_t(_object):
         return _libBornAgainCore.vector_IFormFactorPtr_t___setitem__(self, *args)
 
 
+    def pop(self):
+        """pop(vector_IFormFactorPtr_t self) -> IFormFactor"""
+        return _libBornAgainCore.vector_IFormFactorPtr_t_pop(self)
+
+
     def append(self, x):
         """append(vector_IFormFactorPtr_t self, IFormFactor x)"""
         return _libBornAgainCore.vector_IFormFactorPtr_t_append(self, x)
@@ -10049,21 +10139,11 @@ class vector_IFormFactorPtr_t(_object):
         return _libBornAgainCore.vector_IFormFactorPtr_t_size(self)
 
 
-    def clear(self):
-        """clear(vector_IFormFactorPtr_t self)"""
-        return _libBornAgainCore.vector_IFormFactorPtr_t_clear(self)
-
-
     def swap(self, v):
         """swap(vector_IFormFactorPtr_t self, vector_IFormFactorPtr_t v)"""
         return _libBornAgainCore.vector_IFormFactorPtr_t_swap(self, v)
 
 
-    def get_allocator(self):
-        """get_allocator(vector_IFormFactorPtr_t self) -> std::vector< IFormFactor * >::allocator_type"""
-        return _libBornAgainCore.vector_IFormFactorPtr_t_get_allocator(self)
-
-
     def begin(self):
         """begin(vector_IFormFactorPtr_t self) -> std::vector< IFormFactor * >::iterator"""
         return _libBornAgainCore.vector_IFormFactorPtr_t_begin(self)
@@ -10084,6 +10164,16 @@ class vector_IFormFactorPtr_t(_object):
         return _libBornAgainCore.vector_IFormFactorPtr_t_rend(self)
 
 
+    def clear(self):
+        """clear(vector_IFormFactorPtr_t self)"""
+        return _libBornAgainCore.vector_IFormFactorPtr_t_clear(self)
+
+
+    def get_allocator(self):
+        """get_allocator(vector_IFormFactorPtr_t self) -> std::vector< IFormFactor * >::allocator_type"""
+        return _libBornAgainCore.vector_IFormFactorPtr_t_get_allocator(self)
+
+
     def pop_back(self):
         """pop_back(vector_IFormFactorPtr_t self)"""
         return _libBornAgainCore.vector_IFormFactorPtr_t_pop_back(self)
@@ -10107,7 +10197,7 @@ class vector_IFormFactorPtr_t(_object):
         this = _libBornAgainCore.new_vector_IFormFactorPtr_t(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def push_back(self, x):
@@ -10171,6 +10261,7 @@ class IFormFactorBorn(IFormFactor):
     C++ includes: IFormFactorBorn.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactor]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -10195,7 +10286,7 @@ class IFormFactorBorn(IFormFactor):
         this = _libBornAgainCore.new_IFormFactorBorn(_self, )
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_IFormFactorBorn
     __del__ = lambda self: None
@@ -10287,6 +10378,7 @@ class IFormFactorDecorator(IFormFactor):
     C++ includes: IFormFactorDecorator.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactor]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -10373,6 +10465,7 @@ class PolygonalTopology(_object):
     C++ includes: FormFactorPolyhedron.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, PolygonalTopology, name, value)
     __swig_getmethods__ = {}
@@ -10401,7 +10494,7 @@ class PolygonalTopology(_object):
         this = _libBornAgainCore.new_PolygonalTopology()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_PolygonalTopology
     __del__ = lambda self: None
@@ -10417,6 +10510,7 @@ class PolyhedralTopology(_object):
     C++ includes: FormFactorPolyhedron.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, PolyhedralTopology, name, value)
     __swig_getmethods__ = {}
@@ -10445,7 +10539,7 @@ class PolyhedralTopology(_object):
         this = _libBornAgainCore.new_PolyhedralTopology()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_PolyhedralTopology
     __del__ = lambda self: None
@@ -10461,6 +10555,7 @@ class PolyhedralEdge(_object):
     C++ includes: FormFactorPolyhedron.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, PolyhedralEdge, name, value)
     __swig_getmethods__ = {}
@@ -10477,7 +10572,7 @@ class PolyhedralEdge(_object):
         this = _libBornAgainCore.new_PolyhedralEdge(_Vlow, _Vhig)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def E(self):
@@ -10545,6 +10640,7 @@ class PolyhedralFace(_object):
     C++ includes: FormFactorPolyhedron.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, PolyhedralFace, name, value)
     __swig_getmethods__ = {}
@@ -10582,7 +10678,7 @@ class PolyhedralFace(_object):
         this = _libBornAgainCore.new_PolyhedralFace(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def area(self):
@@ -10702,6 +10798,7 @@ class FormFactorPolyhedron(IFormFactorBorn):
     C++ includes: FormFactorPolyhedron.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -10800,6 +10897,7 @@ class FormFactorPolygonalPrism(IFormFactorBorn):
     C++ includes: FormFactorPolyhedron.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -10820,7 +10918,7 @@ class FormFactorPolygonalPrism(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorPolygonalPrism(height)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def evaluate_for_q(self, q):
@@ -10882,6 +10980,7 @@ class FormFactorPolygonalSurface(IFormFactorBorn):
     C++ includes: FormFactorPolyhedron.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -10902,7 +11001,7 @@ class FormFactorPolygonalSurface(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorPolygonalSurface()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def evaluate_for_q(self, q):
@@ -10954,6 +11053,7 @@ class FormFactorAnisoPyramid(FormFactorPolyhedron):
     C++ includes: FormFactorAnisoPyramid.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [FormFactorPolyhedron]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -10989,7 +11089,7 @@ class FormFactorAnisoPyramid(FormFactorPolyhedron):
         this = _libBornAgainCore.new_FormFactorAnisoPyramid(length, width, height, alpha)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -11069,6 +11169,7 @@ class FormFactorBox(IFormFactorBorn):
     C++ includes: FormFactorBox.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -11101,7 +11202,7 @@ class FormFactorBox(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorBox(length, width, height)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -11195,6 +11296,7 @@ class FormFactorCone(IFormFactorBorn):
     C++ includes: FormFactorCone.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -11227,7 +11329,7 @@ class FormFactorCone(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorCone(radius, height, alpha)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorCone
     __del__ = lambda self: None
@@ -11321,6 +11423,7 @@ class FormFactorCone6(FormFactorPolyhedron):
     C++ includes: FormFactorCone6.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [FormFactorPolyhedron]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -11353,7 +11456,7 @@ class FormFactorCone6(FormFactorPolyhedron):
         this = _libBornAgainCore.new_FormFactorCone6(base_edge, height, alpha)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -11423,6 +11526,7 @@ class FormFactorCrystal(IFormFactor):
     C++ includes: FormFactorCrystal.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactor]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -11443,7 +11547,7 @@ class FormFactorCrystal(IFormFactor):
         this = _libBornAgainCore.new_FormFactorCrystal(lattice, basis_form_factor, meso_form_factor)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorCrystal
     __del__ = lambda self: None
@@ -11519,6 +11623,7 @@ class FormFactorCuboctahedron(FormFactorPolyhedron):
     C++ includes: FormFactorCuboctahedron.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [FormFactorPolyhedron]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -11554,7 +11659,7 @@ class FormFactorCuboctahedron(FormFactorPolyhedron):
         this = _libBornAgainCore.new_FormFactorCuboctahedron(length, height, height_ratio, alpha)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -11634,6 +11739,7 @@ class FormFactorCylinder(IFormFactorBorn):
     C++ includes: FormFactorCylinder.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -11654,7 +11760,7 @@ class FormFactorCylinder(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorCylinder(radius, height)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorCylinder
     __del__ = lambda self: None
@@ -11738,6 +11844,7 @@ class FormFactorDecoratorDebyeWaller(IFormFactorDecorator):
     C++ includes: FormFactorDecoratorDebyeWaller.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorDecorator]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -11761,7 +11868,7 @@ class FormFactorDecoratorDebyeWaller(IFormFactorDecorator):
         this = _libBornAgainCore.new_FormFactorDecoratorDebyeWaller(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -11813,6 +11920,7 @@ class FormFactorDodecahedron(FormFactorPolyhedron):
     C++ includes: FormFactorDodecahedron.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [FormFactorPolyhedron]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -11841,7 +11949,7 @@ class FormFactorDodecahedron(FormFactorPolyhedron):
         this = _libBornAgainCore.new_FormFactorDodecahedron(edge)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -11891,6 +11999,7 @@ class FormFactorEllipsoidalCylinder(IFormFactorBorn):
     C++ includes: FormFactorEllipsoidalCylinder.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -11922,7 +12031,7 @@ class FormFactorEllipsoidalCylinder(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorEllipsoidalCylinder(radius_x, radius_y, height)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -12016,6 +12125,7 @@ class FormFactorFullSphere(IFormFactorBorn):
     C++ includes: FormFactorFullSphere.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -12036,7 +12146,7 @@ class FormFactorFullSphere(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorFullSphere(radius)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -12110,6 +12220,7 @@ class FormFactorFullSpheroid(IFormFactorBorn):
     C++ includes: FormFactorFullSpheroid.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -12139,7 +12250,7 @@ class FormFactorFullSpheroid(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorFullSpheroid(radius, height)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -12223,6 +12334,7 @@ class FormFactorGauss(IFormFactorBorn):
     C++ includes: FormFactorGauss.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -12244,7 +12356,7 @@ class FormFactorGauss(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorGauss(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -12328,6 +12440,7 @@ class FormFactorHemiEllipsoid(IFormFactorBorn):
     C++ includes: FormFactorHemiEllipsoid.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -12360,7 +12473,7 @@ class FormFactorHemiEllipsoid(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorHemiEllipsoid(radius_x, radius_y, height)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorHemiEllipsoid
     __del__ = lambda self: None
@@ -12454,6 +12567,7 @@ class FormFactorIcosahedron(FormFactorPolyhedron):
     C++ includes: FormFactorIcosahedron.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [FormFactorPolyhedron]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -12474,7 +12588,7 @@ class FormFactorIcosahedron(FormFactorPolyhedron):
         this = _libBornAgainCore.new_FormFactorIcosahedron(edge)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -12524,6 +12638,7 @@ class FormFactorLongBoxGauss(IFormFactorBorn):
     C++ includes: FormFactorLongBoxGauss.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -12558,7 +12673,7 @@ class FormFactorLongBoxGauss(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorLongBoxGauss(length, width, height)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -12652,6 +12767,7 @@ class FormFactorLongBoxLorentz(IFormFactorBorn):
     C++ includes: FormFactorLongBoxLorentz.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -12686,7 +12802,7 @@ class FormFactorLongBoxLorentz(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorLongBoxLorentz(length, width, height)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -12780,6 +12896,7 @@ class FormFactorLongRipple1Gauss(IFormFactorBorn):
     C++ includes: FormFactorLongRipple1Gauss.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -12814,7 +12931,7 @@ class FormFactorLongRipple1Gauss(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorLongRipple1Gauss(length, width, height)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorLongRipple1Gauss
     __del__ = lambda self: None
@@ -12908,6 +13025,7 @@ class FormFactorLongRipple1Lorentz(IFormFactorBorn):
     C++ includes: FormFactorLongRipple1Lorentz.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -12942,7 +13060,7 @@ class FormFactorLongRipple1Lorentz(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorLongRipple1Lorentz(length, width, height)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorLongRipple1Lorentz
     __del__ = lambda self: None
@@ -13036,6 +13154,7 @@ class FormFactorLongRipple2Gauss(IFormFactorBorn):
     C++ includes: FormFactorLongRipple2Gauss.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -13073,7 +13192,7 @@ class FormFactorLongRipple2Gauss(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorLongRipple2Gauss(length, width, height, asymmetry)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorLongRipple2Gauss
     __del__ = lambda self: None
@@ -13177,6 +13296,7 @@ class FormFactorLongRipple2Lorentz(IFormFactorBorn):
     C++ includes: FormFactorLongRipple2Lorentz.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -13212,7 +13332,7 @@ class FormFactorLongRipple2Lorentz(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorLongRipple2Lorentz(length, width, height, asymmetry)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorLongRipple2Lorentz
     __del__ = lambda self: None
@@ -13316,6 +13436,7 @@ class FormFactorLorentz(IFormFactorBorn):
     C++ includes: FormFactorLorentz.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -13337,7 +13458,7 @@ class FormFactorLorentz(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorLorentz(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -13421,6 +13542,7 @@ class FormFactorPrism3(FormFactorPolygonalPrism):
     C++ includes: FormFactorPrism3.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [FormFactorPolygonalPrism]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -13441,7 +13563,7 @@ class FormFactorPrism3(FormFactorPolygonalPrism):
         this = _libBornAgainCore.new_FormFactorPrism3(base_edge, height)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -13491,6 +13613,7 @@ class FormFactorPrism6(FormFactorPolygonalPrism):
     C++ includes: FormFactorPrism6.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [FormFactorPolygonalPrism]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -13511,7 +13634,7 @@ class FormFactorPrism6(FormFactorPolygonalPrism):
         this = _libBornAgainCore.new_FormFactorPrism6(base_edge, height)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -13561,6 +13684,7 @@ class FormFactorPyramid(FormFactorPolyhedron):
     C++ includes: FormFactorPyramid.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [FormFactorPolyhedron]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -13593,7 +13717,7 @@ class FormFactorPyramid(FormFactorPolyhedron):
         this = _libBornAgainCore.new_FormFactorPyramid(base_edge, height, alpha)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -13663,6 +13787,7 @@ class FormFactorRipple1(IFormFactorBorn):
     C++ includes: FormFactorRipple1.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -13697,7 +13822,7 @@ class FormFactorRipple1(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorRipple1(length, width, height)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorRipple1
     __del__ = lambda self: None
@@ -13791,6 +13916,7 @@ class FormFactorRipple2(IFormFactorBorn):
     C++ includes: FormFactorRipple2.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -13828,7 +13954,7 @@ class FormFactorRipple2(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorRipple2(length, width, height, asymmetry)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorRipple2
     __del__ = lambda self: None
@@ -13932,6 +14058,7 @@ class FormFactorSphereGaussianRadius(IFormFactorBorn):
     C++ includes: FormFactorSphereGaussianRadius.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -13952,7 +14079,7 @@ class FormFactorSphereGaussianRadius(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorSphereGaussianRadius(mean, sigma)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorSphereGaussianRadius
     __del__ = lambda self: None
@@ -14016,6 +14143,7 @@ class FormFactorSphereLogNormalRadius(IFormFactorBorn):
     C++ includes: FormFactorSphereLogNormalRadius.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -14036,7 +14164,7 @@ class FormFactorSphereLogNormalRadius(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorSphereLogNormalRadius(mean, scale_param, n_samples)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorSphereLogNormalRadius
     __del__ = lambda self: None
@@ -14100,6 +14228,7 @@ class FormFactorSphereUniformRadius(IFormFactorBorn):
     C++ includes: FormFactorSphereUniformRadius.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -14120,7 +14249,7 @@ class FormFactorSphereUniformRadius(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorSphereUniformRadius(mean, full_width)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -14184,6 +14313,7 @@ class FormFactorTetrahedron(FormFactorPolyhedron):
     C++ includes: FormFactorTetrahedron.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [FormFactorPolyhedron]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -14216,7 +14346,7 @@ class FormFactorTetrahedron(FormFactorPolyhedron):
         this = _libBornAgainCore.new_FormFactorTetrahedron(base_edge, height, alpha)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -14286,6 +14416,7 @@ class FormFactorTrivial(IFormFactorBorn):
     C++ includes: FormFactorTrivial.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -14306,7 +14437,7 @@ class FormFactorTrivial(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorTrivial()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -14370,6 +14501,7 @@ class FormFactorTruncatedCube(FormFactorPolyhedron):
     C++ includes: FormFactorTruncatedCube.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [FormFactorPolyhedron]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -14399,7 +14531,7 @@ class FormFactorTruncatedCube(FormFactorPolyhedron):
         this = _libBornAgainCore.new_FormFactorTruncatedCube(length, removed_length)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -14459,6 +14591,7 @@ class FormFactorTruncatedSphere(IFormFactorBorn):
     C++ includes: FormFactorTruncatedSphere.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -14479,7 +14612,7 @@ class FormFactorTruncatedSphere(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorTruncatedSphere(radius, height)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorTruncatedSphere
     __del__ = lambda self: None
@@ -14551,6 +14684,7 @@ class FormFactorTruncatedSpheroid(IFormFactorBorn):
     C++ includes: FormFactorTruncatedSpheroid.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -14571,7 +14705,7 @@ class FormFactorTruncatedSpheroid(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorTruncatedSpheroid(radius, height, height_flattening)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorTruncatedSpheroid
     __del__ = lambda self: None
@@ -14667,6 +14801,7 @@ class FormFactorWeighted(IFormFactor):
     C++ includes: FormFactorWeighted.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactor]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -14687,7 +14822,7 @@ class FormFactorWeighted(IFormFactor):
         this = _libBornAgainCore.new_FormFactorWeighted()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorWeighted
     __del__ = lambda self: None
@@ -14774,6 +14909,7 @@ class Simulation(ICloneable, IParameterized):
     C++ includes: Simulation.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICloneable, IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -14904,7 +15040,7 @@ class Simulation(ICloneable, IParameterized):
 
     def addParameterDistribution(self, *args):
         """
-        addParameterDistribution(Simulation self, std::string const & param_name, IDistribution1D distribution, size_t nbr_samples, double sigma_factor=0.0, Limits limits)
+        addParameterDistribution(Simulation self, std::string const & param_name, IDistribution1D distribution, size_t nbr_samples, double sigma_factor=0.0, RealLimits limits)
         addParameterDistribution(Simulation self, std::string const & param_name, IDistribution1D distribution, size_t nbr_samples, double sigma_factor=0.0)
         addParameterDistribution(Simulation self, std::string const & param_name, IDistribution1D distribution, size_t nbr_samples)
         addParameterDistribution(Simulation self, ParameterDistribution par_distr)
@@ -14979,6 +15115,7 @@ class SimulationOptions(_object):
     C++ includes: SimulationOptions.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, SimulationOptions, name, value)
     __swig_getmethods__ = {}
@@ -14995,7 +15132,7 @@ class SimulationOptions(_object):
         this = _libBornAgainCore.new_SimulationOptions()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def isIntegrate(self):
@@ -15140,6 +15277,7 @@ class GISASSimulation(Simulation):
     C++ includes: GISASSimulation.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [Simulation]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -15162,7 +15300,7 @@ class GISASSimulation(Simulation):
         this = _libBornAgainCore.new_GISASSimulation(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_GISASSimulation
     __del__ = lambda self: None
@@ -15439,6 +15577,7 @@ class IHistogram(_object):
     C++ includes: IHistogram.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, IHistogram, name, value)
     __swig_getmethods__ = {}
@@ -15992,7 +16131,8 @@ def IHistogram_createFrom(filename):
     return _libBornAgainCore.IHistogram_createFrom(filename)
 
 class Histogram1D(IHistogram):
-    """Proxy of C++ Histogram1D class"""
+    """Proxy of C++ Histogram1D class."""
+
     __swig_setmethods__ = {}
     for _s in [IHistogram]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -16018,7 +16158,7 @@ class Histogram1D(IHistogram):
         this = _libBornAgainCore.new_Histogram1D(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -16146,6 +16286,7 @@ class Histogram2D(IHistogram):
     C++ includes: Histogram2D.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IHistogram]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -16171,7 +16312,7 @@ class Histogram2D(IHistogram):
         this = _libBornAgainCore.new_Histogram2D(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -16294,6 +16435,7 @@ class IMaterial(INamed):
     C++ includes: IMaterial.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [INamed]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -16379,6 +16521,7 @@ class HomogeneousMaterial(IMaterial):
     C++ includes: HomogeneousMaterial.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IMaterial]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -16402,7 +16545,7 @@ class HomogeneousMaterial(IMaterial):
         this = _libBornAgainCore.new_HomogeneousMaterial(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_HomogeneousMaterial
     __del__ = lambda self: None
@@ -16460,6 +16603,7 @@ class HomogeneousMagneticMaterial(HomogeneousMaterial):
     C++ includes: HomogeneousMagneticMaterial.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [HomogeneousMaterial]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -16483,7 +16627,7 @@ class HomogeneousMagneticMaterial(HomogeneousMaterial):
         this = _libBornAgainCore.new_HomogeneousMagneticMaterial(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -16551,7 +16695,8 @@ HomogeneousMagneticMaterial_swigregister = _libBornAgainCore.HomogeneousMagnetic
 HomogeneousMagneticMaterial_swigregister(HomogeneousMagneticMaterial)
 
 class IDetector2D(IParameterized):
-    """Proxy of C++ IDetector2D class"""
+    """Proxy of C++ IDetector2D class."""
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -16853,6 +16998,7 @@ class IDetectorResolution(ICloneable, IParameterized):
     C++ includes: IDetectorResolution.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICloneable, IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -16901,6 +17047,7 @@ class IInterferenceFunction(ISample):
     C++ includes: IInterferenceFunction.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ISample]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -16987,6 +17134,7 @@ class ILayout(ICompositeSample):
     C++ includes: ILayout.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICompositeSample]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -17173,6 +17321,7 @@ class IAbstractParticle(ICompositeSample):
     C++ includes: IAbstractParticle.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICompositeSample]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -17281,6 +17430,7 @@ class IParticle(IAbstractParticle):
     C++ includes: IParticle.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IAbstractParticle]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -17440,6 +17590,7 @@ class IResolutionFunction2D(IParameterized):
     C++ includes: IResolutionFunction2D.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -17488,6 +17639,7 @@ class IRotation(ISample):
     C++ includes: Rotations.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ISample]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -17601,7 +17753,8 @@ def CreateProduct(left, right):
     """
     return _libBornAgainCore.CreateProduct(left, right)
 class RotationX(IRotation):
-    """Proxy of C++ RotationX class"""
+    """Proxy of C++ RotationX class."""
+
     __swig_setmethods__ = {}
     for _s in [IRotation]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -17622,7 +17775,7 @@ class RotationX(IRotation):
         this = _libBornAgainCore.new_RotationX(angle)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -17688,7 +17841,8 @@ RotationX_swigregister = _libBornAgainCore.RotationX_swigregister
 RotationX_swigregister(RotationX)
 
 class RotationY(IRotation):
-    """Proxy of C++ RotationY class"""
+    """Proxy of C++ RotationY class."""
+
     __swig_setmethods__ = {}
     for _s in [IRotation]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -17709,7 +17863,7 @@ class RotationY(IRotation):
         this = _libBornAgainCore.new_RotationY(angle)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -17775,7 +17929,8 @@ RotationY_swigregister = _libBornAgainCore.RotationY_swigregister
 RotationY_swigregister(RotationY)
 
 class RotationZ(IRotation):
-    """Proxy of C++ RotationZ class"""
+    """Proxy of C++ RotationZ class."""
+
     __swig_setmethods__ = {}
     for _s in [IRotation]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -17797,7 +17952,7 @@ class RotationZ(IRotation):
         this = _libBornAgainCore.new_RotationZ(angle)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -17863,7 +18018,8 @@ RotationZ_swigregister = _libBornAgainCore.RotationZ_swigregister
 RotationZ_swigregister(RotationZ)
 
 class RotationEuler(IRotation):
-    """Proxy of C++ RotationEuler class"""
+    """Proxy of C++ RotationEuler class."""
+
     __swig_setmethods__ = {}
     for _s in [IRotation]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -17884,7 +18040,7 @@ class RotationEuler(IRotation):
         this = _libBornAgainCore.new_RotationEuler(alpha, beta, gamma)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -17978,6 +18134,7 @@ class ISelectionRule(_object):
     C++ includes: ISelectionRule.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, ISelectionRule, name, value)
     __swig_getmethods__ = {}
@@ -18020,6 +18177,7 @@ class SimpleSelectionRule(ISelectionRule):
     C++ includes: ISelectionRule.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ISelectionRule]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -18040,7 +18198,7 @@ class SimpleSelectionRule(ISelectionRule):
         this = _libBornAgainCore.new_SimpleSelectionRule(a, b, c, modulus)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_SimpleSelectionRule
     __del__ = lambda self: None
@@ -18076,6 +18234,7 @@ class Instrument(IParameterized):
     C++ includes: Instrument.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -18097,7 +18256,7 @@ class Instrument(IParameterized):
         this = _libBornAgainCore.new_Instrument(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_Instrument
     __del__ = lambda self: None
@@ -18335,6 +18494,7 @@ class IntensityDataFunctions(_object):
     C++ includes: IntensityDataFunctions.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, IntensityDataFunctions, name, value)
     __swig_getmethods__ = {}
@@ -18390,7 +18550,7 @@ class IntensityDataFunctions(_object):
         this = _libBornAgainCore.new_IntensityDataFunctions()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_IntensityDataFunctions
     __del__ = lambda self: None
@@ -18427,6 +18587,7 @@ class IntensityDataIOFactory(_object):
     C++ includes: IntensityDataIOFactory.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, IntensityDataIOFactory, name, value)
     __swig_getmethods__ = {}
@@ -18481,7 +18642,7 @@ class IntensityDataIOFactory(_object):
         this = _libBornAgainCore.new_IntensityDataIOFactory()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_IntensityDataIOFactory
     __del__ = lambda self: None
@@ -18513,6 +18674,7 @@ class InterferenceFunction1DLattice(IInterferenceFunction):
     C++ includes: InterferenceFunction1DLattice.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IInterferenceFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -18542,7 +18704,7 @@ class InterferenceFunction1DLattice(IInterferenceFunction):
         this = _libBornAgainCore.new_InterferenceFunction1DLattice(length, xi)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_InterferenceFunction1DLattice
     __del__ = lambda self: None
@@ -18624,6 +18786,7 @@ class InterferenceFunctionRadialParaCrystal(IInterferenceFunction):
     C++ includes: InterferenceFunctionRadialParaCrystal.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IInterferenceFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -18645,7 +18808,7 @@ class InterferenceFunctionRadialParaCrystal(IInterferenceFunction):
         this = _libBornAgainCore.new_InterferenceFunctionRadialParaCrystal(peak_distance, damping_length)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -18802,6 +18965,7 @@ class InterferenceFunction2DLattice(IInterferenceFunction):
     C++ includes: InterferenceFunction2DLattice.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IInterferenceFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -18838,7 +19002,7 @@ class InterferenceFunction2DLattice(IInterferenceFunction):
         this = _libBornAgainCore.new_InterferenceFunction2DLattice(length_1, length_2, angle, xi)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_InterferenceFunction2DLattice
     __del__ = lambda self: None
@@ -18968,6 +19132,7 @@ class InterferenceFunction2DParaCrystal(IInterferenceFunction):
     C++ includes: InterferenceFunction2DParaCrystal.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IInterferenceFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -19008,7 +19173,7 @@ class InterferenceFunction2DParaCrystal(IInterferenceFunction):
         this = _libBornAgainCore.new_InterferenceFunction2DParaCrystal(length_1, length_2, alpha_lattice, xi, damping_length)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_InterferenceFunction2DParaCrystal
     __del__ = lambda self: None
@@ -19231,6 +19396,7 @@ class InterferenceFunctionNone(IInterferenceFunction):
     C++ includes: InterferenceFunctionNone.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IInterferenceFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -19251,7 +19417,7 @@ class InterferenceFunctionNone(IInterferenceFunction):
         this = _libBornAgainCore.new_InterferenceFunctionNone()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -19303,6 +19469,7 @@ class IPixelMap(_object):
     C++ includes: IPixelMap.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, IPixelMap, name, value)
     __swig_getmethods__ = {}
@@ -19375,6 +19542,7 @@ class SphericalDetector(IDetector2D):
     C++ includes: SphericalDetector.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IDetector2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -19397,7 +19565,7 @@ class SphericalDetector(IDetector2D):
         this = _libBornAgainCore.new_SphericalDetector(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -19451,7 +19619,8 @@ SphericalDetector_swigregister = _libBornAgainCore.SphericalDetector_swigregiste
 SphericalDetector_swigregister(SphericalDetector)
 
 class AngularPixelMap(IPixelMap):
-    """Proxy of C++ AngularPixelMap class"""
+    """Proxy of C++ AngularPixelMap class."""
+
     __swig_setmethods__ = {}
     for _s in [IPixelMap]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -19472,7 +19641,7 @@ class AngularPixelMap(IPixelMap):
         this = _libBornAgainCore.new_AngularPixelMap(alpha_bin, phi_bin)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_AngularPixelMap
     __del__ = lambda self: None
@@ -19538,6 +19707,7 @@ class IsGISAXSDetector(SphericalDetector):
     C++ includes: IsGISAXSDetector.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [SphericalDetector]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -19560,7 +19730,7 @@ class IsGISAXSDetector(SphericalDetector):
         this = _libBornAgainCore.new_IsGISAXSDetector(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -19586,6 +19756,7 @@ class Lattice(_object):
     C++ includes: Lattice.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, Lattice, name, value)
     __swig_getmethods__ = {}
@@ -19603,7 +19774,7 @@ class Lattice(_object):
         this = _libBornAgainCore.new_Lattice(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_Lattice
     __del__ = lambda self: None
@@ -19775,6 +19946,7 @@ class Lattice1DParameters(_object):
     C++ includes: Lattice1DParameters.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, Lattice1DParameters, name, value)
     __swig_getmethods__ = {}
@@ -19801,7 +19973,7 @@ class Lattice1DParameters(_object):
         this = _libBornAgainCore.new_Lattice1DParameters(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_setmethods__["m_length"] = _libBornAgainCore.Lattice1DParameters_m_length_set
     __swig_getmethods__["m_length"] = _libBornAgainCore.Lattice1DParameters_m_length_get
@@ -19825,6 +19997,7 @@ class Lattice2DParameters(_object):
     C++ includes: Lattice2DParameters.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, Lattice2DParameters, name, value)
     __swig_getmethods__ = {}
@@ -19841,7 +20014,7 @@ class Lattice2DParameters(_object):
         this = _libBornAgainCore.new_Lattice2DParameters()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def getUnitCellArea(self):
@@ -19883,6 +20056,7 @@ class Layer(ICompositeSample):
     C++ includes: Layer.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICompositeSample]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -19905,7 +20079,7 @@ class Layer(ICompositeSample):
         this = _libBornAgainCore.new_Layer(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_Layer
     __del__ = lambda self: None
@@ -20120,6 +20294,7 @@ class IRoughness(ISample):
     C++ includes: IRoughness.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ISample]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -20160,6 +20335,7 @@ class LayerRoughness(IRoughness):
     C++ includes: LayerRoughness.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IRoughness]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -20181,7 +20357,7 @@ class LayerRoughness(IRoughness):
         this = _libBornAgainCore.new_LayerRoughness(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -20321,6 +20497,7 @@ class Line(IShape2D):
     C++ includes: Line.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IShape2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -20341,7 +20518,7 @@ class Line(IShape2D):
         this = _libBornAgainCore.new_Line(x1, y1, x2, y2)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -20380,6 +20557,7 @@ class VerticalLine(IShape2D):
     C++ includes: Line.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IShape2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -20406,7 +20584,7 @@ class VerticalLine(IShape2D):
         this = _libBornAgainCore.new_VerticalLine(x)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -20455,6 +20633,7 @@ class HorizontalLine(IShape2D):
     C++ includes: Line.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IShape2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -20481,7 +20660,7 @@ class HorizontalLine(IShape2D):
         this = _libBornAgainCore.new_HorizontalLine(y)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -20530,6 +20709,7 @@ class MesoCrystal(IParticle):
     C++ includes: MesoCrystal.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParticle]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -20550,7 +20730,7 @@ class MesoCrystal(IParticle):
         this = _libBornAgainCore.new_MesoCrystal(particle_structure, form_factor)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_MesoCrystal
     __del__ = lambda self: None
@@ -20663,7 +20843,8 @@ ERROR = _libBornAgainCore.ERROR
 _libBornAgainCore.FATAL_swigconstant(_libBornAgainCore)
 FATAL = _libBornAgainCore.FATAL
 class Logger(_object):
-    """Proxy of C++ MSG::Logger class"""
+    """Proxy of C++ MSG::Logger class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, Logger, name, value)
     __swig_getmethods__ = {}
@@ -20675,7 +20856,7 @@ class Logger(_object):
         this = _libBornAgainCore.new_Logger(level)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_Logger
     __del__ = lambda self: None
@@ -20740,6 +20921,7 @@ class MultiLayer(ICompositeSample):
     C++ includes: MultiLayer.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICompositeSample]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -20760,7 +20942,7 @@ class MultiLayer(ICompositeSample):
         this = _libBornAgainCore.new_MultiLayer()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_MultiLayer
     __del__ = lambda self: None
@@ -21077,6 +21259,7 @@ class OffSpecSimulation(Simulation):
     C++ includes: OffSpecSimulation.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [Simulation]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -21099,7 +21282,7 @@ class OffSpecSimulation(Simulation):
         this = _libBornAgainCore.new_OffSpecSimulation(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_OffSpecSimulation
     __del__ = lambda self: None
@@ -21296,6 +21479,7 @@ class IntensityData(_object):
     C++ includes: OutputData.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, IntensityData, name, value)
     __swig_getmethods__ = {}
@@ -21312,7 +21496,7 @@ class IntensityData(_object):
         this = _libBornAgainCore.new_IntensityData()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_IntensityData
     __del__ = lambda self: None
@@ -21954,7 +22138,8 @@ def applyFunction(data, func):
     """
     return _libBornAgainCore.applyFunction(data, func)
 class ParameterDistribution(IParameterized):
-    """Proxy of C++ ParameterDistribution class"""
+    """Proxy of C++ ParameterDistribution class."""
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -21967,7 +22152,7 @@ class ParameterDistribution(IParameterized):
 
     def __init__(self, *args):
         """
-        __init__(ParameterDistribution self, std::string const & par_name, IDistribution1D distribution, size_t nbr_samples, double sigma_factor=0.0, Limits limits) -> ParameterDistribution
+        __init__(ParameterDistribution self, std::string const & par_name, IDistribution1D distribution, size_t nbr_samples, double sigma_factor=0.0, RealLimits limits) -> ParameterDistribution
         __init__(ParameterDistribution self, std::string const & par_name, IDistribution1D distribution, size_t nbr_samples, double sigma_factor=0.0) -> ParameterDistribution
         __init__(ParameterDistribution self, std::string const & par_name, IDistribution1D distribution, size_t nbr_samples) -> ParameterDistribution
         __init__(ParameterDistribution self, std::string const & par_name, IDistribution1D distribution, size_t nbr_samples, double xmin, double xmax) -> ParameterDistribution
@@ -21979,7 +22164,7 @@ class ParameterDistribution(IParameterized):
         this = _libBornAgainCore.new_ParameterDistribution(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_ParameterDistribution
     __del__ = lambda self: None
@@ -22066,7 +22251,7 @@ class ParameterDistribution(IParameterized):
 
     def getLimits(self):
         """
-        getLimits(ParameterDistribution self) -> Limits
+        getLimits(ParameterDistribution self) -> RealLimits
 
         Limits ParameterDistribution::getLimits() const 
 
@@ -22107,6 +22292,7 @@ class ParameterPool(_object):
     C++ includes: ParameterPool.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, ParameterPool, name, value)
     __swig_getmethods__ = {}
@@ -22123,7 +22309,7 @@ class ParameterPool(_object):
         this = _libBornAgainCore.new_ParameterPool(name, onChange)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_ParameterPool
     __del__ = lambda self: None
@@ -22294,6 +22480,7 @@ class Particle(IParticle):
     C++ includes: Particle.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParticle]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -22317,7 +22504,7 @@ class Particle(IParticle):
         this = _libBornAgainCore.new_Particle(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -22470,6 +22657,7 @@ class ParticleComposition(IParticle):
     C++ includes: ParticleComposition.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParticle]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -22493,7 +22681,7 @@ class ParticleComposition(IParticle):
         this = _libBornAgainCore.new_ParticleComposition(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_ParticleComposition
     __del__ = lambda self: None
@@ -22636,6 +22824,7 @@ class ParticleCoreShell(IParticle):
     C++ includes: ParticleCoreShell.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParticle]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -22657,7 +22846,7 @@ class ParticleCoreShell(IParticle):
         this = _libBornAgainCore.new_ParticleCoreShell(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_ParticleCoreShell
     __del__ = lambda self: None
@@ -22769,6 +22958,7 @@ class ParticleDistribution(IAbstractParticle):
     C++ includes: ParticleDistribution.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IAbstractParticle]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -22789,7 +22979,7 @@ class ParticleDistribution(IAbstractParticle):
         this = _libBornAgainCore.new_ParticleDistribution(prototype, par_distr)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -22926,6 +23116,7 @@ class ParticleLayout(ILayout):
     C++ includes: ParticleLayout.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ILayout]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -22948,7 +23139,7 @@ class ParticleLayout(ILayout):
         this = _libBornAgainCore.new_ParticleLayout(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_ParticleLayout
     __del__ = lambda self: None
@@ -23126,6 +23317,7 @@ class Polygon(IShape2D):
     C++ includes: Polygon.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IShape2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -23148,7 +23340,7 @@ class Polygon(IShape2D):
         this = _libBornAgainCore.new_Polygon(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_Polygon
     __del__ = lambda self: None
@@ -23207,6 +23399,7 @@ class RealParameter(INamed):
     C++ includes: RealParameter.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [INamed]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -23219,8 +23412,8 @@ class RealParameter(INamed):
 
     def __init__(self, *args):
         """
-        __init__(RealParameter self, std::string const & name, ParameterPool parent, double volatile * par, Limits limits, Attributes attr) -> RealParameter
-        __init__(RealParameter self, std::string const & name, ParameterPool parent, double volatile * par, Limits limits) -> RealParameter
+        __init__(RealParameter self, std::string const & name, ParameterPool parent, double volatile * par, RealLimits limits, Attributes attr) -> RealParameter
+        __init__(RealParameter self, std::string const & name, ParameterPool parent, double volatile * par, RealLimits limits) -> RealParameter
         __init__(RealParameter self, std::string const & name, ParameterPool parent, double volatile * par) -> RealParameter
         __init__(RealParameter self, RealParameter other) -> RealParameter
         __init__(RealParameter self, std::string const & name, RealParameter other) -> RealParameter
@@ -23233,7 +23426,7 @@ class RealParameter(INamed):
         this = _libBornAgainCore.new_RealParameter(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self, *args):
@@ -23307,7 +23500,7 @@ class RealParameter(INamed):
 
     def setLimits(self, limits):
         """
-        setLimits(RealParameter self, Limits limits) -> RealParameter
+        setLimits(RealParameter self, RealLimits limits) -> RealParameter
 
         RealParameter& RealParameter::setLimits(const Limits &limits)
 
@@ -23317,7 +23510,7 @@ class RealParameter(INamed):
 
     def getLimits(self):
         """
-        getLimits(RealParameter self) -> Limits
+        getLimits(RealParameter self) -> RealLimits
 
         Limits RealParameter::getLimits() const 
 
@@ -23388,6 +23581,7 @@ class Rectangle(IShape2D):
     C++ includes: Rectangle.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IShape2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -23423,7 +23617,7 @@ class Rectangle(IShape2D):
         this = _libBornAgainCore.new_Rectangle(xlow, ylow, xup, yup)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -23512,6 +23706,7 @@ class RectangularDetector(IDetector2D):
     C++ includes: RectangularDetector.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IDetector2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -23538,7 +23733,7 @@ class RectangularDetector(IDetector2D):
         this = _libBornAgainCore.new_RectangularDetector(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -23777,7 +23972,8 @@ RectangularDetector_swigregister = _libBornAgainCore.RectangularDetector_swigreg
 RectangularDetector_swigregister(RectangularDetector)
 
 class RectPixelMap(IPixelMap):
-    """Proxy of C++ RectPixelMap class"""
+    """Proxy of C++ RectPixelMap class."""
+
     __swig_setmethods__ = {}
     for _s in [IPixelMap]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -23798,7 +23994,7 @@ class RectPixelMap(IPixelMap):
         this = _libBornAgainCore.new_RectPixelMap(corner_pos, width, height)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_RectPixelMap
     __del__ = lambda self: None
@@ -23864,6 +24060,7 @@ class ResolutionFunction2DGaussian(IResolutionFunction2D):
     C++ includes: ResolutionFunction2DGaussian.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IResolutionFunction2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -23884,7 +24081,7 @@ class ResolutionFunction2DGaussian(IResolutionFunction2D):
         this = _libBornAgainCore.new_ResolutionFunction2DGaussian(sigma_x, sigma_y)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def evaluateCDF(self, x, y):
@@ -23940,6 +24137,7 @@ class SpecularSimulation(ICloneable, IParameterized):
     C++ includes: SpecularSimulation.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICloneable, IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -23962,7 +24160,7 @@ class SpecularSimulation(ICloneable, IParameterized):
         this = _libBornAgainCore.new_SpecularSimulation(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_SpecularSimulation
     __del__ = lambda self: None
@@ -24140,6 +24338,7 @@ class ThreadInfo(_object):
     C++ includes: ThreadInfo.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, ThreadInfo, name, value)
     __swig_getmethods__ = {}
@@ -24156,7 +24355,7 @@ class ThreadInfo(_object):
         this = _libBornAgainCore.new_ThreadInfo()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_setmethods__["n_threads"] = _libBornAgainCore.ThreadInfo_n_threads_set
     __swig_getmethods__["n_threads"] = _libBornAgainCore.ThreadInfo_n_threads_get
@@ -24188,6 +24387,7 @@ class SampleBuilderFactory(_object):
     C++ includes: IFactory.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, SampleBuilderFactory, name, value)
     __swig_getmethods__ = {}
@@ -24204,7 +24404,7 @@ class SampleBuilderFactory(_object):
         this = _libBornAgainCore.new_SampleBuilderFactory()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def createItem(self, item_key):
@@ -24277,6 +24477,7 @@ class SimulationFactory(_object):
     C++ includes: IFactory.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, SimulationFactory, name, value)
     __swig_getmethods__ = {}
@@ -24293,7 +24494,7 @@ class SimulationFactory(_object):
         this = _libBornAgainCore.new_SimulationFactory()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def createItem(self, item_key):
diff --git a/auto/Wrap/libBornAgainCore_wrap.cpp b/auto/Wrap/libBornAgainCore_wrap.cpp
index fb1ed94569a43620393d2f9b165f27a085892c13..4858f6e6926014f8437e3b3db8bdd4b939754860 100644
--- a/auto/Wrap/libBornAgainCore_wrap.cpp
+++ b/auto/Wrap/libBornAgainCore_wrap.cpp
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 3.0.7
+ * Version 3.0.8
  *
  * This file is not intended to be easily readable and contains a number of
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -8,7 +8,11 @@
  * interface file instead.
  * ----------------------------------------------------------------------------- */
 
+
+#ifndef SWIGPYTHON
 #define SWIGPYTHON
+#endif
+
 #define SWIG_DIRECTORS
 #define SWIG_PYTHON_DIRECTOR_NO_VTABLE
 
@@ -1326,7 +1330,7 @@ SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) {
 
 /* Unpack the argument tuple */
 
-SWIGINTERN int
+SWIGINTERN Py_ssize_t
 SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs)
 {
   if (!args) {
@@ -1340,7 +1344,7 @@ SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssi
   }  
   if (!PyTuple_Check(args)) {
     if (min <= 1 && max >= 1) {
-      int i;
+      Py_ssize_t i;
       objs[0] = args;
       for (i = 1; i < max; ++i) {
 	objs[i] = 0;
@@ -1360,7 +1364,7 @@ SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssi
 		   name, (min == max ? "" : "at most "), (int)max, (int)l);
       return 0;
     } else {
-      int i;
+      Py_ssize_t i;
       for (i = 0; i < l; ++i) {
 	objs[i] = PyTuple_GET_ITEM(args, i);
       }
@@ -1701,16 +1705,32 @@ SwigPyObject_dealloc(PyObject *v)
     if (destroy) {
       /* destroy is always a VARARGS method */
       PyObject *res;
+
+      /* PyObject_CallFunction() has the potential to silently drop
+         the active active exception.  In cases of unnamed temporary
+         variable or where we just finished iterating over a generator
+         StopIteration will be active right now, and this needs to
+         remain true upon return from SwigPyObject_dealloc.  So save
+         and restore. */
+      
+      PyObject *val = NULL, *type = NULL, *tb = NULL;
+      PyErr_Fetch(&val, &type, &tb);
+
       if (data->delargs) {
-	/* we need to create a temporary object to carry the destroy operation */
-	PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0);
-	res = SWIG_Python_CallFunctor(destroy, tmp);
-	Py_DECREF(tmp);
+        /* we need to create a temporary object to carry the destroy operation */
+        PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0);
+        res = SWIG_Python_CallFunctor(destroy, tmp);
+        Py_DECREF(tmp);
       } else {
-	PyCFunction meth = PyCFunction_GET_FUNCTION(destroy);
-	PyObject *mself = PyCFunction_GET_SELF(destroy);
-	res = ((*meth)(mself, v));
+        PyCFunction meth = PyCFunction_GET_FUNCTION(destroy);
+        PyObject *mself = PyCFunction_GET_SELF(destroy);
+        res = ((*meth)(mself, v));
       }
+      if (!res)
+        PyErr_WriteUnraisable(destroy);
+
+      PyErr_Restore(val, type, tb);
+
       Py_XDECREF(res);
     } 
 #if !defined(SWIG_PYTHON_SILENT_MEMLEAK)
@@ -1734,6 +1754,7 @@ SwigPyObject_append(PyObject* v, PyObject* next)
   next = tmp;
 #endif
   if (!SwigPyObject_Check(next)) {
+    PyErr_SetString(PyExc_TypeError, "Attempt to append a non SwigPyObject");
     return NULL;
   }
   sobj->next = next;
@@ -1889,7 +1910,9 @@ SwigPyObject_TypeOnce(void) {
     (unaryfunc)SwigPyObject_oct,  /*nb_oct*/
     (unaryfunc)SwigPyObject_hex,  /*nb_hex*/
 #endif
-#if PY_VERSION_HEX >= 0x03000000 /* 3.0 */
+#if PY_VERSION_HEX >= 0x03050000 /* 3.5 */
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_matrix_multiply */
+#elif PY_VERSION_HEX >= 0x03000000 /* 3.0 */
     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index, nb_inplace_divide removed */
 #elif PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */
     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */
@@ -1969,10 +1992,19 @@ SwigPyObject_TypeOnce(void) {
       0,                                    /* tp_del */
 #endif
 #if PY_VERSION_HEX >= 0x02060000
-      0,                                    /* tp_version */
+      0,                                    /* tp_version_tag */
+#endif
+#if PY_VERSION_HEX >= 0x03040000
+      0,                                    /* tp_finalize */
 #endif
 #ifdef COUNT_ALLOCS
-      0,0,0,0                               /* tp_alloc -> tp_next */
+      0,                                    /* tp_allocs */
+      0,                                    /* tp_frees */
+      0,                                    /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+      0,                                    /* tp_prev */
+#endif
+      0                                     /* tp_next */
 #endif
     };
     swigpyobject_type = tmp;
@@ -2148,10 +2180,19 @@ SwigPyPacked_TypeOnce(void) {
       0,                                    /* tp_del */
 #endif
 #if PY_VERSION_HEX >= 0x02060000
-      0,                                    /* tp_version */
+      0,                                    /* tp_version_tag */
+#endif
+#if PY_VERSION_HEX >= 0x03040000
+      0,                                    /* tp_finalize */
 #endif
 #ifdef COUNT_ALLOCS
-      0,0,0,0                               /* tp_alloc -> tp_next */
+      0,                                    /* tp_allocs */
+      0,                                    /* tp_frees */
+      0,                                    /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+      0,                                    /* tp_prev */
+#endif
+      0                                     /* tp_next */
 #endif
     };
     swigpypacked_type = tmp;
@@ -2679,13 +2720,11 @@ PyModule_AddObject(PyObject *m, char *name, PyObject *o)
 {
   PyObject *dict;
   if (!PyModule_Check(m)) {
-    PyErr_SetString(PyExc_TypeError,
-		    "PyModule_AddObject() needs module as first arg");
+    PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs module as first arg");
     return SWIG_ERROR;
   }
   if (!o) {
-    PyErr_SetString(PyExc_TypeError,
-		    "PyModule_AddObject() needs non-NULL value");
+    PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs non-NULL value");
     return SWIG_ERROR;
   }
   
@@ -3588,33 +3627,33 @@ namespace Swig {
 #define SWIGTYPE_p_LayerInterface swig_types[170]
 #define SWIGTYPE_p_LayerRTCoefficients_t swig_types[171]
 #define SWIGTYPE_p_LayerRoughness swig_types[172]
-#define SWIGTYPE_p_Limits swig_types[173]
-#define SWIGTYPE_p_MSG__Logger swig_types[174]
-#define SWIGTYPE_p_Mask swig_types[175]
-#define SWIGTYPE_p_MesoCrystal swig_types[176]
-#define SWIGTYPE_p_MinimizerOptions swig_types[177]
-#define SWIGTYPE_p_MultiLayer swig_types[178]
-#define SWIGTYPE_p_MultiLayerRTCoefficients_t swig_types[179]
-#define SWIGTYPE_p_OffSpecSimulation swig_types[180]
-#define SWIGTYPE_p_OutputDataIteratorT_double_OutputDataT_double_t_t swig_types[181]
-#define SWIGTYPE_p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t swig_types[182]
-#define SWIGTYPE_p_OutputDataT_CumulativeValue_t swig_types[183]
-#define SWIGTYPE_p_OutputDataT_bool_t swig_types[184]
-#define SWIGTYPE_p_OutputDataT_double_t swig_types[185]
-#define SWIGTYPE_p_OutputDataT_std__complexT_double_t_t swig_types[186]
-#define SWIGTYPE_p_ParameterDistribution swig_types[187]
-#define SWIGTYPE_p_ParameterPool swig_types[188]
-#define SWIGTYPE_p_ParameterSample swig_types[189]
-#define SWIGTYPE_p_Particle swig_types[190]
-#define SWIGTYPE_p_ParticleComposition swig_types[191]
-#define SWIGTYPE_p_ParticleCoreShell swig_types[192]
-#define SWIGTYPE_p_ParticleDistribution swig_types[193]
-#define SWIGTYPE_p_ParticleLayout swig_types[194]
-#define SWIGTYPE_p_PolygonalTopology swig_types[195]
-#define SWIGTYPE_p_PolyhedralEdge swig_types[196]
-#define SWIGTYPE_p_PolyhedralFace swig_types[197]
-#define SWIGTYPE_p_PolyhedralTopology swig_types[198]
-#define SWIGTYPE_p_ProgressHandler__Callback_t swig_types[199]
+#define SWIGTYPE_p_MSG__Logger swig_types[173]
+#define SWIGTYPE_p_Mask swig_types[174]
+#define SWIGTYPE_p_MesoCrystal swig_types[175]
+#define SWIGTYPE_p_MinimizerOptions swig_types[176]
+#define SWIGTYPE_p_MultiLayer swig_types[177]
+#define SWIGTYPE_p_MultiLayerRTCoefficients_t swig_types[178]
+#define SWIGTYPE_p_OffSpecSimulation swig_types[179]
+#define SWIGTYPE_p_OutputDataIteratorT_double_OutputDataT_double_t_t swig_types[180]
+#define SWIGTYPE_p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t swig_types[181]
+#define SWIGTYPE_p_OutputDataT_CumulativeValue_t swig_types[182]
+#define SWIGTYPE_p_OutputDataT_bool_t swig_types[183]
+#define SWIGTYPE_p_OutputDataT_double_t swig_types[184]
+#define SWIGTYPE_p_OutputDataT_std__complexT_double_t_t swig_types[185]
+#define SWIGTYPE_p_ParameterDistribution swig_types[186]
+#define SWIGTYPE_p_ParameterPool swig_types[187]
+#define SWIGTYPE_p_ParameterSample swig_types[188]
+#define SWIGTYPE_p_Particle swig_types[189]
+#define SWIGTYPE_p_ParticleComposition swig_types[190]
+#define SWIGTYPE_p_ParticleCoreShell swig_types[191]
+#define SWIGTYPE_p_ParticleDistribution swig_types[192]
+#define SWIGTYPE_p_ParticleLayout swig_types[193]
+#define SWIGTYPE_p_PolygonalTopology swig_types[194]
+#define SWIGTYPE_p_PolyhedralEdge swig_types[195]
+#define SWIGTYPE_p_PolyhedralFace swig_types[196]
+#define SWIGTYPE_p_PolyhedralTopology swig_types[197]
+#define SWIGTYPE_p_ProgressHandler__Callback_t swig_types[198]
+#define SWIGTYPE_p_RealLimits swig_types[199]
 #define SWIGTYPE_p_RealParameter swig_types[200]
 #define SWIGTYPE_p_RectPixelMap swig_types[201]
 #define SWIGTYPE_p_RectangularDetector swig_types[202]
@@ -3731,7 +3770,7 @@ static swig_module_info swig_module = {swig_types, 291, 0, 0, 0, 0};
 #endif
 #define SWIG_name    "_libBornAgainCore"
 
-#define SWIGVERSION 0x030007 
+#define SWIGVERSION 0x030008 
 #define SWIG_VERSION SWIGVERSION
 
 
@@ -3977,9 +4016,11 @@ SWIG_AsVal_double (PyObject *obj, double *val)
   if (PyFloat_Check(obj)) {
     if (val) *val = PyFloat_AsDouble(obj);
     return SWIG_OK;
+#if PY_VERSION_HEX < 0x03000000
   } else if (PyInt_Check(obj)) {
     if (val) *val = PyInt_AsLong(obj);
     return SWIG_OK;
+#endif
   } else if (PyLong_Check(obj)) {
     double v = PyLong_AsDouble(obj);
     if (!PyErr_Occurred()) {
@@ -4071,18 +4112,7 @@ SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val)
       return SWIG_OK;
     } else {
       PyErr_Clear();
-#if PY_VERSION_HEX >= 0x03000000
-      {
-        long v = PyLong_AsLong(obj);
-        if (!PyErr_Occurred()) {
-          if (v < 0) {
-            return SWIG_OverflowError;
-          }
-        } else {
-          PyErr_Clear();
-        }
-      }
-#endif
+      return SWIG_OverflowError;
     }
   }
 #ifdef SWIG_PYTHON_CAST_MODE
@@ -4139,16 +4169,20 @@ SWIGINTERNINLINE PyObject*
 SWIGINTERN int
 SWIG_AsVal_long (PyObject *obj, long* val)
 {
+#if PY_VERSION_HEX < 0x03000000
   if (PyInt_Check(obj)) {
     if (val) *val = PyInt_AsLong(obj);
     return SWIG_OK;
-  } else if (PyLong_Check(obj)) {
+  } else
+#endif
+  if (PyLong_Check(obj)) {
     long v = PyLong_AsLong(obj);
     if (!PyErr_Occurred()) {
       if (val) *val = v;
       return SWIG_OK;
     } else {
       PyErr_Clear();
+      return SWIG_OverflowError;
     }
   }
 #ifdef SWIG_PYTHON_CAST_MODE
@@ -4198,7 +4232,7 @@ SWIGINTERNINLINE PyObject*
 }
 
 
-namespace swig {  
+namespace swig {
   template <class Type>
   struct noconst_traits {
     typedef Type noconst_type;
@@ -4212,7 +4246,7 @@ namespace swig {
   /*
     type categories
   */
-  struct pointer_category { };  
+  struct pointer_category { };
   struct value_category { };
 
   /*
@@ -4225,12 +4259,12 @@ namespace swig {
     return traits<typename noconst_traits<Type >::noconst_type >::type_name();
   }
 
-  template <class Type> 
+  template <class Type>
   struct traits_info {
     static swig_type_info *type_query(std::string name) {
       name += " *";
       return SWIG_TypeQuery(name.c_str());
-    }    
+    }
     static swig_type_info *type_info() {
       static swig_type_info *info = type_query(type_name<Type>());
       return info;
@@ -4251,17 +4285,17 @@ namespace swig {
       std::string ptrname = name;
       ptrname += " *";
       return ptrname;
-    }    
+    }
     static const char* type_name() {
       static std::string name = make_ptr_name(swig::type_name<Type>());
       return name.c_str();
     }
   };
 
-  template <class Type, class Category> 
+  template <class Type, class Category>
   struct traits_as { };
- 
-  template <class Type, class Category> 
+
+  template <class Type, class Category>
   struct traits_check { };
 
 }
@@ -4605,6 +4639,12 @@ namespace swig {
     return pos;
   }
 
+  template <class Sequence>
+  inline void
+  erase(Sequence* seq, const typename Sequence::iterator& position) {
+    seq->erase(position);
+  }
+
   template <class Sequence, class Difference>
   inline Sequence*
   getslice(const Sequence* self, Difference i, Difference j, Py_ssize_t step) {
@@ -4979,7 +5019,7 @@ namespace swig
   template <class T>
   struct SwigPySequence_Ref
   {
-    SwigPySequence_Ref(PyObject* seq, int index)
+    SwigPySequence_Ref(PyObject* seq, Py_ssize_t index)
       : _seq(seq), _index(index)
     {
     }
@@ -4991,7 +5031,7 @@ namespace swig
 	return swig::as<T>(item, true);
       } catch (std::exception& e) {
 	char msg[1024];
-	sprintf(msg, "in sequence element %d ", _index);
+	sprintf(msg, "in sequence element %d ", (int)_index);
 	if (!PyErr_Occurred()) {
 	  ::SWIG_Error(SWIG_TypeError,  swig::type_name<T>());
 	}
@@ -5009,7 +5049,7 @@ namespace swig
 
   private:
     PyObject* _seq;
-    int _index;
+    Py_ssize_t _index;
   };
 
   template <class T>
@@ -5030,13 +5070,13 @@ namespace swig
     typedef Reference reference;
     typedef T value_type;
     typedef T* pointer;
-    typedef int difference_type;
+    typedef Py_ssize_t difference_type;
 
     SwigPySequence_InputIterator()
     {
     }
 
-    SwigPySequence_InputIterator(PyObject* seq, int index)
+    SwigPySequence_InputIterator(PyObject* seq, Py_ssize_t index)
       : _seq(seq), _index(index)
     {
     }
@@ -5116,6 +5156,7 @@ namespace swig
     difference_type _index;
   };
 
+  // STL container wrapper around a Python sequence
   template <class T>
   struct SwigPySequence_Cont
   {
@@ -5123,8 +5164,8 @@ namespace swig
     typedef const SwigPySequence_Ref<T> const_reference;
     typedef T value_type;
     typedef T* pointer;
-    typedef int difference_type;
-    typedef int size_type;
+    typedef Py_ssize_t difference_type;
+    typedef size_t size_type;
     typedef const pointer const_pointer;
     typedef SwigPySequence_InputIterator<T, reference> iterator;
     typedef SwigPySequence_InputIterator<T, const_reference> const_iterator;
@@ -5185,13 +5226,13 @@ namespace swig
 
     bool check(bool set_err = true) const
     {
-      int s = size();
-      for (int i = 0; i < s; ++i) {
+      Py_ssize_t s = size();
+      for (Py_ssize_t i = 0; i < s; ++i) {
 	swig::SwigVar_PyObject item = PySequence_GetItem(_seq, i);
 	if (!swig::check<value_type>(item)) {
 	  if (set_err) {
 	    char msg[1024];
-	    sprintf(msg, "in sequence element %d", i);
+	    sprintf(msg, "in sequence element %d", (int)i);
 	    SWIG_Error(SWIG_RuntimeError, msg);
 	  }
 	  return false;
@@ -5211,17 +5252,17 @@ namespace swig
 
 
 namespace swig {
-  template <> struct traits<double > {
+  template <> struct traits< double > {
     typedef value_category category;
     static const char* type_name() { return"double"; }
-  };  
-  template <>  struct traits_asval<double > {   
+  };
+  template <>  struct traits_asval< double > {
     typedef double value_type;
-    static int asval(PyObject *obj, value_type *val) { 
+    static int asval(PyObject *obj, value_type *val) {
       return SWIG_AsVal_double (obj, val);
     }
   };
-  template <>  struct traits_from<double > {
+  template <>  struct traits_from< double > {
     typedef double value_type;
     static PyObject *from(const value_type& val) {
       return SWIG_From_double  (val);
@@ -5295,10 +5336,9 @@ namespace swig {
 #endif
       size_type size = seq.size();
       if (size <= (size_type)INT_MAX) {
-	PyObject *obj = PyTuple_New((int)size);
-	int i = 0;
-	for (const_iterator it = seq.begin();
-	     it != seq.end(); ++it, ++i) {
+	PyObject *obj = PyTuple_New((Py_ssize_t)size);
+	Py_ssize_t i = 0;
+	for (const_iterator it = seq.begin(); it != seq.end(); ++it, ++i) {
 	  PyTuple_SetItem(obj,i,swig::from<value_type>(*it));
 	}
 	return obj;
@@ -5329,7 +5369,7 @@ namespace swig {
 
 
       namespace swig {
-	template <>  struct traits<std::vector<double, std::allocator< double > > > {
+	template <>  struct traits<std::vector< double, std::allocator< double > > > {
 	  typedef pointer_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "double" "," "std::allocator< double >" " >";
@@ -5364,24 +5404,20 @@ SWIG_From_size_t  (size_t value)
   return SWIG_From_unsigned_SS_long  (static_cast< unsigned long >(value));
 }
 
-SWIGINTERN std::vector< double >::value_type std_vector_Sl_double_Sg__pop(std::vector< double > *self){
-      if (self->size() == 0)
-	throw std::out_of_range("pop from empty container");
-      std::vector<double,std::allocator< double > >::value_type x = self->back();
-      self->pop_back();
-      return x;
-    }
 SWIGINTERN std::vector< double,std::allocator< double > > *std_vector_Sl_double_Sg____getslice__(std::vector< double > *self,std::vector< double >::difference_type i,std::vector< double >::difference_type j){
       return swig::getslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_double_Sg____setslice____SWIG_0(std::vector< double > *self,std::vector< double >::difference_type i,std::vector< double >::difference_type j,std::vector< double,std::allocator< double > > const &v=std::vector< double,std::allocator< double > >()){
+SWIGINTERN void std_vector_Sl_double_Sg____setslice____SWIG_0(std::vector< double > *self,std::vector< double >::difference_type i,std::vector< double >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< double,std::allocator< double > >());
+    }
+SWIGINTERN void std_vector_Sl_double_Sg____setslice____SWIG_1(std::vector< double > *self,std::vector< double >::difference_type i,std::vector< double >::difference_type j,std::vector< double,std::allocator< double > > const &v){
       swig::setslice(self, i, j, 1, v);
     }
 SWIGINTERN void std_vector_Sl_double_Sg____delslice__(std::vector< double > *self,std::vector< double >::difference_type i,std::vector< double >::difference_type j){
       swig::delslice(self, i, j, 1);
     }
 SWIGINTERN void std_vector_Sl_double_Sg____delitem____SWIG_0(std::vector< double > *self,std::vector< double >::difference_type i){
-      self->erase(swig::getpos(self,i));
+      swig::erase(self, swig::getpos(self, i));
     }
 SWIGINTERN std::vector< double,std::allocator< double > > *std_vector_Sl_double_Sg____getitem____SWIG_0(std::vector< double > *self,PySliceObject *slice){
       Py_ssize_t i, j, step;
@@ -5390,8 +5426,8 @@ SWIGINTERN std::vector< double,std::allocator< double > > *std_vector_Sl_double_
         return NULL;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<double,std::allocator< double > >::difference_type id = i;
-      std::vector<double,std::allocator< double > >::difference_type jd = j;
+      std::vector< double,std::allocator< double > >::difference_type id = i;
+      std::vector< double,std::allocator< double > >::difference_type jd = j;
       return swig::getslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_double_Sg____setitem____SWIG_0(std::vector< double > *self,PySliceObject *slice,std::vector< double,std::allocator< double > > const &v){
@@ -5401,8 +5437,8 @@ SWIGINTERN void std_vector_Sl_double_Sg____setitem____SWIG_0(std::vector< double
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<double,std::allocator< double > >::difference_type id = i;
-      std::vector<double,std::allocator< double > >::difference_type jd = j;
+      std::vector< double,std::allocator< double > >::difference_type id = i;
+      std::vector< double,std::allocator< double > >::difference_type jd = j;
       swig::setslice(self, id, jd, step, v);
     }
 SWIGINTERN void std_vector_Sl_double_Sg____setitem____SWIG_1(std::vector< double > *self,PySliceObject *slice){
@@ -5412,8 +5448,8 @@ SWIGINTERN void std_vector_Sl_double_Sg____setitem____SWIG_1(std::vector< double
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<double,std::allocator< double > >::difference_type id = i;
-      std::vector<double,std::allocator< double > >::difference_type jd = j;
+      std::vector< double,std::allocator< double > >::difference_type id = i;
+      std::vector< double,std::allocator< double > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_double_Sg____delitem____SWIG_1(std::vector< double > *self,PySliceObject *slice){
@@ -5423,8 +5459,8 @@ SWIGINTERN void std_vector_Sl_double_Sg____delitem____SWIG_1(std::vector< double
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<double,std::allocator< double > >::difference_type id = i;
-      std::vector<double,std::allocator< double > >::difference_type jd = j;
+      std::vector< double,std::allocator< double > >::difference_type id = i;
+      std::vector< double,std::allocator< double > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN std::vector< double >::value_type const &std_vector_Sl_double_Sg____getitem____SWIG_1(std::vector< double > const *self,std::vector< double >::difference_type i){
@@ -5433,6 +5469,13 @@ SWIGINTERN std::vector< double >::value_type const &std_vector_Sl_double_Sg____g
 SWIGINTERN void std_vector_Sl_double_Sg____setitem____SWIG_2(std::vector< double > *self,std::vector< double >::difference_type i,std::vector< double >::value_type const &x){
       *(swig::getpos(self,i)) = x;
     }
+SWIGINTERN std::vector< double >::value_type std_vector_Sl_double_Sg__pop(std::vector< double > *self){
+      if (self->size() == 0)
+	throw std::out_of_range("pop from empty container");
+      std::vector< double,std::allocator< double > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
 SWIGINTERN void std_vector_Sl_double_Sg__append(std::vector< double > *self,std::vector< double >::value_type const &x){
       self->push_back(x);
     }
@@ -5442,7 +5485,7 @@ SWIGINTERN std::vector< double >::iterator std_vector_Sl_double_Sg__insert__SWIG
 SWIGINTERN void std_vector_Sl_double_Sg__insert__SWIG_1(std::vector< double > *self,std::vector< double >::iterator pos,std::vector< double >::size_type n,std::vector< double >::value_type const &x){ self->insert(pos, n, x); }
 
       namespace swig {
-	template <>  struct traits<std::vector<std::vector< double,std::allocator< double > >, std::allocator< std::vector< double,std::allocator< double > > > > > {
+	template <>  struct traits<std::vector< std::vector< double,std::allocator< double > >, std::allocator< std::vector< double,std::allocator< double > > > > > {
 	  typedef pointer_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "std::vector< double,std::allocator< double > >" "," "std::allocator< std::vector< double,std::allocator< double > > >" " >";
@@ -5462,24 +5505,20 @@ SWIGINTERN bool std_vector_Sl_std_vector_Sl_double_Sg__Sg____bool__(std::vector<
 SWIGINTERN std::vector< std::vector< double > >::size_type std_vector_Sl_std_vector_Sl_double_Sg__Sg____len__(std::vector< std::vector< double > > const *self){
       return self->size();
     }
-SWIGINTERN std::vector< std::vector< double > >::value_type std_vector_Sl_std_vector_Sl_double_Sg__Sg__pop(std::vector< std::vector< double > > *self){
-      if (self->size() == 0)
-	throw std::out_of_range("pop from empty container");
-      std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::value_type x = self->back();
-      self->pop_back();
-      return x;
-    }
 SWIGINTERN std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *std_vector_Sl_std_vector_Sl_double_Sg__Sg____getslice__(std::vector< std::vector< double > > *self,std::vector< std::vector< double > >::difference_type i,std::vector< std::vector< double > >::difference_type j){
       return swig::getslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____setslice____SWIG_0(std::vector< std::vector< double > > *self,std::vector< std::vector< double > >::difference_type i,std::vector< std::vector< double > >::difference_type j,std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &v=std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >()){
+SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____setslice____SWIG_0(std::vector< std::vector< double > > *self,std::vector< std::vector< double > >::difference_type i,std::vector< std::vector< double > >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >());
+    }
+SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____setslice____SWIG_1(std::vector< std::vector< double > > *self,std::vector< std::vector< double > >::difference_type i,std::vector< std::vector< double > >::difference_type j,std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &v){
       swig::setslice(self, i, j, 1, v);
     }
 SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____delslice__(std::vector< std::vector< double > > *self,std::vector< std::vector< double > >::difference_type i,std::vector< std::vector< double > >::difference_type j){
       swig::delslice(self, i, j, 1);
     }
 SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____delitem____SWIG_0(std::vector< std::vector< double > > *self,std::vector< std::vector< double > >::difference_type i){
-      self->erase(swig::getpos(self,i));
+      swig::erase(self, swig::getpos(self, i));
     }
 SWIGINTERN std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *std_vector_Sl_std_vector_Sl_double_Sg__Sg____getitem____SWIG_0(std::vector< std::vector< double > > *self,PySliceObject *slice){
       Py_ssize_t i, j, step;
@@ -5488,8 +5527,8 @@ SWIGINTERN std::vector< std::vector< double,std::allocator< double > >,std::allo
         return NULL;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type id = i;
-      std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type jd = j;
+      std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type id = i;
+      std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type jd = j;
       return swig::getslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____setitem____SWIG_0(std::vector< std::vector< double > > *self,PySliceObject *slice,std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &v){
@@ -5499,8 +5538,8 @@ SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____setitem____SWIG_0(s
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type id = i;
-      std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type jd = j;
+      std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type id = i;
+      std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type jd = j;
       swig::setslice(self, id, jd, step, v);
     }
 SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____setitem____SWIG_1(std::vector< std::vector< double > > *self,PySliceObject *slice){
@@ -5510,8 +5549,8 @@ SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____setitem____SWIG_1(s
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type id = i;
-      std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type jd = j;
+      std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type id = i;
+      std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____delitem____SWIG_1(std::vector< std::vector< double > > *self,PySliceObject *slice){
@@ -5521,8 +5560,8 @@ SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____delitem____SWIG_1(s
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type id = i;
-      std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type jd = j;
+      std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type id = i;
+      std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN std::vector< std::vector< double > >::value_type const &std_vector_Sl_std_vector_Sl_double_Sg__Sg____getitem____SWIG_1(std::vector< std::vector< double > > const *self,std::vector< std::vector< double > >::difference_type i){
@@ -5531,6 +5570,13 @@ SWIGINTERN std::vector< std::vector< double > >::value_type const &std_vector_Sl
 SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____setitem____SWIG_2(std::vector< std::vector< double > > *self,std::vector< std::vector< double > >::difference_type i,std::vector< std::vector< double > >::value_type const &x){
       *(swig::getpos(self,i)) = x;
     }
+SWIGINTERN std::vector< std::vector< double > >::value_type std_vector_Sl_std_vector_Sl_double_Sg__Sg__pop(std::vector< std::vector< double > > *self){
+      if (self->size() == 0)
+	throw std::out_of_range("pop from empty container");
+      std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
 SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg__append(std::vector< std::vector< double > > *self,std::vector< std::vector< double > >::value_type const &x){
       self->push_back(x);
     }
@@ -5566,17 +5612,17 @@ SWIG_AsVal_int (PyObject * obj, int *val)
 
 
 namespace swig {
-  template <> struct traits<int > {
+  template <> struct traits< int > {
     typedef value_category category;
     static const char* type_name() { return"int"; }
-  };  
-  template <>  struct traits_asval<int > {   
+  };
+  template <>  struct traits_asval< int > {
     typedef int value_type;
-    static int asval(PyObject *obj, value_type *val) { 
+    static int asval(PyObject *obj, value_type *val) {
       return SWIG_AsVal_int (obj, val);
     }
   };
-  template <>  struct traits_from<int > {
+  template <>  struct traits_from< int > {
     typedef int value_type;
     static PyObject *from(const value_type& val) {
       return SWIG_From_int  (val);
@@ -5586,7 +5632,7 @@ namespace swig {
 
 
       namespace swig {
-	template <>  struct traits<std::vector<int, std::allocator< int > > > {
+	template <>  struct traits<std::vector< int, std::allocator< int > > > {
 	  typedef pointer_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "int" "," "std::allocator< int >" " >";
@@ -5606,24 +5652,20 @@ SWIGINTERN bool std_vector_Sl_int_Sg____bool__(std::vector< int > const *self){
 SWIGINTERN std::vector< int >::size_type std_vector_Sl_int_Sg____len__(std::vector< int > const *self){
       return self->size();
     }
-SWIGINTERN std::vector< int >::value_type std_vector_Sl_int_Sg__pop(std::vector< int > *self){
-      if (self->size() == 0)
-	throw std::out_of_range("pop from empty container");
-      std::vector<int,std::allocator< int > >::value_type x = self->back();
-      self->pop_back();
-      return x;
-    }
 SWIGINTERN std::vector< int,std::allocator< int > > *std_vector_Sl_int_Sg____getslice__(std::vector< int > *self,std::vector< int >::difference_type i,std::vector< int >::difference_type j){
       return swig::getslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_int_Sg____setslice____SWIG_0(std::vector< int > *self,std::vector< int >::difference_type i,std::vector< int >::difference_type j,std::vector< int,std::allocator< int > > const &v=std::vector< int,std::allocator< int > >()){
+SWIGINTERN void std_vector_Sl_int_Sg____setslice____SWIG_0(std::vector< int > *self,std::vector< int >::difference_type i,std::vector< int >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< int,std::allocator< int > >());
+    }
+SWIGINTERN void std_vector_Sl_int_Sg____setslice____SWIG_1(std::vector< int > *self,std::vector< int >::difference_type i,std::vector< int >::difference_type j,std::vector< int,std::allocator< int > > const &v){
       swig::setslice(self, i, j, 1, v);
     }
 SWIGINTERN void std_vector_Sl_int_Sg____delslice__(std::vector< int > *self,std::vector< int >::difference_type i,std::vector< int >::difference_type j){
       swig::delslice(self, i, j, 1);
     }
 SWIGINTERN void std_vector_Sl_int_Sg____delitem____SWIG_0(std::vector< int > *self,std::vector< int >::difference_type i){
-      self->erase(swig::getpos(self,i));
+      swig::erase(self, swig::getpos(self, i));
     }
 SWIGINTERN std::vector< int,std::allocator< int > > *std_vector_Sl_int_Sg____getitem____SWIG_0(std::vector< int > *self,PySliceObject *slice){
       Py_ssize_t i, j, step;
@@ -5632,8 +5674,8 @@ SWIGINTERN std::vector< int,std::allocator< int > > *std_vector_Sl_int_Sg____get
         return NULL;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<int,std::allocator< int > >::difference_type id = i;
-      std::vector<int,std::allocator< int > >::difference_type jd = j;
+      std::vector< int,std::allocator< int > >::difference_type id = i;
+      std::vector< int,std::allocator< int > >::difference_type jd = j;
       return swig::getslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_int_Sg____setitem____SWIG_0(std::vector< int > *self,PySliceObject *slice,std::vector< int,std::allocator< int > > const &v){
@@ -5643,8 +5685,8 @@ SWIGINTERN void std_vector_Sl_int_Sg____setitem____SWIG_0(std::vector< int > *se
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<int,std::allocator< int > >::difference_type id = i;
-      std::vector<int,std::allocator< int > >::difference_type jd = j;
+      std::vector< int,std::allocator< int > >::difference_type id = i;
+      std::vector< int,std::allocator< int > >::difference_type jd = j;
       swig::setslice(self, id, jd, step, v);
     }
 SWIGINTERN void std_vector_Sl_int_Sg____setitem____SWIG_1(std::vector< int > *self,PySliceObject *slice){
@@ -5654,8 +5696,8 @@ SWIGINTERN void std_vector_Sl_int_Sg____setitem____SWIG_1(std::vector< int > *se
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<int,std::allocator< int > >::difference_type id = i;
-      std::vector<int,std::allocator< int > >::difference_type jd = j;
+      std::vector< int,std::allocator< int > >::difference_type id = i;
+      std::vector< int,std::allocator< int > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_int_Sg____delitem____SWIG_1(std::vector< int > *self,PySliceObject *slice){
@@ -5665,8 +5707,8 @@ SWIGINTERN void std_vector_Sl_int_Sg____delitem____SWIG_1(std::vector< int > *se
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<int,std::allocator< int > >::difference_type id = i;
-      std::vector<int,std::allocator< int > >::difference_type jd = j;
+      std::vector< int,std::allocator< int > >::difference_type id = i;
+      std::vector< int,std::allocator< int > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN std::vector< int >::value_type const &std_vector_Sl_int_Sg____getitem____SWIG_1(std::vector< int > const *self,std::vector< int >::difference_type i){
@@ -5675,6 +5717,13 @@ SWIGINTERN std::vector< int >::value_type const &std_vector_Sl_int_Sg____getitem
 SWIGINTERN void std_vector_Sl_int_Sg____setitem____SWIG_2(std::vector< int > *self,std::vector< int >::difference_type i,std::vector< int >::value_type const &x){
       *(swig::getpos(self,i)) = x;
     }
+SWIGINTERN std::vector< int >::value_type std_vector_Sl_int_Sg__pop(std::vector< int > *self){
+      if (self->size() == 0)
+	throw std::out_of_range("pop from empty container");
+      std::vector< int,std::allocator< int > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
 SWIGINTERN void std_vector_Sl_int_Sg__append(std::vector< int > *self,std::vector< int >::value_type const &x){
       self->push_back(x);
     }
@@ -5684,17 +5733,17 @@ SWIGINTERN std::vector< int >::iterator std_vector_Sl_int_Sg__insert__SWIG_0(std
 SWIGINTERN void std_vector_Sl_int_Sg__insert__SWIG_1(std::vector< int > *self,std::vector< int >::iterator pos,std::vector< int >::size_type n,std::vector< int >::value_type const &x){ self->insert(pos, n, x); }
 
 namespace swig {
-  template <> struct traits<unsigned long > {
+  template <> struct traits< unsigned long > {
     typedef value_category category;
     static const char* type_name() { return"unsigned long"; }
-  };  
-  template <>  struct traits_asval<unsigned long > {   
+  };
+  template <>  struct traits_asval< unsigned long > {
     typedef unsigned long value_type;
-    static int asval(PyObject *obj, value_type *val) { 
+    static int asval(PyObject *obj, value_type *val) {
       return SWIG_AsVal_unsigned_SS_long (obj, val);
     }
   };
-  template <>  struct traits_from<unsigned long > {
+  template <>  struct traits_from< unsigned long > {
     typedef unsigned long value_type;
     static PyObject *from(const value_type& val) {
       return SWIG_From_unsigned_SS_long  (val);
@@ -5704,7 +5753,7 @@ namespace swig {
 
 
       namespace swig {
-	template <>  struct traits<std::vector<unsigned long, std::allocator< unsigned long > > > {
+	template <>  struct traits<std::vector< unsigned long, std::allocator< unsigned long > > > {
 	  typedef pointer_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "unsigned long" "," "std::allocator< unsigned long >" " >";
@@ -5724,24 +5773,20 @@ SWIGINTERN bool std_vector_Sl_unsigned_SS_long_Sg____bool__(std::vector< unsigne
 SWIGINTERN std::vector< unsigned long >::size_type std_vector_Sl_unsigned_SS_long_Sg____len__(std::vector< unsigned long > const *self){
       return self->size();
     }
-SWIGINTERN std::vector< unsigned long >::value_type std_vector_Sl_unsigned_SS_long_Sg__pop(std::vector< unsigned long > *self){
-      if (self->size() == 0)
-	throw std::out_of_range("pop from empty container");
-      std::vector<unsigned long,std::allocator< unsigned long > >::value_type x = self->back();
-      self->pop_back();
-      return x;
-    }
 SWIGINTERN std::vector< unsigned long,std::allocator< unsigned long > > *std_vector_Sl_unsigned_SS_long_Sg____getslice__(std::vector< unsigned long > *self,std::vector< unsigned long >::difference_type i,std::vector< unsigned long >::difference_type j){
       return swig::getslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____setslice____SWIG_0(std::vector< unsigned long > *self,std::vector< unsigned long >::difference_type i,std::vector< unsigned long >::difference_type j,std::vector< unsigned long,std::allocator< unsigned long > > const &v=std::vector< unsigned long,std::allocator< unsigned long > >()){
+SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____setslice____SWIG_0(std::vector< unsigned long > *self,std::vector< unsigned long >::difference_type i,std::vector< unsigned long >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< unsigned long,std::allocator< unsigned long > >());
+    }
+SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____setslice____SWIG_1(std::vector< unsigned long > *self,std::vector< unsigned long >::difference_type i,std::vector< unsigned long >::difference_type j,std::vector< unsigned long,std::allocator< unsigned long > > const &v){
       swig::setslice(self, i, j, 1, v);
     }
 SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____delslice__(std::vector< unsigned long > *self,std::vector< unsigned long >::difference_type i,std::vector< unsigned long >::difference_type j){
       swig::delslice(self, i, j, 1);
     }
 SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____delitem____SWIG_0(std::vector< unsigned long > *self,std::vector< unsigned long >::difference_type i){
-      self->erase(swig::getpos(self,i));
+      swig::erase(self, swig::getpos(self, i));
     }
 SWIGINTERN std::vector< unsigned long,std::allocator< unsigned long > > *std_vector_Sl_unsigned_SS_long_Sg____getitem____SWIG_0(std::vector< unsigned long > *self,PySliceObject *slice){
       Py_ssize_t i, j, step;
@@ -5750,8 +5795,8 @@ SWIGINTERN std::vector< unsigned long,std::allocator< unsigned long > > *std_vec
         return NULL;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<unsigned long,std::allocator< unsigned long > >::difference_type id = i;
-      std::vector<unsigned long,std::allocator< unsigned long > >::difference_type jd = j;
+      std::vector< unsigned long,std::allocator< unsigned long > >::difference_type id = i;
+      std::vector< unsigned long,std::allocator< unsigned long > >::difference_type jd = j;
       return swig::getslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____setitem____SWIG_0(std::vector< unsigned long > *self,PySliceObject *slice,std::vector< unsigned long,std::allocator< unsigned long > > const &v){
@@ -5761,8 +5806,8 @@ SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____setitem____SWIG_0(std::vect
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<unsigned long,std::allocator< unsigned long > >::difference_type id = i;
-      std::vector<unsigned long,std::allocator< unsigned long > >::difference_type jd = j;
+      std::vector< unsigned long,std::allocator< unsigned long > >::difference_type id = i;
+      std::vector< unsigned long,std::allocator< unsigned long > >::difference_type jd = j;
       swig::setslice(self, id, jd, step, v);
     }
 SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____setitem____SWIG_1(std::vector< unsigned long > *self,PySliceObject *slice){
@@ -5772,8 +5817,8 @@ SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____setitem____SWIG_1(std::vect
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<unsigned long,std::allocator< unsigned long > >::difference_type id = i;
-      std::vector<unsigned long,std::allocator< unsigned long > >::difference_type jd = j;
+      std::vector< unsigned long,std::allocator< unsigned long > >::difference_type id = i;
+      std::vector< unsigned long,std::allocator< unsigned long > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____delitem____SWIG_1(std::vector< unsigned long > *self,PySliceObject *slice){
@@ -5783,8 +5828,8 @@ SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____delitem____SWIG_1(std::vect
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<unsigned long,std::allocator< unsigned long > >::difference_type id = i;
-      std::vector<unsigned long,std::allocator< unsigned long > >::difference_type jd = j;
+      std::vector< unsigned long,std::allocator< unsigned long > >::difference_type id = i;
+      std::vector< unsigned long,std::allocator< unsigned long > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN std::vector< unsigned long >::value_type const &std_vector_Sl_unsigned_SS_long_Sg____getitem____SWIG_1(std::vector< unsigned long > const *self,std::vector< unsigned long >::difference_type i){
@@ -5793,6 +5838,13 @@ SWIGINTERN std::vector< unsigned long >::value_type const &std_vector_Sl_unsigne
 SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____setitem____SWIG_2(std::vector< unsigned long > *self,std::vector< unsigned long >::difference_type i,std::vector< unsigned long >::value_type const &x){
       *(swig::getpos(self,i)) = x;
     }
+SWIGINTERN std::vector< unsigned long >::value_type std_vector_Sl_unsigned_SS_long_Sg__pop(std::vector< unsigned long > *self){
+      if (self->size() == 0)
+	throw std::out_of_range("pop from empty container");
+      std::vector< unsigned long,std::allocator< unsigned long > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
 SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg__append(std::vector< unsigned long > *self,std::vector< unsigned long >::value_type const &x){
       self->push_back(x);
     }
@@ -5833,17 +5885,17 @@ const std::complex<double>&
 
 
 namespace swig {
-  template <> struct traits<std::complex<double> > {
+  template <> struct traits< std::complex<double> > {
     typedef value_category category;
     static const char* type_name() { return"std::complex<double>"; }
-  };  
-  template <>  struct traits_asval<std::complex<double> > {   
+  };
+  template <>  struct traits_asval< std::complex<double> > {
     typedef std::complex<double> value_type;
-    static int asval(PyObject *obj, value_type *val) { 
+    static int asval(PyObject *obj, value_type *val) {
       return SWIG_AsVal_std_complex_Sl_double_Sg_ (obj, val);
     }
   };
-  template <>  struct traits_from<std::complex<double> > {
+  template <>  struct traits_from< std::complex<double> > {
     typedef std::complex<double> value_type;
     static PyObject *from(const value_type& val) {
       return SWIG_From_std_complex_Sl_double_Sg_  (val);
@@ -5853,7 +5905,7 @@ namespace swig {
 
 
       namespace swig {
-	template <>  struct traits<std::vector<std::complex< double >, std::allocator< std::complex< double > > > > {
+	template <>  struct traits<std::vector< std::complex< double >, std::allocator< std::complex< double > > > > {
 	  typedef pointer_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "std::complex< double >" "," "std::allocator< std::complex< double > >" " >";
@@ -5873,24 +5925,20 @@ SWIGINTERN bool std_vector_Sl_std_complex_Sl_double_Sg__Sg____bool__(std::vector
 SWIGINTERN std::vector< std::complex< double > >::size_type std_vector_Sl_std_complex_Sl_double_Sg__Sg____len__(std::vector< std::complex< double > > const *self){
       return self->size();
     }
-SWIGINTERN std::vector< std::complex< double > >::value_type std_vector_Sl_std_complex_Sl_double_Sg__Sg__pop(std::vector< std::complex< double > > *self){
-      if (self->size() == 0)
-	throw std::out_of_range("pop from empty container");
-      std::vector<std::complex< double >,std::allocator< std::complex< double > > >::value_type x = self->back();
-      self->pop_back();
-      return x;
-    }
 SWIGINTERN std::vector< std::complex< double >,std::allocator< std::complex< double > > > *std_vector_Sl_std_complex_Sl_double_Sg__Sg____getslice__(std::vector< std::complex< double > > *self,std::vector< std::complex< double > >::difference_type i,std::vector< std::complex< double > >::difference_type j){
       return swig::getslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____setslice____SWIG_0(std::vector< std::complex< double > > *self,std::vector< std::complex< double > >::difference_type i,std::vector< std::complex< double > >::difference_type j,std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &v=std::vector< std::complex< double >,std::allocator< std::complex< double > > >()){
+SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____setslice____SWIG_0(std::vector< std::complex< double > > *self,std::vector< std::complex< double > >::difference_type i,std::vector< std::complex< double > >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< std::complex< double >,std::allocator< std::complex< double > > >());
+    }
+SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____setslice____SWIG_1(std::vector< std::complex< double > > *self,std::vector< std::complex< double > >::difference_type i,std::vector< std::complex< double > >::difference_type j,std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &v){
       swig::setslice(self, i, j, 1, v);
     }
 SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____delslice__(std::vector< std::complex< double > > *self,std::vector< std::complex< double > >::difference_type i,std::vector< std::complex< double > >::difference_type j){
       swig::delslice(self, i, j, 1);
     }
 SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____delitem____SWIG_0(std::vector< std::complex< double > > *self,std::vector< std::complex< double > >::difference_type i){
-      self->erase(swig::getpos(self,i));
+      swig::erase(self, swig::getpos(self, i));
     }
 SWIGINTERN std::vector< std::complex< double >,std::allocator< std::complex< double > > > *std_vector_Sl_std_complex_Sl_double_Sg__Sg____getitem____SWIG_0(std::vector< std::complex< double > > *self,PySliceObject *slice){
       Py_ssize_t i, j, step;
@@ -5899,8 +5947,8 @@ SWIGINTERN std::vector< std::complex< double >,std::allocator< std::complex< dou
         return NULL;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::complex< double >,std::allocator< std::complex< double > > >::difference_type id = i;
-      std::vector<std::complex< double >,std::allocator< std::complex< double > > >::difference_type jd = j;
+      std::vector< std::complex< double >,std::allocator< std::complex< double > > >::difference_type id = i;
+      std::vector< std::complex< double >,std::allocator< std::complex< double > > >::difference_type jd = j;
       return swig::getslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____setitem____SWIG_0(std::vector< std::complex< double > > *self,PySliceObject *slice,std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &v){
@@ -5910,8 +5958,8 @@ SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____setitem____SWIG_0(
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::complex< double >,std::allocator< std::complex< double > > >::difference_type id = i;
-      std::vector<std::complex< double >,std::allocator< std::complex< double > > >::difference_type jd = j;
+      std::vector< std::complex< double >,std::allocator< std::complex< double > > >::difference_type id = i;
+      std::vector< std::complex< double >,std::allocator< std::complex< double > > >::difference_type jd = j;
       swig::setslice(self, id, jd, step, v);
     }
 SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____setitem____SWIG_1(std::vector< std::complex< double > > *self,PySliceObject *slice){
@@ -5921,8 +5969,8 @@ SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____setitem____SWIG_1(
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::complex< double >,std::allocator< std::complex< double > > >::difference_type id = i;
-      std::vector<std::complex< double >,std::allocator< std::complex< double > > >::difference_type jd = j;
+      std::vector< std::complex< double >,std::allocator< std::complex< double > > >::difference_type id = i;
+      std::vector< std::complex< double >,std::allocator< std::complex< double > > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____delitem____SWIG_1(std::vector< std::complex< double > > *self,PySliceObject *slice){
@@ -5932,8 +5980,8 @@ SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____delitem____SWIG_1(
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::complex< double >,std::allocator< std::complex< double > > >::difference_type id = i;
-      std::vector<std::complex< double >,std::allocator< std::complex< double > > >::difference_type jd = j;
+      std::vector< std::complex< double >,std::allocator< std::complex< double > > >::difference_type id = i;
+      std::vector< std::complex< double >,std::allocator< std::complex< double > > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN std::vector< std::complex< double > >::value_type const &std_vector_Sl_std_complex_Sl_double_Sg__Sg____getitem____SWIG_1(std::vector< std::complex< double > > const *self,std::vector< std::complex< double > >::difference_type i){
@@ -5942,6 +5990,13 @@ SWIGINTERN std::vector< std::complex< double > >::value_type const &std_vector_S
 SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____setitem____SWIG_2(std::vector< std::complex< double > > *self,std::vector< std::complex< double > >::difference_type i,std::vector< std::complex< double > >::value_type const &x){
       *(swig::getpos(self,i)) = x;
     }
+SWIGINTERN std::vector< std::complex< double > >::value_type std_vector_Sl_std_complex_Sl_double_Sg__Sg__pop(std::vector< std::complex< double > > *self){
+      if (self->size() == 0)
+	throw std::out_of_range("pop from empty container");
+      std::vector< std::complex< double >,std::allocator< std::complex< double > > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
 SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg__append(std::vector< std::complex< double > > *self,std::vector< std::complex< double > >::value_type const &x){
       self->push_back(x);
     }
@@ -6003,18 +6058,17 @@ SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
 #else
 	if (*alloc == SWIG_NEWOBJ) 
 #endif
-	  {
-	    *cptr = reinterpret_cast< char* >(memcpy((new char[len + 1]), cstr, sizeof(char)*(len + 1)));
-	    *alloc = SWIG_NEWOBJ;
-	  }
-	else {
+	{
+	  *cptr = reinterpret_cast< char* >(memcpy((new char[len + 1]), cstr, sizeof(char)*(len + 1)));
+	  *alloc = SWIG_NEWOBJ;
+	} else {
 	  *cptr = cstr;
 	  *alloc = SWIG_OLDOBJ;
 	}
       } else {
-        #if PY_VERSION_HEX>=0x03000000
-        assert(0); /* Should never reach here in Python 3 */
-        #endif
+	#if PY_VERSION_HEX>=0x03000000
+	assert(0); /* Should never reach here in Python 3 */
+	#endif
 	*cptr = SWIG_Python_str_AsChar(obj);
       }
     }
@@ -6024,6 +6078,30 @@ SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
 #endif
     return SWIG_OK;
   } else {
+#if defined(SWIG_PYTHON_2_UNICODE)
+#if PY_VERSION_HEX<0x03000000
+    if (PyUnicode_Check(obj)) {
+      char *cstr; Py_ssize_t len;
+      if (!alloc && cptr) {
+        return SWIG_RuntimeError;
+      }
+      obj = PyUnicode_AsUTF8String(obj);
+      if (PyString_AsStringAndSize(obj, &cstr, &len) != -1) {
+        if (cptr) {
+          if (alloc) *alloc = SWIG_NEWOBJ;
+          *cptr = reinterpret_cast< char* >(memcpy((new char[len + 1]), cstr, sizeof(char)*(len + 1)));
+        }
+        if (psize) *psize = len + 1;
+
+        Py_XDECREF(obj);
+        return SWIG_OK;
+      } else {
+        Py_XDECREF(obj);
+      }
+    }
+#endif
+#endif
+
     swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
     if (pchar_descriptor) {
       void* vptr = 0;
@@ -6099,12 +6177,12 @@ SWIG_FromCharPtrAndSize(const char* carray, size_t size)
     } else {
 #if PY_VERSION_HEX >= 0x03000000
 #if PY_VERSION_HEX >= 0x03010000
-      return PyUnicode_DecodeUTF8(carray, static_cast< int >(size), "surrogateescape");
+      return PyUnicode_DecodeUTF8(carray, static_cast< Py_ssize_t >(size), "surrogateescape");
 #else
-      return PyUnicode_FromStringAndSize(carray, static_cast< int >(size));
+      return PyUnicode_FromStringAndSize(carray, static_cast< Py_ssize_t >(size));
 #endif
 #else
-      return PyString_FromStringAndSize(carray, static_cast< int >(size));
+      return PyString_FromStringAndSize(carray, static_cast< Py_ssize_t >(size));
 #endif
     }
   } else {
@@ -6121,17 +6199,17 @@ SWIG_From_std_string  (const std::string& s)
 
 
 namespace swig {
-  template <> struct traits<std::string > {
+  template <> struct traits< std::string > {
     typedef value_category category;
     static const char* type_name() { return"std::string"; }
-  };  
-  template <>  struct traits_asval<std::string > {   
+  };
+  template <>  struct traits_asval< std::string > {
     typedef std::string value_type;
-    static int asval(PyObject *obj, value_type *val) { 
+    static int asval(PyObject *obj, value_type *val) {
       return SWIG_AsVal_std_string (obj, val);
     }
   };
-  template <>  struct traits_from<std::string > {
+  template <>  struct traits_from< std::string > {
     typedef std::string value_type;
     static PyObject *from(const value_type& val) {
       return SWIG_From_std_string  (val);
@@ -6141,7 +6219,7 @@ namespace swig {
 
 
       namespace swig {
-	template <>  struct traits<std::vector<std::string, std::allocator< std::string > > > {
+	template <>  struct traits<std::vector< std::string, std::allocator< std::string > > > {
 	  typedef pointer_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "std::string" "," "std::allocator< std::string >" " >";
@@ -6161,24 +6239,20 @@ SWIGINTERN bool std_vector_Sl_std_string_Sg____bool__(std::vector< std::string >
 SWIGINTERN std::vector< std::string >::size_type std_vector_Sl_std_string_Sg____len__(std::vector< std::string > const *self){
       return self->size();
     }
-SWIGINTERN std::vector< std::string >::value_type std_vector_Sl_std_string_Sg__pop(std::vector< std::string > *self){
-      if (self->size() == 0)
-	throw std::out_of_range("pop from empty container");
-      std::vector<std::string,std::allocator< std::string > >::value_type x = self->back();
-      self->pop_back();
-      return x;
-    }
 SWIGINTERN std::vector< std::string,std::allocator< std::string > > *std_vector_Sl_std_string_Sg____getslice__(std::vector< std::string > *self,std::vector< std::string >::difference_type i,std::vector< std::string >::difference_type j){
       return swig::getslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_std_string_Sg____setslice____SWIG_0(std::vector< std::string > *self,std::vector< std::string >::difference_type i,std::vector< std::string >::difference_type j,std::vector< std::string,std::allocator< std::string > > const &v=std::vector< std::string,std::allocator< std::string > >()){
+SWIGINTERN void std_vector_Sl_std_string_Sg____setslice____SWIG_0(std::vector< std::string > *self,std::vector< std::string >::difference_type i,std::vector< std::string >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< std::string,std::allocator< std::string > >());
+    }
+SWIGINTERN void std_vector_Sl_std_string_Sg____setslice____SWIG_1(std::vector< std::string > *self,std::vector< std::string >::difference_type i,std::vector< std::string >::difference_type j,std::vector< std::string,std::allocator< std::string > > const &v){
       swig::setslice(self, i, j, 1, v);
     }
 SWIGINTERN void std_vector_Sl_std_string_Sg____delslice__(std::vector< std::string > *self,std::vector< std::string >::difference_type i,std::vector< std::string >::difference_type j){
       swig::delslice(self, i, j, 1);
     }
 SWIGINTERN void std_vector_Sl_std_string_Sg____delitem____SWIG_0(std::vector< std::string > *self,std::vector< std::string >::difference_type i){
-      self->erase(swig::getpos(self,i));
+      swig::erase(self, swig::getpos(self, i));
     }
 SWIGINTERN std::vector< std::string,std::allocator< std::string > > *std_vector_Sl_std_string_Sg____getitem____SWIG_0(std::vector< std::string > *self,PySliceObject *slice){
       Py_ssize_t i, j, step;
@@ -6187,8 +6261,8 @@ SWIGINTERN std::vector< std::string,std::allocator< std::string > > *std_vector_
         return NULL;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::string,std::allocator< std::string > >::difference_type id = i;
-      std::vector<std::string,std::allocator< std::string > >::difference_type jd = j;
+      std::vector< std::string,std::allocator< std::string > >::difference_type id = i;
+      std::vector< std::string,std::allocator< std::string > >::difference_type jd = j;
       return swig::getslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_std_string_Sg____setitem____SWIG_0(std::vector< std::string > *self,PySliceObject *slice,std::vector< std::string,std::allocator< std::string > > const &v){
@@ -6198,8 +6272,8 @@ SWIGINTERN void std_vector_Sl_std_string_Sg____setitem____SWIG_0(std::vector< st
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::string,std::allocator< std::string > >::difference_type id = i;
-      std::vector<std::string,std::allocator< std::string > >::difference_type jd = j;
+      std::vector< std::string,std::allocator< std::string > >::difference_type id = i;
+      std::vector< std::string,std::allocator< std::string > >::difference_type jd = j;
       swig::setslice(self, id, jd, step, v);
     }
 SWIGINTERN void std_vector_Sl_std_string_Sg____setitem____SWIG_1(std::vector< std::string > *self,PySliceObject *slice){
@@ -6209,8 +6283,8 @@ SWIGINTERN void std_vector_Sl_std_string_Sg____setitem____SWIG_1(std::vector< st
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::string,std::allocator< std::string > >::difference_type id = i;
-      std::vector<std::string,std::allocator< std::string > >::difference_type jd = j;
+      std::vector< std::string,std::allocator< std::string > >::difference_type id = i;
+      std::vector< std::string,std::allocator< std::string > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_std_string_Sg____delitem____SWIG_1(std::vector< std::string > *self,PySliceObject *slice){
@@ -6220,8 +6294,8 @@ SWIGINTERN void std_vector_Sl_std_string_Sg____delitem____SWIG_1(std::vector< st
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::string,std::allocator< std::string > >::difference_type id = i;
-      std::vector<std::string,std::allocator< std::string > >::difference_type jd = j;
+      std::vector< std::string,std::allocator< std::string > >::difference_type id = i;
+      std::vector< std::string,std::allocator< std::string > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN std::vector< std::string >::value_type const &std_vector_Sl_std_string_Sg____getitem____SWIG_1(std::vector< std::string > const *self,std::vector< std::string >::difference_type i){
@@ -6230,6 +6304,13 @@ SWIGINTERN std::vector< std::string >::value_type const &std_vector_Sl_std_strin
 SWIGINTERN void std_vector_Sl_std_string_Sg____setitem____SWIG_2(std::vector< std::string > *self,std::vector< std::string >::difference_type i,std::vector< std::string >::value_type const &x){
       *(swig::getpos(self,i)) = x;
     }
+SWIGINTERN std::vector< std::string >::value_type std_vector_Sl_std_string_Sg__pop(std::vector< std::string > *self){
+      if (self->size() == 0)
+	throw std::out_of_range("pop from empty container");
+      std::vector< std::string,std::allocator< std::string > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
 SWIGINTERN void std_vector_Sl_std_string_Sg__append(std::vector< std::string > *self,std::vector< std::string >::value_type const &x){
       self->push_back(x);
     }
@@ -6411,7 +6492,7 @@ SWIGINTERN BasicVector3D< double > BasicVector3D_Sl_double_Sg____rmul__(BasicVec
         return *(self) * c; }
 
   namespace swig {
-    template <>  struct traits<BasicVector3D< double > > {
+    template <>  struct traits< BasicVector3D< double > > {
       typedef pointer_category category;
       static const char* type_name() { return"BasicVector3D< double >"; }
     };
@@ -6419,7 +6500,7 @@ SWIGINTERN BasicVector3D< double > BasicVector3D_Sl_double_Sg____rmul__(BasicVec
 
 
       namespace swig {
-	template <>  struct traits<std::vector<BasicVector3D< double >, std::allocator< BasicVector3D< double > > > > {
+	template <>  struct traits<std::vector< BasicVector3D< double >, std::allocator< BasicVector3D< double > > > > {
 	  typedef pointer_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "BasicVector3D< double >" "," "std::allocator< BasicVector3D< double > >" " >";
@@ -6439,24 +6520,20 @@ SWIGINTERN bool std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg____bool__(std::vect
 SWIGINTERN std::vector< BasicVector3D< double > >::size_type std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg____len__(std::vector< BasicVector3D< double > > const *self){
       return self->size();
     }
-SWIGINTERN std::vector< BasicVector3D< double > >::value_type std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg__pop(std::vector< BasicVector3D< double > > *self){
-      if (self->size() == 0)
-	throw std::out_of_range("pop from empty container");
-      std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >::value_type x = self->back();
-      self->pop_back();
-      return x;
-    }
 SWIGINTERN std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg____getslice__(std::vector< BasicVector3D< double > > *self,std::vector< BasicVector3D< double > >::difference_type i,std::vector< BasicVector3D< double > >::difference_type j){
       return swig::getslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg____setslice____SWIG_0(std::vector< BasicVector3D< double > > *self,std::vector< BasicVector3D< double > >::difference_type i,std::vector< BasicVector3D< double > >::difference_type j,std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > const &v=std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >()){
+SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg____setslice____SWIG_0(std::vector< BasicVector3D< double > > *self,std::vector< BasicVector3D< double > >::difference_type i,std::vector< BasicVector3D< double > >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >());
+    }
+SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg____setslice____SWIG_1(std::vector< BasicVector3D< double > > *self,std::vector< BasicVector3D< double > >::difference_type i,std::vector< BasicVector3D< double > >::difference_type j,std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > const &v){
       swig::setslice(self, i, j, 1, v);
     }
 SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg____delslice__(std::vector< BasicVector3D< double > > *self,std::vector< BasicVector3D< double > >::difference_type i,std::vector< BasicVector3D< double > >::difference_type j){
       swig::delslice(self, i, j, 1);
     }
 SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg____delitem____SWIG_0(std::vector< BasicVector3D< double > > *self,std::vector< BasicVector3D< double > >::difference_type i){
-      self->erase(swig::getpos(self,i));
+      swig::erase(self, swig::getpos(self, i));
     }
 SWIGINTERN std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg____getitem____SWIG_0(std::vector< BasicVector3D< double > > *self,PySliceObject *slice){
       Py_ssize_t i, j, step;
@@ -6465,8 +6542,8 @@ SWIGINTERN std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< d
         return NULL;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >::difference_type id = i;
-      std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >::difference_type jd = j;
+      std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >::difference_type id = i;
+      std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >::difference_type jd = j;
       return swig::getslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg____setitem____SWIG_0(std::vector< BasicVector3D< double > > *self,PySliceObject *slice,std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > const &v){
@@ -6476,8 +6553,8 @@ SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg____setitem____SWIG_
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >::difference_type id = i;
-      std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >::difference_type jd = j;
+      std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >::difference_type id = i;
+      std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >::difference_type jd = j;
       swig::setslice(self, id, jd, step, v);
     }
 SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg____setitem____SWIG_1(std::vector< BasicVector3D< double > > *self,PySliceObject *slice){
@@ -6487,8 +6564,8 @@ SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg____setitem____SWIG_
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >::difference_type id = i;
-      std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >::difference_type jd = j;
+      std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >::difference_type id = i;
+      std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg____delitem____SWIG_1(std::vector< BasicVector3D< double > > *self,PySliceObject *slice){
@@ -6498,8 +6575,8 @@ SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg____delitem____SWIG_
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >::difference_type id = i;
-      std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >::difference_type jd = j;
+      std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >::difference_type id = i;
+      std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN std::vector< BasicVector3D< double > >::value_type const &std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg____getitem____SWIG_1(std::vector< BasicVector3D< double > > const *self,std::vector< BasicVector3D< double > >::difference_type i){
@@ -6508,6 +6585,13 @@ SWIGINTERN std::vector< BasicVector3D< double > >::value_type const &std_vector_
 SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg____setitem____SWIG_2(std::vector< BasicVector3D< double > > *self,std::vector< BasicVector3D< double > >::difference_type i,std::vector< BasicVector3D< double > >::value_type const &x){
       *(swig::getpos(self,i)) = x;
     }
+SWIGINTERN std::vector< BasicVector3D< double > >::value_type std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg__pop(std::vector< BasicVector3D< double > > *self){
+      if (self->size() == 0)
+	throw std::out_of_range("pop from empty container");
+      std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
 SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg__append(std::vector< BasicVector3D< double > > *self,std::vector< BasicVector3D< double > >::value_type const &x){
       self->push_back(x);
     }
@@ -6517,7 +6601,7 @@ SWIGINTERN std::vector< BasicVector3D< double > >::iterator std_vector_Sl_BasicV
 SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg__insert__SWIG_1(std::vector< BasicVector3D< double > > *self,std::vector< BasicVector3D< double > >::iterator pos,std::vector< BasicVector3D< double > >::size_type n,std::vector< BasicVector3D< double > >::value_type const &x){ self->insert(pos, n, x); }
 
   namespace swig {
-    template <>  struct traits<BasicVector3D< std::complex< double > > > {
+    template <>  struct traits< BasicVector3D< std::complex< double > > > {
       typedef pointer_category category;
       static const char* type_name() { return"BasicVector3D< std::complex< double > >"; }
     };
@@ -6525,7 +6609,7 @@ SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg__insert__SWIG_1(std
 
 
       namespace swig {
-	template <>  struct traits<std::vector<BasicVector3D< std::complex< double > >, std::allocator< BasicVector3D< std::complex< double > > > > > {
+	template <>  struct traits<std::vector< BasicVector3D< std::complex< double > >, std::allocator< BasicVector3D< std::complex< double > > > > > {
 	  typedef pointer_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "BasicVector3D< std::complex< double > >" "," "std::allocator< BasicVector3D< std::complex< double > > >" " >";
@@ -6545,24 +6629,20 @@ SWIGINTERN bool std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg_
 SWIGINTERN std::vector< BasicVector3D< std::complex< double > > >::size_type std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____len__(std::vector< BasicVector3D< std::complex< double > > > const *self){
       return self->size();
     }
-SWIGINTERN std::vector< BasicVector3D< std::complex< double > > >::value_type std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg__pop(std::vector< BasicVector3D< std::complex< double > > > *self){
-      if (self->size() == 0)
-	throw std::out_of_range("pop from empty container");
-      std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >::value_type x = self->back();
-      self->pop_back();
-      return x;
-    }
 SWIGINTERN std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > *std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____getslice__(std::vector< BasicVector3D< std::complex< double > > > *self,std::vector< BasicVector3D< std::complex< double > > >::difference_type i,std::vector< BasicVector3D< std::complex< double > > >::difference_type j){
       return swig::getslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____setslice____SWIG_0(std::vector< BasicVector3D< std::complex< double > > > *self,std::vector< BasicVector3D< std::complex< double > > >::difference_type i,std::vector< BasicVector3D< std::complex< double > > >::difference_type j,std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > const &v=std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >()){
+SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____setslice____SWIG_0(std::vector< BasicVector3D< std::complex< double > > > *self,std::vector< BasicVector3D< std::complex< double > > >::difference_type i,std::vector< BasicVector3D< std::complex< double > > >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >());
+    }
+SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____setslice____SWIG_1(std::vector< BasicVector3D< std::complex< double > > > *self,std::vector< BasicVector3D< std::complex< double > > >::difference_type i,std::vector< BasicVector3D< std::complex< double > > >::difference_type j,std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > const &v){
       swig::setslice(self, i, j, 1, v);
     }
 SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____delslice__(std::vector< BasicVector3D< std::complex< double > > > *self,std::vector< BasicVector3D< std::complex< double > > >::difference_type i,std::vector< BasicVector3D< std::complex< double > > >::difference_type j){
       swig::delslice(self, i, j, 1);
     }
 SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____delitem____SWIG_0(std::vector< BasicVector3D< std::complex< double > > > *self,std::vector< BasicVector3D< std::complex< double > > >::difference_type i){
-      self->erase(swig::getpos(self,i));
+      swig::erase(self, swig::getpos(self, i));
     }
 SWIGINTERN std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > *std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____getitem____SWIG_0(std::vector< BasicVector3D< std::complex< double > > > *self,PySliceObject *slice){
       Py_ssize_t i, j, step;
@@ -6571,8 +6651,8 @@ SWIGINTERN std::vector< BasicVector3D< std::complex< double > >,std::allocator<
         return NULL;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >::difference_type id = i;
-      std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >::difference_type jd = j;
+      std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >::difference_type id = i;
+      std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >::difference_type jd = j;
       return swig::getslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____setitem____SWIG_0(std::vector< BasicVector3D< std::complex< double > > > *self,PySliceObject *slice,std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > const &v){
@@ -6582,8 +6662,8 @@ SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg_
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >::difference_type id = i;
-      std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >::difference_type jd = j;
+      std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >::difference_type id = i;
+      std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >::difference_type jd = j;
       swig::setslice(self, id, jd, step, v);
     }
 SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____setitem____SWIG_1(std::vector< BasicVector3D< std::complex< double > > > *self,PySliceObject *slice){
@@ -6593,8 +6673,8 @@ SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg_
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >::difference_type id = i;
-      std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >::difference_type jd = j;
+      std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >::difference_type id = i;
+      std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____delitem____SWIG_1(std::vector< BasicVector3D< std::complex< double > > > *self,PySliceObject *slice){
@@ -6604,8 +6684,8 @@ SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg_
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >::difference_type id = i;
-      std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >::difference_type jd = j;
+      std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >::difference_type id = i;
+      std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN std::vector< BasicVector3D< std::complex< double > > >::value_type const &std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____getitem____SWIG_1(std::vector< BasicVector3D< std::complex< double > > > const *self,std::vector< BasicVector3D< std::complex< double > > >::difference_type i){
@@ -6614,6 +6694,13 @@ SWIGINTERN std::vector< BasicVector3D< std::complex< double > > >::value_type co
 SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____setitem____SWIG_2(std::vector< BasicVector3D< std::complex< double > > > *self,std::vector< BasicVector3D< std::complex< double > > >::difference_type i,std::vector< BasicVector3D< std::complex< double > > >::value_type const &x){
       *(swig::getpos(self,i)) = x;
     }
+SWIGINTERN std::vector< BasicVector3D< std::complex< double > > >::value_type std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg__pop(std::vector< BasicVector3D< std::complex< double > > > *self){
+      if (self->size() == 0)
+	throw std::out_of_range("pop from empty container");
+      std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
 SWIGINTERN void std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg__append(std::vector< BasicVector3D< std::complex< double > > > *self,std::vector< BasicVector3D< std::complex< double > > >::value_type const &x){
       self->push_back(x);
     }
@@ -6640,7 +6727,7 @@ SWIG_AsVal_unsigned_SS_int (PyObject * obj, unsigned int *val)
 SWIGINTERN double VariableBinAxis___getitem__(VariableBinAxis *self,unsigned int i){ return (*(self))[i]; }
 
   namespace swig {
-    template <>  struct traits<ISample > {
+    template <>  struct traits< ISample > {
       typedef pointer_category category;
       static const char* type_name() { return"ISample"; }
     };
@@ -6648,7 +6735,7 @@ SWIGINTERN double VariableBinAxis___getitem__(VariableBinAxis *self,unsigned int
 
 
       namespace swig {
-	template <>  struct traits<std::vector<ISample*, std::allocator< ISample * > > > {
+	template <>  struct traits<std::vector< ISample*, std::allocator< ISample * > > > {
 	  typedef value_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "ISample" " *," "std::allocator< ISample * >" " >";
@@ -6668,24 +6755,20 @@ SWIGINTERN bool std_vector_Sl_ISample_Sm__Sg____bool__(std::vector< ISample * >
 SWIGINTERN std::vector< ISample * >::size_type std_vector_Sl_ISample_Sm__Sg____len__(std::vector< ISample * > const *self){
       return self->size();
     }
-SWIGINTERN std::vector< ISample * >::value_type std_vector_Sl_ISample_Sm__Sg__pop(std::vector< ISample * > *self){
-      if (self->size() == 0)
-	throw std::out_of_range("pop from empty container");
-      std::vector<ISample*,std::allocator< ISample * > >::value_type x = self->back();
-      self->pop_back();
-      return x;
-    }
 SWIGINTERN std::vector< ISample *,std::allocator< ISample * > > *std_vector_Sl_ISample_Sm__Sg____getslice__(std::vector< ISample * > *self,std::vector< ISample * >::difference_type i,std::vector< ISample * >::difference_type j){
       return swig::getslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_ISample_Sm__Sg____setslice____SWIG_0(std::vector< ISample * > *self,std::vector< ISample * >::difference_type i,std::vector< ISample * >::difference_type j,std::vector< ISample *,std::allocator< ISample * > > const &v=std::vector< ISample *,std::allocator< ISample * > >()){
+SWIGINTERN void std_vector_Sl_ISample_Sm__Sg____setslice____SWIG_0(std::vector< ISample * > *self,std::vector< ISample * >::difference_type i,std::vector< ISample * >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< ISample*,std::allocator< ISample * > >());
+    }
+SWIGINTERN void std_vector_Sl_ISample_Sm__Sg____setslice____SWIG_1(std::vector< ISample * > *self,std::vector< ISample * >::difference_type i,std::vector< ISample * >::difference_type j,std::vector< ISample *,std::allocator< ISample * > > const &v){
       swig::setslice(self, i, j, 1, v);
     }
 SWIGINTERN void std_vector_Sl_ISample_Sm__Sg____delslice__(std::vector< ISample * > *self,std::vector< ISample * >::difference_type i,std::vector< ISample * >::difference_type j){
       swig::delslice(self, i, j, 1);
     }
 SWIGINTERN void std_vector_Sl_ISample_Sm__Sg____delitem____SWIG_0(std::vector< ISample * > *self,std::vector< ISample * >::difference_type i){
-      self->erase(swig::getpos(self,i));
+      swig::erase(self, swig::getpos(self, i));
     }
 SWIGINTERN std::vector< ISample *,std::allocator< ISample * > > *std_vector_Sl_ISample_Sm__Sg____getitem____SWIG_0(std::vector< ISample * > *self,PySliceObject *slice){
       Py_ssize_t i, j, step;
@@ -6694,8 +6777,8 @@ SWIGINTERN std::vector< ISample *,std::allocator< ISample * > > *std_vector_Sl_I
         return NULL;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<ISample*,std::allocator< ISample * > >::difference_type id = i;
-      std::vector<ISample*,std::allocator< ISample * > >::difference_type jd = j;
+      std::vector< ISample*,std::allocator< ISample * > >::difference_type id = i;
+      std::vector< ISample*,std::allocator< ISample * > >::difference_type jd = j;
       return swig::getslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_ISample_Sm__Sg____setitem____SWIG_0(std::vector< ISample * > *self,PySliceObject *slice,std::vector< ISample *,std::allocator< ISample * > > const &v){
@@ -6705,8 +6788,8 @@ SWIGINTERN void std_vector_Sl_ISample_Sm__Sg____setitem____SWIG_0(std::vector< I
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<ISample*,std::allocator< ISample * > >::difference_type id = i;
-      std::vector<ISample*,std::allocator< ISample * > >::difference_type jd = j;
+      std::vector< ISample*,std::allocator< ISample * > >::difference_type id = i;
+      std::vector< ISample*,std::allocator< ISample * > >::difference_type jd = j;
       swig::setslice(self, id, jd, step, v);
     }
 SWIGINTERN void std_vector_Sl_ISample_Sm__Sg____setitem____SWIG_1(std::vector< ISample * > *self,PySliceObject *slice){
@@ -6716,8 +6799,8 @@ SWIGINTERN void std_vector_Sl_ISample_Sm__Sg____setitem____SWIG_1(std::vector< I
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<ISample*,std::allocator< ISample * > >::difference_type id = i;
-      std::vector<ISample*,std::allocator< ISample * > >::difference_type jd = j;
+      std::vector< ISample*,std::allocator< ISample * > >::difference_type id = i;
+      std::vector< ISample*,std::allocator< ISample * > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_ISample_Sm__Sg____delitem____SWIG_1(std::vector< ISample * > *self,PySliceObject *slice){
@@ -6727,8 +6810,8 @@ SWIGINTERN void std_vector_Sl_ISample_Sm__Sg____delitem____SWIG_1(std::vector< I
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<ISample*,std::allocator< ISample * > >::difference_type id = i;
-      std::vector<ISample*,std::allocator< ISample * > >::difference_type jd = j;
+      std::vector< ISample*,std::allocator< ISample * > >::difference_type id = i;
+      std::vector< ISample*,std::allocator< ISample * > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN std::vector< ISample * >::value_type std_vector_Sl_ISample_Sm__Sg____getitem____SWIG_1(std::vector< ISample * > *self,std::vector< ISample * >::difference_type i){
@@ -6737,6 +6820,13 @@ SWIGINTERN std::vector< ISample * >::value_type std_vector_Sl_ISample_Sm__Sg____
 SWIGINTERN void std_vector_Sl_ISample_Sm__Sg____setitem____SWIG_2(std::vector< ISample * > *self,std::vector< ISample * >::difference_type i,std::vector< ISample * >::value_type x){
       *(swig::getpos(self,i)) = x;
     }
+SWIGINTERN std::vector< ISample * >::value_type std_vector_Sl_ISample_Sm__Sg__pop(std::vector< ISample * > *self){
+      if (self->size() == 0)
+	throw std::out_of_range("pop from empty container");
+      std::vector< ISample*,std::allocator< ISample * > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
 SWIGINTERN void std_vector_Sl_ISample_Sm__Sg__append(std::vector< ISample * > *self,std::vector< ISample * >::value_type x){
       self->push_back(x);
     }
@@ -6746,7 +6836,7 @@ SWIGINTERN std::vector< ISample * >::iterator std_vector_Sl_ISample_Sm__Sg__inse
 SWIGINTERN void std_vector_Sl_ISample_Sm__Sg__insert__SWIG_1(std::vector< ISample * > *self,std::vector< ISample * >::iterator pos,std::vector< ISample * >::size_type n,std::vector< ISample * >::value_type x){ self->insert(pos, n, x); }
 
       namespace swig {
-	template <>  struct traits<std::vector<ISample const*, std::allocator< ISample const * > > > {
+	template <>  struct traits<std::vector< ISample const*, std::allocator< ISample const * > > > {
 	  typedef value_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "ISample" " const*," "std::allocator< ISample const * >" " >";
@@ -6766,24 +6856,20 @@ SWIGINTERN bool std_vector_Sl_ISample_SS_const_Sm__Sg____bool__(std::vector< ISa
 SWIGINTERN std::vector< ISample const * >::size_type std_vector_Sl_ISample_SS_const_Sm__Sg____len__(std::vector< ISample const * > const *self){
       return self->size();
     }
-SWIGINTERN std::vector< ISample const * >::value_type std_vector_Sl_ISample_SS_const_Sm__Sg__pop(std::vector< ISample const * > *self){
-      if (self->size() == 0)
-	throw std::out_of_range("pop from empty container");
-      std::vector<ISample const*,std::allocator< ISample const * > >::value_type x = self->back();
-      self->pop_back();
-      return x;
-    }
 SWIGINTERN std::vector< ISample const *,std::allocator< ISample const * > > *std_vector_Sl_ISample_SS_const_Sm__Sg____getslice__(std::vector< ISample const * > *self,std::vector< ISample const * >::difference_type i,std::vector< ISample const * >::difference_type j){
       return swig::getslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_ISample_SS_const_Sm__Sg____setslice____SWIG_0(std::vector< ISample const * > *self,std::vector< ISample const * >::difference_type i,std::vector< ISample const * >::difference_type j,std::vector< ISample const *,std::allocator< ISample const * > > const &v=std::vector< ISample const *,std::allocator< ISample const * > >()){
+SWIGINTERN void std_vector_Sl_ISample_SS_const_Sm__Sg____setslice____SWIG_0(std::vector< ISample const * > *self,std::vector< ISample const * >::difference_type i,std::vector< ISample const * >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< ISample const*,std::allocator< ISample const * > >());
+    }
+SWIGINTERN void std_vector_Sl_ISample_SS_const_Sm__Sg____setslice____SWIG_1(std::vector< ISample const * > *self,std::vector< ISample const * >::difference_type i,std::vector< ISample const * >::difference_type j,std::vector< ISample const *,std::allocator< ISample const * > > const &v){
       swig::setslice(self, i, j, 1, v);
     }
 SWIGINTERN void std_vector_Sl_ISample_SS_const_Sm__Sg____delslice__(std::vector< ISample const * > *self,std::vector< ISample const * >::difference_type i,std::vector< ISample const * >::difference_type j){
       swig::delslice(self, i, j, 1);
     }
 SWIGINTERN void std_vector_Sl_ISample_SS_const_Sm__Sg____delitem____SWIG_0(std::vector< ISample const * > *self,std::vector< ISample const * >::difference_type i){
-      self->erase(swig::getpos(self,i));
+      swig::erase(self, swig::getpos(self, i));
     }
 SWIGINTERN std::vector< ISample const *,std::allocator< ISample const * > > *std_vector_Sl_ISample_SS_const_Sm__Sg____getitem____SWIG_0(std::vector< ISample const * > *self,PySliceObject *slice){
       Py_ssize_t i, j, step;
@@ -6792,8 +6878,8 @@ SWIGINTERN std::vector< ISample const *,std::allocator< ISample const * > > *std
         return NULL;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<ISample const*,std::allocator< ISample const * > >::difference_type id = i;
-      std::vector<ISample const*,std::allocator< ISample const * > >::difference_type jd = j;
+      std::vector< ISample const*,std::allocator< ISample const * > >::difference_type id = i;
+      std::vector< ISample const*,std::allocator< ISample const * > >::difference_type jd = j;
       return swig::getslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_ISample_SS_const_Sm__Sg____setitem____SWIG_0(std::vector< ISample const * > *self,PySliceObject *slice,std::vector< ISample const *,std::allocator< ISample const * > > const &v){
@@ -6803,8 +6889,8 @@ SWIGINTERN void std_vector_Sl_ISample_SS_const_Sm__Sg____setitem____SWIG_0(std::
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<ISample const*,std::allocator< ISample const * > >::difference_type id = i;
-      std::vector<ISample const*,std::allocator< ISample const * > >::difference_type jd = j;
+      std::vector< ISample const*,std::allocator< ISample const * > >::difference_type id = i;
+      std::vector< ISample const*,std::allocator< ISample const * > >::difference_type jd = j;
       swig::setslice(self, id, jd, step, v);
     }
 SWIGINTERN void std_vector_Sl_ISample_SS_const_Sm__Sg____setitem____SWIG_1(std::vector< ISample const * > *self,PySliceObject *slice){
@@ -6814,8 +6900,8 @@ SWIGINTERN void std_vector_Sl_ISample_SS_const_Sm__Sg____setitem____SWIG_1(std::
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<ISample const*,std::allocator< ISample const * > >::difference_type id = i;
-      std::vector<ISample const*,std::allocator< ISample const * > >::difference_type jd = j;
+      std::vector< ISample const*,std::allocator< ISample const * > >::difference_type id = i;
+      std::vector< ISample const*,std::allocator< ISample const * > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_ISample_SS_const_Sm__Sg____delitem____SWIG_1(std::vector< ISample const * > *self,PySliceObject *slice){
@@ -6825,8 +6911,8 @@ SWIGINTERN void std_vector_Sl_ISample_SS_const_Sm__Sg____delitem____SWIG_1(std::
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<ISample const*,std::allocator< ISample const * > >::difference_type id = i;
-      std::vector<ISample const*,std::allocator< ISample const * > >::difference_type jd = j;
+      std::vector< ISample const*,std::allocator< ISample const * > >::difference_type id = i;
+      std::vector< ISample const*,std::allocator< ISample const * > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN std::vector< ISample const * >::value_type std_vector_Sl_ISample_SS_const_Sm__Sg____getitem____SWIG_1(std::vector< ISample const * > *self,std::vector< ISample const * >::difference_type i){
@@ -6835,6 +6921,13 @@ SWIGINTERN std::vector< ISample const * >::value_type std_vector_Sl_ISample_SS_c
 SWIGINTERN void std_vector_Sl_ISample_SS_const_Sm__Sg____setitem____SWIG_2(std::vector< ISample const * > *self,std::vector< ISample const * >::difference_type i,std::vector< ISample const * >::value_type x){
       *(swig::getpos(self,i)) = x;
     }
+SWIGINTERN std::vector< ISample const * >::value_type std_vector_Sl_ISample_SS_const_Sm__Sg__pop(std::vector< ISample const * > *self){
+      if (self->size() == 0)
+	throw std::out_of_range("pop from empty container");
+      std::vector< ISample const*,std::allocator< ISample const * > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
 SWIGINTERN void std_vector_Sl_ISample_SS_const_Sm__Sg__append(std::vector< ISample const * > *self,std::vector< ISample const * >::value_type x){
       self->push_back(x);
     }
@@ -6881,6 +6974,7 @@ SWIG_AsVal_long_SS_long (PyObject *obj, long long *val)
       return SWIG_OK;
     } else {
       PyErr_Clear();
+      res = SWIG_OverflowError;
     }
   } else {
     long v;
@@ -6913,7 +7007,7 @@ SWIGINTERN void IMultiLayerBuilder_setParameterValue(IMultiLayerBuilder *self,st
 SWIGINTERN double FixedBinAxis___getitem__(FixedBinAxis *self,unsigned int i){ return (*(self))[i]; }
 
   namespace swig {
-    template <>  struct traits<IFormFactor > {
+    template <>  struct traits< IFormFactor > {
       typedef pointer_category category;
       static const char* type_name() { return"IFormFactor"; }
     };
@@ -6921,7 +7015,7 @@ SWIGINTERN double FixedBinAxis___getitem__(FixedBinAxis *self,unsigned int i){ r
 
 
       namespace swig {
-	template <>  struct traits<std::vector<IFormFactor*, std::allocator< IFormFactor * > > > {
+	template <>  struct traits<std::vector< IFormFactor*, std::allocator< IFormFactor * > > > {
 	  typedef value_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "IFormFactor" " *," "std::allocator< IFormFactor * >" " >";
@@ -6941,24 +7035,20 @@ SWIGINTERN bool std_vector_Sl_IFormFactor_Sm__Sg____bool__(std::vector< IFormFac
 SWIGINTERN std::vector< IFormFactor * >::size_type std_vector_Sl_IFormFactor_Sm__Sg____len__(std::vector< IFormFactor * > const *self){
       return self->size();
     }
-SWIGINTERN std::vector< IFormFactor * >::value_type std_vector_Sl_IFormFactor_Sm__Sg__pop(std::vector< IFormFactor * > *self){
-      if (self->size() == 0)
-	throw std::out_of_range("pop from empty container");
-      std::vector<IFormFactor*,std::allocator< IFormFactor * > >::value_type x = self->back();
-      self->pop_back();
-      return x;
-    }
 SWIGINTERN std::vector< IFormFactor *,std::allocator< IFormFactor * > > *std_vector_Sl_IFormFactor_Sm__Sg____getslice__(std::vector< IFormFactor * > *self,std::vector< IFormFactor * >::difference_type i,std::vector< IFormFactor * >::difference_type j){
       return swig::getslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_IFormFactor_Sm__Sg____setslice____SWIG_0(std::vector< IFormFactor * > *self,std::vector< IFormFactor * >::difference_type i,std::vector< IFormFactor * >::difference_type j,std::vector< IFormFactor *,std::allocator< IFormFactor * > > const &v=std::vector< IFormFactor *,std::allocator< IFormFactor * > >()){
+SWIGINTERN void std_vector_Sl_IFormFactor_Sm__Sg____setslice____SWIG_0(std::vector< IFormFactor * > *self,std::vector< IFormFactor * >::difference_type i,std::vector< IFormFactor * >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< IFormFactor*,std::allocator< IFormFactor * > >());
+    }
+SWIGINTERN void std_vector_Sl_IFormFactor_Sm__Sg____setslice____SWIG_1(std::vector< IFormFactor * > *self,std::vector< IFormFactor * >::difference_type i,std::vector< IFormFactor * >::difference_type j,std::vector< IFormFactor *,std::allocator< IFormFactor * > > const &v){
       swig::setslice(self, i, j, 1, v);
     }
 SWIGINTERN void std_vector_Sl_IFormFactor_Sm__Sg____delslice__(std::vector< IFormFactor * > *self,std::vector< IFormFactor * >::difference_type i,std::vector< IFormFactor * >::difference_type j){
       swig::delslice(self, i, j, 1);
     }
 SWIGINTERN void std_vector_Sl_IFormFactor_Sm__Sg____delitem____SWIG_0(std::vector< IFormFactor * > *self,std::vector< IFormFactor * >::difference_type i){
-      self->erase(swig::getpos(self,i));
+      swig::erase(self, swig::getpos(self, i));
     }
 SWIGINTERN std::vector< IFormFactor *,std::allocator< IFormFactor * > > *std_vector_Sl_IFormFactor_Sm__Sg____getitem____SWIG_0(std::vector< IFormFactor * > *self,PySliceObject *slice){
       Py_ssize_t i, j, step;
@@ -6967,8 +7057,8 @@ SWIGINTERN std::vector< IFormFactor *,std::allocator< IFormFactor * > > *std_vec
         return NULL;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<IFormFactor*,std::allocator< IFormFactor * > >::difference_type id = i;
-      std::vector<IFormFactor*,std::allocator< IFormFactor * > >::difference_type jd = j;
+      std::vector< IFormFactor*,std::allocator< IFormFactor * > >::difference_type id = i;
+      std::vector< IFormFactor*,std::allocator< IFormFactor * > >::difference_type jd = j;
       return swig::getslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_IFormFactor_Sm__Sg____setitem____SWIG_0(std::vector< IFormFactor * > *self,PySliceObject *slice,std::vector< IFormFactor *,std::allocator< IFormFactor * > > const &v){
@@ -6978,8 +7068,8 @@ SWIGINTERN void std_vector_Sl_IFormFactor_Sm__Sg____setitem____SWIG_0(std::vecto
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<IFormFactor*,std::allocator< IFormFactor * > >::difference_type id = i;
-      std::vector<IFormFactor*,std::allocator< IFormFactor * > >::difference_type jd = j;
+      std::vector< IFormFactor*,std::allocator< IFormFactor * > >::difference_type id = i;
+      std::vector< IFormFactor*,std::allocator< IFormFactor * > >::difference_type jd = j;
       swig::setslice(self, id, jd, step, v);
     }
 SWIGINTERN void std_vector_Sl_IFormFactor_Sm__Sg____setitem____SWIG_1(std::vector< IFormFactor * > *self,PySliceObject *slice){
@@ -6989,8 +7079,8 @@ SWIGINTERN void std_vector_Sl_IFormFactor_Sm__Sg____setitem____SWIG_1(std::vecto
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<IFormFactor*,std::allocator< IFormFactor * > >::difference_type id = i;
-      std::vector<IFormFactor*,std::allocator< IFormFactor * > >::difference_type jd = j;
+      std::vector< IFormFactor*,std::allocator< IFormFactor * > >::difference_type id = i;
+      std::vector< IFormFactor*,std::allocator< IFormFactor * > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_IFormFactor_Sm__Sg____delitem____SWIG_1(std::vector< IFormFactor * > *self,PySliceObject *slice){
@@ -7000,8 +7090,8 @@ SWIGINTERN void std_vector_Sl_IFormFactor_Sm__Sg____delitem____SWIG_1(std::vecto
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<IFormFactor*,std::allocator< IFormFactor * > >::difference_type id = i;
-      std::vector<IFormFactor*,std::allocator< IFormFactor * > >::difference_type jd = j;
+      std::vector< IFormFactor*,std::allocator< IFormFactor * > >::difference_type id = i;
+      std::vector< IFormFactor*,std::allocator< IFormFactor * > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN std::vector< IFormFactor * >::value_type std_vector_Sl_IFormFactor_Sm__Sg____getitem____SWIG_1(std::vector< IFormFactor * > *self,std::vector< IFormFactor * >::difference_type i){
@@ -7010,6 +7100,13 @@ SWIGINTERN std::vector< IFormFactor * >::value_type std_vector_Sl_IFormFactor_Sm
 SWIGINTERN void std_vector_Sl_IFormFactor_Sm__Sg____setitem____SWIG_2(std::vector< IFormFactor * > *self,std::vector< IFormFactor * >::difference_type i,std::vector< IFormFactor * >::value_type x){
       *(swig::getpos(self,i)) = x;
     }
+SWIGINTERN std::vector< IFormFactor * >::value_type std_vector_Sl_IFormFactor_Sm__Sg__pop(std::vector< IFormFactor * > *self){
+      if (self->size() == 0)
+	throw std::out_of_range("pop from empty container");
+      std::vector< IFormFactor*,std::allocator< IFormFactor * > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
 SWIGINTERN void std_vector_Sl_IFormFactor_Sm__Sg__append(std::vector< IFormFactor * > *self,std::vector< IFormFactor * >::value_type x){
       self->push_back(x);
     }
@@ -7949,7 +8046,7 @@ std::vector< ISample const *,std::allocator< ISample const * > > SwigDirector_IF
       Swig::DirectorMethodException::raise("Error detected when calling 'IFormFactor.getChildren'");
     }
   }
-  std::vector<ISample const*,std::allocator< ISample const * > > *swig_optr = 0;
+  std::vector< ISample const*,std::allocator< ISample const * > > *swig_optr = 0;
   int swig_ores = swig::asptr(result, &swig_optr);
   if (!SWIG_IsOK(swig_ores) || !swig_optr) {
     Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::vector< ISample const *,std::allocator< ISample const * > >""'");
@@ -8416,7 +8513,7 @@ std::vector< ISample const *,std::allocator< ISample const * > > SwigDirector_IF
       Swig::DirectorMethodException::raise("Error detected when calling 'IFormFactorBorn.getChildren'");
     }
   }
-  std::vector<ISample const*,std::allocator< ISample const * > > *swig_optr = 0;
+  std::vector< ISample const*,std::allocator< ISample const * > > *swig_optr = 0;
   int swig_ores = swig::asptr(result, &swig_optr);
   if (!SWIG_IsOK(swig_ores) || !swig_optr) {
     Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::vector< ISample const *,std::allocator< ISample const * > >""'");
@@ -8754,14 +8851,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_SwigPyIterator_incr(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -8873,14 +8970,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_SwigPyIterator_decr(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -9424,14 +9521,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_SwigPyIterator___sub__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -9578,35 +9675,56 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vdouble1d_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_vdouble1d_t___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  std::vector< double >::difference_type arg2 ;
+  std::vector< double >::difference_type arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
-  std::vector< double >::value_type result;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  std::vector< double,std::allocator< double > > *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:vdouble1d_t_pop",&obj0)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOO:vdouble1d_t___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble1d_t_pop" "', argument " "1"" of type '" "std::vector< double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble1d_t___getslice__" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
   arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vdouble1d_t___getslice__" "', argument " "2"" of type '" "std::vector< double >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< double >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vdouble1d_t___getslice__" "', argument " "3"" of type '" "std::vector< double >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< double >::difference_type >(val3);
   try {
-    result = (std::vector< double >::value_type)std_vector_Sl_double_Sg__pop(arg1);
+    result = (std::vector< double,std::allocator< double > > *)std_vector_Sl_double_Sg____getslice__(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
-  resultobj = SWIG_From_double(static_cast< double >(result));
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_vdouble1d_t___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_vdouble1d_t___setslice____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< double > *arg1 = (std::vector< double > *) 0 ;
   std::vector< double >::difference_type arg2 ;
@@ -9620,26 +9738,25 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___getslice__(PyObject *SWIGUNUSEDPARM(sel
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
-  std::vector< double,std::allocator< double > > *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:vdouble1d_t___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOO:vdouble1d_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble1d_t___getslice__" "', argument " "1"" of type '" "std::vector< double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble1d_t___setslice__" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
   arg1 = reinterpret_cast< std::vector< double > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vdouble1d_t___getslice__" "', argument " "2"" of type '" "std::vector< double >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vdouble1d_t___setslice__" "', argument " "2"" of type '" "std::vector< double >::difference_type""'");
   } 
   arg2 = static_cast< std::vector< double >::difference_type >(val2);
   ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vdouble1d_t___getslice__" "', argument " "3"" of type '" "std::vector< double >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vdouble1d_t___setslice__" "', argument " "3"" of type '" "std::vector< double >::difference_type""'");
   } 
   arg3 = static_cast< std::vector< double >::difference_type >(val3);
   try {
-    result = (std::vector< double,std::allocator< double > > *)std_vector_Sl_double_Sg____getslice__(arg1,arg2,arg3);
+    std_vector_Sl_double_Sg____setslice____SWIG_0(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -9648,14 +9765,14 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___getslice__(PyObject *SWIGUNUSEDPARM(sel
     SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
   }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_vdouble1d_t___setslice____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_vdouble1d_t___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< double > *arg1 = (std::vector< double > *) 0 ;
   std::vector< double >::difference_type arg2 ;
@@ -9690,7 +9807,7 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___setslice____SWIG_0(PyObject *SWIGUNUSED
   } 
   arg3 = static_cast< std::vector< double >::difference_type >(val3);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res4 = swig::asptr(obj3, &ptr);
     if (!SWIG_IsOK(res4)) {
       SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vdouble1d_t___setslice__" "', argument " "4"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
@@ -9701,7 +9818,7 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___setslice____SWIG_0(PyObject *SWIGUNUSED
     arg4 = ptr;
   }
   try {
-    std_vector_Sl_double_Sg____setslice____SWIG_0(arg1,arg2,arg3,(std::vector< double,std::allocator< double > > const &)*arg4);
+    std_vector_Sl_double_Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< double,std::allocator< double > > const &)*arg4);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -9719,69 +9836,21 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vdouble1d_t___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
-  std::vector< double >::difference_type arg2 ;
-  std::vector< double >::difference_type arg3 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  ptrdiff_t val3 ;
-  int ecode3 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"OOO:vdouble1d_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble1d_t___setslice__" "', argument " "1"" of type '" "std::vector< double > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vdouble1d_t___setslice__" "', argument " "2"" of type '" "std::vector< double >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector< double >::difference_type >(val2);
-  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vdouble1d_t___setslice__" "', argument " "3"" of type '" "std::vector< double >::difference_type""'");
-  } 
-  arg3 = static_cast< std::vector< double >::difference_type >(val3);
-  try {
-    std_vector_Sl_double_Sg____setslice____SWIG_0(arg1,arg2,arg3);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  catch(std::invalid_argument &_e) {
-    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
-  }
-  
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vdouble1d_t___setslice__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -9794,14 +9863,14 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___setslice__(PyObject *self, PyObject *ar
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_vdouble1d_t___setslice____SWIG_1(self, args);
+          return _wrap_vdouble1d_t___setslice____SWIG_0(self, args);
         }
       }
     }
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -9814,10 +9883,10 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___setslice__(PyObject *self, PyObject *ar
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = swig::asptr(argv[3], (std::vector<double,std::allocator< double > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< double,std::allocator< double > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
-            return _wrap_vdouble1d_t___setslice____SWIG_0(self, args);
+            return _wrap_vdouble1d_t___setslice____SWIG_1(self, args);
           }
         }
       }
@@ -9827,8 +9896,8 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___setslice__(PyObject *self, PyObject *ar
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'vdouble1d_t___setslice__'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    std::vector< double >::__setslice__(std::vector< double >::difference_type,std::vector< double >::difference_type,std::vector< double,std::allocator< double > > const &)\n"
-    "    std::vector< double >::__setslice__(std::vector< double >::difference_type,std::vector< double >::difference_type)\n");
+    "    std::vector< double >::__setslice__(std::vector< double >::difference_type,std::vector< double >::difference_type)\n"
+    "    std::vector< double >::__setslice__(std::vector< double >::difference_type,std::vector< double >::difference_type,std::vector< double,std::allocator< double > > const &)\n");
   return 0;
 }
 
@@ -9909,6 +9978,9 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___delitem____SWIG_0(PyObject *SWIGUNUSEDP
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -9981,7 +10053,7 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___setitem____SWIG_0(PyObject *SWIGUNUSEDP
     arg2 = (PySliceObject *) obj1;
   }
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vdouble1d_t___setitem__" "', argument " "3"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
@@ -10087,20 +10159,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble1d_t___delitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -10113,7 +10185,7 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___delitem__(PyObject *self, PyObject *arg
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -10173,20 +10245,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble1d_t___getitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -10199,7 +10271,7 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___getitem__(PyObject *self, PyObject *arg
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -10269,20 +10341,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble1d_t___setitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -10295,14 +10367,14 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___setitem__(PyObject *self, PyObject *arg
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
         _v = PySlice_Check(argv[1]);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<double,std::allocator< double > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< double,std::allocator< double > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vdouble1d_t___setitem____SWIG_0(self, args);
@@ -10312,7 +10384,7 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___setitem__(PyObject *self, PyObject *arg
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -10341,6 +10413,34 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vdouble1d_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< double >::value_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vdouble1d_t_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble1d_t_pop" "', argument " "1"" of type '" "std::vector< double > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  try {
+    result = (std::vector< double >::value_type)std_vector_Sl_double_Sg__pop(arg1);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_vdouble1d_t_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< double > *arg1 = (std::vector< double > *) 0 ;
@@ -10395,7 +10495,7 @@ SWIGINTERN PyObject *_wrap_new_vdouble1d_t__SWIG_1(PyObject *SWIGUNUSEDPARM(self
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_vdouble1d_t",&obj0)) SWIG_fail;
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_vdouble1d_t" "', argument " "1"" of type '" "std::vector< double > const &""'"); 
@@ -10459,27 +10559,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vdouble1d_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vdouble1d_t_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble1d_t_clear" "', argument " "1"" of type '" "std::vector< double > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
-  (arg1)->clear();
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vdouble1d_t_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< double > *arg1 = (std::vector< double > *) 0 ;
@@ -10513,28 +10592,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vdouble1d_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  SwigValueWrapper< std::allocator< double > > result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vdouble1d_t_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble1d_t_get_allocator" "', argument " "1"" of type '" "std::vector< double > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
-  result = ((std::vector< double > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector< double >::allocator_type(static_cast< const std::vector< double >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_double_t, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vdouble1d_t_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< double > *arg1 = (std::vector< double > *) 0 ;
@@ -10627,6 +10684,49 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vdouble1d_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vdouble1d_t_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble1d_t_clear" "', argument " "1"" of type '" "std::vector< double > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vdouble1d_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< double > > result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vdouble1d_t_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble1d_t_get_allocator" "', argument " "1"" of type '" "std::vector< double > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  result = ((std::vector< double > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< double >::allocator_type(static_cast< const std::vector< double >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_double_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_new_vdouble1d_t__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< double >::size_type arg1 ;
@@ -10792,20 +10892,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble1d_t_erase(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -10818,7 +10918,7 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t_erase(PyObject *self, PyObject *args) {
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -10878,14 +10978,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_vdouble1d_t(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -10904,7 +11004,7 @@ SWIGINTERN PyObject *_wrap_new_vdouble1d_t(PyObject *self, PyObject *args) {
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_vdouble1d_t__SWIG_1(self, args);
@@ -11097,20 +11197,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble1d_t_resize(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -11124,7 +11224,7 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t_resize(PyObject *self, PyObject *args) {
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -11258,20 +11358,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble1d_t_insert(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -11290,7 +11390,7 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t_insert(PyObject *self, PyObject *args) {
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -11493,34 +11593,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vdouble2d_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  std::vector< std::vector< double > >::value_type result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vdouble2d_t_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble2d_t_pop" "', argument " "1"" of type '" "std::vector< std::vector< double > > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< std::vector< double > > * >(argp1);
-  try {
-    result = std_vector_Sl_std_vector_Sl_double_Sg__Sg__pop(arg1);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vdouble2d_t___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
@@ -11575,20 +11647,17 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setslice____SWIG_0(PyObject *SWIGUNUSED
   std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
   std::vector< std::vector< double > >::difference_type arg2 ;
   std::vector< std::vector< double > >::difference_type arg3 ;
-  std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
-  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:vdouble2d_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOO:vdouble2d_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble2d_t___setslice__" "', argument " "1"" of type '" "std::vector< std::vector< double > > *""'"); 
@@ -11604,19 +11673,8 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setslice____SWIG_0(PyObject *SWIGUNUSED
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vdouble2d_t___setslice__" "', argument " "3"" of type '" "std::vector< std::vector< double > >::difference_type""'");
   } 
   arg3 = static_cast< std::vector< std::vector< double > >::difference_type >(val3);
-  {
-    std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *ptr = (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *)0;
-    res4 = swig::asptr(obj3, &ptr);
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vdouble2d_t___setslice__" "', argument " "4"" of type '" "std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vdouble2d_t___setslice__" "', argument " "4"" of type '" "std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &""'"); 
-    }
-    arg4 = ptr;
-  }
   try {
-    std_vector_Sl_std_vector_Sl_double_Sg__Sg____setslice____SWIG_0(arg1,arg2,arg3,(std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &)*arg4);
+    std_vector_Sl_std_vector_Sl_double_Sg__Sg____setslice____SWIG_0(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -11626,10 +11684,8 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setslice____SWIG_0(PyObject *SWIGUNUSED
   }
   
   resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
@@ -11639,17 +11695,20 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setslice____SWIG_1(PyObject *SWIGUNUSED
   std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
   std::vector< std::vector< double > >::difference_type arg2 ;
   std::vector< std::vector< double > >::difference_type arg3 ;
+  std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
+  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:vdouble2d_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:vdouble2d_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble2d_t___setslice__" "', argument " "1"" of type '" "std::vector< std::vector< double > > *""'"); 
@@ -11665,8 +11724,19 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setslice____SWIG_1(PyObject *SWIGUNUSED
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vdouble2d_t___setslice__" "', argument " "3"" of type '" "std::vector< std::vector< double > >::difference_type""'");
   } 
   arg3 = static_cast< std::vector< std::vector< double > >::difference_type >(val3);
+  {
+    std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *ptr = (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *)0;
+    res4 = swig::asptr(obj3, &ptr);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vdouble2d_t___setslice__" "', argument " "4"" of type '" "std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vdouble2d_t___setslice__" "', argument " "4"" of type '" "std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
   try {
-    std_vector_Sl_std_vector_Sl_double_Sg__Sg____setslice____SWIG_0(arg1,arg2,arg3);
+    std_vector_Sl_std_vector_Sl_double_Sg__Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &)*arg4);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -11676,27 +11746,29 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setslice____SWIG_1(PyObject *SWIGUNUSED
   }
   
   resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
 
 SWIGINTERN PyObject *_wrap_vdouble2d_t___setslice__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -11709,14 +11781,14 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setslice__(PyObject *self, PyObject *ar
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_vdouble2d_t___setslice____SWIG_1(self, args);
+          return _wrap_vdouble2d_t___setslice____SWIG_0(self, args);
         }
       }
     }
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -11729,10 +11801,10 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setslice__(PyObject *self, PyObject *ar
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = swig::asptr(argv[3], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
-            return _wrap_vdouble2d_t___setslice____SWIG_0(self, args);
+            return _wrap_vdouble2d_t___setslice____SWIG_1(self, args);
           }
         }
       }
@@ -11742,8 +11814,8 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setslice__(PyObject *self, PyObject *ar
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'vdouble2d_t___setslice__'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    std::vector< std::vector< double > >::__setslice__(std::vector< std::vector< double > >::difference_type,std::vector< std::vector< double > >::difference_type,std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &)\n"
-    "    std::vector< std::vector< double > >::__setslice__(std::vector< std::vector< double > >::difference_type,std::vector< std::vector< double > >::difference_type)\n");
+    "    std::vector< std::vector< double > >::__setslice__(std::vector< std::vector< double > >::difference_type,std::vector< std::vector< double > >::difference_type)\n"
+    "    std::vector< std::vector< double > >::__setslice__(std::vector< std::vector< double > >::difference_type,std::vector< std::vector< double > >::difference_type,std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &)\n");
   return 0;
 }
 
@@ -11824,6 +11896,9 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___delitem____SWIG_0(PyObject *SWIGUNUSEDP
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -11896,7 +11971,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setitem____SWIG_0(PyObject *SWIGUNUSEDP
     arg2 = (PySliceObject *) obj1;
   }
   {
-    std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *ptr = (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *)0;
+    std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *ptr = (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vdouble2d_t___setitem__" "', argument " "3"" of type '" "std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &""'"); 
@@ -12002,20 +12077,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble2d_t___delitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -12028,7 +12103,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___delitem__(PyObject *self, PyObject *arg
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -12080,7 +12155,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___getitem____SWIG_1(PyObject *SWIGUNUSEDP
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
   
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(*result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(*result));
   return resultobj;
 fail:
   return NULL;
@@ -12088,20 +12163,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble2d_t___getitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -12114,7 +12189,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___getitem__(PyObject *self, PyObject *arg
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -12162,7 +12237,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setitem____SWIG_2(PyObject *SWIGUNUSEDP
   } 
   arg2 = static_cast< std::vector< std::vector< double > >::difference_type >(val2);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vdouble2d_t___setitem__" "', argument " "3"" of type '" "std::vector< std::vector< double > >::value_type const &""'"); 
@@ -12189,20 +12264,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble2d_t___setitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -12215,14 +12290,14 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setitem__(PyObject *self, PyObject *arg
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
         _v = PySlice_Check(argv[1]);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vdouble2d_t___setitem____SWIG_0(self, args);
@@ -12232,7 +12307,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setitem__(PyObject *self, PyObject *arg
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -12240,7 +12315,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setitem__(PyObject *self, PyObject *arg
         _v = SWIG_CheckState(res);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<double,std::allocator< double > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< double,std::allocator< double > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vdouble2d_t___setitem____SWIG_2(self, args);
@@ -12259,6 +12334,34 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vdouble2d_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< std::vector< double > >::value_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vdouble2d_t_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble2d_t_pop" "', argument " "1"" of type '" "std::vector< std::vector< double > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< std::vector< double > > * >(argp1);
+  try {
+    result = std_vector_Sl_std_vector_Sl_double_Sg__Sg__pop(arg1);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_vdouble2d_t_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
@@ -12276,7 +12379,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_append(PyObject *SWIGUNUSEDPARM(self), Py
   }
   arg1 = reinterpret_cast< std::vector< std::vector< double > > * >(argp1);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res2 = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "vdouble2d_t_append" "', argument " "2"" of type '" "std::vector< std::vector< double > >::value_type const &""'"); 
@@ -12318,7 +12421,7 @@ SWIGINTERN PyObject *_wrap_new_vdouble2d_t__SWIG_1(PyObject *SWIGUNUSEDPARM(self
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_vdouble2d_t",&obj0)) SWIG_fail;
   {
-    std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *ptr = (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *)0;
+    std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *ptr = (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_vdouble2d_t" "', argument " "1"" of type '" "std::vector< std::vector< double,std::allocator< double > > > const &""'"); 
@@ -12382,27 +12485,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vdouble2d_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vdouble2d_t_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble2d_t_clear" "', argument " "1"" of type '" "std::vector< std::vector< double > > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< std::vector< double > > * >(argp1);
-  (arg1)->clear();
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vdouble2d_t_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
@@ -12436,28 +12518,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vdouble2d_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  SwigValueWrapper< std::allocator< std::vector< double,std::allocator< double > > > > result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vdouble2d_t_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble2d_t_get_allocator" "', argument " "1"" of type '" "std::vector< std::vector< double > > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< std::vector< double > > * >(argp1);
-  result = ((std::vector< std::vector< double > > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector< std::vector< double > >::allocator_type(static_cast< const std::vector< std::vector< double > >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vdouble2d_t_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
@@ -12550,6 +12610,49 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vdouble2d_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vdouble2d_t_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble2d_t_clear" "', argument " "1"" of type '" "std::vector< std::vector< double > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< std::vector< double > > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vdouble2d_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< std::vector< double,std::allocator< double > > > > result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vdouble2d_t_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble2d_t_get_allocator" "', argument " "1"" of type '" "std::vector< std::vector< double > > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< std::vector< double > > * >(argp1);
+  result = ((std::vector< std::vector< double > > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< std::vector< double > >::allocator_type(static_cast< const std::vector< std::vector< double > >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_new_vdouble2d_t__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::vector< double > >::size_type arg1 ;
@@ -12715,20 +12818,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble2d_t_erase(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -12741,7 +12844,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_erase(PyObject *self, PyObject *args) {
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -12785,7 +12888,7 @@ SWIGINTERN PyObject *_wrap_new_vdouble2d_t__SWIG_3(PyObject *SWIGUNUSEDPARM(self
   } 
   arg1 = static_cast< std::vector< std::vector< double > >::size_type >(val1);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res2 = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_vdouble2d_t" "', argument " "2"" of type '" "std::vector< std::vector< double > >::value_type const &""'"); 
@@ -12806,14 +12909,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_vdouble2d_t(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -12832,7 +12935,7 @@ SWIGINTERN PyObject *_wrap_new_vdouble2d_t(PyObject *self, PyObject *args) {
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_vdouble2d_t__SWIG_1(self, args);
@@ -12845,7 +12948,7 @@ SWIGINTERN PyObject *_wrap_new_vdouble2d_t(PyObject *self, PyObject *args) {
       _v = SWIG_CheckState(res);
     }
     if (_v) {
-      int res = swig::asptr(argv[1], (std::vector<double,std::allocator< double > >**)(0));
+      int res = swig::asptr(argv[1], (std::vector< double,std::allocator< double > >**)(0));
       _v = SWIG_CheckState(res);
       if (_v) {
         return _wrap_new_vdouble2d_t__SWIG_3(self, args);
@@ -12881,7 +12984,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_push_back(PyObject *SWIGUNUSEDPARM(self),
   }
   arg1 = reinterpret_cast< std::vector< std::vector< double > > * >(argp1);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res2 = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "vdouble2d_t_push_back" "', argument " "2"" of type '" "std::vector< std::vector< double > >::value_type const &""'"); 
@@ -12916,7 +13019,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_front(PyObject *SWIGUNUSEDPARM(self), PyO
   }
   arg1 = reinterpret_cast< std::vector< std::vector< double > > * >(argp1);
   result = (std::vector< std::vector< double > >::value_type *) &((std::vector< std::vector< double > > const *)arg1)->front();
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(*result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(*result));
   return resultobj;
 fail:
   return NULL;
@@ -12938,7 +13041,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_back(PyObject *SWIGUNUSEDPARM(self), PyOb
   }
   arg1 = reinterpret_cast< std::vector< std::vector< double > > * >(argp1);
   result = (std::vector< std::vector< double > >::value_type *) &((std::vector< std::vector< double > > const *)arg1)->back();
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(*result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(*result));
   return resultobj;
 fail:
   return NULL;
@@ -12971,7 +13074,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_assign(PyObject *SWIGUNUSEDPARM(self), Py
   } 
   arg2 = static_cast< std::vector< std::vector< double > >::size_type >(val2);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vdouble2d_t_assign" "', argument " "3"" of type '" "std::vector< std::vector< double > >::value_type const &""'"); 
@@ -13017,7 +13120,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(s
   } 
   arg2 = static_cast< std::vector< std::vector< double > >::size_type >(val2);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vdouble2d_t_resize" "', argument " "3"" of type '" "std::vector< std::vector< double > >::value_type const &""'"); 
@@ -13038,20 +13141,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble2d_t_resize(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -13065,7 +13168,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_resize(PyObject *self, PyObject *args) {
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -13073,7 +13176,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_resize(PyObject *self, PyObject *args) {
         _v = SWIG_CheckState(res);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<double,std::allocator< double > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< double,std::allocator< double > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vdouble2d_t_resize__SWIG_1(self, args);
@@ -13124,7 +13227,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_insert__SWIG_0(PyObject *SWIGUNUSEDPARM(s
     }
   }
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vdouble2d_t_insert" "', argument " "3"" of type '" "std::vector< std::vector< double > >::value_type const &""'"); 
@@ -13186,7 +13289,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(s
   } 
   arg3 = static_cast< std::vector< std::vector< double > >::size_type >(val3);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res4 = swig::asptr(obj3, &ptr);
     if (!SWIG_IsOK(res4)) {
       SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vdouble2d_t_insert" "', argument " "4"" of type '" "std::vector< std::vector< double > >::value_type const &""'"); 
@@ -13207,27 +13310,27 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble2d_t_insert(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
       int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
       _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< std::vector< double > >::iterator > *>(iter) != 0));
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<double,std::allocator< double > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< double,std::allocator< double > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vdouble2d_t_insert__SWIG_0(self, args);
@@ -13237,7 +13340,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_insert(PyObject *self, PyObject *args) {
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -13249,7 +13352,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_insert(PyObject *self, PyObject *args) {
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = swig::asptr(argv[3], (std::vector<double,std::allocator< double > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< double,std::allocator< double > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
             return _wrap_vdouble2d_t_insert__SWIG_1(self, args);
@@ -13438,34 +13541,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_integer_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  std::vector< int >::value_type result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_integer_t_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_integer_t_pop" "', argument " "1"" of type '" "std::vector< int > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
-  try {
-    result = (std::vector< int >::value_type)std_vector_Sl_int_Sg__pop(arg1);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  
-  resultobj = SWIG_From_int(static_cast< int >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_integer_t___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< int > *arg1 = (std::vector< int > *) 0 ;
@@ -13520,20 +13595,17 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setslice____SWIG_0(PyObject *SWIGU
   std::vector< int > *arg1 = (std::vector< int > *) 0 ;
   std::vector< int >::difference_type arg2 ;
   std::vector< int >::difference_type arg3 ;
-  std::vector< int,std::allocator< int > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
-  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_integer_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOO:vector_integer_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_integer_t___setslice__" "', argument " "1"" of type '" "std::vector< int > *""'"); 
@@ -13549,19 +13621,8 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setslice____SWIG_0(PyObject *SWIGU
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_integer_t___setslice__" "', argument " "3"" of type '" "std::vector< int >::difference_type""'");
   } 
   arg3 = static_cast< std::vector< int >::difference_type >(val3);
-  {
-    std::vector<int,std::allocator< int > > *ptr = (std::vector<int,std::allocator< int > > *)0;
-    res4 = swig::asptr(obj3, &ptr);
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_integer_t___setslice__" "', argument " "4"" of type '" "std::vector< int,std::allocator< int > > const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_integer_t___setslice__" "', argument " "4"" of type '" "std::vector< int,std::allocator< int > > const &""'"); 
-    }
-    arg4 = ptr;
-  }
   try {
-    std_vector_Sl_int_Sg____setslice____SWIG_0(arg1,arg2,arg3,(std::vector< int,std::allocator< int > > const &)*arg4);
+    std_vector_Sl_int_Sg____setslice____SWIG_0(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -13571,10 +13632,8 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setslice____SWIG_0(PyObject *SWIGU
   }
   
   resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
@@ -13584,17 +13643,20 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setslice____SWIG_1(PyObject *SWIGU
   std::vector< int > *arg1 = (std::vector< int > *) 0 ;
   std::vector< int >::difference_type arg2 ;
   std::vector< int >::difference_type arg3 ;
+  std::vector< int,std::allocator< int > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
+  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:vector_integer_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_integer_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_integer_t___setslice__" "', argument " "1"" of type '" "std::vector< int > *""'"); 
@@ -13610,8 +13672,19 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setslice____SWIG_1(PyObject *SWIGU
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_integer_t___setslice__" "', argument " "3"" of type '" "std::vector< int >::difference_type""'");
   } 
   arg3 = static_cast< std::vector< int >::difference_type >(val3);
+  {
+    std::vector< int,std::allocator< int > > *ptr = (std::vector< int,std::allocator< int > > *)0;
+    res4 = swig::asptr(obj3, &ptr);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_integer_t___setslice__" "', argument " "4"" of type '" "std::vector< int,std::allocator< int > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_integer_t___setslice__" "', argument " "4"" of type '" "std::vector< int,std::allocator< int > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
   try {
-    std_vector_Sl_int_Sg____setslice____SWIG_0(arg1,arg2,arg3);
+    std_vector_Sl_int_Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< int,std::allocator< int > > const &)*arg4);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -13621,27 +13694,29 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setslice____SWIG_1(PyObject *SWIGU
   }
   
   resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
 
 SWIGINTERN PyObject *_wrap_vector_integer_t___setslice__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -13654,14 +13729,14 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setslice__(PyObject *self, PyObjec
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_vector_integer_t___setslice____SWIG_1(self, args);
+          return _wrap_vector_integer_t___setslice____SWIG_0(self, args);
         }
       }
     }
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -13674,10 +13749,10 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setslice__(PyObject *self, PyObjec
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = swig::asptr(argv[3], (std::vector<int,std::allocator< int > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< int,std::allocator< int > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
-            return _wrap_vector_integer_t___setslice____SWIG_0(self, args);
+            return _wrap_vector_integer_t___setslice____SWIG_1(self, args);
           }
         }
       }
@@ -13687,8 +13762,8 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setslice__(PyObject *self, PyObjec
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'vector_integer_t___setslice__'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    std::vector< int >::__setslice__(std::vector< int >::difference_type,std::vector< int >::difference_type,std::vector< int,std::allocator< int > > const &)\n"
-    "    std::vector< int >::__setslice__(std::vector< int >::difference_type,std::vector< int >::difference_type)\n");
+    "    std::vector< int >::__setslice__(std::vector< int >::difference_type,std::vector< int >::difference_type)\n"
+    "    std::vector< int >::__setslice__(std::vector< int >::difference_type,std::vector< int >::difference_type,std::vector< int,std::allocator< int > > const &)\n");
   return 0;
 }
 
@@ -13769,6 +13844,9 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___delitem____SWIG_0(PyObject *SWIGUN
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -13841,7 +13919,7 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setitem____SWIG_0(PyObject *SWIGUN
     arg2 = (PySliceObject *) obj1;
   }
   {
-    std::vector<int,std::allocator< int > > *ptr = (std::vector<int,std::allocator< int > > *)0;
+    std::vector< int,std::allocator< int > > *ptr = (std::vector< int,std::allocator< int > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vector_integer_t___setitem__" "', argument " "3"" of type '" "std::vector< int,std::allocator< int > > const &""'"); 
@@ -13947,20 +14025,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_integer_t___delitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -13973,7 +14051,7 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___delitem__(PyObject *self, PyObject
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -14033,20 +14111,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_integer_t___getitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -14059,7 +14137,7 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___getitem__(PyObject *self, PyObject
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -14129,20 +14207,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_integer_t___setitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -14155,14 +14233,14 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setitem__(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
         _v = PySlice_Check(argv[1]);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<int,std::allocator< int > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< int,std::allocator< int > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vector_integer_t___setitem____SWIG_0(self, args);
@@ -14172,7 +14250,7 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setitem__(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -14201,6 +14279,34 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_integer_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< int >::value_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_integer_t_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_integer_t_pop" "', argument " "1"" of type '" "std::vector< int > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  try {
+    result = (std::vector< int >::value_type)std_vector_Sl_int_Sg__pop(arg1);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_From_int(static_cast< int >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_vector_integer_t_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< int > *arg1 = (std::vector< int > *) 0 ;
@@ -14255,7 +14361,7 @@ SWIGINTERN PyObject *_wrap_new_vector_integer_t__SWIG_1(PyObject *SWIGUNUSEDPARM
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_vector_integer_t",&obj0)) SWIG_fail;
   {
-    std::vector<int,std::allocator< int > > *ptr = (std::vector<int,std::allocator< int > > *)0;
+    std::vector< int,std::allocator< int > > *ptr = (std::vector< int,std::allocator< int > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_vector_integer_t" "', argument " "1"" of type '" "std::vector< int > const &""'"); 
@@ -14319,27 +14425,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_integer_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_integer_t_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_integer_t_clear" "', argument " "1"" of type '" "std::vector< int > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
-  (arg1)->clear();
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_integer_t_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< int > *arg1 = (std::vector< int > *) 0 ;
@@ -14373,28 +14458,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_integer_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  SwigValueWrapper< std::allocator< int > > result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_integer_t_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_integer_t_get_allocator" "', argument " "1"" of type '" "std::vector< int > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
-  result = ((std::vector< int > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector< int >::allocator_type(static_cast< const std::vector< int >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_int_t, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_integer_t_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< int > *arg1 = (std::vector< int > *) 0 ;
@@ -14487,6 +14550,49 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_integer_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_integer_t_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_integer_t_clear" "', argument " "1"" of type '" "std::vector< int > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vector_integer_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< int > > result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_integer_t_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_integer_t_get_allocator" "', argument " "1"" of type '" "std::vector< int > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  result = ((std::vector< int > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< int >::allocator_type(static_cast< const std::vector< int >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_int_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_new_vector_integer_t__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< int >::size_type arg1 ;
@@ -14652,20 +14758,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_integer_t_erase(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -14678,7 +14784,7 @@ SWIGINTERN PyObject *_wrap_vector_integer_t_erase(PyObject *self, PyObject *args
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -14738,14 +14844,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_vector_integer_t(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -14764,7 +14870,7 @@ SWIGINTERN PyObject *_wrap_new_vector_integer_t(PyObject *self, PyObject *args)
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_vector_integer_t__SWIG_1(self, args);
@@ -14957,20 +15063,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_integer_t_resize(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -14984,7 +15090,7 @@ SWIGINTERN PyObject *_wrap_vector_integer_t_resize(PyObject *self, PyObject *arg
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -15118,20 +15224,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_integer_t_insert(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -15150,7 +15256,7 @@ SWIGINTERN PyObject *_wrap_vector_integer_t_insert(PyObject *self, PyObject *arg
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -15353,34 +15459,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_longinteger_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  std::vector< unsigned long >::value_type result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_longinteger_t_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_longinteger_t_pop" "', argument " "1"" of type '" "std::vector< unsigned long > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< unsigned long > * >(argp1);
-  try {
-    result = (std::vector< unsigned long >::value_type)std_vector_Sl_unsigned_SS_long_Sg__pop(arg1);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  
-  resultobj = SWIG_From_unsigned_SS_long(static_cast< unsigned long >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_longinteger_t___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
@@ -15435,20 +15513,17 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setslice____SWIG_0(PyObject *S
   std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
   std::vector< unsigned long >::difference_type arg2 ;
   std::vector< unsigned long >::difference_type arg3 ;
-  std::vector< unsigned long,std::allocator< unsigned long > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
-  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_longinteger_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOO:vector_longinteger_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_longinteger_t___setslice__" "', argument " "1"" of type '" "std::vector< unsigned long > *""'"); 
@@ -15464,19 +15539,8 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setslice____SWIG_0(PyObject *S
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_longinteger_t___setslice__" "', argument " "3"" of type '" "std::vector< unsigned long >::difference_type""'");
   } 
   arg3 = static_cast< std::vector< unsigned long >::difference_type >(val3);
-  {
-    std::vector<unsigned long,std::allocator< unsigned long > > *ptr = (std::vector<unsigned long,std::allocator< unsigned long > > *)0;
-    res4 = swig::asptr(obj3, &ptr);
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_longinteger_t___setslice__" "', argument " "4"" of type '" "std::vector< unsigned long,std::allocator< unsigned long > > const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_longinteger_t___setslice__" "', argument " "4"" of type '" "std::vector< unsigned long,std::allocator< unsigned long > > const &""'"); 
-    }
-    arg4 = ptr;
-  }
   try {
-    std_vector_Sl_unsigned_SS_long_Sg____setslice____SWIG_0(arg1,arg2,arg3,(std::vector< unsigned long,std::allocator< unsigned long > > const &)*arg4);
+    std_vector_Sl_unsigned_SS_long_Sg____setslice____SWIG_0(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -15486,10 +15550,8 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setslice____SWIG_0(PyObject *S
   }
   
   resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
@@ -15499,17 +15561,20 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setslice____SWIG_1(PyObject *S
   std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
   std::vector< unsigned long >::difference_type arg2 ;
   std::vector< unsigned long >::difference_type arg3 ;
+  std::vector< unsigned long,std::allocator< unsigned long > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
+  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:vector_longinteger_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_longinteger_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_longinteger_t___setslice__" "', argument " "1"" of type '" "std::vector< unsigned long > *""'"); 
@@ -15525,8 +15590,19 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setslice____SWIG_1(PyObject *S
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_longinteger_t___setslice__" "', argument " "3"" of type '" "std::vector< unsigned long >::difference_type""'");
   } 
   arg3 = static_cast< std::vector< unsigned long >::difference_type >(val3);
+  {
+    std::vector< unsigned long,std::allocator< unsigned long > > *ptr = (std::vector< unsigned long,std::allocator< unsigned long > > *)0;
+    res4 = swig::asptr(obj3, &ptr);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_longinteger_t___setslice__" "', argument " "4"" of type '" "std::vector< unsigned long,std::allocator< unsigned long > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_longinteger_t___setslice__" "', argument " "4"" of type '" "std::vector< unsigned long,std::allocator< unsigned long > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
   try {
-    std_vector_Sl_unsigned_SS_long_Sg____setslice____SWIG_0(arg1,arg2,arg3);
+    std_vector_Sl_unsigned_SS_long_Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< unsigned long,std::allocator< unsigned long > > const &)*arg4);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -15536,27 +15612,29 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setslice____SWIG_1(PyObject *S
   }
   
   resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
 
 SWIGINTERN PyObject *_wrap_vector_longinteger_t___setslice__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -15569,14 +15647,14 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setslice__(PyObject *self, PyO
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_vector_longinteger_t___setslice____SWIG_1(self, args);
+          return _wrap_vector_longinteger_t___setslice____SWIG_0(self, args);
         }
       }
     }
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -15589,10 +15667,10 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setslice__(PyObject *self, PyO
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = swig::asptr(argv[3], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
-            return _wrap_vector_longinteger_t___setslice____SWIG_0(self, args);
+            return _wrap_vector_longinteger_t___setslice____SWIG_1(self, args);
           }
         }
       }
@@ -15602,8 +15680,8 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setslice__(PyObject *self, PyO
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'vector_longinteger_t___setslice__'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    std::vector< unsigned long >::__setslice__(std::vector< unsigned long >::difference_type,std::vector< unsigned long >::difference_type,std::vector< unsigned long,std::allocator< unsigned long > > const &)\n"
-    "    std::vector< unsigned long >::__setslice__(std::vector< unsigned long >::difference_type,std::vector< unsigned long >::difference_type)\n");
+    "    std::vector< unsigned long >::__setslice__(std::vector< unsigned long >::difference_type,std::vector< unsigned long >::difference_type)\n"
+    "    std::vector< unsigned long >::__setslice__(std::vector< unsigned long >::difference_type,std::vector< unsigned long >::difference_type,std::vector< unsigned long,std::allocator< unsigned long > > const &)\n");
   return 0;
 }
 
@@ -15684,6 +15762,9 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___delitem____SWIG_0(PyObject *SW
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -15756,7 +15837,7 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setitem____SWIG_0(PyObject *SW
     arg2 = (PySliceObject *) obj1;
   }
   {
-    std::vector<unsigned long,std::allocator< unsigned long > > *ptr = (std::vector<unsigned long,std::allocator< unsigned long > > *)0;
+    std::vector< unsigned long,std::allocator< unsigned long > > *ptr = (std::vector< unsigned long,std::allocator< unsigned long > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vector_longinteger_t___setitem__" "', argument " "3"" of type '" "std::vector< unsigned long,std::allocator< unsigned long > > const &""'"); 
@@ -15862,20 +15943,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_longinteger_t___delitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -15888,7 +15969,7 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___delitem__(PyObject *self, PyOb
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -15948,20 +16029,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_longinteger_t___getitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -15974,7 +16055,7 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___getitem__(PyObject *self, PyOb
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -16044,20 +16125,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_longinteger_t___setitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -16070,14 +16151,14 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setitem__(PyObject *self, PyOb
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
         _v = PySlice_Check(argv[1]);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vector_longinteger_t___setitem____SWIG_0(self, args);
@@ -16087,7 +16168,7 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setitem__(PyObject *self, PyOb
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -16116,6 +16197,34 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_longinteger_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< unsigned long >::value_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_longinteger_t_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_longinteger_t_pop" "', argument " "1"" of type '" "std::vector< unsigned long > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< unsigned long > * >(argp1);
+  try {
+    result = (std::vector< unsigned long >::value_type)std_vector_Sl_unsigned_SS_long_Sg__pop(arg1);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_From_unsigned_SS_long(static_cast< unsigned long >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_vector_longinteger_t_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
@@ -16170,7 +16279,7 @@ SWIGINTERN PyObject *_wrap_new_vector_longinteger_t__SWIG_1(PyObject *SWIGUNUSED
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_vector_longinteger_t",&obj0)) SWIG_fail;
   {
-    std::vector<unsigned long,std::allocator< unsigned long > > *ptr = (std::vector<unsigned long,std::allocator< unsigned long > > *)0;
+    std::vector< unsigned long,std::allocator< unsigned long > > *ptr = (std::vector< unsigned long,std::allocator< unsigned long > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_vector_longinteger_t" "', argument " "1"" of type '" "std::vector< unsigned long > const &""'"); 
@@ -16234,27 +16343,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_longinteger_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_longinteger_t_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_longinteger_t_clear" "', argument " "1"" of type '" "std::vector< unsigned long > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< unsigned long > * >(argp1);
-  (arg1)->clear();
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_longinteger_t_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
@@ -16288,28 +16376,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_longinteger_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  SwigValueWrapper< std::allocator< unsigned long > > result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_longinteger_t_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_longinteger_t_get_allocator" "', argument " "1"" of type '" "std::vector< unsigned long > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< unsigned long > * >(argp1);
-  result = ((std::vector< unsigned long > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector< unsigned long >::allocator_type(static_cast< const std::vector< unsigned long >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_unsigned_long_t, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_longinteger_t_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
@@ -16402,6 +16468,49 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_longinteger_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_longinteger_t_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_longinteger_t_clear" "', argument " "1"" of type '" "std::vector< unsigned long > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< unsigned long > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vector_longinteger_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< unsigned long > > result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_longinteger_t_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_longinteger_t_get_allocator" "', argument " "1"" of type '" "std::vector< unsigned long > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< unsigned long > * >(argp1);
+  result = ((std::vector< unsigned long > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< unsigned long >::allocator_type(static_cast< const std::vector< unsigned long >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_unsigned_long_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_new_vector_longinteger_t__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< unsigned long >::size_type arg1 ;
@@ -16567,20 +16676,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_longinteger_t_erase(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -16593,7 +16702,7 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t_erase(PyObject *self, PyObject *
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -16653,14 +16762,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_vector_longinteger_t(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -16679,7 +16788,7 @@ SWIGINTERN PyObject *_wrap_new_vector_longinteger_t(PyObject *self, PyObject *ar
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_vector_longinteger_t__SWIG_1(self, args);
@@ -16872,20 +16981,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_longinteger_t_resize(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -16899,7 +17008,7 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t_resize(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -17033,20 +17142,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_longinteger_t_insert(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -17065,7 +17174,7 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t_insert(PyObject *self, PyObject
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -17268,34 +17377,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_complex_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  std::vector< std::complex< double > >::value_type result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_complex_t_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_complex_t_pop" "', argument " "1"" of type '" "std::vector< std::complex< double > > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< std::complex< double > > * >(argp1);
-  try {
-    result = std_vector_Sl_std_complex_Sl_double_Sg__Sg__pop(arg1);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  
-  resultobj = SWIG_From_std_complex_Sl_double_Sg_(static_cast< std::complex<double> >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_complex_t___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
@@ -17346,70 +17427,6 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_complex_t___setslice____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
-  std::vector< std::complex< double > >::difference_type arg2 ;
-  std::vector< std::complex< double > >::difference_type arg3 ;
-  std::vector< std::complex< double >,std::allocator< std::complex< double > > > *arg4 = 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  ptrdiff_t val3 ;
-  int ecode3 = 0 ;
-  int res4 = SWIG_OLDOBJ ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_complex_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_complex_t___setslice__" "', argument " "1"" of type '" "std::vector< std::complex< double > > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< std::complex< double > > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vector_complex_t___setslice__" "', argument " "2"" of type '" "std::vector< std::complex< double > >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector< std::complex< double > >::difference_type >(val2);
-  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_complex_t___setslice__" "', argument " "3"" of type '" "std::vector< std::complex< double > >::difference_type""'");
-  } 
-  arg3 = static_cast< std::vector< std::complex< double > >::difference_type >(val3);
-  {
-    std::vector<std::complex< double >,std::allocator< std::complex< double > > > *ptr = (std::vector<std::complex< double >,std::allocator< std::complex< double > > > *)0;
-    res4 = swig::asptr(obj3, &ptr);
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_complex_t___setslice__" "', argument " "4"" of type '" "std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_complex_t___setslice__" "', argument " "4"" of type '" "std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &""'"); 
-    }
-    arg4 = ptr;
-  }
-  try {
-    std_vector_Sl_std_complex_Sl_double_Sg__Sg____setslice____SWIG_0(arg1,arg2,arg3,(std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &)*arg4);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  catch(std::invalid_argument &_e) {
-    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
-  }
-  
-  resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res4)) delete arg4;
-  return resultobj;
-fail:
-  if (SWIG_IsNewObj(res4)) delete arg4;
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_vector_complex_t___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
   std::vector< std::complex< double > >::difference_type arg2 ;
@@ -17457,21 +17474,85 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_complex_t___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
+  std::vector< std::complex< double > >::difference_type arg2 ;
+  std::vector< std::complex< double > >::difference_type arg3 ;
+  std::vector< std::complex< double >,std::allocator< std::complex< double > > > *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
+  int res4 = SWIG_OLDOBJ ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_complex_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_complex_t___setslice__" "', argument " "1"" of type '" "std::vector< std::complex< double > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< std::complex< double > > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vector_complex_t___setslice__" "', argument " "2"" of type '" "std::vector< std::complex< double > >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< std::complex< double > >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_complex_t___setslice__" "', argument " "3"" of type '" "std::vector< std::complex< double > >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< std::complex< double > >::difference_type >(val3);
+  {
+    std::vector< std::complex< double >,std::allocator< std::complex< double > > > *ptr = (std::vector< std::complex< double >,std::allocator< std::complex< double > > > *)0;
+    res4 = swig::asptr(obj3, &ptr);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_complex_t___setslice__" "', argument " "4"" of type '" "std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_complex_t___setslice__" "', argument " "4"" of type '" "std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
+  try {
+    std_vector_Sl_std_complex_Sl_double_Sg__Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &)*arg4);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res4)) delete arg4;
+  return resultobj;
+fail:
+  if (SWIG_IsNewObj(res4)) delete arg4;
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_vector_complex_t___setslice__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -17484,14 +17565,14 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___setslice__(PyObject *self, PyObjec
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_vector_complex_t___setslice____SWIG_1(self, args);
+          return _wrap_vector_complex_t___setslice____SWIG_0(self, args);
         }
       }
     }
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -17504,10 +17585,10 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___setslice__(PyObject *self, PyObjec
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = swig::asptr(argv[3], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
-            return _wrap_vector_complex_t___setslice____SWIG_0(self, args);
+            return _wrap_vector_complex_t___setslice____SWIG_1(self, args);
           }
         }
       }
@@ -17517,8 +17598,8 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___setslice__(PyObject *self, PyObjec
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'vector_complex_t___setslice__'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    std::vector< std::complex< double > >::__setslice__(std::vector< std::complex< double > >::difference_type,std::vector< std::complex< double > >::difference_type,std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &)\n"
-    "    std::vector< std::complex< double > >::__setslice__(std::vector< std::complex< double > >::difference_type,std::vector< std::complex< double > >::difference_type)\n");
+    "    std::vector< std::complex< double > >::__setslice__(std::vector< std::complex< double > >::difference_type,std::vector< std::complex< double > >::difference_type)\n"
+    "    std::vector< std::complex< double > >::__setslice__(std::vector< std::complex< double > >::difference_type,std::vector< std::complex< double > >::difference_type,std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &)\n");
   return 0;
 }
 
@@ -17599,6 +17680,9 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___delitem____SWIG_0(PyObject *SWIGUN
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -17671,7 +17755,7 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___setitem____SWIG_0(PyObject *SWIGUN
     arg2 = (PySliceObject *) obj1;
   }
   {
-    std::vector<std::complex< double >,std::allocator< std::complex< double > > > *ptr = (std::vector<std::complex< double >,std::allocator< std::complex< double > > > *)0;
+    std::vector< std::complex< double >,std::allocator< std::complex< double > > > *ptr = (std::vector< std::complex< double >,std::allocator< std::complex< double > > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vector_complex_t___setitem__" "', argument " "3"" of type '" "std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &""'"); 
@@ -17777,20 +17861,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_complex_t___delitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -17803,7 +17887,7 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___delitem__(PyObject *self, PyObject
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -17863,20 +17947,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_complex_t___getitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -17889,7 +17973,7 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___getitem__(PyObject *self, PyObject
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -17959,20 +18043,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_complex_t___setitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -17985,14 +18069,14 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___setitem__(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
         _v = PySlice_Check(argv[1]);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vector_complex_t___setitem____SWIG_0(self, args);
@@ -18002,7 +18086,7 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___setitem__(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -18031,6 +18115,34 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_complex_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< std::complex< double > >::value_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_complex_t_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_complex_t_pop" "', argument " "1"" of type '" "std::vector< std::complex< double > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< std::complex< double > > * >(argp1);
+  try {
+    result = std_vector_Sl_std_complex_Sl_double_Sg__Sg__pop(arg1);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_From_std_complex_Sl_double_Sg_(static_cast< std::complex<double> >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_vector_complex_t_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
@@ -18085,7 +18197,7 @@ SWIGINTERN PyObject *_wrap_new_vector_complex_t__SWIG_1(PyObject *SWIGUNUSEDPARM
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_vector_complex_t",&obj0)) SWIG_fail;
   {
-    std::vector<std::complex< double >,std::allocator< std::complex< double > > > *ptr = (std::vector<std::complex< double >,std::allocator< std::complex< double > > > *)0;
+    std::vector< std::complex< double >,std::allocator< std::complex< double > > > *ptr = (std::vector< std::complex< double >,std::allocator< std::complex< double > > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_vector_complex_t" "', argument " "1"" of type '" "std::vector< std::complex< double > > const &""'"); 
@@ -18149,27 +18261,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_complex_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_complex_t_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_complex_t_clear" "', argument " "1"" of type '" "std::vector< std::complex< double > > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< std::complex< double > > * >(argp1);
-  (arg1)->clear();
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_complex_t_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
@@ -18203,28 +18294,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_complex_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  SwigValueWrapper< std::allocator< std::complex< double > > > result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_complex_t_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_complex_t_get_allocator" "', argument " "1"" of type '" "std::vector< std::complex< double > > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< std::complex< double > > * >(argp1);
-  result = ((std::vector< std::complex< double > > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector< std::complex< double > >::allocator_type(static_cast< const std::vector< std::complex< double > >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_complex_t_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
@@ -18317,6 +18386,49 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_complex_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_complex_t_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_complex_t_clear" "', argument " "1"" of type '" "std::vector< std::complex< double > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< std::complex< double > > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vector_complex_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< std::complex< double > > > result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_complex_t_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_complex_t_get_allocator" "', argument " "1"" of type '" "std::vector< std::complex< double > > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< std::complex< double > > * >(argp1);
+  result = ((std::vector< std::complex< double > > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< std::complex< double > >::allocator_type(static_cast< const std::vector< std::complex< double > >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_new_vector_complex_t__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::complex< double > >::size_type arg1 ;
@@ -18482,20 +18594,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_complex_t_erase(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -18508,7 +18620,7 @@ SWIGINTERN PyObject *_wrap_vector_complex_t_erase(PyObject *self, PyObject *args
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -18568,14 +18680,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_vector_complex_t(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -18594,7 +18706,7 @@ SWIGINTERN PyObject *_wrap_new_vector_complex_t(PyObject *self, PyObject *args)
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_vector_complex_t__SWIG_1(self, args);
@@ -18787,20 +18899,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_complex_t_resize(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -18814,7 +18926,7 @@ SWIGINTERN PyObject *_wrap_vector_complex_t_resize(PyObject *self, PyObject *arg
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -18948,20 +19060,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_complex_t_insert(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -18980,7 +19092,7 @@ SWIGINTERN PyObject *_wrap_vector_complex_t_insert(PyObject *self, PyObject *arg
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -19183,34 +19295,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_string_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  std::vector< std::string >::value_type result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_string_t_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_string_t_pop" "', argument " "1"" of type '" "std::vector< std::string > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< std::string > * >(argp1);
-  try {
-    result = std_vector_Sl_std_string_Sg__pop(arg1);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  
-  resultobj = SWIG_From_std_string(static_cast< std::string >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_string_t___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
@@ -19261,70 +19345,6 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_string_t___setslice____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
-  std::vector< std::string >::difference_type arg2 ;
-  std::vector< std::string >::difference_type arg3 ;
-  std::vector< std::string,std::allocator< std::string > > *arg4 = 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  ptrdiff_t val3 ;
-  int ecode3 = 0 ;
-  int res4 = SWIG_OLDOBJ ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_string_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_string_t___setslice__" "', argument " "1"" of type '" "std::vector< std::string > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< std::string > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vector_string_t___setslice__" "', argument " "2"" of type '" "std::vector< std::string >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector< std::string >::difference_type >(val2);
-  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_string_t___setslice__" "', argument " "3"" of type '" "std::vector< std::string >::difference_type""'");
-  } 
-  arg3 = static_cast< std::vector< std::string >::difference_type >(val3);
-  {
-    std::vector<std::string,std::allocator< std::string > > *ptr = (std::vector<std::string,std::allocator< std::string > > *)0;
-    res4 = swig::asptr(obj3, &ptr);
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_string_t___setslice__" "', argument " "4"" of type '" "std::vector< std::string,std::allocator< std::string > > const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_string_t___setslice__" "', argument " "4"" of type '" "std::vector< std::string,std::allocator< std::string > > const &""'"); 
-    }
-    arg4 = ptr;
-  }
-  try {
-    std_vector_Sl_std_string_Sg____setslice____SWIG_0(arg1,arg2,arg3,(std::vector< std::string,std::allocator< std::string > > const &)*arg4);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  catch(std::invalid_argument &_e) {
-    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
-  }
-  
-  resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res4)) delete arg4;
-  return resultobj;
-fail:
-  if (SWIG_IsNewObj(res4)) delete arg4;
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_vector_string_t___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
   std::vector< std::string >::difference_type arg2 ;
@@ -19372,21 +19392,85 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_string_t___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
+  std::vector< std::string >::difference_type arg2 ;
+  std::vector< std::string >::difference_type arg3 ;
+  std::vector< std::string,std::allocator< std::string > > *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
+  int res4 = SWIG_OLDOBJ ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_string_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_string_t___setslice__" "', argument " "1"" of type '" "std::vector< std::string > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< std::string > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vector_string_t___setslice__" "', argument " "2"" of type '" "std::vector< std::string >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< std::string >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_string_t___setslice__" "', argument " "3"" of type '" "std::vector< std::string >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< std::string >::difference_type >(val3);
+  {
+    std::vector< std::string,std::allocator< std::string > > *ptr = (std::vector< std::string,std::allocator< std::string > > *)0;
+    res4 = swig::asptr(obj3, &ptr);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_string_t___setslice__" "', argument " "4"" of type '" "std::vector< std::string,std::allocator< std::string > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_string_t___setslice__" "', argument " "4"" of type '" "std::vector< std::string,std::allocator< std::string > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
+  try {
+    std_vector_Sl_std_string_Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< std::string,std::allocator< std::string > > const &)*arg4);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res4)) delete arg4;
+  return resultobj;
+fail:
+  if (SWIG_IsNewObj(res4)) delete arg4;
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_vector_string_t___setslice__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -19399,14 +19483,14 @@ SWIGINTERN PyObject *_wrap_vector_string_t___setslice__(PyObject *self, PyObject
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_vector_string_t___setslice____SWIG_1(self, args);
+          return _wrap_vector_string_t___setslice____SWIG_0(self, args);
         }
       }
     }
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -19419,10 +19503,10 @@ SWIGINTERN PyObject *_wrap_vector_string_t___setslice__(PyObject *self, PyObject
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = swig::asptr(argv[3], (std::vector<std::string,std::allocator< std::string > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< std::string,std::allocator< std::string > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
-            return _wrap_vector_string_t___setslice____SWIG_0(self, args);
+            return _wrap_vector_string_t___setslice____SWIG_1(self, args);
           }
         }
       }
@@ -19432,8 +19516,8 @@ SWIGINTERN PyObject *_wrap_vector_string_t___setslice__(PyObject *self, PyObject
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'vector_string_t___setslice__'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    std::vector< std::string >::__setslice__(std::vector< std::string >::difference_type,std::vector< std::string >::difference_type,std::vector< std::string,std::allocator< std::string > > const &)\n"
-    "    std::vector< std::string >::__setslice__(std::vector< std::string >::difference_type,std::vector< std::string >::difference_type)\n");
+    "    std::vector< std::string >::__setslice__(std::vector< std::string >::difference_type,std::vector< std::string >::difference_type)\n"
+    "    std::vector< std::string >::__setslice__(std::vector< std::string >::difference_type,std::vector< std::string >::difference_type,std::vector< std::string,std::allocator< std::string > > const &)\n");
   return 0;
 }
 
@@ -19514,6 +19598,9 @@ SWIGINTERN PyObject *_wrap_vector_string_t___delitem____SWIG_0(PyObject *SWIGUNU
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -19586,7 +19673,7 @@ SWIGINTERN PyObject *_wrap_vector_string_t___setitem____SWIG_0(PyObject *SWIGUNU
     arg2 = (PySliceObject *) obj1;
   }
   {
-    std::vector<std::string,std::allocator< std::string > > *ptr = (std::vector<std::string,std::allocator< std::string > > *)0;
+    std::vector< std::string,std::allocator< std::string > > *ptr = (std::vector< std::string,std::allocator< std::string > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vector_string_t___setitem__" "', argument " "3"" of type '" "std::vector< std::string,std::allocator< std::string > > const &""'"); 
@@ -19692,20 +19779,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_string_t___delitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -19718,7 +19805,7 @@ SWIGINTERN PyObject *_wrap_vector_string_t___delitem__(PyObject *self, PyObject
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -19778,20 +19865,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_string_t___getitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -19804,7 +19891,7 @@ SWIGINTERN PyObject *_wrap_vector_string_t___getitem__(PyObject *self, PyObject
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -19879,20 +19966,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_string_t___setitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -19905,14 +19992,14 @@ SWIGINTERN PyObject *_wrap_vector_string_t___setitem__(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
         _v = PySlice_Check(argv[1]);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<std::string,std::allocator< std::string > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< std::string,std::allocator< std::string > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vector_string_t___setitem____SWIG_0(self, args);
@@ -19922,7 +20009,7 @@ SWIGINTERN PyObject *_wrap_vector_string_t___setitem__(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -19949,6 +20036,34 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_string_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< std::string >::value_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_string_t_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_string_t_pop" "', argument " "1"" of type '" "std::vector< std::string > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< std::string > * >(argp1);
+  try {
+    result = std_vector_Sl_std_string_Sg__pop(arg1);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_vector_string_t_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
@@ -20008,7 +20123,7 @@ SWIGINTERN PyObject *_wrap_new_vector_string_t__SWIG_1(PyObject *SWIGUNUSEDPARM(
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_vector_string_t",&obj0)) SWIG_fail;
   {
-    std::vector<std::string,std::allocator< std::string > > *ptr = (std::vector<std::string,std::allocator< std::string > > *)0;
+    std::vector< std::string,std::allocator< std::string > > *ptr = (std::vector< std::string,std::allocator< std::string > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_vector_string_t" "', argument " "1"" of type '" "std::vector< std::string > const &""'"); 
@@ -20072,27 +20187,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_string_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_string_t_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_string_t_clear" "', argument " "1"" of type '" "std::vector< std::string > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< std::string > * >(argp1);
-  (arg1)->clear();
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_string_t_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
@@ -20126,28 +20220,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_string_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  SwigValueWrapper< std::allocator< std::string > > result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_string_t_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_string_t_get_allocator" "', argument " "1"" of type '" "std::vector< std::string > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< std::string > * >(argp1);
-  result = ((std::vector< std::string > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector< std::string >::allocator_type(static_cast< const std::vector< std::string >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_std__string_t, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_string_t_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
@@ -20240,6 +20312,49 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_string_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_string_t_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_string_t_clear" "', argument " "1"" of type '" "std::vector< std::string > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< std::string > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vector_string_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< std::string > > result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_string_t_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_string_t_get_allocator" "', argument " "1"" of type '" "std::vector< std::string > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< std::string > * >(argp1);
+  result = ((std::vector< std::string > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< std::string >::allocator_type(static_cast< const std::vector< std::string >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_std__string_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_new_vector_string_t__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::string >::size_type arg1 ;
@@ -20405,20 +20520,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_string_t_erase(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -20431,7 +20546,7 @@ SWIGINTERN PyObject *_wrap_vector_string_t_erase(PyObject *self, PyObject *args)
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -20496,14 +20611,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_vector_string_t(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -20522,7 +20637,7 @@ SWIGINTERN PyObject *_wrap_new_vector_string_t(PyObject *self, PyObject *args) {
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_vector_string_t__SWIG_1(self, args);
@@ -20728,20 +20843,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_string_t_resize(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -20755,7 +20870,7 @@ SWIGINTERN PyObject *_wrap_vector_string_t_resize(PyObject *self, PyObject *args
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -20897,20 +21012,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_string_t_insert(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -20927,7 +21042,7 @@ SWIGINTERN PyObject *_wrap_vector_string_t_insert(PyObject *self, PyObject *args
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -21372,14 +21487,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_INamed(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -21581,14 +21696,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_IParameterized(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -22025,14 +22140,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_kvector_t(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -22901,34 +23016,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_kvector_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< BasicVector3D< double > > *arg1 = (std::vector< BasicVector3D< double > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  std::vector< BasicVector3D< double > >::value_type result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_kvector_t_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_kvector_t_pop" "', argument " "1"" of type '" "std::vector< BasicVector3D< double > > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< BasicVector3D< double > > * >(argp1);
-  try {
-    result = std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg__pop(arg1);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  
-  resultobj = SWIG_NewPointerObj((new std::vector< BasicVector3D< double > >::value_type(static_cast< const std::vector< BasicVector3D< double > >::value_type& >(result))), SWIGTYPE_p_BasicVector3DT_double_t, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_kvector_t___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< BasicVector3D< double > > *arg1 = (std::vector< BasicVector3D< double > > *) 0 ;
@@ -22979,70 +23066,6 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_kvector_t___setslice____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< BasicVector3D< double > > *arg1 = (std::vector< BasicVector3D< double > > *) 0 ;
-  std::vector< BasicVector3D< double > >::difference_type arg2 ;
-  std::vector< BasicVector3D< double > >::difference_type arg3 ;
-  std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *arg4 = 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  ptrdiff_t val3 ;
-  int ecode3 = 0 ;
-  int res4 = SWIG_OLDOBJ ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_kvector_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_kvector_t___setslice__" "', argument " "1"" of type '" "std::vector< BasicVector3D< double > > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< BasicVector3D< double > > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vector_kvector_t___setslice__" "', argument " "2"" of type '" "std::vector< BasicVector3D< double > >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector< BasicVector3D< double > >::difference_type >(val2);
-  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_kvector_t___setslice__" "', argument " "3"" of type '" "std::vector< BasicVector3D< double > >::difference_type""'");
-  } 
-  arg3 = static_cast< std::vector< BasicVector3D< double > >::difference_type >(val3);
-  {
-    std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *ptr = (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *)0;
-    res4 = swig::asptr(obj3, &ptr);
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_kvector_t___setslice__" "', argument " "4"" of type '" "std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_kvector_t___setslice__" "', argument " "4"" of type '" "std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > const &""'"); 
-    }
-    arg4 = ptr;
-  }
-  try {
-    std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg____setslice____SWIG_0(arg1,arg2,arg3,(std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > const &)*arg4);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  catch(std::invalid_argument &_e) {
-    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
-  }
-  
-  resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res4)) delete arg4;
-  return resultobj;
-fail:
-  if (SWIG_IsNewObj(res4)) delete arg4;
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_vector_kvector_t___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< BasicVector3D< double > > *arg1 = (std::vector< BasicVector3D< double > > *) 0 ;
   std::vector< BasicVector3D< double > >::difference_type arg2 ;
@@ -23090,21 +23113,85 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_kvector_t___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< BasicVector3D< double > > *arg1 = (std::vector< BasicVector3D< double > > *) 0 ;
+  std::vector< BasicVector3D< double > >::difference_type arg2 ;
+  std::vector< BasicVector3D< double > >::difference_type arg3 ;
+  std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
+  int res4 = SWIG_OLDOBJ ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_kvector_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_kvector_t___setslice__" "', argument " "1"" of type '" "std::vector< BasicVector3D< double > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< BasicVector3D< double > > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vector_kvector_t___setslice__" "', argument " "2"" of type '" "std::vector< BasicVector3D< double > >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< BasicVector3D< double > >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_kvector_t___setslice__" "', argument " "3"" of type '" "std::vector< BasicVector3D< double > >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< BasicVector3D< double > >::difference_type >(val3);
+  {
+    std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *ptr = (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *)0;
+    res4 = swig::asptr(obj3, &ptr);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_kvector_t___setslice__" "', argument " "4"" of type '" "std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_kvector_t___setslice__" "', argument " "4"" of type '" "std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
+  try {
+    std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > const &)*arg4);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res4)) delete arg4;
+  return resultobj;
+fail:
+  if (SWIG_IsNewObj(res4)) delete arg4;
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_vector_kvector_t___setslice__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -23117,14 +23204,14 @@ SWIGINTERN PyObject *_wrap_vector_kvector_t___setslice__(PyObject *self, PyObjec
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_vector_kvector_t___setslice____SWIG_1(self, args);
+          return _wrap_vector_kvector_t___setslice____SWIG_0(self, args);
         }
       }
     }
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -23137,10 +23224,10 @@ SWIGINTERN PyObject *_wrap_vector_kvector_t___setslice__(PyObject *self, PyObjec
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = swig::asptr(argv[3], (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
-            return _wrap_vector_kvector_t___setslice____SWIG_0(self, args);
+            return _wrap_vector_kvector_t___setslice____SWIG_1(self, args);
           }
         }
       }
@@ -23150,8 +23237,8 @@ SWIGINTERN PyObject *_wrap_vector_kvector_t___setslice__(PyObject *self, PyObjec
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'vector_kvector_t___setslice__'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    std::vector< BasicVector3D< double > >::__setslice__(std::vector< BasicVector3D< double > >::difference_type,std::vector< BasicVector3D< double > >::difference_type,std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > const &)\n"
-    "    std::vector< BasicVector3D< double > >::__setslice__(std::vector< BasicVector3D< double > >::difference_type,std::vector< BasicVector3D< double > >::difference_type)\n");
+    "    std::vector< BasicVector3D< double > >::__setslice__(std::vector< BasicVector3D< double > >::difference_type,std::vector< BasicVector3D< double > >::difference_type)\n"
+    "    std::vector< BasicVector3D< double > >::__setslice__(std::vector< BasicVector3D< double > >::difference_type,std::vector< BasicVector3D< double > >::difference_type,std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > const &)\n");
   return 0;
 }
 
@@ -23232,6 +23319,9 @@ SWIGINTERN PyObject *_wrap_vector_kvector_t___delitem____SWIG_0(PyObject *SWIGUN
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -23304,7 +23394,7 @@ SWIGINTERN PyObject *_wrap_vector_kvector_t___setitem____SWIG_0(PyObject *SWIGUN
     arg2 = (PySliceObject *) obj1;
   }
   {
-    std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *ptr = (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *)0;
+    std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *ptr = (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vector_kvector_t___setitem__" "', argument " "3"" of type '" "std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > const &""'"); 
@@ -23410,20 +23500,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_kvector_t___delitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -23436,7 +23526,7 @@ SWIGINTERN PyObject *_wrap_vector_kvector_t___delitem__(PyObject *self, PyObject
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -23496,20 +23586,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_kvector_t___getitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -23522,7 +23612,7 @@ SWIGINTERN PyObject *_wrap_vector_kvector_t___getitem__(PyObject *self, PyObject
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -23593,20 +23683,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_kvector_t___setitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -23619,14 +23709,14 @@ SWIGINTERN PyObject *_wrap_vector_kvector_t___setitem__(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
         _v = PySlice_Check(argv[1]);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vector_kvector_t___setitem____SWIG_0(self, args);
@@ -23636,7 +23726,7 @@ SWIGINTERN PyObject *_wrap_vector_kvector_t___setitem__(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -23663,6 +23753,34 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_kvector_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< BasicVector3D< double > > *arg1 = (std::vector< BasicVector3D< double > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< BasicVector3D< double > >::value_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_kvector_t_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_kvector_t_pop" "', argument " "1"" of type '" "std::vector< BasicVector3D< double > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< BasicVector3D< double > > * >(argp1);
+  try {
+    result = std_vector_Sl_BasicVector3D_Sl_double_Sg__Sg__pop(arg1);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_NewPointerObj((new std::vector< BasicVector3D< double > >::value_type(static_cast< const std::vector< BasicVector3D< double > >::value_type& >(result))), SWIGTYPE_p_BasicVector3DT_double_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_vector_kvector_t_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< BasicVector3D< double > > *arg1 = (std::vector< BasicVector3D< double > > *) 0 ;
@@ -23718,7 +23836,7 @@ SWIGINTERN PyObject *_wrap_new_vector_kvector_t__SWIG_1(PyObject *SWIGUNUSEDPARM
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_vector_kvector_t",&obj0)) SWIG_fail;
   {
-    std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *ptr = (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *)0;
+    std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *ptr = (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_vector_kvector_t" "', argument " "1"" of type '" "std::vector< BasicVector3D< double > > const &""'"); 
@@ -23782,27 +23900,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_kvector_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< BasicVector3D< double > > *arg1 = (std::vector< BasicVector3D< double > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_kvector_t_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_kvector_t_clear" "', argument " "1"" of type '" "std::vector< BasicVector3D< double > > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< BasicVector3D< double > > * >(argp1);
-  (arg1)->clear();
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_kvector_t_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< BasicVector3D< double > > *arg1 = (std::vector< BasicVector3D< double > > *) 0 ;
@@ -23836,28 +23933,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_kvector_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< BasicVector3D< double > > *arg1 = (std::vector< BasicVector3D< double > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  SwigValueWrapper< std::allocator< BasicVector3D< double > > > result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_kvector_t_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_kvector_t_get_allocator" "', argument " "1"" of type '" "std::vector< BasicVector3D< double > > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< BasicVector3D< double > > * >(argp1);
-  result = ((std::vector< BasicVector3D< double > > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector< BasicVector3D< double > >::allocator_type(static_cast< const std::vector< BasicVector3D< double > >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_BasicVector3DT_double_t_t, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_kvector_t_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< BasicVector3D< double > > *arg1 = (std::vector< BasicVector3D< double > > *) 0 ;
@@ -23950,6 +24025,49 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_kvector_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< BasicVector3D< double > > *arg1 = (std::vector< BasicVector3D< double > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_kvector_t_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_kvector_t_clear" "', argument " "1"" of type '" "std::vector< BasicVector3D< double > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< BasicVector3D< double > > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vector_kvector_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< BasicVector3D< double > > *arg1 = (std::vector< BasicVector3D< double > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< BasicVector3D< double > > > result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_kvector_t_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_kvector_t_get_allocator" "', argument " "1"" of type '" "std::vector< BasicVector3D< double > > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< BasicVector3D< double > > * >(argp1);
+  result = ((std::vector< BasicVector3D< double > > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< BasicVector3D< double > >::allocator_type(static_cast< const std::vector< BasicVector3D< double > >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_BasicVector3DT_double_t_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_new_vector_kvector_t__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< BasicVector3D< double > >::size_type arg1 ;
@@ -24115,20 +24233,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_kvector_t_erase(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -24141,7 +24259,7 @@ SWIGINTERN PyObject *_wrap_vector_kvector_t_erase(PyObject *self, PyObject *args
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -24202,14 +24320,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_vector_kvector_t(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -24228,7 +24346,7 @@ SWIGINTERN PyObject *_wrap_new_vector_kvector_t(PyObject *self, PyObject *args)
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_vector_kvector_t__SWIG_1(self, args);
@@ -24422,20 +24540,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_kvector_t_resize(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -24449,7 +24567,7 @@ SWIGINTERN PyObject *_wrap_vector_kvector_t_resize(PyObject *self, PyObject *arg
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -24583,20 +24701,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_kvector_t_insert(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -24613,7 +24731,7 @@ SWIGINTERN PyObject *_wrap_vector_kvector_t_insert(PyObject *self, PyObject *arg
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -24778,14 +24896,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_cvector_t(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -25414,34 +25532,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_cvector_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< BasicVector3D< std::complex< double > > > *arg1 = (std::vector< BasicVector3D< std::complex< double > > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  std::vector< BasicVector3D< std::complex< double > > >::value_type result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_cvector_t_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_cvector_t_pop" "', argument " "1"" of type '" "std::vector< BasicVector3D< std::complex< double > > > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< BasicVector3D< std::complex< double > > > * >(argp1);
-  try {
-    result = std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg__pop(arg1);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  
-  resultobj = SWIG_NewPointerObj((new std::vector< BasicVector3D< std::complex< double > > >::value_type(static_cast< const std::vector< BasicVector3D< std::complex< double > > >::value_type& >(result))), SWIGTYPE_p_BasicVector3DT_std__complexT_double_t_t, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_cvector_t___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< BasicVector3D< std::complex< double > > > *arg1 = (std::vector< BasicVector3D< std::complex< double > > > *) 0 ;
@@ -25492,70 +25582,6 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_cvector_t___setslice____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< BasicVector3D< std::complex< double > > > *arg1 = (std::vector< BasicVector3D< std::complex< double > > > *) 0 ;
-  std::vector< BasicVector3D< std::complex< double > > >::difference_type arg2 ;
-  std::vector< BasicVector3D< std::complex< double > > >::difference_type arg3 ;
-  std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > *arg4 = 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  ptrdiff_t val3 ;
-  int ecode3 = 0 ;
-  int res4 = SWIG_OLDOBJ ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_cvector_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_cvector_t___setslice__" "', argument " "1"" of type '" "std::vector< BasicVector3D< std::complex< double > > > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< BasicVector3D< std::complex< double > > > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vector_cvector_t___setslice__" "', argument " "2"" of type '" "std::vector< BasicVector3D< std::complex< double > > >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector< BasicVector3D< std::complex< double > > >::difference_type >(val2);
-  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_cvector_t___setslice__" "', argument " "3"" of type '" "std::vector< BasicVector3D< std::complex< double > > >::difference_type""'");
-  } 
-  arg3 = static_cast< std::vector< BasicVector3D< std::complex< double > > >::difference_type >(val3);
-  {
-    std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > *ptr = (std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > *)0;
-    res4 = swig::asptr(obj3, &ptr);
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_cvector_t___setslice__" "', argument " "4"" of type '" "std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_cvector_t___setslice__" "', argument " "4"" of type '" "std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > const &""'"); 
-    }
-    arg4 = ptr;
-  }
-  try {
-    std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____setslice____SWIG_0(arg1,arg2,arg3,(std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > const &)*arg4);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  catch(std::invalid_argument &_e) {
-    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
-  }
-  
-  resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res4)) delete arg4;
-  return resultobj;
-fail:
-  if (SWIG_IsNewObj(res4)) delete arg4;
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_vector_cvector_t___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< BasicVector3D< std::complex< double > > > *arg1 = (std::vector< BasicVector3D< std::complex< double > > > *) 0 ;
   std::vector< BasicVector3D< std::complex< double > > >::difference_type arg2 ;
@@ -25603,21 +25629,85 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_cvector_t___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< BasicVector3D< std::complex< double > > > *arg1 = (std::vector< BasicVector3D< std::complex< double > > > *) 0 ;
+  std::vector< BasicVector3D< std::complex< double > > >::difference_type arg2 ;
+  std::vector< BasicVector3D< std::complex< double > > >::difference_type arg3 ;
+  std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
+  int res4 = SWIG_OLDOBJ ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_cvector_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_cvector_t___setslice__" "', argument " "1"" of type '" "std::vector< BasicVector3D< std::complex< double > > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< BasicVector3D< std::complex< double > > > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vector_cvector_t___setslice__" "', argument " "2"" of type '" "std::vector< BasicVector3D< std::complex< double > > >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< BasicVector3D< std::complex< double > > >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_cvector_t___setslice__" "', argument " "3"" of type '" "std::vector< BasicVector3D< std::complex< double > > >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< BasicVector3D< std::complex< double > > >::difference_type >(val3);
+  {
+    std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > *ptr = (std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > *)0;
+    res4 = swig::asptr(obj3, &ptr);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_cvector_t___setslice__" "', argument " "4"" of type '" "std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_cvector_t___setslice__" "', argument " "4"" of type '" "std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
+  try {
+    std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > const &)*arg4);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res4)) delete arg4;
+  return resultobj;
+fail:
+  if (SWIG_IsNewObj(res4)) delete arg4;
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_vector_cvector_t___setslice__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -25630,14 +25720,14 @@ SWIGINTERN PyObject *_wrap_vector_cvector_t___setslice__(PyObject *self, PyObjec
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_vector_cvector_t___setslice____SWIG_1(self, args);
+          return _wrap_vector_cvector_t___setslice____SWIG_0(self, args);
         }
       }
     }
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -25650,10 +25740,10 @@ SWIGINTERN PyObject *_wrap_vector_cvector_t___setslice__(PyObject *self, PyObjec
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = swig::asptr(argv[3], (std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
-            return _wrap_vector_cvector_t___setslice____SWIG_0(self, args);
+            return _wrap_vector_cvector_t___setslice____SWIG_1(self, args);
           }
         }
       }
@@ -25663,8 +25753,8 @@ SWIGINTERN PyObject *_wrap_vector_cvector_t___setslice__(PyObject *self, PyObjec
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'vector_cvector_t___setslice__'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    std::vector< BasicVector3D< std::complex< double > > >::__setslice__(std::vector< BasicVector3D< std::complex< double > > >::difference_type,std::vector< BasicVector3D< std::complex< double > > >::difference_type,std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > const &)\n"
-    "    std::vector< BasicVector3D< std::complex< double > > >::__setslice__(std::vector< BasicVector3D< std::complex< double > > >::difference_type,std::vector< BasicVector3D< std::complex< double > > >::difference_type)\n");
+    "    std::vector< BasicVector3D< std::complex< double > > >::__setslice__(std::vector< BasicVector3D< std::complex< double > > >::difference_type,std::vector< BasicVector3D< std::complex< double > > >::difference_type)\n"
+    "    std::vector< BasicVector3D< std::complex< double > > >::__setslice__(std::vector< BasicVector3D< std::complex< double > > >::difference_type,std::vector< BasicVector3D< std::complex< double > > >::difference_type,std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > const &)\n");
   return 0;
 }
 
@@ -25745,6 +25835,9 @@ SWIGINTERN PyObject *_wrap_vector_cvector_t___delitem____SWIG_0(PyObject *SWIGUN
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -25817,7 +25910,7 @@ SWIGINTERN PyObject *_wrap_vector_cvector_t___setitem____SWIG_0(PyObject *SWIGUN
     arg2 = (PySliceObject *) obj1;
   }
   {
-    std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > *ptr = (std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > *)0;
+    std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > *ptr = (std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vector_cvector_t___setitem__" "', argument " "3"" of type '" "std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > const &""'"); 
@@ -25923,20 +26016,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_cvector_t___delitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -25949,7 +26042,7 @@ SWIGINTERN PyObject *_wrap_vector_cvector_t___delitem__(PyObject *self, PyObject
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -26009,20 +26102,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_cvector_t___getitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -26035,7 +26128,7 @@ SWIGINTERN PyObject *_wrap_vector_cvector_t___getitem__(PyObject *self, PyObject
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -26106,20 +26199,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_cvector_t___setitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -26132,14 +26225,14 @@ SWIGINTERN PyObject *_wrap_vector_cvector_t___setitem__(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
         _v = PySlice_Check(argv[1]);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vector_cvector_t___setitem____SWIG_0(self, args);
@@ -26149,7 +26242,7 @@ SWIGINTERN PyObject *_wrap_vector_cvector_t___setitem__(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -26176,6 +26269,34 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_cvector_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< BasicVector3D< std::complex< double > > > *arg1 = (std::vector< BasicVector3D< std::complex< double > > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< BasicVector3D< std::complex< double > > >::value_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_cvector_t_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_cvector_t_pop" "', argument " "1"" of type '" "std::vector< BasicVector3D< std::complex< double > > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< BasicVector3D< std::complex< double > > > * >(argp1);
+  try {
+    result = std_vector_Sl_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg__pop(arg1);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_NewPointerObj((new std::vector< BasicVector3D< std::complex< double > > >::value_type(static_cast< const std::vector< BasicVector3D< std::complex< double > > >::value_type& >(result))), SWIGTYPE_p_BasicVector3DT_std__complexT_double_t_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_vector_cvector_t_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< BasicVector3D< std::complex< double > > > *arg1 = (std::vector< BasicVector3D< std::complex< double > > > *) 0 ;
@@ -26231,7 +26352,7 @@ SWIGINTERN PyObject *_wrap_new_vector_cvector_t__SWIG_1(PyObject *SWIGUNUSEDPARM
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_vector_cvector_t",&obj0)) SWIG_fail;
   {
-    std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > *ptr = (std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > *)0;
+    std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > *ptr = (std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_vector_cvector_t" "', argument " "1"" of type '" "std::vector< BasicVector3D< std::complex< double > > > const &""'"); 
@@ -26295,27 +26416,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_cvector_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< BasicVector3D< std::complex< double > > > *arg1 = (std::vector< BasicVector3D< std::complex< double > > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_cvector_t_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_cvector_t_clear" "', argument " "1"" of type '" "std::vector< BasicVector3D< std::complex< double > > > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< BasicVector3D< std::complex< double > > > * >(argp1);
-  (arg1)->clear();
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_cvector_t_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< BasicVector3D< std::complex< double > > > *arg1 = (std::vector< BasicVector3D< std::complex< double > > > *) 0 ;
@@ -26349,28 +26449,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_cvector_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< BasicVector3D< std::complex< double > > > *arg1 = (std::vector< BasicVector3D< std::complex< double > > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  SwigValueWrapper< std::allocator< BasicVector3D< std::complex< double > > > > result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_cvector_t_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_cvector_t_get_allocator" "', argument " "1"" of type '" "std::vector< BasicVector3D< std::complex< double > > > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< BasicVector3D< std::complex< double > > > * >(argp1);
-  result = ((std::vector< BasicVector3D< std::complex< double > > > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector< BasicVector3D< std::complex< double > > >::allocator_type(static_cast< const std::vector< BasicVector3D< std::complex< double > > >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_cvector_t_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< BasicVector3D< std::complex< double > > > *arg1 = (std::vector< BasicVector3D< std::complex< double > > > *) 0 ;
@@ -26463,6 +26541,49 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_cvector_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< BasicVector3D< std::complex< double > > > *arg1 = (std::vector< BasicVector3D< std::complex< double > > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_cvector_t_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_cvector_t_clear" "', argument " "1"" of type '" "std::vector< BasicVector3D< std::complex< double > > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< BasicVector3D< std::complex< double > > > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vector_cvector_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< BasicVector3D< std::complex< double > > > *arg1 = (std::vector< BasicVector3D< std::complex< double > > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< BasicVector3D< std::complex< double > > > > result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_cvector_t_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_cvector_t_get_allocator" "', argument " "1"" of type '" "std::vector< BasicVector3D< std::complex< double > > > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< BasicVector3D< std::complex< double > > > * >(argp1);
+  result = ((std::vector< BasicVector3D< std::complex< double > > > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< BasicVector3D< std::complex< double > > >::allocator_type(static_cast< const std::vector< BasicVector3D< std::complex< double > > >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_new_vector_cvector_t__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< BasicVector3D< std::complex< double > > >::size_type arg1 ;
@@ -26628,20 +26749,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_cvector_t_erase(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -26654,7 +26775,7 @@ SWIGINTERN PyObject *_wrap_vector_cvector_t_erase(PyObject *self, PyObject *args
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -26715,14 +26836,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_vector_cvector_t(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -26741,7 +26862,7 @@ SWIGINTERN PyObject *_wrap_new_vector_cvector_t(PyObject *self, PyObject *args)
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_vector_cvector_t__SWIG_1(self, args);
@@ -26935,20 +27056,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_cvector_t_resize(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -26962,7 +27083,7 @@ SWIGINTERN PyObject *_wrap_vector_cvector_t_resize(PyObject *self, PyObject *arg
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -27096,20 +27217,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_cvector_t_insert(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -27126,7 +27247,7 @@ SWIGINTERN PyObject *_wrap_vector_cvector_t_insert(PyObject *self, PyObject *arg
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -27675,14 +27796,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_WavevectorInfo(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -27891,14 +28012,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_Beam(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -28222,14 +28343,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_Bin1D(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -28545,14 +28666,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_Bin1DKVector(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -28883,14 +29004,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_Bin1DCVector(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -29475,7 +29596,7 @@ SWIGINTERN PyObject *_wrap_IAxis_getBinCenters(PyObject *SWIGUNUSEDPARM(self), P
   }
   arg1 = reinterpret_cast< IAxis * >(argp1);
   result = ((IAxis const *)arg1)->getBinCenters();
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -29497,7 +29618,7 @@ SWIGINTERN PyObject *_wrap_IAxis_getBinBoundaries(PyObject *SWIGUNUSEDPARM(self)
   }
   arg1 = reinterpret_cast< IAxis * >(argp1);
   result = ((IAxis const *)arg1)->getBinBoundaries();
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -29651,7 +29772,7 @@ SWIGINTERN PyObject *_wrap_new_VariableBinAxis(PyObject *SWIGUNUSEDPARM(self), P
   } 
   arg2 = static_cast< size_t >(val2);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_VariableBinAxis" "', argument " "3"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
@@ -29890,7 +30011,7 @@ SWIGINTERN PyObject *_wrap_VariableBinAxis_getBinCenters(PyObject *SWIGUNUSEDPAR
   }
   arg1 = reinterpret_cast< VariableBinAxis * >(argp1);
   result = ((VariableBinAxis const *)arg1)->getBinCenters();
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -29912,7 +30033,7 @@ SWIGINTERN PyObject *_wrap_VariableBinAxis_getBinBoundaries(PyObject *SWIGUNUSED
   }
   arg1 = reinterpret_cast< VariableBinAxis * >(argp1);
   result = ((VariableBinAxis const *)arg1)->getBinBoundaries();
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -30288,7 +30409,7 @@ SWIGINTERN PyObject *_wrap_CustomBinAxis_getBinCenters(PyObject *SWIGUNUSEDPARM(
   }
   arg1 = reinterpret_cast< CustomBinAxis * >(argp1);
   result = ((CustomBinAxis const *)arg1)->getBinCenters();
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -30451,14 +30572,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IShape2D_contains(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -30744,14 +30865,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_ISample_to_str(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -31209,34 +31330,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< ISample * > *arg1 = (std::vector< ISample * > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  std::vector< ISample * >::value_type result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:swig_dummy_type_isample_vector_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_ISample_p_std__allocatorT_ISample_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "swig_dummy_type_isample_vector_pop" "', argument " "1"" of type '" "std::vector< ISample * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< ISample * > * >(argp1);
-  try {
-    result = (std::vector< ISample * >::value_type)std_vector_Sl_ISample_Sm__Sg__pop(arg1);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ISample, 0 |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< ISample * > *arg1 = (std::vector< ISample * > *) 0 ;
@@ -31287,70 +31380,6 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector___setslice____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< ISample * > *arg1 = (std::vector< ISample * > *) 0 ;
-  std::vector< ISample * >::difference_type arg2 ;
-  std::vector< ISample * >::difference_type arg3 ;
-  std::vector< ISample *,std::allocator< ISample * > > *arg4 = 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  ptrdiff_t val3 ;
-  int ecode3 = 0 ;
-  int res4 = SWIG_OLDOBJ ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:swig_dummy_type_isample_vector___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_ISample_p_std__allocatorT_ISample_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "swig_dummy_type_isample_vector___setslice__" "', argument " "1"" of type '" "std::vector< ISample * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< ISample * > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "swig_dummy_type_isample_vector___setslice__" "', argument " "2"" of type '" "std::vector< ISample * >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector< ISample * >::difference_type >(val2);
-  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "swig_dummy_type_isample_vector___setslice__" "', argument " "3"" of type '" "std::vector< ISample * >::difference_type""'");
-  } 
-  arg3 = static_cast< std::vector< ISample * >::difference_type >(val3);
-  {
-    std::vector<ISample*,std::allocator< ISample * > > *ptr = (std::vector<ISample*,std::allocator< ISample * > > *)0;
-    res4 = swig::asptr(obj3, &ptr);
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "swig_dummy_type_isample_vector___setslice__" "', argument " "4"" of type '" "std::vector< ISample *,std::allocator< ISample * > > const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "swig_dummy_type_isample_vector___setslice__" "', argument " "4"" of type '" "std::vector< ISample *,std::allocator< ISample * > > const &""'"); 
-    }
-    arg4 = ptr;
-  }
-  try {
-    std_vector_Sl_ISample_Sm__Sg____setslice____SWIG_0(arg1,arg2,arg3,(std::vector< ISample *,std::allocator< ISample * > > const &)*arg4);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  catch(std::invalid_argument &_e) {
-    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
-  }
-  
-  resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res4)) delete arg4;
-  return resultobj;
-fail:
-  if (SWIG_IsNewObj(res4)) delete arg4;
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< ISample * > *arg1 = (std::vector< ISample * > *) 0 ;
   std::vector< ISample * >::difference_type arg2 ;
@@ -31398,21 +31427,85 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< ISample * > *arg1 = (std::vector< ISample * > *) 0 ;
+  std::vector< ISample * >::difference_type arg2 ;
+  std::vector< ISample * >::difference_type arg3 ;
+  std::vector< ISample *,std::allocator< ISample * > > *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
+  int res4 = SWIG_OLDOBJ ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:swig_dummy_type_isample_vector___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_ISample_p_std__allocatorT_ISample_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "swig_dummy_type_isample_vector___setslice__" "', argument " "1"" of type '" "std::vector< ISample * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< ISample * > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "swig_dummy_type_isample_vector___setslice__" "', argument " "2"" of type '" "std::vector< ISample * >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< ISample * >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "swig_dummy_type_isample_vector___setslice__" "', argument " "3"" of type '" "std::vector< ISample * >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< ISample * >::difference_type >(val3);
+  {
+    std::vector< ISample*,std::allocator< ISample * > > *ptr = (std::vector< ISample*,std::allocator< ISample * > > *)0;
+    res4 = swig::asptr(obj3, &ptr);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "swig_dummy_type_isample_vector___setslice__" "', argument " "4"" of type '" "std::vector< ISample *,std::allocator< ISample * > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "swig_dummy_type_isample_vector___setslice__" "', argument " "4"" of type '" "std::vector< ISample *,std::allocator< ISample * > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
+  try {
+    std_vector_Sl_ISample_Sm__Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< ISample *,std::allocator< ISample * > > const &)*arg4);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res4)) delete arg4;
+  return resultobj;
+fail:
+  if (SWIG_IsNewObj(res4)) delete arg4;
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector___setslice__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample*,std::allocator< ISample * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample*,std::allocator< ISample * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -31425,14 +31518,14 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector___setslice__(PyObject
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_swig_dummy_type_isample_vector___setslice____SWIG_1(self, args);
+          return _wrap_swig_dummy_type_isample_vector___setslice____SWIG_0(self, args);
         }
       }
     }
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample*,std::allocator< ISample * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample*,std::allocator< ISample * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -31445,10 +31538,10 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector___setslice__(PyObject
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = swig::asptr(argv[3], (std::vector<ISample*,std::allocator< ISample * > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< ISample*,std::allocator< ISample * > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
-            return _wrap_swig_dummy_type_isample_vector___setslice____SWIG_0(self, args);
+            return _wrap_swig_dummy_type_isample_vector___setslice____SWIG_1(self, args);
           }
         }
       }
@@ -31458,8 +31551,8 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector___setslice__(PyObject
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'swig_dummy_type_isample_vector___setslice__'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    std::vector< ISample * >::__setslice__(std::vector< ISample * >::difference_type,std::vector< ISample * >::difference_type,std::vector< ISample *,std::allocator< ISample * > > const &)\n"
-    "    std::vector< ISample * >::__setslice__(std::vector< ISample * >::difference_type,std::vector< ISample * >::difference_type)\n");
+    "    std::vector< ISample * >::__setslice__(std::vector< ISample * >::difference_type,std::vector< ISample * >::difference_type)\n"
+    "    std::vector< ISample * >::__setslice__(std::vector< ISample * >::difference_type,std::vector< ISample * >::difference_type,std::vector< ISample *,std::allocator< ISample * > > const &)\n");
   return 0;
 }
 
@@ -31540,6 +31633,9 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector___delitem____SWIG_0(Py
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -31612,7 +31708,7 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector___setitem____SWIG_0(Py
     arg2 = (PySliceObject *) obj1;
   }
   {
-    std::vector<ISample*,std::allocator< ISample * > > *ptr = (std::vector<ISample*,std::allocator< ISample * > > *)0;
+    std::vector< ISample*,std::allocator< ISample * > > *ptr = (std::vector< ISample*,std::allocator< ISample * > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "swig_dummy_type_isample_vector___setitem__" "', argument " "3"" of type '" "std::vector< ISample *,std::allocator< ISample * > > const &""'"); 
@@ -31718,20 +31814,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector___delitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample*,std::allocator< ISample * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample*,std::allocator< ISample * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -31744,7 +31840,7 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector___delitem__(PyObject *
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample*,std::allocator< ISample * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample*,std::allocator< ISample * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -31804,20 +31900,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector___getitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample*,std::allocator< ISample * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample*,std::allocator< ISample * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -31830,7 +31926,7 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector___getitem__(PyObject *
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample*,std::allocator< ISample * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample*,std::allocator< ISample * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -31898,20 +31994,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector___setitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample*,std::allocator< ISample * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample*,std::allocator< ISample * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -31924,14 +32020,14 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector___setitem__(PyObject *
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample*,std::allocator< ISample * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample*,std::allocator< ISample * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
         _v = PySlice_Check(argv[1]);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<ISample*,std::allocator< ISample * > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< ISample*,std::allocator< ISample * > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_swig_dummy_type_isample_vector___setitem____SWIG_0(self, args);
@@ -31941,7 +32037,7 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector___setitem__(PyObject *
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample*,std::allocator< ISample * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample*,std::allocator< ISample * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -31969,6 +32065,34 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< ISample * > *arg1 = (std::vector< ISample * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< ISample * >::value_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:swig_dummy_type_isample_vector_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_ISample_p_std__allocatorT_ISample_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "swig_dummy_type_isample_vector_pop" "', argument " "1"" of type '" "std::vector< ISample * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< ISample * > * >(argp1);
+  try {
+    result = (std::vector< ISample * >::value_type)std_vector_Sl_ISample_Sm__Sg__pop(arg1);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ISample, 0 |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< ISample * > *arg1 = (std::vector< ISample * > *) 0 ;
@@ -32021,7 +32145,7 @@ SWIGINTERN PyObject *_wrap_new_swig_dummy_type_isample_vector__SWIG_1(PyObject *
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_swig_dummy_type_isample_vector",&obj0)) SWIG_fail;
   {
-    std::vector<ISample*,std::allocator< ISample * > > *ptr = (std::vector<ISample*,std::allocator< ISample * > > *)0;
+    std::vector< ISample*,std::allocator< ISample * > > *ptr = (std::vector< ISample*,std::allocator< ISample * > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_swig_dummy_type_isample_vector" "', argument " "1"" of type '" "std::vector< ISample * > const &""'"); 
@@ -32085,27 +32209,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< ISample * > *arg1 = (std::vector< ISample * > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:swig_dummy_type_isample_vector_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_ISample_p_std__allocatorT_ISample_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "swig_dummy_type_isample_vector_clear" "', argument " "1"" of type '" "std::vector< ISample * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< ISample * > * >(argp1);
-  (arg1)->clear();
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< ISample * > *arg1 = (std::vector< ISample * > *) 0 ;
@@ -32139,28 +32242,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< ISample * > *arg1 = (std::vector< ISample * > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  SwigValueWrapper< std::allocator< ISample * > > result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:swig_dummy_type_isample_vector_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_ISample_p_std__allocatorT_ISample_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "swig_dummy_type_isample_vector_get_allocator" "', argument " "1"" of type '" "std::vector< ISample * > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< ISample * > * >(argp1);
-  result = ((std::vector< ISample * > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector< ISample * >::allocator_type(static_cast< const std::vector< ISample * >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_ISample_p_t, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< ISample * > *arg1 = (std::vector< ISample * > *) 0 ;
@@ -32253,6 +32334,49 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< ISample * > *arg1 = (std::vector< ISample * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:swig_dummy_type_isample_vector_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_ISample_p_std__allocatorT_ISample_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "swig_dummy_type_isample_vector_clear" "', argument " "1"" of type '" "std::vector< ISample * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< ISample * > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< ISample * > *arg1 = (std::vector< ISample * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< ISample * > > result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:swig_dummy_type_isample_vector_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_ISample_p_std__allocatorT_ISample_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "swig_dummy_type_isample_vector_get_allocator" "', argument " "1"" of type '" "std::vector< ISample * > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< ISample * > * >(argp1);
+  result = ((std::vector< ISample * > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< ISample * >::allocator_type(static_cast< const std::vector< ISample * >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_ISample_p_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_new_swig_dummy_type_isample_vector__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< ISample * >::size_type arg1 ;
@@ -32418,20 +32542,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector_erase(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample*,std::allocator< ISample * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample*,std::allocator< ISample * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -32444,7 +32568,7 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector_erase(PyObject *self,
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample*,std::allocator< ISample * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample*,std::allocator< ISample * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -32502,14 +32626,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_swig_dummy_type_isample_vector(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -32528,7 +32652,7 @@ SWIGINTERN PyObject *_wrap_new_swig_dummy_type_isample_vector(PyObject *self, Py
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample*,std::allocator< ISample * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample*,std::allocator< ISample * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_swig_dummy_type_isample_vector__SWIG_1(self, args);
@@ -32714,20 +32838,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector_resize(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample*,std::allocator< ISample * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample*,std::allocator< ISample * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -32741,7 +32865,7 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector_resize(PyObject *self,
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample*,std::allocator< ISample * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample*,std::allocator< ISample * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -32870,20 +32994,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector_insert(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample*,std::allocator< ISample * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample*,std::allocator< ISample * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -32901,7 +33025,7 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_isample_vector_insert(PyObject *self,
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample*,std::allocator< ISample * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample*,std::allocator< ISample * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -33103,34 +33227,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< ISample const * > *arg1 = (std::vector< ISample const * > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  std::vector< ISample const * >::value_type result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:swig_dummy_type_const_isample_vector_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_ISample_const_p_std__allocatorT_ISample_const_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "swig_dummy_type_const_isample_vector_pop" "', argument " "1"" of type '" "std::vector< ISample const * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< ISample const * > * >(argp1);
-  try {
-    result = (std::vector< ISample const * >::value_type)std_vector_Sl_ISample_SS_const_Sm__Sg__pop(arg1);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ISample, 0 |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< ISample const * > *arg1 = (std::vector< ISample const * > *) 0 ;
@@ -33181,70 +33277,6 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector___setslice____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< ISample const * > *arg1 = (std::vector< ISample const * > *) 0 ;
-  std::vector< ISample const * >::difference_type arg2 ;
-  std::vector< ISample const * >::difference_type arg3 ;
-  std::vector< ISample const *,std::allocator< ISample const * > > *arg4 = 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  ptrdiff_t val3 ;
-  int ecode3 = 0 ;
-  int res4 = SWIG_OLDOBJ ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:swig_dummy_type_const_isample_vector___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_ISample_const_p_std__allocatorT_ISample_const_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "swig_dummy_type_const_isample_vector___setslice__" "', argument " "1"" of type '" "std::vector< ISample const * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< ISample const * > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "swig_dummy_type_const_isample_vector___setslice__" "', argument " "2"" of type '" "std::vector< ISample const * >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector< ISample const * >::difference_type >(val2);
-  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "swig_dummy_type_const_isample_vector___setslice__" "', argument " "3"" of type '" "std::vector< ISample const * >::difference_type""'");
-  } 
-  arg3 = static_cast< std::vector< ISample const * >::difference_type >(val3);
-  {
-    std::vector<ISample const*,std::allocator< ISample const * > > *ptr = (std::vector<ISample const*,std::allocator< ISample const * > > *)0;
-    res4 = swig::asptr(obj3, &ptr);
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "swig_dummy_type_const_isample_vector___setslice__" "', argument " "4"" of type '" "std::vector< ISample const *,std::allocator< ISample const * > > const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "swig_dummy_type_const_isample_vector___setslice__" "', argument " "4"" of type '" "std::vector< ISample const *,std::allocator< ISample const * > > const &""'"); 
-    }
-    arg4 = ptr;
-  }
-  try {
-    std_vector_Sl_ISample_SS_const_Sm__Sg____setslice____SWIG_0(arg1,arg2,arg3,(std::vector< ISample const *,std::allocator< ISample const * > > const &)*arg4);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  catch(std::invalid_argument &_e) {
-    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
-  }
-  
-  resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res4)) delete arg4;
-  return resultobj;
-fail:
-  if (SWIG_IsNewObj(res4)) delete arg4;
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< ISample const * > *arg1 = (std::vector< ISample const * > *) 0 ;
   std::vector< ISample const * >::difference_type arg2 ;
@@ -33292,21 +33324,85 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< ISample const * > *arg1 = (std::vector< ISample const * > *) 0 ;
+  std::vector< ISample const * >::difference_type arg2 ;
+  std::vector< ISample const * >::difference_type arg3 ;
+  std::vector< ISample const *,std::allocator< ISample const * > > *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
+  int res4 = SWIG_OLDOBJ ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:swig_dummy_type_const_isample_vector___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_ISample_const_p_std__allocatorT_ISample_const_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "swig_dummy_type_const_isample_vector___setslice__" "', argument " "1"" of type '" "std::vector< ISample const * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< ISample const * > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "swig_dummy_type_const_isample_vector___setslice__" "', argument " "2"" of type '" "std::vector< ISample const * >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< ISample const * >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "swig_dummy_type_const_isample_vector___setslice__" "', argument " "3"" of type '" "std::vector< ISample const * >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< ISample const * >::difference_type >(val3);
+  {
+    std::vector< ISample const*,std::allocator< ISample const * > > *ptr = (std::vector< ISample const*,std::allocator< ISample const * > > *)0;
+    res4 = swig::asptr(obj3, &ptr);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "swig_dummy_type_const_isample_vector___setslice__" "', argument " "4"" of type '" "std::vector< ISample const *,std::allocator< ISample const * > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "swig_dummy_type_const_isample_vector___setslice__" "', argument " "4"" of type '" "std::vector< ISample const *,std::allocator< ISample const * > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
+  try {
+    std_vector_Sl_ISample_SS_const_Sm__Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< ISample const *,std::allocator< ISample const * > > const &)*arg4);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res4)) delete arg4;
+  return resultobj;
+fail:
+  if (SWIG_IsNewObj(res4)) delete arg4;
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector___setslice__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample const*,std::allocator< ISample const * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample const*,std::allocator< ISample const * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -33319,14 +33415,14 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector___setslice__(PyO
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_swig_dummy_type_const_isample_vector___setslice____SWIG_1(self, args);
+          return _wrap_swig_dummy_type_const_isample_vector___setslice____SWIG_0(self, args);
         }
       }
     }
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample const*,std::allocator< ISample const * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample const*,std::allocator< ISample const * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -33339,10 +33435,10 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector___setslice__(PyO
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = swig::asptr(argv[3], (std::vector<ISample const*,std::allocator< ISample const * > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< ISample const*,std::allocator< ISample const * > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
-            return _wrap_swig_dummy_type_const_isample_vector___setslice____SWIG_0(self, args);
+            return _wrap_swig_dummy_type_const_isample_vector___setslice____SWIG_1(self, args);
           }
         }
       }
@@ -33352,8 +33448,8 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector___setslice__(PyO
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'swig_dummy_type_const_isample_vector___setslice__'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    std::vector< ISample const * >::__setslice__(std::vector< ISample const * >::difference_type,std::vector< ISample const * >::difference_type,std::vector< ISample const *,std::allocator< ISample const * > > const &)\n"
-    "    std::vector< ISample const * >::__setslice__(std::vector< ISample const * >::difference_type,std::vector< ISample const * >::difference_type)\n");
+    "    std::vector< ISample const * >::__setslice__(std::vector< ISample const * >::difference_type,std::vector< ISample const * >::difference_type)\n"
+    "    std::vector< ISample const * >::__setslice__(std::vector< ISample const * >::difference_type,std::vector< ISample const * >::difference_type,std::vector< ISample const *,std::allocator< ISample const * > > const &)\n");
   return 0;
 }
 
@@ -33434,6 +33530,9 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector___delitem____SWI
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -33506,7 +33605,7 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector___setitem____SWI
     arg2 = (PySliceObject *) obj1;
   }
   {
-    std::vector<ISample const*,std::allocator< ISample const * > > *ptr = (std::vector<ISample const*,std::allocator< ISample const * > > *)0;
+    std::vector< ISample const*,std::allocator< ISample const * > > *ptr = (std::vector< ISample const*,std::allocator< ISample const * > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "swig_dummy_type_const_isample_vector___setitem__" "', argument " "3"" of type '" "std::vector< ISample const *,std::allocator< ISample const * > > const &""'"); 
@@ -33612,20 +33711,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector___delitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample const*,std::allocator< ISample const * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample const*,std::allocator< ISample const * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -33638,7 +33737,7 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector___delitem__(PyOb
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample const*,std::allocator< ISample const * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample const*,std::allocator< ISample const * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -33698,20 +33797,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector___getitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample const*,std::allocator< ISample const * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample const*,std::allocator< ISample const * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -33724,7 +33823,7 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector___getitem__(PyOb
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample const*,std::allocator< ISample const * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample const*,std::allocator< ISample const * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -33792,20 +33891,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector___setitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample const*,std::allocator< ISample const * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample const*,std::allocator< ISample const * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -33818,14 +33917,14 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector___setitem__(PyOb
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample const*,std::allocator< ISample const * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample const*,std::allocator< ISample const * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
         _v = PySlice_Check(argv[1]);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<ISample const*,std::allocator< ISample const * > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< ISample const*,std::allocator< ISample const * > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_swig_dummy_type_const_isample_vector___setitem____SWIG_0(self, args);
@@ -33835,7 +33934,7 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector___setitem__(PyOb
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample const*,std::allocator< ISample const * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample const*,std::allocator< ISample const * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -33863,6 +33962,34 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< ISample const * > *arg1 = (std::vector< ISample const * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< ISample const * >::value_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:swig_dummy_type_const_isample_vector_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_ISample_const_p_std__allocatorT_ISample_const_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "swig_dummy_type_const_isample_vector_pop" "', argument " "1"" of type '" "std::vector< ISample const * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< ISample const * > * >(argp1);
+  try {
+    result = (std::vector< ISample const * >::value_type)std_vector_Sl_ISample_SS_const_Sm__Sg__pop(arg1);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ISample, 0 |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< ISample const * > *arg1 = (std::vector< ISample const * > *) 0 ;
@@ -33915,7 +34042,7 @@ SWIGINTERN PyObject *_wrap_new_swig_dummy_type_const_isample_vector__SWIG_1(PyOb
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_swig_dummy_type_const_isample_vector",&obj0)) SWIG_fail;
   {
-    std::vector<ISample const*,std::allocator< ISample const * > > *ptr = (std::vector<ISample const*,std::allocator< ISample const * > > *)0;
+    std::vector< ISample const*,std::allocator< ISample const * > > *ptr = (std::vector< ISample const*,std::allocator< ISample const * > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_swig_dummy_type_const_isample_vector" "', argument " "1"" of type '" "std::vector< ISample const * > const &""'"); 
@@ -33979,27 +34106,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< ISample const * > *arg1 = (std::vector< ISample const * > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:swig_dummy_type_const_isample_vector_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_ISample_const_p_std__allocatorT_ISample_const_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "swig_dummy_type_const_isample_vector_clear" "', argument " "1"" of type '" "std::vector< ISample const * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< ISample const * > * >(argp1);
-  (arg1)->clear();
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< ISample const * > *arg1 = (std::vector< ISample const * > *) 0 ;
@@ -34033,28 +34139,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< ISample const * > *arg1 = (std::vector< ISample const * > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  SwigValueWrapper< std::allocator< ISample const * > > result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:swig_dummy_type_const_isample_vector_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_ISample_const_p_std__allocatorT_ISample_const_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "swig_dummy_type_const_isample_vector_get_allocator" "', argument " "1"" of type '" "std::vector< ISample const * > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< ISample const * > * >(argp1);
-  result = ((std::vector< ISample const * > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector< ISample const * >::allocator_type(static_cast< const std::vector< ISample const * >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_ISample_const_p_t, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< ISample const * > *arg1 = (std::vector< ISample const * > *) 0 ;
@@ -34147,6 +34231,49 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< ISample const * > *arg1 = (std::vector< ISample const * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:swig_dummy_type_const_isample_vector_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_ISample_const_p_std__allocatorT_ISample_const_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "swig_dummy_type_const_isample_vector_clear" "', argument " "1"" of type '" "std::vector< ISample const * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< ISample const * > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< ISample const * > *arg1 = (std::vector< ISample const * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< ISample const * > > result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:swig_dummy_type_const_isample_vector_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_ISample_const_p_std__allocatorT_ISample_const_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "swig_dummy_type_const_isample_vector_get_allocator" "', argument " "1"" of type '" "std::vector< ISample const * > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< ISample const * > * >(argp1);
+  result = ((std::vector< ISample const * > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< ISample const * >::allocator_type(static_cast< const std::vector< ISample const * >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_ISample_const_p_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_new_swig_dummy_type_const_isample_vector__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< ISample const * >::size_type arg1 ;
@@ -34312,20 +34439,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector_erase(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample const*,std::allocator< ISample const * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample const*,std::allocator< ISample const * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -34338,7 +34465,7 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector_erase(PyObject *
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample const*,std::allocator< ISample const * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample const*,std::allocator< ISample const * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -34396,14 +34523,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_swig_dummy_type_const_isample_vector(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -34422,7 +34549,7 @@ SWIGINTERN PyObject *_wrap_new_swig_dummy_type_const_isample_vector(PyObject *se
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample const*,std::allocator< ISample const * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample const*,std::allocator< ISample const * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_swig_dummy_type_const_isample_vector__SWIG_1(self, args);
@@ -34608,20 +34735,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector_resize(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample const*,std::allocator< ISample const * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample const*,std::allocator< ISample const * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -34635,7 +34762,7 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector_resize(PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample const*,std::allocator< ISample const * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample const*,std::allocator< ISample const * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -34764,20 +34891,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector_insert(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample const*,std::allocator< ISample const * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample const*,std::allocator< ISample const * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -34795,7 +34922,7 @@ SWIGINTERN PyObject *_wrap_swig_dummy_type_const_isample_vector_insert(PyObject
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<ISample const*,std::allocator< ISample const * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< ISample const*,std::allocator< ISample const * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -35036,14 +35163,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IChiSquaredModule_setChiSquaredFunction(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -35129,14 +35256,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IChiSquaredModule_getIntensityNormalizer(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -36441,14 +36568,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_IntensityNormalizer(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -36706,14 +36833,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_IntensityScaleAndShiftNormalizer(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -36992,14 +37119,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_ISquaredFunction_calculateSquaredError(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -37224,14 +37351,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_SquaredFunctionDefault_calculateSquaredError(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -37847,14 +37974,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_ChiSquaredModule(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -38123,14 +38250,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_FitObject(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -38424,14 +38551,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitObject_prepareFitElements(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -38931,14 +39058,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuite_addSimulationAndRealData(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -39039,7 +39166,7 @@ SWIGINTERN PyObject *_wrap_FitSuite_addFitParameter__SWIG_0(PyObject *SWIGUNUSED
   FitSuite *arg1 = (FitSuite *) 0 ;
   std::string *arg2 = 0 ;
   double arg3 ;
-  Limits *arg4 = 0 ;
+  RealLimits *arg4 = 0 ;
   Attributes *arg5 = 0 ;
   double arg6 ;
   void *argp1 = 0 ;
@@ -39082,14 +39209,14 @@ SWIGINTERN PyObject *_wrap_FitSuite_addFitParameter__SWIG_0(PyObject *SWIGUNUSED
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "FitSuite_addFitParameter" "', argument " "3"" of type '" "double""'");
   } 
   arg3 = static_cast< double >(val3);
-  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_Limits,  0  | 0);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_RealLimits,  0  | 0);
   if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "FitSuite_addFitParameter" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "FitSuite_addFitParameter" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
   if (!argp4) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FitSuite_addFitParameter" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FitSuite_addFitParameter" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
-  arg4 = reinterpret_cast< Limits * >(argp4);
+  arg4 = reinterpret_cast< RealLimits * >(argp4);
   res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_Attributes,  0  | 0);
   if (!SWIG_IsOK(res5)) {
     SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "FitSuite_addFitParameter" "', argument " "5"" of type '" "Attributes const &""'"); 
@@ -39103,7 +39230,7 @@ SWIGINTERN PyObject *_wrap_FitSuite_addFitParameter__SWIG_0(PyObject *SWIGUNUSED
     SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "FitSuite_addFitParameter" "', argument " "6"" of type '" "double""'");
   } 
   arg6 = static_cast< double >(val6);
-  (arg1)->addFitParameter((std::string const &)*arg2,arg3,(Limits const &)*arg4,(Attributes const &)*arg5,arg6);
+  (arg1)->addFitParameter((std::string const &)*arg2,arg3,(RealLimits const &)*arg4,(Attributes const &)*arg5,arg6);
   resultobj = SWIG_Py_Void();
   if (SWIG_IsNewObj(res2)) delete arg2;
   return resultobj;
@@ -39118,7 +39245,7 @@ SWIGINTERN PyObject *_wrap_FitSuite_addFitParameter__SWIG_1(PyObject *SWIGUNUSED
   FitSuite *arg1 = (FitSuite *) 0 ;
   std::string *arg2 = 0 ;
   double arg3 ;
-  Limits *arg4 = 0 ;
+  RealLimits *arg4 = 0 ;
   Attributes *arg5 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -39157,14 +39284,14 @@ SWIGINTERN PyObject *_wrap_FitSuite_addFitParameter__SWIG_1(PyObject *SWIGUNUSED
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "FitSuite_addFitParameter" "', argument " "3"" of type '" "double""'");
   } 
   arg3 = static_cast< double >(val3);
-  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_Limits,  0  | 0);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_RealLimits,  0  | 0);
   if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "FitSuite_addFitParameter" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "FitSuite_addFitParameter" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
   if (!argp4) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FitSuite_addFitParameter" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FitSuite_addFitParameter" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
-  arg4 = reinterpret_cast< Limits * >(argp4);
+  arg4 = reinterpret_cast< RealLimits * >(argp4);
   res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_Attributes,  0  | 0);
   if (!SWIG_IsOK(res5)) {
     SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "FitSuite_addFitParameter" "', argument " "5"" of type '" "Attributes const &""'"); 
@@ -39173,7 +39300,7 @@ SWIGINTERN PyObject *_wrap_FitSuite_addFitParameter__SWIG_1(PyObject *SWIGUNUSED
     SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FitSuite_addFitParameter" "', argument " "5"" of type '" "Attributes const &""'"); 
   }
   arg5 = reinterpret_cast< Attributes * >(argp5);
-  (arg1)->addFitParameter((std::string const &)*arg2,arg3,(Limits const &)*arg4,(Attributes const &)*arg5);
+  (arg1)->addFitParameter((std::string const &)*arg2,arg3,(RealLimits const &)*arg4,(Attributes const &)*arg5);
   resultobj = SWIG_Py_Void();
   if (SWIG_IsNewObj(res2)) delete arg2;
   return resultobj;
@@ -39188,7 +39315,7 @@ SWIGINTERN PyObject *_wrap_FitSuite_addFitParameter__SWIG_2(PyObject *SWIGUNUSED
   FitSuite *arg1 = (FitSuite *) 0 ;
   std::string *arg2 = 0 ;
   double arg3 ;
-  Limits *arg4 = 0 ;
+  RealLimits *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
@@ -39223,15 +39350,15 @@ SWIGINTERN PyObject *_wrap_FitSuite_addFitParameter__SWIG_2(PyObject *SWIGUNUSED
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "FitSuite_addFitParameter" "', argument " "3"" of type '" "double""'");
   } 
   arg3 = static_cast< double >(val3);
-  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_Limits,  0  | 0);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_RealLimits,  0  | 0);
   if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "FitSuite_addFitParameter" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "FitSuite_addFitParameter" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
   if (!argp4) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FitSuite_addFitParameter" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FitSuite_addFitParameter" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
-  arg4 = reinterpret_cast< Limits * >(argp4);
-  (arg1)->addFitParameter((std::string const &)*arg2,arg3,(Limits const &)*arg4);
+  arg4 = reinterpret_cast< RealLimits * >(argp4);
+  (arg1)->addFitParameter((std::string const &)*arg2,arg3,(RealLimits const &)*arg4);
   resultobj = SWIG_Py_Void();
   if (SWIG_IsNewObj(res2)) delete arg2;
   return resultobj;
@@ -39288,14 +39415,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuite_addFitParameter(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[7] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 6) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -39332,7 +39459,7 @@ SWIGINTERN PyObject *_wrap_FitSuite_addFitParameter(PyObject *self, PyObject *ar
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_Limits, 0);
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_RealLimits, 0);
           _v = SWIG_CheckState(res);
           if (_v) {
             return _wrap_FitSuite_addFitParameter__SWIG_2(self, args);
@@ -39355,7 +39482,7 @@ SWIGINTERN PyObject *_wrap_FitSuite_addFitParameter(PyObject *self, PyObject *ar
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_Limits, 0);
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_RealLimits, 0);
           _v = SWIG_CheckState(res);
           if (_v) {
             int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_Attributes, 0);
@@ -39382,7 +39509,7 @@ SWIGINTERN PyObject *_wrap_FitSuite_addFitParameter(PyObject *self, PyObject *ar
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_Limits, 0);
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_RealLimits, 0);
           _v = SWIG_CheckState(res);
           if (_v) {
             int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_Attributes, 0);
@@ -39405,9 +39532,9 @@ SWIGINTERN PyObject *_wrap_FitSuite_addFitParameter(PyObject *self, PyObject *ar
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'FitSuite_addFitParameter'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    FitSuite::addFitParameter(std::string const &,double,Limits const &,Attributes const &,double)\n"
-    "    FitSuite::addFitParameter(std::string const &,double,Limits const &,Attributes const &)\n"
-    "    FitSuite::addFitParameter(std::string const &,double,Limits const &)\n"
+    "    FitSuite::addFitParameter(std::string const &,double,RealLimits const &,Attributes const &,double)\n"
+    "    FitSuite::addFitParameter(std::string const &,double,RealLimits const &,Attributes const &)\n"
+    "    FitSuite::addFitParameter(std::string const &,double,RealLimits const &)\n"
     "    FitSuite::addFitParameter(std::string const &,double)\n");
   return 0;
 }
@@ -39669,14 +39796,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuite_setMinimizer(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -39872,7 +39999,7 @@ SWIGINTERN PyObject *_wrap_FitSuite_setParametersFixed(PyObject *SWIGUNUSEDPARM(
   }
   arg1 = reinterpret_cast< FitSuite * >(argp1);
   {
-    std::vector<std::string,std::allocator< std::string > > *ptr = (std::vector<std::string,std::allocator< std::string > > *)0;
+    std::vector< std::string,std::allocator< std::string > > *ptr = (std::vector< std::string,std::allocator< std::string > > *)0;
     res2 = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FitSuite_setParametersFixed" "', argument " "2"" of type '" "std::vector< std::string,std::allocator< std::string > > const &""'"); 
@@ -39994,14 +40121,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuite_getRealData(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -40093,14 +40220,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuite_getSimulationData(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -40192,14 +40319,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuite_getChiSquaredMap(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -40530,14 +40657,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuite_getRealOutputData(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -40629,14 +40756,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuite_getSimulationOutputData(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -40728,14 +40855,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuite_getChiSquaredOutputData(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -40914,14 +41041,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuiteObjects_add(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -41106,14 +41233,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuiteObjects_getRealData(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -41205,14 +41332,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuiteObjects_getSimulationData(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -41304,14 +41431,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuiteObjects_getChiSquaredMap(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -41672,14 +41799,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_sinc(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -41855,14 +41982,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Bessel_J0(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -41919,14 +42046,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Bessel_J1(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -41983,14 +42110,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Bessel_J1c(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -42059,7 +42186,7 @@ SWIGINTERN PyObject *_wrap_FastFourierTransform__SWIG_0(PyObject *SWIGUNUSEDPARM
   
   if (!PyArg_ParseTuple(args,(char *)"OO:FastFourierTransform",&obj0,&obj1)) SWIG_fail;
   {
-    std::vector<std::complex< double >,std::allocator< std::complex< double > > > *ptr = (std::vector<std::complex< double >,std::allocator< std::complex< double > > > *)0;
+    std::vector< std::complex< double >,std::allocator< std::complex< double > > > *ptr = (std::vector< std::complex< double >,std::allocator< std::complex< double > > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FastFourierTransform" "', argument " "1"" of type '" "std::vector< complex_t,std::allocator< complex_t > > const &""'"); 
@@ -42075,7 +42202,7 @@ SWIGINTERN PyObject *_wrap_FastFourierTransform__SWIG_0(PyObject *SWIGUNUSEDPARM
   } 
   arg2 = static_cast< MathFunctions::EFFTDirection >(val2);
   result = MathFunctions::FastFourierTransform((std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &)*arg1,arg2);
-  resultobj = swig::from(static_cast< std::vector<std::complex< double >,std::allocator< std::complex< double > > > >(result));
+  resultobj = swig::from(static_cast< std::vector< std::complex< double >,std::allocator< std::complex< double > > > >(result));
   if (SWIG_IsNewObj(res1)) delete arg1;
   return resultobj;
 fail:
@@ -42097,7 +42224,7 @@ SWIGINTERN PyObject *_wrap_FastFourierTransform__SWIG_1(PyObject *SWIGUNUSEDPARM
   
   if (!PyArg_ParseTuple(args,(char *)"OO:FastFourierTransform",&obj0,&obj1)) SWIG_fail;
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FastFourierTransform" "', argument " "1"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
@@ -42113,7 +42240,7 @@ SWIGINTERN PyObject *_wrap_FastFourierTransform__SWIG_1(PyObject *SWIGUNUSEDPARM
   } 
   arg2 = static_cast< MathFunctions::EFFTDirection >(val2);
   result = MathFunctions::FastFourierTransform((std::vector< double,std::allocator< double > > const &)*arg1,arg2);
-  resultobj = swig::from(static_cast< std::vector<std::complex< double >,std::allocator< std::complex< double > > > >(result));
+  resultobj = swig::from(static_cast< std::vector< std::complex< double >,std::allocator< std::complex< double > > > >(result));
   if (SWIG_IsNewObj(res1)) delete arg1;
   return resultobj;
 fail:
@@ -42123,20 +42250,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FastFourierTransform(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -42150,7 +42277,7 @@ SWIGINTERN PyObject *_wrap_FastFourierTransform(PyObject *self, PyObject *args)
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -42184,7 +42311,7 @@ SWIGINTERN PyObject *_wrap_ConvolveFFT(PyObject *SWIGUNUSEDPARM(self), PyObject
   
   if (!PyArg_ParseTuple(args,(char *)"OO:ConvolveFFT",&obj0,&obj1)) SWIG_fail;
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConvolveFFT" "', argument " "1"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
@@ -42195,7 +42322,7 @@ SWIGINTERN PyObject *_wrap_ConvolveFFT(PyObject *SWIGUNUSEDPARM(self), PyObject
     arg1 = ptr;
   }
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res2 = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ConvolveFFT" "', argument " "2"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
@@ -42206,7 +42333,7 @@ SWIGINTERN PyObject *_wrap_ConvolveFFT(PyObject *SWIGUNUSEDPARM(self), PyObject
     arg2 = ptr;
   }
   result = MathFunctions::ConvolveFFT((std::vector< double,std::allocator< double > > const &)*arg1,(std::vector< double,std::allocator< double > > const &)*arg2);
-  resultobj = swig::from(static_cast< std::vector<std::complex< double >,std::allocator< std::complex< double > > > >(result));
+  resultobj = swig::from(static_cast< std::vector< std::complex< double >,std::allocator< std::complex< double > > > >(result));
   if (SWIG_IsNewObj(res1)) delete arg1;
   if (SWIG_IsNewObj(res2)) delete arg2;
   return resultobj;
@@ -42423,14 +42550,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_FitStrategyAdjustMinimizer(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -42740,14 +42867,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitStrategyAdjustMinimizer_setMinimizer(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -45552,14 +45679,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_ISampleVisitor_visit(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -46947,7 +47074,7 @@ SWIGINTERN PyObject *_wrap_ICompositeSample_getChildren(PyObject *SWIGUNUSEDPARM
   }
   arg1 = reinterpret_cast< ICompositeSample * >(argp1);
   result = ((ICompositeSample const *)arg1)->getChildren();
-  resultobj = swig::from(static_cast< std::vector<ISample const*,std::allocator< ISample const * > > >(result));
+  resultobj = swig::from(static_cast< std::vector< ISample const*,std::allocator< ISample const * > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -47597,7 +47724,7 @@ SWIGINTERN PyObject *_wrap_IDistribution1D_generateSamples__SWIG_0(PyObject *SWI
   IDistribution1D *arg1 = (IDistribution1D *) 0 ;
   size_t arg2 ;
   double arg3 ;
-  Limits *arg4 = 0 ;
+  RealLimits *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
@@ -47628,15 +47755,15 @@ SWIGINTERN PyObject *_wrap_IDistribution1D_generateSamples__SWIG_0(PyObject *SWI
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDistribution1D_generateSamples" "', argument " "3"" of type '" "double""'");
   } 
   arg3 = static_cast< double >(val3);
-  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_Limits,  0  | 0);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_RealLimits,  0  | 0);
   if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "IDistribution1D_generateSamples" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "IDistribution1D_generateSamples" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
   if (!argp4) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDistribution1D_generateSamples" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDistribution1D_generateSamples" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
-  arg4 = reinterpret_cast< Limits * >(argp4);
-  result = ((IDistribution1D const *)arg1)->generateSamples(arg2,arg3,(Limits const &)*arg4);
+  arg4 = reinterpret_cast< RealLimits * >(argp4);
+  result = ((IDistribution1D const *)arg1)->generateSamples(arg2,arg3,(RealLimits const &)*arg4);
   resultobj = SWIG_NewPointerObj((new std::vector< ParameterSample,std::allocator< ParameterSample > >(static_cast< const std::vector< ParameterSample,std::allocator< ParameterSample > >& >(result))), SWIGTYPE_p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
@@ -47765,14 +47892,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IDistribution1D_generateSamples(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -47828,7 +47955,7 @@ SWIGINTERN PyObject *_wrap_IDistribution1D_generateSamples(PyObject *self, PyObj
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_Limits, 0);
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_RealLimits, 0);
           _v = SWIG_CheckState(res);
           if (_v) {
             return _wrap_IDistribution1D_generateSamples__SWIG_0(self, args);
@@ -47868,7 +47995,7 @@ SWIGINTERN PyObject *_wrap_IDistribution1D_generateSamples(PyObject *self, PyObj
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'IDistribution1D_generateSamples'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    IDistribution1D::generateSamples(size_t,double,Limits const &) const\n"
+    "    IDistribution1D::generateSamples(size_t,double,RealLimits const &) const\n"
     "    IDistribution1D::generateSamples(size_t,double) const\n"
     "    IDistribution1D::generateSamples(size_t) const\n"
     "    IDistribution1D::generateSamples(size_t,double,double) const\n");
@@ -47881,7 +48008,7 @@ SWIGINTERN PyObject *_wrap_IDistribution1D_generateValueList__SWIG_0(PyObject *S
   IDistribution1D *arg1 = (IDistribution1D *) 0 ;
   size_t arg2 ;
   double arg3 ;
-  Limits *arg4 = 0 ;
+  RealLimits *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
@@ -47912,16 +48039,16 @@ SWIGINTERN PyObject *_wrap_IDistribution1D_generateValueList__SWIG_0(PyObject *S
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDistribution1D_generateValueList" "', argument " "3"" of type '" "double""'");
   } 
   arg3 = static_cast< double >(val3);
-  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_Limits,  0  | 0);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_RealLimits,  0  | 0);
   if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "IDistribution1D_generateValueList" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "IDistribution1D_generateValueList" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
   if (!argp4) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDistribution1D_generateValueList" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDistribution1D_generateValueList" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
-  arg4 = reinterpret_cast< Limits * >(argp4);
-  result = ((IDistribution1D const *)arg1)->generateValueList(arg2,arg3,(Limits const &)*arg4);
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  arg4 = reinterpret_cast< RealLimits * >(argp4);
+  result = ((IDistribution1D const *)arg1)->generateValueList(arg2,arg3,(RealLimits const &)*arg4);
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -47961,7 +48088,7 @@ SWIGINTERN PyObject *_wrap_IDistribution1D_generateValueList__SWIG_1(PyObject *S
   } 
   arg3 = static_cast< double >(val3);
   result = ((IDistribution1D const *)arg1)->generateValueList(arg2,arg3);
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -47969,14 +48096,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IDistribution1D_generateValueList(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -48017,7 +48144,7 @@ SWIGINTERN PyObject *_wrap_IDistribution1D_generateValueList(PyObject *self, PyO
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_Limits, 0);
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_RealLimits, 0);
           _v = SWIG_CheckState(res);
           if (_v) {
             return _wrap_IDistribution1D_generateValueList__SWIG_0(self, args);
@@ -48030,7 +48157,7 @@ SWIGINTERN PyObject *_wrap_IDistribution1D_generateValueList(PyObject *self, PyO
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'IDistribution1D_generateValueList'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    IDistribution1D::generateValueList(size_t,double,Limits const &) const\n"
+    "    IDistribution1D::generateValueList(size_t,double,RealLimits const &) const\n"
     "    IDistribution1D::generateValueList(size_t,double) const\n");
   return 0;
 }
@@ -48078,7 +48205,7 @@ SWIGINTERN PyObject *_wrap_IDistribution1D_generateValues(PyObject *SWIGUNUSEDPA
   } 
   arg4 = static_cast< double >(val4);
   result = ((IDistribution1D const *)arg1)->generateValues(arg2,arg3,arg4);
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -48181,14 +48308,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_DistributionGate(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -48366,7 +48493,7 @@ SWIGINTERN PyObject *_wrap_DistributionGate_generateValueList__SWIG_0(PyObject *
   DistributionGate *arg1 = (DistributionGate *) 0 ;
   size_t arg2 ;
   double arg3 ;
-  Limits *arg4 = 0 ;
+  RealLimits *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
@@ -48397,16 +48524,16 @@ SWIGINTERN PyObject *_wrap_DistributionGate_generateValueList__SWIG_0(PyObject *
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "DistributionGate_generateValueList" "', argument " "3"" of type '" "double""'");
   } 
   arg3 = static_cast< double >(val3);
-  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_Limits,  0  | 0);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_RealLimits,  0  | 0);
   if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "DistributionGate_generateValueList" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "DistributionGate_generateValueList" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
   if (!argp4) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "DistributionGate_generateValueList" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "DistributionGate_generateValueList" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
-  arg4 = reinterpret_cast< Limits * >(argp4);
-  result = ((DistributionGate const *)arg1)->generateValueList(arg2,arg3,(Limits const &)*arg4);
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  arg4 = reinterpret_cast< RealLimits * >(argp4);
+  result = ((DistributionGate const *)arg1)->generateValueList(arg2,arg3,(RealLimits const &)*arg4);
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -48446,7 +48573,7 @@ SWIGINTERN PyObject *_wrap_DistributionGate_generateValueList__SWIG_1(PyObject *
   } 
   arg3 = static_cast< double >(val3);
   result = ((DistributionGate const *)arg1)->generateValueList(arg2,arg3);
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -48454,14 +48581,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_DistributionGate_generateValueList(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -48502,7 +48629,7 @@ SWIGINTERN PyObject *_wrap_DistributionGate_generateValueList(PyObject *self, Py
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_Limits, 0);
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_RealLimits, 0);
           _v = SWIG_CheckState(res);
           if (_v) {
             return _wrap_DistributionGate_generateValueList__SWIG_0(self, args);
@@ -48515,7 +48642,7 @@ SWIGINTERN PyObject *_wrap_DistributionGate_generateValueList(PyObject *self, Py
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'DistributionGate_generateValueList'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    DistributionGate::generateValueList(size_t,double,Limits const &) const\n"
+    "    DistributionGate::generateValueList(size_t,double,RealLimits const &) const\n"
     "    DistributionGate::generateValueList(size_t,double) const\n");
   return 0;
 }
@@ -48595,14 +48722,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_DistributionLorentz(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -48758,7 +48885,7 @@ SWIGINTERN PyObject *_wrap_DistributionLorentz_generateValueList__SWIG_0(PyObjec
   DistributionLorentz *arg1 = (DistributionLorentz *) 0 ;
   size_t arg2 ;
   double arg3 ;
-  Limits *arg4 = 0 ;
+  RealLimits *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
@@ -48789,16 +48916,16 @@ SWIGINTERN PyObject *_wrap_DistributionLorentz_generateValueList__SWIG_0(PyObjec
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "DistributionLorentz_generateValueList" "', argument " "3"" of type '" "double""'");
   } 
   arg3 = static_cast< double >(val3);
-  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_Limits,  0  | 0);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_RealLimits,  0  | 0);
   if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "DistributionLorentz_generateValueList" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "DistributionLorentz_generateValueList" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
   if (!argp4) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "DistributionLorentz_generateValueList" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "DistributionLorentz_generateValueList" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
-  arg4 = reinterpret_cast< Limits * >(argp4);
-  result = ((DistributionLorentz const *)arg1)->generateValueList(arg2,arg3,(Limits const &)*arg4);
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  arg4 = reinterpret_cast< RealLimits * >(argp4);
+  result = ((DistributionLorentz const *)arg1)->generateValueList(arg2,arg3,(RealLimits const &)*arg4);
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -48838,7 +48965,7 @@ SWIGINTERN PyObject *_wrap_DistributionLorentz_generateValueList__SWIG_1(PyObjec
   } 
   arg3 = static_cast< double >(val3);
   result = ((DistributionLorentz const *)arg1)->generateValueList(arg2,arg3);
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -48846,14 +48973,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_DistributionLorentz_generateValueList(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -48894,7 +49021,7 @@ SWIGINTERN PyObject *_wrap_DistributionLorentz_generateValueList(PyObject *self,
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_Limits, 0);
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_RealLimits, 0);
           _v = SWIG_CheckState(res);
           if (_v) {
             return _wrap_DistributionLorentz_generateValueList__SWIG_0(self, args);
@@ -48907,7 +49034,7 @@ SWIGINTERN PyObject *_wrap_DistributionLorentz_generateValueList(PyObject *self,
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'DistributionLorentz_generateValueList'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    DistributionLorentz::generateValueList(size_t,double,Limits const &) const\n"
+    "    DistributionLorentz::generateValueList(size_t,double,RealLimits const &) const\n"
     "    DistributionLorentz::generateValueList(size_t,double) const\n");
   return 0;
 }
@@ -48987,14 +49114,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_DistributionGaussian(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -49150,7 +49277,7 @@ SWIGINTERN PyObject *_wrap_DistributionGaussian_generateValueList__SWIG_0(PyObje
   DistributionGaussian *arg1 = (DistributionGaussian *) 0 ;
   size_t arg2 ;
   double arg3 ;
-  Limits *arg4 = 0 ;
+  RealLimits *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
@@ -49181,16 +49308,16 @@ SWIGINTERN PyObject *_wrap_DistributionGaussian_generateValueList__SWIG_0(PyObje
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "DistributionGaussian_generateValueList" "', argument " "3"" of type '" "double""'");
   } 
   arg3 = static_cast< double >(val3);
-  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_Limits,  0  | 0);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_RealLimits,  0  | 0);
   if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "DistributionGaussian_generateValueList" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "DistributionGaussian_generateValueList" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
   if (!argp4) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "DistributionGaussian_generateValueList" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "DistributionGaussian_generateValueList" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
-  arg4 = reinterpret_cast< Limits * >(argp4);
-  result = ((DistributionGaussian const *)arg1)->generateValueList(arg2,arg3,(Limits const &)*arg4);
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  arg4 = reinterpret_cast< RealLimits * >(argp4);
+  result = ((DistributionGaussian const *)arg1)->generateValueList(arg2,arg3,(RealLimits const &)*arg4);
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -49230,7 +49357,7 @@ SWIGINTERN PyObject *_wrap_DistributionGaussian_generateValueList__SWIG_1(PyObje
   } 
   arg3 = static_cast< double >(val3);
   result = ((DistributionGaussian const *)arg1)->generateValueList(arg2,arg3);
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -49238,14 +49365,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_DistributionGaussian_generateValueList(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -49286,7 +49413,7 @@ SWIGINTERN PyObject *_wrap_DistributionGaussian_generateValueList(PyObject *self
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_Limits, 0);
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_RealLimits, 0);
           _v = SWIG_CheckState(res);
           if (_v) {
             return _wrap_DistributionGaussian_generateValueList__SWIG_0(self, args);
@@ -49299,7 +49426,7 @@ SWIGINTERN PyObject *_wrap_DistributionGaussian_generateValueList(PyObject *self
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'DistributionGaussian_generateValueList'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    DistributionGaussian::generateValueList(size_t,double,Limits const &) const\n"
+    "    DistributionGaussian::generateValueList(size_t,double,RealLimits const &) const\n"
     "    DistributionGaussian::generateValueList(size_t,double) const\n");
   return 0;
 }
@@ -49388,14 +49515,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_DistributionLogNormal(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -49580,7 +49707,7 @@ SWIGINTERN PyObject *_wrap_DistributionLogNormal_generateValueList__SWIG_0(PyObj
   DistributionLogNormal *arg1 = (DistributionLogNormal *) 0 ;
   size_t arg2 ;
   double arg3 ;
-  Limits *arg4 = 0 ;
+  RealLimits *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
@@ -49611,16 +49738,16 @@ SWIGINTERN PyObject *_wrap_DistributionLogNormal_generateValueList__SWIG_0(PyObj
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "DistributionLogNormal_generateValueList" "', argument " "3"" of type '" "double""'");
   } 
   arg3 = static_cast< double >(val3);
-  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_Limits,  0  | 0);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_RealLimits,  0  | 0);
   if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "DistributionLogNormal_generateValueList" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "DistributionLogNormal_generateValueList" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
   if (!argp4) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "DistributionLogNormal_generateValueList" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "DistributionLogNormal_generateValueList" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
-  arg4 = reinterpret_cast< Limits * >(argp4);
-  result = ((DistributionLogNormal const *)arg1)->generateValueList(arg2,arg3,(Limits const &)*arg4);
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  arg4 = reinterpret_cast< RealLimits * >(argp4);
+  result = ((DistributionLogNormal const *)arg1)->generateValueList(arg2,arg3,(RealLimits const &)*arg4);
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -49660,7 +49787,7 @@ SWIGINTERN PyObject *_wrap_DistributionLogNormal_generateValueList__SWIG_1(PyObj
   } 
   arg3 = static_cast< double >(val3);
   result = ((DistributionLogNormal const *)arg1)->generateValueList(arg2,arg3);
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -49668,14 +49795,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_DistributionLogNormal_generateValueList(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -49716,7 +49843,7 @@ SWIGINTERN PyObject *_wrap_DistributionLogNormal_generateValueList(PyObject *sel
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_Limits, 0);
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_RealLimits, 0);
           _v = SWIG_CheckState(res);
           if (_v) {
             return _wrap_DistributionLogNormal_generateValueList__SWIG_0(self, args);
@@ -49729,7 +49856,7 @@ SWIGINTERN PyObject *_wrap_DistributionLogNormal_generateValueList(PyObject *sel
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'DistributionLogNormal_generateValueList'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    DistributionLogNormal::generateValueList(size_t,double,Limits const &) const\n"
+    "    DistributionLogNormal::generateValueList(size_t,double,RealLimits const &) const\n"
     "    DistributionLogNormal::generateValueList(size_t,double) const\n");
   return 0;
 }
@@ -49809,14 +49936,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_DistributionCosine(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -49972,7 +50099,7 @@ SWIGINTERN PyObject *_wrap_DistributionCosine_generateValueList__SWIG_0(PyObject
   DistributionCosine *arg1 = (DistributionCosine *) 0 ;
   size_t arg2 ;
   double arg3 ;
-  Limits *arg4 = 0 ;
+  RealLimits *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
@@ -50003,16 +50130,16 @@ SWIGINTERN PyObject *_wrap_DistributionCosine_generateValueList__SWIG_0(PyObject
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "DistributionCosine_generateValueList" "', argument " "3"" of type '" "double""'");
   } 
   arg3 = static_cast< double >(val3);
-  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_Limits,  0  | 0);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_RealLimits,  0  | 0);
   if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "DistributionCosine_generateValueList" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "DistributionCosine_generateValueList" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
   if (!argp4) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "DistributionCosine_generateValueList" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "DistributionCosine_generateValueList" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
-  arg4 = reinterpret_cast< Limits * >(argp4);
-  result = ((DistributionCosine const *)arg1)->generateValueList(arg2,arg3,(Limits const &)*arg4);
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  arg4 = reinterpret_cast< RealLimits * >(argp4);
+  result = ((DistributionCosine const *)arg1)->generateValueList(arg2,arg3,(RealLimits const &)*arg4);
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -50052,7 +50179,7 @@ SWIGINTERN PyObject *_wrap_DistributionCosine_generateValueList__SWIG_1(PyObject
   } 
   arg3 = static_cast< double >(val3);
   result = ((DistributionCosine const *)arg1)->generateValueList(arg2,arg3);
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -50060,14 +50187,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_DistributionCosine_generateValueList(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -50108,7 +50235,7 @@ SWIGINTERN PyObject *_wrap_DistributionCosine_generateValueList(PyObject *self,
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_Limits, 0);
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_RealLimits, 0);
           _v = SWIG_CheckState(res);
           if (_v) {
             return _wrap_DistributionCosine_generateValueList__SWIG_0(self, args);
@@ -50121,7 +50248,7 @@ SWIGINTERN PyObject *_wrap_DistributionCosine_generateValueList(PyObject *self,
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'DistributionCosine_generateValueList'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    DistributionCosine::generateValueList(size_t,double,Limits const &) const\n"
+    "    DistributionCosine::generateValueList(size_t,double,RealLimits const &) const\n"
     "    DistributionCosine::generateValueList(size_t,double) const\n");
   return 0;
 }
@@ -50195,14 +50322,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_DetectorMask(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -50336,14 +50463,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_DetectorMask_initMaskData(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -50724,14 +50851,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_Ellipse(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[6] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 5) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -50916,14 +51043,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Ellipse_contains(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -52108,14 +52235,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_FTDecayFunction2DCauchy(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -52407,14 +52534,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_FTDecayFunction2DGauss(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -52733,14 +52860,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_FTDecayFunction2DVoigt(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[6] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 5) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -54062,14 +54189,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_FTDistribution2DCauchy(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -54361,14 +54488,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_FTDistribution2DGauss(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -54660,14 +54787,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_FTDistribution2DGate(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -54959,14 +55086,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_FTDistribution2DCone(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -55285,14 +55412,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_FTDistribution2DVoigt(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[6] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 5) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -55776,7 +55903,7 @@ SWIGINTERN PyObject *_wrap_FixedBinAxis_getBinCenters(PyObject *SWIGUNUSEDPARM(s
   }
   arg1 = reinterpret_cast< FixedBinAxis * >(argp1);
   result = ((FixedBinAxis const *)arg1)->getBinCenters();
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -55798,7 +55925,7 @@ SWIGINTERN PyObject *_wrap_FixedBinAxis_getBinBoundaries(PyObject *SWIGUNUSEDPAR
   }
   arg1 = reinterpret_cast< FixedBinAxis * >(argp1);
   result = ((FixedBinAxis const *)arg1)->getBinBoundaries();
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -56434,34 +56561,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< IFormFactor * > *arg1 = (std::vector< IFormFactor * > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  std::vector< IFormFactor * >::value_type result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_IFormFactorPtr_t_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_IFormFactor_p_std__allocatorT_IFormFactor_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_IFormFactorPtr_t_pop" "', argument " "1"" of type '" "std::vector< IFormFactor * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< IFormFactor * > * >(argp1);
-  try {
-    result = (std::vector< IFormFactor * >::value_type)std_vector_Sl_IFormFactor_Sm__Sg__pop(arg1);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IFormFactor, 0 |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< IFormFactor * > *arg1 = (std::vector< IFormFactor * > *) 0 ;
@@ -56516,20 +56615,17 @@ SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t___setslice____SWIG_0(PyObject
   std::vector< IFormFactor * > *arg1 = (std::vector< IFormFactor * > *) 0 ;
   std::vector< IFormFactor * >::difference_type arg2 ;
   std::vector< IFormFactor * >::difference_type arg3 ;
-  std::vector< IFormFactor *,std::allocator< IFormFactor * > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
-  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_IFormFactorPtr_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOO:vector_IFormFactorPtr_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_IFormFactor_p_std__allocatorT_IFormFactor_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_IFormFactorPtr_t___setslice__" "', argument " "1"" of type '" "std::vector< IFormFactor * > *""'"); 
@@ -56545,19 +56641,8 @@ SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t___setslice____SWIG_0(PyObject
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_IFormFactorPtr_t___setslice__" "', argument " "3"" of type '" "std::vector< IFormFactor * >::difference_type""'");
   } 
   arg3 = static_cast< std::vector< IFormFactor * >::difference_type >(val3);
-  {
-    std::vector<IFormFactor*,std::allocator< IFormFactor * > > *ptr = (std::vector<IFormFactor*,std::allocator< IFormFactor * > > *)0;
-    res4 = swig::asptr(obj3, &ptr);
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_IFormFactorPtr_t___setslice__" "', argument " "4"" of type '" "std::vector< IFormFactor *,std::allocator< IFormFactor * > > const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_IFormFactorPtr_t___setslice__" "', argument " "4"" of type '" "std::vector< IFormFactor *,std::allocator< IFormFactor * > > const &""'"); 
-    }
-    arg4 = ptr;
-  }
   try {
-    std_vector_Sl_IFormFactor_Sm__Sg____setslice____SWIG_0(arg1,arg2,arg3,(std::vector< IFormFactor *,std::allocator< IFormFactor * > > const &)*arg4);
+    std_vector_Sl_IFormFactor_Sm__Sg____setslice____SWIG_0(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -56567,10 +56652,8 @@ SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t___setslice____SWIG_0(PyObject
   }
   
   resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
@@ -56580,17 +56663,20 @@ SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t___setslice____SWIG_1(PyObject
   std::vector< IFormFactor * > *arg1 = (std::vector< IFormFactor * > *) 0 ;
   std::vector< IFormFactor * >::difference_type arg2 ;
   std::vector< IFormFactor * >::difference_type arg3 ;
+  std::vector< IFormFactor *,std::allocator< IFormFactor * > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
+  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:vector_IFormFactorPtr_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_IFormFactorPtr_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_IFormFactor_p_std__allocatorT_IFormFactor_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_IFormFactorPtr_t___setslice__" "', argument " "1"" of type '" "std::vector< IFormFactor * > *""'"); 
@@ -56606,8 +56692,19 @@ SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t___setslice____SWIG_1(PyObject
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_IFormFactorPtr_t___setslice__" "', argument " "3"" of type '" "std::vector< IFormFactor * >::difference_type""'");
   } 
   arg3 = static_cast< std::vector< IFormFactor * >::difference_type >(val3);
+  {
+    std::vector< IFormFactor*,std::allocator< IFormFactor * > > *ptr = (std::vector< IFormFactor*,std::allocator< IFormFactor * > > *)0;
+    res4 = swig::asptr(obj3, &ptr);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_IFormFactorPtr_t___setslice__" "', argument " "4"" of type '" "std::vector< IFormFactor *,std::allocator< IFormFactor * > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_IFormFactorPtr_t___setslice__" "', argument " "4"" of type '" "std::vector< IFormFactor *,std::allocator< IFormFactor * > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
   try {
-    std_vector_Sl_IFormFactor_Sm__Sg____setslice____SWIG_0(arg1,arg2,arg3);
+    std_vector_Sl_IFormFactor_Sm__Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< IFormFactor *,std::allocator< IFormFactor * > > const &)*arg4);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -56617,27 +56714,29 @@ SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t___setslice____SWIG_1(PyObject
   }
   
   resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
 
 SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t___setslice__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<IFormFactor*,std::allocator< IFormFactor * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< IFormFactor*,std::allocator< IFormFactor * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -56650,14 +56749,14 @@ SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t___setslice__(PyObject *self,
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_vector_IFormFactorPtr_t___setslice____SWIG_1(self, args);
+          return _wrap_vector_IFormFactorPtr_t___setslice____SWIG_0(self, args);
         }
       }
     }
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<IFormFactor*,std::allocator< IFormFactor * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< IFormFactor*,std::allocator< IFormFactor * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -56670,10 +56769,10 @@ SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t___setslice__(PyObject *self,
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = swig::asptr(argv[3], (std::vector<IFormFactor*,std::allocator< IFormFactor * > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< IFormFactor*,std::allocator< IFormFactor * > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
-            return _wrap_vector_IFormFactorPtr_t___setslice____SWIG_0(self, args);
+            return _wrap_vector_IFormFactorPtr_t___setslice____SWIG_1(self, args);
           }
         }
       }
@@ -56683,8 +56782,8 @@ SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t___setslice__(PyObject *self,
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'vector_IFormFactorPtr_t___setslice__'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    std::vector< IFormFactor * >::__setslice__(std::vector< IFormFactor * >::difference_type,std::vector< IFormFactor * >::difference_type,std::vector< IFormFactor *,std::allocator< IFormFactor * > > const &)\n"
-    "    std::vector< IFormFactor * >::__setslice__(std::vector< IFormFactor * >::difference_type,std::vector< IFormFactor * >::difference_type)\n");
+    "    std::vector< IFormFactor * >::__setslice__(std::vector< IFormFactor * >::difference_type,std::vector< IFormFactor * >::difference_type)\n"
+    "    std::vector< IFormFactor * >::__setslice__(std::vector< IFormFactor * >::difference_type,std::vector< IFormFactor * >::difference_type,std::vector< IFormFactor *,std::allocator< IFormFactor * > > const &)\n");
   return 0;
 }
 
@@ -56765,6 +56864,9 @@ SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t___delitem____SWIG_0(PyObject
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -56837,7 +56939,7 @@ SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t___setitem____SWIG_0(PyObject
     arg2 = (PySliceObject *) obj1;
   }
   {
-    std::vector<IFormFactor*,std::allocator< IFormFactor * > > *ptr = (std::vector<IFormFactor*,std::allocator< IFormFactor * > > *)0;
+    std::vector< IFormFactor*,std::allocator< IFormFactor * > > *ptr = (std::vector< IFormFactor*,std::allocator< IFormFactor * > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vector_IFormFactorPtr_t___setitem__" "', argument " "3"" of type '" "std::vector< IFormFactor *,std::allocator< IFormFactor * > > const &""'"); 
@@ -56943,20 +57045,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t___delitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<IFormFactor*,std::allocator< IFormFactor * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< IFormFactor*,std::allocator< IFormFactor * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -56969,7 +57071,7 @@ SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t___delitem__(PyObject *self, P
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<IFormFactor*,std::allocator< IFormFactor * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< IFormFactor*,std::allocator< IFormFactor * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -57029,20 +57131,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t___getitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<IFormFactor*,std::allocator< IFormFactor * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< IFormFactor*,std::allocator< IFormFactor * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -57055,7 +57157,7 @@ SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t___getitem__(PyObject *self, P
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<IFormFactor*,std::allocator< IFormFactor * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< IFormFactor*,std::allocator< IFormFactor * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -57123,20 +57225,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t___setitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<IFormFactor*,std::allocator< IFormFactor * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< IFormFactor*,std::allocator< IFormFactor * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -57149,14 +57251,14 @@ SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t___setitem__(PyObject *self, P
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<IFormFactor*,std::allocator< IFormFactor * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< IFormFactor*,std::allocator< IFormFactor * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
         _v = PySlice_Check(argv[1]);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<IFormFactor*,std::allocator< IFormFactor * > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< IFormFactor*,std::allocator< IFormFactor * > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vector_IFormFactorPtr_t___setitem____SWIG_0(self, args);
@@ -57166,7 +57268,7 @@ SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t___setitem__(PyObject *self, P
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<IFormFactor*,std::allocator< IFormFactor * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< IFormFactor*,std::allocator< IFormFactor * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -57194,6 +57296,34 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< IFormFactor * > *arg1 = (std::vector< IFormFactor * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< IFormFactor * >::value_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_IFormFactorPtr_t_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_IFormFactor_p_std__allocatorT_IFormFactor_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_IFormFactorPtr_t_pop" "', argument " "1"" of type '" "std::vector< IFormFactor * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< IFormFactor * > * >(argp1);
+  try {
+    result = (std::vector< IFormFactor * >::value_type)std_vector_Sl_IFormFactor_Sm__Sg__pop(arg1);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IFormFactor, 0 |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< IFormFactor * > *arg1 = (std::vector< IFormFactor * > *) 0 ;
@@ -57246,7 +57376,7 @@ SWIGINTERN PyObject *_wrap_new_vector_IFormFactorPtr_t__SWIG_1(PyObject *SWIGUNU
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_vector_IFormFactorPtr_t",&obj0)) SWIG_fail;
   {
-    std::vector<IFormFactor*,std::allocator< IFormFactor * > > *ptr = (std::vector<IFormFactor*,std::allocator< IFormFactor * > > *)0;
+    std::vector< IFormFactor*,std::allocator< IFormFactor * > > *ptr = (std::vector< IFormFactor*,std::allocator< IFormFactor * > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_vector_IFormFactorPtr_t" "', argument " "1"" of type '" "std::vector< IFormFactor * > const &""'"); 
@@ -57310,27 +57440,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< IFormFactor * > *arg1 = (std::vector< IFormFactor * > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_IFormFactorPtr_t_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_IFormFactor_p_std__allocatorT_IFormFactor_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_IFormFactorPtr_t_clear" "', argument " "1"" of type '" "std::vector< IFormFactor * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< IFormFactor * > * >(argp1);
-  (arg1)->clear();
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< IFormFactor * > *arg1 = (std::vector< IFormFactor * > *) 0 ;
@@ -57364,28 +57473,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< IFormFactor * > *arg1 = (std::vector< IFormFactor * > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  SwigValueWrapper< std::allocator< IFormFactor * > > result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_IFormFactorPtr_t_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_IFormFactor_p_std__allocatorT_IFormFactor_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_IFormFactorPtr_t_get_allocator" "', argument " "1"" of type '" "std::vector< IFormFactor * > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< IFormFactor * > * >(argp1);
-  result = ((std::vector< IFormFactor * > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector< IFormFactor * >::allocator_type(static_cast< const std::vector< IFormFactor * >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_IFormFactor_p_t, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< IFormFactor * > *arg1 = (std::vector< IFormFactor * > *) 0 ;
@@ -57478,6 +57565,49 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< IFormFactor * > *arg1 = (std::vector< IFormFactor * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_IFormFactorPtr_t_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_IFormFactor_p_std__allocatorT_IFormFactor_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_IFormFactorPtr_t_clear" "', argument " "1"" of type '" "std::vector< IFormFactor * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< IFormFactor * > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< IFormFactor * > *arg1 = (std::vector< IFormFactor * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< IFormFactor * > > result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_IFormFactorPtr_t_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_IFormFactor_p_std__allocatorT_IFormFactor_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_IFormFactorPtr_t_get_allocator" "', argument " "1"" of type '" "std::vector< IFormFactor * > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< IFormFactor * > * >(argp1);
+  result = ((std::vector< IFormFactor * > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< IFormFactor * >::allocator_type(static_cast< const std::vector< IFormFactor * >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_IFormFactor_p_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_new_vector_IFormFactorPtr_t__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< IFormFactor * >::size_type arg1 ;
@@ -57643,20 +57773,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t_erase(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<IFormFactor*,std::allocator< IFormFactor * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< IFormFactor*,std::allocator< IFormFactor * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -57669,7 +57799,7 @@ SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t_erase(PyObject *self, PyObjec
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<IFormFactor*,std::allocator< IFormFactor * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< IFormFactor*,std::allocator< IFormFactor * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -57727,14 +57857,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_vector_IFormFactorPtr_t(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -57753,7 +57883,7 @@ SWIGINTERN PyObject *_wrap_new_vector_IFormFactorPtr_t(PyObject *self, PyObject
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<IFormFactor*,std::allocator< IFormFactor * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< IFormFactor*,std::allocator< IFormFactor * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_vector_IFormFactorPtr_t__SWIG_1(self, args);
@@ -57939,20 +58069,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t_resize(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<IFormFactor*,std::allocator< IFormFactor * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< IFormFactor*,std::allocator< IFormFactor * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -57966,7 +58096,7 @@ SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t_resize(PyObject *self, PyObje
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<IFormFactor*,std::allocator< IFormFactor * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< IFormFactor*,std::allocator< IFormFactor * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -58095,20 +58225,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t_insert(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<IFormFactor*,std::allocator< IFormFactor * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< IFormFactor*,std::allocator< IFormFactor * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -58126,7 +58256,7 @@ SWIGINTERN PyObject *_wrap_vector_IFormFactorPtr_t_insert(PyObject *self, PyObje
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<IFormFactor*,std::allocator< IFormFactor * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< IFormFactor*,std::allocator< IFormFactor * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -59329,7 +59459,7 @@ SWIGINTERN PyObject *_wrap_PolyhedralFace_diameter(PyObject *SWIGUNUSEDPARM(self
   
   if (!PyArg_ParseTuple(args,(char *)"O:PolyhedralFace_diameter",&obj0)) SWIG_fail;
   {
-    std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *ptr = (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *)0;
+    std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *ptr = (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolyhedralFace_diameter" "', argument " "1"" of type '" "std::vector< kvector_t,std::allocator< kvector_t > > const &""'"); 
@@ -59362,7 +59492,7 @@ SWIGINTERN PyObject *_wrap_new_PolyhedralFace__SWIG_0(PyObject *SWIGUNUSEDPARM(s
   
   if (!PyArg_ParseTuple(args,(char *)"OO:new_PolyhedralFace",&obj0,&obj1)) SWIG_fail;
   {
-    std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *ptr = (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *)0;
+    std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *ptr = (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_PolyhedralFace" "', argument " "1"" of type '" "std::vector< kvector_t,std::allocator< kvector_t > > const &""'"); 
@@ -59396,7 +59526,7 @@ SWIGINTERN PyObject *_wrap_new_PolyhedralFace__SWIG_1(PyObject *SWIGUNUSEDPARM(s
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_PolyhedralFace",&obj0)) SWIG_fail;
   {
-    std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *ptr = (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *)0;
+    std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *ptr = (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_PolyhedralFace" "', argument " "1"" of type '" "std::vector< kvector_t,std::allocator< kvector_t > > const &""'"); 
@@ -59430,14 +59560,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_PolyhedralFace(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -59446,7 +59576,7 @@ SWIGINTERN PyObject *_wrap_new_PolyhedralFace(PyObject *self, PyObject *args) {
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_PolyhedralFace__SWIG_1(self, args);
@@ -59454,7 +59584,7 @@ SWIGINTERN PyObject *_wrap_new_PolyhedralFace(PyObject *self, PyObject *args) {
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -61886,14 +62016,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_FormFactorDecoratorDebyeWaller(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -62881,14 +63011,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_FormFactorGauss(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -65082,14 +65212,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_FormFactorLorentz(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -67919,14 +68049,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FormFactorWeighted_addFormFactor(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -68321,14 +68451,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Simulation_getDetectorIntensity(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -68373,7 +68503,7 @@ SWIGINTERN PyObject *_wrap_Simulation_addParameterDistribution__SWIG_0(PyObject
   IDistribution1D *arg3 = 0 ;
   size_t arg4 ;
   double arg5 ;
-  Limits *arg6 = 0 ;
+  RealLimits *arg6 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
@@ -68427,15 +68557,15 @@ SWIGINTERN PyObject *_wrap_Simulation_addParameterDistribution__SWIG_0(PyObject
     SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "Simulation_addParameterDistribution" "', argument " "5"" of type '" "double""'");
   } 
   arg5 = static_cast< double >(val5);
-  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_Limits,  0  | 0);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_RealLimits,  0  | 0);
   if (!SWIG_IsOK(res6)) {
-    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "Simulation_addParameterDistribution" "', argument " "6"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "Simulation_addParameterDistribution" "', argument " "6"" of type '" "RealLimits const &""'"); 
   }
   if (!argp6) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Simulation_addParameterDistribution" "', argument " "6"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Simulation_addParameterDistribution" "', argument " "6"" of type '" "RealLimits const &""'"); 
   }
-  arg6 = reinterpret_cast< Limits * >(argp6);
-  (arg1)->addParameterDistribution((std::string const &)*arg2,(IDistribution1D const &)*arg3,arg4,arg5,(Limits const &)*arg6);
+  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;
@@ -68604,14 +68734,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Simulation_addParameterDistribution(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[7] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 6) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -68702,7 +68832,7 @@ SWIGINTERN PyObject *_wrap_Simulation_addParameterDistribution(PyObject *self, P
               _v = SWIG_CheckState(res);
             }
             if (_v) {
-              int res = SWIG_ConvertPtr(argv[5], 0, SWIGTYPE_p_Limits, 0);
+              int res = SWIG_ConvertPtr(argv[5], 0, SWIGTYPE_p_RealLimits, 0);
               _v = SWIG_CheckState(res);
               if (_v) {
                 return _wrap_Simulation_addParameterDistribution__SWIG_0(self, args);
@@ -68717,7 +68847,7 @@ SWIGINTERN PyObject *_wrap_Simulation_addParameterDistribution(PyObject *self, P
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'Simulation_addParameterDistribution'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    Simulation::addParameterDistribution(std::string const &,IDistribution1D const &,size_t,double,Limits const &)\n"
+    "    Simulation::addParameterDistribution(std::string const &,IDistribution1D const &,size_t,double,RealLimits const &)\n"
     "    Simulation::addParameterDistribution(std::string const &,IDistribution1D const &,size_t,double)\n"
     "    Simulation::addParameterDistribution(std::string const &,IDistribution1D const &,size_t)\n"
     "    Simulation::addParameterDistribution(ParameterDistribution const &)\n");
@@ -68825,14 +68955,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Simulation_getOptions(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -69078,14 +69208,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_SimulationOptions_setMonteCarloIntegration(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -69441,14 +69571,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_GISASSimulation(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -69644,14 +69774,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_GISASSimulation_getDetectorIntensity(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -69743,14 +69873,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_GISASSimulation_getIntensityData(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -69866,14 +69996,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_GISASSimulation_getInstrument(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -70196,14 +70326,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_GISASSimulation_setDetectorParameters(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[8] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 7) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -70447,14 +70577,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_GISASSimulation_setAnalyzerProperties(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -70609,14 +70739,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_GISASSimulation_addMask(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -71025,14 +71155,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IHistogram_getGlobalBin(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -71322,14 +71452,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IHistogram_getData(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -71402,14 +71532,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IHistogram_getBinContent(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -71609,14 +71739,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IHistogram_getBinError(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -71738,14 +71868,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IHistogram_getBinAverage(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -71867,14 +71997,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IHistogram_getBinNumberOfEntries(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -72118,14 +72248,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IHistogram_getArray(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -72292,14 +72422,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IHistogram_createOutputData(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -72612,7 +72742,7 @@ SWIGINTERN PyObject *_wrap_new_Histogram1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self
   } 
   arg1 = static_cast< int >(val1);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res2 = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_Histogram1D" "', argument " "2"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
@@ -72683,14 +72813,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_Histogram1D(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -72717,7 +72847,7 @@ SWIGINTERN PyObject *_wrap_new_Histogram1D(PyObject *self, PyObject *args) {
       _v = SWIG_CheckState(res);
     }
     if (_v) {
-      int res = swig::asptr(argv[1], (std::vector<double,std::allocator< double > >**)(0));
+      int res = swig::asptr(argv[1], (std::vector< double,std::allocator< double > >**)(0));
       _v = SWIG_CheckState(res);
       if (_v) {
         return _wrap_new_Histogram1D__SWIG_1(self, args);
@@ -72874,14 +73004,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Histogram1D_fill(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -72946,7 +73076,7 @@ SWIGINTERN PyObject *_wrap_Histogram1D_getBinCenters(PyObject *SWIGUNUSEDPARM(se
   }
   arg1 = reinterpret_cast< Histogram1D * >(argp1);
   result = ((Histogram1D const *)arg1)->getBinCenters();
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -72968,7 +73098,7 @@ SWIGINTERN PyObject *_wrap_Histogram1D_getBinValues(PyObject *SWIGUNUSEDPARM(sel
   }
   arg1 = reinterpret_cast< Histogram1D * >(argp1);
   result = ((Histogram1D const *)arg1)->getBinValues();
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -72990,7 +73120,7 @@ SWIGINTERN PyObject *_wrap_Histogram1D_getBinErrors(PyObject *SWIGUNUSEDPARM(sel
   }
   arg1 = reinterpret_cast< Histogram1D * >(argp1);
   result = ((Histogram1D const *)arg1)->getBinErrors();
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -73245,7 +73375,7 @@ SWIGINTERN PyObject *_wrap_new_Histogram2D__SWIG_1(PyObject *SWIGUNUSEDPARM(self
   } 
   arg1 = static_cast< int >(val1);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res2 = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_Histogram2D" "', argument " "2"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
@@ -73261,7 +73391,7 @@ SWIGINTERN PyObject *_wrap_new_Histogram2D__SWIG_1(PyObject *SWIGUNUSEDPARM(self
   } 
   arg3 = static_cast< int >(val3);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res4 = swig::asptr(obj3, &ptr);
     if (!SWIG_IsOK(res4)) {
       SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_Histogram2D" "', argument " "4"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
@@ -73346,14 +73476,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_Histogram2D(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[7] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 6) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -73384,7 +73514,7 @@ SWIGINTERN PyObject *_wrap_new_Histogram2D(PyObject *self, PyObject *args) {
       _v = SWIG_CheckState(res);
     }
     if (_v) {
-      int res = swig::asptr(argv[1], (std::vector<double,std::allocator< double > >**)(0));
+      int res = swig::asptr(argv[1], (std::vector< double,std::allocator< double > >**)(0));
       _v = SWIG_CheckState(res);
       if (_v) {
         {
@@ -73392,7 +73522,7 @@ SWIGINTERN PyObject *_wrap_new_Histogram2D(PyObject *self, PyObject *args) {
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = swig::asptr(argv[3], (std::vector<double,std::allocator< double > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< double,std::allocator< double > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
             return _wrap_new_Histogram2D__SWIG_1(self, args);
@@ -73587,14 +73717,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Histogram2D_fill(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -73750,14 +73880,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Histogram2D_projectionX(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -73911,14 +74041,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Histogram2D_projectionY(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -74356,14 +74486,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_HomogeneousMaterial(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -74667,14 +74797,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_HomogeneousMagneticMaterial(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -75418,14 +75548,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IDetector2D_setAnalyzerProperties(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -75580,14 +75710,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IDetector2D_addMask(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -76941,14 +77071,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IParticle_setPosition(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -77827,14 +77957,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_RotationZ(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -78493,14 +78623,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_Instrument(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -78591,14 +78721,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Instrument_getBeam(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -78846,14 +78976,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Instrument_getDetector(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -79283,14 +79413,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Instrument_setAnalyzerProperties(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -79456,14 +79586,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Instrument_getDetectorIntensity(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -79612,14 +79742,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IntensityDataFunctions_getRelativeDifference(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -80293,14 +80423,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_InterferenceFunctionRadialParaCrystal(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -80446,14 +80576,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_InterferenceFunctionRadialParaCrystal_to_str(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -80882,14 +81012,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_InterferenceFunction2DLattice(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -81080,14 +81210,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_InterferenceFunction2DLattice_createSquare(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -81181,14 +81311,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_InterferenceFunction2DLattice_createHexagonal(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -81521,14 +81651,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_InterferenceFunction2DParaCrystal(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[6] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 5) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -81754,14 +81884,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_InterferenceFunction2DParaCrystal_to_str(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -81942,14 +82072,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_InterferenceFunction2DParaCrystal_createSquare(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -82184,14 +82314,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_InterferenceFunction2DParaCrystal_createHexagonal(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -82421,7 +82551,7 @@ SWIGINTERN PyObject *_wrap_InterferenceFunction2DParaCrystal_getDomainSizes(PyOb
   }
   arg1 = reinterpret_cast< InterferenceFunction2DParaCrystal * >(argp1);
   result = ((InterferenceFunction2DParaCrystal const *)arg1)->getDomainSizes();
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -83014,14 +83144,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_SphericalDetector(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[7] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 6) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -83578,14 +83708,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_IsGISAXSDetector(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[7] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 6) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -83791,14 +83921,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_Lattice(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -84191,7 +84321,7 @@ SWIGINTERN PyObject *_wrap_Lattice_reciprocalLatticeVectorsWithinRadius(PyObject
   } 
   arg3 = static_cast< double >(val3);
   result = ((Lattice const *)arg1)->reciprocalLatticeVectorsWithinRadius(arg2,arg3);
-  resultobj = swig::from(static_cast< std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > > >(result));
+  resultobj = swig::from(static_cast< std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -84336,14 +84466,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_Lattice1DParameters(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -84852,14 +84982,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_Layer(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -85048,14 +85178,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Layer_to_str(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -85576,14 +85706,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_LayerRoughness(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -86094,14 +86224,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Line_contains(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -86312,14 +86442,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_VerticalLine_contains(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -86552,14 +86682,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_HorizontalLine_contains(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -87155,14 +87285,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Logger_SetLevel(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -87264,14 +87394,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_SetLevel(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -87421,14 +87551,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_MultiLayer_to_str(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -88209,14 +88339,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_OffSpecSimulation(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -88412,14 +88542,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_OffSpecSimulation_getDetectorIntensity(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -88762,14 +88892,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_OffSpecSimulation_setDetectorParameters(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[8] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 7) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -88999,14 +89129,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_OffSpecSimulation_setAnalyzerProperties(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -89280,14 +89410,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IntensityData_addAxis(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[6] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 5) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -89415,14 +89545,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IntensityData_getAxis(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -89583,7 +89713,7 @@ SWIGINTERN PyObject *_wrap_IntensityData_getRawDataVector(PyObject *SWIGUNUSEDPA
   }
   arg1 = reinterpret_cast< OutputData< double > * >(argp1);
   result = ((OutputData< double > const *)arg1)->getRawDataVector();
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -89687,14 +89817,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IntensityData_begin(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -89771,14 +89901,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IntensityData_end(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -89995,7 +90125,7 @@ SWIGINTERN PyObject *_wrap_IntensityData_getAxesBinIndices(PyObject *SWIGUNUSEDP
   } 
   arg2 = static_cast< size_t >(val2);
   result = ((OutputData< double > const *)arg1)->getAxesBinIndices(arg2);
-  resultobj = swig::from(static_cast< std::vector<int,std::allocator< int > > >(result));
+  resultobj = swig::from(static_cast< std::vector< int,std::allocator< int > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -90090,14 +90220,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IntensityData_getAxisBinIndex(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -90169,7 +90299,7 @@ SWIGINTERN PyObject *_wrap_IntensityData_toGlobalIndex(PyObject *SWIGUNUSEDPARM(
   }
   arg1 = reinterpret_cast< OutputData< double > * >(argp1);
   {
-    std::vector<int,std::allocator< int > > *ptr = (std::vector<int,std::allocator< int > > *)0;
+    std::vector< int,std::allocator< int > > *ptr = (std::vector< int,std::allocator< int > > *)0;
     res2 = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IntensityData_toGlobalIndex" "', argument " "2"" of type '" "std::vector< int,std::allocator< int > > const &""'"); 
@@ -90207,7 +90337,7 @@ SWIGINTERN PyObject *_wrap_IntensityData_findGlobalIndex(PyObject *SWIGUNUSEDPAR
   }
   arg1 = reinterpret_cast< OutputData< double > * >(argp1);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res2 = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IntensityData_findGlobalIndex" "', argument " "2"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
@@ -90315,14 +90445,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IntensityData_getAxisValue(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -90400,7 +90530,7 @@ SWIGINTERN PyObject *_wrap_IntensityData_getAxesValues(PyObject *SWIGUNUSEDPARM(
   } 
   arg2 = static_cast< size_t >(val2);
   result = ((OutputData< double > const *)arg1)->getAxesValues(arg2);
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -90495,14 +90625,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IntensityData_getAxisBin(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -90697,7 +90827,7 @@ SWIGINTERN PyObject *_wrap_IntensityData_setRawDataVector(PyObject *SWIGUNUSEDPA
   }
   arg1 = reinterpret_cast< OutputData< double > * >(argp1);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res2 = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IntensityData_setRawDataVector" "', argument " "2"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
@@ -91371,7 +91501,7 @@ SWIGINTERN PyObject *_wrap_new_ParameterDistribution__SWIG_0(PyObject *SWIGUNUSE
   IDistribution1D *arg2 = 0 ;
   size_t arg3 ;
   double arg4 ;
-  Limits *arg5 = 0 ;
+  RealLimits *arg5 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   void *argp2 = 0 ;
   int res2 = 0 ;
@@ -91418,15 +91548,15 @@ SWIGINTERN PyObject *_wrap_new_ParameterDistribution__SWIG_0(PyObject *SWIGUNUSE
     SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "new_ParameterDistribution" "', argument " "4"" of type '" "double""'");
   } 
   arg4 = static_cast< double >(val4);
-  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_Limits,  0  | 0);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_RealLimits,  0  | 0);
   if (!SWIG_IsOK(res5)) {
-    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "new_ParameterDistribution" "', argument " "5"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "new_ParameterDistribution" "', argument " "5"" of type '" "RealLimits const &""'"); 
   }
   if (!argp5) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ParameterDistribution" "', argument " "5"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ParameterDistribution" "', argument " "5"" of type '" "RealLimits const &""'"); 
   }
-  arg5 = reinterpret_cast< Limits * >(argp5);
-  result = (ParameterDistribution *)new ParameterDistribution((std::string const &)*arg1,(IDistribution1D const &)*arg2,arg3,arg4,(Limits const &)*arg5);
+  arg5 = reinterpret_cast< RealLimits * >(argp5);
+  result = (ParameterDistribution *)new ParameterDistribution((std::string const &)*arg1,(IDistribution1D const &)*arg2,arg3,arg4,(RealLimits const &)*arg5);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ParameterDistribution, SWIG_POINTER_NEW |  0 );
   if (SWIG_IsNewObj(res1)) delete arg1;
   return resultobj;
@@ -91639,14 +91769,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_ParameterDistribution(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[6] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 5) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -91718,7 +91848,7 @@ SWIGINTERN PyObject *_wrap_new_ParameterDistribution(PyObject *self, PyObject *a
             _v = SWIG_CheckState(res);
           }
           if (_v) {
-            int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_Limits, 0);
+            int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_RealLimits, 0);
             _v = SWIG_CheckState(res);
             if (_v) {
               return _wrap_new_ParameterDistribution__SWIG_0(self, args);
@@ -91762,7 +91892,7 @@ SWIGINTERN PyObject *_wrap_new_ParameterDistribution(PyObject *self, PyObject *a
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_ParameterDistribution'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    ParameterDistribution::ParameterDistribution(std::string const &,IDistribution1D const &,size_t,double,Limits const &)\n"
+    "    ParameterDistribution::ParameterDistribution(std::string const &,IDistribution1D const &,size_t,double,RealLimits const &)\n"
     "    ParameterDistribution::ParameterDistribution(std::string const &,IDistribution1D const &,size_t,double)\n"
     "    ParameterDistribution::ParameterDistribution(std::string const &,IDistribution1D const &,size_t)\n"
     "    ParameterDistribution::ParameterDistribution(std::string const &,IDistribution1D const &,size_t,double,double)\n"
@@ -91950,7 +92080,7 @@ SWIGINTERN PyObject *_wrap_ParameterDistribution_getLinkedParameterNames(PyObjec
   }
   arg1 = reinterpret_cast< ParameterDistribution * >(argp1);
   result = ((ParameterDistribution const *)arg1)->getLinkedParameterNames();
-  resultobj = swig::from(static_cast< std::vector<std::string,std::allocator< std::string > > >(result));
+  resultobj = swig::from(static_cast< std::vector< std::string,std::allocator< std::string > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -91963,7 +92093,7 @@ SWIGINTERN PyObject *_wrap_ParameterDistribution_getLimits(PyObject *SWIGUNUSEDP
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
-  Limits result;
+  RealLimits result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:ParameterDistribution_getLimits",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ParameterDistribution, 0 |  0 );
@@ -91972,7 +92102,7 @@ SWIGINTERN PyObject *_wrap_ParameterDistribution_getLimits(PyObject *SWIGUNUSEDP
   }
   arg1 = reinterpret_cast< ParameterDistribution * >(argp1);
   result = ((ParameterDistribution const *)arg1)->getLimits();
-  resultobj = SWIG_NewPointerObj((new Limits(static_cast< const Limits& >(result))), SWIGTYPE_p_Limits, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_NewPointerObj((new RealLimits(static_cast< const RealLimits& >(result))), SWIGTYPE_p_RealLimits, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -92371,14 +92501,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_ParameterPool_getParameter(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -92586,7 +92716,7 @@ SWIGINTERN PyObject *_wrap_ParameterPool_getParameterNames(PyObject *SWIGUNUSEDP
   }
   arg1 = reinterpret_cast< ParameterPool * >(argp1);
   result = ((ParameterPool const *)arg1)->getParameterNames();
-  resultobj = swig::from(static_cast< std::vector<std::string,std::allocator< std::string > > >(result));
+  resultobj = swig::from(static_cast< std::vector< std::string,std::allocator< std::string > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -92725,14 +92855,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_Particle(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -92915,14 +93045,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Particle_to_str(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -93337,7 +93467,7 @@ SWIGINTERN PyObject *_wrap_new_ParticleComposition__SWIG_3(PyObject *SWIGUNUSEDP
   }
   arg1 = reinterpret_cast< IParticle * >(argp1);
   {
-    std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *ptr = (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *)0;
+    std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *ptr = (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *)0;
     int res = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_ParticleComposition" "', argument " "2"" of type '" "std::vector< kvector_t,std::allocator< kvector_t > >""'"); 
@@ -93354,14 +93484,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_ParticleComposition(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -93393,7 +93523,7 @@ SWIGINTERN PyObject *_wrap_new_ParticleComposition(PyObject *self, PyObject *arg
     int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_IParticle, 0);
     _v = SWIG_CheckState(res);
     if (_v) {
-      int res = swig::asptr(argv[1], (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
+      int res = swig::asptr(argv[1], (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > >**)(0));
       _v = SWIG_CheckState(res);
       if (_v) {
         return _wrap_new_ParticleComposition__SWIG_3(self, args);
@@ -93591,14 +93721,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_ParticleComposition_addParticle(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -93670,7 +93800,7 @@ SWIGINTERN PyObject *_wrap_ParticleComposition_addParticles(PyObject *SWIGUNUSED
   }
   arg2 = reinterpret_cast< IParticle * >(argp2);
   {
-    std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *ptr = (std::vector<BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *)0;
+    std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *ptr = (std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *)0;
     int res = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "ParticleComposition_addParticles" "', argument " "3"" of type '" "std::vector< kvector_t,std::allocator< kvector_t > >""'"); 
@@ -93979,14 +94109,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_ParticleCoreShell(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -94449,14 +94579,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_ParticleDistribution_to_str(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -94749,14 +94879,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_ParticleLayout(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -95097,14 +95227,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_ParticleLayout_addParticle(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[6] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 5) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -95434,7 +95564,7 @@ SWIGINTERN PyObject *_wrap_new_Polygon__SWIG_0(PyObject *SWIGUNUSEDPARM(self), P
   
   if (!PyArg_ParseTuple(args,(char *)"OO:new_Polygon",&obj0,&obj1)) SWIG_fail;
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Polygon" "', argument " "1"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
@@ -95445,7 +95575,7 @@ SWIGINTERN PyObject *_wrap_new_Polygon__SWIG_0(PyObject *SWIGUNUSEDPARM(self), P
     arg1 = ptr;
   }
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res2 = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_Polygon" "', argument " "2"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
@@ -95476,7 +95606,7 @@ SWIGINTERN PyObject *_wrap_new_Polygon__SWIG_1(PyObject *SWIGUNUSEDPARM(self), P
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_Polygon",&obj0)) SWIG_fail;
   {
-    std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *ptr = (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *)0;
+    std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *ptr = (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Polygon" "', argument " "1"" of type '" "std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &""'"); 
@@ -95519,14 +95649,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_Polygon(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -95541,7 +95671,7 @@ SWIGINTERN PyObject *_wrap_new_Polygon(PyObject *self, PyObject *args) {
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_Polygon__SWIG_1(self, args);
@@ -95549,10 +95679,10 @@ SWIGINTERN PyObject *_wrap_new_Polygon(PyObject *self, PyObject *args) {
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      int res = swig::asptr(argv[1], (std::vector<double,std::allocator< double > >**)(0));
+      int res = swig::asptr(argv[1], (std::vector< double,std::allocator< double > >**)(0));
       _v = SWIG_CheckState(res);
       if (_v) {
         return _wrap_new_Polygon__SWIG_0(self, args);
@@ -95700,14 +95830,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Polygon_contains(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -95838,7 +95968,7 @@ SWIGINTERN PyObject *_wrap_new_RealParameter__SWIG_0(PyObject *SWIGUNUSEDPARM(se
   std::string *arg1 = 0 ;
   ParameterPool *arg2 = (ParameterPool *) 0 ;
   double *arg3 = (double *) 0 ;
-  Limits *arg4 = 0 ;
+  RealLimits *arg4 = 0 ;
   Attributes *arg5 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   void *argp2 = 0 ;
@@ -95878,14 +96008,14 @@ SWIGINTERN PyObject *_wrap_new_RealParameter__SWIG_0(PyObject *SWIGUNUSEDPARM(se
     SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_RealParameter" "', argument " "3"" of type '" "double volatile *""'"); 
   }
   arg3 = reinterpret_cast< double * >(argp3);
-  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_Limits,  0  | 0);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_RealLimits,  0  | 0);
   if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_RealParameter" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_RealParameter" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
   if (!argp4) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_RealParameter" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_RealParameter" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
-  arg4 = reinterpret_cast< Limits * >(argp4);
+  arg4 = reinterpret_cast< RealLimits * >(argp4);
   res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_Attributes,  0  | 0);
   if (!SWIG_IsOK(res5)) {
     SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "new_RealParameter" "', argument " "5"" of type '" "Attributes const &""'"); 
@@ -95894,7 +96024,7 @@ SWIGINTERN PyObject *_wrap_new_RealParameter__SWIG_0(PyObject *SWIGUNUSEDPARM(se
     SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_RealParameter" "', argument " "5"" of type '" "Attributes const &""'"); 
   }
   arg5 = reinterpret_cast< Attributes * >(argp5);
-  result = (RealParameter *)new RealParameter((std::string const &)*arg1,arg2,(double volatile *)arg3,(Limits const &)*arg4,(Attributes const &)*arg5);
+  result = (RealParameter *)new RealParameter((std::string const &)*arg1,arg2,(double volatile *)arg3,(RealLimits const &)*arg4,(Attributes const &)*arg5);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_RealParameter, SWIG_POINTER_NEW |  0 );
   if (SWIG_IsNewObj(res1)) delete arg1;
   return resultobj;
@@ -95909,7 +96039,7 @@ SWIGINTERN PyObject *_wrap_new_RealParameter__SWIG_1(PyObject *SWIGUNUSEDPARM(se
   std::string *arg1 = 0 ;
   ParameterPool *arg2 = (ParameterPool *) 0 ;
   double *arg3 = (double *) 0 ;
-  Limits *arg4 = 0 ;
+  RealLimits *arg4 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   void *argp2 = 0 ;
   int res2 = 0 ;
@@ -95945,15 +96075,15 @@ SWIGINTERN PyObject *_wrap_new_RealParameter__SWIG_1(PyObject *SWIGUNUSEDPARM(se
     SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_RealParameter" "', argument " "3"" of type '" "double volatile *""'"); 
   }
   arg3 = reinterpret_cast< double * >(argp3);
-  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_Limits,  0  | 0);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_RealLimits,  0  | 0);
   if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_RealParameter" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_RealParameter" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
   if (!argp4) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_RealParameter" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_RealParameter" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
-  arg4 = reinterpret_cast< Limits * >(argp4);
-  result = (RealParameter *)new RealParameter((std::string const &)*arg1,arg2,(double volatile *)arg3,(Limits const &)*arg4);
+  arg4 = reinterpret_cast< RealLimits * >(argp4);
+  result = (RealParameter *)new RealParameter((std::string const &)*arg1,arg2,(double volatile *)arg3,(RealLimits const &)*arg4);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_RealParameter, SWIG_POINTER_NEW |  0 );
   if (SWIG_IsNewObj(res1)) delete arg1;
   return resultobj;
@@ -96077,14 +96207,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_RealParameter(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[6] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 5) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -96139,7 +96269,7 @@ SWIGINTERN PyObject *_wrap_new_RealParameter(PyObject *self, PyObject *args) {
         int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_double, 0);
         _v = SWIG_CheckState(res);
         if (_v) {
-          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_Limits, 0);
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_RealLimits, 0);
           _v = SWIG_CheckState(res);
           if (_v) {
             return _wrap_new_RealParameter__SWIG_1(self, args);
@@ -96161,7 +96291,7 @@ SWIGINTERN PyObject *_wrap_new_RealParameter(PyObject *self, PyObject *args) {
         int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_double, 0);
         _v = SWIG_CheckState(res);
         if (_v) {
-          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_Limits, 0);
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_RealLimits, 0);
           _v = SWIG_CheckState(res);
           if (_v) {
             int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_Attributes, 0);
@@ -96178,8 +96308,8 @@ SWIGINTERN PyObject *_wrap_new_RealParameter(PyObject *self, PyObject *args) {
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_RealParameter'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    RealParameter::RealParameter(std::string const &,ParameterPool *,double volatile *,Limits const &,Attributes const &)\n"
-    "    RealParameter::RealParameter(std::string const &,ParameterPool *,double volatile *,Limits const &)\n"
+    "    RealParameter::RealParameter(std::string const &,ParameterPool *,double volatile *,RealLimits const &,Attributes const &)\n"
+    "    RealParameter::RealParameter(std::string const &,ParameterPool *,double volatile *,RealLimits const &)\n"
     "    RealParameter::RealParameter(std::string const &,ParameterPool *,double volatile *)\n"
     "    RealParameter::RealParameter(RealParameter const &)\n"
     "    RealParameter::RealParameter(std::string const &,RealParameter const &)\n");
@@ -96248,14 +96378,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_RealParameter_clone(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -96427,7 +96557,7 @@ fail:
 SWIGINTERN PyObject *_wrap_RealParameter_setLimits(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   RealParameter *arg1 = (RealParameter *) 0 ;
-  Limits *arg2 = 0 ;
+  RealLimits *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -96442,15 +96572,15 @@ SWIGINTERN PyObject *_wrap_RealParameter_setLimits(PyObject *SWIGUNUSEDPARM(self
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RealParameter_setLimits" "', argument " "1"" of type '" "RealParameter *""'"); 
   }
   arg1 = reinterpret_cast< RealParameter * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Limits,  0  | 0);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_RealLimits,  0  | 0);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "RealParameter_setLimits" "', argument " "2"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "RealParameter_setLimits" "', argument " "2"" of type '" "RealLimits const &""'"); 
   }
   if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "RealParameter_setLimits" "', argument " "2"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "RealParameter_setLimits" "', argument " "2"" of type '" "RealLimits const &""'"); 
   }
-  arg2 = reinterpret_cast< Limits * >(argp2);
-  result = (RealParameter *) &(arg1)->setLimits((Limits const &)*arg2);
+  arg2 = reinterpret_cast< RealLimits * >(argp2);
+  result = (RealParameter *) &(arg1)->setLimits((RealLimits const &)*arg2);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_RealParameter, 0 |  0 );
   return resultobj;
 fail:
@@ -96464,7 +96594,7 @@ SWIGINTERN PyObject *_wrap_RealParameter_getLimits(PyObject *SWIGUNUSEDPARM(self
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
-  Limits result;
+  RealLimits result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:RealParameter_getLimits",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_RealParameter, 0 |  0 );
@@ -96473,7 +96603,7 @@ SWIGINTERN PyObject *_wrap_RealParameter_getLimits(PyObject *SWIGUNUSEDPARM(self
   }
   arg1 = reinterpret_cast< RealParameter * >(argp1);
   result = ((RealParameter const *)arg1)->getLimits();
-  resultobj = SWIG_NewPointerObj((new Limits(static_cast< const Limits& >(result))), SWIGTYPE_p_Limits, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_NewPointerObj((new RealLimits(static_cast< const RealLimits& >(result))), SWIGTYPE_p_RealLimits, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -96840,14 +96970,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Rectangle_contains(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -97112,14 +97242,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_RectangularDetector(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -97375,14 +97505,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_RectangularDetector_setPosition(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[6] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 5) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -97664,14 +97794,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_RectangularDetector_setPerpendicularToReflectedBeam(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -98641,14 +98771,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_SpecularSimulation(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -98967,14 +99097,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_SpecularSimulation_setBeamParameters(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[6] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 5) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -99122,14 +99252,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_SpecularSimulation_setEvanescentWaveAxis(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -99229,7 +99359,7 @@ SWIGINTERN PyObject *_wrap_SpecularSimulation_getScalarR(PyObject *SWIGUNUSEDPAR
   } 
   arg2 = static_cast< size_t >(val2);
   result = ((SpecularSimulation const *)arg1)->getScalarR(arg2);
-  resultobj = swig::from(static_cast< std::vector<std::complex< double >,std::allocator< std::complex< double > > > >(result));
+  resultobj = swig::from(static_cast< std::vector< std::complex< double >,std::allocator< std::complex< double > > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -99260,7 +99390,7 @@ SWIGINTERN PyObject *_wrap_SpecularSimulation_getScalarT(PyObject *SWIGUNUSEDPAR
   } 
   arg2 = static_cast< size_t >(val2);
   result = ((SpecularSimulation const *)arg1)->getScalarT(arg2);
-  resultobj = swig::from(static_cast< std::vector<std::complex< double >,std::allocator< std::complex< double > > > >(result));
+  resultobj = swig::from(static_cast< std::vector< std::complex< double >,std::allocator< std::complex< double > > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -99291,7 +99421,7 @@ SWIGINTERN PyObject *_wrap_SpecularSimulation_getScalarKz(PyObject *SWIGUNUSEDPA
   } 
   arg2 = static_cast< size_t >(val2);
   result = ((SpecularSimulation const *)arg1)->getScalarKz(arg2);
-  resultobj = swig::from(static_cast< std::vector<std::complex< double >,std::allocator< std::complex< double > > > >(result));
+  resultobj = swig::from(static_cast< std::vector< std::complex< double >,std::allocator< std::complex< double > > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -99803,14 +99933,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_SampleBuilderFactory_registerItem(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -100134,14 +100264,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_SimulationFactory_registerItem(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -100321,11 +100451,10 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"vdouble1d_t___nonzero__", _wrap_vdouble1d_t___nonzero__, METH_VARARGS, (char *)"vdouble1d_t___nonzero__(vdouble1d_t self) -> bool"},
 	 { (char *)"vdouble1d_t___bool__", _wrap_vdouble1d_t___bool__, METH_VARARGS, (char *)"vdouble1d_t___bool__(vdouble1d_t self) -> bool"},
 	 { (char *)"vdouble1d_t___len__", _wrap_vdouble1d_t___len__, METH_VARARGS, (char *)"vdouble1d_t___len__(vdouble1d_t self) -> std::vector< double >::size_type"},
-	 { (char *)"vdouble1d_t_pop", _wrap_vdouble1d_t_pop, METH_VARARGS, (char *)"vdouble1d_t_pop(vdouble1d_t self) -> std::vector< double >::value_type"},
 	 { (char *)"vdouble1d_t___getslice__", _wrap_vdouble1d_t___getslice__, METH_VARARGS, (char *)"vdouble1d_t___getslice__(vdouble1d_t self, std::vector< double >::difference_type i, std::vector< double >::difference_type j) -> vdouble1d_t"},
 	 { (char *)"vdouble1d_t___setslice__", _wrap_vdouble1d_t___setslice__, METH_VARARGS, (char *)"\n"
-		"__setslice__(std::vector< double >::difference_type i, std::vector< double >::difference_type j, vdouble1d_t v)\n"
-		"vdouble1d_t___setslice__(vdouble1d_t self, std::vector< double >::difference_type i, std::vector< double >::difference_type j)\n"
+		"__setslice__(std::vector< double >::difference_type i, std::vector< double >::difference_type j)\n"
+		"vdouble1d_t___setslice__(vdouble1d_t self, std::vector< double >::difference_type i, std::vector< double >::difference_type j, vdouble1d_t v)\n"
 		""},
 	 { (char *)"vdouble1d_t___delslice__", _wrap_vdouble1d_t___delslice__, METH_VARARGS, (char *)"vdouble1d_t___delslice__(vdouble1d_t self, std::vector< double >::difference_type i, std::vector< double >::difference_type j)"},
 	 { (char *)"vdouble1d_t___delitem__", _wrap_vdouble1d_t___delitem__, METH_VARARGS, (char *)"\n"
@@ -100341,16 +100470,17 @@ static PyMethodDef SwigMethods[] = {
 		"__setitem__(PySliceObject * slice)\n"
 		"vdouble1d_t___setitem__(vdouble1d_t self, std::vector< double >::difference_type i, std::vector< double >::value_type const & x)\n"
 		""},
+	 { (char *)"vdouble1d_t_pop", _wrap_vdouble1d_t_pop, METH_VARARGS, (char *)"vdouble1d_t_pop(vdouble1d_t self) -> std::vector< double >::value_type"},
 	 { (char *)"vdouble1d_t_append", _wrap_vdouble1d_t_append, METH_VARARGS, (char *)"vdouble1d_t_append(vdouble1d_t self, std::vector< double >::value_type const & x)"},
 	 { (char *)"vdouble1d_t_empty", _wrap_vdouble1d_t_empty, METH_VARARGS, (char *)"vdouble1d_t_empty(vdouble1d_t self) -> bool"},
 	 { (char *)"vdouble1d_t_size", _wrap_vdouble1d_t_size, METH_VARARGS, (char *)"vdouble1d_t_size(vdouble1d_t self) -> std::vector< double >::size_type"},
-	 { (char *)"vdouble1d_t_clear", _wrap_vdouble1d_t_clear, METH_VARARGS, (char *)"vdouble1d_t_clear(vdouble1d_t self)"},
 	 { (char *)"vdouble1d_t_swap", _wrap_vdouble1d_t_swap, METH_VARARGS, (char *)"vdouble1d_t_swap(vdouble1d_t self, vdouble1d_t v)"},
-	 { (char *)"vdouble1d_t_get_allocator", _wrap_vdouble1d_t_get_allocator, METH_VARARGS, (char *)"vdouble1d_t_get_allocator(vdouble1d_t self) -> std::vector< double >::allocator_type"},
 	 { (char *)"vdouble1d_t_begin", _wrap_vdouble1d_t_begin, METH_VARARGS, (char *)"vdouble1d_t_begin(vdouble1d_t self) -> std::vector< double >::iterator"},
 	 { (char *)"vdouble1d_t_end", _wrap_vdouble1d_t_end, METH_VARARGS, (char *)"vdouble1d_t_end(vdouble1d_t self) -> std::vector< double >::iterator"},
 	 { (char *)"vdouble1d_t_rbegin", _wrap_vdouble1d_t_rbegin, METH_VARARGS, (char *)"vdouble1d_t_rbegin(vdouble1d_t self) -> std::vector< double >::reverse_iterator"},
 	 { (char *)"vdouble1d_t_rend", _wrap_vdouble1d_t_rend, METH_VARARGS, (char *)"vdouble1d_t_rend(vdouble1d_t self) -> std::vector< double >::reverse_iterator"},
+	 { (char *)"vdouble1d_t_clear", _wrap_vdouble1d_t_clear, METH_VARARGS, (char *)"vdouble1d_t_clear(vdouble1d_t self)"},
+	 { (char *)"vdouble1d_t_get_allocator", _wrap_vdouble1d_t_get_allocator, METH_VARARGS, (char *)"vdouble1d_t_get_allocator(vdouble1d_t self) -> std::vector< double >::allocator_type"},
 	 { (char *)"vdouble1d_t_pop_back", _wrap_vdouble1d_t_pop_back, METH_VARARGS, (char *)"vdouble1d_t_pop_back(vdouble1d_t self)"},
 	 { (char *)"vdouble1d_t_erase", _wrap_vdouble1d_t_erase, METH_VARARGS, (char *)"\n"
 		"erase(std::vector< double >::iterator pos) -> std::vector< double >::iterator\n"
@@ -100382,11 +100512,10 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"vdouble2d_t___nonzero__", _wrap_vdouble2d_t___nonzero__, METH_VARARGS, (char *)"vdouble2d_t___nonzero__(vdouble2d_t self) -> bool"},
 	 { (char *)"vdouble2d_t___bool__", _wrap_vdouble2d_t___bool__, METH_VARARGS, (char *)"vdouble2d_t___bool__(vdouble2d_t self) -> bool"},
 	 { (char *)"vdouble2d_t___len__", _wrap_vdouble2d_t___len__, METH_VARARGS, (char *)"vdouble2d_t___len__(vdouble2d_t self) -> std::vector< std::vector< double > >::size_type"},
-	 { (char *)"vdouble2d_t_pop", _wrap_vdouble2d_t_pop, METH_VARARGS, (char *)"vdouble2d_t_pop(vdouble2d_t self) -> vdouble1d_t"},
 	 { (char *)"vdouble2d_t___getslice__", _wrap_vdouble2d_t___getslice__, METH_VARARGS, (char *)"vdouble2d_t___getslice__(vdouble2d_t self, std::vector< std::vector< double > >::difference_type i, std::vector< std::vector< double > >::difference_type j) -> vdouble2d_t"},
 	 { (char *)"vdouble2d_t___setslice__", _wrap_vdouble2d_t___setslice__, METH_VARARGS, (char *)"\n"
-		"__setslice__(std::vector< std::vector< double > >::difference_type i, std::vector< std::vector< double > >::difference_type j, vdouble2d_t v)\n"
-		"vdouble2d_t___setslice__(vdouble2d_t self, std::vector< std::vector< double > >::difference_type i, std::vector< std::vector< double > >::difference_type j)\n"
+		"__setslice__(std::vector< std::vector< double > >::difference_type i, std::vector< std::vector< double > >::difference_type j)\n"
+		"vdouble2d_t___setslice__(vdouble2d_t self, std::vector< std::vector< double > >::difference_type i, std::vector< std::vector< double > >::difference_type j, vdouble2d_t v)\n"
 		""},
 	 { (char *)"vdouble2d_t___delslice__", _wrap_vdouble2d_t___delslice__, METH_VARARGS, (char *)"vdouble2d_t___delslice__(vdouble2d_t self, std::vector< std::vector< double > >::difference_type i, std::vector< std::vector< double > >::difference_type j)"},
 	 { (char *)"vdouble2d_t___delitem__", _wrap_vdouble2d_t___delitem__, METH_VARARGS, (char *)"\n"
@@ -100402,16 +100531,17 @@ static PyMethodDef SwigMethods[] = {
 		"__setitem__(PySliceObject * slice)\n"
 		"vdouble2d_t___setitem__(vdouble2d_t self, std::vector< std::vector< double > >::difference_type i, vdouble1d_t x)\n"
 		""},
+	 { (char *)"vdouble2d_t_pop", _wrap_vdouble2d_t_pop, METH_VARARGS, (char *)"vdouble2d_t_pop(vdouble2d_t self) -> vdouble1d_t"},
 	 { (char *)"vdouble2d_t_append", _wrap_vdouble2d_t_append, METH_VARARGS, (char *)"vdouble2d_t_append(vdouble2d_t self, vdouble1d_t x)"},
 	 { (char *)"vdouble2d_t_empty", _wrap_vdouble2d_t_empty, METH_VARARGS, (char *)"vdouble2d_t_empty(vdouble2d_t self) -> bool"},
 	 { (char *)"vdouble2d_t_size", _wrap_vdouble2d_t_size, METH_VARARGS, (char *)"vdouble2d_t_size(vdouble2d_t self) -> std::vector< std::vector< double > >::size_type"},
-	 { (char *)"vdouble2d_t_clear", _wrap_vdouble2d_t_clear, METH_VARARGS, (char *)"vdouble2d_t_clear(vdouble2d_t self)"},
 	 { (char *)"vdouble2d_t_swap", _wrap_vdouble2d_t_swap, METH_VARARGS, (char *)"vdouble2d_t_swap(vdouble2d_t self, vdouble2d_t v)"},
-	 { (char *)"vdouble2d_t_get_allocator", _wrap_vdouble2d_t_get_allocator, METH_VARARGS, (char *)"vdouble2d_t_get_allocator(vdouble2d_t self) -> std::vector< std::vector< double > >::allocator_type"},
 	 { (char *)"vdouble2d_t_begin", _wrap_vdouble2d_t_begin, METH_VARARGS, (char *)"vdouble2d_t_begin(vdouble2d_t self) -> std::vector< std::vector< double > >::iterator"},
 	 { (char *)"vdouble2d_t_end", _wrap_vdouble2d_t_end, METH_VARARGS, (char *)"vdouble2d_t_end(vdouble2d_t self) -> std::vector< std::vector< double > >::iterator"},
 	 { (char *)"vdouble2d_t_rbegin", _wrap_vdouble2d_t_rbegin, METH_VARARGS, (char *)"vdouble2d_t_rbegin(vdouble2d_t self) -> std::vector< std::vector< double > >::reverse_iterator"},
 	 { (char *)"vdouble2d_t_rend", _wrap_vdouble2d_t_rend, METH_VARARGS, (char *)"vdouble2d_t_rend(vdouble2d_t self) -> std::vector< std::vector< double > >::reverse_iterator"},
+	 { (char *)"vdouble2d_t_clear", _wrap_vdouble2d_t_clear, METH_VARARGS, (char *)"vdouble2d_t_clear(vdouble2d_t self)"},
+	 { (char *)"vdouble2d_t_get_allocator", _wrap_vdouble2d_t_get_allocator, METH_VARARGS, (char *)"vdouble2d_t_get_allocator(vdouble2d_t self) -> std::vector< std::vector< double > >::allocator_type"},
 	 { (char *)"vdouble2d_t_pop_back", _wrap_vdouble2d_t_pop_back, METH_VARARGS, (char *)"vdouble2d_t_pop_back(vdouble2d_t self)"},
 	 { (char *)"vdouble2d_t_erase", _wrap_vdouble2d_t_erase, METH_VARARGS, (char *)"\n"
 		"erase(std::vector< std::vector< double > >::iterator pos) -> std::vector< std::vector< double > >::iterator\n"
@@ -100443,11 +100573,10 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"vector_integer_t___nonzero__", _wrap_vector_integer_t___nonzero__, METH_VARARGS, (char *)"vector_integer_t___nonzero__(vector_integer_t self) -> bool"},
 	 { (char *)"vector_integer_t___bool__", _wrap_vector_integer_t___bool__, METH_VARARGS, (char *)"vector_integer_t___bool__(vector_integer_t self) -> bool"},
 	 { (char *)"vector_integer_t___len__", _wrap_vector_integer_t___len__, METH_VARARGS, (char *)"vector_integer_t___len__(vector_integer_t self) -> std::vector< int >::size_type"},
-	 { (char *)"vector_integer_t_pop", _wrap_vector_integer_t_pop, METH_VARARGS, (char *)"vector_integer_t_pop(vector_integer_t self) -> std::vector< int >::value_type"},
 	 { (char *)"vector_integer_t___getslice__", _wrap_vector_integer_t___getslice__, METH_VARARGS, (char *)"vector_integer_t___getslice__(vector_integer_t self, std::vector< int >::difference_type i, std::vector< int >::difference_type j) -> vector_integer_t"},
 	 { (char *)"vector_integer_t___setslice__", _wrap_vector_integer_t___setslice__, METH_VARARGS, (char *)"\n"
-		"__setslice__(std::vector< int >::difference_type i, std::vector< int >::difference_type j, vector_integer_t v)\n"
-		"vector_integer_t___setslice__(vector_integer_t self, std::vector< int >::difference_type i, std::vector< int >::difference_type j)\n"
+		"__setslice__(std::vector< int >::difference_type i, std::vector< int >::difference_type j)\n"
+		"vector_integer_t___setslice__(vector_integer_t self, std::vector< int >::difference_type i, std::vector< int >::difference_type j, vector_integer_t v)\n"
 		""},
 	 { (char *)"vector_integer_t___delslice__", _wrap_vector_integer_t___delslice__, METH_VARARGS, (char *)"vector_integer_t___delslice__(vector_integer_t self, std::vector< int >::difference_type i, std::vector< int >::difference_type j)"},
 	 { (char *)"vector_integer_t___delitem__", _wrap_vector_integer_t___delitem__, METH_VARARGS, (char *)"\n"
@@ -100463,16 +100592,17 @@ static PyMethodDef SwigMethods[] = {
 		"__setitem__(PySliceObject * slice)\n"
 		"vector_integer_t___setitem__(vector_integer_t self, std::vector< int >::difference_type i, std::vector< int >::value_type const & x)\n"
 		""},
+	 { (char *)"vector_integer_t_pop", _wrap_vector_integer_t_pop, METH_VARARGS, (char *)"vector_integer_t_pop(vector_integer_t self) -> std::vector< int >::value_type"},
 	 { (char *)"vector_integer_t_append", _wrap_vector_integer_t_append, METH_VARARGS, (char *)"vector_integer_t_append(vector_integer_t self, std::vector< int >::value_type const & x)"},
 	 { (char *)"vector_integer_t_empty", _wrap_vector_integer_t_empty, METH_VARARGS, (char *)"vector_integer_t_empty(vector_integer_t self) -> bool"},
 	 { (char *)"vector_integer_t_size", _wrap_vector_integer_t_size, METH_VARARGS, (char *)"vector_integer_t_size(vector_integer_t self) -> std::vector< int >::size_type"},
-	 { (char *)"vector_integer_t_clear", _wrap_vector_integer_t_clear, METH_VARARGS, (char *)"vector_integer_t_clear(vector_integer_t self)"},
 	 { (char *)"vector_integer_t_swap", _wrap_vector_integer_t_swap, METH_VARARGS, (char *)"vector_integer_t_swap(vector_integer_t self, vector_integer_t v)"},
-	 { (char *)"vector_integer_t_get_allocator", _wrap_vector_integer_t_get_allocator, METH_VARARGS, (char *)"vector_integer_t_get_allocator(vector_integer_t self) -> std::vector< int >::allocator_type"},
 	 { (char *)"vector_integer_t_begin", _wrap_vector_integer_t_begin, METH_VARARGS, (char *)"vector_integer_t_begin(vector_integer_t self) -> std::vector< int >::iterator"},
 	 { (char *)"vector_integer_t_end", _wrap_vector_integer_t_end, METH_VARARGS, (char *)"vector_integer_t_end(vector_integer_t self) -> std::vector< int >::iterator"},
 	 { (char *)"vector_integer_t_rbegin", _wrap_vector_integer_t_rbegin, METH_VARARGS, (char *)"vector_integer_t_rbegin(vector_integer_t self) -> std::vector< int >::reverse_iterator"},
 	 { (char *)"vector_integer_t_rend", _wrap_vector_integer_t_rend, METH_VARARGS, (char *)"vector_integer_t_rend(vector_integer_t self) -> std::vector< int >::reverse_iterator"},
+	 { (char *)"vector_integer_t_clear", _wrap_vector_integer_t_clear, METH_VARARGS, (char *)"vector_integer_t_clear(vector_integer_t self)"},
+	 { (char *)"vector_integer_t_get_allocator", _wrap_vector_integer_t_get_allocator, METH_VARARGS, (char *)"vector_integer_t_get_allocator(vector_integer_t self) -> std::vector< int >::allocator_type"},
 	 { (char *)"vector_integer_t_pop_back", _wrap_vector_integer_t_pop_back, METH_VARARGS, (char *)"vector_integer_t_pop_back(vector_integer_t self)"},
 	 { (char *)"vector_integer_t_erase", _wrap_vector_integer_t_erase, METH_VARARGS, (char *)"\n"
 		"erase(std::vector< int >::iterator pos) -> std::vector< int >::iterator\n"
@@ -100504,11 +100634,10 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"vector_longinteger_t___nonzero__", _wrap_vector_longinteger_t___nonzero__, METH_VARARGS, (char *)"vector_longinteger_t___nonzero__(vector_longinteger_t self) -> bool"},
 	 { (char *)"vector_longinteger_t___bool__", _wrap_vector_longinteger_t___bool__, METH_VARARGS, (char *)"vector_longinteger_t___bool__(vector_longinteger_t self) -> bool"},
 	 { (char *)"vector_longinteger_t___len__", _wrap_vector_longinteger_t___len__, METH_VARARGS, (char *)"vector_longinteger_t___len__(vector_longinteger_t self) -> std::vector< unsigned long >::size_type"},
-	 { (char *)"vector_longinteger_t_pop", _wrap_vector_longinteger_t_pop, METH_VARARGS, (char *)"vector_longinteger_t_pop(vector_longinteger_t self) -> std::vector< unsigned long >::value_type"},
 	 { (char *)"vector_longinteger_t___getslice__", _wrap_vector_longinteger_t___getslice__, METH_VARARGS, (char *)"vector_longinteger_t___getslice__(vector_longinteger_t self, std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::difference_type j) -> vector_longinteger_t"},
 	 { (char *)"vector_longinteger_t___setslice__", _wrap_vector_longinteger_t___setslice__, METH_VARARGS, (char *)"\n"
-		"__setslice__(std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::difference_type j, vector_longinteger_t v)\n"
-		"vector_longinteger_t___setslice__(vector_longinteger_t self, std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::difference_type j)\n"
+		"__setslice__(std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::difference_type j)\n"
+		"vector_longinteger_t___setslice__(vector_longinteger_t self, std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::difference_type j, vector_longinteger_t v)\n"
 		""},
 	 { (char *)"vector_longinteger_t___delslice__", _wrap_vector_longinteger_t___delslice__, METH_VARARGS, (char *)"vector_longinteger_t___delslice__(vector_longinteger_t self, std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::difference_type j)"},
 	 { (char *)"vector_longinteger_t___delitem__", _wrap_vector_longinteger_t___delitem__, METH_VARARGS, (char *)"\n"
@@ -100524,16 +100653,17 @@ static PyMethodDef SwigMethods[] = {
 		"__setitem__(PySliceObject * slice)\n"
 		"vector_longinteger_t___setitem__(vector_longinteger_t self, std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::value_type const & x)\n"
 		""},
+	 { (char *)"vector_longinteger_t_pop", _wrap_vector_longinteger_t_pop, METH_VARARGS, (char *)"vector_longinteger_t_pop(vector_longinteger_t self) -> std::vector< unsigned long >::value_type"},
 	 { (char *)"vector_longinteger_t_append", _wrap_vector_longinteger_t_append, METH_VARARGS, (char *)"vector_longinteger_t_append(vector_longinteger_t self, std::vector< unsigned long >::value_type const & x)"},
 	 { (char *)"vector_longinteger_t_empty", _wrap_vector_longinteger_t_empty, METH_VARARGS, (char *)"vector_longinteger_t_empty(vector_longinteger_t self) -> bool"},
 	 { (char *)"vector_longinteger_t_size", _wrap_vector_longinteger_t_size, METH_VARARGS, (char *)"vector_longinteger_t_size(vector_longinteger_t self) -> std::vector< unsigned long >::size_type"},
-	 { (char *)"vector_longinteger_t_clear", _wrap_vector_longinteger_t_clear, METH_VARARGS, (char *)"vector_longinteger_t_clear(vector_longinteger_t self)"},
 	 { (char *)"vector_longinteger_t_swap", _wrap_vector_longinteger_t_swap, METH_VARARGS, (char *)"vector_longinteger_t_swap(vector_longinteger_t self, vector_longinteger_t v)"},
-	 { (char *)"vector_longinteger_t_get_allocator", _wrap_vector_longinteger_t_get_allocator, METH_VARARGS, (char *)"vector_longinteger_t_get_allocator(vector_longinteger_t self) -> std::vector< unsigned long >::allocator_type"},
 	 { (char *)"vector_longinteger_t_begin", _wrap_vector_longinteger_t_begin, METH_VARARGS, (char *)"vector_longinteger_t_begin(vector_longinteger_t self) -> std::vector< unsigned long >::iterator"},
 	 { (char *)"vector_longinteger_t_end", _wrap_vector_longinteger_t_end, METH_VARARGS, (char *)"vector_longinteger_t_end(vector_longinteger_t self) -> std::vector< unsigned long >::iterator"},
 	 { (char *)"vector_longinteger_t_rbegin", _wrap_vector_longinteger_t_rbegin, METH_VARARGS, (char *)"vector_longinteger_t_rbegin(vector_longinteger_t self) -> std::vector< unsigned long >::reverse_iterator"},
 	 { (char *)"vector_longinteger_t_rend", _wrap_vector_longinteger_t_rend, METH_VARARGS, (char *)"vector_longinteger_t_rend(vector_longinteger_t self) -> std::vector< unsigned long >::reverse_iterator"},
+	 { (char *)"vector_longinteger_t_clear", _wrap_vector_longinteger_t_clear, METH_VARARGS, (char *)"vector_longinteger_t_clear(vector_longinteger_t self)"},
+	 { (char *)"vector_longinteger_t_get_allocator", _wrap_vector_longinteger_t_get_allocator, METH_VARARGS, (char *)"vector_longinteger_t_get_allocator(vector_longinteger_t self) -> std::vector< unsigned long >::allocator_type"},
 	 { (char *)"vector_longinteger_t_pop_back", _wrap_vector_longinteger_t_pop_back, METH_VARARGS, (char *)"vector_longinteger_t_pop_back(vector_longinteger_t self)"},
 	 { (char *)"vector_longinteger_t_erase", _wrap_vector_longinteger_t_erase, METH_VARARGS, (char *)"\n"
 		"erase(std::vector< unsigned long >::iterator pos) -> std::vector< unsigned long >::iterator\n"
@@ -100565,11 +100695,10 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"vector_complex_t___nonzero__", _wrap_vector_complex_t___nonzero__, METH_VARARGS, (char *)"vector_complex_t___nonzero__(vector_complex_t self) -> bool"},
 	 { (char *)"vector_complex_t___bool__", _wrap_vector_complex_t___bool__, METH_VARARGS, (char *)"vector_complex_t___bool__(vector_complex_t self) -> bool"},
 	 { (char *)"vector_complex_t___len__", _wrap_vector_complex_t___len__, METH_VARARGS, (char *)"vector_complex_t___len__(vector_complex_t self) -> std::vector< std::complex< double > >::size_type"},
-	 { (char *)"vector_complex_t_pop", _wrap_vector_complex_t_pop, METH_VARARGS, (char *)"vector_complex_t_pop(vector_complex_t self) -> std::vector< std::complex< double > >::value_type"},
 	 { (char *)"vector_complex_t___getslice__", _wrap_vector_complex_t___getslice__, METH_VARARGS, (char *)"vector_complex_t___getslice__(vector_complex_t self, std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::difference_type j) -> vector_complex_t"},
 	 { (char *)"vector_complex_t___setslice__", _wrap_vector_complex_t___setslice__, METH_VARARGS, (char *)"\n"
-		"__setslice__(std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::difference_type j, vector_complex_t v)\n"
-		"vector_complex_t___setslice__(vector_complex_t self, std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::difference_type j)\n"
+		"__setslice__(std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::difference_type j)\n"
+		"vector_complex_t___setslice__(vector_complex_t self, std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::difference_type j, vector_complex_t v)\n"
 		""},
 	 { (char *)"vector_complex_t___delslice__", _wrap_vector_complex_t___delslice__, METH_VARARGS, (char *)"vector_complex_t___delslice__(vector_complex_t self, std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::difference_type j)"},
 	 { (char *)"vector_complex_t___delitem__", _wrap_vector_complex_t___delitem__, METH_VARARGS, (char *)"\n"
@@ -100585,16 +100714,17 @@ static PyMethodDef SwigMethods[] = {
 		"__setitem__(PySliceObject * slice)\n"
 		"vector_complex_t___setitem__(vector_complex_t self, std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::value_type const & x)\n"
 		""},
+	 { (char *)"vector_complex_t_pop", _wrap_vector_complex_t_pop, METH_VARARGS, (char *)"vector_complex_t_pop(vector_complex_t self) -> std::vector< std::complex< double > >::value_type"},
 	 { (char *)"vector_complex_t_append", _wrap_vector_complex_t_append, METH_VARARGS, (char *)"vector_complex_t_append(vector_complex_t self, std::vector< std::complex< double > >::value_type const & x)"},
 	 { (char *)"vector_complex_t_empty", _wrap_vector_complex_t_empty, METH_VARARGS, (char *)"vector_complex_t_empty(vector_complex_t self) -> bool"},
 	 { (char *)"vector_complex_t_size", _wrap_vector_complex_t_size, METH_VARARGS, (char *)"vector_complex_t_size(vector_complex_t self) -> std::vector< std::complex< double > >::size_type"},
-	 { (char *)"vector_complex_t_clear", _wrap_vector_complex_t_clear, METH_VARARGS, (char *)"vector_complex_t_clear(vector_complex_t self)"},
 	 { (char *)"vector_complex_t_swap", _wrap_vector_complex_t_swap, METH_VARARGS, (char *)"vector_complex_t_swap(vector_complex_t self, vector_complex_t v)"},
-	 { (char *)"vector_complex_t_get_allocator", _wrap_vector_complex_t_get_allocator, METH_VARARGS, (char *)"vector_complex_t_get_allocator(vector_complex_t self) -> std::vector< std::complex< double > >::allocator_type"},
 	 { (char *)"vector_complex_t_begin", _wrap_vector_complex_t_begin, METH_VARARGS, (char *)"vector_complex_t_begin(vector_complex_t self) -> std::vector< std::complex< double > >::iterator"},
 	 { (char *)"vector_complex_t_end", _wrap_vector_complex_t_end, METH_VARARGS, (char *)"vector_complex_t_end(vector_complex_t self) -> std::vector< std::complex< double > >::iterator"},
 	 { (char *)"vector_complex_t_rbegin", _wrap_vector_complex_t_rbegin, METH_VARARGS, (char *)"vector_complex_t_rbegin(vector_complex_t self) -> std::vector< std::complex< double > >::reverse_iterator"},
 	 { (char *)"vector_complex_t_rend", _wrap_vector_complex_t_rend, METH_VARARGS, (char *)"vector_complex_t_rend(vector_complex_t self) -> std::vector< std::complex< double > >::reverse_iterator"},
+	 { (char *)"vector_complex_t_clear", _wrap_vector_complex_t_clear, METH_VARARGS, (char *)"vector_complex_t_clear(vector_complex_t self)"},
+	 { (char *)"vector_complex_t_get_allocator", _wrap_vector_complex_t_get_allocator, METH_VARARGS, (char *)"vector_complex_t_get_allocator(vector_complex_t self) -> std::vector< std::complex< double > >::allocator_type"},
 	 { (char *)"vector_complex_t_pop_back", _wrap_vector_complex_t_pop_back, METH_VARARGS, (char *)"vector_complex_t_pop_back(vector_complex_t self)"},
 	 { (char *)"vector_complex_t_erase", _wrap_vector_complex_t_erase, METH_VARARGS, (char *)"\n"
 		"erase(std::vector< std::complex< double > >::iterator pos) -> std::vector< std::complex< double > >::iterator\n"
@@ -100626,11 +100756,10 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"vector_string_t___nonzero__", _wrap_vector_string_t___nonzero__, METH_VARARGS, (char *)"vector_string_t___nonzero__(vector_string_t self) -> bool"},
 	 { (char *)"vector_string_t___bool__", _wrap_vector_string_t___bool__, METH_VARARGS, (char *)"vector_string_t___bool__(vector_string_t self) -> bool"},
 	 { (char *)"vector_string_t___len__", _wrap_vector_string_t___len__, METH_VARARGS, (char *)"vector_string_t___len__(vector_string_t self) -> std::vector< std::string >::size_type"},
-	 { (char *)"vector_string_t_pop", _wrap_vector_string_t_pop, METH_VARARGS, (char *)"vector_string_t_pop(vector_string_t self) -> std::vector< std::string >::value_type"},
 	 { (char *)"vector_string_t___getslice__", _wrap_vector_string_t___getslice__, METH_VARARGS, (char *)"vector_string_t___getslice__(vector_string_t self, std::vector< std::string >::difference_type i, std::vector< std::string >::difference_type j) -> vector_string_t"},
 	 { (char *)"vector_string_t___setslice__", _wrap_vector_string_t___setslice__, METH_VARARGS, (char *)"\n"
-		"__setslice__(std::vector< std::string >::difference_type i, std::vector< std::string >::difference_type j, vector_string_t v)\n"
-		"vector_string_t___setslice__(vector_string_t self, std::vector< std::string >::difference_type i, std::vector< std::string >::difference_type j)\n"
+		"__setslice__(std::vector< std::string >::difference_type i, std::vector< std::string >::difference_type j)\n"
+		"vector_string_t___setslice__(vector_string_t self, std::vector< std::string >::difference_type i, std::vector< std::string >::difference_type j, vector_string_t v)\n"
 		""},
 	 { (char *)"vector_string_t___delslice__", _wrap_vector_string_t___delslice__, METH_VARARGS, (char *)"vector_string_t___delslice__(vector_string_t self, std::vector< std::string >::difference_type i, std::vector< std::string >::difference_type j)"},
 	 { (char *)"vector_string_t___delitem__", _wrap_vector_string_t___delitem__, METH_VARARGS, (char *)"\n"
@@ -100646,16 +100775,17 @@ static PyMethodDef SwigMethods[] = {
 		"__setitem__(PySliceObject * slice)\n"
 		"vector_string_t___setitem__(vector_string_t self, std::vector< std::string >::difference_type i, std::vector< std::string >::value_type const & x)\n"
 		""},
+	 { (char *)"vector_string_t_pop", _wrap_vector_string_t_pop, METH_VARARGS, (char *)"vector_string_t_pop(vector_string_t self) -> std::vector< std::string >::value_type"},
 	 { (char *)"vector_string_t_append", _wrap_vector_string_t_append, METH_VARARGS, (char *)"vector_string_t_append(vector_string_t self, std::vector< std::string >::value_type const & x)"},
 	 { (char *)"vector_string_t_empty", _wrap_vector_string_t_empty, METH_VARARGS, (char *)"vector_string_t_empty(vector_string_t self) -> bool"},
 	 { (char *)"vector_string_t_size", _wrap_vector_string_t_size, METH_VARARGS, (char *)"vector_string_t_size(vector_string_t self) -> std::vector< std::string >::size_type"},
-	 { (char *)"vector_string_t_clear", _wrap_vector_string_t_clear, METH_VARARGS, (char *)"vector_string_t_clear(vector_string_t self)"},
 	 { (char *)"vector_string_t_swap", _wrap_vector_string_t_swap, METH_VARARGS, (char *)"vector_string_t_swap(vector_string_t self, vector_string_t v)"},
-	 { (char *)"vector_string_t_get_allocator", _wrap_vector_string_t_get_allocator, METH_VARARGS, (char *)"vector_string_t_get_allocator(vector_string_t self) -> std::vector< std::string >::allocator_type"},
 	 { (char *)"vector_string_t_begin", _wrap_vector_string_t_begin, METH_VARARGS, (char *)"vector_string_t_begin(vector_string_t self) -> std::vector< std::string >::iterator"},
 	 { (char *)"vector_string_t_end", _wrap_vector_string_t_end, METH_VARARGS, (char *)"vector_string_t_end(vector_string_t self) -> std::vector< std::string >::iterator"},
 	 { (char *)"vector_string_t_rbegin", _wrap_vector_string_t_rbegin, METH_VARARGS, (char *)"vector_string_t_rbegin(vector_string_t self) -> std::vector< std::string >::reverse_iterator"},
 	 { (char *)"vector_string_t_rend", _wrap_vector_string_t_rend, METH_VARARGS, (char *)"vector_string_t_rend(vector_string_t self) -> std::vector< std::string >::reverse_iterator"},
+	 { (char *)"vector_string_t_clear", _wrap_vector_string_t_clear, METH_VARARGS, (char *)"vector_string_t_clear(vector_string_t self)"},
+	 { (char *)"vector_string_t_get_allocator", _wrap_vector_string_t_get_allocator, METH_VARARGS, (char *)"vector_string_t_get_allocator(vector_string_t self) -> std::vector< std::string >::allocator_type"},
 	 { (char *)"vector_string_t_pop_back", _wrap_vector_string_t_pop_back, METH_VARARGS, (char *)"vector_string_t_pop_back(vector_string_t self)"},
 	 { (char *)"vector_string_t_erase", _wrap_vector_string_t_erase, METH_VARARGS, (char *)"\n"
 		"erase(std::vector< std::string >::iterator pos) -> std::vector< std::string >::iterator\n"
@@ -100992,11 +101122,10 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"vector_kvector_t___nonzero__", _wrap_vector_kvector_t___nonzero__, METH_VARARGS, (char *)"vector_kvector_t___nonzero__(vector_kvector_t self) -> bool"},
 	 { (char *)"vector_kvector_t___bool__", _wrap_vector_kvector_t___bool__, METH_VARARGS, (char *)"vector_kvector_t___bool__(vector_kvector_t self) -> bool"},
 	 { (char *)"vector_kvector_t___len__", _wrap_vector_kvector_t___len__, METH_VARARGS, (char *)"vector_kvector_t___len__(vector_kvector_t self) -> std::vector< BasicVector3D< double > >::size_type"},
-	 { (char *)"vector_kvector_t_pop", _wrap_vector_kvector_t_pop, METH_VARARGS, (char *)"vector_kvector_t_pop(vector_kvector_t self) -> kvector_t"},
 	 { (char *)"vector_kvector_t___getslice__", _wrap_vector_kvector_t___getslice__, METH_VARARGS, (char *)"vector_kvector_t___getslice__(vector_kvector_t self, std::vector< BasicVector3D< double > >::difference_type i, std::vector< BasicVector3D< double > >::difference_type j) -> vector_kvector_t"},
 	 { (char *)"vector_kvector_t___setslice__", _wrap_vector_kvector_t___setslice__, METH_VARARGS, (char *)"\n"
-		"__setslice__(std::vector< BasicVector3D< double > >::difference_type i, std::vector< BasicVector3D< double > >::difference_type j, vector_kvector_t v)\n"
-		"vector_kvector_t___setslice__(vector_kvector_t self, std::vector< BasicVector3D< double > >::difference_type i, std::vector< BasicVector3D< double > >::difference_type j)\n"
+		"__setslice__(std::vector< BasicVector3D< double > >::difference_type i, std::vector< BasicVector3D< double > >::difference_type j)\n"
+		"vector_kvector_t___setslice__(vector_kvector_t self, std::vector< BasicVector3D< double > >::difference_type i, std::vector< BasicVector3D< double > >::difference_type j, vector_kvector_t v)\n"
 		""},
 	 { (char *)"vector_kvector_t___delslice__", _wrap_vector_kvector_t___delslice__, METH_VARARGS, (char *)"vector_kvector_t___delslice__(vector_kvector_t self, std::vector< BasicVector3D< double > >::difference_type i, std::vector< BasicVector3D< double > >::difference_type j)"},
 	 { (char *)"vector_kvector_t___delitem__", _wrap_vector_kvector_t___delitem__, METH_VARARGS, (char *)"\n"
@@ -101012,16 +101141,17 @@ static PyMethodDef SwigMethods[] = {
 		"__setitem__(PySliceObject * slice)\n"
 		"vector_kvector_t___setitem__(vector_kvector_t self, std::vector< BasicVector3D< double > >::difference_type i, kvector_t x)\n"
 		""},
+	 { (char *)"vector_kvector_t_pop", _wrap_vector_kvector_t_pop, METH_VARARGS, (char *)"vector_kvector_t_pop(vector_kvector_t self) -> kvector_t"},
 	 { (char *)"vector_kvector_t_append", _wrap_vector_kvector_t_append, METH_VARARGS, (char *)"vector_kvector_t_append(vector_kvector_t self, kvector_t x)"},
 	 { (char *)"vector_kvector_t_empty", _wrap_vector_kvector_t_empty, METH_VARARGS, (char *)"vector_kvector_t_empty(vector_kvector_t self) -> bool"},
 	 { (char *)"vector_kvector_t_size", _wrap_vector_kvector_t_size, METH_VARARGS, (char *)"vector_kvector_t_size(vector_kvector_t self) -> std::vector< BasicVector3D< double > >::size_type"},
-	 { (char *)"vector_kvector_t_clear", _wrap_vector_kvector_t_clear, METH_VARARGS, (char *)"vector_kvector_t_clear(vector_kvector_t self)"},
 	 { (char *)"vector_kvector_t_swap", _wrap_vector_kvector_t_swap, METH_VARARGS, (char *)"vector_kvector_t_swap(vector_kvector_t self, vector_kvector_t v)"},
-	 { (char *)"vector_kvector_t_get_allocator", _wrap_vector_kvector_t_get_allocator, METH_VARARGS, (char *)"vector_kvector_t_get_allocator(vector_kvector_t self) -> std::vector< BasicVector3D< double > >::allocator_type"},
 	 { (char *)"vector_kvector_t_begin", _wrap_vector_kvector_t_begin, METH_VARARGS, (char *)"vector_kvector_t_begin(vector_kvector_t self) -> std::vector< BasicVector3D< double > >::iterator"},
 	 { (char *)"vector_kvector_t_end", _wrap_vector_kvector_t_end, METH_VARARGS, (char *)"vector_kvector_t_end(vector_kvector_t self) -> std::vector< BasicVector3D< double > >::iterator"},
 	 { (char *)"vector_kvector_t_rbegin", _wrap_vector_kvector_t_rbegin, METH_VARARGS, (char *)"vector_kvector_t_rbegin(vector_kvector_t self) -> std::vector< BasicVector3D< double > >::reverse_iterator"},
 	 { (char *)"vector_kvector_t_rend", _wrap_vector_kvector_t_rend, METH_VARARGS, (char *)"vector_kvector_t_rend(vector_kvector_t self) -> std::vector< BasicVector3D< double > >::reverse_iterator"},
+	 { (char *)"vector_kvector_t_clear", _wrap_vector_kvector_t_clear, METH_VARARGS, (char *)"vector_kvector_t_clear(vector_kvector_t self)"},
+	 { (char *)"vector_kvector_t_get_allocator", _wrap_vector_kvector_t_get_allocator, METH_VARARGS, (char *)"vector_kvector_t_get_allocator(vector_kvector_t self) -> std::vector< BasicVector3D< double > >::allocator_type"},
 	 { (char *)"vector_kvector_t_pop_back", _wrap_vector_kvector_t_pop_back, METH_VARARGS, (char *)"vector_kvector_t_pop_back(vector_kvector_t self)"},
 	 { (char *)"vector_kvector_t_erase", _wrap_vector_kvector_t_erase, METH_VARARGS, (char *)"\n"
 		"erase(std::vector< BasicVector3D< double > >::iterator pos) -> std::vector< BasicVector3D< double > >::iterator\n"
@@ -101184,11 +101314,10 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"vector_cvector_t___nonzero__", _wrap_vector_cvector_t___nonzero__, METH_VARARGS, (char *)"vector_cvector_t___nonzero__(vector_cvector_t self) -> bool"},
 	 { (char *)"vector_cvector_t___bool__", _wrap_vector_cvector_t___bool__, METH_VARARGS, (char *)"vector_cvector_t___bool__(vector_cvector_t self) -> bool"},
 	 { (char *)"vector_cvector_t___len__", _wrap_vector_cvector_t___len__, METH_VARARGS, (char *)"vector_cvector_t___len__(vector_cvector_t self) -> std::vector< BasicVector3D< std::complex< double > > >::size_type"},
-	 { (char *)"vector_cvector_t_pop", _wrap_vector_cvector_t_pop, METH_VARARGS, (char *)"vector_cvector_t_pop(vector_cvector_t self) -> cvector_t"},
 	 { (char *)"vector_cvector_t___getslice__", _wrap_vector_cvector_t___getslice__, METH_VARARGS, (char *)"vector_cvector_t___getslice__(vector_cvector_t self, std::vector< BasicVector3D< std::complex< double > > >::difference_type i, std::vector< BasicVector3D< std::complex< double > > >::difference_type j) -> vector_cvector_t"},
 	 { (char *)"vector_cvector_t___setslice__", _wrap_vector_cvector_t___setslice__, METH_VARARGS, (char *)"\n"
-		"__setslice__(std::vector< BasicVector3D< std::complex< double > > >::difference_type i, std::vector< BasicVector3D< std::complex< double > > >::difference_type j, vector_cvector_t v)\n"
-		"vector_cvector_t___setslice__(vector_cvector_t self, std::vector< BasicVector3D< std::complex< double > > >::difference_type i, std::vector< BasicVector3D< std::complex< double > > >::difference_type j)\n"
+		"__setslice__(std::vector< BasicVector3D< std::complex< double > > >::difference_type i, std::vector< BasicVector3D< std::complex< double > > >::difference_type j)\n"
+		"vector_cvector_t___setslice__(vector_cvector_t self, std::vector< BasicVector3D< std::complex< double > > >::difference_type i, std::vector< BasicVector3D< std::complex< double > > >::difference_type j, vector_cvector_t v)\n"
 		""},
 	 { (char *)"vector_cvector_t___delslice__", _wrap_vector_cvector_t___delslice__, METH_VARARGS, (char *)"vector_cvector_t___delslice__(vector_cvector_t self, std::vector< BasicVector3D< std::complex< double > > >::difference_type i, std::vector< BasicVector3D< std::complex< double > > >::difference_type j)"},
 	 { (char *)"vector_cvector_t___delitem__", _wrap_vector_cvector_t___delitem__, METH_VARARGS, (char *)"\n"
@@ -101204,16 +101333,17 @@ static PyMethodDef SwigMethods[] = {
 		"__setitem__(PySliceObject * slice)\n"
 		"vector_cvector_t___setitem__(vector_cvector_t self, std::vector< BasicVector3D< std::complex< double > > >::difference_type i, cvector_t x)\n"
 		""},
+	 { (char *)"vector_cvector_t_pop", _wrap_vector_cvector_t_pop, METH_VARARGS, (char *)"vector_cvector_t_pop(vector_cvector_t self) -> cvector_t"},
 	 { (char *)"vector_cvector_t_append", _wrap_vector_cvector_t_append, METH_VARARGS, (char *)"vector_cvector_t_append(vector_cvector_t self, cvector_t x)"},
 	 { (char *)"vector_cvector_t_empty", _wrap_vector_cvector_t_empty, METH_VARARGS, (char *)"vector_cvector_t_empty(vector_cvector_t self) -> bool"},
 	 { (char *)"vector_cvector_t_size", _wrap_vector_cvector_t_size, METH_VARARGS, (char *)"vector_cvector_t_size(vector_cvector_t self) -> std::vector< BasicVector3D< std::complex< double > > >::size_type"},
-	 { (char *)"vector_cvector_t_clear", _wrap_vector_cvector_t_clear, METH_VARARGS, (char *)"vector_cvector_t_clear(vector_cvector_t self)"},
 	 { (char *)"vector_cvector_t_swap", _wrap_vector_cvector_t_swap, METH_VARARGS, (char *)"vector_cvector_t_swap(vector_cvector_t self, vector_cvector_t v)"},
-	 { (char *)"vector_cvector_t_get_allocator", _wrap_vector_cvector_t_get_allocator, METH_VARARGS, (char *)"vector_cvector_t_get_allocator(vector_cvector_t self) -> std::vector< BasicVector3D< std::complex< double > > >::allocator_type"},
 	 { (char *)"vector_cvector_t_begin", _wrap_vector_cvector_t_begin, METH_VARARGS, (char *)"vector_cvector_t_begin(vector_cvector_t self) -> std::vector< BasicVector3D< std::complex< double > > >::iterator"},
 	 { (char *)"vector_cvector_t_end", _wrap_vector_cvector_t_end, METH_VARARGS, (char *)"vector_cvector_t_end(vector_cvector_t self) -> std::vector< BasicVector3D< std::complex< double > > >::iterator"},
 	 { (char *)"vector_cvector_t_rbegin", _wrap_vector_cvector_t_rbegin, METH_VARARGS, (char *)"vector_cvector_t_rbegin(vector_cvector_t self) -> std::vector< BasicVector3D< std::complex< double > > >::reverse_iterator"},
 	 { (char *)"vector_cvector_t_rend", _wrap_vector_cvector_t_rend, METH_VARARGS, (char *)"vector_cvector_t_rend(vector_cvector_t self) -> std::vector< BasicVector3D< std::complex< double > > >::reverse_iterator"},
+	 { (char *)"vector_cvector_t_clear", _wrap_vector_cvector_t_clear, METH_VARARGS, (char *)"vector_cvector_t_clear(vector_cvector_t self)"},
+	 { (char *)"vector_cvector_t_get_allocator", _wrap_vector_cvector_t_get_allocator, METH_VARARGS, (char *)"vector_cvector_t_get_allocator(vector_cvector_t self) -> std::vector< BasicVector3D< std::complex< double > > >::allocator_type"},
 	 { (char *)"vector_cvector_t_pop_back", _wrap_vector_cvector_t_pop_back, METH_VARARGS, (char *)"vector_cvector_t_pop_back(vector_cvector_t self)"},
 	 { (char *)"vector_cvector_t_erase", _wrap_vector_cvector_t_erase, METH_VARARGS, (char *)"\n"
 		"erase(std::vector< BasicVector3D< std::complex< double > > >::iterator pos) -> std::vector< BasicVector3D< std::complex< double > > >::iterator\n"
@@ -101902,11 +102032,10 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"swig_dummy_type_isample_vector___nonzero__", _wrap_swig_dummy_type_isample_vector___nonzero__, METH_VARARGS, (char *)"swig_dummy_type_isample_vector___nonzero__(swig_dummy_type_isample_vector self) -> bool"},
 	 { (char *)"swig_dummy_type_isample_vector___bool__", _wrap_swig_dummy_type_isample_vector___bool__, METH_VARARGS, (char *)"swig_dummy_type_isample_vector___bool__(swig_dummy_type_isample_vector self) -> bool"},
 	 { (char *)"swig_dummy_type_isample_vector___len__", _wrap_swig_dummy_type_isample_vector___len__, METH_VARARGS, (char *)"swig_dummy_type_isample_vector___len__(swig_dummy_type_isample_vector self) -> std::vector< ISample * >::size_type"},
-	 { (char *)"swig_dummy_type_isample_vector_pop", _wrap_swig_dummy_type_isample_vector_pop, METH_VARARGS, (char *)"swig_dummy_type_isample_vector_pop(swig_dummy_type_isample_vector self) -> ISample"},
 	 { (char *)"swig_dummy_type_isample_vector___getslice__", _wrap_swig_dummy_type_isample_vector___getslice__, METH_VARARGS, (char *)"swig_dummy_type_isample_vector___getslice__(swig_dummy_type_isample_vector self, std::vector< ISample * >::difference_type i, std::vector< ISample * >::difference_type j) -> swig_dummy_type_isample_vector"},
 	 { (char *)"swig_dummy_type_isample_vector___setslice__", _wrap_swig_dummy_type_isample_vector___setslice__, METH_VARARGS, (char *)"\n"
-		"__setslice__(std::vector< ISample * >::difference_type i, std::vector< ISample * >::difference_type j, swig_dummy_type_isample_vector v)\n"
-		"swig_dummy_type_isample_vector___setslice__(swig_dummy_type_isample_vector self, std::vector< ISample * >::difference_type i, std::vector< ISample * >::difference_type j)\n"
+		"__setslice__(std::vector< ISample * >::difference_type i, std::vector< ISample * >::difference_type j)\n"
+		"swig_dummy_type_isample_vector___setslice__(swig_dummy_type_isample_vector self, std::vector< ISample * >::difference_type i, std::vector< ISample * >::difference_type j, swig_dummy_type_isample_vector v)\n"
 		""},
 	 { (char *)"swig_dummy_type_isample_vector___delslice__", _wrap_swig_dummy_type_isample_vector___delslice__, METH_VARARGS, (char *)"swig_dummy_type_isample_vector___delslice__(swig_dummy_type_isample_vector self, std::vector< ISample * >::difference_type i, std::vector< ISample * >::difference_type j)"},
 	 { (char *)"swig_dummy_type_isample_vector___delitem__", _wrap_swig_dummy_type_isample_vector___delitem__, METH_VARARGS, (char *)"\n"
@@ -101922,16 +102051,17 @@ static PyMethodDef SwigMethods[] = {
 		"__setitem__(PySliceObject * slice)\n"
 		"swig_dummy_type_isample_vector___setitem__(swig_dummy_type_isample_vector self, std::vector< ISample * >::difference_type i, ISample x)\n"
 		""},
+	 { (char *)"swig_dummy_type_isample_vector_pop", _wrap_swig_dummy_type_isample_vector_pop, METH_VARARGS, (char *)"swig_dummy_type_isample_vector_pop(swig_dummy_type_isample_vector self) -> ISample"},
 	 { (char *)"swig_dummy_type_isample_vector_append", _wrap_swig_dummy_type_isample_vector_append, METH_VARARGS, (char *)"swig_dummy_type_isample_vector_append(swig_dummy_type_isample_vector self, ISample x)"},
 	 { (char *)"swig_dummy_type_isample_vector_empty", _wrap_swig_dummy_type_isample_vector_empty, METH_VARARGS, (char *)"swig_dummy_type_isample_vector_empty(swig_dummy_type_isample_vector self) -> bool"},
 	 { (char *)"swig_dummy_type_isample_vector_size", _wrap_swig_dummy_type_isample_vector_size, METH_VARARGS, (char *)"swig_dummy_type_isample_vector_size(swig_dummy_type_isample_vector self) -> std::vector< ISample * >::size_type"},
-	 { (char *)"swig_dummy_type_isample_vector_clear", _wrap_swig_dummy_type_isample_vector_clear, METH_VARARGS, (char *)"swig_dummy_type_isample_vector_clear(swig_dummy_type_isample_vector self)"},
 	 { (char *)"swig_dummy_type_isample_vector_swap", _wrap_swig_dummy_type_isample_vector_swap, METH_VARARGS, (char *)"swig_dummy_type_isample_vector_swap(swig_dummy_type_isample_vector self, swig_dummy_type_isample_vector v)"},
-	 { (char *)"swig_dummy_type_isample_vector_get_allocator", _wrap_swig_dummy_type_isample_vector_get_allocator, METH_VARARGS, (char *)"swig_dummy_type_isample_vector_get_allocator(swig_dummy_type_isample_vector self) -> std::vector< ISample * >::allocator_type"},
 	 { (char *)"swig_dummy_type_isample_vector_begin", _wrap_swig_dummy_type_isample_vector_begin, METH_VARARGS, (char *)"swig_dummy_type_isample_vector_begin(swig_dummy_type_isample_vector self) -> std::vector< ISample * >::iterator"},
 	 { (char *)"swig_dummy_type_isample_vector_end", _wrap_swig_dummy_type_isample_vector_end, METH_VARARGS, (char *)"swig_dummy_type_isample_vector_end(swig_dummy_type_isample_vector self) -> std::vector< ISample * >::iterator"},
 	 { (char *)"swig_dummy_type_isample_vector_rbegin", _wrap_swig_dummy_type_isample_vector_rbegin, METH_VARARGS, (char *)"swig_dummy_type_isample_vector_rbegin(swig_dummy_type_isample_vector self) -> std::vector< ISample * >::reverse_iterator"},
 	 { (char *)"swig_dummy_type_isample_vector_rend", _wrap_swig_dummy_type_isample_vector_rend, METH_VARARGS, (char *)"swig_dummy_type_isample_vector_rend(swig_dummy_type_isample_vector self) -> std::vector< ISample * >::reverse_iterator"},
+	 { (char *)"swig_dummy_type_isample_vector_clear", _wrap_swig_dummy_type_isample_vector_clear, METH_VARARGS, (char *)"swig_dummy_type_isample_vector_clear(swig_dummy_type_isample_vector self)"},
+	 { (char *)"swig_dummy_type_isample_vector_get_allocator", _wrap_swig_dummy_type_isample_vector_get_allocator, METH_VARARGS, (char *)"swig_dummy_type_isample_vector_get_allocator(swig_dummy_type_isample_vector self) -> std::vector< ISample * >::allocator_type"},
 	 { (char *)"swig_dummy_type_isample_vector_pop_back", _wrap_swig_dummy_type_isample_vector_pop_back, METH_VARARGS, (char *)"swig_dummy_type_isample_vector_pop_back(swig_dummy_type_isample_vector self)"},
 	 { (char *)"swig_dummy_type_isample_vector_erase", _wrap_swig_dummy_type_isample_vector_erase, METH_VARARGS, (char *)"\n"
 		"erase(std::vector< ISample * >::iterator pos) -> std::vector< ISample * >::iterator\n"
@@ -101963,11 +102093,10 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"swig_dummy_type_const_isample_vector___nonzero__", _wrap_swig_dummy_type_const_isample_vector___nonzero__, METH_VARARGS, (char *)"swig_dummy_type_const_isample_vector___nonzero__(swig_dummy_type_const_isample_vector self) -> bool"},
 	 { (char *)"swig_dummy_type_const_isample_vector___bool__", _wrap_swig_dummy_type_const_isample_vector___bool__, METH_VARARGS, (char *)"swig_dummy_type_const_isample_vector___bool__(swig_dummy_type_const_isample_vector self) -> bool"},
 	 { (char *)"swig_dummy_type_const_isample_vector___len__", _wrap_swig_dummy_type_const_isample_vector___len__, METH_VARARGS, (char *)"swig_dummy_type_const_isample_vector___len__(swig_dummy_type_const_isample_vector self) -> std::vector< ISample const * >::size_type"},
-	 { (char *)"swig_dummy_type_const_isample_vector_pop", _wrap_swig_dummy_type_const_isample_vector_pop, METH_VARARGS, (char *)"swig_dummy_type_const_isample_vector_pop(swig_dummy_type_const_isample_vector self) -> ISample"},
 	 { (char *)"swig_dummy_type_const_isample_vector___getslice__", _wrap_swig_dummy_type_const_isample_vector___getslice__, METH_VARARGS, (char *)"swig_dummy_type_const_isample_vector___getslice__(swig_dummy_type_const_isample_vector self, std::vector< ISample const * >::difference_type i, std::vector< ISample const * >::difference_type j) -> swig_dummy_type_const_isample_vector"},
 	 { (char *)"swig_dummy_type_const_isample_vector___setslice__", _wrap_swig_dummy_type_const_isample_vector___setslice__, METH_VARARGS, (char *)"\n"
-		"__setslice__(std::vector< ISample const * >::difference_type i, std::vector< ISample const * >::difference_type j, swig_dummy_type_const_isample_vector v)\n"
-		"swig_dummy_type_const_isample_vector___setslice__(swig_dummy_type_const_isample_vector self, std::vector< ISample const * >::difference_type i, std::vector< ISample const * >::difference_type j)\n"
+		"__setslice__(std::vector< ISample const * >::difference_type i, std::vector< ISample const * >::difference_type j)\n"
+		"swig_dummy_type_const_isample_vector___setslice__(swig_dummy_type_const_isample_vector self, std::vector< ISample const * >::difference_type i, std::vector< ISample const * >::difference_type j, swig_dummy_type_const_isample_vector v)\n"
 		""},
 	 { (char *)"swig_dummy_type_const_isample_vector___delslice__", _wrap_swig_dummy_type_const_isample_vector___delslice__, METH_VARARGS, (char *)"swig_dummy_type_const_isample_vector___delslice__(swig_dummy_type_const_isample_vector self, std::vector< ISample const * >::difference_type i, std::vector< ISample const * >::difference_type j)"},
 	 { (char *)"swig_dummy_type_const_isample_vector___delitem__", _wrap_swig_dummy_type_const_isample_vector___delitem__, METH_VARARGS, (char *)"\n"
@@ -101983,16 +102112,17 @@ static PyMethodDef SwigMethods[] = {
 		"__setitem__(PySliceObject * slice)\n"
 		"swig_dummy_type_const_isample_vector___setitem__(swig_dummy_type_const_isample_vector self, std::vector< ISample const * >::difference_type i, ISample x)\n"
 		""},
+	 { (char *)"swig_dummy_type_const_isample_vector_pop", _wrap_swig_dummy_type_const_isample_vector_pop, METH_VARARGS, (char *)"swig_dummy_type_const_isample_vector_pop(swig_dummy_type_const_isample_vector self) -> ISample"},
 	 { (char *)"swig_dummy_type_const_isample_vector_append", _wrap_swig_dummy_type_const_isample_vector_append, METH_VARARGS, (char *)"swig_dummy_type_const_isample_vector_append(swig_dummy_type_const_isample_vector self, ISample x)"},
 	 { (char *)"swig_dummy_type_const_isample_vector_empty", _wrap_swig_dummy_type_const_isample_vector_empty, METH_VARARGS, (char *)"swig_dummy_type_const_isample_vector_empty(swig_dummy_type_const_isample_vector self) -> bool"},
 	 { (char *)"swig_dummy_type_const_isample_vector_size", _wrap_swig_dummy_type_const_isample_vector_size, METH_VARARGS, (char *)"swig_dummy_type_const_isample_vector_size(swig_dummy_type_const_isample_vector self) -> std::vector< ISample const * >::size_type"},
-	 { (char *)"swig_dummy_type_const_isample_vector_clear", _wrap_swig_dummy_type_const_isample_vector_clear, METH_VARARGS, (char *)"swig_dummy_type_const_isample_vector_clear(swig_dummy_type_const_isample_vector self)"},
 	 { (char *)"swig_dummy_type_const_isample_vector_swap", _wrap_swig_dummy_type_const_isample_vector_swap, METH_VARARGS, (char *)"swig_dummy_type_const_isample_vector_swap(swig_dummy_type_const_isample_vector self, swig_dummy_type_const_isample_vector v)"},
-	 { (char *)"swig_dummy_type_const_isample_vector_get_allocator", _wrap_swig_dummy_type_const_isample_vector_get_allocator, METH_VARARGS, (char *)"swig_dummy_type_const_isample_vector_get_allocator(swig_dummy_type_const_isample_vector self) -> std::vector< ISample const * >::allocator_type"},
 	 { (char *)"swig_dummy_type_const_isample_vector_begin", _wrap_swig_dummy_type_const_isample_vector_begin, METH_VARARGS, (char *)"swig_dummy_type_const_isample_vector_begin(swig_dummy_type_const_isample_vector self) -> std::vector< ISample const * >::iterator"},
 	 { (char *)"swig_dummy_type_const_isample_vector_end", _wrap_swig_dummy_type_const_isample_vector_end, METH_VARARGS, (char *)"swig_dummy_type_const_isample_vector_end(swig_dummy_type_const_isample_vector self) -> std::vector< ISample const * >::iterator"},
 	 { (char *)"swig_dummy_type_const_isample_vector_rbegin", _wrap_swig_dummy_type_const_isample_vector_rbegin, METH_VARARGS, (char *)"swig_dummy_type_const_isample_vector_rbegin(swig_dummy_type_const_isample_vector self) -> std::vector< ISample const * >::reverse_iterator"},
 	 { (char *)"swig_dummy_type_const_isample_vector_rend", _wrap_swig_dummy_type_const_isample_vector_rend, METH_VARARGS, (char *)"swig_dummy_type_const_isample_vector_rend(swig_dummy_type_const_isample_vector self) -> std::vector< ISample const * >::reverse_iterator"},
+	 { (char *)"swig_dummy_type_const_isample_vector_clear", _wrap_swig_dummy_type_const_isample_vector_clear, METH_VARARGS, (char *)"swig_dummy_type_const_isample_vector_clear(swig_dummy_type_const_isample_vector self)"},
+	 { (char *)"swig_dummy_type_const_isample_vector_get_allocator", _wrap_swig_dummy_type_const_isample_vector_get_allocator, METH_VARARGS, (char *)"swig_dummy_type_const_isample_vector_get_allocator(swig_dummy_type_const_isample_vector self) -> std::vector< ISample const * >::allocator_type"},
 	 { (char *)"swig_dummy_type_const_isample_vector_pop_back", _wrap_swig_dummy_type_const_isample_vector_pop_back, METH_VARARGS, (char *)"swig_dummy_type_const_isample_vector_pop_back(swig_dummy_type_const_isample_vector self)"},
 	 { (char *)"swig_dummy_type_const_isample_vector_erase", _wrap_swig_dummy_type_const_isample_vector_erase, METH_VARARGS, (char *)"\n"
 		"erase(std::vector< ISample const * >::iterator pos) -> std::vector< ISample const * >::iterator\n"
@@ -102718,9 +102848,9 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"FitSuite_addFitParameter", _wrap_FitSuite_addFitParameter, METH_VARARGS, (char *)"\n"
-		"addFitParameter(std::string const & name, double value, Limits lim, Attributes attr, double step=0.0)\n"
-		"addFitParameter(std::string const & name, double value, Limits lim, Attributes attr)\n"
-		"addFitParameter(std::string const & name, double value, Limits lim)\n"
+		"addFitParameter(std::string const & name, double value, RealLimits lim, Attributes attr, double step=0.0)\n"
+		"addFitParameter(std::string const & name, double value, RealLimits lim, Attributes attr)\n"
+		"addFitParameter(std::string const & name, double value, RealLimits lim)\n"
 		"FitSuite_addFitParameter(FitSuite self, std::string const & name, double value)\n"
 		"\n"
 		"void FitSuite::addFitParameter(const std::string &name, double value, const Limits &lim=Limits::limitless(), const Attributes &attr=Attributes::free(), double step=0.0)\n"
@@ -103674,7 +103804,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"IDistribution1D_generateSamples", _wrap_IDistribution1D_generateSamples, METH_VARARGS, (char *)"\n"
-		"generateSamples(size_t nbr_samples, double sigma_factor=0.0, Limits limits) -> std::vector< ParameterSample,std::allocator< ParameterSample > >\n"
+		"generateSamples(size_t nbr_samples, double sigma_factor=0.0, RealLimits limits) -> std::vector< ParameterSample,std::allocator< ParameterSample > >\n"
 		"generateSamples(size_t nbr_samples, double sigma_factor=0.0) -> std::vector< ParameterSample,std::allocator< ParameterSample > >\n"
 		"generateSamples(size_t nbr_samples) -> std::vector< ParameterSample,std::allocator< ParameterSample > >\n"
 		"IDistribution1D_generateSamples(IDistribution1D self, size_t nbr_samples, double xmin, double xmax) -> std::vector< ParameterSample,std::allocator< ParameterSample > >\n"
@@ -103685,7 +103815,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"IDistribution1D_generateValueList", _wrap_IDistribution1D_generateValueList, METH_VARARGS, (char *)"\n"
-		"generateValueList(size_t nbr_samples, double sigma_factor, Limits limits) -> vdouble1d_t\n"
+		"generateValueList(size_t nbr_samples, double sigma_factor, RealLimits limits) -> vdouble1d_t\n"
 		"IDistribution1D_generateValueList(IDistribution1D self, size_t nbr_samples, double sigma_factor) -> vdouble1d_t\n"
 		"\n"
 		"virtual std::vector<double> IDistribution1D::generateValueList(size_t nbr_samples, double sigma_factor, const Limits &limits=Limits()) const =0\n"
@@ -103799,7 +103929,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"DistributionGate_generateValueList", _wrap_DistributionGate_generateValueList, METH_VARARGS, (char *)"\n"
-		"generateValueList(size_t nbr_samples, double sigma_factor, Limits limits) -> vdouble1d_t\n"
+		"generateValueList(size_t nbr_samples, double sigma_factor, RealLimits limits) -> vdouble1d_t\n"
 		"DistributionGate_generateValueList(DistributionGate self, size_t nbr_samples, double sigma_factor) -> vdouble1d_t\n"
 		"\n"
 		"std::vector< double > DistributionGate::generateValueList(size_t nbr_samples, double sigma_factor, const Limits &limits=Limits()) const\n"
@@ -103860,7 +103990,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"DistributionLorentz_generateValueList", _wrap_DistributionLorentz_generateValueList, METH_VARARGS, (char *)"\n"
-		"generateValueList(size_t nbr_samples, double sigma_factor, Limits limits) -> vdouble1d_t\n"
+		"generateValueList(size_t nbr_samples, double sigma_factor, RealLimits limits) -> vdouble1d_t\n"
 		"DistributionLorentz_generateValueList(DistributionLorentz self, size_t nbr_samples, double sigma_factor) -> vdouble1d_t\n"
 		"\n"
 		"std::vector< double > DistributionLorentz::generateValueList(size_t nbr_samples, double sigma_factor, const Limits &limits=Limits()) const\n"
@@ -103923,7 +104053,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"DistributionGaussian_generateValueList", _wrap_DistributionGaussian_generateValueList, METH_VARARGS, (char *)"\n"
-		"generateValueList(size_t nbr_samples, double sigma_factor, Limits limits) -> vdouble1d_t\n"
+		"generateValueList(size_t nbr_samples, double sigma_factor, RealLimits limits) -> vdouble1d_t\n"
 		"DistributionGaussian_generateValueList(DistributionGaussian self, size_t nbr_samples, double sigma_factor) -> vdouble1d_t\n"
 		"\n"
 		"std::vector< double > DistributionGaussian::generateValueList(size_t nbr_samples, double sigma_factor, const Limits &limits=Limits()) const\n"
@@ -103994,7 +104124,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"DistributionLogNormal_generateValueList", _wrap_DistributionLogNormal_generateValueList, METH_VARARGS, (char *)"\n"
-		"generateValueList(size_t nbr_samples, double sigma_factor, Limits limits) -> vdouble1d_t\n"
+		"generateValueList(size_t nbr_samples, double sigma_factor, RealLimits limits) -> vdouble1d_t\n"
 		"DistributionLogNormal_generateValueList(DistributionLogNormal self, size_t nbr_samples, double sigma_factor) -> vdouble1d_t\n"
 		"\n"
 		"std::vector< double > DistributionLogNormal::generateValueList(size_t nbr_samples, double sigma_factor, const Limits &limits=Limits()) const\n"
@@ -104057,7 +104187,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"DistributionCosine_generateValueList", _wrap_DistributionCosine_generateValueList, METH_VARARGS, (char *)"\n"
-		"generateValueList(size_t nbr_samples, double sigma_factor, Limits limits) -> vdouble1d_t\n"
+		"generateValueList(size_t nbr_samples, double sigma_factor, RealLimits limits) -> vdouble1d_t\n"
 		"DistributionCosine_generateValueList(DistributionCosine self, size_t nbr_samples, double sigma_factor) -> vdouble1d_t\n"
 		"\n"
 		"std::vector< double > DistributionCosine::generateValueList(size_t nbr_samples, double sigma_factor, const Limits &limits=Limits()) const\n"
@@ -105009,11 +105139,10 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"vector_IFormFactorPtr_t___nonzero__", _wrap_vector_IFormFactorPtr_t___nonzero__, METH_VARARGS, (char *)"vector_IFormFactorPtr_t___nonzero__(vector_IFormFactorPtr_t self) -> bool"},
 	 { (char *)"vector_IFormFactorPtr_t___bool__", _wrap_vector_IFormFactorPtr_t___bool__, METH_VARARGS, (char *)"vector_IFormFactorPtr_t___bool__(vector_IFormFactorPtr_t self) -> bool"},
 	 { (char *)"vector_IFormFactorPtr_t___len__", _wrap_vector_IFormFactorPtr_t___len__, METH_VARARGS, (char *)"vector_IFormFactorPtr_t___len__(vector_IFormFactorPtr_t self) -> std::vector< IFormFactor * >::size_type"},
-	 { (char *)"vector_IFormFactorPtr_t_pop", _wrap_vector_IFormFactorPtr_t_pop, METH_VARARGS, (char *)"vector_IFormFactorPtr_t_pop(vector_IFormFactorPtr_t self) -> IFormFactor"},
 	 { (char *)"vector_IFormFactorPtr_t___getslice__", _wrap_vector_IFormFactorPtr_t___getslice__, METH_VARARGS, (char *)"vector_IFormFactorPtr_t___getslice__(vector_IFormFactorPtr_t self, std::vector< IFormFactor * >::difference_type i, std::vector< IFormFactor * >::difference_type j) -> vector_IFormFactorPtr_t"},
 	 { (char *)"vector_IFormFactorPtr_t___setslice__", _wrap_vector_IFormFactorPtr_t___setslice__, METH_VARARGS, (char *)"\n"
-		"__setslice__(std::vector< IFormFactor * >::difference_type i, std::vector< IFormFactor * >::difference_type j, vector_IFormFactorPtr_t v)\n"
-		"vector_IFormFactorPtr_t___setslice__(vector_IFormFactorPtr_t self, std::vector< IFormFactor * >::difference_type i, std::vector< IFormFactor * >::difference_type j)\n"
+		"__setslice__(std::vector< IFormFactor * >::difference_type i, std::vector< IFormFactor * >::difference_type j)\n"
+		"vector_IFormFactorPtr_t___setslice__(vector_IFormFactorPtr_t self, std::vector< IFormFactor * >::difference_type i, std::vector< IFormFactor * >::difference_type j, vector_IFormFactorPtr_t v)\n"
 		""},
 	 { (char *)"vector_IFormFactorPtr_t___delslice__", _wrap_vector_IFormFactorPtr_t___delslice__, METH_VARARGS, (char *)"vector_IFormFactorPtr_t___delslice__(vector_IFormFactorPtr_t self, std::vector< IFormFactor * >::difference_type i, std::vector< IFormFactor * >::difference_type j)"},
 	 { (char *)"vector_IFormFactorPtr_t___delitem__", _wrap_vector_IFormFactorPtr_t___delitem__, METH_VARARGS, (char *)"\n"
@@ -105029,16 +105158,17 @@ static PyMethodDef SwigMethods[] = {
 		"__setitem__(PySliceObject * slice)\n"
 		"vector_IFormFactorPtr_t___setitem__(vector_IFormFactorPtr_t self, std::vector< IFormFactor * >::difference_type i, IFormFactor x)\n"
 		""},
+	 { (char *)"vector_IFormFactorPtr_t_pop", _wrap_vector_IFormFactorPtr_t_pop, METH_VARARGS, (char *)"vector_IFormFactorPtr_t_pop(vector_IFormFactorPtr_t self) -> IFormFactor"},
 	 { (char *)"vector_IFormFactorPtr_t_append", _wrap_vector_IFormFactorPtr_t_append, METH_VARARGS, (char *)"vector_IFormFactorPtr_t_append(vector_IFormFactorPtr_t self, IFormFactor x)"},
 	 { (char *)"vector_IFormFactorPtr_t_empty", _wrap_vector_IFormFactorPtr_t_empty, METH_VARARGS, (char *)"vector_IFormFactorPtr_t_empty(vector_IFormFactorPtr_t self) -> bool"},
 	 { (char *)"vector_IFormFactorPtr_t_size", _wrap_vector_IFormFactorPtr_t_size, METH_VARARGS, (char *)"vector_IFormFactorPtr_t_size(vector_IFormFactorPtr_t self) -> std::vector< IFormFactor * >::size_type"},
-	 { (char *)"vector_IFormFactorPtr_t_clear", _wrap_vector_IFormFactorPtr_t_clear, METH_VARARGS, (char *)"vector_IFormFactorPtr_t_clear(vector_IFormFactorPtr_t self)"},
 	 { (char *)"vector_IFormFactorPtr_t_swap", _wrap_vector_IFormFactorPtr_t_swap, METH_VARARGS, (char *)"vector_IFormFactorPtr_t_swap(vector_IFormFactorPtr_t self, vector_IFormFactorPtr_t v)"},
-	 { (char *)"vector_IFormFactorPtr_t_get_allocator", _wrap_vector_IFormFactorPtr_t_get_allocator, METH_VARARGS, (char *)"vector_IFormFactorPtr_t_get_allocator(vector_IFormFactorPtr_t self) -> std::vector< IFormFactor * >::allocator_type"},
 	 { (char *)"vector_IFormFactorPtr_t_begin", _wrap_vector_IFormFactorPtr_t_begin, METH_VARARGS, (char *)"vector_IFormFactorPtr_t_begin(vector_IFormFactorPtr_t self) -> std::vector< IFormFactor * >::iterator"},
 	 { (char *)"vector_IFormFactorPtr_t_end", _wrap_vector_IFormFactorPtr_t_end, METH_VARARGS, (char *)"vector_IFormFactorPtr_t_end(vector_IFormFactorPtr_t self) -> std::vector< IFormFactor * >::iterator"},
 	 { (char *)"vector_IFormFactorPtr_t_rbegin", _wrap_vector_IFormFactorPtr_t_rbegin, METH_VARARGS, (char *)"vector_IFormFactorPtr_t_rbegin(vector_IFormFactorPtr_t self) -> std::vector< IFormFactor * >::reverse_iterator"},
 	 { (char *)"vector_IFormFactorPtr_t_rend", _wrap_vector_IFormFactorPtr_t_rend, METH_VARARGS, (char *)"vector_IFormFactorPtr_t_rend(vector_IFormFactorPtr_t self) -> std::vector< IFormFactor * >::reverse_iterator"},
+	 { (char *)"vector_IFormFactorPtr_t_clear", _wrap_vector_IFormFactorPtr_t_clear, METH_VARARGS, (char *)"vector_IFormFactorPtr_t_clear(vector_IFormFactorPtr_t self)"},
+	 { (char *)"vector_IFormFactorPtr_t_get_allocator", _wrap_vector_IFormFactorPtr_t_get_allocator, METH_VARARGS, (char *)"vector_IFormFactorPtr_t_get_allocator(vector_IFormFactorPtr_t self) -> std::vector< IFormFactor * >::allocator_type"},
 	 { (char *)"vector_IFormFactorPtr_t_pop_back", _wrap_vector_IFormFactorPtr_t_pop_back, METH_VARARGS, (char *)"vector_IFormFactorPtr_t_pop_back(vector_IFormFactorPtr_t self)"},
 	 { (char *)"vector_IFormFactorPtr_t_erase", _wrap_vector_IFormFactorPtr_t_erase, METH_VARARGS, (char *)"\n"
 		"erase(std::vector< IFormFactor * >::iterator pos) -> std::vector< IFormFactor * >::iterator\n"
@@ -107612,7 +107742,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"Simulation_addParameterDistribution", _wrap_Simulation_addParameterDistribution, METH_VARARGS, (char *)"\n"
-		"addParameterDistribution(std::string const & param_name, IDistribution1D distribution, size_t nbr_samples, double sigma_factor=0.0, Limits limits)\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"
 		"Simulation_addParameterDistribution(Simulation self, ParameterDistribution par_distr)\n"
@@ -111607,7 +111737,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"new_ParameterDistribution", _wrap_new_ParameterDistribution, METH_VARARGS, (char *)"\n"
-		"ParameterDistribution(std::string const & par_name, IDistribution1D distribution, size_t nbr_samples, double sigma_factor=0.0, Limits limits)\n"
+		"ParameterDistribution(std::string const & par_name, IDistribution1D distribution, size_t nbr_samples, double sigma_factor=0.0, RealLimits limits)\n"
 		"ParameterDistribution(std::string const & par_name, IDistribution1D distribution, size_t nbr_samples, double sigma_factor=0.0)\n"
 		"ParameterDistribution(std::string const & par_name, IDistribution1D distribution, size_t nbr_samples)\n"
 		"ParameterDistribution(std::string const & par_name, IDistribution1D distribution, size_t nbr_samples, double xmin, double xmax)\n"
@@ -111675,7 +111805,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"ParameterDistribution_getLimits", _wrap_ParameterDistribution_getLimits, METH_VARARGS, (char *)"\n"
-		"ParameterDistribution_getLimits(ParameterDistribution self) -> Limits\n"
+		"ParameterDistribution_getLimits(ParameterDistribution self) -> RealLimits\n"
 		"\n"
 		"Limits ParameterDistribution::getLimits() const \n"
 		"\n"
@@ -112347,8 +112477,8 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"Polygon_swigregister", Polygon_swigregister, METH_VARARGS, NULL},
 	 { (char *)"new_RealParameter", _wrap_new_RealParameter, METH_VARARGS, (char *)"\n"
-		"RealParameter(std::string const & name, ParameterPool parent, double volatile * par, Limits limits, Attributes attr)\n"
-		"RealParameter(std::string const & name, ParameterPool parent, double volatile * par, Limits limits)\n"
+		"RealParameter(std::string const & name, ParameterPool parent, double volatile * par, RealLimits limits, Attributes attr)\n"
+		"RealParameter(std::string const & name, ParameterPool parent, double volatile * par, RealLimits limits)\n"
 		"RealParameter(std::string const & name, ParameterPool parent, double volatile * par)\n"
 		"RealParameter(RealParameter other)\n"
 		"new_RealParameter(std::string const & name, RealParameter other) -> RealParameter\n"
@@ -112404,13 +112534,13 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"RealParameter_setLimits", _wrap_RealParameter_setLimits, METH_VARARGS, (char *)"\n"
-		"RealParameter_setLimits(RealParameter self, Limits limits) -> RealParameter\n"
+		"RealParameter_setLimits(RealParameter self, RealLimits limits) -> RealParameter\n"
 		"\n"
 		"RealParameter& RealParameter::setLimits(const Limits &limits)\n"
 		"\n"
 		""},
 	 { (char *)"RealParameter_getLimits", _wrap_RealParameter_getLimits, METH_VARARGS, (char *)"\n"
-		"RealParameter_getLimits(RealParameter self) -> Limits\n"
+		"RealParameter_getLimits(RealParameter self) -> RealLimits\n"
 		"\n"
 		"Limits RealParameter::getLimits() const \n"
 		"\n"
@@ -115194,7 +115324,6 @@ static swig_type_info _swigt__p_Layer = {"_p_Layer", "Layer *", 0, 0, (void*)0,
 static swig_type_info _swigt__p_LayerInterface = {"_p_LayerInterface", "LayerInterface *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_LayerRTCoefficients_t = {"_p_LayerRTCoefficients_t", "LayerRTCoefficients_t *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_LayerRoughness = {"_p_LayerRoughness", "LayerRoughness *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_Limits = {"_p_Limits", "Limits *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_MSG__Logger = {"_p_MSG__Logger", "MSG::Logger *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Mask = {"_p_Mask", "Mask *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_MesoCrystal = {"_p_MesoCrystal", "MesoCrystal *", 0, 0, (void*)0, 0};
@@ -115221,6 +115350,7 @@ static swig_type_info _swigt__p_PolyhedralEdge = {"_p_PolyhedralEdge", "Polyhedr
 static swig_type_info _swigt__p_PolyhedralFace = {"_p_PolyhedralFace", "PolyhedralFace *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_PolyhedralTopology = {"_p_PolyhedralTopology", "PolyhedralTopology *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_ProgressHandler__Callback_t = {"_p_ProgressHandler__Callback_t", "ProgressHandler::Callback_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_RealLimits = {"_p_RealLimits", "RealLimits *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_RealParameter = {"_p_RealParameter", "RealParameter *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_RectPixelMap = {"_p_RectPixelMap", "RectPixelMap *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_RectangularDetector = {"_p_RectangularDetector", "RectangularDetector *", 0, 0, (void*)0, 0};
@@ -115487,7 +115617,6 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_LayerInterface,
   &_swigt__p_LayerRTCoefficients_t,
   &_swigt__p_LayerRoughness,
-  &_swigt__p_Limits,
   &_swigt__p_MSG__Logger,
   &_swigt__p_Mask,
   &_swigt__p_MesoCrystal,
@@ -115514,6 +115643,7 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_PolyhedralFace,
   &_swigt__p_PolyhedralTopology,
   &_swigt__p_ProgressHandler__Callback_t,
+  &_swigt__p_RealLimits,
   &_swigt__p_RealParameter,
   &_swigt__p_RectPixelMap,
   &_swigt__p_RectangularDetector,
@@ -115780,7 +115910,6 @@ static swig_cast_info _swigc__p_Layer[] = {  {&_swigt__p_Layer, 0, 0, 0},{0, 0,
 static swig_cast_info _swigc__p_LayerInterface[] = {  {&_swigt__p_LayerInterface, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_LayerRTCoefficients_t[] = {  {&_swigt__p_LayerRTCoefficients_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_LayerRoughness[] = {  {&_swigt__p_LayerRoughness, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_Limits[] = {  {&_swigt__p_Limits, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_MSG__Logger[] = {  {&_swigt__p_MSG__Logger, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Mask[] = {  {&_swigt__p_Mask, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_MesoCrystal[] = {  {&_swigt__p_MesoCrystal, 0, 0, 0},{0, 0, 0, 0}};
@@ -115807,6 +115936,7 @@ static swig_cast_info _swigc__p_PolyhedralEdge[] = {  {&_swigt__p_PolyhedralEdge
 static swig_cast_info _swigc__p_PolyhedralFace[] = {  {&_swigt__p_PolyhedralFace, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_PolyhedralTopology[] = {  {&_swigt__p_PolyhedralTopology, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_ProgressHandler__Callback_t[] = {  {&_swigt__p_ProgressHandler__Callback_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_RealLimits[] = {  {&_swigt__p_RealLimits, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_RealParameter[] = {  {&_swigt__p_RealParameter, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_RectPixelMap[] = {  {&_swigt__p_RectPixelMap, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_RectangularDetector[] = {  {&_swigt__p_RectangularDetector, 0, 0, 0},{0, 0, 0, 0}};
@@ -116073,7 +116203,6 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_LayerInterface,
   _swigc__p_LayerRTCoefficients_t,
   _swigc__p_LayerRoughness,
-  _swigc__p_Limits,
   _swigc__p_MSG__Logger,
   _swigc__p_Mask,
   _swigc__p_MesoCrystal,
@@ -116100,6 +116229,7 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_PolyhedralFace,
   _swigc__p_PolyhedralTopology,
   _swigc__p_ProgressHandler__Callback_t,
+  _swigc__p_RealLimits,
   _swigc__p_RealParameter,
   _swigc__p_RectPixelMap,
   _swigc__p_RectangularDetector,
@@ -116608,10 +116738,19 @@ extern "C" {
         0,                                  /* tp_del */
 #endif
 #if PY_VERSION_HEX >= 0x02060000
-        0,                                  /* tp_version */
+        0,                                  /* tp_version_tag */
+#endif
+#if PY_VERSION_HEX >= 0x03040000
+        0,                                  /* tp_finalize */
 #endif
 #ifdef COUNT_ALLOCS
-        0,0,0,0                             /* tp_alloc -> tp_next */
+        0,                                  /* tp_allocs */
+        0,                                  /* tp_frees */
+        0,                                  /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+        0,                                  /* tp_prev */
+#endif
+        0                                   /* tp_next */
 #endif
       };
       varlink_type = tmp;
diff --git a/auto/Wrap/libBornAgainCore_wrap.h b/auto/Wrap/libBornAgainCore_wrap.h
index b029f8c2d083519ea12a321df98cef342efececf..f0a8e563001f46169900003d336fd0029c4ae36d 100644
--- a/auto/Wrap/libBornAgainCore_wrap.h
+++ b/auto/Wrap/libBornAgainCore_wrap.h
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 3.0.7
+ * Version 3.0.8
  *
  * This file is not intended to be easily readable and contains a number of
  * coding conventions designed to improve portability and efficiency. Do not make
diff --git a/auto/Wrap/libBornAgainFit.py b/auto/Wrap/libBornAgainFit.py
index 253a642f05de58e1652da2f91fbc66ac4257889e..cb569af1ff24b5af96e62f4a11de766def93d9d0 100644
--- a/auto/Wrap/libBornAgainFit.py
+++ b/auto/Wrap/libBornAgainFit.py
@@ -1,5 +1,5 @@
 # This file was automatically generated by SWIG (http://www.swig.org).
-# Version 3.0.7
+# Version 3.0.8
 #
 # Do not make changes to this file unless you know what you are doing--modify
 # the SWIG interface file instead.
@@ -77,7 +77,7 @@ def _swig_getattr(self, class_type, name):
 def _swig_repr(self):
     try:
         strthis = "proxy of " + self.this.__repr__()
-    except:
+    except Exception:
         strthis = ""
     return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
 
@@ -93,12 +93,13 @@ except AttributeError:
 try:
     import weakref
     weakref_proxy = weakref.proxy
-except:
+except Exception:
     weakref_proxy = lambda x: x
 
 
 class SwigPyIterator(_object):
-    """Proxy of C++ swig::SwigPyIterator class"""
+    """Proxy of C++ swig::SwigPyIterator class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, SwigPyIterator, name, value)
     __swig_getmethods__ = {}
@@ -207,7 +208,8 @@ SwigPyIterator_swigregister(SwigPyIterator)
 _libBornAgainFit.SHARED_PTR_DISOWN_swigconstant(_libBornAgainFit)
 SHARED_PTR_DISOWN = _libBornAgainFit.SHARED_PTR_DISOWN
 class vdouble1d_t(_object):
-    """Proxy of C++ std::vector<(double)> class"""
+    """Proxy of C++ std::vector<(double)> class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, vdouble1d_t, name, value)
     __swig_getmethods__ = {}
@@ -236,11 +238,6 @@ class vdouble1d_t(_object):
         return _libBornAgainFit.vdouble1d_t___len__(self)
 
 
-    def pop(self):
-        """pop(vdouble1d_t self) -> std::vector< double >::value_type"""
-        return _libBornAgainFit.vdouble1d_t_pop(self)
-
-
     def __getslice__(self, i, j):
         """__getslice__(vdouble1d_t self, std::vector< double >::difference_type i, std::vector< double >::difference_type j) -> vdouble1d_t"""
         return _libBornAgainFit.vdouble1d_t___getslice__(self, i, j)
@@ -248,8 +245,8 @@ class vdouble1d_t(_object):
 
     def __setslice__(self, *args):
         """
-        __setslice__(vdouble1d_t self, std::vector< double >::difference_type i, std::vector< double >::difference_type j, vdouble1d_t v)
         __setslice__(vdouble1d_t self, std::vector< double >::difference_type i, std::vector< double >::difference_type j)
+        __setslice__(vdouble1d_t self, std::vector< double >::difference_type i, std::vector< double >::difference_type j, vdouble1d_t v)
         """
         return _libBornAgainFit.vdouble1d_t___setslice__(self, *args)
 
@@ -284,6 +281,11 @@ class vdouble1d_t(_object):
         return _libBornAgainFit.vdouble1d_t___setitem__(self, *args)
 
 
+    def pop(self):
+        """pop(vdouble1d_t self) -> std::vector< double >::value_type"""
+        return _libBornAgainFit.vdouble1d_t_pop(self)
+
+
     def append(self, x):
         """append(vdouble1d_t self, std::vector< double >::value_type const & x)"""
         return _libBornAgainFit.vdouble1d_t_append(self, x)
@@ -299,21 +301,11 @@ class vdouble1d_t(_object):
         return _libBornAgainFit.vdouble1d_t_size(self)
 
 
-    def clear(self):
-        """clear(vdouble1d_t self)"""
-        return _libBornAgainFit.vdouble1d_t_clear(self)
-
-
     def swap(self, v):
         """swap(vdouble1d_t self, vdouble1d_t v)"""
         return _libBornAgainFit.vdouble1d_t_swap(self, v)
 
 
-    def get_allocator(self):
-        """get_allocator(vdouble1d_t self) -> std::vector< double >::allocator_type"""
-        return _libBornAgainFit.vdouble1d_t_get_allocator(self)
-
-
     def begin(self):
         """begin(vdouble1d_t self) -> std::vector< double >::iterator"""
         return _libBornAgainFit.vdouble1d_t_begin(self)
@@ -334,6 +326,16 @@ class vdouble1d_t(_object):
         return _libBornAgainFit.vdouble1d_t_rend(self)
 
 
+    def clear(self):
+        """clear(vdouble1d_t self)"""
+        return _libBornAgainFit.vdouble1d_t_clear(self)
+
+
+    def get_allocator(self):
+        """get_allocator(vdouble1d_t self) -> std::vector< double >::allocator_type"""
+        return _libBornAgainFit.vdouble1d_t_get_allocator(self)
+
+
     def pop_back(self):
         """pop_back(vdouble1d_t self)"""
         return _libBornAgainFit.vdouble1d_t_pop_back(self)
@@ -357,7 +359,7 @@ class vdouble1d_t(_object):
         this = _libBornAgainFit.new_vdouble1d_t(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def push_back(self, x):
@@ -411,7 +413,8 @@ vdouble1d_t_swigregister = _libBornAgainFit.vdouble1d_t_swigregister
 vdouble1d_t_swigregister(vdouble1d_t)
 
 class vdouble2d_t(_object):
-    """Proxy of C++ std::vector<(std::vector<(double)>)> class"""
+    """Proxy of C++ std::vector<(std::vector<(double)>)> class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, vdouble2d_t, name, value)
     __swig_getmethods__ = {}
@@ -440,11 +443,6 @@ class vdouble2d_t(_object):
         return _libBornAgainFit.vdouble2d_t___len__(self)
 
 
-    def pop(self):
-        """pop(vdouble2d_t self) -> vdouble1d_t"""
-        return _libBornAgainFit.vdouble2d_t_pop(self)
-
-
     def __getslice__(self, i, j):
         """__getslice__(vdouble2d_t self, std::vector< std::vector< double > >::difference_type i, std::vector< std::vector< double > >::difference_type j) -> vdouble2d_t"""
         return _libBornAgainFit.vdouble2d_t___getslice__(self, i, j)
@@ -452,8 +450,8 @@ class vdouble2d_t(_object):
 
     def __setslice__(self, *args):
         """
-        __setslice__(vdouble2d_t self, std::vector< std::vector< double > >::difference_type i, std::vector< std::vector< double > >::difference_type j, vdouble2d_t v)
         __setslice__(vdouble2d_t self, std::vector< std::vector< double > >::difference_type i, std::vector< std::vector< double > >::difference_type j)
+        __setslice__(vdouble2d_t self, std::vector< std::vector< double > >::difference_type i, std::vector< std::vector< double > >::difference_type j, vdouble2d_t v)
         """
         return _libBornAgainFit.vdouble2d_t___setslice__(self, *args)
 
@@ -488,6 +486,11 @@ class vdouble2d_t(_object):
         return _libBornAgainFit.vdouble2d_t___setitem__(self, *args)
 
 
+    def pop(self):
+        """pop(vdouble2d_t self) -> vdouble1d_t"""
+        return _libBornAgainFit.vdouble2d_t_pop(self)
+
+
     def append(self, x):
         """append(vdouble2d_t self, vdouble1d_t x)"""
         return _libBornAgainFit.vdouble2d_t_append(self, x)
@@ -503,21 +506,11 @@ class vdouble2d_t(_object):
         return _libBornAgainFit.vdouble2d_t_size(self)
 
 
-    def clear(self):
-        """clear(vdouble2d_t self)"""
-        return _libBornAgainFit.vdouble2d_t_clear(self)
-
-
     def swap(self, v):
         """swap(vdouble2d_t self, vdouble2d_t v)"""
         return _libBornAgainFit.vdouble2d_t_swap(self, v)
 
 
-    def get_allocator(self):
-        """get_allocator(vdouble2d_t self) -> std::vector< std::vector< double > >::allocator_type"""
-        return _libBornAgainFit.vdouble2d_t_get_allocator(self)
-
-
     def begin(self):
         """begin(vdouble2d_t self) -> std::vector< std::vector< double > >::iterator"""
         return _libBornAgainFit.vdouble2d_t_begin(self)
@@ -538,6 +531,16 @@ class vdouble2d_t(_object):
         return _libBornAgainFit.vdouble2d_t_rend(self)
 
 
+    def clear(self):
+        """clear(vdouble2d_t self)"""
+        return _libBornAgainFit.vdouble2d_t_clear(self)
+
+
+    def get_allocator(self):
+        """get_allocator(vdouble2d_t self) -> std::vector< std::vector< double > >::allocator_type"""
+        return _libBornAgainFit.vdouble2d_t_get_allocator(self)
+
+
     def pop_back(self):
         """pop_back(vdouble2d_t self)"""
         return _libBornAgainFit.vdouble2d_t_pop_back(self)
@@ -561,7 +564,7 @@ class vdouble2d_t(_object):
         this = _libBornAgainFit.new_vdouble2d_t(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def push_back(self, x):
@@ -615,7 +618,8 @@ vdouble2d_t_swigregister = _libBornAgainFit.vdouble2d_t_swigregister
 vdouble2d_t_swigregister(vdouble2d_t)
 
 class vector_integer_t(_object):
-    """Proxy of C++ std::vector<(int)> class"""
+    """Proxy of C++ std::vector<(int)> class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, vector_integer_t, name, value)
     __swig_getmethods__ = {}
@@ -644,11 +648,6 @@ class vector_integer_t(_object):
         return _libBornAgainFit.vector_integer_t___len__(self)
 
 
-    def pop(self):
-        """pop(vector_integer_t self) -> std::vector< int >::value_type"""
-        return _libBornAgainFit.vector_integer_t_pop(self)
-
-
     def __getslice__(self, i, j):
         """__getslice__(vector_integer_t self, std::vector< int >::difference_type i, std::vector< int >::difference_type j) -> vector_integer_t"""
         return _libBornAgainFit.vector_integer_t___getslice__(self, i, j)
@@ -656,8 +655,8 @@ class vector_integer_t(_object):
 
     def __setslice__(self, *args):
         """
-        __setslice__(vector_integer_t self, std::vector< int >::difference_type i, std::vector< int >::difference_type j, vector_integer_t v)
         __setslice__(vector_integer_t self, std::vector< int >::difference_type i, std::vector< int >::difference_type j)
+        __setslice__(vector_integer_t self, std::vector< int >::difference_type i, std::vector< int >::difference_type j, vector_integer_t v)
         """
         return _libBornAgainFit.vector_integer_t___setslice__(self, *args)
 
@@ -692,6 +691,11 @@ class vector_integer_t(_object):
         return _libBornAgainFit.vector_integer_t___setitem__(self, *args)
 
 
+    def pop(self):
+        """pop(vector_integer_t self) -> std::vector< int >::value_type"""
+        return _libBornAgainFit.vector_integer_t_pop(self)
+
+
     def append(self, x):
         """append(vector_integer_t self, std::vector< int >::value_type const & x)"""
         return _libBornAgainFit.vector_integer_t_append(self, x)
@@ -707,21 +711,11 @@ class vector_integer_t(_object):
         return _libBornAgainFit.vector_integer_t_size(self)
 
 
-    def clear(self):
-        """clear(vector_integer_t self)"""
-        return _libBornAgainFit.vector_integer_t_clear(self)
-
-
     def swap(self, v):
         """swap(vector_integer_t self, vector_integer_t v)"""
         return _libBornAgainFit.vector_integer_t_swap(self, v)
 
 
-    def get_allocator(self):
-        """get_allocator(vector_integer_t self) -> std::vector< int >::allocator_type"""
-        return _libBornAgainFit.vector_integer_t_get_allocator(self)
-
-
     def begin(self):
         """begin(vector_integer_t self) -> std::vector< int >::iterator"""
         return _libBornAgainFit.vector_integer_t_begin(self)
@@ -742,6 +736,16 @@ class vector_integer_t(_object):
         return _libBornAgainFit.vector_integer_t_rend(self)
 
 
+    def clear(self):
+        """clear(vector_integer_t self)"""
+        return _libBornAgainFit.vector_integer_t_clear(self)
+
+
+    def get_allocator(self):
+        """get_allocator(vector_integer_t self) -> std::vector< int >::allocator_type"""
+        return _libBornAgainFit.vector_integer_t_get_allocator(self)
+
+
     def pop_back(self):
         """pop_back(vector_integer_t self)"""
         return _libBornAgainFit.vector_integer_t_pop_back(self)
@@ -765,7 +769,7 @@ class vector_integer_t(_object):
         this = _libBornAgainFit.new_vector_integer_t(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def push_back(self, x):
@@ -819,7 +823,8 @@ vector_integer_t_swigregister = _libBornAgainFit.vector_integer_t_swigregister
 vector_integer_t_swigregister(vector_integer_t)
 
 class vector_longinteger_t(_object):
-    """Proxy of C++ std::vector<(unsigned long)> class"""
+    """Proxy of C++ std::vector<(unsigned long)> class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, vector_longinteger_t, name, value)
     __swig_getmethods__ = {}
@@ -848,11 +853,6 @@ class vector_longinteger_t(_object):
         return _libBornAgainFit.vector_longinteger_t___len__(self)
 
 
-    def pop(self):
-        """pop(vector_longinteger_t self) -> std::vector< unsigned long >::value_type"""
-        return _libBornAgainFit.vector_longinteger_t_pop(self)
-
-
     def __getslice__(self, i, j):
         """__getslice__(vector_longinteger_t self, std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::difference_type j) -> vector_longinteger_t"""
         return _libBornAgainFit.vector_longinteger_t___getslice__(self, i, j)
@@ -860,8 +860,8 @@ class vector_longinteger_t(_object):
 
     def __setslice__(self, *args):
         """
-        __setslice__(vector_longinteger_t self, std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::difference_type j, vector_longinteger_t v)
         __setslice__(vector_longinteger_t self, std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::difference_type j)
+        __setslice__(vector_longinteger_t self, std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::difference_type j, vector_longinteger_t v)
         """
         return _libBornAgainFit.vector_longinteger_t___setslice__(self, *args)
 
@@ -896,6 +896,11 @@ class vector_longinteger_t(_object):
         return _libBornAgainFit.vector_longinteger_t___setitem__(self, *args)
 
 
+    def pop(self):
+        """pop(vector_longinteger_t self) -> std::vector< unsigned long >::value_type"""
+        return _libBornAgainFit.vector_longinteger_t_pop(self)
+
+
     def append(self, x):
         """append(vector_longinteger_t self, std::vector< unsigned long >::value_type const & x)"""
         return _libBornAgainFit.vector_longinteger_t_append(self, x)
@@ -911,21 +916,11 @@ class vector_longinteger_t(_object):
         return _libBornAgainFit.vector_longinteger_t_size(self)
 
 
-    def clear(self):
-        """clear(vector_longinteger_t self)"""
-        return _libBornAgainFit.vector_longinteger_t_clear(self)
-
-
     def swap(self, v):
         """swap(vector_longinteger_t self, vector_longinteger_t v)"""
         return _libBornAgainFit.vector_longinteger_t_swap(self, v)
 
 
-    def get_allocator(self):
-        """get_allocator(vector_longinteger_t self) -> std::vector< unsigned long >::allocator_type"""
-        return _libBornAgainFit.vector_longinteger_t_get_allocator(self)
-
-
     def begin(self):
         """begin(vector_longinteger_t self) -> std::vector< unsigned long >::iterator"""
         return _libBornAgainFit.vector_longinteger_t_begin(self)
@@ -946,6 +941,16 @@ class vector_longinteger_t(_object):
         return _libBornAgainFit.vector_longinteger_t_rend(self)
 
 
+    def clear(self):
+        """clear(vector_longinteger_t self)"""
+        return _libBornAgainFit.vector_longinteger_t_clear(self)
+
+
+    def get_allocator(self):
+        """get_allocator(vector_longinteger_t self) -> std::vector< unsigned long >::allocator_type"""
+        return _libBornAgainFit.vector_longinteger_t_get_allocator(self)
+
+
     def pop_back(self):
         """pop_back(vector_longinteger_t self)"""
         return _libBornAgainFit.vector_longinteger_t_pop_back(self)
@@ -969,7 +974,7 @@ class vector_longinteger_t(_object):
         this = _libBornAgainFit.new_vector_longinteger_t(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def push_back(self, x):
@@ -1023,7 +1028,8 @@ vector_longinteger_t_swigregister = _libBornAgainFit.vector_longinteger_t_swigre
 vector_longinteger_t_swigregister(vector_longinteger_t)
 
 class vector_complex_t(_object):
-    """Proxy of C++ std::vector<(std::complex<(double)>)> class"""
+    """Proxy of C++ std::vector<(std::complex<(double)>)> class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, vector_complex_t, name, value)
     __swig_getmethods__ = {}
@@ -1052,11 +1058,6 @@ class vector_complex_t(_object):
         return _libBornAgainFit.vector_complex_t___len__(self)
 
 
-    def pop(self):
-        """pop(vector_complex_t self) -> std::vector< std::complex< double > >::value_type"""
-        return _libBornAgainFit.vector_complex_t_pop(self)
-
-
     def __getslice__(self, i, j):
         """__getslice__(vector_complex_t self, std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::difference_type j) -> vector_complex_t"""
         return _libBornAgainFit.vector_complex_t___getslice__(self, i, j)
@@ -1064,8 +1065,8 @@ class vector_complex_t(_object):
 
     def __setslice__(self, *args):
         """
-        __setslice__(vector_complex_t self, std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::difference_type j, vector_complex_t v)
         __setslice__(vector_complex_t self, std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::difference_type j)
+        __setslice__(vector_complex_t self, std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::difference_type j, vector_complex_t v)
         """
         return _libBornAgainFit.vector_complex_t___setslice__(self, *args)
 
@@ -1100,6 +1101,11 @@ class vector_complex_t(_object):
         return _libBornAgainFit.vector_complex_t___setitem__(self, *args)
 
 
+    def pop(self):
+        """pop(vector_complex_t self) -> std::vector< std::complex< double > >::value_type"""
+        return _libBornAgainFit.vector_complex_t_pop(self)
+
+
     def append(self, x):
         """append(vector_complex_t self, std::vector< std::complex< double > >::value_type const & x)"""
         return _libBornAgainFit.vector_complex_t_append(self, x)
@@ -1115,21 +1121,11 @@ class vector_complex_t(_object):
         return _libBornAgainFit.vector_complex_t_size(self)
 
 
-    def clear(self):
-        """clear(vector_complex_t self)"""
-        return _libBornAgainFit.vector_complex_t_clear(self)
-
-
     def swap(self, v):
         """swap(vector_complex_t self, vector_complex_t v)"""
         return _libBornAgainFit.vector_complex_t_swap(self, v)
 
 
-    def get_allocator(self):
-        """get_allocator(vector_complex_t self) -> std::vector< std::complex< double > >::allocator_type"""
-        return _libBornAgainFit.vector_complex_t_get_allocator(self)
-
-
     def begin(self):
         """begin(vector_complex_t self) -> std::vector< std::complex< double > >::iterator"""
         return _libBornAgainFit.vector_complex_t_begin(self)
@@ -1150,6 +1146,16 @@ class vector_complex_t(_object):
         return _libBornAgainFit.vector_complex_t_rend(self)
 
 
+    def clear(self):
+        """clear(vector_complex_t self)"""
+        return _libBornAgainFit.vector_complex_t_clear(self)
+
+
+    def get_allocator(self):
+        """get_allocator(vector_complex_t self) -> std::vector< std::complex< double > >::allocator_type"""
+        return _libBornAgainFit.vector_complex_t_get_allocator(self)
+
+
     def pop_back(self):
         """pop_back(vector_complex_t self)"""
         return _libBornAgainFit.vector_complex_t_pop_back(self)
@@ -1173,7 +1179,7 @@ class vector_complex_t(_object):
         this = _libBornAgainFit.new_vector_complex_t(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def push_back(self, x):
@@ -1227,7 +1233,8 @@ vector_complex_t_swigregister = _libBornAgainFit.vector_complex_t_swigregister
 vector_complex_t_swigregister(vector_complex_t)
 
 class vector_string_t(_object):
-    """Proxy of C++ std::vector<(std::string)> class"""
+    """Proxy of C++ std::vector<(std::string)> class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, vector_string_t, name, value)
     __swig_getmethods__ = {}
@@ -1256,11 +1263,6 @@ class vector_string_t(_object):
         return _libBornAgainFit.vector_string_t___len__(self)
 
 
-    def pop(self):
-        """pop(vector_string_t self) -> std::vector< std::string >::value_type"""
-        return _libBornAgainFit.vector_string_t_pop(self)
-
-
     def __getslice__(self, i, j):
         """__getslice__(vector_string_t self, std::vector< std::string >::difference_type i, std::vector< std::string >::difference_type j) -> vector_string_t"""
         return _libBornAgainFit.vector_string_t___getslice__(self, i, j)
@@ -1268,8 +1270,8 @@ class vector_string_t(_object):
 
     def __setslice__(self, *args):
         """
-        __setslice__(vector_string_t self, std::vector< std::string >::difference_type i, std::vector< std::string >::difference_type j, vector_string_t v)
         __setslice__(vector_string_t self, std::vector< std::string >::difference_type i, std::vector< std::string >::difference_type j)
+        __setslice__(vector_string_t self, std::vector< std::string >::difference_type i, std::vector< std::string >::difference_type j, vector_string_t v)
         """
         return _libBornAgainFit.vector_string_t___setslice__(self, *args)
 
@@ -1304,6 +1306,11 @@ class vector_string_t(_object):
         return _libBornAgainFit.vector_string_t___setitem__(self, *args)
 
 
+    def pop(self):
+        """pop(vector_string_t self) -> std::vector< std::string >::value_type"""
+        return _libBornAgainFit.vector_string_t_pop(self)
+
+
     def append(self, x):
         """append(vector_string_t self, std::vector< std::string >::value_type const & x)"""
         return _libBornAgainFit.vector_string_t_append(self, x)
@@ -1319,21 +1326,11 @@ class vector_string_t(_object):
         return _libBornAgainFit.vector_string_t_size(self)
 
 
-    def clear(self):
-        """clear(vector_string_t self)"""
-        return _libBornAgainFit.vector_string_t_clear(self)
-
-
     def swap(self, v):
         """swap(vector_string_t self, vector_string_t v)"""
         return _libBornAgainFit.vector_string_t_swap(self, v)
 
 
-    def get_allocator(self):
-        """get_allocator(vector_string_t self) -> std::vector< std::string >::allocator_type"""
-        return _libBornAgainFit.vector_string_t_get_allocator(self)
-
-
     def begin(self):
         """begin(vector_string_t self) -> std::vector< std::string >::iterator"""
         return _libBornAgainFit.vector_string_t_begin(self)
@@ -1354,6 +1351,16 @@ class vector_string_t(_object):
         return _libBornAgainFit.vector_string_t_rend(self)
 
 
+    def clear(self):
+        """clear(vector_string_t self)"""
+        return _libBornAgainFit.vector_string_t_clear(self)
+
+
+    def get_allocator(self):
+        """get_allocator(vector_string_t self) -> std::vector< std::string >::allocator_type"""
+        return _libBornAgainFit.vector_string_t_get_allocator(self)
+
+
     def pop_back(self):
         """pop_back(vector_string_t self)"""
         return _libBornAgainFit.vector_string_t_pop_back(self)
@@ -1377,7 +1384,7 @@ class vector_string_t(_object):
         this = _libBornAgainFit.new_vector_string_t(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def push_back(self, x):
@@ -1439,6 +1446,7 @@ class Attributes(_object):
     C++ includes: Attributes.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, Attributes, name, value)
     __swig_getmethods__ = {}
@@ -1455,7 +1463,7 @@ class Attributes(_object):
         this = _libBornAgainFit.new_Attributes()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def fixed():
@@ -1516,263 +1524,168 @@ def Attributes_free():
     """Attributes_free() -> Attributes"""
     return _libBornAgainFit.Attributes_free()
 
-class Limits(_object):
-    """
-
-
-    Limits for a fit parameter.
+class RealLimits(_object):
+    """Proxy of C++ RealLimits class."""
 
-    C++ includes: Limits.h
-
-    """
     __swig_setmethods__ = {}
-    __setattr__ = lambda self, name, value: _swig_setattr(self, Limits, name, value)
+    __setattr__ = lambda self, name, value: _swig_setattr(self, RealLimits, name, value)
     __swig_getmethods__ = {}
-    __getattr__ = lambda self, name: _swig_getattr(self, Limits, name)
+    __getattr__ = lambda self, name: _swig_getattr(self, RealLimits, name)
     __repr__ = _swig_repr
 
     def __init__(self):
-        """
-        __init__(Limits self) -> Limits
-
-        Limits::Limits()
-
-        """
-        this = _libBornAgainFit.new_Limits()
+        """__init__(RealLimits self) -> RealLimits"""
+        this = _libBornAgainFit.new_RealLimits()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def hasLowerLimit(self):
-        """
-        hasLowerLimit(Limits self) -> bool
-
-        bool Limits::hasLowerLimit() const
-
-        if has lower limit 
-
-        """
-        return _libBornAgainFit.Limits_hasLowerLimit(self)
+        """hasLowerLimit(RealLimits self) -> bool"""
+        return _libBornAgainFit.RealLimits_hasLowerLimit(self)
 
 
     def getLowerLimit(self):
-        """
-        getLowerLimit(Limits self) -> double
-
-        double Limits::getLowerLimit() const
-
-        Returns lower limit. 
-
-        """
-        return _libBornAgainFit.Limits_getLowerLimit(self)
+        """getLowerLimit(RealLimits self) -> double"""
+        return _libBornAgainFit.RealLimits_getLowerLimit(self)
 
 
     def setLowerLimit(self, value):
-        """
-        setLowerLimit(Limits self, double value)
-
-        void Limits::setLowerLimit(double value)
-
-        Sets lower limit. 
-
-        """
-        return _libBornAgainFit.Limits_setLowerLimit(self, value)
+        """setLowerLimit(RealLimits self, double value)"""
+        return _libBornAgainFit.RealLimits_setLowerLimit(self, value)
 
 
     def removeLowerLimit(self):
-        """
-        removeLowerLimit(Limits self)
-
-        void Limits::removeLowerLimit()
-
-        remove lower limit 
-
-        """
-        return _libBornAgainFit.Limits_removeLowerLimit(self)
+        """removeLowerLimit(RealLimits self)"""
+        return _libBornAgainFit.RealLimits_removeLowerLimit(self)
 
 
     def hasUpperLimit(self):
-        """
-        hasUpperLimit(Limits self) -> bool
-
-        bool Limits::hasUpperLimit() const
-
-        if has upper limit 
-
-        """
-        return _libBornAgainFit.Limits_hasUpperLimit(self)
+        """hasUpperLimit(RealLimits self) -> bool"""
+        return _libBornAgainFit.RealLimits_hasUpperLimit(self)
 
 
     def getUpperLimit(self):
-        """
-        getUpperLimit(Limits self) -> double
-
-        double Limits::getUpperLimit() const
-
-        Returns upper limit. 
-
-        """
-        return _libBornAgainFit.Limits_getUpperLimit(self)
+        """getUpperLimit(RealLimits self) -> double"""
+        return _libBornAgainFit.RealLimits_getUpperLimit(self)
 
 
     def setUpperLimit(self, value):
-        """
-        setUpperLimit(Limits self, double value)
-
-        void Limits::setUpperLimit(double value)
-
-        Sets upper limit. 
-
-        """
-        return _libBornAgainFit.Limits_setUpperLimit(self, value)
+        """setUpperLimit(RealLimits self, double value)"""
+        return _libBornAgainFit.RealLimits_setUpperLimit(self, value)
 
 
     def removeUpperLimit(self):
-        """
-        removeUpperLimit(Limits self)
-
-        void Limits::removeUpperLimit()
-
-        remove upper limit 
-
-        """
-        return _libBornAgainFit.Limits_removeUpperLimit(self)
+        """removeUpperLimit(RealLimits self)"""
+        return _libBornAgainFit.RealLimits_removeUpperLimit(self)
 
 
     def hasLowerAndUpperLimits(self):
-        """
-        hasLowerAndUpperLimits(Limits self) -> bool
-
-        bool Limits::hasLowerAndUpperLimits() const
-
-        if has lower and upper limit 
-
-        """
-        return _libBornAgainFit.Limits_hasLowerAndUpperLimits(self)
+        """hasLowerAndUpperLimits(RealLimits self) -> bool"""
+        return _libBornAgainFit.RealLimits_hasLowerAndUpperLimits(self)
 
 
     def setLimits(self, xmin, xmax):
-        """
-        setLimits(Limits self, double xmin, double xmax)
-
-        void Limits::setLimits(double xmin, double xmax)
-
-        Sets lower and upper limits. 
-
-        """
-        return _libBornAgainFit.Limits_setLimits(self, xmin, xmax)
+        """setLimits(RealLimits self, double xmin, double xmax)"""
+        return _libBornAgainFit.RealLimits_setLimits(self, xmin, xmax)
 
 
     def removeLimits(self):
-        """
-        removeLimits(Limits self)
-
-        void Limits::removeLimits()
-
-        remove limits 
-
-        """
-        return _libBornAgainFit.Limits_removeLimits(self)
+        """removeLimits(RealLimits self)"""
+        return _libBornAgainFit.RealLimits_removeLimits(self)
 
 
     def isInRange(self, value):
-        """
-        isInRange(Limits self, double value) -> bool
-
-        bool Limits::isInRange(double value) const
-
-        returns true if proposed value is in limits range 
-
-        """
-        return _libBornAgainFit.Limits_isInRange(self, value)
+        """isInRange(RealLimits self, double value) -> bool"""
+        return _libBornAgainFit.RealLimits_isInRange(self, value)
 
 
     def lowerLimited(bound_value):
-        """lowerLimited(double bound_value) -> Limits"""
-        return _libBornAgainFit.Limits_lowerLimited(bound_value)
+        """lowerLimited(double bound_value) -> RealLimits"""
+        return _libBornAgainFit.RealLimits_lowerLimited(bound_value)
 
     if _newclass:
         lowerLimited = staticmethod(lowerLimited)
     __swig_getmethods__["lowerLimited"] = lambda x: lowerLimited
 
     def positive():
-        """positive() -> Limits"""
-        return _libBornAgainFit.Limits_positive()
+        """positive() -> RealLimits"""
+        return _libBornAgainFit.RealLimits_positive()
 
     if _newclass:
         positive = staticmethod(positive)
     __swig_getmethods__["positive"] = lambda x: positive
 
     def nonnegative():
-        """nonnegative() -> Limits"""
-        return _libBornAgainFit.Limits_nonnegative()
+        """nonnegative() -> RealLimits"""
+        return _libBornAgainFit.RealLimits_nonnegative()
 
     if _newclass:
         nonnegative = staticmethod(nonnegative)
     __swig_getmethods__["nonnegative"] = lambda x: nonnegative
 
     def upperLimited(bound_value):
-        """upperLimited(double bound_value) -> Limits"""
-        return _libBornAgainFit.Limits_upperLimited(bound_value)
+        """upperLimited(double bound_value) -> RealLimits"""
+        return _libBornAgainFit.RealLimits_upperLimited(bound_value)
 
     if _newclass:
         upperLimited = staticmethod(upperLimited)
     __swig_getmethods__["upperLimited"] = lambda x: upperLimited
 
     def limited(left_bound_value, right_bound_value):
-        """limited(double left_bound_value, double right_bound_value) -> Limits"""
-        return _libBornAgainFit.Limits_limited(left_bound_value, right_bound_value)
+        """limited(double left_bound_value, double right_bound_value) -> RealLimits"""
+        return _libBornAgainFit.RealLimits_limited(left_bound_value, right_bound_value)
 
     if _newclass:
         limited = staticmethod(limited)
     __swig_getmethods__["limited"] = lambda x: limited
 
     def limitless():
-        """limitless() -> Limits"""
-        return _libBornAgainFit.Limits_limitless()
+        """limitless() -> RealLimits"""
+        return _libBornAgainFit.RealLimits_limitless()
 
     if _newclass:
         limitless = staticmethod(limitless)
     __swig_getmethods__["limitless"] = lambda x: limitless
 
     def __eq__(self, other):
-        """__eq__(Limits self, Limits other) -> bool"""
-        return _libBornAgainFit.Limits___eq__(self, other)
+        """__eq__(RealLimits self, RealLimits other) -> bool"""
+        return _libBornAgainFit.RealLimits___eq__(self, other)
 
 
     def __ne__(self, other):
-        """__ne__(Limits self, Limits other) -> bool"""
-        return _libBornAgainFit.Limits___ne__(self, other)
+        """__ne__(RealLimits self, RealLimits other) -> bool"""
+        return _libBornAgainFit.RealLimits___ne__(self, other)
 
-    __swig_destroy__ = _libBornAgainFit.delete_Limits
+    __swig_destroy__ = _libBornAgainFit.delete_RealLimits
     __del__ = lambda self: None
-Limits_swigregister = _libBornAgainFit.Limits_swigregister
-Limits_swigregister(Limits)
+RealLimits_swigregister = _libBornAgainFit.RealLimits_swigregister
+RealLimits_swigregister(RealLimits)
 
-def Limits_lowerLimited(bound_value):
-    """Limits_lowerLimited(double bound_value) -> Limits"""
-    return _libBornAgainFit.Limits_lowerLimited(bound_value)
+def RealLimits_lowerLimited(bound_value):
+    """RealLimits_lowerLimited(double bound_value) -> RealLimits"""
+    return _libBornAgainFit.RealLimits_lowerLimited(bound_value)
 
-def Limits_positive():
-    """Limits_positive() -> Limits"""
-    return _libBornAgainFit.Limits_positive()
+def RealLimits_positive():
+    """RealLimits_positive() -> RealLimits"""
+    return _libBornAgainFit.RealLimits_positive()
 
-def Limits_nonnegative():
-    """Limits_nonnegative() -> Limits"""
-    return _libBornAgainFit.Limits_nonnegative()
+def RealLimits_nonnegative():
+    """RealLimits_nonnegative() -> RealLimits"""
+    return _libBornAgainFit.RealLimits_nonnegative()
 
-def Limits_upperLimited(bound_value):
-    """Limits_upperLimited(double bound_value) -> Limits"""
-    return _libBornAgainFit.Limits_upperLimited(bound_value)
+def RealLimits_upperLimited(bound_value):
+    """RealLimits_upperLimited(double bound_value) -> RealLimits"""
+    return _libBornAgainFit.RealLimits_upperLimited(bound_value)
 
-def Limits_limited(left_bound_value, right_bound_value):
-    """Limits_limited(double left_bound_value, double right_bound_value) -> Limits"""
-    return _libBornAgainFit.Limits_limited(left_bound_value, right_bound_value)
+def RealLimits_limited(left_bound_value, right_bound_value):
+    """RealLimits_limited(double left_bound_value, double right_bound_value) -> RealLimits"""
+    return _libBornAgainFit.RealLimits_limited(left_bound_value, right_bound_value)
 
-def Limits_limitless():
-    """Limits_limitless() -> Limits"""
-    return _libBornAgainFit.Limits_limitless()
+def RealLimits_limitless():
+    """RealLimits_limitless() -> RealLimits"""
+    return _libBornAgainFit.RealLimits_limitless()
 
 class Configurable(_object):
     """
@@ -1783,6 +1696,7 @@ class Configurable(_object):
     C++ includes: Configurable.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, Configurable, name, value)
     __swig_getmethods__ = {}
@@ -1802,7 +1716,7 @@ class Configurable(_object):
         this = _libBornAgainFit.new_Configurable(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def option(self, *args):
@@ -1842,6 +1756,7 @@ class IMinimizer(Configurable):
     C++ includes: IMinimizer.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [Configurable]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -2044,7 +1959,7 @@ class IMinimizer(Configurable):
 IMinimizer_swigregister = _libBornAgainFit.IMinimizer_swigregister
 IMinimizer_swigregister(IMinimizer)
 
-class FitParameter(Limits, Attributes):
+class FitParameter(RealLimits, Attributes):
     """
 
 
@@ -2053,12 +1968,13 @@ class FitParameter(Limits, Attributes):
     C++ includes: FitParameter.h
 
     """
+
     __swig_setmethods__ = {}
-    for _s in [Limits, Attributes]:
+    for _s in [RealLimits, Attributes]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
     __setattr__ = lambda self, name, value: _swig_setattr(self, FitParameter, name, value)
     __swig_getmethods__ = {}
-    for _s in [Limits, Attributes]:
+    for _s in [RealLimits, Attributes]:
         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
     __getattr__ = lambda self, name: _swig_getattr(self, FitParameter, name)
     __repr__ = _swig_repr
@@ -2066,9 +1982,9 @@ class FitParameter(Limits, Attributes):
     def __init__(self, *args):
         """
         __init__(FitParameter self) -> FitParameter
-        __init__(FitParameter self, std::string const & name, double value, double step=0.0, Limits limits, Attributes attr, double error=0.0) -> FitParameter
-        __init__(FitParameter self, std::string const & name, double value, double step=0.0, Limits limits, Attributes attr) -> FitParameter
-        __init__(FitParameter self, std::string const & name, double value, double step=0.0, Limits limits) -> FitParameter
+        __init__(FitParameter self, std::string const & name, double value, double step=0.0, RealLimits limits, Attributes attr, double error=0.0) -> FitParameter
+        __init__(FitParameter self, std::string const & name, double value, double step=0.0, RealLimits limits, Attributes attr) -> FitParameter
+        __init__(FitParameter self, std::string const & name, double value, double step=0.0, RealLimits limits) -> FitParameter
         __init__(FitParameter self, std::string const & name, double value, double step=0.0) -> FitParameter
         __init__(FitParameter self, std::string const & name, double value) -> FitParameter
 
@@ -2078,7 +1994,7 @@ class FitParameter(Limits, Attributes):
         this = _libBornAgainFit.new_FitParameter(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainFit.delete_FitParameter
     __del__ = lambda self: None
@@ -2164,6 +2080,7 @@ class FitSuiteParameters(_object):
     C++ includes: FitSuiteParameters.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, FitSuiteParameters, name, value)
     __swig_getmethods__ = {}
@@ -2180,7 +2097,7 @@ class FitSuiteParameters(_object):
         this = _libBornAgainFit.new_FitSuiteParameters()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainFit.delete_FitSuiteParameters
     __del__ = lambda self: None
@@ -2406,6 +2323,7 @@ class MinimizerOptions(_object):
     C++ includes: MinimizerOptions.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, MinimizerOptions, name, value)
     __swig_getmethods__ = {}
@@ -2422,7 +2340,7 @@ class MinimizerOptions(_object):
         this = _libBornAgainFit.new_MinimizerOptions()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainFit.delete_MinimizerOptions
     __del__ = lambda self: None
@@ -2634,6 +2552,7 @@ class MinimizerFactory(_object):
     C++ includes: MinimizerFactory.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, MinimizerFactory, name, value)
     __swig_getmethods__ = {}
@@ -2675,7 +2594,7 @@ class MinimizerFactory(_object):
         this = _libBornAgainFit.new_MinimizerFactory()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainFit.delete_MinimizerFactory
     __del__ = lambda self: None
diff --git a/auto/Wrap/libBornAgainFit_wrap.cpp b/auto/Wrap/libBornAgainFit_wrap.cpp
index 57715e2559cdb419644a8034dff539167e77c4cb..c612f486bd9fffcc92bc61a432d455391f3d692d 100644
--- a/auto/Wrap/libBornAgainFit_wrap.cpp
+++ b/auto/Wrap/libBornAgainFit_wrap.cpp
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 3.0.7
+ * Version 3.0.8
  *
  * This file is not intended to be easily readable and contains a number of
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -8,7 +8,11 @@
  * interface file instead.
  * ----------------------------------------------------------------------------- */
 
+
+#ifndef SWIGPYTHON
 #define SWIGPYTHON
+#endif
+
 #define SWIG_DIRECTORS
 #define SWIG_PYTHON_DIRECTOR_NO_VTABLE
 
@@ -1326,7 +1330,7 @@ SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) {
 
 /* Unpack the argument tuple */
 
-SWIGINTERN int
+SWIGINTERN Py_ssize_t
 SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs)
 {
   if (!args) {
@@ -1340,7 +1344,7 @@ SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssi
   }  
   if (!PyTuple_Check(args)) {
     if (min <= 1 && max >= 1) {
-      int i;
+      Py_ssize_t i;
       objs[0] = args;
       for (i = 1; i < max; ++i) {
 	objs[i] = 0;
@@ -1360,7 +1364,7 @@ SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssi
 		   name, (min == max ? "" : "at most "), (int)max, (int)l);
       return 0;
     } else {
-      int i;
+      Py_ssize_t i;
       for (i = 0; i < l; ++i) {
 	objs[i] = PyTuple_GET_ITEM(args, i);
       }
@@ -1701,16 +1705,32 @@ SwigPyObject_dealloc(PyObject *v)
     if (destroy) {
       /* destroy is always a VARARGS method */
       PyObject *res;
+
+      /* PyObject_CallFunction() has the potential to silently drop
+         the active active exception.  In cases of unnamed temporary
+         variable or where we just finished iterating over a generator
+         StopIteration will be active right now, and this needs to
+         remain true upon return from SwigPyObject_dealloc.  So save
+         and restore. */
+      
+      PyObject *val = NULL, *type = NULL, *tb = NULL;
+      PyErr_Fetch(&val, &type, &tb);
+
       if (data->delargs) {
-	/* we need to create a temporary object to carry the destroy operation */
-	PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0);
-	res = SWIG_Python_CallFunctor(destroy, tmp);
-	Py_DECREF(tmp);
+        /* we need to create a temporary object to carry the destroy operation */
+        PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0);
+        res = SWIG_Python_CallFunctor(destroy, tmp);
+        Py_DECREF(tmp);
       } else {
-	PyCFunction meth = PyCFunction_GET_FUNCTION(destroy);
-	PyObject *mself = PyCFunction_GET_SELF(destroy);
-	res = ((*meth)(mself, v));
+        PyCFunction meth = PyCFunction_GET_FUNCTION(destroy);
+        PyObject *mself = PyCFunction_GET_SELF(destroy);
+        res = ((*meth)(mself, v));
       }
+      if (!res)
+        PyErr_WriteUnraisable(destroy);
+
+      PyErr_Restore(val, type, tb);
+
       Py_XDECREF(res);
     } 
 #if !defined(SWIG_PYTHON_SILENT_MEMLEAK)
@@ -1734,6 +1754,7 @@ SwigPyObject_append(PyObject* v, PyObject* next)
   next = tmp;
 #endif
   if (!SwigPyObject_Check(next)) {
+    PyErr_SetString(PyExc_TypeError, "Attempt to append a non SwigPyObject");
     return NULL;
   }
   sobj->next = next;
@@ -1889,7 +1910,9 @@ SwigPyObject_TypeOnce(void) {
     (unaryfunc)SwigPyObject_oct,  /*nb_oct*/
     (unaryfunc)SwigPyObject_hex,  /*nb_hex*/
 #endif
-#if PY_VERSION_HEX >= 0x03000000 /* 3.0 */
+#if PY_VERSION_HEX >= 0x03050000 /* 3.5 */
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_matrix_multiply */
+#elif PY_VERSION_HEX >= 0x03000000 /* 3.0 */
     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index, nb_inplace_divide removed */
 #elif PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */
     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */
@@ -1969,10 +1992,19 @@ SwigPyObject_TypeOnce(void) {
       0,                                    /* tp_del */
 #endif
 #if PY_VERSION_HEX >= 0x02060000
-      0,                                    /* tp_version */
+      0,                                    /* tp_version_tag */
+#endif
+#if PY_VERSION_HEX >= 0x03040000
+      0,                                    /* tp_finalize */
 #endif
 #ifdef COUNT_ALLOCS
-      0,0,0,0                               /* tp_alloc -> tp_next */
+      0,                                    /* tp_allocs */
+      0,                                    /* tp_frees */
+      0,                                    /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+      0,                                    /* tp_prev */
+#endif
+      0                                     /* tp_next */
 #endif
     };
     swigpyobject_type = tmp;
@@ -2148,10 +2180,19 @@ SwigPyPacked_TypeOnce(void) {
       0,                                    /* tp_del */
 #endif
 #if PY_VERSION_HEX >= 0x02060000
-      0,                                    /* tp_version */
+      0,                                    /* tp_version_tag */
+#endif
+#if PY_VERSION_HEX >= 0x03040000
+      0,                                    /* tp_finalize */
 #endif
 #ifdef COUNT_ALLOCS
-      0,0,0,0                               /* tp_alloc -> tp_next */
+      0,                                    /* tp_allocs */
+      0,                                    /* tp_frees */
+      0,                                    /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+      0,                                    /* tp_prev */
+#endif
+      0                                     /* tp_next */
 #endif
     };
     swigpypacked_type = tmp;
@@ -2679,13 +2720,11 @@ PyModule_AddObject(PyObject *m, char *name, PyObject *o)
 {
   PyObject *dict;
   if (!PyModule_Check(m)) {
-    PyErr_SetString(PyExc_TypeError,
-		    "PyModule_AddObject() needs module as first arg");
+    PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs module as first arg");
     return SWIG_ERROR;
   }
   if (!o) {
-    PyErr_SetString(PyExc_TypeError,
-		    "PyModule_AddObject() needs non-NULL value");
+    PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs non-NULL value");
     return SWIG_ERROR;
   }
   
@@ -3420,9 +3459,9 @@ namespace Swig {
 #define SWIGTYPE_p_FitParameter swig_types[2]
 #define SWIGTYPE_p_FitSuiteParameters swig_types[3]
 #define SWIGTYPE_p_IMinimizer swig_types[4]
-#define SWIGTYPE_p_Limits swig_types[5]
-#define SWIGTYPE_p_MinimizerFactory swig_types[6]
-#define SWIGTYPE_p_MinimizerOptions swig_types[7]
+#define SWIGTYPE_p_MinimizerFactory swig_types[5]
+#define SWIGTYPE_p_MinimizerOptions swig_types[6]
+#define SWIGTYPE_p_RealLimits swig_types[7]
 #define SWIGTYPE_p_allocator_type swig_types[8]
 #define SWIGTYPE_p_char swig_types[9]
 #define SWIGTYPE_p_difference_type swig_types[10]
@@ -3490,7 +3529,7 @@ static swig_module_info swig_module = {swig_types, 50, 0, 0, 0, 0};
 #endif
 #define SWIG_name    "_libBornAgainFit"
 
-#define SWIGVERSION 0x030007 
+#define SWIGVERSION 0x030008 
 #define SWIG_VERSION SWIGVERSION
 
 
@@ -3736,9 +3775,11 @@ SWIG_AsVal_double (PyObject *obj, double *val)
   if (PyFloat_Check(obj)) {
     if (val) *val = PyFloat_AsDouble(obj);
     return SWIG_OK;
+#if PY_VERSION_HEX < 0x03000000
   } else if (PyInt_Check(obj)) {
     if (val) *val = PyInt_AsLong(obj);
     return SWIG_OK;
+#endif
   } else if (PyLong_Check(obj)) {
     double v = PyLong_AsDouble(obj);
     if (!PyErr_Occurred()) {
@@ -3830,18 +3871,7 @@ SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val)
       return SWIG_OK;
     } else {
       PyErr_Clear();
-#if PY_VERSION_HEX >= 0x03000000
-      {
-        long v = PyLong_AsLong(obj);
-        if (!PyErr_Occurred()) {
-          if (v < 0) {
-            return SWIG_OverflowError;
-          }
-        } else {
-          PyErr_Clear();
-        }
-      }
-#endif
+      return SWIG_OverflowError;
     }
   }
 #ifdef SWIG_PYTHON_CAST_MODE
@@ -3898,16 +3928,20 @@ SWIGINTERNINLINE PyObject*
 SWIGINTERN int
 SWIG_AsVal_long (PyObject *obj, long* val)
 {
+#if PY_VERSION_HEX < 0x03000000
   if (PyInt_Check(obj)) {
     if (val) *val = PyInt_AsLong(obj);
     return SWIG_OK;
-  } else if (PyLong_Check(obj)) {
+  } else
+#endif
+  if (PyLong_Check(obj)) {
     long v = PyLong_AsLong(obj);
     if (!PyErr_Occurred()) {
       if (val) *val = v;
       return SWIG_OK;
     } else {
       PyErr_Clear();
+      return SWIG_OverflowError;
     }
   }
 #ifdef SWIG_PYTHON_CAST_MODE
@@ -3957,7 +3991,7 @@ SWIGINTERNINLINE PyObject*
 }
 
 
-namespace swig {  
+namespace swig {
   template <class Type>
   struct noconst_traits {
     typedef Type noconst_type;
@@ -3971,7 +4005,7 @@ namespace swig {
   /*
     type categories
   */
-  struct pointer_category { };  
+  struct pointer_category { };
   struct value_category { };
 
   /*
@@ -3984,12 +4018,12 @@ namespace swig {
     return traits<typename noconst_traits<Type >::noconst_type >::type_name();
   }
 
-  template <class Type> 
+  template <class Type>
   struct traits_info {
     static swig_type_info *type_query(std::string name) {
       name += " *";
       return SWIG_TypeQuery(name.c_str());
-    }    
+    }
     static swig_type_info *type_info() {
       static swig_type_info *info = type_query(type_name<Type>());
       return info;
@@ -4010,17 +4044,17 @@ namespace swig {
       std::string ptrname = name;
       ptrname += " *";
       return ptrname;
-    }    
+    }
     static const char* type_name() {
       static std::string name = make_ptr_name(swig::type_name<Type>());
       return name.c_str();
     }
   };
 
-  template <class Type, class Category> 
+  template <class Type, class Category>
   struct traits_as { };
- 
-  template <class Type, class Category> 
+
+  template <class Type, class Category>
   struct traits_check { };
 
 }
@@ -4364,6 +4398,12 @@ namespace swig {
     return pos;
   }
 
+  template <class Sequence>
+  inline void
+  erase(Sequence* seq, const typename Sequence::iterator& position) {
+    seq->erase(position);
+  }
+
   template <class Sequence, class Difference>
   inline Sequence*
   getslice(const Sequence* self, Difference i, Difference j, Py_ssize_t step) {
@@ -4738,7 +4778,7 @@ namespace swig
   template <class T>
   struct SwigPySequence_Ref
   {
-    SwigPySequence_Ref(PyObject* seq, int index)
+    SwigPySequence_Ref(PyObject* seq, Py_ssize_t index)
       : _seq(seq), _index(index)
     {
     }
@@ -4750,7 +4790,7 @@ namespace swig
 	return swig::as<T>(item, true);
       } catch (std::exception& e) {
 	char msg[1024];
-	sprintf(msg, "in sequence element %d ", _index);
+	sprintf(msg, "in sequence element %d ", (int)_index);
 	if (!PyErr_Occurred()) {
 	  ::SWIG_Error(SWIG_TypeError,  swig::type_name<T>());
 	}
@@ -4768,7 +4808,7 @@ namespace swig
 
   private:
     PyObject* _seq;
-    int _index;
+    Py_ssize_t _index;
   };
 
   template <class T>
@@ -4789,13 +4829,13 @@ namespace swig
     typedef Reference reference;
     typedef T value_type;
     typedef T* pointer;
-    typedef int difference_type;
+    typedef Py_ssize_t difference_type;
 
     SwigPySequence_InputIterator()
     {
     }
 
-    SwigPySequence_InputIterator(PyObject* seq, int index)
+    SwigPySequence_InputIterator(PyObject* seq, Py_ssize_t index)
       : _seq(seq), _index(index)
     {
     }
@@ -4875,6 +4915,7 @@ namespace swig
     difference_type _index;
   };
 
+  // STL container wrapper around a Python sequence
   template <class T>
   struct SwigPySequence_Cont
   {
@@ -4882,8 +4923,8 @@ namespace swig
     typedef const SwigPySequence_Ref<T> const_reference;
     typedef T value_type;
     typedef T* pointer;
-    typedef int difference_type;
-    typedef int size_type;
+    typedef Py_ssize_t difference_type;
+    typedef size_t size_type;
     typedef const pointer const_pointer;
     typedef SwigPySequence_InputIterator<T, reference> iterator;
     typedef SwigPySequence_InputIterator<T, const_reference> const_iterator;
@@ -4944,13 +4985,13 @@ namespace swig
 
     bool check(bool set_err = true) const
     {
-      int s = size();
-      for (int i = 0; i < s; ++i) {
+      Py_ssize_t s = size();
+      for (Py_ssize_t i = 0; i < s; ++i) {
 	swig::SwigVar_PyObject item = PySequence_GetItem(_seq, i);
 	if (!swig::check<value_type>(item)) {
 	  if (set_err) {
 	    char msg[1024];
-	    sprintf(msg, "in sequence element %d", i);
+	    sprintf(msg, "in sequence element %d", (int)i);
 	    SWIG_Error(SWIG_RuntimeError, msg);
 	  }
 	  return false;
@@ -4970,17 +5011,17 @@ namespace swig
 
 
 namespace swig {
-  template <> struct traits<double > {
+  template <> struct traits< double > {
     typedef value_category category;
     static const char* type_name() { return"double"; }
-  };  
-  template <>  struct traits_asval<double > {   
+  };
+  template <>  struct traits_asval< double > {
     typedef double value_type;
-    static int asval(PyObject *obj, value_type *val) { 
+    static int asval(PyObject *obj, value_type *val) {
       return SWIG_AsVal_double (obj, val);
     }
   };
-  template <>  struct traits_from<double > {
+  template <>  struct traits_from< double > {
     typedef double value_type;
     static PyObject *from(const value_type& val) {
       return SWIG_From_double  (val);
@@ -5054,10 +5095,9 @@ namespace swig {
 #endif
       size_type size = seq.size();
       if (size <= (size_type)INT_MAX) {
-	PyObject *obj = PyTuple_New((int)size);
-	int i = 0;
-	for (const_iterator it = seq.begin();
-	     it != seq.end(); ++it, ++i) {
+	PyObject *obj = PyTuple_New((Py_ssize_t)size);
+	Py_ssize_t i = 0;
+	for (const_iterator it = seq.begin(); it != seq.end(); ++it, ++i) {
 	  PyTuple_SetItem(obj,i,swig::from<value_type>(*it));
 	}
 	return obj;
@@ -5088,7 +5128,7 @@ namespace swig {
 
 
       namespace swig {
-	template <>  struct traits<std::vector<double, std::allocator< double > > > {
+	template <>  struct traits<std::vector< double, std::allocator< double > > > {
 	  typedef pointer_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "double" "," "std::allocator< double >" " >";
@@ -5123,24 +5163,20 @@ SWIG_From_size_t  (size_t value)
   return SWIG_From_unsigned_SS_long  (static_cast< unsigned long >(value));
 }
 
-SWIGINTERN std::vector< double >::value_type std_vector_Sl_double_Sg__pop(std::vector< double > *self){
-      if (self->size() == 0)
-	throw std::out_of_range("pop from empty container");
-      std::vector<double,std::allocator< double > >::value_type x = self->back();
-      self->pop_back();
-      return x;
-    }
 SWIGINTERN std::vector< double,std::allocator< double > > *std_vector_Sl_double_Sg____getslice__(std::vector< double > *self,std::vector< double >::difference_type i,std::vector< double >::difference_type j){
       return swig::getslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_double_Sg____setslice____SWIG_0(std::vector< double > *self,std::vector< double >::difference_type i,std::vector< double >::difference_type j,std::vector< double,std::allocator< double > > const &v=std::vector< double,std::allocator< double > >()){
+SWIGINTERN void std_vector_Sl_double_Sg____setslice____SWIG_0(std::vector< double > *self,std::vector< double >::difference_type i,std::vector< double >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< double,std::allocator< double > >());
+    }
+SWIGINTERN void std_vector_Sl_double_Sg____setslice____SWIG_1(std::vector< double > *self,std::vector< double >::difference_type i,std::vector< double >::difference_type j,std::vector< double,std::allocator< double > > const &v){
       swig::setslice(self, i, j, 1, v);
     }
 SWIGINTERN void std_vector_Sl_double_Sg____delslice__(std::vector< double > *self,std::vector< double >::difference_type i,std::vector< double >::difference_type j){
       swig::delslice(self, i, j, 1);
     }
 SWIGINTERN void std_vector_Sl_double_Sg____delitem____SWIG_0(std::vector< double > *self,std::vector< double >::difference_type i){
-      self->erase(swig::getpos(self,i));
+      swig::erase(self, swig::getpos(self, i));
     }
 SWIGINTERN std::vector< double,std::allocator< double > > *std_vector_Sl_double_Sg____getitem____SWIG_0(std::vector< double > *self,PySliceObject *slice){
       Py_ssize_t i, j, step;
@@ -5149,8 +5185,8 @@ SWIGINTERN std::vector< double,std::allocator< double > > *std_vector_Sl_double_
         return NULL;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<double,std::allocator< double > >::difference_type id = i;
-      std::vector<double,std::allocator< double > >::difference_type jd = j;
+      std::vector< double,std::allocator< double > >::difference_type id = i;
+      std::vector< double,std::allocator< double > >::difference_type jd = j;
       return swig::getslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_double_Sg____setitem____SWIG_0(std::vector< double > *self,PySliceObject *slice,std::vector< double,std::allocator< double > > const &v){
@@ -5160,8 +5196,8 @@ SWIGINTERN void std_vector_Sl_double_Sg____setitem____SWIG_0(std::vector< double
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<double,std::allocator< double > >::difference_type id = i;
-      std::vector<double,std::allocator< double > >::difference_type jd = j;
+      std::vector< double,std::allocator< double > >::difference_type id = i;
+      std::vector< double,std::allocator< double > >::difference_type jd = j;
       swig::setslice(self, id, jd, step, v);
     }
 SWIGINTERN void std_vector_Sl_double_Sg____setitem____SWIG_1(std::vector< double > *self,PySliceObject *slice){
@@ -5171,8 +5207,8 @@ SWIGINTERN void std_vector_Sl_double_Sg____setitem____SWIG_1(std::vector< double
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<double,std::allocator< double > >::difference_type id = i;
-      std::vector<double,std::allocator< double > >::difference_type jd = j;
+      std::vector< double,std::allocator< double > >::difference_type id = i;
+      std::vector< double,std::allocator< double > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_double_Sg____delitem____SWIG_1(std::vector< double > *self,PySliceObject *slice){
@@ -5182,8 +5218,8 @@ SWIGINTERN void std_vector_Sl_double_Sg____delitem____SWIG_1(std::vector< double
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<double,std::allocator< double > >::difference_type id = i;
-      std::vector<double,std::allocator< double > >::difference_type jd = j;
+      std::vector< double,std::allocator< double > >::difference_type id = i;
+      std::vector< double,std::allocator< double > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN std::vector< double >::value_type const &std_vector_Sl_double_Sg____getitem____SWIG_1(std::vector< double > const *self,std::vector< double >::difference_type i){
@@ -5192,6 +5228,13 @@ SWIGINTERN std::vector< double >::value_type const &std_vector_Sl_double_Sg____g
 SWIGINTERN void std_vector_Sl_double_Sg____setitem____SWIG_2(std::vector< double > *self,std::vector< double >::difference_type i,std::vector< double >::value_type const &x){
       *(swig::getpos(self,i)) = x;
     }
+SWIGINTERN std::vector< double >::value_type std_vector_Sl_double_Sg__pop(std::vector< double > *self){
+      if (self->size() == 0)
+	throw std::out_of_range("pop from empty container");
+      std::vector< double,std::allocator< double > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
 SWIGINTERN void std_vector_Sl_double_Sg__append(std::vector< double > *self,std::vector< double >::value_type const &x){
       self->push_back(x);
     }
@@ -5201,7 +5244,7 @@ SWIGINTERN std::vector< double >::iterator std_vector_Sl_double_Sg__insert__SWIG
 SWIGINTERN void std_vector_Sl_double_Sg__insert__SWIG_1(std::vector< double > *self,std::vector< double >::iterator pos,std::vector< double >::size_type n,std::vector< double >::value_type const &x){ self->insert(pos, n, x); }
 
       namespace swig {
-	template <>  struct traits<std::vector<std::vector< double,std::allocator< double > >, std::allocator< std::vector< double,std::allocator< double > > > > > {
+	template <>  struct traits<std::vector< std::vector< double,std::allocator< double > >, std::allocator< std::vector< double,std::allocator< double > > > > > {
 	  typedef pointer_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "std::vector< double,std::allocator< double > >" "," "std::allocator< std::vector< double,std::allocator< double > > >" " >";
@@ -5221,24 +5264,20 @@ SWIGINTERN bool std_vector_Sl_std_vector_Sl_double_Sg__Sg____bool__(std::vector<
 SWIGINTERN std::vector< std::vector< double > >::size_type std_vector_Sl_std_vector_Sl_double_Sg__Sg____len__(std::vector< std::vector< double > > const *self){
       return self->size();
     }
-SWIGINTERN std::vector< std::vector< double > >::value_type std_vector_Sl_std_vector_Sl_double_Sg__Sg__pop(std::vector< std::vector< double > > *self){
-      if (self->size() == 0)
-	throw std::out_of_range("pop from empty container");
-      std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::value_type x = self->back();
-      self->pop_back();
-      return x;
-    }
 SWIGINTERN std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *std_vector_Sl_std_vector_Sl_double_Sg__Sg____getslice__(std::vector< std::vector< double > > *self,std::vector< std::vector< double > >::difference_type i,std::vector< std::vector< double > >::difference_type j){
       return swig::getslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____setslice____SWIG_0(std::vector< std::vector< double > > *self,std::vector< std::vector< double > >::difference_type i,std::vector< std::vector< double > >::difference_type j,std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &v=std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >()){
+SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____setslice____SWIG_0(std::vector< std::vector< double > > *self,std::vector< std::vector< double > >::difference_type i,std::vector< std::vector< double > >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >());
+    }
+SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____setslice____SWIG_1(std::vector< std::vector< double > > *self,std::vector< std::vector< double > >::difference_type i,std::vector< std::vector< double > >::difference_type j,std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &v){
       swig::setslice(self, i, j, 1, v);
     }
 SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____delslice__(std::vector< std::vector< double > > *self,std::vector< std::vector< double > >::difference_type i,std::vector< std::vector< double > >::difference_type j){
       swig::delslice(self, i, j, 1);
     }
 SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____delitem____SWIG_0(std::vector< std::vector< double > > *self,std::vector< std::vector< double > >::difference_type i){
-      self->erase(swig::getpos(self,i));
+      swig::erase(self, swig::getpos(self, i));
     }
 SWIGINTERN std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *std_vector_Sl_std_vector_Sl_double_Sg__Sg____getitem____SWIG_0(std::vector< std::vector< double > > *self,PySliceObject *slice){
       Py_ssize_t i, j, step;
@@ -5247,8 +5286,8 @@ SWIGINTERN std::vector< std::vector< double,std::allocator< double > >,std::allo
         return NULL;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type id = i;
-      std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type jd = j;
+      std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type id = i;
+      std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type jd = j;
       return swig::getslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____setitem____SWIG_0(std::vector< std::vector< double > > *self,PySliceObject *slice,std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &v){
@@ -5258,8 +5297,8 @@ SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____setitem____SWIG_0(s
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type id = i;
-      std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type jd = j;
+      std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type id = i;
+      std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type jd = j;
       swig::setslice(self, id, jd, step, v);
     }
 SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____setitem____SWIG_1(std::vector< std::vector< double > > *self,PySliceObject *slice){
@@ -5269,8 +5308,8 @@ SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____setitem____SWIG_1(s
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type id = i;
-      std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type jd = j;
+      std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type id = i;
+      std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____delitem____SWIG_1(std::vector< std::vector< double > > *self,PySliceObject *slice){
@@ -5280,8 +5319,8 @@ SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____delitem____SWIG_1(s
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type id = i;
-      std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type jd = j;
+      std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type id = i;
+      std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN std::vector< std::vector< double > >::value_type const &std_vector_Sl_std_vector_Sl_double_Sg__Sg____getitem____SWIG_1(std::vector< std::vector< double > > const *self,std::vector< std::vector< double > >::difference_type i){
@@ -5290,6 +5329,13 @@ SWIGINTERN std::vector< std::vector< double > >::value_type const &std_vector_Sl
 SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg____setitem____SWIG_2(std::vector< std::vector< double > > *self,std::vector< std::vector< double > >::difference_type i,std::vector< std::vector< double > >::value_type const &x){
       *(swig::getpos(self,i)) = x;
     }
+SWIGINTERN std::vector< std::vector< double > >::value_type std_vector_Sl_std_vector_Sl_double_Sg__Sg__pop(std::vector< std::vector< double > > *self){
+      if (self->size() == 0)
+	throw std::out_of_range("pop from empty container");
+      std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
 SWIGINTERN void std_vector_Sl_std_vector_Sl_double_Sg__Sg__append(std::vector< std::vector< double > > *self,std::vector< std::vector< double > >::value_type const &x){
       self->push_back(x);
     }
@@ -5325,17 +5371,17 @@ SWIG_AsVal_int (PyObject * obj, int *val)
 
 
 namespace swig {
-  template <> struct traits<int > {
+  template <> struct traits< int > {
     typedef value_category category;
     static const char* type_name() { return"int"; }
-  };  
-  template <>  struct traits_asval<int > {   
+  };
+  template <>  struct traits_asval< int > {
     typedef int value_type;
-    static int asval(PyObject *obj, value_type *val) { 
+    static int asval(PyObject *obj, value_type *val) {
       return SWIG_AsVal_int (obj, val);
     }
   };
-  template <>  struct traits_from<int > {
+  template <>  struct traits_from< int > {
     typedef int value_type;
     static PyObject *from(const value_type& val) {
       return SWIG_From_int  (val);
@@ -5345,7 +5391,7 @@ namespace swig {
 
 
       namespace swig {
-	template <>  struct traits<std::vector<int, std::allocator< int > > > {
+	template <>  struct traits<std::vector< int, std::allocator< int > > > {
 	  typedef pointer_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "int" "," "std::allocator< int >" " >";
@@ -5365,24 +5411,20 @@ SWIGINTERN bool std_vector_Sl_int_Sg____bool__(std::vector< int > const *self){
 SWIGINTERN std::vector< int >::size_type std_vector_Sl_int_Sg____len__(std::vector< int > const *self){
       return self->size();
     }
-SWIGINTERN std::vector< int >::value_type std_vector_Sl_int_Sg__pop(std::vector< int > *self){
-      if (self->size() == 0)
-	throw std::out_of_range("pop from empty container");
-      std::vector<int,std::allocator< int > >::value_type x = self->back();
-      self->pop_back();
-      return x;
-    }
 SWIGINTERN std::vector< int,std::allocator< int > > *std_vector_Sl_int_Sg____getslice__(std::vector< int > *self,std::vector< int >::difference_type i,std::vector< int >::difference_type j){
       return swig::getslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_int_Sg____setslice____SWIG_0(std::vector< int > *self,std::vector< int >::difference_type i,std::vector< int >::difference_type j,std::vector< int,std::allocator< int > > const &v=std::vector< int,std::allocator< int > >()){
+SWIGINTERN void std_vector_Sl_int_Sg____setslice____SWIG_0(std::vector< int > *self,std::vector< int >::difference_type i,std::vector< int >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< int,std::allocator< int > >());
+    }
+SWIGINTERN void std_vector_Sl_int_Sg____setslice____SWIG_1(std::vector< int > *self,std::vector< int >::difference_type i,std::vector< int >::difference_type j,std::vector< int,std::allocator< int > > const &v){
       swig::setslice(self, i, j, 1, v);
     }
 SWIGINTERN void std_vector_Sl_int_Sg____delslice__(std::vector< int > *self,std::vector< int >::difference_type i,std::vector< int >::difference_type j){
       swig::delslice(self, i, j, 1);
     }
 SWIGINTERN void std_vector_Sl_int_Sg____delitem____SWIG_0(std::vector< int > *self,std::vector< int >::difference_type i){
-      self->erase(swig::getpos(self,i));
+      swig::erase(self, swig::getpos(self, i));
     }
 SWIGINTERN std::vector< int,std::allocator< int > > *std_vector_Sl_int_Sg____getitem____SWIG_0(std::vector< int > *self,PySliceObject *slice){
       Py_ssize_t i, j, step;
@@ -5391,8 +5433,8 @@ SWIGINTERN std::vector< int,std::allocator< int > > *std_vector_Sl_int_Sg____get
         return NULL;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<int,std::allocator< int > >::difference_type id = i;
-      std::vector<int,std::allocator< int > >::difference_type jd = j;
+      std::vector< int,std::allocator< int > >::difference_type id = i;
+      std::vector< int,std::allocator< int > >::difference_type jd = j;
       return swig::getslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_int_Sg____setitem____SWIG_0(std::vector< int > *self,PySliceObject *slice,std::vector< int,std::allocator< int > > const &v){
@@ -5402,8 +5444,8 @@ SWIGINTERN void std_vector_Sl_int_Sg____setitem____SWIG_0(std::vector< int > *se
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<int,std::allocator< int > >::difference_type id = i;
-      std::vector<int,std::allocator< int > >::difference_type jd = j;
+      std::vector< int,std::allocator< int > >::difference_type id = i;
+      std::vector< int,std::allocator< int > >::difference_type jd = j;
       swig::setslice(self, id, jd, step, v);
     }
 SWIGINTERN void std_vector_Sl_int_Sg____setitem____SWIG_1(std::vector< int > *self,PySliceObject *slice){
@@ -5413,8 +5455,8 @@ SWIGINTERN void std_vector_Sl_int_Sg____setitem____SWIG_1(std::vector< int > *se
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<int,std::allocator< int > >::difference_type id = i;
-      std::vector<int,std::allocator< int > >::difference_type jd = j;
+      std::vector< int,std::allocator< int > >::difference_type id = i;
+      std::vector< int,std::allocator< int > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_int_Sg____delitem____SWIG_1(std::vector< int > *self,PySliceObject *slice){
@@ -5424,8 +5466,8 @@ SWIGINTERN void std_vector_Sl_int_Sg____delitem____SWIG_1(std::vector< int > *se
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<int,std::allocator< int > >::difference_type id = i;
-      std::vector<int,std::allocator< int > >::difference_type jd = j;
+      std::vector< int,std::allocator< int > >::difference_type id = i;
+      std::vector< int,std::allocator< int > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN std::vector< int >::value_type const &std_vector_Sl_int_Sg____getitem____SWIG_1(std::vector< int > const *self,std::vector< int >::difference_type i){
@@ -5434,6 +5476,13 @@ SWIGINTERN std::vector< int >::value_type const &std_vector_Sl_int_Sg____getitem
 SWIGINTERN void std_vector_Sl_int_Sg____setitem____SWIG_2(std::vector< int > *self,std::vector< int >::difference_type i,std::vector< int >::value_type const &x){
       *(swig::getpos(self,i)) = x;
     }
+SWIGINTERN std::vector< int >::value_type std_vector_Sl_int_Sg__pop(std::vector< int > *self){
+      if (self->size() == 0)
+	throw std::out_of_range("pop from empty container");
+      std::vector< int,std::allocator< int > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
 SWIGINTERN void std_vector_Sl_int_Sg__append(std::vector< int > *self,std::vector< int >::value_type const &x){
       self->push_back(x);
     }
@@ -5443,17 +5492,17 @@ SWIGINTERN std::vector< int >::iterator std_vector_Sl_int_Sg__insert__SWIG_0(std
 SWIGINTERN void std_vector_Sl_int_Sg__insert__SWIG_1(std::vector< int > *self,std::vector< int >::iterator pos,std::vector< int >::size_type n,std::vector< int >::value_type const &x){ self->insert(pos, n, x); }
 
 namespace swig {
-  template <> struct traits<unsigned long > {
+  template <> struct traits< unsigned long > {
     typedef value_category category;
     static const char* type_name() { return"unsigned long"; }
-  };  
-  template <>  struct traits_asval<unsigned long > {   
+  };
+  template <>  struct traits_asval< unsigned long > {
     typedef unsigned long value_type;
-    static int asval(PyObject *obj, value_type *val) { 
+    static int asval(PyObject *obj, value_type *val) {
       return SWIG_AsVal_unsigned_SS_long (obj, val);
     }
   };
-  template <>  struct traits_from<unsigned long > {
+  template <>  struct traits_from< unsigned long > {
     typedef unsigned long value_type;
     static PyObject *from(const value_type& val) {
       return SWIG_From_unsigned_SS_long  (val);
@@ -5463,7 +5512,7 @@ namespace swig {
 
 
       namespace swig {
-	template <>  struct traits<std::vector<unsigned long, std::allocator< unsigned long > > > {
+	template <>  struct traits<std::vector< unsigned long, std::allocator< unsigned long > > > {
 	  typedef pointer_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "unsigned long" "," "std::allocator< unsigned long >" " >";
@@ -5483,24 +5532,20 @@ SWIGINTERN bool std_vector_Sl_unsigned_SS_long_Sg____bool__(std::vector< unsigne
 SWIGINTERN std::vector< unsigned long >::size_type std_vector_Sl_unsigned_SS_long_Sg____len__(std::vector< unsigned long > const *self){
       return self->size();
     }
-SWIGINTERN std::vector< unsigned long >::value_type std_vector_Sl_unsigned_SS_long_Sg__pop(std::vector< unsigned long > *self){
-      if (self->size() == 0)
-	throw std::out_of_range("pop from empty container");
-      std::vector<unsigned long,std::allocator< unsigned long > >::value_type x = self->back();
-      self->pop_back();
-      return x;
-    }
 SWIGINTERN std::vector< unsigned long,std::allocator< unsigned long > > *std_vector_Sl_unsigned_SS_long_Sg____getslice__(std::vector< unsigned long > *self,std::vector< unsigned long >::difference_type i,std::vector< unsigned long >::difference_type j){
       return swig::getslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____setslice____SWIG_0(std::vector< unsigned long > *self,std::vector< unsigned long >::difference_type i,std::vector< unsigned long >::difference_type j,std::vector< unsigned long,std::allocator< unsigned long > > const &v=std::vector< unsigned long,std::allocator< unsigned long > >()){
+SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____setslice____SWIG_0(std::vector< unsigned long > *self,std::vector< unsigned long >::difference_type i,std::vector< unsigned long >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< unsigned long,std::allocator< unsigned long > >());
+    }
+SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____setslice____SWIG_1(std::vector< unsigned long > *self,std::vector< unsigned long >::difference_type i,std::vector< unsigned long >::difference_type j,std::vector< unsigned long,std::allocator< unsigned long > > const &v){
       swig::setslice(self, i, j, 1, v);
     }
 SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____delslice__(std::vector< unsigned long > *self,std::vector< unsigned long >::difference_type i,std::vector< unsigned long >::difference_type j){
       swig::delslice(self, i, j, 1);
     }
 SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____delitem____SWIG_0(std::vector< unsigned long > *self,std::vector< unsigned long >::difference_type i){
-      self->erase(swig::getpos(self,i));
+      swig::erase(self, swig::getpos(self, i));
     }
 SWIGINTERN std::vector< unsigned long,std::allocator< unsigned long > > *std_vector_Sl_unsigned_SS_long_Sg____getitem____SWIG_0(std::vector< unsigned long > *self,PySliceObject *slice){
       Py_ssize_t i, j, step;
@@ -5509,8 +5554,8 @@ SWIGINTERN std::vector< unsigned long,std::allocator< unsigned long > > *std_vec
         return NULL;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<unsigned long,std::allocator< unsigned long > >::difference_type id = i;
-      std::vector<unsigned long,std::allocator< unsigned long > >::difference_type jd = j;
+      std::vector< unsigned long,std::allocator< unsigned long > >::difference_type id = i;
+      std::vector< unsigned long,std::allocator< unsigned long > >::difference_type jd = j;
       return swig::getslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____setitem____SWIG_0(std::vector< unsigned long > *self,PySliceObject *slice,std::vector< unsigned long,std::allocator< unsigned long > > const &v){
@@ -5520,8 +5565,8 @@ SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____setitem____SWIG_0(std::vect
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<unsigned long,std::allocator< unsigned long > >::difference_type id = i;
-      std::vector<unsigned long,std::allocator< unsigned long > >::difference_type jd = j;
+      std::vector< unsigned long,std::allocator< unsigned long > >::difference_type id = i;
+      std::vector< unsigned long,std::allocator< unsigned long > >::difference_type jd = j;
       swig::setslice(self, id, jd, step, v);
     }
 SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____setitem____SWIG_1(std::vector< unsigned long > *self,PySliceObject *slice){
@@ -5531,8 +5576,8 @@ SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____setitem____SWIG_1(std::vect
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<unsigned long,std::allocator< unsigned long > >::difference_type id = i;
-      std::vector<unsigned long,std::allocator< unsigned long > >::difference_type jd = j;
+      std::vector< unsigned long,std::allocator< unsigned long > >::difference_type id = i;
+      std::vector< unsigned long,std::allocator< unsigned long > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____delitem____SWIG_1(std::vector< unsigned long > *self,PySliceObject *slice){
@@ -5542,8 +5587,8 @@ SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____delitem____SWIG_1(std::vect
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<unsigned long,std::allocator< unsigned long > >::difference_type id = i;
-      std::vector<unsigned long,std::allocator< unsigned long > >::difference_type jd = j;
+      std::vector< unsigned long,std::allocator< unsigned long > >::difference_type id = i;
+      std::vector< unsigned long,std::allocator< unsigned long > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN std::vector< unsigned long >::value_type const &std_vector_Sl_unsigned_SS_long_Sg____getitem____SWIG_1(std::vector< unsigned long > const *self,std::vector< unsigned long >::difference_type i){
@@ -5552,6 +5597,13 @@ SWIGINTERN std::vector< unsigned long >::value_type const &std_vector_Sl_unsigne
 SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg____setitem____SWIG_2(std::vector< unsigned long > *self,std::vector< unsigned long >::difference_type i,std::vector< unsigned long >::value_type const &x){
       *(swig::getpos(self,i)) = x;
     }
+SWIGINTERN std::vector< unsigned long >::value_type std_vector_Sl_unsigned_SS_long_Sg__pop(std::vector< unsigned long > *self){
+      if (self->size() == 0)
+	throw std::out_of_range("pop from empty container");
+      std::vector< unsigned long,std::allocator< unsigned long > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
 SWIGINTERN void std_vector_Sl_unsigned_SS_long_Sg__append(std::vector< unsigned long > *self,std::vector< unsigned long >::value_type const &x){
       self->push_back(x);
     }
@@ -5592,17 +5644,17 @@ const std::complex<double>&
 
 
 namespace swig {
-  template <> struct traits<std::complex<double> > {
+  template <> struct traits< std::complex<double> > {
     typedef value_category category;
     static const char* type_name() { return"std::complex<double>"; }
-  };  
-  template <>  struct traits_asval<std::complex<double> > {   
+  };
+  template <>  struct traits_asval< std::complex<double> > {
     typedef std::complex<double> value_type;
-    static int asval(PyObject *obj, value_type *val) { 
+    static int asval(PyObject *obj, value_type *val) {
       return SWIG_AsVal_std_complex_Sl_double_Sg_ (obj, val);
     }
   };
-  template <>  struct traits_from<std::complex<double> > {
+  template <>  struct traits_from< std::complex<double> > {
     typedef std::complex<double> value_type;
     static PyObject *from(const value_type& val) {
       return SWIG_From_std_complex_Sl_double_Sg_  (val);
@@ -5612,7 +5664,7 @@ namespace swig {
 
 
       namespace swig {
-	template <>  struct traits<std::vector<std::complex< double >, std::allocator< std::complex< double > > > > {
+	template <>  struct traits<std::vector< std::complex< double >, std::allocator< std::complex< double > > > > {
 	  typedef pointer_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "std::complex< double >" "," "std::allocator< std::complex< double > >" " >";
@@ -5632,24 +5684,20 @@ SWIGINTERN bool std_vector_Sl_std_complex_Sl_double_Sg__Sg____bool__(std::vector
 SWIGINTERN std::vector< std::complex< double > >::size_type std_vector_Sl_std_complex_Sl_double_Sg__Sg____len__(std::vector< std::complex< double > > const *self){
       return self->size();
     }
-SWIGINTERN std::vector< std::complex< double > >::value_type std_vector_Sl_std_complex_Sl_double_Sg__Sg__pop(std::vector< std::complex< double > > *self){
-      if (self->size() == 0)
-	throw std::out_of_range("pop from empty container");
-      std::vector<std::complex< double >,std::allocator< std::complex< double > > >::value_type x = self->back();
-      self->pop_back();
-      return x;
-    }
 SWIGINTERN std::vector< std::complex< double >,std::allocator< std::complex< double > > > *std_vector_Sl_std_complex_Sl_double_Sg__Sg____getslice__(std::vector< std::complex< double > > *self,std::vector< std::complex< double > >::difference_type i,std::vector< std::complex< double > >::difference_type j){
       return swig::getslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____setslice____SWIG_0(std::vector< std::complex< double > > *self,std::vector< std::complex< double > >::difference_type i,std::vector< std::complex< double > >::difference_type j,std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &v=std::vector< std::complex< double >,std::allocator< std::complex< double > > >()){
+SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____setslice____SWIG_0(std::vector< std::complex< double > > *self,std::vector< std::complex< double > >::difference_type i,std::vector< std::complex< double > >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< std::complex< double >,std::allocator< std::complex< double > > >());
+    }
+SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____setslice____SWIG_1(std::vector< std::complex< double > > *self,std::vector< std::complex< double > >::difference_type i,std::vector< std::complex< double > >::difference_type j,std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &v){
       swig::setslice(self, i, j, 1, v);
     }
 SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____delslice__(std::vector< std::complex< double > > *self,std::vector< std::complex< double > >::difference_type i,std::vector< std::complex< double > >::difference_type j){
       swig::delslice(self, i, j, 1);
     }
 SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____delitem____SWIG_0(std::vector< std::complex< double > > *self,std::vector< std::complex< double > >::difference_type i){
-      self->erase(swig::getpos(self,i));
+      swig::erase(self, swig::getpos(self, i));
     }
 SWIGINTERN std::vector< std::complex< double >,std::allocator< std::complex< double > > > *std_vector_Sl_std_complex_Sl_double_Sg__Sg____getitem____SWIG_0(std::vector< std::complex< double > > *self,PySliceObject *slice){
       Py_ssize_t i, j, step;
@@ -5658,8 +5706,8 @@ SWIGINTERN std::vector< std::complex< double >,std::allocator< std::complex< dou
         return NULL;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::complex< double >,std::allocator< std::complex< double > > >::difference_type id = i;
-      std::vector<std::complex< double >,std::allocator< std::complex< double > > >::difference_type jd = j;
+      std::vector< std::complex< double >,std::allocator< std::complex< double > > >::difference_type id = i;
+      std::vector< std::complex< double >,std::allocator< std::complex< double > > >::difference_type jd = j;
       return swig::getslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____setitem____SWIG_0(std::vector< std::complex< double > > *self,PySliceObject *slice,std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &v){
@@ -5669,8 +5717,8 @@ SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____setitem____SWIG_0(
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::complex< double >,std::allocator< std::complex< double > > >::difference_type id = i;
-      std::vector<std::complex< double >,std::allocator< std::complex< double > > >::difference_type jd = j;
+      std::vector< std::complex< double >,std::allocator< std::complex< double > > >::difference_type id = i;
+      std::vector< std::complex< double >,std::allocator< std::complex< double > > >::difference_type jd = j;
       swig::setslice(self, id, jd, step, v);
     }
 SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____setitem____SWIG_1(std::vector< std::complex< double > > *self,PySliceObject *slice){
@@ -5680,8 +5728,8 @@ SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____setitem____SWIG_1(
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::complex< double >,std::allocator< std::complex< double > > >::difference_type id = i;
-      std::vector<std::complex< double >,std::allocator< std::complex< double > > >::difference_type jd = j;
+      std::vector< std::complex< double >,std::allocator< std::complex< double > > >::difference_type id = i;
+      std::vector< std::complex< double >,std::allocator< std::complex< double > > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____delitem____SWIG_1(std::vector< std::complex< double > > *self,PySliceObject *slice){
@@ -5691,8 +5739,8 @@ SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____delitem____SWIG_1(
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::complex< double >,std::allocator< std::complex< double > > >::difference_type id = i;
-      std::vector<std::complex< double >,std::allocator< std::complex< double > > >::difference_type jd = j;
+      std::vector< std::complex< double >,std::allocator< std::complex< double > > >::difference_type id = i;
+      std::vector< std::complex< double >,std::allocator< std::complex< double > > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN std::vector< std::complex< double > >::value_type const &std_vector_Sl_std_complex_Sl_double_Sg__Sg____getitem____SWIG_1(std::vector< std::complex< double > > const *self,std::vector< std::complex< double > >::difference_type i){
@@ -5701,6 +5749,13 @@ SWIGINTERN std::vector< std::complex< double > >::value_type const &std_vector_S
 SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg____setitem____SWIG_2(std::vector< std::complex< double > > *self,std::vector< std::complex< double > >::difference_type i,std::vector< std::complex< double > >::value_type const &x){
       *(swig::getpos(self,i)) = x;
     }
+SWIGINTERN std::vector< std::complex< double > >::value_type std_vector_Sl_std_complex_Sl_double_Sg__Sg__pop(std::vector< std::complex< double > > *self){
+      if (self->size() == 0)
+	throw std::out_of_range("pop from empty container");
+      std::vector< std::complex< double >,std::allocator< std::complex< double > > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
 SWIGINTERN void std_vector_Sl_std_complex_Sl_double_Sg__Sg__append(std::vector< std::complex< double > > *self,std::vector< std::complex< double > >::value_type const &x){
       self->push_back(x);
     }
@@ -5762,18 +5817,17 @@ SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
 #else
 	if (*alloc == SWIG_NEWOBJ) 
 #endif
-	  {
-	    *cptr = reinterpret_cast< char* >(memcpy((new char[len + 1]), cstr, sizeof(char)*(len + 1)));
-	    *alloc = SWIG_NEWOBJ;
-	  }
-	else {
+	{
+	  *cptr = reinterpret_cast< char* >(memcpy((new char[len + 1]), cstr, sizeof(char)*(len + 1)));
+	  *alloc = SWIG_NEWOBJ;
+	} else {
 	  *cptr = cstr;
 	  *alloc = SWIG_OLDOBJ;
 	}
       } else {
-        #if PY_VERSION_HEX>=0x03000000
-        assert(0); /* Should never reach here in Python 3 */
-        #endif
+	#if PY_VERSION_HEX>=0x03000000
+	assert(0); /* Should never reach here in Python 3 */
+	#endif
 	*cptr = SWIG_Python_str_AsChar(obj);
       }
     }
@@ -5783,6 +5837,30 @@ SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
 #endif
     return SWIG_OK;
   } else {
+#if defined(SWIG_PYTHON_2_UNICODE)
+#if PY_VERSION_HEX<0x03000000
+    if (PyUnicode_Check(obj)) {
+      char *cstr; Py_ssize_t len;
+      if (!alloc && cptr) {
+        return SWIG_RuntimeError;
+      }
+      obj = PyUnicode_AsUTF8String(obj);
+      if (PyString_AsStringAndSize(obj, &cstr, &len) != -1) {
+        if (cptr) {
+          if (alloc) *alloc = SWIG_NEWOBJ;
+          *cptr = reinterpret_cast< char* >(memcpy((new char[len + 1]), cstr, sizeof(char)*(len + 1)));
+        }
+        if (psize) *psize = len + 1;
+
+        Py_XDECREF(obj);
+        return SWIG_OK;
+      } else {
+        Py_XDECREF(obj);
+      }
+    }
+#endif
+#endif
+
     swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
     if (pchar_descriptor) {
       void* vptr = 0;
@@ -5858,12 +5936,12 @@ SWIG_FromCharPtrAndSize(const char* carray, size_t size)
     } else {
 #if PY_VERSION_HEX >= 0x03000000
 #if PY_VERSION_HEX >= 0x03010000
-      return PyUnicode_DecodeUTF8(carray, static_cast< int >(size), "surrogateescape");
+      return PyUnicode_DecodeUTF8(carray, static_cast< Py_ssize_t >(size), "surrogateescape");
 #else
-      return PyUnicode_FromStringAndSize(carray, static_cast< int >(size));
+      return PyUnicode_FromStringAndSize(carray, static_cast< Py_ssize_t >(size));
 #endif
 #else
-      return PyString_FromStringAndSize(carray, static_cast< int >(size));
+      return PyString_FromStringAndSize(carray, static_cast< Py_ssize_t >(size));
 #endif
     }
   } else {
@@ -5880,17 +5958,17 @@ SWIG_From_std_string  (const std::string& s)
 
 
 namespace swig {
-  template <> struct traits<std::string > {
+  template <> struct traits< std::string > {
     typedef value_category category;
     static const char* type_name() { return"std::string"; }
-  };  
-  template <>  struct traits_asval<std::string > {   
+  };
+  template <>  struct traits_asval< std::string > {
     typedef std::string value_type;
-    static int asval(PyObject *obj, value_type *val) { 
+    static int asval(PyObject *obj, value_type *val) {
       return SWIG_AsVal_std_string (obj, val);
     }
   };
-  template <>  struct traits_from<std::string > {
+  template <>  struct traits_from< std::string > {
     typedef std::string value_type;
     static PyObject *from(const value_type& val) {
       return SWIG_From_std_string  (val);
@@ -5900,7 +5978,7 @@ namespace swig {
 
 
       namespace swig {
-	template <>  struct traits<std::vector<std::string, std::allocator< std::string > > > {
+	template <>  struct traits<std::vector< std::string, std::allocator< std::string > > > {
 	  typedef pointer_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "std::string" "," "std::allocator< std::string >" " >";
@@ -5920,24 +5998,20 @@ SWIGINTERN bool std_vector_Sl_std_string_Sg____bool__(std::vector< std::string >
 SWIGINTERN std::vector< std::string >::size_type std_vector_Sl_std_string_Sg____len__(std::vector< std::string > const *self){
       return self->size();
     }
-SWIGINTERN std::vector< std::string >::value_type std_vector_Sl_std_string_Sg__pop(std::vector< std::string > *self){
-      if (self->size() == 0)
-	throw std::out_of_range("pop from empty container");
-      std::vector<std::string,std::allocator< std::string > >::value_type x = self->back();
-      self->pop_back();
-      return x;
-    }
 SWIGINTERN std::vector< std::string,std::allocator< std::string > > *std_vector_Sl_std_string_Sg____getslice__(std::vector< std::string > *self,std::vector< std::string >::difference_type i,std::vector< std::string >::difference_type j){
       return swig::getslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_std_string_Sg____setslice____SWIG_0(std::vector< std::string > *self,std::vector< std::string >::difference_type i,std::vector< std::string >::difference_type j,std::vector< std::string,std::allocator< std::string > > const &v=std::vector< std::string,std::allocator< std::string > >()){
+SWIGINTERN void std_vector_Sl_std_string_Sg____setslice____SWIG_0(std::vector< std::string > *self,std::vector< std::string >::difference_type i,std::vector< std::string >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< std::string,std::allocator< std::string > >());
+    }
+SWIGINTERN void std_vector_Sl_std_string_Sg____setslice____SWIG_1(std::vector< std::string > *self,std::vector< std::string >::difference_type i,std::vector< std::string >::difference_type j,std::vector< std::string,std::allocator< std::string > > const &v){
       swig::setslice(self, i, j, 1, v);
     }
 SWIGINTERN void std_vector_Sl_std_string_Sg____delslice__(std::vector< std::string > *self,std::vector< std::string >::difference_type i,std::vector< std::string >::difference_type j){
       swig::delslice(self, i, j, 1);
     }
 SWIGINTERN void std_vector_Sl_std_string_Sg____delitem____SWIG_0(std::vector< std::string > *self,std::vector< std::string >::difference_type i){
-      self->erase(swig::getpos(self,i));
+      swig::erase(self, swig::getpos(self, i));
     }
 SWIGINTERN std::vector< std::string,std::allocator< std::string > > *std_vector_Sl_std_string_Sg____getitem____SWIG_0(std::vector< std::string > *self,PySliceObject *slice){
       Py_ssize_t i, j, step;
@@ -5946,8 +6020,8 @@ SWIGINTERN std::vector< std::string,std::allocator< std::string > > *std_vector_
         return NULL;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::string,std::allocator< std::string > >::difference_type id = i;
-      std::vector<std::string,std::allocator< std::string > >::difference_type jd = j;
+      std::vector< std::string,std::allocator< std::string > >::difference_type id = i;
+      std::vector< std::string,std::allocator< std::string > >::difference_type jd = j;
       return swig::getslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_std_string_Sg____setitem____SWIG_0(std::vector< std::string > *self,PySliceObject *slice,std::vector< std::string,std::allocator< std::string > > const &v){
@@ -5957,8 +6031,8 @@ SWIGINTERN void std_vector_Sl_std_string_Sg____setitem____SWIG_0(std::vector< st
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::string,std::allocator< std::string > >::difference_type id = i;
-      std::vector<std::string,std::allocator< std::string > >::difference_type jd = j;
+      std::vector< std::string,std::allocator< std::string > >::difference_type id = i;
+      std::vector< std::string,std::allocator< std::string > >::difference_type jd = j;
       swig::setslice(self, id, jd, step, v);
     }
 SWIGINTERN void std_vector_Sl_std_string_Sg____setitem____SWIG_1(std::vector< std::string > *self,PySliceObject *slice){
@@ -5968,8 +6042,8 @@ SWIGINTERN void std_vector_Sl_std_string_Sg____setitem____SWIG_1(std::vector< st
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::string,std::allocator< std::string > >::difference_type id = i;
-      std::vector<std::string,std::allocator< std::string > >::difference_type jd = j;
+      std::vector< std::string,std::allocator< std::string > >::difference_type id = i;
+      std::vector< std::string,std::allocator< std::string > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_std_string_Sg____delitem____SWIG_1(std::vector< std::string > *self,PySliceObject *slice){
@@ -5979,8 +6053,8 @@ SWIGINTERN void std_vector_Sl_std_string_Sg____delitem____SWIG_1(std::vector< st
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<std::string,std::allocator< std::string > >::difference_type id = i;
-      std::vector<std::string,std::allocator< std::string > >::difference_type jd = j;
+      std::vector< std::string,std::allocator< std::string > >::difference_type id = i;
+      std::vector< std::string,std::allocator< std::string > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN std::vector< std::string >::value_type const &std_vector_Sl_std_string_Sg____getitem____SWIG_1(std::vector< std::string > const *self,std::vector< std::string >::difference_type i){
@@ -5989,6 +6063,13 @@ SWIGINTERN std::vector< std::string >::value_type const &std_vector_Sl_std_strin
 SWIGINTERN void std_vector_Sl_std_string_Sg____setitem____SWIG_2(std::vector< std::string > *self,std::vector< std::string >::difference_type i,std::vector< std::string >::value_type const &x){
       *(swig::getpos(self,i)) = x;
     }
+SWIGINTERN std::vector< std::string >::value_type std_vector_Sl_std_string_Sg__pop(std::vector< std::string > *self){
+      if (self->size() == 0)
+	throw std::out_of_range("pop from empty container");
+      std::vector< std::string,std::allocator< std::string > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
 SWIGINTERN void std_vector_Sl_std_string_Sg__append(std::vector< std::string > *self,std::vector< std::string >::value_type const &x){
       self->push_back(x);
     }
@@ -6173,14 +6254,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_SwigPyIterator_incr(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -6292,14 +6373,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_SwigPyIterator_decr(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -6843,14 +6924,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_SwigPyIterator___sub__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -6997,34 +7078,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vdouble1d_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  std::vector< double >::value_type result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vdouble1d_t_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble1d_t_pop" "', argument " "1"" of type '" "std::vector< double > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
-  try {
-    result = (std::vector< double >::value_type)std_vector_Sl_double_Sg__pop(arg1);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  
-  resultobj = SWIG_From_double(static_cast< double >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vdouble1d_t___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< double > *arg1 = (std::vector< double > *) 0 ;
@@ -7079,20 +7132,17 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___setslice____SWIG_0(PyObject *SWIGUNUSED
   std::vector< double > *arg1 = (std::vector< double > *) 0 ;
   std::vector< double >::difference_type arg2 ;
   std::vector< double >::difference_type arg3 ;
-  std::vector< double,std::allocator< double > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
-  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:vdouble1d_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOO:vdouble1d_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble1d_t___setslice__" "', argument " "1"" of type '" "std::vector< double > *""'"); 
@@ -7108,19 +7158,8 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___setslice____SWIG_0(PyObject *SWIGUNUSED
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vdouble1d_t___setslice__" "', argument " "3"" of type '" "std::vector< double >::difference_type""'");
   } 
   arg3 = static_cast< std::vector< double >::difference_type >(val3);
-  {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
-    res4 = swig::asptr(obj3, &ptr);
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vdouble1d_t___setslice__" "', argument " "4"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vdouble1d_t___setslice__" "', argument " "4"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
-    }
-    arg4 = ptr;
-  }
   try {
-    std_vector_Sl_double_Sg____setslice____SWIG_0(arg1,arg2,arg3,(std::vector< double,std::allocator< double > > const &)*arg4);
+    std_vector_Sl_double_Sg____setslice____SWIG_0(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -7130,10 +7169,8 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___setslice____SWIG_0(PyObject *SWIGUNUSED
   }
   
   resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
@@ -7143,17 +7180,20 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___setslice____SWIG_1(PyObject *SWIGUNUSED
   std::vector< double > *arg1 = (std::vector< double > *) 0 ;
   std::vector< double >::difference_type arg2 ;
   std::vector< double >::difference_type arg3 ;
+  std::vector< double,std::allocator< double > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
+  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:vdouble1d_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:vdouble1d_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble1d_t___setslice__" "', argument " "1"" of type '" "std::vector< double > *""'"); 
@@ -7169,8 +7209,19 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___setslice____SWIG_1(PyObject *SWIGUNUSED
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vdouble1d_t___setslice__" "', argument " "3"" of type '" "std::vector< double >::difference_type""'");
   } 
   arg3 = static_cast< std::vector< double >::difference_type >(val3);
+  {
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
+    res4 = swig::asptr(obj3, &ptr);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vdouble1d_t___setslice__" "', argument " "4"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vdouble1d_t___setslice__" "', argument " "4"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
   try {
-    std_vector_Sl_double_Sg____setslice____SWIG_0(arg1,arg2,arg3);
+    std_vector_Sl_double_Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< double,std::allocator< double > > const &)*arg4);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -7180,27 +7231,29 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___setslice____SWIG_1(PyObject *SWIGUNUSED
   }
   
   resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
 
 SWIGINTERN PyObject *_wrap_vdouble1d_t___setslice__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -7213,14 +7266,14 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___setslice__(PyObject *self, PyObject *ar
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_vdouble1d_t___setslice____SWIG_1(self, args);
+          return _wrap_vdouble1d_t___setslice____SWIG_0(self, args);
         }
       }
     }
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -7233,10 +7286,10 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___setslice__(PyObject *self, PyObject *ar
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = swig::asptr(argv[3], (std::vector<double,std::allocator< double > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< double,std::allocator< double > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
-            return _wrap_vdouble1d_t___setslice____SWIG_0(self, args);
+            return _wrap_vdouble1d_t___setslice____SWIG_1(self, args);
           }
         }
       }
@@ -7246,8 +7299,8 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___setslice__(PyObject *self, PyObject *ar
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'vdouble1d_t___setslice__'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    std::vector< double >::__setslice__(std::vector< double >::difference_type,std::vector< double >::difference_type,std::vector< double,std::allocator< double > > const &)\n"
-    "    std::vector< double >::__setslice__(std::vector< double >::difference_type,std::vector< double >::difference_type)\n");
+    "    std::vector< double >::__setslice__(std::vector< double >::difference_type,std::vector< double >::difference_type)\n"
+    "    std::vector< double >::__setslice__(std::vector< double >::difference_type,std::vector< double >::difference_type,std::vector< double,std::allocator< double > > const &)\n");
   return 0;
 }
 
@@ -7328,6 +7381,9 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___delitem____SWIG_0(PyObject *SWIGUNUSEDP
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -7400,7 +7456,7 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___setitem____SWIG_0(PyObject *SWIGUNUSEDP
     arg2 = (PySliceObject *) obj1;
   }
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vdouble1d_t___setitem__" "', argument " "3"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
@@ -7506,20 +7562,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble1d_t___delitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -7532,7 +7588,7 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___delitem__(PyObject *self, PyObject *arg
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -7592,20 +7648,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble1d_t___getitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -7618,7 +7674,7 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___getitem__(PyObject *self, PyObject *arg
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -7688,20 +7744,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble1d_t___setitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -7714,14 +7770,14 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___setitem__(PyObject *self, PyObject *arg
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
         _v = PySlice_Check(argv[1]);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<double,std::allocator< double > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< double,std::allocator< double > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vdouble1d_t___setitem____SWIG_0(self, args);
@@ -7731,7 +7787,7 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t___setitem__(PyObject *self, PyObject *arg
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -7760,6 +7816,34 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vdouble1d_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< double >::value_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vdouble1d_t_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble1d_t_pop" "', argument " "1"" of type '" "std::vector< double > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  try {
+    result = (std::vector< double >::value_type)std_vector_Sl_double_Sg__pop(arg1);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_vdouble1d_t_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< double > *arg1 = (std::vector< double > *) 0 ;
@@ -7814,7 +7898,7 @@ SWIGINTERN PyObject *_wrap_new_vdouble1d_t__SWIG_1(PyObject *SWIGUNUSEDPARM(self
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_vdouble1d_t",&obj0)) SWIG_fail;
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_vdouble1d_t" "', argument " "1"" of type '" "std::vector< double > const &""'"); 
@@ -7878,42 +7962,21 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vdouble1d_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_vdouble1d_t_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  std::vector< double > *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 *)"O:vdouble1d_t_clear",&obj0)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OO:vdouble1d_t_swap",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble1d_t_clear" "', argument " "1"" of type '" "std::vector< double > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
-  (arg1)->clear();
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_vdouble1d_t_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
-  std::vector< double > *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:vdouble1d_t_swap",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble1d_t_swap" "', argument " "1"" of type '" "std::vector< double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble1d_t_swap" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
   arg1 = reinterpret_cast< std::vector< double > * >(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t,  0 );
@@ -7932,28 +7995,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vdouble1d_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  SwigValueWrapper< std::allocator< double > > result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vdouble1d_t_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble1d_t_get_allocator" "', argument " "1"" of type '" "std::vector< double > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
-  result = ((std::vector< double > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector< double >::allocator_type(static_cast< const std::vector< double >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_double_t, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vdouble1d_t_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< double > *arg1 = (std::vector< double > *) 0 ;
@@ -8046,6 +8087,49 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vdouble1d_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vdouble1d_t_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble1d_t_clear" "', argument " "1"" of type '" "std::vector< double > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vdouble1d_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< double > > result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vdouble1d_t_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble1d_t_get_allocator" "', argument " "1"" of type '" "std::vector< double > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  result = ((std::vector< double > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< double >::allocator_type(static_cast< const std::vector< double >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_double_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_new_vdouble1d_t__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< double >::size_type arg1 ;
@@ -8211,20 +8295,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble1d_t_erase(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -8237,7 +8321,7 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t_erase(PyObject *self, PyObject *args) {
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -8297,14 +8381,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_vdouble1d_t(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -8323,7 +8407,7 @@ SWIGINTERN PyObject *_wrap_new_vdouble1d_t(PyObject *self, PyObject *args) {
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_vdouble1d_t__SWIG_1(self, args);
@@ -8516,20 +8600,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble1d_t_resize(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -8543,7 +8627,7 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t_resize(PyObject *self, PyObject *args) {
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -8677,20 +8761,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble1d_t_insert(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -8709,7 +8793,7 @@ SWIGINTERN PyObject *_wrap_vdouble1d_t_insert(PyObject *self, PyObject *args) {
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator< double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -8912,34 +8996,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vdouble2d_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  std::vector< std::vector< double > >::value_type result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vdouble2d_t_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble2d_t_pop" "', argument " "1"" of type '" "std::vector< std::vector< double > > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< std::vector< double > > * >(argp1);
-  try {
-    result = std_vector_Sl_std_vector_Sl_double_Sg__Sg__pop(arg1);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vdouble2d_t___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
@@ -8994,20 +9050,17 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setslice____SWIG_0(PyObject *SWIGUNUSED
   std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
   std::vector< std::vector< double > >::difference_type arg2 ;
   std::vector< std::vector< double > >::difference_type arg3 ;
-  std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
-  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:vdouble2d_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOO:vdouble2d_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble2d_t___setslice__" "', argument " "1"" of type '" "std::vector< std::vector< double > > *""'"); 
@@ -9023,19 +9076,8 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setslice____SWIG_0(PyObject *SWIGUNUSED
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vdouble2d_t___setslice__" "', argument " "3"" of type '" "std::vector< std::vector< double > >::difference_type""'");
   } 
   arg3 = static_cast< std::vector< std::vector< double > >::difference_type >(val3);
-  {
-    std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *ptr = (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *)0;
-    res4 = swig::asptr(obj3, &ptr);
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vdouble2d_t___setslice__" "', argument " "4"" of type '" "std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vdouble2d_t___setslice__" "', argument " "4"" of type '" "std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &""'"); 
-    }
-    arg4 = ptr;
-  }
   try {
-    std_vector_Sl_std_vector_Sl_double_Sg__Sg____setslice____SWIG_0(arg1,arg2,arg3,(std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &)*arg4);
+    std_vector_Sl_std_vector_Sl_double_Sg__Sg____setslice____SWIG_0(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -9045,10 +9087,8 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setslice____SWIG_0(PyObject *SWIGUNUSED
   }
   
   resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
@@ -9058,17 +9098,20 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setslice____SWIG_1(PyObject *SWIGUNUSED
   std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
   std::vector< std::vector< double > >::difference_type arg2 ;
   std::vector< std::vector< double > >::difference_type arg3 ;
+  std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
+  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:vdouble2d_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:vdouble2d_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble2d_t___setslice__" "', argument " "1"" of type '" "std::vector< std::vector< double > > *""'"); 
@@ -9084,8 +9127,19 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setslice____SWIG_1(PyObject *SWIGUNUSED
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vdouble2d_t___setslice__" "', argument " "3"" of type '" "std::vector< std::vector< double > >::difference_type""'");
   } 
   arg3 = static_cast< std::vector< std::vector< double > >::difference_type >(val3);
+  {
+    std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *ptr = (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *)0;
+    res4 = swig::asptr(obj3, &ptr);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vdouble2d_t___setslice__" "', argument " "4"" of type '" "std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vdouble2d_t___setslice__" "', argument " "4"" of type '" "std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
   try {
-    std_vector_Sl_std_vector_Sl_double_Sg__Sg____setslice____SWIG_0(arg1,arg2,arg3);
+    std_vector_Sl_std_vector_Sl_double_Sg__Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &)*arg4);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -9095,27 +9149,29 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setslice____SWIG_1(PyObject *SWIGUNUSED
   }
   
   resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
 
 SWIGINTERN PyObject *_wrap_vdouble2d_t___setslice__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -9128,14 +9184,14 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setslice__(PyObject *self, PyObject *ar
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_vdouble2d_t___setslice____SWIG_1(self, args);
+          return _wrap_vdouble2d_t___setslice____SWIG_0(self, args);
         }
       }
     }
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -9148,10 +9204,10 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setslice__(PyObject *self, PyObject *ar
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = swig::asptr(argv[3], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
-            return _wrap_vdouble2d_t___setslice____SWIG_0(self, args);
+            return _wrap_vdouble2d_t___setslice____SWIG_1(self, args);
           }
         }
       }
@@ -9161,8 +9217,8 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setslice__(PyObject *self, PyObject *ar
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'vdouble2d_t___setslice__'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    std::vector< std::vector< double > >::__setslice__(std::vector< std::vector< double > >::difference_type,std::vector< std::vector< double > >::difference_type,std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &)\n"
-    "    std::vector< std::vector< double > >::__setslice__(std::vector< std::vector< double > >::difference_type,std::vector< std::vector< double > >::difference_type)\n");
+    "    std::vector< std::vector< double > >::__setslice__(std::vector< std::vector< double > >::difference_type,std::vector< std::vector< double > >::difference_type)\n"
+    "    std::vector< std::vector< double > >::__setslice__(std::vector< std::vector< double > >::difference_type,std::vector< std::vector< double > >::difference_type,std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &)\n");
   return 0;
 }
 
@@ -9243,6 +9299,9 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___delitem____SWIG_0(PyObject *SWIGUNUSEDP
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -9315,7 +9374,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setitem____SWIG_0(PyObject *SWIGUNUSEDP
     arg2 = (PySliceObject *) obj1;
   }
   {
-    std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *ptr = (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *)0;
+    std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *ptr = (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vdouble2d_t___setitem__" "', argument " "3"" of type '" "std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > const &""'"); 
@@ -9421,20 +9480,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble2d_t___delitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -9447,7 +9506,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___delitem__(PyObject *self, PyObject *arg
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -9499,7 +9558,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___getitem____SWIG_1(PyObject *SWIGUNUSEDP
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
   
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(*result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(*result));
   return resultobj;
 fail:
   return NULL;
@@ -9507,20 +9566,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble2d_t___getitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -9533,7 +9592,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___getitem__(PyObject *self, PyObject *arg
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -9581,7 +9640,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setitem____SWIG_2(PyObject *SWIGUNUSEDP
   } 
   arg2 = static_cast< std::vector< std::vector< double > >::difference_type >(val2);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vdouble2d_t___setitem__" "', argument " "3"" of type '" "std::vector< std::vector< double > >::value_type const &""'"); 
@@ -9608,20 +9667,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble2d_t___setitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -9634,14 +9693,14 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setitem__(PyObject *self, PyObject *arg
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
         _v = PySlice_Check(argv[1]);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vdouble2d_t___setitem____SWIG_0(self, args);
@@ -9651,7 +9710,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setitem__(PyObject *self, PyObject *arg
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -9659,7 +9718,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t___setitem__(PyObject *self, PyObject *arg
         _v = SWIG_CheckState(res);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<double,std::allocator< double > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< double,std::allocator< double > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vdouble2d_t___setitem____SWIG_2(self, args);
@@ -9678,6 +9737,34 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vdouble2d_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< std::vector< double > >::value_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vdouble2d_t_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble2d_t_pop" "', argument " "1"" of type '" "std::vector< std::vector< double > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< std::vector< double > > * >(argp1);
+  try {
+    result = std_vector_Sl_std_vector_Sl_double_Sg__Sg__pop(arg1);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_vdouble2d_t_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
@@ -9695,7 +9782,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_append(PyObject *SWIGUNUSEDPARM(self), Py
   }
   arg1 = reinterpret_cast< std::vector< std::vector< double > > * >(argp1);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res2 = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "vdouble2d_t_append" "', argument " "2"" of type '" "std::vector< std::vector< double > >::value_type const &""'"); 
@@ -9737,7 +9824,7 @@ SWIGINTERN PyObject *_wrap_new_vdouble2d_t__SWIG_1(PyObject *SWIGUNUSEDPARM(self
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_vdouble2d_t",&obj0)) SWIG_fail;
   {
-    std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *ptr = (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *)0;
+    std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *ptr = (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_vdouble2d_t" "', argument " "1"" of type '" "std::vector< std::vector< double,std::allocator< double > > > const &""'"); 
@@ -9801,27 +9888,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vdouble2d_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vdouble2d_t_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble2d_t_clear" "', argument " "1"" of type '" "std::vector< std::vector< double > > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< std::vector< double > > * >(argp1);
-  (arg1)->clear();
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vdouble2d_t_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
@@ -9855,28 +9921,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vdouble2d_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  SwigValueWrapper< std::allocator< std::vector< double,std::allocator< double > > > > result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vdouble2d_t_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble2d_t_get_allocator" "', argument " "1"" of type '" "std::vector< std::vector< double > > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< std::vector< double > > * >(argp1);
-  result = ((std::vector< std::vector< double > > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector< std::vector< double > >::allocator_type(static_cast< const std::vector< std::vector< double > >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vdouble2d_t_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
@@ -9969,6 +10013,49 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vdouble2d_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vdouble2d_t_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble2d_t_clear" "', argument " "1"" of type '" "std::vector< std::vector< double > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< std::vector< double > > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vdouble2d_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< std::vector< double > > *arg1 = (std::vector< std::vector< double > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< std::vector< double,std::allocator< double > > > > result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vdouble2d_t_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vdouble2d_t_get_allocator" "', argument " "1"" of type '" "std::vector< std::vector< double > > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< std::vector< double > > * >(argp1);
+  result = ((std::vector< std::vector< double > > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< std::vector< double > >::allocator_type(static_cast< const std::vector< std::vector< double > >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_new_vdouble2d_t__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::vector< double > >::size_type arg1 ;
@@ -10134,20 +10221,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble2d_t_erase(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -10160,7 +10247,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_erase(PyObject *self, PyObject *args) {
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -10204,7 +10291,7 @@ SWIGINTERN PyObject *_wrap_new_vdouble2d_t__SWIG_3(PyObject *SWIGUNUSEDPARM(self
   } 
   arg1 = static_cast< std::vector< std::vector< double > >::size_type >(val1);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res2 = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_vdouble2d_t" "', argument " "2"" of type '" "std::vector< std::vector< double > >::value_type const &""'"); 
@@ -10225,14 +10312,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_vdouble2d_t(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -10251,7 +10338,7 @@ SWIGINTERN PyObject *_wrap_new_vdouble2d_t(PyObject *self, PyObject *args) {
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_vdouble2d_t__SWIG_1(self, args);
@@ -10264,7 +10351,7 @@ SWIGINTERN PyObject *_wrap_new_vdouble2d_t(PyObject *self, PyObject *args) {
       _v = SWIG_CheckState(res);
     }
     if (_v) {
-      int res = swig::asptr(argv[1], (std::vector<double,std::allocator< double > >**)(0));
+      int res = swig::asptr(argv[1], (std::vector< double,std::allocator< double > >**)(0));
       _v = SWIG_CheckState(res);
       if (_v) {
         return _wrap_new_vdouble2d_t__SWIG_3(self, args);
@@ -10300,7 +10387,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_push_back(PyObject *SWIGUNUSEDPARM(self),
   }
   arg1 = reinterpret_cast< std::vector< std::vector< double > > * >(argp1);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res2 = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "vdouble2d_t_push_back" "', argument " "2"" of type '" "std::vector< std::vector< double > >::value_type const &""'"); 
@@ -10335,7 +10422,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_front(PyObject *SWIGUNUSEDPARM(self), PyO
   }
   arg1 = reinterpret_cast< std::vector< std::vector< double > > * >(argp1);
   result = (std::vector< std::vector< double > >::value_type *) &((std::vector< std::vector< double > > const *)arg1)->front();
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(*result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(*result));
   return resultobj;
 fail:
   return NULL;
@@ -10357,7 +10444,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_back(PyObject *SWIGUNUSEDPARM(self), PyOb
   }
   arg1 = reinterpret_cast< std::vector< std::vector< double > > * >(argp1);
   result = (std::vector< std::vector< double > >::value_type *) &((std::vector< std::vector< double > > const *)arg1)->back();
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(*result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(*result));
   return resultobj;
 fail:
   return NULL;
@@ -10390,7 +10477,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_assign(PyObject *SWIGUNUSEDPARM(self), Py
   } 
   arg2 = static_cast< std::vector< std::vector< double > >::size_type >(val2);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vdouble2d_t_assign" "', argument " "3"" of type '" "std::vector< std::vector< double > >::value_type const &""'"); 
@@ -10436,7 +10523,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(s
   } 
   arg2 = static_cast< std::vector< std::vector< double > >::size_type >(val2);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vdouble2d_t_resize" "', argument " "3"" of type '" "std::vector< std::vector< double > >::value_type const &""'"); 
@@ -10457,20 +10544,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble2d_t_resize(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -10484,7 +10571,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_resize(PyObject *self, PyObject *args) {
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -10492,7 +10579,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_resize(PyObject *self, PyObject *args) {
         _v = SWIG_CheckState(res);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<double,std::allocator< double > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< double,std::allocator< double > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vdouble2d_t_resize__SWIG_1(self, args);
@@ -10543,7 +10630,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_insert__SWIG_0(PyObject *SWIGUNUSEDPARM(s
     }
   }
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vdouble2d_t_insert" "', argument " "3"" of type '" "std::vector< std::vector< double > >::value_type const &""'"); 
@@ -10605,7 +10692,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(s
   } 
   arg3 = static_cast< std::vector< std::vector< double > >::size_type >(val3);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res4 = swig::asptr(obj3, &ptr);
     if (!SWIG_IsOK(res4)) {
       SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vdouble2d_t_insert" "', argument " "4"" of type '" "std::vector< std::vector< double > >::value_type const &""'"); 
@@ -10626,27 +10713,27 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vdouble2d_t_insert(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
       int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
       _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< std::vector< double > >::iterator > *>(iter) != 0));
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<double,std::allocator< double > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< double,std::allocator< double > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vdouble2d_t_insert__SWIG_0(self, args);
@@ -10656,7 +10743,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_insert(PyObject *self, PyObject *args) {
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -10668,7 +10755,7 @@ SWIGINTERN PyObject *_wrap_vdouble2d_t_insert(PyObject *self, PyObject *args) {
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = swig::asptr(argv[3], (std::vector<double,std::allocator< double > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< double,std::allocator< double > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
             return _wrap_vdouble2d_t_insert__SWIG_1(self, args);
@@ -10857,34 +10944,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_integer_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  std::vector< int >::value_type result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_integer_t_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_integer_t_pop" "', argument " "1"" of type '" "std::vector< int > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
-  try {
-    result = (std::vector< int >::value_type)std_vector_Sl_int_Sg__pop(arg1);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  
-  resultobj = SWIG_From_int(static_cast< int >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_integer_t___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< int > *arg1 = (std::vector< int > *) 0 ;
@@ -10939,20 +10998,17 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setslice____SWIG_0(PyObject *SWIGU
   std::vector< int > *arg1 = (std::vector< int > *) 0 ;
   std::vector< int >::difference_type arg2 ;
   std::vector< int >::difference_type arg3 ;
-  std::vector< int,std::allocator< int > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
-  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_integer_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOO:vector_integer_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_integer_t___setslice__" "', argument " "1"" of type '" "std::vector< int > *""'"); 
@@ -10968,19 +11024,8 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setslice____SWIG_0(PyObject *SWIGU
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_integer_t___setslice__" "', argument " "3"" of type '" "std::vector< int >::difference_type""'");
   } 
   arg3 = static_cast< std::vector< int >::difference_type >(val3);
-  {
-    std::vector<int,std::allocator< int > > *ptr = (std::vector<int,std::allocator< int > > *)0;
-    res4 = swig::asptr(obj3, &ptr);
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_integer_t___setslice__" "', argument " "4"" of type '" "std::vector< int,std::allocator< int > > const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_integer_t___setslice__" "', argument " "4"" of type '" "std::vector< int,std::allocator< int > > const &""'"); 
-    }
-    arg4 = ptr;
-  }
   try {
-    std_vector_Sl_int_Sg____setslice____SWIG_0(arg1,arg2,arg3,(std::vector< int,std::allocator< int > > const &)*arg4);
+    std_vector_Sl_int_Sg____setslice____SWIG_0(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -10990,10 +11035,8 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setslice____SWIG_0(PyObject *SWIGU
   }
   
   resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
@@ -11003,17 +11046,20 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setslice____SWIG_1(PyObject *SWIGU
   std::vector< int > *arg1 = (std::vector< int > *) 0 ;
   std::vector< int >::difference_type arg2 ;
   std::vector< int >::difference_type arg3 ;
+  std::vector< int,std::allocator< int > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
+  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:vector_integer_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_integer_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_integer_t___setslice__" "', argument " "1"" of type '" "std::vector< int > *""'"); 
@@ -11029,8 +11075,19 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setslice____SWIG_1(PyObject *SWIGU
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_integer_t___setslice__" "', argument " "3"" of type '" "std::vector< int >::difference_type""'");
   } 
   arg3 = static_cast< std::vector< int >::difference_type >(val3);
+  {
+    std::vector< int,std::allocator< int > > *ptr = (std::vector< int,std::allocator< int > > *)0;
+    res4 = swig::asptr(obj3, &ptr);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_integer_t___setslice__" "', argument " "4"" of type '" "std::vector< int,std::allocator< int > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_integer_t___setslice__" "', argument " "4"" of type '" "std::vector< int,std::allocator< int > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
   try {
-    std_vector_Sl_int_Sg____setslice____SWIG_0(arg1,arg2,arg3);
+    std_vector_Sl_int_Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< int,std::allocator< int > > const &)*arg4);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -11040,27 +11097,29 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setslice____SWIG_1(PyObject *SWIGU
   }
   
   resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
 
 SWIGINTERN PyObject *_wrap_vector_integer_t___setslice__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -11073,14 +11132,14 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setslice__(PyObject *self, PyObjec
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_vector_integer_t___setslice____SWIG_1(self, args);
+          return _wrap_vector_integer_t___setslice____SWIG_0(self, args);
         }
       }
     }
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -11093,10 +11152,10 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setslice__(PyObject *self, PyObjec
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = swig::asptr(argv[3], (std::vector<int,std::allocator< int > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< int,std::allocator< int > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
-            return _wrap_vector_integer_t___setslice____SWIG_0(self, args);
+            return _wrap_vector_integer_t___setslice____SWIG_1(self, args);
           }
         }
       }
@@ -11106,8 +11165,8 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setslice__(PyObject *self, PyObjec
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'vector_integer_t___setslice__'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    std::vector< int >::__setslice__(std::vector< int >::difference_type,std::vector< int >::difference_type,std::vector< int,std::allocator< int > > const &)\n"
-    "    std::vector< int >::__setslice__(std::vector< int >::difference_type,std::vector< int >::difference_type)\n");
+    "    std::vector< int >::__setslice__(std::vector< int >::difference_type,std::vector< int >::difference_type)\n"
+    "    std::vector< int >::__setslice__(std::vector< int >::difference_type,std::vector< int >::difference_type,std::vector< int,std::allocator< int > > const &)\n");
   return 0;
 }
 
@@ -11188,6 +11247,9 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___delitem____SWIG_0(PyObject *SWIGUN
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -11260,7 +11322,7 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setitem____SWIG_0(PyObject *SWIGUN
     arg2 = (PySliceObject *) obj1;
   }
   {
-    std::vector<int,std::allocator< int > > *ptr = (std::vector<int,std::allocator< int > > *)0;
+    std::vector< int,std::allocator< int > > *ptr = (std::vector< int,std::allocator< int > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vector_integer_t___setitem__" "', argument " "3"" of type '" "std::vector< int,std::allocator< int > > const &""'"); 
@@ -11366,20 +11428,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_integer_t___delitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -11392,7 +11454,7 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___delitem__(PyObject *self, PyObject
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -11452,20 +11514,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_integer_t___getitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -11478,7 +11540,7 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___getitem__(PyObject *self, PyObject
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -11548,20 +11610,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_integer_t___setitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -11574,14 +11636,14 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setitem__(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
         _v = PySlice_Check(argv[1]);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<int,std::allocator< int > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< int,std::allocator< int > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vector_integer_t___setitem____SWIG_0(self, args);
@@ -11591,7 +11653,7 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___setitem__(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -11620,6 +11682,34 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_integer_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< int >::value_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_integer_t_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_integer_t_pop" "', argument " "1"" of type '" "std::vector< int > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  try {
+    result = (std::vector< int >::value_type)std_vector_Sl_int_Sg__pop(arg1);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_From_int(static_cast< int >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_vector_integer_t_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< int > *arg1 = (std::vector< int > *) 0 ;
@@ -11674,7 +11764,7 @@ SWIGINTERN PyObject *_wrap_new_vector_integer_t__SWIG_1(PyObject *SWIGUNUSEDPARM
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_vector_integer_t",&obj0)) SWIG_fail;
   {
-    std::vector<int,std::allocator< int > > *ptr = (std::vector<int,std::allocator< int > > *)0;
+    std::vector< int,std::allocator< int > > *ptr = (std::vector< int,std::allocator< int > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_vector_integer_t" "', argument " "1"" of type '" "std::vector< int > const &""'"); 
@@ -11738,27 +11828,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_integer_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_integer_t_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_integer_t_clear" "', argument " "1"" of type '" "std::vector< int > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
-  (arg1)->clear();
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_integer_t_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< int > *arg1 = (std::vector< int > *) 0 ;
@@ -11792,28 +11861,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_integer_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  SwigValueWrapper< std::allocator< int > > result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_integer_t_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_integer_t_get_allocator" "', argument " "1"" of type '" "std::vector< int > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
-  result = ((std::vector< int > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector< int >::allocator_type(static_cast< const std::vector< int >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_int_t, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_integer_t_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< int > *arg1 = (std::vector< int > *) 0 ;
@@ -11906,6 +11953,49 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_integer_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_integer_t_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_integer_t_clear" "', argument " "1"" of type '" "std::vector< int > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vector_integer_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< int > > result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_integer_t_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_integer_t_get_allocator" "', argument " "1"" of type '" "std::vector< int > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  result = ((std::vector< int > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< int >::allocator_type(static_cast< const std::vector< int >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_int_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_new_vector_integer_t__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< int >::size_type arg1 ;
@@ -12071,20 +12161,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_integer_t_erase(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -12097,7 +12187,7 @@ SWIGINTERN PyObject *_wrap_vector_integer_t_erase(PyObject *self, PyObject *args
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -12157,14 +12247,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_vector_integer_t(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -12183,7 +12273,7 @@ SWIGINTERN PyObject *_wrap_new_vector_integer_t(PyObject *self, PyObject *args)
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_vector_integer_t__SWIG_1(self, args);
@@ -12376,20 +12466,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_integer_t_resize(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -12403,7 +12493,7 @@ SWIGINTERN PyObject *_wrap_vector_integer_t_resize(PyObject *self, PyObject *arg
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -12537,20 +12627,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_integer_t_insert(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -12569,7 +12659,7 @@ SWIGINTERN PyObject *_wrap_vector_integer_t_insert(PyObject *self, PyObject *arg
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator< int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -12772,34 +12862,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_longinteger_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  std::vector< unsigned long >::value_type result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_longinteger_t_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_longinteger_t_pop" "', argument " "1"" of type '" "std::vector< unsigned long > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< unsigned long > * >(argp1);
-  try {
-    result = (std::vector< unsigned long >::value_type)std_vector_Sl_unsigned_SS_long_Sg__pop(arg1);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  
-  resultobj = SWIG_From_unsigned_SS_long(static_cast< unsigned long >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_longinteger_t___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
@@ -12854,20 +12916,17 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setslice____SWIG_0(PyObject *S
   std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
   std::vector< unsigned long >::difference_type arg2 ;
   std::vector< unsigned long >::difference_type arg3 ;
-  std::vector< unsigned long,std::allocator< unsigned long > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
-  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_longinteger_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOO:vector_longinteger_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_longinteger_t___setslice__" "', argument " "1"" of type '" "std::vector< unsigned long > *""'"); 
@@ -12883,19 +12942,8 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setslice____SWIG_0(PyObject *S
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_longinteger_t___setslice__" "', argument " "3"" of type '" "std::vector< unsigned long >::difference_type""'");
   } 
   arg3 = static_cast< std::vector< unsigned long >::difference_type >(val3);
-  {
-    std::vector<unsigned long,std::allocator< unsigned long > > *ptr = (std::vector<unsigned long,std::allocator< unsigned long > > *)0;
-    res4 = swig::asptr(obj3, &ptr);
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_longinteger_t___setslice__" "', argument " "4"" of type '" "std::vector< unsigned long,std::allocator< unsigned long > > const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_longinteger_t___setslice__" "', argument " "4"" of type '" "std::vector< unsigned long,std::allocator< unsigned long > > const &""'"); 
-    }
-    arg4 = ptr;
-  }
   try {
-    std_vector_Sl_unsigned_SS_long_Sg____setslice____SWIG_0(arg1,arg2,arg3,(std::vector< unsigned long,std::allocator< unsigned long > > const &)*arg4);
+    std_vector_Sl_unsigned_SS_long_Sg____setslice____SWIG_0(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -12905,10 +12953,8 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setslice____SWIG_0(PyObject *S
   }
   
   resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
@@ -12918,17 +12964,20 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setslice____SWIG_1(PyObject *S
   std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
   std::vector< unsigned long >::difference_type arg2 ;
   std::vector< unsigned long >::difference_type arg3 ;
+  std::vector< unsigned long,std::allocator< unsigned long > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
+  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:vector_longinteger_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_longinteger_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_longinteger_t___setslice__" "', argument " "1"" of type '" "std::vector< unsigned long > *""'"); 
@@ -12944,8 +12993,19 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setslice____SWIG_1(PyObject *S
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_longinteger_t___setslice__" "', argument " "3"" of type '" "std::vector< unsigned long >::difference_type""'");
   } 
   arg3 = static_cast< std::vector< unsigned long >::difference_type >(val3);
+  {
+    std::vector< unsigned long,std::allocator< unsigned long > > *ptr = (std::vector< unsigned long,std::allocator< unsigned long > > *)0;
+    res4 = swig::asptr(obj3, &ptr);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_longinteger_t___setslice__" "', argument " "4"" of type '" "std::vector< unsigned long,std::allocator< unsigned long > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_longinteger_t___setslice__" "', argument " "4"" of type '" "std::vector< unsigned long,std::allocator< unsigned long > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
   try {
-    std_vector_Sl_unsigned_SS_long_Sg____setslice____SWIG_0(arg1,arg2,arg3);
+    std_vector_Sl_unsigned_SS_long_Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< unsigned long,std::allocator< unsigned long > > const &)*arg4);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -12955,27 +13015,29 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setslice____SWIG_1(PyObject *S
   }
   
   resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
 
 SWIGINTERN PyObject *_wrap_vector_longinteger_t___setslice__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -12988,14 +13050,14 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setslice__(PyObject *self, PyO
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_vector_longinteger_t___setslice____SWIG_1(self, args);
+          return _wrap_vector_longinteger_t___setslice____SWIG_0(self, args);
         }
       }
     }
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -13008,10 +13070,10 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setslice__(PyObject *self, PyO
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = swig::asptr(argv[3], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
-            return _wrap_vector_longinteger_t___setslice____SWIG_0(self, args);
+            return _wrap_vector_longinteger_t___setslice____SWIG_1(self, args);
           }
         }
       }
@@ -13021,8 +13083,8 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setslice__(PyObject *self, PyO
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'vector_longinteger_t___setslice__'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    std::vector< unsigned long >::__setslice__(std::vector< unsigned long >::difference_type,std::vector< unsigned long >::difference_type,std::vector< unsigned long,std::allocator< unsigned long > > const &)\n"
-    "    std::vector< unsigned long >::__setslice__(std::vector< unsigned long >::difference_type,std::vector< unsigned long >::difference_type)\n");
+    "    std::vector< unsigned long >::__setslice__(std::vector< unsigned long >::difference_type,std::vector< unsigned long >::difference_type)\n"
+    "    std::vector< unsigned long >::__setslice__(std::vector< unsigned long >::difference_type,std::vector< unsigned long >::difference_type,std::vector< unsigned long,std::allocator< unsigned long > > const &)\n");
   return 0;
 }
 
@@ -13103,6 +13165,9 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___delitem____SWIG_0(PyObject *SW
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -13175,7 +13240,7 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setitem____SWIG_0(PyObject *SW
     arg2 = (PySliceObject *) obj1;
   }
   {
-    std::vector<unsigned long,std::allocator< unsigned long > > *ptr = (std::vector<unsigned long,std::allocator< unsigned long > > *)0;
+    std::vector< unsigned long,std::allocator< unsigned long > > *ptr = (std::vector< unsigned long,std::allocator< unsigned long > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vector_longinteger_t___setitem__" "', argument " "3"" of type '" "std::vector< unsigned long,std::allocator< unsigned long > > const &""'"); 
@@ -13281,20 +13346,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_longinteger_t___delitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -13307,7 +13372,7 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___delitem__(PyObject *self, PyOb
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -13367,20 +13432,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_longinteger_t___getitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -13393,7 +13458,7 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___getitem__(PyObject *self, PyOb
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -13463,20 +13528,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_longinteger_t___setitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -13489,14 +13554,14 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setitem__(PyObject *self, PyOb
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
         _v = PySlice_Check(argv[1]);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vector_longinteger_t___setitem____SWIG_0(self, args);
@@ -13506,7 +13571,7 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setitem__(PyObject *self, PyOb
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -13535,6 +13600,34 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_longinteger_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< unsigned long >::value_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_longinteger_t_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_longinteger_t_pop" "', argument " "1"" of type '" "std::vector< unsigned long > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< unsigned long > * >(argp1);
+  try {
+    result = (std::vector< unsigned long >::value_type)std_vector_Sl_unsigned_SS_long_Sg__pop(arg1);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_From_unsigned_SS_long(static_cast< unsigned long >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_vector_longinteger_t_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
@@ -13589,7 +13682,7 @@ SWIGINTERN PyObject *_wrap_new_vector_longinteger_t__SWIG_1(PyObject *SWIGUNUSED
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_vector_longinteger_t",&obj0)) SWIG_fail;
   {
-    std::vector<unsigned long,std::allocator< unsigned long > > *ptr = (std::vector<unsigned long,std::allocator< unsigned long > > *)0;
+    std::vector< unsigned long,std::allocator< unsigned long > > *ptr = (std::vector< unsigned long,std::allocator< unsigned long > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_vector_longinteger_t" "', argument " "1"" of type '" "std::vector< unsigned long > const &""'"); 
@@ -13653,27 +13746,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_longinteger_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_longinteger_t_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_longinteger_t_clear" "', argument " "1"" of type '" "std::vector< unsigned long > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< unsigned long > * >(argp1);
-  (arg1)->clear();
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_longinteger_t_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
@@ -13693,36 +13765,14 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t_swap(PyObject *SWIGUNUSEDPARM(se
   arg1 = reinterpret_cast< std::vector< unsigned long > * >(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t,  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "vector_longinteger_t_swap" "', argument " "2"" of type '" "std::vector< unsigned long > &""'"); 
-  }
-  if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_longinteger_t_swap" "', argument " "2"" of type '" "std::vector< unsigned long > &""'"); 
-  }
-  arg2 = reinterpret_cast< std::vector< unsigned long > * >(argp2);
-  (arg1)->swap(*arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_vector_longinteger_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  SwigValueWrapper< std::allocator< unsigned long > > result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_longinteger_t_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_longinteger_t_get_allocator" "', argument " "1"" of type '" "std::vector< unsigned long > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "vector_longinteger_t_swap" "', argument " "2"" of type '" "std::vector< unsigned long > &""'"); 
   }
-  arg1 = reinterpret_cast< std::vector< unsigned long > * >(argp1);
-  result = ((std::vector< unsigned long > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector< unsigned long >::allocator_type(static_cast< const std::vector< unsigned long >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_unsigned_long_t, SWIG_POINTER_OWN |  0 );
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_longinteger_t_swap" "', argument " "2"" of type '" "std::vector< unsigned long > &""'"); 
+  }
+  arg2 = reinterpret_cast< std::vector< unsigned long > * >(argp2);
+  (arg1)->swap(*arg2);
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
@@ -13821,6 +13871,49 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_longinteger_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_longinteger_t_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_longinteger_t_clear" "', argument " "1"" of type '" "std::vector< unsigned long > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< unsigned long > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vector_longinteger_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< unsigned long > *arg1 = (std::vector< unsigned long > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< unsigned long > > result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_longinteger_t_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_longinteger_t_get_allocator" "', argument " "1"" of type '" "std::vector< unsigned long > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< unsigned long > * >(argp1);
+  result = ((std::vector< unsigned long > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< unsigned long >::allocator_type(static_cast< const std::vector< unsigned long >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_unsigned_long_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_new_vector_longinteger_t__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< unsigned long >::size_type arg1 ;
@@ -13986,20 +14079,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_longinteger_t_erase(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -14012,7 +14105,7 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t_erase(PyObject *self, PyObject *
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -14072,14 +14165,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_vector_longinteger_t(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -14098,7 +14191,7 @@ SWIGINTERN PyObject *_wrap_new_vector_longinteger_t(PyObject *self, PyObject *ar
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_vector_longinteger_t__SWIG_1(self, args);
@@ -14291,20 +14384,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_longinteger_t_resize(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -14318,7 +14411,7 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t_resize(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -14452,20 +14545,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_longinteger_t_insert(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -14484,7 +14577,7 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t_insert(PyObject *self, PyObject
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<unsigned long,std::allocator< unsigned long > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< unsigned long,std::allocator< unsigned long > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -14687,34 +14780,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_complex_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  std::vector< std::complex< double > >::value_type result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_complex_t_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_complex_t_pop" "', argument " "1"" of type '" "std::vector< std::complex< double > > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< std::complex< double > > * >(argp1);
-  try {
-    result = std_vector_Sl_std_complex_Sl_double_Sg__Sg__pop(arg1);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  
-  resultobj = SWIG_From_std_complex_Sl_double_Sg_(static_cast< std::complex<double> >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_complex_t___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
@@ -14769,20 +14834,17 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___setslice____SWIG_0(PyObject *SWIGU
   std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
   std::vector< std::complex< double > >::difference_type arg2 ;
   std::vector< std::complex< double > >::difference_type arg3 ;
-  std::vector< std::complex< double >,std::allocator< std::complex< double > > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
-  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_complex_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOO:vector_complex_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_complex_t___setslice__" "', argument " "1"" of type '" "std::vector< std::complex< double > > *""'"); 
@@ -14798,19 +14860,8 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___setslice____SWIG_0(PyObject *SWIGU
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_complex_t___setslice__" "', argument " "3"" of type '" "std::vector< std::complex< double > >::difference_type""'");
   } 
   arg3 = static_cast< std::vector< std::complex< double > >::difference_type >(val3);
-  {
-    std::vector<std::complex< double >,std::allocator< std::complex< double > > > *ptr = (std::vector<std::complex< double >,std::allocator< std::complex< double > > > *)0;
-    res4 = swig::asptr(obj3, &ptr);
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_complex_t___setslice__" "', argument " "4"" of type '" "std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_complex_t___setslice__" "', argument " "4"" of type '" "std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &""'"); 
-    }
-    arg4 = ptr;
-  }
   try {
-    std_vector_Sl_std_complex_Sl_double_Sg__Sg____setslice____SWIG_0(arg1,arg2,arg3,(std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &)*arg4);
+    std_vector_Sl_std_complex_Sl_double_Sg__Sg____setslice____SWIG_0(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -14820,10 +14871,8 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___setslice____SWIG_0(PyObject *SWIGU
   }
   
   resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
@@ -14833,17 +14882,20 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___setslice____SWIG_1(PyObject *SWIGU
   std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
   std::vector< std::complex< double > >::difference_type arg2 ;
   std::vector< std::complex< double > >::difference_type arg3 ;
+  std::vector< std::complex< double >,std::allocator< std::complex< double > > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
+  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:vector_complex_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_complex_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_complex_t___setslice__" "', argument " "1"" of type '" "std::vector< std::complex< double > > *""'"); 
@@ -14859,8 +14911,19 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___setslice____SWIG_1(PyObject *SWIGU
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_complex_t___setslice__" "', argument " "3"" of type '" "std::vector< std::complex< double > >::difference_type""'");
   } 
   arg3 = static_cast< std::vector< std::complex< double > >::difference_type >(val3);
+  {
+    std::vector< std::complex< double >,std::allocator< std::complex< double > > > *ptr = (std::vector< std::complex< double >,std::allocator< std::complex< double > > > *)0;
+    res4 = swig::asptr(obj3, &ptr);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_complex_t___setslice__" "', argument " "4"" of type '" "std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_complex_t___setslice__" "', argument " "4"" of type '" "std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
   try {
-    std_vector_Sl_std_complex_Sl_double_Sg__Sg____setslice____SWIG_0(arg1,arg2,arg3);
+    std_vector_Sl_std_complex_Sl_double_Sg__Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &)*arg4);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -14870,27 +14933,29 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___setslice____SWIG_1(PyObject *SWIGU
   }
   
   resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
 
 SWIGINTERN PyObject *_wrap_vector_complex_t___setslice__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -14903,14 +14968,14 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___setslice__(PyObject *self, PyObjec
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_vector_complex_t___setslice____SWIG_1(self, args);
+          return _wrap_vector_complex_t___setslice____SWIG_0(self, args);
         }
       }
     }
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -14923,10 +14988,10 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___setslice__(PyObject *self, PyObjec
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = swig::asptr(argv[3], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
-            return _wrap_vector_complex_t___setslice____SWIG_0(self, args);
+            return _wrap_vector_complex_t___setslice____SWIG_1(self, args);
           }
         }
       }
@@ -14936,8 +15001,8 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___setslice__(PyObject *self, PyObjec
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'vector_complex_t___setslice__'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    std::vector< std::complex< double > >::__setslice__(std::vector< std::complex< double > >::difference_type,std::vector< std::complex< double > >::difference_type,std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &)\n"
-    "    std::vector< std::complex< double > >::__setslice__(std::vector< std::complex< double > >::difference_type,std::vector< std::complex< double > >::difference_type)\n");
+    "    std::vector< std::complex< double > >::__setslice__(std::vector< std::complex< double > >::difference_type,std::vector< std::complex< double > >::difference_type)\n"
+    "    std::vector< std::complex< double > >::__setslice__(std::vector< std::complex< double > >::difference_type,std::vector< std::complex< double > >::difference_type,std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &)\n");
   return 0;
 }
 
@@ -15018,6 +15083,9 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___delitem____SWIG_0(PyObject *SWIGUN
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -15090,7 +15158,7 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___setitem____SWIG_0(PyObject *SWIGUN
     arg2 = (PySliceObject *) obj1;
   }
   {
-    std::vector<std::complex< double >,std::allocator< std::complex< double > > > *ptr = (std::vector<std::complex< double >,std::allocator< std::complex< double > > > *)0;
+    std::vector< std::complex< double >,std::allocator< std::complex< double > > > *ptr = (std::vector< std::complex< double >,std::allocator< std::complex< double > > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vector_complex_t___setitem__" "', argument " "3"" of type '" "std::vector< std::complex< double >,std::allocator< std::complex< double > > > const &""'"); 
@@ -15196,20 +15264,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_complex_t___delitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -15222,7 +15290,7 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___delitem__(PyObject *self, PyObject
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -15282,20 +15350,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_complex_t___getitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -15308,7 +15376,7 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___getitem__(PyObject *self, PyObject
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -15378,20 +15446,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_complex_t___setitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -15404,14 +15472,14 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___setitem__(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
         _v = PySlice_Check(argv[1]);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vector_complex_t___setitem____SWIG_0(self, args);
@@ -15421,7 +15489,7 @@ SWIGINTERN PyObject *_wrap_vector_complex_t___setitem__(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -15450,6 +15518,34 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_complex_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< std::complex< double > >::value_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_complex_t_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_complex_t_pop" "', argument " "1"" of type '" "std::vector< std::complex< double > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< std::complex< double > > * >(argp1);
+  try {
+    result = std_vector_Sl_std_complex_Sl_double_Sg__Sg__pop(arg1);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_From_std_complex_Sl_double_Sg_(static_cast< std::complex<double> >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_vector_complex_t_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
@@ -15504,7 +15600,7 @@ SWIGINTERN PyObject *_wrap_new_vector_complex_t__SWIG_1(PyObject *SWIGUNUSEDPARM
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_vector_complex_t",&obj0)) SWIG_fail;
   {
-    std::vector<std::complex< double >,std::allocator< std::complex< double > > > *ptr = (std::vector<std::complex< double >,std::allocator< std::complex< double > > > *)0;
+    std::vector< std::complex< double >,std::allocator< std::complex< double > > > *ptr = (std::vector< std::complex< double >,std::allocator< std::complex< double > > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_vector_complex_t" "', argument " "1"" of type '" "std::vector< std::complex< double > > const &""'"); 
@@ -15568,27 +15664,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_complex_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_complex_t_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_complex_t_clear" "', argument " "1"" of type '" "std::vector< std::complex< double > > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< std::complex< double > > * >(argp1);
-  (arg1)->clear();
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_complex_t_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
@@ -15622,28 +15697,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_complex_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  SwigValueWrapper< std::allocator< std::complex< double > > > result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_complex_t_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_complex_t_get_allocator" "', argument " "1"" of type '" "std::vector< std::complex< double > > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< std::complex< double > > * >(argp1);
-  result = ((std::vector< std::complex< double > > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector< std::complex< double > >::allocator_type(static_cast< const std::vector< std::complex< double > >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_complex_t_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
@@ -15736,6 +15789,49 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_complex_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_complex_t_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_complex_t_clear" "', argument " "1"" of type '" "std::vector< std::complex< double > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< std::complex< double > > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vector_complex_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< std::complex< double > > > result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_complex_t_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_complex_t_get_allocator" "', argument " "1"" of type '" "std::vector< std::complex< double > > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< std::complex< double > > * >(argp1);
+  result = ((std::vector< std::complex< double > > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< std::complex< double > >::allocator_type(static_cast< const std::vector< std::complex< double > >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_new_vector_complex_t__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::complex< double > >::size_type arg1 ;
@@ -15901,20 +15997,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_complex_t_erase(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -15927,7 +16023,7 @@ SWIGINTERN PyObject *_wrap_vector_complex_t_erase(PyObject *self, PyObject *args
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -15987,14 +16083,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_vector_complex_t(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -16013,7 +16109,7 @@ SWIGINTERN PyObject *_wrap_new_vector_complex_t(PyObject *self, PyObject *args)
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_vector_complex_t__SWIG_1(self, args);
@@ -16206,20 +16302,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_complex_t_resize(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -16233,7 +16329,7 @@ SWIGINTERN PyObject *_wrap_vector_complex_t_resize(PyObject *self, PyObject *arg
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -16367,20 +16463,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_complex_t_insert(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -16399,7 +16495,7 @@ SWIGINTERN PyObject *_wrap_vector_complex_t_insert(PyObject *self, PyObject *arg
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::complex< double >,std::allocator< std::complex< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::complex< double >,std::allocator< std::complex< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -16588,42 +16684,14 @@ SWIGINTERN PyObject *_wrap_vector_string_t___len__(PyObject *SWIGUNUSEDPARM(self
   PyObject * obj0 = 0 ;
   std::vector< std::string >::size_type result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_string_t___len__",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_string_t___len__" "', argument " "1"" of type '" "std::vector< std::string > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< std::string > * >(argp1);
-  result = std_vector_Sl_std_string_Sg____len__((std::vector< std::string > const *)arg1);
-  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_vector_string_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  std::vector< std::string >::value_type result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_string_t_pop",&obj0)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_string_t___len__",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_string_t_pop" "', argument " "1"" of type '" "std::vector< std::string > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_string_t___len__" "', argument " "1"" of type '" "std::vector< std::string > const *""'"); 
   }
   arg1 = reinterpret_cast< std::vector< std::string > * >(argp1);
-  try {
-    result = std_vector_Sl_std_string_Sg__pop(arg1);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
-  }
-  
-  resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+  result = std_vector_Sl_std_string_Sg____len__((std::vector< std::string > const *)arg1);
+  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
   return NULL;
@@ -16684,20 +16752,17 @@ SWIGINTERN PyObject *_wrap_vector_string_t___setslice____SWIG_0(PyObject *SWIGUN
   std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
   std::vector< std::string >::difference_type arg2 ;
   std::vector< std::string >::difference_type arg3 ;
-  std::vector< std::string,std::allocator< std::string > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
-  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_string_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOO:vector_string_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_string_t___setslice__" "', argument " "1"" of type '" "std::vector< std::string > *""'"); 
@@ -16713,19 +16778,8 @@ SWIGINTERN PyObject *_wrap_vector_string_t___setslice____SWIG_0(PyObject *SWIGUN
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_string_t___setslice__" "', argument " "3"" of type '" "std::vector< std::string >::difference_type""'");
   } 
   arg3 = static_cast< std::vector< std::string >::difference_type >(val3);
-  {
-    std::vector<std::string,std::allocator< std::string > > *ptr = (std::vector<std::string,std::allocator< std::string > > *)0;
-    res4 = swig::asptr(obj3, &ptr);
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_string_t___setslice__" "', argument " "4"" of type '" "std::vector< std::string,std::allocator< std::string > > const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_string_t___setslice__" "', argument " "4"" of type '" "std::vector< std::string,std::allocator< std::string > > const &""'"); 
-    }
-    arg4 = ptr;
-  }
   try {
-    std_vector_Sl_std_string_Sg____setslice____SWIG_0(arg1,arg2,arg3,(std::vector< std::string,std::allocator< std::string > > const &)*arg4);
+    std_vector_Sl_std_string_Sg____setslice____SWIG_0(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -16735,10 +16789,8 @@ SWIGINTERN PyObject *_wrap_vector_string_t___setslice____SWIG_0(PyObject *SWIGUN
   }
   
   resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
@@ -16748,17 +16800,20 @@ SWIGINTERN PyObject *_wrap_vector_string_t___setslice____SWIG_1(PyObject *SWIGUN
   std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
   std::vector< std::string >::difference_type arg2 ;
   std::vector< std::string >::difference_type arg3 ;
+  std::vector< std::string,std::allocator< std::string > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
+  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:vector_string_t___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:vector_string_t___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_string_t___setslice__" "', argument " "1"" of type '" "std::vector< std::string > *""'"); 
@@ -16774,8 +16829,19 @@ SWIGINTERN PyObject *_wrap_vector_string_t___setslice____SWIG_1(PyObject *SWIGUN
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vector_string_t___setslice__" "', argument " "3"" of type '" "std::vector< std::string >::difference_type""'");
   } 
   arg3 = static_cast< std::vector< std::string >::difference_type >(val3);
+  {
+    std::vector< std::string,std::allocator< std::string > > *ptr = (std::vector< std::string,std::allocator< std::string > > *)0;
+    res4 = swig::asptr(obj3, &ptr);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vector_string_t___setslice__" "', argument " "4"" of type '" "std::vector< std::string,std::allocator< std::string > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vector_string_t___setslice__" "', argument " "4"" of type '" "std::vector< std::string,std::allocator< std::string > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
   try {
-    std_vector_Sl_std_string_Sg____setslice____SWIG_0(arg1,arg2,arg3);
+    std_vector_Sl_std_string_Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< std::string,std::allocator< std::string > > const &)*arg4);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -16785,27 +16851,29 @@ SWIGINTERN PyObject *_wrap_vector_string_t___setslice____SWIG_1(PyObject *SWIGUN
   }
   
   resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
 
 SWIGINTERN PyObject *_wrap_vector_string_t___setslice__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -16818,14 +16886,14 @@ SWIGINTERN PyObject *_wrap_vector_string_t___setslice__(PyObject *self, PyObject
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_vector_string_t___setslice____SWIG_1(self, args);
+          return _wrap_vector_string_t___setslice____SWIG_0(self, args);
         }
       }
     }
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -16838,10 +16906,10 @@ SWIGINTERN PyObject *_wrap_vector_string_t___setslice__(PyObject *self, PyObject
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = swig::asptr(argv[3], (std::vector<std::string,std::allocator< std::string > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< std::string,std::allocator< std::string > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
-            return _wrap_vector_string_t___setslice____SWIG_0(self, args);
+            return _wrap_vector_string_t___setslice____SWIG_1(self, args);
           }
         }
       }
@@ -16851,8 +16919,8 @@ SWIGINTERN PyObject *_wrap_vector_string_t___setslice__(PyObject *self, PyObject
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'vector_string_t___setslice__'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    std::vector< std::string >::__setslice__(std::vector< std::string >::difference_type,std::vector< std::string >::difference_type,std::vector< std::string,std::allocator< std::string > > const &)\n"
-    "    std::vector< std::string >::__setslice__(std::vector< std::string >::difference_type,std::vector< std::string >::difference_type)\n");
+    "    std::vector< std::string >::__setslice__(std::vector< std::string >::difference_type,std::vector< std::string >::difference_type)\n"
+    "    std::vector< std::string >::__setslice__(std::vector< std::string >::difference_type,std::vector< std::string >::difference_type,std::vector< std::string,std::allocator< std::string > > const &)\n");
   return 0;
 }
 
@@ -16933,6 +17001,9 @@ SWIGINTERN PyObject *_wrap_vector_string_t___delitem____SWIG_0(PyObject *SWIGUNU
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -17005,7 +17076,7 @@ SWIGINTERN PyObject *_wrap_vector_string_t___setitem____SWIG_0(PyObject *SWIGUNU
     arg2 = (PySliceObject *) obj1;
   }
   {
-    std::vector<std::string,std::allocator< std::string > > *ptr = (std::vector<std::string,std::allocator< std::string > > *)0;
+    std::vector< std::string,std::allocator< std::string > > *ptr = (std::vector< std::string,std::allocator< std::string > > *)0;
     res3 = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res3)) {
       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "vector_string_t___setitem__" "', argument " "3"" of type '" "std::vector< std::string,std::allocator< std::string > > const &""'"); 
@@ -17111,20 +17182,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_string_t___delitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -17137,7 +17208,7 @@ SWIGINTERN PyObject *_wrap_vector_string_t___delitem__(PyObject *self, PyObject
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -17197,20 +17268,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_string_t___getitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -17223,7 +17294,7 @@ SWIGINTERN PyObject *_wrap_vector_string_t___getitem__(PyObject *self, PyObject
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -17298,20 +17369,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_string_t___setitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -17324,14 +17395,14 @@ SWIGINTERN PyObject *_wrap_vector_string_t___setitem__(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
         _v = PySlice_Check(argv[1]);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<std::string,std::allocator< std::string > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< std::string,std::allocator< std::string > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vector_string_t___setitem____SWIG_0(self, args);
@@ -17341,7 +17412,7 @@ SWIGINTERN PyObject *_wrap_vector_string_t___setitem__(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -17368,6 +17439,34 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_string_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< std::string >::value_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_string_t_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_string_t_pop" "', argument " "1"" of type '" "std::vector< std::string > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< std::string > * >(argp1);
+  try {
+    result = std_vector_Sl_std_string_Sg__pop(arg1);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_vector_string_t_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
@@ -17427,7 +17526,7 @@ SWIGINTERN PyObject *_wrap_new_vector_string_t__SWIG_1(PyObject *SWIGUNUSEDPARM(
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_vector_string_t",&obj0)) SWIG_fail;
   {
-    std::vector<std::string,std::allocator< std::string > > *ptr = (std::vector<std::string,std::allocator< std::string > > *)0;
+    std::vector< std::string,std::allocator< std::string > > *ptr = (std::vector< std::string,std::allocator< std::string > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_vector_string_t" "', argument " "1"" of type '" "std::vector< std::string > const &""'"); 
@@ -17491,27 +17590,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_string_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_string_t_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_string_t_clear" "', argument " "1"" of type '" "std::vector< std::string > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< std::string > * >(argp1);
-  (arg1)->clear();
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_string_t_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
@@ -17545,28 +17623,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_string_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  SwigValueWrapper< std::allocator< std::string > > result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_string_t_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_string_t_get_allocator" "', argument " "1"" of type '" "std::vector< std::string > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< std::string > * >(argp1);
-  result = ((std::vector< std::string > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector< std::string >::allocator_type(static_cast< const std::vector< std::string >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_std__string_t, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_vector_string_t_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
@@ -17659,6 +17715,49 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_string_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_string_t_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_string_t_clear" "', argument " "1"" of type '" "std::vector< std::string > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< std::string > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vector_string_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< std::string > *arg1 = (std::vector< std::string > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< std::string > > result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_string_t_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_string_t_get_allocator" "', argument " "1"" of type '" "std::vector< std::string > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< std::string > * >(argp1);
+  result = ((std::vector< std::string > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< std::string >::allocator_type(static_cast< const std::vector< std::string >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_std__string_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_new_vector_string_t__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::string >::size_type arg1 ;
@@ -17824,20 +17923,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_string_t_erase(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -17850,7 +17949,7 @@ SWIGINTERN PyObject *_wrap_vector_string_t_erase(PyObject *self, PyObject *args)
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -17915,14 +18014,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_vector_string_t(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -17941,7 +18040,7 @@ SWIGINTERN PyObject *_wrap_new_vector_string_t(PyObject *self, PyObject *args) {
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_vector_string_t__SWIG_1(self, args);
@@ -18147,20 +18246,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_string_t_resize(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -18174,7 +18273,7 @@ SWIGINTERN PyObject *_wrap_vector_string_t_resize(PyObject *self, PyObject *args
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -18316,20 +18415,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_string_t_insert(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[5] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -18346,7 +18445,7 @@ SWIGINTERN PyObject *_wrap_vector_string_t_insert(PyObject *self, PyObject *args
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<std::string,std::allocator< std::string > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< std::string,std::allocator< std::string > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -18644,34 +18743,34 @@ SWIGINTERN PyObject *Attributes_swigregister(PyObject *SWIGUNUSEDPARM(self), PyO
   return SWIG_Py_Void();
 }
 
-SWIGINTERN PyObject *_wrap_new_Limits(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_new_RealLimits(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  Limits *result = 0 ;
+  RealLimits *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)":new_Limits")) SWIG_fail;
-  result = (Limits *)new Limits();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Limits, SWIG_POINTER_NEW |  0 );
+  if (!PyArg_ParseTuple(args,(char *)":new_RealLimits")) SWIG_fail;
+  result = (RealLimits *)new RealLimits();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_RealLimits, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_Limits_hasLowerLimit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_RealLimits_hasLowerLimit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  Limits *arg1 = (Limits *) 0 ;
+  RealLimits *arg1 = (RealLimits *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   bool result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:Limits_hasLowerLimit",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Limits, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:RealLimits_hasLowerLimit",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_RealLimits, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Limits_hasLowerLimit" "', argument " "1"" of type '" "Limits const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RealLimits_hasLowerLimit" "', argument " "1"" of type '" "RealLimits const *""'"); 
   }
-  arg1 = reinterpret_cast< Limits * >(argp1);
-  result = (bool)((Limits const *)arg1)->hasLowerLimit();
+  arg1 = reinterpret_cast< RealLimits * >(argp1);
+  result = (bool)((RealLimits const *)arg1)->hasLowerLimit();
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
@@ -18679,21 +18778,21 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Limits_getLowerLimit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_RealLimits_getLowerLimit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  Limits *arg1 = (Limits *) 0 ;
+  RealLimits *arg1 = (RealLimits *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   double result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:Limits_getLowerLimit",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Limits, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:RealLimits_getLowerLimit",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_RealLimits, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Limits_getLowerLimit" "', argument " "1"" of type '" "Limits const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RealLimits_getLowerLimit" "', argument " "1"" of type '" "RealLimits const *""'"); 
   }
-  arg1 = reinterpret_cast< Limits * >(argp1);
-  result = (double)((Limits const *)arg1)->getLowerLimit();
+  arg1 = reinterpret_cast< RealLimits * >(argp1);
+  result = (double)((RealLimits const *)arg1)->getLowerLimit();
   resultobj = SWIG_From_double(static_cast< double >(result));
   return resultobj;
 fail:
@@ -18701,9 +18800,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Limits_setLowerLimit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_RealLimits_setLowerLimit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  Limits *arg1 = (Limits *) 0 ;
+  RealLimits *arg1 = (RealLimits *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -18712,15 +18811,15 @@ SWIGINTERN PyObject *_wrap_Limits_setLowerLimit(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:Limits_setLowerLimit",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Limits, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:RealLimits_setLowerLimit",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_RealLimits, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Limits_setLowerLimit" "', argument " "1"" of type '" "Limits *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RealLimits_setLowerLimit" "', argument " "1"" of type '" "RealLimits *""'"); 
   }
-  arg1 = reinterpret_cast< Limits * >(argp1);
+  arg1 = reinterpret_cast< RealLimits * >(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Limits_setLowerLimit" "', argument " "2"" of type '" "double""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "RealLimits_setLowerLimit" "', argument " "2"" of type '" "double""'");
   } 
   arg2 = static_cast< double >(val2);
   (arg1)->setLowerLimit(arg2);
@@ -18731,19 +18830,19 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Limits_removeLowerLimit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_RealLimits_removeLowerLimit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  Limits *arg1 = (Limits *) 0 ;
+  RealLimits *arg1 = (RealLimits *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:Limits_removeLowerLimit",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Limits, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:RealLimits_removeLowerLimit",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_RealLimits, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Limits_removeLowerLimit" "', argument " "1"" of type '" "Limits *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RealLimits_removeLowerLimit" "', argument " "1"" of type '" "RealLimits *""'"); 
   }
-  arg1 = reinterpret_cast< Limits * >(argp1);
+  arg1 = reinterpret_cast< RealLimits * >(argp1);
   (arg1)->removeLowerLimit();
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -18752,21 +18851,21 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Limits_hasUpperLimit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_RealLimits_hasUpperLimit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  Limits *arg1 = (Limits *) 0 ;
+  RealLimits *arg1 = (RealLimits *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   bool result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:Limits_hasUpperLimit",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Limits, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:RealLimits_hasUpperLimit",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_RealLimits, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Limits_hasUpperLimit" "', argument " "1"" of type '" "Limits const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RealLimits_hasUpperLimit" "', argument " "1"" of type '" "RealLimits const *""'"); 
   }
-  arg1 = reinterpret_cast< Limits * >(argp1);
-  result = (bool)((Limits const *)arg1)->hasUpperLimit();
+  arg1 = reinterpret_cast< RealLimits * >(argp1);
+  result = (bool)((RealLimits const *)arg1)->hasUpperLimit();
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
@@ -18774,21 +18873,21 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Limits_getUpperLimit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_RealLimits_getUpperLimit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  Limits *arg1 = (Limits *) 0 ;
+  RealLimits *arg1 = (RealLimits *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   double result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:Limits_getUpperLimit",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Limits, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:RealLimits_getUpperLimit",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_RealLimits, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Limits_getUpperLimit" "', argument " "1"" of type '" "Limits const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RealLimits_getUpperLimit" "', argument " "1"" of type '" "RealLimits const *""'"); 
   }
-  arg1 = reinterpret_cast< Limits * >(argp1);
-  result = (double)((Limits const *)arg1)->getUpperLimit();
+  arg1 = reinterpret_cast< RealLimits * >(argp1);
+  result = (double)((RealLimits const *)arg1)->getUpperLimit();
   resultobj = SWIG_From_double(static_cast< double >(result));
   return resultobj;
 fail:
@@ -18796,9 +18895,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Limits_setUpperLimit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_RealLimits_setUpperLimit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  Limits *arg1 = (Limits *) 0 ;
+  RealLimits *arg1 = (RealLimits *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -18807,15 +18906,15 @@ SWIGINTERN PyObject *_wrap_Limits_setUpperLimit(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:Limits_setUpperLimit",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Limits, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:RealLimits_setUpperLimit",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_RealLimits, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Limits_setUpperLimit" "', argument " "1"" of type '" "Limits *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RealLimits_setUpperLimit" "', argument " "1"" of type '" "RealLimits *""'"); 
   }
-  arg1 = reinterpret_cast< Limits * >(argp1);
+  arg1 = reinterpret_cast< RealLimits * >(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Limits_setUpperLimit" "', argument " "2"" of type '" "double""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "RealLimits_setUpperLimit" "', argument " "2"" of type '" "double""'");
   } 
   arg2 = static_cast< double >(val2);
   (arg1)->setUpperLimit(arg2);
@@ -18826,19 +18925,19 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Limits_removeUpperLimit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_RealLimits_removeUpperLimit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  Limits *arg1 = (Limits *) 0 ;
+  RealLimits *arg1 = (RealLimits *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:Limits_removeUpperLimit",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Limits, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:RealLimits_removeUpperLimit",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_RealLimits, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Limits_removeUpperLimit" "', argument " "1"" of type '" "Limits *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RealLimits_removeUpperLimit" "', argument " "1"" of type '" "RealLimits *""'"); 
   }
-  arg1 = reinterpret_cast< Limits * >(argp1);
+  arg1 = reinterpret_cast< RealLimits * >(argp1);
   (arg1)->removeUpperLimit();
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -18847,21 +18946,21 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Limits_hasLowerAndUpperLimits(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_RealLimits_hasLowerAndUpperLimits(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  Limits *arg1 = (Limits *) 0 ;
+  RealLimits *arg1 = (RealLimits *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   bool result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:Limits_hasLowerAndUpperLimits",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Limits, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:RealLimits_hasLowerAndUpperLimits",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_RealLimits, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Limits_hasLowerAndUpperLimits" "', argument " "1"" of type '" "Limits const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RealLimits_hasLowerAndUpperLimits" "', argument " "1"" of type '" "RealLimits const *""'"); 
   }
-  arg1 = reinterpret_cast< Limits * >(argp1);
-  result = (bool)((Limits const *)arg1)->hasLowerAndUpperLimits();
+  arg1 = reinterpret_cast< RealLimits * >(argp1);
+  result = (bool)((RealLimits const *)arg1)->hasLowerAndUpperLimits();
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
@@ -18869,9 +18968,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Limits_setLimits(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_RealLimits_setLimits(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  Limits *arg1 = (Limits *) 0 ;
+  RealLimits *arg1 = (RealLimits *) 0 ;
   double arg2 ;
   double arg3 ;
   void *argp1 = 0 ;
@@ -18884,20 +18983,20 @@ SWIGINTERN PyObject *_wrap_Limits_setLimits(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:Limits_setLimits",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Limits, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:RealLimits_setLimits",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_RealLimits, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Limits_setLimits" "', argument " "1"" of type '" "Limits *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RealLimits_setLimits" "', argument " "1"" of type '" "RealLimits *""'"); 
   }
-  arg1 = reinterpret_cast< Limits * >(argp1);
+  arg1 = reinterpret_cast< RealLimits * >(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Limits_setLimits" "', argument " "2"" of type '" "double""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "RealLimits_setLimits" "', argument " "2"" of type '" "double""'");
   } 
   arg2 = static_cast< double >(val2);
   ecode3 = SWIG_AsVal_double(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Limits_setLimits" "', argument " "3"" of type '" "double""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "RealLimits_setLimits" "', argument " "3"" of type '" "double""'");
   } 
   arg3 = static_cast< double >(val3);
   (arg1)->setLimits(arg2,arg3);
@@ -18908,19 +19007,19 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Limits_removeLimits(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_RealLimits_removeLimits(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  Limits *arg1 = (Limits *) 0 ;
+  RealLimits *arg1 = (RealLimits *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:Limits_removeLimits",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Limits, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:RealLimits_removeLimits",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_RealLimits, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Limits_removeLimits" "', argument " "1"" of type '" "Limits *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RealLimits_removeLimits" "', argument " "1"" of type '" "RealLimits *""'"); 
   }
-  arg1 = reinterpret_cast< Limits * >(argp1);
+  arg1 = reinterpret_cast< RealLimits * >(argp1);
   (arg1)->removeLimits();
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -18929,9 +19028,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Limits_isInRange(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_RealLimits_isInRange(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  Limits *arg1 = (Limits *) 0 ;
+  RealLimits *arg1 = (RealLimits *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -18941,18 +19040,18 @@ SWIGINTERN PyObject *_wrap_Limits_isInRange(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject * obj1 = 0 ;
   bool result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:Limits_isInRange",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Limits, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:RealLimits_isInRange",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_RealLimits, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Limits_isInRange" "', argument " "1"" of type '" "Limits const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RealLimits_isInRange" "', argument " "1"" of type '" "RealLimits const *""'"); 
   }
-  arg1 = reinterpret_cast< Limits * >(argp1);
+  arg1 = reinterpret_cast< RealLimits * >(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Limits_isInRange" "', argument " "2"" of type '" "double""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "RealLimits_isInRange" "', argument " "2"" of type '" "double""'");
   } 
   arg2 = static_cast< double >(val2);
-  result = (bool)((Limits const *)arg1)->isInRange(arg2);
+  result = (bool)((RealLimits const *)arg1)->isInRange(arg2);
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
@@ -18960,77 +19059,77 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Limits_lowerLimited(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_RealLimits_lowerLimited(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   double arg1 ;
   double val1 ;
   int ecode1 = 0 ;
   PyObject * obj0 = 0 ;
-  Limits result;
+  RealLimits result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:Limits_lowerLimited",&obj0)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"O:RealLimits_lowerLimited",&obj0)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(obj0, &val1);
   if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "Limits_lowerLimited" "', argument " "1"" of type '" "double""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "RealLimits_lowerLimited" "', argument " "1"" of type '" "double""'");
   } 
   arg1 = static_cast< double >(val1);
-  result = Limits::lowerLimited(arg1);
-  resultobj = SWIG_NewPointerObj((new Limits(static_cast< const Limits& >(result))), SWIGTYPE_p_Limits, SWIG_POINTER_OWN |  0 );
+  result = RealLimits::lowerLimited(arg1);
+  resultobj = SWIG_NewPointerObj((new RealLimits(static_cast< const RealLimits& >(result))), SWIGTYPE_p_RealLimits, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_Limits_positive(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_RealLimits_positive(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  Limits result;
+  RealLimits result;
   
-  if (!PyArg_ParseTuple(args,(char *)":Limits_positive")) SWIG_fail;
-  result = Limits::positive();
-  resultobj = SWIG_NewPointerObj((new Limits(static_cast< const Limits& >(result))), SWIGTYPE_p_Limits, SWIG_POINTER_OWN |  0 );
+  if (!PyArg_ParseTuple(args,(char *)":RealLimits_positive")) SWIG_fail;
+  result = RealLimits::positive();
+  resultobj = SWIG_NewPointerObj((new RealLimits(static_cast< const RealLimits& >(result))), SWIGTYPE_p_RealLimits, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_Limits_nonnegative(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_RealLimits_nonnegative(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  Limits result;
+  RealLimits result;
   
-  if (!PyArg_ParseTuple(args,(char *)":Limits_nonnegative")) SWIG_fail;
-  result = Limits::nonnegative();
-  resultobj = SWIG_NewPointerObj((new Limits(static_cast< const Limits& >(result))), SWIGTYPE_p_Limits, SWIG_POINTER_OWN |  0 );
+  if (!PyArg_ParseTuple(args,(char *)":RealLimits_nonnegative")) SWIG_fail;
+  result = RealLimits::nonnegative();
+  resultobj = SWIG_NewPointerObj((new RealLimits(static_cast< const RealLimits& >(result))), SWIGTYPE_p_RealLimits, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_Limits_upperLimited(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_RealLimits_upperLimited(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   double arg1 ;
   double val1 ;
   int ecode1 = 0 ;
   PyObject * obj0 = 0 ;
-  Limits result;
+  RealLimits result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:Limits_upperLimited",&obj0)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"O:RealLimits_upperLimited",&obj0)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(obj0, &val1);
   if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "Limits_upperLimited" "', argument " "1"" of type '" "double""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "RealLimits_upperLimited" "', argument " "1"" of type '" "double""'");
   } 
   arg1 = static_cast< double >(val1);
-  result = Limits::upperLimited(arg1);
-  resultobj = SWIG_NewPointerObj((new Limits(static_cast< const Limits& >(result))), SWIGTYPE_p_Limits, SWIG_POINTER_OWN |  0 );
+  result = RealLimits::upperLimited(arg1);
+  resultobj = SWIG_NewPointerObj((new RealLimits(static_cast< const RealLimits& >(result))), SWIGTYPE_p_RealLimits, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_Limits_limited(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_RealLimits_limited(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   double arg1 ;
   double arg2 ;
@@ -19040,44 +19139,44 @@ SWIGINTERN PyObject *_wrap_Limits_limited(PyObject *SWIGUNUSEDPARM(self), PyObje
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
-  Limits result;
+  RealLimits result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:Limits_limited",&obj0,&obj1)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OO:RealLimits_limited",&obj0,&obj1)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(obj0, &val1);
   if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "Limits_limited" "', argument " "1"" of type '" "double""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "RealLimits_limited" "', argument " "1"" of type '" "double""'");
   } 
   arg1 = static_cast< double >(val1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Limits_limited" "', argument " "2"" of type '" "double""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "RealLimits_limited" "', argument " "2"" of type '" "double""'");
   } 
   arg2 = static_cast< double >(val2);
-  result = Limits::limited(arg1,arg2);
-  resultobj = SWIG_NewPointerObj((new Limits(static_cast< const Limits& >(result))), SWIGTYPE_p_Limits, SWIG_POINTER_OWN |  0 );
+  result = RealLimits::limited(arg1,arg2);
+  resultobj = SWIG_NewPointerObj((new RealLimits(static_cast< const RealLimits& >(result))), SWIGTYPE_p_RealLimits, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_Limits_limitless(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_RealLimits_limitless(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  Limits result;
+  RealLimits result;
   
-  if (!PyArg_ParseTuple(args,(char *)":Limits_limitless")) SWIG_fail;
-  result = Limits::limitless();
-  resultobj = SWIG_NewPointerObj((new Limits(static_cast< const Limits& >(result))), SWIGTYPE_p_Limits, SWIG_POINTER_OWN |  0 );
+  if (!PyArg_ParseTuple(args,(char *)":RealLimits_limitless")) SWIG_fail;
+  result = RealLimits::limitless();
+  resultobj = SWIG_NewPointerObj((new RealLimits(static_cast< const RealLimits& >(result))), SWIGTYPE_p_RealLimits, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_Limits___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_RealLimits___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  Limits *arg1 = (Limits *) 0 ;
-  Limits *arg2 = 0 ;
+  RealLimits *arg1 = (RealLimits *) 0 ;
+  RealLimits *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -19086,21 +19185,21 @@ SWIGINTERN PyObject *_wrap_Limits___eq__(PyObject *SWIGUNUSEDPARM(self), PyObjec
   PyObject * obj1 = 0 ;
   bool result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:Limits___eq__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Limits, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:RealLimits___eq__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_RealLimits, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Limits___eq__" "', argument " "1"" of type '" "Limits const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RealLimits___eq__" "', argument " "1"" of type '" "RealLimits const *""'"); 
   }
-  arg1 = reinterpret_cast< Limits * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Limits,  0  | 0);
+  arg1 = reinterpret_cast< RealLimits * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_RealLimits,  0  | 0);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Limits___eq__" "', argument " "2"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "RealLimits___eq__" "', argument " "2"" of type '" "RealLimits const &""'"); 
   }
   if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Limits___eq__" "', argument " "2"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "RealLimits___eq__" "', argument " "2"" of type '" "RealLimits const &""'"); 
   }
-  arg2 = reinterpret_cast< Limits * >(argp2);
-  result = (bool)((Limits const *)arg1)->operator ==((Limits const &)*arg2);
+  arg2 = reinterpret_cast< RealLimits * >(argp2);
+  result = (bool)((RealLimits const *)arg1)->operator ==((RealLimits const &)*arg2);
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
@@ -19108,10 +19207,10 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Limits___ne__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_RealLimits___ne__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  Limits *arg1 = (Limits *) 0 ;
-  Limits *arg2 = 0 ;
+  RealLimits *arg1 = (RealLimits *) 0 ;
+  RealLimits *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -19120,21 +19219,21 @@ SWIGINTERN PyObject *_wrap_Limits___ne__(PyObject *SWIGUNUSEDPARM(self), PyObjec
   PyObject * obj1 = 0 ;
   bool result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:Limits___ne__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Limits, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:RealLimits___ne__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_RealLimits, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Limits___ne__" "', argument " "1"" of type '" "Limits const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RealLimits___ne__" "', argument " "1"" of type '" "RealLimits const *""'"); 
   }
-  arg1 = reinterpret_cast< Limits * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Limits,  0  | 0);
+  arg1 = reinterpret_cast< RealLimits * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_RealLimits,  0  | 0);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Limits___ne__" "', argument " "2"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "RealLimits___ne__" "', argument " "2"" of type '" "RealLimits const &""'"); 
   }
   if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Limits___ne__" "', argument " "2"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "RealLimits___ne__" "', argument " "2"" of type '" "RealLimits const &""'"); 
   }
-  arg2 = reinterpret_cast< Limits * >(argp2);
-  result = (bool)((Limits const *)arg1)->operator !=((Limits const &)*arg2);
+  arg2 = reinterpret_cast< RealLimits * >(argp2);
+  result = (bool)((RealLimits const *)arg1)->operator !=((RealLimits const &)*arg2);
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
@@ -19142,19 +19241,19 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_delete_Limits(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_delete_RealLimits(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  Limits *arg1 = (Limits *) 0 ;
+  RealLimits *arg1 = (RealLimits *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:delete_Limits",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Limits, SWIG_POINTER_DISOWN |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:delete_RealLimits",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_RealLimits, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Limits" "', argument " "1"" of type '" "Limits *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_RealLimits" "', argument " "1"" of type '" "RealLimits *""'"); 
   }
-  arg1 = reinterpret_cast< Limits * >(argp1);
+  arg1 = reinterpret_cast< RealLimits * >(argp1);
   delete arg1;
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -19163,10 +19262,10 @@ fail:
 }
 
 
-SWIGINTERN PyObject *Limits_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *RealLimits_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
   if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
-  SWIG_TypeNewClientData(SWIGTYPE_p_Limits, SWIG_NewClientData(obj));
+  SWIG_TypeNewClientData(SWIGTYPE_p_RealLimits, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
 
@@ -19209,14 +19308,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_Configurable(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -19318,14 +19417,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Configurable_option(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -19426,14 +19525,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Configurable_toOptionString(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -19712,7 +19811,7 @@ SWIGINTERN PyObject *_wrap_IMinimizer_getValueOfVariablesAtMinimum(PyObject *SWI
   }
   arg1 = reinterpret_cast< IMinimizer * >(argp1);
   result = ((IMinimizer const *)arg1)->getValueOfVariablesAtMinimum();
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -19734,7 +19833,7 @@ SWIGINTERN PyObject *_wrap_IMinimizer_getErrorOfVariables(PyObject *SWIGUNUSEDPA
   }
   arg1 = reinterpret_cast< IMinimizer * >(argp1);
   result = ((IMinimizer const *)arg1)->getErrorOfVariables();
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -19829,14 +19928,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IMinimizer_getOptions(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -20029,7 +20128,7 @@ SWIGINTERN PyObject *_wrap_new_FitParameter__SWIG_1(PyObject *SWIGUNUSEDPARM(sel
   std::string *arg1 = 0 ;
   double arg2 ;
   double arg3 ;
-  Limits *arg4 = 0 ;
+  RealLimits *arg4 = 0 ;
   Attributes *arg5 = 0 ;
   double arg6 ;
   int res1 = SWIG_OLDOBJ ;
@@ -20073,14 +20172,14 @@ SWIGINTERN PyObject *_wrap_new_FitParameter__SWIG_1(PyObject *SWIGUNUSEDPARM(sel
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_FitParameter" "', argument " "3"" of type '" "double""'");
   } 
   arg3 = static_cast< double >(val3);
-  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_Limits,  0  | 0);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_RealLimits,  0  | 0);
   if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_FitParameter" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_FitParameter" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
   if (!argp4) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_FitParameter" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_FitParameter" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
-  arg4 = reinterpret_cast< Limits * >(argp4);
+  arg4 = reinterpret_cast< RealLimits * >(argp4);
   res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_Attributes,  0  | 0);
   if (!SWIG_IsOK(res5)) {
     SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "new_FitParameter" "', argument " "5"" of type '" "Attributes const &""'"); 
@@ -20094,7 +20193,7 @@ SWIGINTERN PyObject *_wrap_new_FitParameter__SWIG_1(PyObject *SWIGUNUSEDPARM(sel
     SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "new_FitParameter" "', argument " "6"" of type '" "double""'");
   } 
   arg6 = static_cast< double >(val6);
-  result = (FitParameter *)new FitParameter((std::string const &)*arg1,arg2,arg3,(Limits const &)*arg4,(Attributes const &)*arg5,arg6);
+  result = (FitParameter *)new FitParameter((std::string const &)*arg1,arg2,arg3,(RealLimits const &)*arg4,(Attributes const &)*arg5,arg6);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FitParameter, SWIG_POINTER_NEW |  0 );
   if (SWIG_IsNewObj(res1)) delete arg1;
   return resultobj;
@@ -20109,7 +20208,7 @@ SWIGINTERN PyObject *_wrap_new_FitParameter__SWIG_2(PyObject *SWIGUNUSEDPARM(sel
   std::string *arg1 = 0 ;
   double arg2 ;
   double arg3 ;
-  Limits *arg4 = 0 ;
+  RealLimits *arg4 = 0 ;
   Attributes *arg5 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   double val2 ;
@@ -20149,14 +20248,14 @@ SWIGINTERN PyObject *_wrap_new_FitParameter__SWIG_2(PyObject *SWIGUNUSEDPARM(sel
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_FitParameter" "', argument " "3"" of type '" "double""'");
   } 
   arg3 = static_cast< double >(val3);
-  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_Limits,  0  | 0);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_RealLimits,  0  | 0);
   if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_FitParameter" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_FitParameter" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
   if (!argp4) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_FitParameter" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_FitParameter" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
-  arg4 = reinterpret_cast< Limits * >(argp4);
+  arg4 = reinterpret_cast< RealLimits * >(argp4);
   res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_Attributes,  0  | 0);
   if (!SWIG_IsOK(res5)) {
     SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "new_FitParameter" "', argument " "5"" of type '" "Attributes const &""'"); 
@@ -20165,7 +20264,7 @@ SWIGINTERN PyObject *_wrap_new_FitParameter__SWIG_2(PyObject *SWIGUNUSEDPARM(sel
     SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_FitParameter" "', argument " "5"" of type '" "Attributes const &""'"); 
   }
   arg5 = reinterpret_cast< Attributes * >(argp5);
-  result = (FitParameter *)new FitParameter((std::string const &)*arg1,arg2,arg3,(Limits const &)*arg4,(Attributes const &)*arg5);
+  result = (FitParameter *)new FitParameter((std::string const &)*arg1,arg2,arg3,(RealLimits const &)*arg4,(Attributes const &)*arg5);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FitParameter, SWIG_POINTER_NEW |  0 );
   if (SWIG_IsNewObj(res1)) delete arg1;
   return resultobj;
@@ -20180,7 +20279,7 @@ SWIGINTERN PyObject *_wrap_new_FitParameter__SWIG_3(PyObject *SWIGUNUSEDPARM(sel
   std::string *arg1 = 0 ;
   double arg2 ;
   double arg3 ;
-  Limits *arg4 = 0 ;
+  RealLimits *arg4 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   double val2 ;
   int ecode2 = 0 ;
@@ -20216,15 +20315,15 @@ SWIGINTERN PyObject *_wrap_new_FitParameter__SWIG_3(PyObject *SWIGUNUSEDPARM(sel
     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_FitParameter" "', argument " "3"" of type '" "double""'");
   } 
   arg3 = static_cast< double >(val3);
-  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_Limits,  0  | 0);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_RealLimits,  0  | 0);
   if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_FitParameter" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_FitParameter" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
   if (!argp4) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_FitParameter" "', argument " "4"" of type '" "Limits const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_FitParameter" "', argument " "4"" of type '" "RealLimits const &""'"); 
   }
-  arg4 = reinterpret_cast< Limits * >(argp4);
-  result = (FitParameter *)new FitParameter((std::string const &)*arg1,arg2,arg3,(Limits const &)*arg4);
+  arg4 = reinterpret_cast< RealLimits * >(argp4);
+  result = (FitParameter *)new FitParameter((std::string const &)*arg1,arg2,arg3,(RealLimits const &)*arg4);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FitParameter, SWIG_POINTER_NEW |  0 );
   if (SWIG_IsNewObj(res1)) delete arg1;
   return resultobj;
@@ -20320,14 +20419,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_FitParameter(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[7] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 6) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -20383,7 +20482,7 @@ SWIGINTERN PyObject *_wrap_new_FitParameter(PyObject *self, PyObject *args) {
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_Limits, 0);
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_RealLimits, 0);
           _v = SWIG_CheckState(res);
           if (_v) {
             return _wrap_new_FitParameter__SWIG_3(self, args);
@@ -20407,7 +20506,7 @@ SWIGINTERN PyObject *_wrap_new_FitParameter(PyObject *self, PyObject *args) {
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_Limits, 0);
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_RealLimits, 0);
           _v = SWIG_CheckState(res);
           if (_v) {
             int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_Attributes, 0);
@@ -20435,7 +20534,7 @@ SWIGINTERN PyObject *_wrap_new_FitParameter(PyObject *self, PyObject *args) {
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_Limits, 0);
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_RealLimits, 0);
           _v = SWIG_CheckState(res);
           if (_v) {
             int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_Attributes, 0);
@@ -20459,9 +20558,9 @@ fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_FitParameter'.\n"
     "  Possible C/C++ prototypes are:\n"
     "    FitParameter::FitParameter()\n"
-    "    FitParameter::FitParameter(std::string const &,double,double,Limits const &,Attributes const &,double)\n"
-    "    FitParameter::FitParameter(std::string const &,double,double,Limits const &,Attributes const &)\n"
-    "    FitParameter::FitParameter(std::string const &,double,double,Limits const &)\n"
+    "    FitParameter::FitParameter(std::string const &,double,double,RealLimits const &,Attributes const &,double)\n"
+    "    FitParameter::FitParameter(std::string const &,double,double,RealLimits const &,Attributes const &)\n"
+    "    FitParameter::FitParameter(std::string const &,double,double,RealLimits const &)\n"
     "    FitParameter::FitParameter(std::string const &,double,double)\n"
     "    FitParameter::FitParameter(std::string const &,double)\n");
   return 0;
@@ -20858,14 +20957,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuiteParameters_getFitParameter(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -20952,7 +21051,7 @@ SWIGINTERN PyObject *_wrap_FitSuiteParameters_setValues__SWIG_1(PyObject *SWIGUN
   }
   arg1 = reinterpret_cast< FitSuiteParameters * >(argp1);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res2 = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FitSuiteParameters_setValues" "', argument " "2"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
@@ -20973,14 +21072,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuiteParameters_setValues(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -21004,7 +21103,7 @@ SWIGINTERN PyObject *_wrap_FitSuiteParameters_setValues(PyObject *self, PyObject
     int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_FitSuiteParameters, 0);
     _v = SWIG_CheckState(res);
     if (_v) {
-      int res = swig::asptr(argv[1], (std::vector<double,std::allocator< double > >**)(0));
+      int res = swig::asptr(argv[1], (std::vector< double,std::allocator< double > >**)(0));
       _v = SWIG_CheckState(res);
       if (_v) {
         return _wrap_FitSuiteParameters_setValues__SWIG_1(self, args);
@@ -21036,7 +21135,7 @@ SWIGINTERN PyObject *_wrap_FitSuiteParameters_getValues(PyObject *SWIGUNUSEDPARM
   }
   arg1 = reinterpret_cast< FitSuiteParameters * >(argp1);
   result = ((FitSuiteParameters const *)arg1)->getValues();
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -21060,7 +21159,7 @@ SWIGINTERN PyObject *_wrap_FitSuiteParameters_setErrors(PyObject *SWIGUNUSEDPARM
   }
   arg1 = reinterpret_cast< FitSuiteParameters * >(argp1);
   {
-    std::vector<double,std::allocator< double > > *ptr = (std::vector<double,std::allocator< double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res2 = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FitSuiteParameters_setErrors" "', argument " "2"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
@@ -21095,7 +21194,7 @@ SWIGINTERN PyObject *_wrap_FitSuiteParameters_getErrors(PyObject *SWIGUNUSEDPARM
   }
   arg1 = reinterpret_cast< FitSuiteParameters * >(argp1);
   result = ((FitSuiteParameters const *)arg1)->getErrors();
-  resultobj = swig::from(static_cast< std::vector<double,std::allocator< double > > >(result));
+  resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result));
   return resultobj;
 fail:
   return NULL;
@@ -21169,14 +21268,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuiteParameters_begin(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -21253,14 +21352,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuiteParameters_end(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[2] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 1) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -21398,7 +21497,7 @@ SWIGINTERN PyObject *_wrap_FitSuiteParameters_setFixed(PyObject *SWIGUNUSEDPARM(
   }
   arg1 = reinterpret_cast< FitSuiteParameters * >(argp1);
   {
-    std::vector<std::string,std::allocator< std::string > > *ptr = (std::vector<std::string,std::allocator< std::string > > *)0;
+    std::vector< std::string,std::allocator< std::string > > *ptr = (std::vector< std::string,std::allocator< std::string > > *)0;
     res2 = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FitSuiteParameters_setFixed" "', argument " "2"" of type '" "std::vector< std::string,std::allocator< std::string > > const &""'"); 
@@ -21528,14 +21627,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuiteParameters___getitem__(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[3] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -22024,14 +22123,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_MinimizerOptions_setValue(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -22249,14 +22348,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_MinimizerOptions_getValue(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -22471,14 +22570,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_MinimizerOptions_addValue(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -22860,14 +22959,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_MinimizerFactory_createMinimizer(PyObject *self, PyObject *args) {
-  int argc;
+  Py_ssize_t argc;
   PyObject *argv[4] = {
     0
   };
-  int ii;
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = args ? (int)PyObject_Length(args) : 0;
+  argc = args ? PyObject_Length(args) : 0;
   for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
@@ -23003,11 +23102,10 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"vdouble1d_t___nonzero__", _wrap_vdouble1d_t___nonzero__, METH_VARARGS, (char *)"vdouble1d_t___nonzero__(vdouble1d_t self) -> bool"},
 	 { (char *)"vdouble1d_t___bool__", _wrap_vdouble1d_t___bool__, METH_VARARGS, (char *)"vdouble1d_t___bool__(vdouble1d_t self) -> bool"},
 	 { (char *)"vdouble1d_t___len__", _wrap_vdouble1d_t___len__, METH_VARARGS, (char *)"vdouble1d_t___len__(vdouble1d_t self) -> std::vector< double >::size_type"},
-	 { (char *)"vdouble1d_t_pop", _wrap_vdouble1d_t_pop, METH_VARARGS, (char *)"vdouble1d_t_pop(vdouble1d_t self) -> std::vector< double >::value_type"},
 	 { (char *)"vdouble1d_t___getslice__", _wrap_vdouble1d_t___getslice__, METH_VARARGS, (char *)"vdouble1d_t___getslice__(vdouble1d_t self, std::vector< double >::difference_type i, std::vector< double >::difference_type j) -> vdouble1d_t"},
 	 { (char *)"vdouble1d_t___setslice__", _wrap_vdouble1d_t___setslice__, METH_VARARGS, (char *)"\n"
-		"__setslice__(std::vector< double >::difference_type i, std::vector< double >::difference_type j, vdouble1d_t v)\n"
-		"vdouble1d_t___setslice__(vdouble1d_t self, std::vector< double >::difference_type i, std::vector< double >::difference_type j)\n"
+		"__setslice__(std::vector< double >::difference_type i, std::vector< double >::difference_type j)\n"
+		"vdouble1d_t___setslice__(vdouble1d_t self, std::vector< double >::difference_type i, std::vector< double >::difference_type j, vdouble1d_t v)\n"
 		""},
 	 { (char *)"vdouble1d_t___delslice__", _wrap_vdouble1d_t___delslice__, METH_VARARGS, (char *)"vdouble1d_t___delslice__(vdouble1d_t self, std::vector< double >::difference_type i, std::vector< double >::difference_type j)"},
 	 { (char *)"vdouble1d_t___delitem__", _wrap_vdouble1d_t___delitem__, METH_VARARGS, (char *)"\n"
@@ -23023,16 +23121,17 @@ static PyMethodDef SwigMethods[] = {
 		"__setitem__(PySliceObject * slice)\n"
 		"vdouble1d_t___setitem__(vdouble1d_t self, std::vector< double >::difference_type i, std::vector< double >::value_type const & x)\n"
 		""},
+	 { (char *)"vdouble1d_t_pop", _wrap_vdouble1d_t_pop, METH_VARARGS, (char *)"vdouble1d_t_pop(vdouble1d_t self) -> std::vector< double >::value_type"},
 	 { (char *)"vdouble1d_t_append", _wrap_vdouble1d_t_append, METH_VARARGS, (char *)"vdouble1d_t_append(vdouble1d_t self, std::vector< double >::value_type const & x)"},
 	 { (char *)"vdouble1d_t_empty", _wrap_vdouble1d_t_empty, METH_VARARGS, (char *)"vdouble1d_t_empty(vdouble1d_t self) -> bool"},
 	 { (char *)"vdouble1d_t_size", _wrap_vdouble1d_t_size, METH_VARARGS, (char *)"vdouble1d_t_size(vdouble1d_t self) -> std::vector< double >::size_type"},
-	 { (char *)"vdouble1d_t_clear", _wrap_vdouble1d_t_clear, METH_VARARGS, (char *)"vdouble1d_t_clear(vdouble1d_t self)"},
 	 { (char *)"vdouble1d_t_swap", _wrap_vdouble1d_t_swap, METH_VARARGS, (char *)"vdouble1d_t_swap(vdouble1d_t self, vdouble1d_t v)"},
-	 { (char *)"vdouble1d_t_get_allocator", _wrap_vdouble1d_t_get_allocator, METH_VARARGS, (char *)"vdouble1d_t_get_allocator(vdouble1d_t self) -> std::vector< double >::allocator_type"},
 	 { (char *)"vdouble1d_t_begin", _wrap_vdouble1d_t_begin, METH_VARARGS, (char *)"vdouble1d_t_begin(vdouble1d_t self) -> std::vector< double >::iterator"},
 	 { (char *)"vdouble1d_t_end", _wrap_vdouble1d_t_end, METH_VARARGS, (char *)"vdouble1d_t_end(vdouble1d_t self) -> std::vector< double >::iterator"},
 	 { (char *)"vdouble1d_t_rbegin", _wrap_vdouble1d_t_rbegin, METH_VARARGS, (char *)"vdouble1d_t_rbegin(vdouble1d_t self) -> std::vector< double >::reverse_iterator"},
 	 { (char *)"vdouble1d_t_rend", _wrap_vdouble1d_t_rend, METH_VARARGS, (char *)"vdouble1d_t_rend(vdouble1d_t self) -> std::vector< double >::reverse_iterator"},
+	 { (char *)"vdouble1d_t_clear", _wrap_vdouble1d_t_clear, METH_VARARGS, (char *)"vdouble1d_t_clear(vdouble1d_t self)"},
+	 { (char *)"vdouble1d_t_get_allocator", _wrap_vdouble1d_t_get_allocator, METH_VARARGS, (char *)"vdouble1d_t_get_allocator(vdouble1d_t self) -> std::vector< double >::allocator_type"},
 	 { (char *)"vdouble1d_t_pop_back", _wrap_vdouble1d_t_pop_back, METH_VARARGS, (char *)"vdouble1d_t_pop_back(vdouble1d_t self)"},
 	 { (char *)"vdouble1d_t_erase", _wrap_vdouble1d_t_erase, METH_VARARGS, (char *)"\n"
 		"erase(std::vector< double >::iterator pos) -> std::vector< double >::iterator\n"
@@ -23064,11 +23163,10 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"vdouble2d_t___nonzero__", _wrap_vdouble2d_t___nonzero__, METH_VARARGS, (char *)"vdouble2d_t___nonzero__(vdouble2d_t self) -> bool"},
 	 { (char *)"vdouble2d_t___bool__", _wrap_vdouble2d_t___bool__, METH_VARARGS, (char *)"vdouble2d_t___bool__(vdouble2d_t self) -> bool"},
 	 { (char *)"vdouble2d_t___len__", _wrap_vdouble2d_t___len__, METH_VARARGS, (char *)"vdouble2d_t___len__(vdouble2d_t self) -> std::vector< std::vector< double > >::size_type"},
-	 { (char *)"vdouble2d_t_pop", _wrap_vdouble2d_t_pop, METH_VARARGS, (char *)"vdouble2d_t_pop(vdouble2d_t self) -> vdouble1d_t"},
 	 { (char *)"vdouble2d_t___getslice__", _wrap_vdouble2d_t___getslice__, METH_VARARGS, (char *)"vdouble2d_t___getslice__(vdouble2d_t self, std::vector< std::vector< double > >::difference_type i, std::vector< std::vector< double > >::difference_type j) -> vdouble2d_t"},
 	 { (char *)"vdouble2d_t___setslice__", _wrap_vdouble2d_t___setslice__, METH_VARARGS, (char *)"\n"
-		"__setslice__(std::vector< std::vector< double > >::difference_type i, std::vector< std::vector< double > >::difference_type j, vdouble2d_t v)\n"
-		"vdouble2d_t___setslice__(vdouble2d_t self, std::vector< std::vector< double > >::difference_type i, std::vector< std::vector< double > >::difference_type j)\n"
+		"__setslice__(std::vector< std::vector< double > >::difference_type i, std::vector< std::vector< double > >::difference_type j)\n"
+		"vdouble2d_t___setslice__(vdouble2d_t self, std::vector< std::vector< double > >::difference_type i, std::vector< std::vector< double > >::difference_type j, vdouble2d_t v)\n"
 		""},
 	 { (char *)"vdouble2d_t___delslice__", _wrap_vdouble2d_t___delslice__, METH_VARARGS, (char *)"vdouble2d_t___delslice__(vdouble2d_t self, std::vector< std::vector< double > >::difference_type i, std::vector< std::vector< double > >::difference_type j)"},
 	 { (char *)"vdouble2d_t___delitem__", _wrap_vdouble2d_t___delitem__, METH_VARARGS, (char *)"\n"
@@ -23084,16 +23182,17 @@ static PyMethodDef SwigMethods[] = {
 		"__setitem__(PySliceObject * slice)\n"
 		"vdouble2d_t___setitem__(vdouble2d_t self, std::vector< std::vector< double > >::difference_type i, vdouble1d_t x)\n"
 		""},
+	 { (char *)"vdouble2d_t_pop", _wrap_vdouble2d_t_pop, METH_VARARGS, (char *)"vdouble2d_t_pop(vdouble2d_t self) -> vdouble1d_t"},
 	 { (char *)"vdouble2d_t_append", _wrap_vdouble2d_t_append, METH_VARARGS, (char *)"vdouble2d_t_append(vdouble2d_t self, vdouble1d_t x)"},
 	 { (char *)"vdouble2d_t_empty", _wrap_vdouble2d_t_empty, METH_VARARGS, (char *)"vdouble2d_t_empty(vdouble2d_t self) -> bool"},
 	 { (char *)"vdouble2d_t_size", _wrap_vdouble2d_t_size, METH_VARARGS, (char *)"vdouble2d_t_size(vdouble2d_t self) -> std::vector< std::vector< double > >::size_type"},
-	 { (char *)"vdouble2d_t_clear", _wrap_vdouble2d_t_clear, METH_VARARGS, (char *)"vdouble2d_t_clear(vdouble2d_t self)"},
 	 { (char *)"vdouble2d_t_swap", _wrap_vdouble2d_t_swap, METH_VARARGS, (char *)"vdouble2d_t_swap(vdouble2d_t self, vdouble2d_t v)"},
-	 { (char *)"vdouble2d_t_get_allocator", _wrap_vdouble2d_t_get_allocator, METH_VARARGS, (char *)"vdouble2d_t_get_allocator(vdouble2d_t self) -> std::vector< std::vector< double > >::allocator_type"},
 	 { (char *)"vdouble2d_t_begin", _wrap_vdouble2d_t_begin, METH_VARARGS, (char *)"vdouble2d_t_begin(vdouble2d_t self) -> std::vector< std::vector< double > >::iterator"},
 	 { (char *)"vdouble2d_t_end", _wrap_vdouble2d_t_end, METH_VARARGS, (char *)"vdouble2d_t_end(vdouble2d_t self) -> std::vector< std::vector< double > >::iterator"},
 	 { (char *)"vdouble2d_t_rbegin", _wrap_vdouble2d_t_rbegin, METH_VARARGS, (char *)"vdouble2d_t_rbegin(vdouble2d_t self) -> std::vector< std::vector< double > >::reverse_iterator"},
 	 { (char *)"vdouble2d_t_rend", _wrap_vdouble2d_t_rend, METH_VARARGS, (char *)"vdouble2d_t_rend(vdouble2d_t self) -> std::vector< std::vector< double > >::reverse_iterator"},
+	 { (char *)"vdouble2d_t_clear", _wrap_vdouble2d_t_clear, METH_VARARGS, (char *)"vdouble2d_t_clear(vdouble2d_t self)"},
+	 { (char *)"vdouble2d_t_get_allocator", _wrap_vdouble2d_t_get_allocator, METH_VARARGS, (char *)"vdouble2d_t_get_allocator(vdouble2d_t self) -> std::vector< std::vector< double > >::allocator_type"},
 	 { (char *)"vdouble2d_t_pop_back", _wrap_vdouble2d_t_pop_back, METH_VARARGS, (char *)"vdouble2d_t_pop_back(vdouble2d_t self)"},
 	 { (char *)"vdouble2d_t_erase", _wrap_vdouble2d_t_erase, METH_VARARGS, (char *)"\n"
 		"erase(std::vector< std::vector< double > >::iterator pos) -> std::vector< std::vector< double > >::iterator\n"
@@ -23125,11 +23224,10 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"vector_integer_t___nonzero__", _wrap_vector_integer_t___nonzero__, METH_VARARGS, (char *)"vector_integer_t___nonzero__(vector_integer_t self) -> bool"},
 	 { (char *)"vector_integer_t___bool__", _wrap_vector_integer_t___bool__, METH_VARARGS, (char *)"vector_integer_t___bool__(vector_integer_t self) -> bool"},
 	 { (char *)"vector_integer_t___len__", _wrap_vector_integer_t___len__, METH_VARARGS, (char *)"vector_integer_t___len__(vector_integer_t self) -> std::vector< int >::size_type"},
-	 { (char *)"vector_integer_t_pop", _wrap_vector_integer_t_pop, METH_VARARGS, (char *)"vector_integer_t_pop(vector_integer_t self) -> std::vector< int >::value_type"},
 	 { (char *)"vector_integer_t___getslice__", _wrap_vector_integer_t___getslice__, METH_VARARGS, (char *)"vector_integer_t___getslice__(vector_integer_t self, std::vector< int >::difference_type i, std::vector< int >::difference_type j) -> vector_integer_t"},
 	 { (char *)"vector_integer_t___setslice__", _wrap_vector_integer_t___setslice__, METH_VARARGS, (char *)"\n"
-		"__setslice__(std::vector< int >::difference_type i, std::vector< int >::difference_type j, vector_integer_t v)\n"
-		"vector_integer_t___setslice__(vector_integer_t self, std::vector< int >::difference_type i, std::vector< int >::difference_type j)\n"
+		"__setslice__(std::vector< int >::difference_type i, std::vector< int >::difference_type j)\n"
+		"vector_integer_t___setslice__(vector_integer_t self, std::vector< int >::difference_type i, std::vector< int >::difference_type j, vector_integer_t v)\n"
 		""},
 	 { (char *)"vector_integer_t___delslice__", _wrap_vector_integer_t___delslice__, METH_VARARGS, (char *)"vector_integer_t___delslice__(vector_integer_t self, std::vector< int >::difference_type i, std::vector< int >::difference_type j)"},
 	 { (char *)"vector_integer_t___delitem__", _wrap_vector_integer_t___delitem__, METH_VARARGS, (char *)"\n"
@@ -23145,16 +23243,17 @@ static PyMethodDef SwigMethods[] = {
 		"__setitem__(PySliceObject * slice)\n"
 		"vector_integer_t___setitem__(vector_integer_t self, std::vector< int >::difference_type i, std::vector< int >::value_type const & x)\n"
 		""},
+	 { (char *)"vector_integer_t_pop", _wrap_vector_integer_t_pop, METH_VARARGS, (char *)"vector_integer_t_pop(vector_integer_t self) -> std::vector< int >::value_type"},
 	 { (char *)"vector_integer_t_append", _wrap_vector_integer_t_append, METH_VARARGS, (char *)"vector_integer_t_append(vector_integer_t self, std::vector< int >::value_type const & x)"},
 	 { (char *)"vector_integer_t_empty", _wrap_vector_integer_t_empty, METH_VARARGS, (char *)"vector_integer_t_empty(vector_integer_t self) -> bool"},
 	 { (char *)"vector_integer_t_size", _wrap_vector_integer_t_size, METH_VARARGS, (char *)"vector_integer_t_size(vector_integer_t self) -> std::vector< int >::size_type"},
-	 { (char *)"vector_integer_t_clear", _wrap_vector_integer_t_clear, METH_VARARGS, (char *)"vector_integer_t_clear(vector_integer_t self)"},
 	 { (char *)"vector_integer_t_swap", _wrap_vector_integer_t_swap, METH_VARARGS, (char *)"vector_integer_t_swap(vector_integer_t self, vector_integer_t v)"},
-	 { (char *)"vector_integer_t_get_allocator", _wrap_vector_integer_t_get_allocator, METH_VARARGS, (char *)"vector_integer_t_get_allocator(vector_integer_t self) -> std::vector< int >::allocator_type"},
 	 { (char *)"vector_integer_t_begin", _wrap_vector_integer_t_begin, METH_VARARGS, (char *)"vector_integer_t_begin(vector_integer_t self) -> std::vector< int >::iterator"},
 	 { (char *)"vector_integer_t_end", _wrap_vector_integer_t_end, METH_VARARGS, (char *)"vector_integer_t_end(vector_integer_t self) -> std::vector< int >::iterator"},
 	 { (char *)"vector_integer_t_rbegin", _wrap_vector_integer_t_rbegin, METH_VARARGS, (char *)"vector_integer_t_rbegin(vector_integer_t self) -> std::vector< int >::reverse_iterator"},
 	 { (char *)"vector_integer_t_rend", _wrap_vector_integer_t_rend, METH_VARARGS, (char *)"vector_integer_t_rend(vector_integer_t self) -> std::vector< int >::reverse_iterator"},
+	 { (char *)"vector_integer_t_clear", _wrap_vector_integer_t_clear, METH_VARARGS, (char *)"vector_integer_t_clear(vector_integer_t self)"},
+	 { (char *)"vector_integer_t_get_allocator", _wrap_vector_integer_t_get_allocator, METH_VARARGS, (char *)"vector_integer_t_get_allocator(vector_integer_t self) -> std::vector< int >::allocator_type"},
 	 { (char *)"vector_integer_t_pop_back", _wrap_vector_integer_t_pop_back, METH_VARARGS, (char *)"vector_integer_t_pop_back(vector_integer_t self)"},
 	 { (char *)"vector_integer_t_erase", _wrap_vector_integer_t_erase, METH_VARARGS, (char *)"\n"
 		"erase(std::vector< int >::iterator pos) -> std::vector< int >::iterator\n"
@@ -23186,11 +23285,10 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"vector_longinteger_t___nonzero__", _wrap_vector_longinteger_t___nonzero__, METH_VARARGS, (char *)"vector_longinteger_t___nonzero__(vector_longinteger_t self) -> bool"},
 	 { (char *)"vector_longinteger_t___bool__", _wrap_vector_longinteger_t___bool__, METH_VARARGS, (char *)"vector_longinteger_t___bool__(vector_longinteger_t self) -> bool"},
 	 { (char *)"vector_longinteger_t___len__", _wrap_vector_longinteger_t___len__, METH_VARARGS, (char *)"vector_longinteger_t___len__(vector_longinteger_t self) -> std::vector< unsigned long >::size_type"},
-	 { (char *)"vector_longinteger_t_pop", _wrap_vector_longinteger_t_pop, METH_VARARGS, (char *)"vector_longinteger_t_pop(vector_longinteger_t self) -> std::vector< unsigned long >::value_type"},
 	 { (char *)"vector_longinteger_t___getslice__", _wrap_vector_longinteger_t___getslice__, METH_VARARGS, (char *)"vector_longinteger_t___getslice__(vector_longinteger_t self, std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::difference_type j) -> vector_longinteger_t"},
 	 { (char *)"vector_longinteger_t___setslice__", _wrap_vector_longinteger_t___setslice__, METH_VARARGS, (char *)"\n"
-		"__setslice__(std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::difference_type j, vector_longinteger_t v)\n"
-		"vector_longinteger_t___setslice__(vector_longinteger_t self, std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::difference_type j)\n"
+		"__setslice__(std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::difference_type j)\n"
+		"vector_longinteger_t___setslice__(vector_longinteger_t self, std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::difference_type j, vector_longinteger_t v)\n"
 		""},
 	 { (char *)"vector_longinteger_t___delslice__", _wrap_vector_longinteger_t___delslice__, METH_VARARGS, (char *)"vector_longinteger_t___delslice__(vector_longinteger_t self, std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::difference_type j)"},
 	 { (char *)"vector_longinteger_t___delitem__", _wrap_vector_longinteger_t___delitem__, METH_VARARGS, (char *)"\n"
@@ -23206,16 +23304,17 @@ static PyMethodDef SwigMethods[] = {
 		"__setitem__(PySliceObject * slice)\n"
 		"vector_longinteger_t___setitem__(vector_longinteger_t self, std::vector< unsigned long >::difference_type i, std::vector< unsigned long >::value_type const & x)\n"
 		""},
+	 { (char *)"vector_longinteger_t_pop", _wrap_vector_longinteger_t_pop, METH_VARARGS, (char *)"vector_longinteger_t_pop(vector_longinteger_t self) -> std::vector< unsigned long >::value_type"},
 	 { (char *)"vector_longinteger_t_append", _wrap_vector_longinteger_t_append, METH_VARARGS, (char *)"vector_longinteger_t_append(vector_longinteger_t self, std::vector< unsigned long >::value_type const & x)"},
 	 { (char *)"vector_longinteger_t_empty", _wrap_vector_longinteger_t_empty, METH_VARARGS, (char *)"vector_longinteger_t_empty(vector_longinteger_t self) -> bool"},
 	 { (char *)"vector_longinteger_t_size", _wrap_vector_longinteger_t_size, METH_VARARGS, (char *)"vector_longinteger_t_size(vector_longinteger_t self) -> std::vector< unsigned long >::size_type"},
-	 { (char *)"vector_longinteger_t_clear", _wrap_vector_longinteger_t_clear, METH_VARARGS, (char *)"vector_longinteger_t_clear(vector_longinteger_t self)"},
 	 { (char *)"vector_longinteger_t_swap", _wrap_vector_longinteger_t_swap, METH_VARARGS, (char *)"vector_longinteger_t_swap(vector_longinteger_t self, vector_longinteger_t v)"},
-	 { (char *)"vector_longinteger_t_get_allocator", _wrap_vector_longinteger_t_get_allocator, METH_VARARGS, (char *)"vector_longinteger_t_get_allocator(vector_longinteger_t self) -> std::vector< unsigned long >::allocator_type"},
 	 { (char *)"vector_longinteger_t_begin", _wrap_vector_longinteger_t_begin, METH_VARARGS, (char *)"vector_longinteger_t_begin(vector_longinteger_t self) -> std::vector< unsigned long >::iterator"},
 	 { (char *)"vector_longinteger_t_end", _wrap_vector_longinteger_t_end, METH_VARARGS, (char *)"vector_longinteger_t_end(vector_longinteger_t self) -> std::vector< unsigned long >::iterator"},
 	 { (char *)"vector_longinteger_t_rbegin", _wrap_vector_longinteger_t_rbegin, METH_VARARGS, (char *)"vector_longinteger_t_rbegin(vector_longinteger_t self) -> std::vector< unsigned long >::reverse_iterator"},
 	 { (char *)"vector_longinteger_t_rend", _wrap_vector_longinteger_t_rend, METH_VARARGS, (char *)"vector_longinteger_t_rend(vector_longinteger_t self) -> std::vector< unsigned long >::reverse_iterator"},
+	 { (char *)"vector_longinteger_t_clear", _wrap_vector_longinteger_t_clear, METH_VARARGS, (char *)"vector_longinteger_t_clear(vector_longinteger_t self)"},
+	 { (char *)"vector_longinteger_t_get_allocator", _wrap_vector_longinteger_t_get_allocator, METH_VARARGS, (char *)"vector_longinteger_t_get_allocator(vector_longinteger_t self) -> std::vector< unsigned long >::allocator_type"},
 	 { (char *)"vector_longinteger_t_pop_back", _wrap_vector_longinteger_t_pop_back, METH_VARARGS, (char *)"vector_longinteger_t_pop_back(vector_longinteger_t self)"},
 	 { (char *)"vector_longinteger_t_erase", _wrap_vector_longinteger_t_erase, METH_VARARGS, (char *)"\n"
 		"erase(std::vector< unsigned long >::iterator pos) -> std::vector< unsigned long >::iterator\n"
@@ -23247,11 +23346,10 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"vector_complex_t___nonzero__", _wrap_vector_complex_t___nonzero__, METH_VARARGS, (char *)"vector_complex_t___nonzero__(vector_complex_t self) -> bool"},
 	 { (char *)"vector_complex_t___bool__", _wrap_vector_complex_t___bool__, METH_VARARGS, (char *)"vector_complex_t___bool__(vector_complex_t self) -> bool"},
 	 { (char *)"vector_complex_t___len__", _wrap_vector_complex_t___len__, METH_VARARGS, (char *)"vector_complex_t___len__(vector_complex_t self) -> std::vector< std::complex< double > >::size_type"},
-	 { (char *)"vector_complex_t_pop", _wrap_vector_complex_t_pop, METH_VARARGS, (char *)"vector_complex_t_pop(vector_complex_t self) -> std::vector< std::complex< double > >::value_type"},
 	 { (char *)"vector_complex_t___getslice__", _wrap_vector_complex_t___getslice__, METH_VARARGS, (char *)"vector_complex_t___getslice__(vector_complex_t self, std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::difference_type j) -> vector_complex_t"},
 	 { (char *)"vector_complex_t___setslice__", _wrap_vector_complex_t___setslice__, METH_VARARGS, (char *)"\n"
-		"__setslice__(std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::difference_type j, vector_complex_t v)\n"
-		"vector_complex_t___setslice__(vector_complex_t self, std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::difference_type j)\n"
+		"__setslice__(std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::difference_type j)\n"
+		"vector_complex_t___setslice__(vector_complex_t self, std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::difference_type j, vector_complex_t v)\n"
 		""},
 	 { (char *)"vector_complex_t___delslice__", _wrap_vector_complex_t___delslice__, METH_VARARGS, (char *)"vector_complex_t___delslice__(vector_complex_t self, std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::difference_type j)"},
 	 { (char *)"vector_complex_t___delitem__", _wrap_vector_complex_t___delitem__, METH_VARARGS, (char *)"\n"
@@ -23267,16 +23365,17 @@ static PyMethodDef SwigMethods[] = {
 		"__setitem__(PySliceObject * slice)\n"
 		"vector_complex_t___setitem__(vector_complex_t self, std::vector< std::complex< double > >::difference_type i, std::vector< std::complex< double > >::value_type const & x)\n"
 		""},
+	 { (char *)"vector_complex_t_pop", _wrap_vector_complex_t_pop, METH_VARARGS, (char *)"vector_complex_t_pop(vector_complex_t self) -> std::vector< std::complex< double > >::value_type"},
 	 { (char *)"vector_complex_t_append", _wrap_vector_complex_t_append, METH_VARARGS, (char *)"vector_complex_t_append(vector_complex_t self, std::vector< std::complex< double > >::value_type const & x)"},
 	 { (char *)"vector_complex_t_empty", _wrap_vector_complex_t_empty, METH_VARARGS, (char *)"vector_complex_t_empty(vector_complex_t self) -> bool"},
 	 { (char *)"vector_complex_t_size", _wrap_vector_complex_t_size, METH_VARARGS, (char *)"vector_complex_t_size(vector_complex_t self) -> std::vector< std::complex< double > >::size_type"},
-	 { (char *)"vector_complex_t_clear", _wrap_vector_complex_t_clear, METH_VARARGS, (char *)"vector_complex_t_clear(vector_complex_t self)"},
 	 { (char *)"vector_complex_t_swap", _wrap_vector_complex_t_swap, METH_VARARGS, (char *)"vector_complex_t_swap(vector_complex_t self, vector_complex_t v)"},
-	 { (char *)"vector_complex_t_get_allocator", _wrap_vector_complex_t_get_allocator, METH_VARARGS, (char *)"vector_complex_t_get_allocator(vector_complex_t self) -> std::vector< std::complex< double > >::allocator_type"},
 	 { (char *)"vector_complex_t_begin", _wrap_vector_complex_t_begin, METH_VARARGS, (char *)"vector_complex_t_begin(vector_complex_t self) -> std::vector< std::complex< double > >::iterator"},
 	 { (char *)"vector_complex_t_end", _wrap_vector_complex_t_end, METH_VARARGS, (char *)"vector_complex_t_end(vector_complex_t self) -> std::vector< std::complex< double > >::iterator"},
 	 { (char *)"vector_complex_t_rbegin", _wrap_vector_complex_t_rbegin, METH_VARARGS, (char *)"vector_complex_t_rbegin(vector_complex_t self) -> std::vector< std::complex< double > >::reverse_iterator"},
 	 { (char *)"vector_complex_t_rend", _wrap_vector_complex_t_rend, METH_VARARGS, (char *)"vector_complex_t_rend(vector_complex_t self) -> std::vector< std::complex< double > >::reverse_iterator"},
+	 { (char *)"vector_complex_t_clear", _wrap_vector_complex_t_clear, METH_VARARGS, (char *)"vector_complex_t_clear(vector_complex_t self)"},
+	 { (char *)"vector_complex_t_get_allocator", _wrap_vector_complex_t_get_allocator, METH_VARARGS, (char *)"vector_complex_t_get_allocator(vector_complex_t self) -> std::vector< std::complex< double > >::allocator_type"},
 	 { (char *)"vector_complex_t_pop_back", _wrap_vector_complex_t_pop_back, METH_VARARGS, (char *)"vector_complex_t_pop_back(vector_complex_t self)"},
 	 { (char *)"vector_complex_t_erase", _wrap_vector_complex_t_erase, METH_VARARGS, (char *)"\n"
 		"erase(std::vector< std::complex< double > >::iterator pos) -> std::vector< std::complex< double > >::iterator\n"
@@ -23308,11 +23407,10 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"vector_string_t___nonzero__", _wrap_vector_string_t___nonzero__, METH_VARARGS, (char *)"vector_string_t___nonzero__(vector_string_t self) -> bool"},
 	 { (char *)"vector_string_t___bool__", _wrap_vector_string_t___bool__, METH_VARARGS, (char *)"vector_string_t___bool__(vector_string_t self) -> bool"},
 	 { (char *)"vector_string_t___len__", _wrap_vector_string_t___len__, METH_VARARGS, (char *)"vector_string_t___len__(vector_string_t self) -> std::vector< std::string >::size_type"},
-	 { (char *)"vector_string_t_pop", _wrap_vector_string_t_pop, METH_VARARGS, (char *)"vector_string_t_pop(vector_string_t self) -> std::vector< std::string >::value_type"},
 	 { (char *)"vector_string_t___getslice__", _wrap_vector_string_t___getslice__, METH_VARARGS, (char *)"vector_string_t___getslice__(vector_string_t self, std::vector< std::string >::difference_type i, std::vector< std::string >::difference_type j) -> vector_string_t"},
 	 { (char *)"vector_string_t___setslice__", _wrap_vector_string_t___setslice__, METH_VARARGS, (char *)"\n"
-		"__setslice__(std::vector< std::string >::difference_type i, std::vector< std::string >::difference_type j, vector_string_t v)\n"
-		"vector_string_t___setslice__(vector_string_t self, std::vector< std::string >::difference_type i, std::vector< std::string >::difference_type j)\n"
+		"__setslice__(std::vector< std::string >::difference_type i, std::vector< std::string >::difference_type j)\n"
+		"vector_string_t___setslice__(vector_string_t self, std::vector< std::string >::difference_type i, std::vector< std::string >::difference_type j, vector_string_t v)\n"
 		""},
 	 { (char *)"vector_string_t___delslice__", _wrap_vector_string_t___delslice__, METH_VARARGS, (char *)"vector_string_t___delslice__(vector_string_t self, std::vector< std::string >::difference_type i, std::vector< std::string >::difference_type j)"},
 	 { (char *)"vector_string_t___delitem__", _wrap_vector_string_t___delitem__, METH_VARARGS, (char *)"\n"
@@ -23328,16 +23426,17 @@ static PyMethodDef SwigMethods[] = {
 		"__setitem__(PySliceObject * slice)\n"
 		"vector_string_t___setitem__(vector_string_t self, std::vector< std::string >::difference_type i, std::vector< std::string >::value_type const & x)\n"
 		""},
+	 { (char *)"vector_string_t_pop", _wrap_vector_string_t_pop, METH_VARARGS, (char *)"vector_string_t_pop(vector_string_t self) -> std::vector< std::string >::value_type"},
 	 { (char *)"vector_string_t_append", _wrap_vector_string_t_append, METH_VARARGS, (char *)"vector_string_t_append(vector_string_t self, std::vector< std::string >::value_type const & x)"},
 	 { (char *)"vector_string_t_empty", _wrap_vector_string_t_empty, METH_VARARGS, (char *)"vector_string_t_empty(vector_string_t self) -> bool"},
 	 { (char *)"vector_string_t_size", _wrap_vector_string_t_size, METH_VARARGS, (char *)"vector_string_t_size(vector_string_t self) -> std::vector< std::string >::size_type"},
-	 { (char *)"vector_string_t_clear", _wrap_vector_string_t_clear, METH_VARARGS, (char *)"vector_string_t_clear(vector_string_t self)"},
 	 { (char *)"vector_string_t_swap", _wrap_vector_string_t_swap, METH_VARARGS, (char *)"vector_string_t_swap(vector_string_t self, vector_string_t v)"},
-	 { (char *)"vector_string_t_get_allocator", _wrap_vector_string_t_get_allocator, METH_VARARGS, (char *)"vector_string_t_get_allocator(vector_string_t self) -> std::vector< std::string >::allocator_type"},
 	 { (char *)"vector_string_t_begin", _wrap_vector_string_t_begin, METH_VARARGS, (char *)"vector_string_t_begin(vector_string_t self) -> std::vector< std::string >::iterator"},
 	 { (char *)"vector_string_t_end", _wrap_vector_string_t_end, METH_VARARGS, (char *)"vector_string_t_end(vector_string_t self) -> std::vector< std::string >::iterator"},
 	 { (char *)"vector_string_t_rbegin", _wrap_vector_string_t_rbegin, METH_VARARGS, (char *)"vector_string_t_rbegin(vector_string_t self) -> std::vector< std::string >::reverse_iterator"},
 	 { (char *)"vector_string_t_rend", _wrap_vector_string_t_rend, METH_VARARGS, (char *)"vector_string_t_rend(vector_string_t self) -> std::vector< std::string >::reverse_iterator"},
+	 { (char *)"vector_string_t_clear", _wrap_vector_string_t_clear, METH_VARARGS, (char *)"vector_string_t_clear(vector_string_t self)"},
+	 { (char *)"vector_string_t_get_allocator", _wrap_vector_string_t_get_allocator, METH_VARARGS, (char *)"vector_string_t_get_allocator(vector_string_t self) -> std::vector< std::string >::allocator_type"},
 	 { (char *)"vector_string_t_pop_back", _wrap_vector_string_t_pop_back, METH_VARARGS, (char *)"vector_string_t_pop_back(vector_string_t self)"},
 	 { (char *)"vector_string_t_erase", _wrap_vector_string_t_erase, METH_VARARGS, (char *)"\n"
 		"erase(std::vector< std::string >::iterator pos) -> std::vector< std::string >::iterator\n"
@@ -23389,118 +23488,29 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"Attributes___ne__", _wrap_Attributes___ne__, METH_VARARGS, (char *)"Attributes___ne__(Attributes self, Attributes other) -> bool"},
 	 { (char *)"delete_Attributes", _wrap_delete_Attributes, METH_VARARGS, (char *)"delete_Attributes(Attributes self)"},
 	 { (char *)"Attributes_swigregister", Attributes_swigregister, METH_VARARGS, NULL},
-	 { (char *)"new_Limits", _wrap_new_Limits, METH_VARARGS, (char *)"\n"
-		"new_Limits() -> Limits\n"
-		"\n"
-		"Limits::Limits()\n"
-		"\n"
-		""},
-	 { (char *)"Limits_hasLowerLimit", _wrap_Limits_hasLowerLimit, METH_VARARGS, (char *)"\n"
-		"Limits_hasLowerLimit(Limits self) -> bool\n"
-		"\n"
-		"bool Limits::hasLowerLimit() const\n"
-		"\n"
-		"if has lower limit \n"
-		"\n"
-		""},
-	 { (char *)"Limits_getLowerLimit", _wrap_Limits_getLowerLimit, METH_VARARGS, (char *)"\n"
-		"Limits_getLowerLimit(Limits self) -> double\n"
-		"\n"
-		"double Limits::getLowerLimit() const\n"
-		"\n"
-		"Returns lower limit. \n"
-		"\n"
-		""},
-	 { (char *)"Limits_setLowerLimit", _wrap_Limits_setLowerLimit, METH_VARARGS, (char *)"\n"
-		"Limits_setLowerLimit(Limits self, double value)\n"
-		"\n"
-		"void Limits::setLowerLimit(double value)\n"
-		"\n"
-		"Sets lower limit. \n"
-		"\n"
-		""},
-	 { (char *)"Limits_removeLowerLimit", _wrap_Limits_removeLowerLimit, METH_VARARGS, (char *)"\n"
-		"Limits_removeLowerLimit(Limits self)\n"
-		"\n"
-		"void Limits::removeLowerLimit()\n"
-		"\n"
-		"remove lower limit \n"
-		"\n"
-		""},
-	 { (char *)"Limits_hasUpperLimit", _wrap_Limits_hasUpperLimit, METH_VARARGS, (char *)"\n"
-		"Limits_hasUpperLimit(Limits self) -> bool\n"
-		"\n"
-		"bool Limits::hasUpperLimit() const\n"
-		"\n"
-		"if has upper limit \n"
-		"\n"
-		""},
-	 { (char *)"Limits_getUpperLimit", _wrap_Limits_getUpperLimit, METH_VARARGS, (char *)"\n"
-		"Limits_getUpperLimit(Limits self) -> double\n"
-		"\n"
-		"double Limits::getUpperLimit() const\n"
-		"\n"
-		"Returns upper limit. \n"
-		"\n"
-		""},
-	 { (char *)"Limits_setUpperLimit", _wrap_Limits_setUpperLimit, METH_VARARGS, (char *)"\n"
-		"Limits_setUpperLimit(Limits self, double value)\n"
-		"\n"
-		"void Limits::setUpperLimit(double value)\n"
-		"\n"
-		"Sets upper limit. \n"
-		"\n"
-		""},
-	 { (char *)"Limits_removeUpperLimit", _wrap_Limits_removeUpperLimit, METH_VARARGS, (char *)"\n"
-		"Limits_removeUpperLimit(Limits self)\n"
-		"\n"
-		"void Limits::removeUpperLimit()\n"
-		"\n"
-		"remove upper limit \n"
-		"\n"
-		""},
-	 { (char *)"Limits_hasLowerAndUpperLimits", _wrap_Limits_hasLowerAndUpperLimits, METH_VARARGS, (char *)"\n"
-		"Limits_hasLowerAndUpperLimits(Limits self) -> bool\n"
-		"\n"
-		"bool Limits::hasLowerAndUpperLimits() const\n"
-		"\n"
-		"if has lower and upper limit \n"
-		"\n"
-		""},
-	 { (char *)"Limits_setLimits", _wrap_Limits_setLimits, METH_VARARGS, (char *)"\n"
-		"Limits_setLimits(Limits self, double xmin, double xmax)\n"
-		"\n"
-		"void Limits::setLimits(double xmin, double xmax)\n"
-		"\n"
-		"Sets lower and upper limits. \n"
-		"\n"
-		""},
-	 { (char *)"Limits_removeLimits", _wrap_Limits_removeLimits, METH_VARARGS, (char *)"\n"
-		"Limits_removeLimits(Limits self)\n"
-		"\n"
-		"void Limits::removeLimits()\n"
-		"\n"
-		"remove limits \n"
-		"\n"
-		""},
-	 { (char *)"Limits_isInRange", _wrap_Limits_isInRange, METH_VARARGS, (char *)"\n"
-		"Limits_isInRange(Limits self, double value) -> bool\n"
-		"\n"
-		"bool Limits::isInRange(double value) const\n"
-		"\n"
-		"returns true if proposed value is in limits range \n"
-		"\n"
-		""},
-	 { (char *)"Limits_lowerLimited", _wrap_Limits_lowerLimited, METH_VARARGS, (char *)"Limits_lowerLimited(double bound_value) -> Limits"},
-	 { (char *)"Limits_positive", _wrap_Limits_positive, METH_VARARGS, (char *)"Limits_positive() -> Limits"},
-	 { (char *)"Limits_nonnegative", _wrap_Limits_nonnegative, METH_VARARGS, (char *)"Limits_nonnegative() -> Limits"},
-	 { (char *)"Limits_upperLimited", _wrap_Limits_upperLimited, METH_VARARGS, (char *)"Limits_upperLimited(double bound_value) -> Limits"},
-	 { (char *)"Limits_limited", _wrap_Limits_limited, METH_VARARGS, (char *)"Limits_limited(double left_bound_value, double right_bound_value) -> Limits"},
-	 { (char *)"Limits_limitless", _wrap_Limits_limitless, METH_VARARGS, (char *)"Limits_limitless() -> Limits"},
-	 { (char *)"Limits___eq__", _wrap_Limits___eq__, METH_VARARGS, (char *)"Limits___eq__(Limits self, Limits other) -> bool"},
-	 { (char *)"Limits___ne__", _wrap_Limits___ne__, METH_VARARGS, (char *)"Limits___ne__(Limits self, Limits other) -> bool"},
-	 { (char *)"delete_Limits", _wrap_delete_Limits, METH_VARARGS, (char *)"delete_Limits(Limits self)"},
-	 { (char *)"Limits_swigregister", Limits_swigregister, METH_VARARGS, NULL},
+	 { (char *)"new_RealLimits", _wrap_new_RealLimits, METH_VARARGS, (char *)"new_RealLimits() -> RealLimits"},
+	 { (char *)"RealLimits_hasLowerLimit", _wrap_RealLimits_hasLowerLimit, METH_VARARGS, (char *)"RealLimits_hasLowerLimit(RealLimits self) -> bool"},
+	 { (char *)"RealLimits_getLowerLimit", _wrap_RealLimits_getLowerLimit, METH_VARARGS, (char *)"RealLimits_getLowerLimit(RealLimits self) -> double"},
+	 { (char *)"RealLimits_setLowerLimit", _wrap_RealLimits_setLowerLimit, METH_VARARGS, (char *)"RealLimits_setLowerLimit(RealLimits self, double value)"},
+	 { (char *)"RealLimits_removeLowerLimit", _wrap_RealLimits_removeLowerLimit, METH_VARARGS, (char *)"RealLimits_removeLowerLimit(RealLimits self)"},
+	 { (char *)"RealLimits_hasUpperLimit", _wrap_RealLimits_hasUpperLimit, METH_VARARGS, (char *)"RealLimits_hasUpperLimit(RealLimits self) -> bool"},
+	 { (char *)"RealLimits_getUpperLimit", _wrap_RealLimits_getUpperLimit, METH_VARARGS, (char *)"RealLimits_getUpperLimit(RealLimits self) -> double"},
+	 { (char *)"RealLimits_setUpperLimit", _wrap_RealLimits_setUpperLimit, METH_VARARGS, (char *)"RealLimits_setUpperLimit(RealLimits self, double value)"},
+	 { (char *)"RealLimits_removeUpperLimit", _wrap_RealLimits_removeUpperLimit, METH_VARARGS, (char *)"RealLimits_removeUpperLimit(RealLimits self)"},
+	 { (char *)"RealLimits_hasLowerAndUpperLimits", _wrap_RealLimits_hasLowerAndUpperLimits, METH_VARARGS, (char *)"RealLimits_hasLowerAndUpperLimits(RealLimits self) -> bool"},
+	 { (char *)"RealLimits_setLimits", _wrap_RealLimits_setLimits, METH_VARARGS, (char *)"RealLimits_setLimits(RealLimits self, double xmin, double xmax)"},
+	 { (char *)"RealLimits_removeLimits", _wrap_RealLimits_removeLimits, METH_VARARGS, (char *)"RealLimits_removeLimits(RealLimits self)"},
+	 { (char *)"RealLimits_isInRange", _wrap_RealLimits_isInRange, METH_VARARGS, (char *)"RealLimits_isInRange(RealLimits self, double value) -> bool"},
+	 { (char *)"RealLimits_lowerLimited", _wrap_RealLimits_lowerLimited, METH_VARARGS, (char *)"RealLimits_lowerLimited(double bound_value) -> RealLimits"},
+	 { (char *)"RealLimits_positive", _wrap_RealLimits_positive, METH_VARARGS, (char *)"RealLimits_positive() -> RealLimits"},
+	 { (char *)"RealLimits_nonnegative", _wrap_RealLimits_nonnegative, METH_VARARGS, (char *)"RealLimits_nonnegative() -> RealLimits"},
+	 { (char *)"RealLimits_upperLimited", _wrap_RealLimits_upperLimited, METH_VARARGS, (char *)"RealLimits_upperLimited(double bound_value) -> RealLimits"},
+	 { (char *)"RealLimits_limited", _wrap_RealLimits_limited, METH_VARARGS, (char *)"RealLimits_limited(double left_bound_value, double right_bound_value) -> RealLimits"},
+	 { (char *)"RealLimits_limitless", _wrap_RealLimits_limitless, METH_VARARGS, (char *)"RealLimits_limitless() -> RealLimits"},
+	 { (char *)"RealLimits___eq__", _wrap_RealLimits___eq__, METH_VARARGS, (char *)"RealLimits___eq__(RealLimits self, RealLimits other) -> bool"},
+	 { (char *)"RealLimits___ne__", _wrap_RealLimits___ne__, METH_VARARGS, (char *)"RealLimits___ne__(RealLimits self, RealLimits other) -> bool"},
+	 { (char *)"delete_RealLimits", _wrap_delete_RealLimits, METH_VARARGS, (char *)"delete_RealLimits(RealLimits self)"},
+	 { (char *)"RealLimits_swigregister", RealLimits_swigregister, METH_VARARGS, NULL},
 	 { (char *)"new_Configurable", _wrap_new_Configurable, METH_VARARGS, (char *)"\n"
 		"Configurable()\n"
 		"new_Configurable(Configurable other) -> Configurable\n"
@@ -23662,9 +23672,9 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"IMinimizer_swigregister", IMinimizer_swigregister, METH_VARARGS, NULL},
 	 { (char *)"new_FitParameter", _wrap_new_FitParameter, METH_VARARGS, (char *)"\n"
 		"FitParameter()\n"
-		"FitParameter(std::string const & name, double value, double step=0.0, Limits limits, Attributes attr, double error=0.0)\n"
-		"FitParameter(std::string const & name, double value, double step=0.0, Limits limits, Attributes attr)\n"
-		"FitParameter(std::string const & name, double value, double step=0.0, Limits limits)\n"
+		"FitParameter(std::string const & name, double value, double step=0.0, RealLimits limits, Attributes attr, double error=0.0)\n"
+		"FitParameter(std::string const & name, double value, double step=0.0, RealLimits limits, Attributes attr)\n"
+		"FitParameter(std::string const & name, double value, double step=0.0, RealLimits limits)\n"
 		"FitParameter(std::string const & name, double value, double step=0.0)\n"
 		"new_FitParameter(std::string const & name, double value) -> FitParameter\n"
 		"\n"
@@ -24038,8 +24048,8 @@ static PyMethodDef SwigMethods[] = {
 static void *_p_FitParameterTo_p_Attributes(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((Attributes *)  ((FitParameter *) x));
 }
-static void *_p_FitParameterTo_p_Limits(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((Limits *)  ((FitParameter *) x));
+static void *_p_FitParameterTo_p_RealLimits(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((RealLimits *)  ((FitParameter *) x));
 }
 static void *_p_IMinimizerTo_p_Configurable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((Configurable *)  ((IMinimizer *) x));
@@ -24049,9 +24059,9 @@ static swig_type_info _swigt__p_Configurable = {"_p_Configurable", "Configurable
 static swig_type_info _swigt__p_FitParameter = {"_p_FitParameter", "FitParameter *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_FitSuiteParameters = {"_p_FitSuiteParameters", "FitSuiteParameters *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IMinimizer = {"_p_IMinimizer", "IMinimizer *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_Limits = {"_p_Limits", "Limits *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_MinimizerFactory = {"_p_MinimizerFactory", "MinimizerFactory *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_MinimizerOptions = {"_p_MinimizerOptions", "MinimizerOptions *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_RealLimits = {"_p_RealLimits", "RealLimits *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_allocator_type = {"_p_allocator_type", "allocator_type *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_difference_type = {"_p_difference_type", "difference_type *", 0, 0, (void*)0, 0};
@@ -24101,9 +24111,9 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_FitParameter,
   &_swigt__p_FitSuiteParameters,
   &_swigt__p_IMinimizer,
-  &_swigt__p_Limits,
   &_swigt__p_MinimizerFactory,
   &_swigt__p_MinimizerOptions,
+  &_swigt__p_RealLimits,
   &_swigt__p_allocator_type,
   &_swigt__p_char,
   &_swigt__p_difference_type,
@@ -24153,9 +24163,9 @@ static swig_cast_info _swigc__p_Configurable[] = {  {&_swigt__p_Configurable, 0,
 static swig_cast_info _swigc__p_FitParameter[] = {  {&_swigt__p_FitParameter, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_FitSuiteParameters[] = {  {&_swigt__p_FitSuiteParameters, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IMinimizer[] = {  {&_swigt__p_IMinimizer, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_Limits[] = {  {&_swigt__p_FitParameter, _p_FitParameterTo_p_Limits, 0, 0},  {&_swigt__p_Limits, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_MinimizerFactory[] = {  {&_swigt__p_MinimizerFactory, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_MinimizerOptions[] = {  {&_swigt__p_MinimizerOptions, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_RealLimits[] = {  {&_swigt__p_FitParameter, _p_FitParameterTo_p_RealLimits, 0, 0},  {&_swigt__p_RealLimits, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_allocator_type[] = {  {&_swigt__p_allocator_type, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_char[] = {  {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_difference_type[] = {  {&_swigt__p_difference_type, 0, 0, 0},{0, 0, 0, 0}};
@@ -24205,9 +24215,9 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_FitParameter,
   _swigc__p_FitSuiteParameters,
   _swigc__p_IMinimizer,
-  _swigc__p_Limits,
   _swigc__p_MinimizerFactory,
   _swigc__p_MinimizerOptions,
+  _swigc__p_RealLimits,
   _swigc__p_allocator_type,
   _swigc__p_char,
   _swigc__p_difference_type,
@@ -24667,10 +24677,19 @@ extern "C" {
         0,                                  /* tp_del */
 #endif
 #if PY_VERSION_HEX >= 0x02060000
-        0,                                  /* tp_version */
+        0,                                  /* tp_version_tag */
+#endif
+#if PY_VERSION_HEX >= 0x03040000
+        0,                                  /* tp_finalize */
 #endif
 #ifdef COUNT_ALLOCS
-        0,0,0,0                             /* tp_alloc -> tp_next */
+        0,                                  /* tp_allocs */
+        0,                                  /* tp_frees */
+        0,                                  /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+        0,                                  /* tp_prev */
+#endif
+        0                                   /* tp_next */
 #endif
       };
       varlink_type = tmp;
diff --git a/auto/Wrap/libBornAgainFit_wrap.h b/auto/Wrap/libBornAgainFit_wrap.h
index ec6a7eb4a322524c99068bdafa85198df6614f58..1aa4403ae1c013f289f654df97b603f2aaed04bf 100644
--- a/auto/Wrap/libBornAgainFit_wrap.h
+++ b/auto/Wrap/libBornAgainFit_wrap.h
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 3.0.7
+ * Version 3.0.8
  *
  * This file is not intended to be easily readable and contains a number of
  * coding conventions designed to improve portability and efficiency. Do not make
diff --git a/cmake/generic/modules/FindYamlCpp05.cmake b/cmake/generic/modules/FindYamlCpp05.cmake
index 337c0803e3d122c45e712e34f48bf63d4a8c3532..d1ed4370757bb9bae211df9af9618eb7e5263247 100644
--- a/cmake/generic/modules/FindYamlCpp05.cmake
+++ b/cmake/generic/modules/FindYamlCpp05.cmake
@@ -1,4 +1,4 @@
-# Find libyaml-cpp with API version 0.5
+# Find libyaml-cpp with API version 0.5
 #
 # Usage:
 #   find_package(YamlCpp05 [REQUIRED] [QUIET])
@@ -20,21 +20,31 @@ include(CheckIncludeFileCXX)
 include(CheckCXXSourceRuns)
 
 # find the yaml-cpp include directory
-find_path(YAMLCPP_INCLUDE_DIR yaml-cpp/yaml.h
-    PATH_SUFFIXES include yaml-cpp/include yaml-cpp
-    PATHS
-    ${YAMLCPP_INCLUDE_LOC}
-    ~/Library/Frameworks/
-    /Library/Frameworks/
-    /usr/local/
-    /usr/
-    /sw/ # Fink
-    /opt/local/ # DarwinPorts
-    /opt/csw/ # Blastwave
-    /opt/
-    )
+if(WIN32)
+    find_path(YAMLCPP_INCLUDE_DIR_TMP yaml.h PATHS ${CMAKE_INCLUDE_PATH}/yaml-cpp NO_SYSTEM_ENVIRONMENT_PATH)
+else()
+    find_path(YAMLCPP_INCLUDE_DIR_TMP yaml.h
+        PATH_SUFFIXES include yaml-cpp/include yaml-cpp
+        PATHS
+        ${YAMLCPP_INCLUDE_LOC}
+        ~/Library/Frameworks/
+        /Library/Frameworks/
+        /usr/local/
+        /usr/
+        /sw/ # Fink
+        /opt/local/ # DarwinPorts
+        /opt/csw/ # Blastwave
+        /opt/
+        )
+endif()
+get_filename_component(YAMLCPP_INCLUDE_DIR ${YAMLCPP_INCLUDE_DIR_TMP} DIRECTORY)
+message(STATUS "yaml-cpp include dir: ${YAMLCPP_INCLUDE_DIR}")
 
-set(CMAKE_REQUIRED_INCLUDES ${YAMLCPP_INCLUDE_DIR})
+if(WIN32)
+    set(CMAKE_REQUIRED_INCLUDES ${CMAKE_INCLUDE_PATH})
+else()
+    set(CMAKE_REQUIRED_INCLUDES ${YAMLCPP_INCLUDE_DIR})
+endif()
 set(CMAKE_REQUIRED_QUIET True)
 
 # first look for outdated yaml-cpp0.3 include files
@@ -58,24 +68,28 @@ if(YAMLCPP_STATIC_LIBRARY)
 endif()
 
 # find the yaml-cpp library
-find_library(YAMLCPP_LIBRARY
-    NAMES ${YAMLCPP_STATIC} yaml-cpp
-    PATH_SUFFIXES lib64 lib
-    PATHS
-    ${YAMLCPP_LIBRARY_LOC}
-    ~/Library/Frameworks
-    /Library/Frameworks
-    /usr/local
-    /usr
-    /sw
-    /opt/local
-    /opt/csw
-    /opt
-    )
+if(WIN32)
+    find_library(YAMLCPP_LIBRARY NAMES yaml-cpp)
+else()
+    find_library(YAMLCPP_LIBRARY
+        NAMES ${YAMLCPP_STATIC} yaml-cpp
+        PATH_SUFFIXES lib64 lib
+        PATHS
+        ${YAMLCPP_LIBRARY_LOC}
+        ~/Library/Frameworks
+        /Library/Frameworks
+        /usr/local
+        /usr
+        /sw
+        /opt/local
+        /opt/csw
+        /opt
+        )
+endif()
 
 # try to compile, link, and run a test program
 unset(YAMLCPP_RUNS CACHE)
-set(CMAKE_REQUIRED_LIBRARIES yaml-cpp)
+set(CMAKE_REQUIRED_LIBRARIES ${YAMLCPP_LIBRARY})
 check_cxx_source_runs("#include \"yaml-cpp/yaml.h\"\n#include <assert.h>\nint main() {\n    YAML::Node node = YAML::Load(\"[1, 2, 3]\");\n    assert(node.IsSequence());\n}" YAMLCPP_RUNS)
 if(${YAMLCPP_RUNS})
 else()