diff --git a/Core/Algorithms/MultiLayerRoughnessDWBASimulation.cpp b/Core/Algorithms/MultiLayerRoughnessDWBASimulation.cpp
index 61b0ed0294d139081944004809fba36cb4ca2655..0e79ee9a86a578246a595555bde1d1bc9e794527 100644
--- a/Core/Algorithms/MultiLayerRoughnessDWBASimulation.cpp
+++ b/Core/Algorithms/MultiLayerRoughnessDWBASimulation.cpp
@@ -17,12 +17,24 @@
 #include "MultiLayer.h"
 #include "DWBADiffuseReflection.h"
 #include "BornAgainNamespace.h"
+#include "Faddeeva.hh"
 
 #include <memory>
 
 // Diffuse scattering from rough interfaces is modelled after
 // Phys. Rev. B, vol. 51 (4), p. 2311 (1995)
 
+namespace {
+    complex_t h_plus(complex_t x)
+    {
+        return 0.5*Faddeeva::erfcx(-x/std::sqrt(2.0));
+    }
+    complex_t h_min(complex_t x)
+    {
+        return 0.5*Faddeeva::erfcx(x/std::sqrt(2.0));
+    }
+}
+
 MultiLayerRoughnessDWBASimulation::MultiLayerRoughnessDWBASimulation(
     const MultiLayer *p_multi_layer)
 {
@@ -77,7 +89,7 @@ double MultiLayerRoughnessDWBASimulation::evaluate(const SimulationElement& sim_
 
     for(size_t i=0; i<mp_multi_layer->getNumberOfLayers()-1; i++){
         rterm[i] = get_refractive_term(i);
-        sterm[i] = get_sum4terms(i, sim_element);
+        sterm[i] = get_sum8terms(i, sim_element);
     }
 
     for(size_t i=0; i<mp_multi_layer->getNumberOfLayers()-1; i++){
@@ -111,39 +123,60 @@ complex_t MultiLayerRoughnessDWBASimulation::get_refractive_term(size_t ilayer)
            mp_multi_layer->getLayer(ilayer+1)->getRefractiveIndex2();
 }
 
-complex_t MultiLayerRoughnessDWBASimulation::get_sum4terms(size_t ilayer,
+complex_t MultiLayerRoughnessDWBASimulation::get_sum8terms(size_t ilayer,
                                                            const SimulationElement& sim_element)
 {
+    static const complex_t im(0.0, 1.0);
     double wavelength = sim_element.getWavelength();
     double alpha_i = sim_element.getAlphaI();
     double alpha_f = sim_element.getAlphaMean();
 
-    const std::unique_ptr<const ILayerRTCoefficients> P_in_coeff(
+    const std::unique_ptr<const ILayerRTCoefficients> P_in_plus(
+        mp_specular_info_vector[ilayer]->getInCoefficients(alpha_i, 0.0, wavelength));
+    const std::unique_ptr<const ILayerRTCoefficients> P_out_plus(
+        mp_specular_info_vector[ilayer]->getOutCoefficients(alpha_f, 0.0, wavelength));
+
+    const std::unique_ptr<const ILayerRTCoefficients> P_in_minus(
         mp_specular_info_vector[ilayer + 1]->getInCoefficients(alpha_i, 0.0, wavelength));
-    const std::unique_ptr<const ILayerRTCoefficients> P_out_coeff(
+    const std::unique_ptr<const ILayerRTCoefficients> P_out_minus(
         mp_specular_info_vector[ilayer + 1]->getOutCoefficients(alpha_f, 0.0, wavelength));
 
-    complex_t kiz = P_in_coeff->getScalarKz();
-    complex_t kfz = P_out_coeff->getScalarKz();
-    complex_t qz1 = kiz + kfz;
-    complex_t qz2 = kiz - kfz;
-    complex_t qz3 = -qz2;
-    complex_t qz4 = -qz1;
+    complex_t kiz_plus = P_in_plus->getScalarKz();
+    complex_t kfz_plus = P_out_plus->getScalarKz();
+    complex_t qz1_plus = - kiz_plus - kfz_plus;
+    complex_t qz2_plus = - kiz_plus + kfz_plus;
+    complex_t qz3_plus = - qz2_plus;
+    complex_t qz4_plus = - qz1_plus;
+    double thickness = mp_multi_layer->getLayerThickness(ilayer);
+    complex_t T_in_plus = P_in_plus->getScalarT()*std::exp(im*kiz_plus*thickness);
+    complex_t R_in_plus = P_in_plus->getScalarR()*std::exp(-im*kiz_plus*thickness);
+    complex_t T_out_plus = P_out_plus->getScalarT()*std::exp(im*kfz_plus*thickness);
+    complex_t R_out_plus = P_out_plus->getScalarR()*std::exp(-im*kfz_plus*thickness);
+
+    complex_t kiz_minus = P_in_minus->getScalarKz();
+    complex_t kfz_minus = P_out_minus->getScalarKz();
+    complex_t qz1_minus = - kiz_minus - kfz_minus;
+    complex_t qz2_minus = - kiz_minus + kfz_minus;
+    complex_t qz3_minus = - qz2_minus;
+    complex_t qz4_minus = - qz1_minus;
 
     double sigma(0.0);
     if (const LayerRoughness *roughness
         = mp_multi_layer->getLayerBottomInterface(ilayer)->getRoughness()) {
         sigma = roughness->getSigma();
     }
-    double sigma2 = -0.5 * sigma * sigma;
-    complex_t term1 = P_in_coeff->getScalarT() * P_out_coeff->getScalarT()
-                      * std::exp(sigma2 * qz1 * qz1);
-    complex_t term2 = P_in_coeff->getScalarT() * P_out_coeff->getScalarR()
-                      * std::exp(sigma2 * qz2 * qz2);
-    complex_t term3 = P_in_coeff->getScalarR() * P_out_coeff->getScalarT()
-                      * std::exp(sigma2 * qz3 * qz3);
-    complex_t term4 = P_in_coeff->getScalarR() * P_out_coeff->getScalarR()
-                      * std::exp(sigma2 * qz4 * qz4);
-
-    return term1 + term2 + term3 + term4;
+    complex_t term1 = T_in_plus * T_out_plus * h_plus(im*qz1_plus*sigma);
+    complex_t term2 = T_in_plus * R_out_plus * h_plus(im*qz2_plus*sigma);
+    complex_t term3 = R_in_plus * T_out_plus * h_plus(im*qz3_plus*sigma);
+    complex_t term4 = R_in_plus * R_out_plus * h_plus(im*qz4_plus*sigma);
+    complex_t term5 = P_in_minus->getScalarT() * P_out_minus->getScalarT()
+                      * h_min(im*qz1_minus*sigma);
+    complex_t term6 = P_in_minus->getScalarT() * P_out_minus->getScalarR()
+                      * h_min(im*qz2_minus*sigma);
+    complex_t term7 = P_in_minus->getScalarR() * P_out_minus->getScalarT()
+                      * h_min(im*qz3_minus*sigma);
+    complex_t term8 = P_in_minus->getScalarR() * P_out_minus->getScalarR()
+                      * h_min(im*qz4_minus*sigma);
+
+    return term1 + term2 + term3 + term4 + term5 + term6 + term7 + term8;
 }
diff --git a/Core/Algorithms/MultiLayerRoughnessDWBASimulation.h b/Core/Algorithms/MultiLayerRoughnessDWBASimulation.h
index baf2da8a8ede4e96d7b6c464f50e218a5b0e68d5..15938cb4bdf2d57025f7fe49e282ea8bd8349905 100644
--- a/Core/Algorithms/MultiLayerRoughnessDWBASimulation.h
+++ b/Core/Algorithms/MultiLayerRoughnessDWBASimulation.h
@@ -54,7 +54,7 @@ protected:
     virtual void runProtected();
 
     complex_t get_refractive_term(size_t ilayer) const;
-    complex_t get_sum4terms(size_t ilayer, const SimulationElement& sim_element);
+    complex_t get_sum8terms(size_t ilayer, const SimulationElement& sim_element);
 
     MultiLayer *mp_multi_layer;
     std::vector<LayerSpecularInfo *> mp_specular_info_vector;
diff --git a/Core/CMakeLists.txt b/Core/CMakeLists.txt
index 618f620039cf752de0964019dc2d60f6e48d69a1..2d5627584c2e10bc3f04a4ef595a6981ed0cde69 100644
--- a/Core/CMakeLists.txt
+++ b/Core/CMakeLists.txt
@@ -156,8 +156,10 @@ if(BORNAGAIN_TIFF_SUPPORT)
     target_link_libraries(${library_name} ${TIFF_LIBRARIES})
 endif()
 
-include_directories(${EIGEN3_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ${FFTW_INCLUDE_DIR} ${GSL_INCLUDE_DIR})
-target_link_libraries(${library_name} ${Boost_LIBRARIES} ${FFTW_LIBRARY} ${GSL_LIBRARIES})
+include_directories(${EIGEN3_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ${FFTW_INCLUDE_DIR}
+    ${GSL_INCLUDE_DIR} ${Faddeeva_INCLUDE_DIR})
+target_link_libraries(${library_name} ${Boost_LIBRARIES} ${FFTW_LIBRARY} ${GSL_LIBRARIES}
+    ${Faddeeva_LIBRARY})
 
 if(BORNAGAIN_OPENMPI)
     add_definitions(-DBORNAGAIN_OPENMPI)
diff --git a/Core/PythonAPI/libBornAgainCore.py b/Core/PythonAPI/libBornAgainCore.py
index 35e45d68d388a0997b61ce9b63bd9c4ccc7147ca..508801266eaa60efde846b7cb94df8514e05005f 100644
--- a/Core/PythonAPI/libBornAgainCore.py
+++ b/Core/PythonAPI/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):
@@ -1439,6 +1446,7 @@ class AttLimits(_object):
     C++ includes: AttLimits.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, AttLimits, name, value)
     __swig_getmethods__ = {}
@@ -1455,7 +1463,7 @@ class AttLimits(_object):
         this = _libBornAgainCore.new_AttLimits()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_AttLimits
     __del__ = lambda self: None
@@ -1735,6 +1743,7 @@ class ICloneable(_object):
     C++ includes: ICloneable.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, ICloneable, name, value)
     __swig_getmethods__ = {}
@@ -1779,6 +1788,7 @@ class INamed(_object):
     C++ includes: INamed.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, INamed, name, value)
     __swig_getmethods__ = {}
@@ -1802,7 +1812,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
@@ -1834,6 +1844,7 @@ class IParameterized(INamed):
     C++ includes: IParameterized.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [INamed]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -1860,7 +1871,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
@@ -1975,6 +1986,7 @@ class ParameterPattern(_object):
     C++ includes: IParameterized.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, ParameterPattern, name, value)
     __swig_getmethods__ = {}
@@ -1992,7 +2004,7 @@ class ParameterPattern(_object):
         this = _libBornAgainCore.new_ParameterPattern(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def beginsWith(self, start_type):
@@ -2106,6 +2118,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__ = {}
@@ -2125,7 +2138,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):
@@ -2397,7 +2410,8 @@ patch_version_number = cvar.patch_version_number
 PI2 = cvar.PI2
 
 class vector_kvector_t(_object):
-    """Proxy of C++ std::vector<(Geometry::BasicVector3D<(double)>)> class"""
+    """Proxy of C++ std::vector<(Geometry::BasicVector3D<(double)>)> class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, vector_kvector_t, name, value)
     __swig_getmethods__ = {}
@@ -2426,11 +2440,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< Geometry::BasicVector3D< double > >::difference_type i, std::vector< Geometry::BasicVector3D< double > >::difference_type j) -> vector_kvector_t"""
         return _libBornAgainCore.vector_kvector_t___getslice__(self, i, j)
@@ -2438,8 +2447,8 @@ class vector_kvector_t(_object):
 
     def __setslice__(self, *args):
         """
-        __setslice__(vector_kvector_t self, std::vector< Geometry::BasicVector3D< double > >::difference_type i, std::vector< Geometry::BasicVector3D< double > >::difference_type j, vector_kvector_t v)
         __setslice__(vector_kvector_t self, std::vector< Geometry::BasicVector3D< double > >::difference_type i, std::vector< Geometry::BasicVector3D< double > >::difference_type j)
+        __setslice__(vector_kvector_t self, std::vector< Geometry::BasicVector3D< double > >::difference_type i, std::vector< Geometry::BasicVector3D< double > >::difference_type j, vector_kvector_t v)
         """
         return _libBornAgainCore.vector_kvector_t___setslice__(self, *args)
 
@@ -2474,6 +2483,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)
@@ -2489,21 +2503,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< Geometry::BasicVector3D< double > >::allocator_type"""
-        return _libBornAgainCore.vector_kvector_t_get_allocator(self)
-
-
     def begin(self):
         """begin(vector_kvector_t self) -> std::vector< Geometry::BasicVector3D< double > >::iterator"""
         return _libBornAgainCore.vector_kvector_t_begin(self)
@@ -2524,6 +2528,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< Geometry::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)
@@ -2547,7 +2561,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):
@@ -2609,6 +2623,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__ = {}
@@ -2628,7 +2643,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):
@@ -2814,7 +2829,8 @@ cvector_t_swigregister = _libBornAgainCore.cvector_t_swigregister
 cvector_t_swigregister(cvector_t)
 
 class vector_cvector_t(_object):
-    """Proxy of C++ std::vector<(Geometry::BasicVector3D<(std::complex<(double)>)>)> class"""
+    """Proxy of C++ std::vector<(Geometry::BasicVector3D<(std::complex<(double)>)>)> class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, vector_cvector_t, name, value)
     __swig_getmethods__ = {}
@@ -2843,11 +2859,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< Geometry::BasicVector3D< std::complex< double > > >::difference_type i, std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type j) -> vector_cvector_t"""
         return _libBornAgainCore.vector_cvector_t___getslice__(self, i, j)
@@ -2855,8 +2866,8 @@ class vector_cvector_t(_object):
 
     def __setslice__(self, *args):
         """
-        __setslice__(vector_cvector_t self, std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type i, std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type j, vector_cvector_t v)
         __setslice__(vector_cvector_t self, std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type i, std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type j)
+        __setslice__(vector_cvector_t self, std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type i, std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type j, vector_cvector_t v)
         """
         return _libBornAgainCore.vector_cvector_t___setslice__(self, *args)
 
@@ -2891,6 +2902,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)
@@ -2906,21 +2922,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< Geometry::BasicVector3D< std::complex< double > > >::allocator_type"""
-        return _libBornAgainCore.vector_cvector_t_get_allocator(self)
-
-
     def begin(self):
         """begin(vector_cvector_t self) -> std::vector< Geometry::BasicVector3D< std::complex< double > > >::iterator"""
         return _libBornAgainCore.vector_cvector_t_begin(self)
@@ -2941,6 +2947,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< Geometry::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)
@@ -2964,7 +2980,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):
@@ -3044,6 +3060,7 @@ class WavevectorInfo(_object):
     C++ includes: WavevectorInfo.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, WavevectorInfo, name, value)
     __swig_getmethods__ = {}
@@ -3061,7 +3078,7 @@ class WavevectorInfo(_object):
         this = _libBornAgainCore.new_WavevectorInfo(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def getKi(self):
@@ -3137,6 +3154,7 @@ class Beam(IParameterized):
     C++ includes: Beam.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -3158,7 +3176,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
@@ -3264,6 +3282,7 @@ class Bin1D(_object):
     C++ includes: Bin.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, Bin1D, name, value)
     __swig_getmethods__ = {}
@@ -3281,7 +3300,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
@@ -3325,6 +3344,7 @@ class Bin1DKVector(_object):
     C++ includes: Bin.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, Bin1DKVector, name, value)
     __swig_getmethods__ = {}
@@ -3345,7 +3365,7 @@ class Bin1DKVector(_object):
         this = _libBornAgainCore.new_Bin1DKVector(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def getMidPoint(self):
@@ -3389,6 +3409,7 @@ class Bin1DCVector(_object):
     C++ includes: Bin.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, Bin1DCVector, name, value)
     __swig_getmethods__ = {}
@@ -3409,7 +3430,7 @@ class Bin1DCVector(_object):
         this = _libBornAgainCore.new_Bin1DCVector(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def getMidPoint(self):
@@ -3453,6 +3474,7 @@ class IAxis(_object):
     C++ includes: IAxis.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, IAxis, name, value)
     __swig_getmethods__ = {}
@@ -3653,6 +3675,7 @@ class VariableBinAxis(IAxis):
     C++ includes: VariableBinAxis.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IAxis]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -3687,7 +3710,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
@@ -3822,6 +3845,7 @@ class ConstKBinAxis(VariableBinAxis):
     C++ includes: ConstKBinAxis.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [VariableBinAxis]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -3859,7 +3883,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
@@ -3899,6 +3923,7 @@ class CustomBinAxis(VariableBinAxis):
     C++ includes: CustomBinAxis.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [VariableBinAxis]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -3936,7 +3961,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
@@ -3998,6 +4023,7 @@ class IShape2D(ICloneable):
     C++ includes: IShape2D.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICloneable]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -4047,6 +4073,7 @@ class ISample(ICloneable, IParameterized):
     C++ includes: ISample.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICloneable, IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -4171,7 +4198,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
@@ -4193,7 +4220,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__ = {}
@@ -4222,11 +4250,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)
@@ -4234,8 +4257,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)
 
@@ -4270,6 +4293,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)
@@ -4285,21 +4313,11 @@ class swig_dummy_type_isample_vector(_object):
         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 swap(self, v):
         """swap(swig_dummy_type_isample_vector self, swig_dummy_type_isample_vector v)"""
         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)
@@ -4320,6 +4338,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)
@@ -4343,7 +4371,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):
@@ -4397,7 +4425,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__ = {}
@@ -4426,11 +4455,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)
@@ -4438,8 +4462,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)
 
@@ -4474,6 +4498,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)
@@ -4489,21 +4518,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)
@@ -4524,6 +4543,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)
@@ -4547,7 +4576,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):
@@ -4609,6 +4638,7 @@ class ISampleBuilder(IParameterized):
     C++ includes: ISampleBuilder.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -4633,7 +4663,7 @@ class ISampleBuilder(IParameterized):
         this = _libBornAgainCore.new_ISampleBuilder(_self, )
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_ISampleBuilder
     __del__ = lambda self: None
@@ -4698,6 +4728,7 @@ class ISampleVisitor(_object):
     C++ includes: ISampleVisitor.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, ISampleVisitor, name, value)
     __swig_getmethods__ = {}
@@ -4714,7 +4745,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
@@ -4871,6 +4902,7 @@ class ICompositeSample(ISample):
     C++ includes: ICompositeSample.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ISample]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -4971,6 +5003,7 @@ class IClusteredParticles(ICompositeSample):
     C++ includes: IClusteredParticles.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICompositeSample]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -5086,6 +5119,7 @@ class Crystal(IClusteredParticles):
     C++ includes: Crystal.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IClusteredParticles]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -5106,7 +5140,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
@@ -5219,6 +5253,7 @@ class IDistribution1D(IParameterized):
     C++ includes: Distributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -5344,6 +5379,7 @@ class DistributionGate(IDistribution1D):
     C++ includes: Distributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -5365,7 +5401,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
@@ -5454,6 +5490,7 @@ class DistributionLorentz(IDistribution1D):
     C++ includes: Distributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -5475,7 +5512,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
@@ -5552,6 +5589,7 @@ class DistributionGaussian(IDistribution1D):
     C++ includes: Distributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -5573,7 +5611,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
@@ -5650,6 +5688,7 @@ class DistributionLogNormal(IDistribution1D):
     C++ includes: Distributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -5671,7 +5710,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
@@ -5760,6 +5799,7 @@ class DistributionCosine(IDistribution1D):
     C++ includes: Distributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -5781,7 +5821,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
@@ -5858,6 +5898,7 @@ class Ellipse(IShape2D):
     C++ includes: Ellipse.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IShape2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -5899,7 +5940,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):
@@ -5988,6 +6029,7 @@ class IFTDecayFunction1D(IParameterized):
     C++ includes: FTDecayFunctions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -6054,6 +6096,7 @@ class FTDecayFunction1DCauchy(IFTDecayFunction1D):
     C++ includes: FTDecayFunctions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDecayFunction1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -6074,7 +6117,7 @@ class FTDecayFunction1DCauchy(IFTDecayFunction1D):
         this = _libBornAgainCore.new_FTDecayFunction1DCauchy(omega)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FTDecayFunction1DCauchy
     __del__ = lambda self: None
@@ -6110,6 +6153,7 @@ class FTDecayFunction1DGauss(IFTDecayFunction1D):
     C++ includes: FTDecayFunctions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDecayFunction1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -6130,7 +6174,7 @@ class FTDecayFunction1DGauss(IFTDecayFunction1D):
         this = _libBornAgainCore.new_FTDecayFunction1DGauss(omega)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FTDecayFunction1DGauss
     __del__ = lambda self: None
@@ -6166,6 +6210,7 @@ class FTDecayFunction1DTriangle(IFTDecayFunction1D):
     C++ includes: FTDecayFunctions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDecayFunction1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -6186,7 +6231,7 @@ class FTDecayFunction1DTriangle(IFTDecayFunction1D):
         this = _libBornAgainCore.new_FTDecayFunction1DTriangle(omega)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FTDecayFunction1DTriangle
     __del__ = lambda self: None
@@ -6222,6 +6267,7 @@ class FTDecayFunction1DVoigt(IFTDecayFunction1D):
     C++ includes: FTDecayFunctions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDecayFunction1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -6242,7 +6288,7 @@ class FTDecayFunction1DVoigt(IFTDecayFunction1D):
         this = _libBornAgainCore.new_FTDecayFunction1DVoigt(omega, eta)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FTDecayFunction1DVoigt
     __del__ = lambda self: None
@@ -6288,6 +6334,7 @@ class IFTDecayFunction2D(IParameterized):
     C++ includes: FTDecayFunctions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -6408,6 +6455,7 @@ class FTDecayFunction2DCauchy(IFTDecayFunction2D):
     C++ includes: FTDecayFunctions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDecayFunction2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -6428,7 +6476,7 @@ class FTDecayFunction2DCauchy(IFTDecayFunction2D):
         this = _libBornAgainCore.new_FTDecayFunction2DCauchy(decay_length_x, decay_length_y)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FTDecayFunction2DCauchy
     __del__ = lambda self: None
@@ -6466,6 +6514,7 @@ class FTDecayFunction2DGauss(IFTDecayFunction2D):
     C++ includes: FTDecayFunctions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDecayFunction2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -6486,7 +6535,7 @@ class FTDecayFunction2DGauss(IFTDecayFunction2D):
         this = _libBornAgainCore.new_FTDecayFunction2DGauss(decay_length_x, decay_length_y)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FTDecayFunction2DGauss
     __del__ = lambda self: None
@@ -6524,6 +6573,7 @@ class FTDecayFunction2DVoigt(IFTDecayFunction2D):
     C++ includes: FTDecayFunctions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDecayFunction2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -6544,7 +6594,7 @@ class FTDecayFunction2DVoigt(IFTDecayFunction2D):
         this = _libBornAgainCore.new_FTDecayFunction2DVoigt(decay_length_x, decay_length_y, eta)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FTDecayFunction2DVoigt
     __del__ = lambda self: None
@@ -6592,6 +6642,7 @@ class IFTDistribution1D(IParameterized):
     C++ includes: FTDistributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -6658,6 +6709,7 @@ class FTDistribution1DCauchy(IFTDistribution1D):
     C++ includes: FTDistributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -6678,7 +6730,7 @@ class FTDistribution1DCauchy(IFTDistribution1D):
         this = _libBornAgainCore.new_FTDistribution1DCauchy(omega)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FTDistribution1DCauchy
     __del__ = lambda self: None
@@ -6714,6 +6766,7 @@ class FTDistribution1DGauss(IFTDistribution1D):
     C++ includes: FTDistributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -6734,7 +6787,7 @@ class FTDistribution1DGauss(IFTDistribution1D):
         this = _libBornAgainCore.new_FTDistribution1DGauss(omega)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FTDistribution1DGauss
     __del__ = lambda self: None
@@ -6770,6 +6823,7 @@ class FTDistribution1DGate(IFTDistribution1D):
     C++ includes: FTDistributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -6790,7 +6844,7 @@ class FTDistribution1DGate(IFTDistribution1D):
         this = _libBornAgainCore.new_FTDistribution1DGate(omega)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FTDistribution1DGate
     __del__ = lambda self: None
@@ -6826,6 +6880,7 @@ class FTDistribution1DTriangle(IFTDistribution1D):
     C++ includes: FTDistributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -6846,7 +6901,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
@@ -6882,6 +6937,7 @@ class FTDistribution1DCosine(IFTDistribution1D):
     C++ includes: FTDistributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -6902,7 +6958,7 @@ class FTDistribution1DCosine(IFTDistribution1D):
         this = _libBornAgainCore.new_FTDistribution1DCosine(omega)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FTDistribution1DCosine
     __del__ = lambda self: None
@@ -6938,6 +6994,7 @@ class FTDistribution1DVoigt(IFTDistribution1D):
     C++ includes: FTDistributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution1D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -6958,7 +7015,7 @@ class FTDistribution1DVoigt(IFTDistribution1D):
         this = _libBornAgainCore.new_FTDistribution1DVoigt(omega, eta)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FTDistribution1DVoigt
     __del__ = lambda self: None
@@ -7004,6 +7061,7 @@ class IFTDistribution2D(IParameterized):
     C++ includes: FTDistributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -7102,6 +7160,7 @@ class FTDistribution2DCauchy(IFTDistribution2D):
     C++ includes: FTDistributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -7122,7 +7181,7 @@ class FTDistribution2DCauchy(IFTDistribution2D):
         this = _libBornAgainCore.new_FTDistribution2DCauchy(coherence_length_x, coherence_length_y)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FTDistribution2DCauchy
     __del__ = lambda self: None
@@ -7160,6 +7219,7 @@ class FTDistribution2DGauss(IFTDistribution2D):
     C++ includes: FTDistributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -7180,7 +7240,7 @@ class FTDistribution2DGauss(IFTDistribution2D):
         this = _libBornAgainCore.new_FTDistribution2DGauss(coherence_length_x, coherence_length_y)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FTDistribution2DGauss
     __del__ = lambda self: None
@@ -7218,6 +7278,7 @@ class FTDistribution2DGate(IFTDistribution2D):
     C++ includes: FTDistributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -7238,7 +7299,7 @@ class FTDistribution2DGate(IFTDistribution2D):
         this = _libBornAgainCore.new_FTDistribution2DGate(coherence_length_x, coherence_length_y)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FTDistribution2DGate
     __del__ = lambda self: None
@@ -7276,6 +7337,7 @@ class FTDistribution2DCone(IFTDistribution2D):
     C++ includes: FTDistributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -7296,7 +7358,7 @@ class FTDistribution2DCone(IFTDistribution2D):
         this = _libBornAgainCore.new_FTDistribution2DCone(coherence_length_x, coherence_length_y)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FTDistribution2DCone
     __del__ = lambda self: None
@@ -7334,6 +7396,7 @@ class FTDistribution2DVoigt(IFTDistribution2D):
     C++ includes: FTDistributions.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFTDistribution2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -7354,7 +7417,7 @@ class FTDistribution2DVoigt(IFTDistribution2D):
         this = _libBornAgainCore.new_FTDistribution2DVoigt(coherence_length_x, coherence_length_y, eta)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FTDistribution2DVoigt
     __del__ = lambda self: None
@@ -7402,6 +7465,7 @@ class FixedBinAxis(IAxis):
     C++ includes: FixedBinAxis.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IAxis]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -7439,7 +7503,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
@@ -7574,6 +7638,7 @@ class IFormFactor(ISample):
     C++ includes: IFormFactor.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ISample]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -7598,7 +7663,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
@@ -7713,7 +7778,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__ = {}
@@ -7742,11 +7808,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)
@@ -7754,8 +7815,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)
 
@@ -7790,6 +7851,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)
@@ -7805,21 +7871,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)
@@ -7840,6 +7896,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)
@@ -7863,7 +7929,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):
@@ -7925,6 +7991,7 @@ class IFormFactorBorn(IFormFactor):
     C++ includes: IFormFactorBorn.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactor]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -7949,7 +8016,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
@@ -8047,6 +8114,7 @@ class IFormFactorDecorator(IFormFactor):
     C++ includes: IFormFactorDecorator.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactor]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -8133,6 +8201,7 @@ class PolyhedralEdge(_object):
     C++ includes: FormFactorPolyhedron.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, PolyhedralEdge, name, value)
     __swig_getmethods__ = {}
@@ -8149,7 +8218,7 @@ class PolyhedralEdge(_object):
         this = _libBornAgainCore.new_PolyhedralEdge(_Vlow, _Vhig)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def E(self):
@@ -8197,6 +8266,7 @@ class PolyhedralFace(_object):
     C++ includes: FormFactorPolyhedron.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, PolyhedralFace, name, value)
     __swig_getmethods__ = {}
@@ -8234,7 +8304,7 @@ class PolyhedralFace(_object):
         this = _libBornAgainCore.new_PolyhedralFace(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def area(self):
@@ -8304,6 +8374,14 @@ class PolyhedralFace(_object):
         """
         return _libBornAgainCore.PolyhedralFace_assert_Ci(self, other)
 
+    __swig_setmethods__["qpa_limit_series"] = _libBornAgainCore.PolyhedralFace_qpa_limit_series_set
+    __swig_getmethods__["qpa_limit_series"] = _libBornAgainCore.PolyhedralFace_qpa_limit_series_get
+    if _newclass:
+        qpa_limit_series = _swig_property(_libBornAgainCore.PolyhedralFace_qpa_limit_series_get, _libBornAgainCore.PolyhedralFace_qpa_limit_series_set)
+    __swig_setmethods__["n_limit_series"] = _libBornAgainCore.PolyhedralFace_n_limit_series_set
+    __swig_getmethods__["n_limit_series"] = _libBornAgainCore.PolyhedralFace_n_limit_series_get
+    if _newclass:
+        n_limit_series = _swig_property(_libBornAgainCore.PolyhedralFace_n_limit_series_get, _libBornAgainCore.PolyhedralFace_n_limit_series_set)
     __swig_destroy__ = _libBornAgainCore.delete_PolyhedralFace
     __del__ = lambda self: None
 PolyhedralFace_swigregister = _libBornAgainCore.PolyhedralFace_swigregister
@@ -8322,6 +8400,7 @@ class FormFactorPolyhedron(IFormFactorBorn):
     C++ includes: FormFactorPolyhedron.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -8382,6 +8461,14 @@ class FormFactorPolyhedron(IFormFactorBorn):
         """
         return _libBornAgainCore.FormFactorPolyhedron_assert_platonic(self)
 
+    __swig_setmethods__["q_limit_series"] = _libBornAgainCore.FormFactorPolyhedron_q_limit_series_set
+    __swig_getmethods__["q_limit_series"] = _libBornAgainCore.FormFactorPolyhedron_q_limit_series_get
+    if _newclass:
+        q_limit_series = _swig_property(_libBornAgainCore.FormFactorPolyhedron_q_limit_series_get, _libBornAgainCore.FormFactorPolyhedron_q_limit_series_set)
+    __swig_setmethods__["n_limit_series"] = _libBornAgainCore.FormFactorPolyhedron_n_limit_series_set
+    __swig_getmethods__["n_limit_series"] = _libBornAgainCore.FormFactorPolyhedron_n_limit_series_get
+    if _newclass:
+        n_limit_series = _swig_property(_libBornAgainCore.FormFactorPolyhedron_n_limit_series_get, _libBornAgainCore.FormFactorPolyhedron_n_limit_series_set)
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorPolyhedron
     __del__ = lambda self: None
 FormFactorPolyhedron_swigregister = _libBornAgainCore.FormFactorPolyhedron_swigregister
@@ -8396,6 +8483,7 @@ class FormFactorPolygonalPrism(IFormFactorBorn):
     C++ includes: FormFactorPolyhedron.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -8468,6 +8556,7 @@ class FormFactorAnisoPyramid(FormFactorPolyhedron):
     C++ includes: FormFactorAnisoPyramid.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [FormFactorPolyhedron]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -8502,7 +8591,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):
@@ -8584,6 +8673,7 @@ class FormFactorBox(IFormFactorBorn):
     C++ includes: FormFactorBox.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -8618,7 +8708,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):
@@ -8724,6 +8814,7 @@ class FormFactorCone(IFormFactorBorn):
     C++ includes: FormFactorCone.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -8758,7 +8849,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
@@ -8848,6 +8939,7 @@ class FormFactorCone6(FormFactorPolyhedron):
     C++ includes: FormFactorCone6.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [FormFactorPolyhedron]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -8882,7 +8974,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):
@@ -8952,6 +9044,7 @@ class FormFactorCrystal(IFormFactorBorn):
     C++ includes: FormFactorCrystal.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -8972,7 +9065,7 @@ class FormFactorCrystal(IFormFactorBorn):
         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
@@ -9075,6 +9168,7 @@ class FormFactorCuboctahedron(FormFactorPolyhedron):
     C++ includes: FormFactorCuboctahedron.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [FormFactorPolyhedron]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -9112,7 +9206,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):
@@ -9192,6 +9286,7 @@ class FormFactorCylinder(IFormFactorBorn):
     C++ includes: FormFactorCylinder.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -9223,7 +9318,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
@@ -9303,6 +9398,7 @@ class FormFactorDecoratorDebyeWaller(IFormFactorDecorator):
     C++ includes: FormFactorDecoratorDebyeWaller.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorDecorator]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -9326,7 +9422,7 @@ class FormFactorDecoratorDebyeWaller(IFormFactorDecorator):
         this = _libBornAgainCore.new_FormFactorDecoratorDebyeWaller(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorDecoratorDebyeWaller
     __del__ = lambda self: None
@@ -9387,6 +9483,7 @@ class FormFactorDodecahedron(FormFactorPolyhedron):
     C++ includes: FormFactorDodecahedron.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [FormFactorPolyhedron]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -9415,7 +9512,7 @@ class FormFactorDodecahedron(FormFactorPolyhedron):
         this = _libBornAgainCore.new_FormFactorDodecahedron(edge)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -9465,6 +9562,7 @@ class FormFactorEllipsoidalCylinder(IFormFactorBorn):
     C++ includes: FormFactorEllipsoidalCylinder.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -9499,7 +9597,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):
@@ -9599,6 +9697,7 @@ class FormFactorFullSphere(IFormFactorBorn):
     C++ includes: FormFactorFullSphere.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -9627,7 +9726,7 @@ class FormFactorFullSphere(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorFullSphere(radius)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -9697,6 +9796,7 @@ class FormFactorFullSpheroid(IFormFactorBorn):
     C++ includes: FormFactorFullSpheroid.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -9728,7 +9828,7 @@ class FormFactorFullSpheroid(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorFullSpheroid(radius, height)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorFullSpheroid
     __del__ = lambda self: None
@@ -9808,6 +9908,7 @@ class FormFactorGauss(IFormFactorBorn):
     C++ includes: FormFactorGauss.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -9829,7 +9930,7 @@ class FormFactorGauss(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorGauss(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorGauss
     __del__ = lambda self: None
@@ -9911,6 +10012,7 @@ class FormFactorHemiEllipsoid(IFormFactorBorn):
     C++ includes: FormFactorHemiEllipsoid.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -9945,7 +10047,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
@@ -10045,6 +10147,7 @@ class FormFactorIcosahedron(FormFactorPolyhedron):
     C++ includes: FormFactorIcosahedron.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [FormFactorPolyhedron]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -10065,7 +10168,7 @@ class FormFactorIcosahedron(FormFactorPolyhedron):
         this = _libBornAgainCore.new_FormFactorIcosahedron(edge)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -10107,7 +10210,8 @@ FormFactorIcosahedron_swigregister = _libBornAgainCore.FormFactorIcosahedron_swi
 FormFactorIcosahedron_swigregister(FormFactorIcosahedron)
 
 class FormFactorLongBoxGauss(IFormFactorBorn):
-    """Proxy of C++ FormFactorLongBoxGauss class"""
+    """Proxy of C++ FormFactorLongBoxGauss class."""
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -10142,7 +10246,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):
@@ -10240,7 +10344,8 @@ FormFactorLongBoxGauss_swigregister = _libBornAgainCore.FormFactorLongBoxGauss_s
 FormFactorLongBoxGauss_swigregister(FormFactorLongBoxGauss)
 
 class FormFactorLongBoxLorentz(IFormFactorBorn):
-    """Proxy of C++ FormFactorLongBoxLorentz class"""
+    """Proxy of C++ FormFactorLongBoxLorentz class."""
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -10275,7 +10380,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):
@@ -10381,6 +10486,7 @@ class FormFactorLongRipple1Gauss(IFormFactorBorn):
     C++ includes: FormFactorLongRipple1Gauss.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -10415,7 +10521,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
@@ -10509,6 +10615,7 @@ class FormFactorLongRipple1Lorentz(IFormFactorBorn):
     C++ includes: FormFactorLongRipple1Lorentz.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -10543,7 +10650,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
@@ -10637,6 +10744,7 @@ class FormFactorLongRipple2Gauss(IFormFactorBorn):
     C++ includes: FormFactorLongRipple2Gauss.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -10674,7 +10782,7 @@ class FormFactorLongRipple2Gauss(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorLongRipple2Gauss(length, width, height, asymetry)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorLongRipple2Gauss
     __del__ = lambda self: None
@@ -10778,6 +10886,7 @@ class FormFactorLongRipple2Lorentz(IFormFactorBorn):
     C++ includes: FormFactorLongRipple2Lorentz.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -10815,7 +10924,7 @@ class FormFactorLongRipple2Lorentz(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorLongRipple2Lorentz(length, width, height, asymetry)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorLongRipple2Lorentz
     __del__ = lambda self: None
@@ -10919,6 +11028,7 @@ class FormFactorLorentz(IFormFactorBorn):
     C++ includes: FormFactorLorentz.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -10940,7 +11050,7 @@ class FormFactorLorentz(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorLorentz(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -11034,6 +11144,7 @@ class FormFactorPrism3(FormFactorPolygonalPrism):
     C++ includes: FormFactorPrism3.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [FormFactorPolygonalPrism]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -11065,7 +11176,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):
@@ -11115,6 +11226,7 @@ class FormFactorPrism6(FormFactorPolygonalPrism):
     C++ includes: FormFactorPrism6.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [FormFactorPolygonalPrism]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -11146,7 +11258,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):
@@ -11196,6 +11308,7 @@ class FormFactorPyramid(FormFactorPolyhedron):
     C++ includes: FormFactorPyramid.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [FormFactorPolyhedron]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -11230,7 +11343,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):
@@ -11300,6 +11413,7 @@ class FormFactorRipple1(IFormFactorBorn):
     C++ includes: FormFactorRipple1.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -11334,7 +11448,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
@@ -11428,6 +11542,7 @@ class FormFactorRipple2(IFormFactorBorn):
     C++ includes: FormFactorRipple2.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -11465,7 +11580,7 @@ class FormFactorRipple2(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorRipple2(length, width, height, asymetry)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_FormFactorRipple2
     __del__ = lambda self: None
@@ -11569,6 +11684,7 @@ class FormFactorSphereGaussianRadius(IFormFactorBorn):
     C++ includes: FormFactorSphereGaussianRadius.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -11589,7 +11705,7 @@ class FormFactorSphereGaussianRadius(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorSphereGaussianRadius(mean, sigma)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -11659,6 +11775,7 @@ class FormFactorSphereLogNormalRadius(IFormFactorBorn):
     C++ includes: FormFactorSphereLogNormalRadius.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -11679,7 +11796,7 @@ class FormFactorSphereLogNormalRadius(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorSphereLogNormalRadius(mean, scale_param, n_samples)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -11749,6 +11866,7 @@ class FormFactorSphereUniformRadius(IFormFactorBorn):
     C++ includes: FormFactorSphereUniformRadius.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -11769,7 +11887,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):
@@ -11839,6 +11957,7 @@ class FormFactorTetrahedron(FormFactorPolyhedron):
     C++ includes: FormFactorTetrahedron.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [FormFactorPolyhedron]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -11873,7 +11992,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):
@@ -11935,7 +12054,8 @@ FormFactorTetrahedron_swigregister = _libBornAgainCore.FormFactorTetrahedron_swi
 FormFactorTetrahedron_swigregister(FormFactorTetrahedron)
 
 class FormFactorTrivial(IFormFactorBorn):
-    """Proxy of C++ FormFactorTrivial class"""
+    """Proxy of C++ FormFactorTrivial class."""
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -11967,7 +12087,7 @@ class FormFactorTrivial(IFormFactorBorn):
         this = _libBornAgainCore.new_FormFactorTrivial()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -12037,6 +12157,7 @@ class FormFactorTruncatedCube(FormFactorPolyhedron):
     C++ includes: FormFactorTruncatedCube.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [FormFactorPolyhedron]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -12066,7 +12187,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):
@@ -12126,6 +12247,7 @@ class FormFactorTruncatedSphere(IFormFactorBorn):
     C++ includes: FormFactorTruncatedSphere.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -12157,7 +12279,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
@@ -12219,6 +12341,7 @@ class FormFactorTruncatedSpheroid(IFormFactorBorn):
     C++ includes: FormFactorTruncatedSpheroid.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactorBorn]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -12253,7 +12376,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
@@ -12343,6 +12466,7 @@ class FormFactorWeighted(IFormFactor):
     C++ includes: FormFactorWeighted.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFormFactor]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -12363,7 +12487,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
@@ -12459,6 +12583,7 @@ class Simulation(ICloneable, IParameterized):
     C++ includes: GISASSimulation.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICloneable, IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -12654,6 +12779,7 @@ class SimulationOptions(_object):
     C++ includes: SimulationOptions.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, SimulationOptions, name, value)
     __swig_getmethods__ = {}
@@ -12670,7 +12796,7 @@ class SimulationOptions(_object):
         this = _libBornAgainCore.new_SimulationOptions()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def isIntegrate(self):
@@ -12797,7 +12923,8 @@ SimulationOptions_swigregister = _libBornAgainCore.SimulationOptions_swigregiste
 SimulationOptions_swigregister(SimulationOptions)
 
 class GISASSimulation(Simulation):
-    """Proxy of C++ GISASSimulation class"""
+    """Proxy of C++ GISASSimulation class."""
+
     __swig_setmethods__ = {}
     for _s in [Simulation]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -12820,7 +12947,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
@@ -13097,6 +13224,7 @@ class IHistogram(_object):
     C++ includes: IHistogram.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, IHistogram, name, value)
     __swig_getmethods__ = {}
@@ -13637,7 +13765,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__', {}))
@@ -13663,7 +13792,7 @@ class Histogram1D(IHistogram):
         this = _libBornAgainCore.new_Histogram1D(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -13783,7 +13912,8 @@ def Histogram1D_dynamicCast(pHistogram):
     return _libBornAgainCore.Histogram1D_dynamicCast(pHistogram)
 
 class Histogram2D(IHistogram):
-    """Proxy of C++ Histogram2D class"""
+    """Proxy of C++ Histogram2D class."""
+
     __swig_setmethods__ = {}
     for _s in [IHistogram]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -13809,7 +13939,7 @@ class Histogram2D(IHistogram):
         this = _libBornAgainCore.new_Histogram2D(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -13932,6 +14062,7 @@ class IMaterial(INamed):
     C++ includes: IMaterial.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [INamed]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -13954,7 +14085,7 @@ class IMaterial(INamed):
         this = _libBornAgainCore.new_IMaterial(name)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_IMaterial
     __del__ = lambda self: None
@@ -14018,6 +14149,7 @@ class HomogeneousMaterial(IMaterial):
     C++ includes: HomogeneousMaterial.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IMaterial]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -14041,7 +14173,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
@@ -14105,6 +14237,7 @@ class HomogeneousMagneticMaterial(HomogeneousMaterial):
     C++ includes: HomogeneousMagneticMaterial.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [HomogeneousMaterial]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -14128,7 +14261,7 @@ class HomogeneousMagneticMaterial(HomogeneousMaterial):
         this = _libBornAgainCore.new_HomogeneousMagneticMaterial(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -14196,7 +14329,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__', {}))
@@ -14495,6 +14629,7 @@ class IDetectorResolution(ICloneable, IParameterized):
     C++ includes: IDetectorResolution.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICloneable, IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -14543,6 +14678,7 @@ class IInterferenceFunction(ISample):
     C++ includes: IInterferenceFunction.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ISample]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -14629,6 +14765,7 @@ class ILayout(ICompositeSample):
     C++ includes: ILayout.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICompositeSample]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -14813,6 +14950,7 @@ class IObserver(_object):
     C++ includes: IObserver.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, IObserver, name, value)
     __swig_getmethods__ = {}
@@ -14847,7 +14985,7 @@ class IObserver(_object):
         this = _libBornAgainCore.new_IObserver()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 IObserver_swigregister = _libBornAgainCore.IObserver_swigregister
 IObserver_swigregister(IObserver)
@@ -14861,6 +14999,7 @@ class IObservable(_object):
     C++ includes: IObserver.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, IObservable, name, value)
     __swig_getmethods__ = {}
@@ -14911,7 +15050,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()
@@ -14929,6 +15068,7 @@ class IAbstractParticle(ICompositeSample):
     C++ includes: IParticle.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICompositeSample]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -15039,6 +15179,7 @@ class IParticle(IAbstractParticle):
     C++ includes: IParticle.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IAbstractParticle]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -15198,6 +15339,7 @@ class IResolutionFunction2D(IParameterized):
     C++ includes: IResolutionFunction2D.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -15244,6 +15386,7 @@ class IRotation(ISample):
     C++ includes: Rotations.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ISample]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -15357,7 +15500,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__', {}))
@@ -15378,7 +15522,7 @@ class RotationX(IRotation):
         this = _libBornAgainCore.new_RotationX(angle)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -15456,7 +15600,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__', {}))
@@ -15477,7 +15622,7 @@ class RotationY(IRotation):
         this = _libBornAgainCore.new_RotationY(angle)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -15555,7 +15700,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__', {}))
@@ -15577,7 +15723,7 @@ class RotationZ(IRotation):
         this = _libBornAgainCore.new_RotationZ(angle)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -15655,7 +15801,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__', {}))
@@ -15676,7 +15823,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):
@@ -15782,6 +15929,7 @@ class ISelectionRule(_object):
     C++ includes: ISelectionRule.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, ISelectionRule, name, value)
     __swig_getmethods__ = {}
@@ -15824,6 +15972,7 @@ class SimpleSelectionRule(ISelectionRule):
     C++ includes: ISelectionRule.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ISelectionRule]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -15844,7 +15993,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
@@ -15880,6 +16029,7 @@ class Instrument(IParameterized):
     C++ includes: Instrument.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -15901,7 +16051,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
@@ -16132,6 +16282,7 @@ class IntensityDataFunctions(_object):
     C++ includes: IntensityDataFunctions.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, IntensityDataFunctions, name, value)
     __swig_getmethods__ = {}
@@ -16179,7 +16330,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
@@ -16212,6 +16363,7 @@ class IntensityDataIOFactory(_object):
     C++ includes: IntensityDataIOFactory.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, IntensityDataIOFactory, name, value)
     __swig_getmethods__ = {}
@@ -16266,7 +16418,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
@@ -16298,6 +16450,7 @@ class InterferenceFunction1DLattice(IInterferenceFunction):
     C++ includes: InterferenceFunction1DLattice.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IInterferenceFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -16332,7 +16485,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
@@ -16414,6 +16567,7 @@ class InterferenceFunctionRadialParaCrystal(IInterferenceFunction):
     C++ includes: InterferenceFunctionRadialParaCrystal.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IInterferenceFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -16449,7 +16603,7 @@ class InterferenceFunctionRadialParaCrystal(IInterferenceFunction):
         this = _libBornAgainCore.new_InterferenceFunctionRadialParaCrystal(peak_distance, damping_length)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_InterferenceFunctionRadialParaCrystal
     __del__ = lambda self: None
@@ -16619,6 +16773,7 @@ class InterferenceFunction2DLattice(IInterferenceFunction):
     C++ includes: InterferenceFunction2DLattice.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IInterferenceFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -16657,7 +16812,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
@@ -16787,6 +16942,7 @@ class InterferenceFunction2DParaCrystal(IInterferenceFunction):
     C++ includes: InterferenceFunction2DParaCrystal.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IInterferenceFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -16829,7 +16985,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
@@ -17039,6 +17195,7 @@ class InterferenceFunctionNone(IInterferenceFunction):
     C++ includes: InterferenceFunctionNone.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IInterferenceFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -17059,7 +17216,7 @@ class InterferenceFunctionNone(IInterferenceFunction):
         this = _libBornAgainCore.new_InterferenceFunctionNone()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -17111,6 +17268,7 @@ class IPixelMap(_object):
     C++ includes: IPixelMap.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, IPixelMap, name, value)
     __swig_getmethods__ = {}
@@ -17183,6 +17341,7 @@ class SphericalDetector(IDetector2D):
     C++ includes: SphericalDetector.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IDetector2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -17205,7 +17364,7 @@ class SphericalDetector(IDetector2D):
         this = _libBornAgainCore.new_SphericalDetector(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -17259,7 +17418,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__', {}))
@@ -17280,7 +17440,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
@@ -17346,6 +17506,7 @@ class IsGISAXSDetector(SphericalDetector):
     C++ includes: IsGISAXSDetector.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [SphericalDetector]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -17368,7 +17529,7 @@ class IsGISAXSDetector(SphericalDetector):
         this = _libBornAgainCore.new_IsGISAXSDetector(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -17394,6 +17555,7 @@ class Lattice(_object):
     C++ includes: Lattice.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, Lattice, name, value)
     __swig_getmethods__ = {}
@@ -17412,7 +17574,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
@@ -17594,6 +17756,7 @@ class Lattice1DParameters(_object):
     C++ includes: Lattice1DParameters.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, Lattice1DParameters, name, value)
     __swig_getmethods__ = {}
@@ -17610,7 +17773,7 @@ class Lattice1DParameters(_object):
         this = _libBornAgainCore.new_Lattice1DParameters()
         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
@@ -17634,6 +17797,7 @@ class Lattice2DParameters(_object):
     C++ includes: Lattice2DParameters.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, Lattice2DParameters, name, value)
     __swig_getmethods__ = {}
@@ -17650,7 +17814,7 @@ class Lattice2DParameters(_object):
         this = _libBornAgainCore.new_Lattice2DParameters()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_setmethods__["m_length_1"] = _libBornAgainCore.Lattice2DParameters_m_length_1_set
     __swig_getmethods__["m_length_1"] = _libBornAgainCore.Lattice2DParameters_m_length_1_get
@@ -17691,6 +17855,7 @@ class Layer(ICompositeSample):
     C++ includes: Layer.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICompositeSample]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -17715,7 +17880,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
@@ -17951,6 +18116,7 @@ class IRoughness(ISample):
     C++ includes: IRoughness.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ISample]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -17991,6 +18157,7 @@ class LayerRoughness(IRoughness):
     C++ includes: LayerRoughness.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IRoughness]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -18012,7 +18179,7 @@ class LayerRoughness(IRoughness):
         this = _libBornAgainCore.new_LayerRoughness(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -18152,6 +18319,7 @@ class Line(IShape2D):
     C++ includes: Line.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IShape2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -18174,7 +18342,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):
@@ -18213,6 +18381,7 @@ class VerticalLine(IShape2D):
     C++ includes: Line.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IShape2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -18241,7 +18410,7 @@ class VerticalLine(IShape2D):
         this = _libBornAgainCore.new_VerticalLine(x)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -18290,6 +18459,7 @@ class HorizontalLine(IShape2D):
     C++ includes: Line.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IShape2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -18318,7 +18488,7 @@ class HorizontalLine(IShape2D):
         this = _libBornAgainCore.new_HorizontalLine(y)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -18558,6 +18728,7 @@ class MesoCrystal(IParticle):
     C++ includes: MesoCrystal.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParticle]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -18578,7 +18749,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
@@ -18699,6 +18870,7 @@ class Logger(_object):
     C++ includes: MessageService.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, Logger, name, value)
     __swig_getmethods__ = {}
@@ -18715,7 +18887,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
@@ -18795,6 +18967,7 @@ class MultiLayer(ICompositeSample):
     C++ includes: MultiLayer.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICompositeSample]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -18815,7 +18988,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
@@ -19105,6 +19278,7 @@ class OffSpecSimulation(Simulation):
     C++ includes: OffSpecSimulation.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [Simulation]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -19127,7 +19301,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
@@ -19324,6 +19498,7 @@ class IntensityData(_object):
     C++ includes: OutputData.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, IntensityData, name, value)
     __swig_getmethods__ = {}
@@ -19340,7 +19515,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
@@ -19928,7 +20103,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__', {}))
@@ -19953,7 +20129,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
@@ -20079,6 +20255,7 @@ class ParameterPool(ICloneable):
     C++ includes: ParameterPool.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICloneable]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -20099,7 +20276,7 @@ class ParameterPool(ICloneable):
         this = _libBornAgainCore.new_ParameterPool(parent)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainCore.delete_ParameterPool
     __del__ = lambda self: None
@@ -20270,6 +20447,7 @@ class Particle(IParticle):
     C++ includes: Particle.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParticle]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -20293,7 +20471,7 @@ class Particle(IParticle):
         this = _libBornAgainCore.new_Particle(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -20441,6 +20619,7 @@ class ParticleComposition(IParticle):
     C++ includes: ParticleComposition.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParticle]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -20464,7 +20643,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
@@ -20607,6 +20786,7 @@ class ParticleCoreShell(IParticle):
     C++ includes: ParticleCoreShell.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IParticle]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -20628,7 +20808,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
@@ -20740,6 +20920,7 @@ class ParticleDistribution(IAbstractParticle):
     C++ includes: ParticleDistribution.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IAbstractParticle]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -20760,7 +20941,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):
@@ -20884,6 +21065,7 @@ class ParticleLayout(ILayout):
     C++ includes: ParticleLayout.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ILayout]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -20906,7 +21088,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
@@ -21085,6 +21267,7 @@ class Polygon(IShape2D):
     C++ includes: Polygon.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IShape2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -21114,7 +21297,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
@@ -21173,6 +21356,7 @@ class RealParameterWrapper(_object):
     C++ includes: RealParameterWrapper.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, RealParameterWrapper, name, value)
     __swig_getmethods__ = {}
@@ -21191,7 +21375,7 @@ class RealParameterWrapper(_object):
         this = _libBornAgainCore.new_RealParameterWrapper(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def setValue(self, value):
@@ -21275,6 +21459,7 @@ class Rectangle(IShape2D):
     C++ includes: Rectangle.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IShape2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -21312,7 +21497,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):
@@ -21401,6 +21586,7 @@ class RectangularDetector(IDetector2D):
     C++ includes: RectangularDetector.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IDetector2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -21427,7 +21613,7 @@ class RectangularDetector(IDetector2D):
         this = _libBornAgainCore.new_RectangularDetector(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -21666,7 +21852,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__', {}))
@@ -21687,7 +21874,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
@@ -21753,6 +21940,7 @@ class ResolutionFunction2DGaussian(IResolutionFunction2D):
     C++ includes: ResolutionFunction2DGaussian.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IResolutionFunction2D]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -21773,7 +21961,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):
@@ -21829,6 +22017,7 @@ class SpecularSimulation(ICloneable, IParameterized):
     C++ includes: SpecularSimulation.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [ICloneable, IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -21851,7 +22040,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
@@ -22029,6 +22218,7 @@ class ThreadInfo(_object):
     C++ includes: ThreadInfo.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, ThreadInfo, name, value)
     __swig_getmethods__ = {}
@@ -22045,7 +22235,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
@@ -22077,6 +22267,7 @@ class SampleBuilderFactory(_object):
     C++ includes: SampleBuilderFactory.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, SampleBuilderFactory, name, value)
     __swig_getmethods__ = {}
@@ -22093,7 +22284,7 @@ class SampleBuilderFactory(_object):
         this = _libBornAgainCore.new_SampleBuilderFactory()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def createSample(self, name):
@@ -22129,6 +22320,7 @@ class SimulationRegistry(_object):
     C++ includes: SimulationRegistry.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, SimulationRegistry, name, value)
     __swig_getmethods__ = {}
@@ -22145,7 +22337,7 @@ class SimulationRegistry(_object):
         this = _libBornAgainCore.new_SimulationRegistry()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def createSimulation(self, name):
diff --git a/Core/PythonAPI/libBornAgainCore_wrap.cxx b/Core/PythonAPI/libBornAgainCore_wrap.cxx
index 2b3ca110638db1b7b995fdbc652c3bcab5cf1e4b..c6938a2bdadca72c5657b834e52193db5309a0d3 100644
--- a/Core/PythonAPI/libBornAgainCore_wrap.cxx
+++ b/Core/PythonAPI/libBornAgainCore_wrap.cxx
@@ -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;
   }
   
@@ -3689,7 +3728,7 @@ static swig_module_info swig_module = {swig_types, 249, 0, 0, 0, 0};
 #endif
 #define SWIG_name    "_libBornAgainCore"
 
-#define SWIGVERSION 0x030007 
+#define SWIGVERSION 0x030008 
 #define SWIG_VERSION SWIGVERSION
 
 
@@ -3935,9 +3974,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()) {
@@ -4029,18 +4070,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
@@ -4097,16 +4127,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
@@ -4156,7 +4190,7 @@ SWIGINTERNINLINE PyObject*
 }
 
 
-namespace swig {  
+namespace swig {
   template <class Type>
   struct noconst_traits {
     typedef Type noconst_type;
@@ -4170,7 +4204,7 @@ namespace swig {
   /*
     type categories
   */
-  struct pointer_category { };  
+  struct pointer_category { };
   struct value_category { };
 
   /*
@@ -4183,12 +4217,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;
@@ -4209,17 +4243,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 { };
 
 }
@@ -4563,6 +4597,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) {
@@ -4937,7 +4977,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)
     {
     }
@@ -4949,7 +4989,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>());
 	}
@@ -4967,7 +5007,7 @@ namespace swig
 
   private:
     PyObject* _seq;
-    int _index;
+    Py_ssize_t _index;
   };
 
   template <class T>
@@ -4988,13 +5028,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)
     {
     }
@@ -5074,6 +5114,7 @@ namespace swig
     difference_type _index;
   };
 
+  // STL container wrapper around a Python sequence
   template <class T>
   struct SwigPySequence_Cont
   {
@@ -5081,8 +5122,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;
@@ -5143,13 +5184,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;
@@ -5169,17 +5210,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);
@@ -5253,10 +5294,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;
@@ -5287,7 +5327,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 >" " >";
@@ -5322,24 +5362,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;
@@ -5348,8 +5384,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){
@@ -5359,8 +5395,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){
@@ -5370,8 +5406,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){
@@ -5381,8 +5417,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){
@@ -5391,6 +5427,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);
     }
@@ -5400,7 +5443,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 > > >" " >";
@@ -5420,24 +5463,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;
@@ -5446,8 +5485,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){
@@ -5457,8 +5496,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){
@@ -5468,8 +5507,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){
@@ -5479,8 +5518,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){
@@ -5489,6 +5528,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);
     }
@@ -5524,17 +5570,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);
@@ -5544,7 +5590,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 >" " >";
@@ -5564,24 +5610,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;
@@ -5590,8 +5632,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){
@@ -5601,8 +5643,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){
@@ -5612,8 +5654,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){
@@ -5623,8 +5665,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){
@@ -5633,6 +5675,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);
     }
@@ -5642,17 +5691,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);
@@ -5662,7 +5711,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 >" " >";
@@ -5682,24 +5731,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;
@@ -5708,8 +5753,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){
@@ -5719,8 +5764,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){
@@ -5730,8 +5775,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){
@@ -5741,8 +5786,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){
@@ -5751,6 +5796,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);
     }
@@ -5778,7 +5830,7 @@ SWIG_AsVal_std_complex_Sl_double_Sg_  (PyObject *o, std::complex<double>* val)
 
 
 SWIGINTERNINLINE PyObject*
-SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/usr/share/swig3.0/typemaps/swigmacros.swg,104,%ifcplusplus@*/
+SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/opt/share/swig/3.0.8/typemaps/swigmacros.swg,104,%ifcplusplus@*/
 
 const std::complex<double>&
 
@@ -5791,17 +5843,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);
@@ -5811,7 +5863,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 > >" " >";
@@ -5831,24 +5883,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;
@@ -5857,8 +5905,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){
@@ -5868,8 +5916,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){
@@ -5879,8 +5927,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){
@@ -5890,8 +5938,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){
@@ -5900,6 +5948,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);
     }
@@ -5961,18 +6016,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);
       }
     }
@@ -5982,6 +6036,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;
@@ -6057,12 +6135,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 {
@@ -6079,17 +6157,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);
@@ -6099,7 +6177,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 >" " >";
@@ -6119,24 +6197,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;
@@ -6145,8 +6219,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){
@@ -6156,8 +6230,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){
@@ -6167,8 +6241,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){
@@ -6178,8 +6252,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){
@@ -6188,6 +6262,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);
     }
@@ -6370,6 +6451,7 @@ SWIG_AsVal_long_SS_long (PyObject *obj, long long *val)
       return SWIG_OK;
     } else {
       PyErr_Clear();
+      res = SWIG_OverflowError;
     }
   } else {
     long v;
@@ -6409,7 +6491,7 @@ SWIGINTERN Geometry::BasicVector3D< double > Geometry_BasicVector3D_Sl_double_Sg
         }
 
   namespace swig {
-    template <>  struct traits<Geometry::BasicVector3D< double > > {
+    template <>  struct traits< Geometry::BasicVector3D< double > > {
       typedef pointer_category category;
       static const char* type_name() { return"Geometry::BasicVector3D< double >"; }
     };
@@ -6417,7 +6499,7 @@ SWIGINTERN Geometry::BasicVector3D< double > Geometry_BasicVector3D_Sl_double_Sg
 
 
       namespace swig {
-	template <>  struct traits<std::vector<Geometry::BasicVector3D< double >, std::allocator< Geometry::BasicVector3D< double > > > > {
+	template <>  struct traits<std::vector< Geometry::BasicVector3D< double >, std::allocator< Geometry::BasicVector3D< double > > > > {
 	  typedef pointer_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "Geometry::BasicVector3D< double >" "," "std::allocator< Geometry::BasicVector3D< double > >" " >";
@@ -6437,24 +6519,20 @@ SWIGINTERN bool std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg____bool__(
 SWIGINTERN std::vector< Geometry::BasicVector3D< double > >::size_type std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg____len__(std::vector< Geometry::BasicVector3D< double > > const *self){
       return self->size();
     }
-SWIGINTERN std::vector< Geometry::BasicVector3D< double > >::value_type std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg__pop(std::vector< Geometry::BasicVector3D< double > > *self){
-      if (self->size() == 0)
-	throw std::out_of_range("pop from empty container");
-      std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >::value_type x = self->back();
-      self->pop_back();
-      return x;
-    }
 SWIGINTERN std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg____getslice__(std::vector< Geometry::BasicVector3D< double > > *self,std::vector< Geometry::BasicVector3D< double > >::difference_type i,std::vector< Geometry::BasicVector3D< double > >::difference_type j){
       return swig::getslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg____setslice____SWIG_0(std::vector< Geometry::BasicVector3D< double > > *self,std::vector< Geometry::BasicVector3D< double > >::difference_type i,std::vector< Geometry::BasicVector3D< double > >::difference_type j,std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > const &v=std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >()){
+SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg____setslice____SWIG_0(std::vector< Geometry::BasicVector3D< double > > *self,std::vector< Geometry::BasicVector3D< double > >::difference_type i,std::vector< Geometry::BasicVector3D< double > >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >());
+    }
+SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg____setslice____SWIG_1(std::vector< Geometry::BasicVector3D< double > > *self,std::vector< Geometry::BasicVector3D< double > >::difference_type i,std::vector< Geometry::BasicVector3D< double > >::difference_type j,std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > const &v){
       swig::setslice(self, i, j, 1, v);
     }
 SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg____delslice__(std::vector< Geometry::BasicVector3D< double > > *self,std::vector< Geometry::BasicVector3D< double > >::difference_type i,std::vector< Geometry::BasicVector3D< double > >::difference_type j){
       swig::delslice(self, i, j, 1);
     }
 SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg____delitem____SWIG_0(std::vector< Geometry::BasicVector3D< double > > *self,std::vector< Geometry::BasicVector3D< double > >::difference_type i){
-      self->erase(swig::getpos(self,i));
+      swig::erase(self, swig::getpos(self, i));
     }
 SWIGINTERN std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg____getitem____SWIG_0(std::vector< Geometry::BasicVector3D< double > > *self,PySliceObject *slice){
       Py_ssize_t i, j, step;
@@ -6463,8 +6541,8 @@ SWIGINTERN std::vector< Geometry::BasicVector3D< double >,std::allocator< Geomet
         return NULL;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >::difference_type id = i;
-      std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >::difference_type jd = j;
+      std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >::difference_type id = i;
+      std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >::difference_type jd = j;
       return swig::getslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg____setitem____SWIG_0(std::vector< Geometry::BasicVector3D< double > > *self,PySliceObject *slice,std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > const &v){
@@ -6474,8 +6552,8 @@ SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg____setitem
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >::difference_type id = i;
-      std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >::difference_type jd = j;
+      std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >::difference_type id = i;
+      std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >::difference_type jd = j;
       swig::setslice(self, id, jd, step, v);
     }
 SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg____setitem____SWIG_1(std::vector< Geometry::BasicVector3D< double > > *self,PySliceObject *slice){
@@ -6485,8 +6563,8 @@ SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg____setitem
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >::difference_type id = i;
-      std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >::difference_type jd = j;
+      std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >::difference_type id = i;
+      std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg____delitem____SWIG_1(std::vector< Geometry::BasicVector3D< double > > *self,PySliceObject *slice){
@@ -6496,8 +6574,8 @@ SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg____delitem
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >::difference_type id = i;
-      std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >::difference_type jd = j;
+      std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >::difference_type id = i;
+      std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN std::vector< Geometry::BasicVector3D< double > >::value_type const &std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg____getitem____SWIG_1(std::vector< Geometry::BasicVector3D< double > > const *self,std::vector< Geometry::BasicVector3D< double > >::difference_type i){
@@ -6506,6 +6584,13 @@ SWIGINTERN std::vector< Geometry::BasicVector3D< double > >::value_type const &s
 SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg____setitem____SWIG_2(std::vector< Geometry::BasicVector3D< double > > *self,std::vector< Geometry::BasicVector3D< double > >::difference_type i,std::vector< Geometry::BasicVector3D< double > >::value_type const &x){
       *(swig::getpos(self,i)) = x;
     }
+SWIGINTERN std::vector< Geometry::BasicVector3D< double > >::value_type std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg__pop(std::vector< Geometry::BasicVector3D< double > > *self){
+      if (self->size() == 0)
+	throw std::out_of_range("pop from empty container");
+      std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
 SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg__append(std::vector< Geometry::BasicVector3D< double > > *self,std::vector< Geometry::BasicVector3D< double > >::value_type const &x){
       self->push_back(x);
     }
@@ -6515,7 +6600,7 @@ SWIGINTERN std::vector< Geometry::BasicVector3D< double > >::iterator std_vector
 SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg__insert__SWIG_1(std::vector< Geometry::BasicVector3D< double > > *self,std::vector< Geometry::BasicVector3D< double > >::iterator pos,std::vector< Geometry::BasicVector3D< double > >::size_type n,std::vector< Geometry::BasicVector3D< double > >::value_type const &x){ self->insert(pos, n, x); }
 
   namespace swig {
-    template <>  struct traits<Geometry::BasicVector3D< std::complex< double > > > {
+    template <>  struct traits< Geometry::BasicVector3D< std::complex< double > > > {
       typedef pointer_category category;
       static const char* type_name() { return"Geometry::BasicVector3D< std::complex< double > >"; }
     };
@@ -6523,7 +6608,7 @@ SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg__insert__S
 
 
       namespace swig {
-	template <>  struct traits<std::vector<Geometry::BasicVector3D< std::complex< double > >, std::allocator< Geometry::BasicVector3D< std::complex< double > > > > > {
+	template <>  struct traits<std::vector< Geometry::BasicVector3D< std::complex< double > >, std::allocator< Geometry::BasicVector3D< std::complex< double > > > > > {
 	  typedef pointer_category category;
 	  static const char* type_name() {
 	    return "std::vector<" "Geometry::BasicVector3D< std::complex< double > >" "," "std::allocator< Geometry::BasicVector3D< std::complex< double > > >" " >";
@@ -6543,24 +6628,20 @@ SWIGINTERN bool std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg
 SWIGINTERN std::vector< Geometry::BasicVector3D< std::complex< double > > >::size_type std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____len__(std::vector< Geometry::BasicVector3D< std::complex< double > > > const *self){
       return self->size();
     }
-SWIGINTERN std::vector< Geometry::BasicVector3D< std::complex< double > > >::value_type std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg__pop(std::vector< Geometry::BasicVector3D< std::complex< double > > > *self){
-      if (self->size() == 0)
-	throw std::out_of_range("pop from empty container");
-      std::vector<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >::value_type x = self->back();
-      self->pop_back();
-      return x;
-    }
 SWIGINTERN std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > > *std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____getslice__(std::vector< Geometry::BasicVector3D< std::complex< double > > > *self,std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type i,std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type j){
       return swig::getslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____setslice____SWIG_0(std::vector< Geometry::BasicVector3D< std::complex< double > > > *self,std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type i,std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type j,std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > > const &v=std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >()){
+SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____setslice____SWIG_0(std::vector< Geometry::BasicVector3D< std::complex< double > > > *self,std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type i,std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >());
+    }
+SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____setslice____SWIG_1(std::vector< Geometry::BasicVector3D< std::complex< double > > > *self,std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type i,std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type j,std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > > const &v){
       swig::setslice(self, i, j, 1, v);
     }
 SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____delslice__(std::vector< Geometry::BasicVector3D< std::complex< double > > > *self,std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type i,std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type j){
       swig::delslice(self, i, j, 1);
     }
 SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____delitem____SWIG_0(std::vector< Geometry::BasicVector3D< std::complex< double > > > *self,std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type i){
-      self->erase(swig::getpos(self,i));
+      swig::erase(self, swig::getpos(self, i));
     }
 SWIGINTERN std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > > *std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____getitem____SWIG_0(std::vector< Geometry::BasicVector3D< std::complex< double > > > *self,PySliceObject *slice){
       Py_ssize_t i, j, step;
@@ -6569,8 +6650,8 @@ SWIGINTERN std::vector< Geometry::BasicVector3D< std::complex< double > >,std::a
         return NULL;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >::difference_type id = i;
-      std::vector<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >::difference_type jd = j;
+      std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >::difference_type id = i;
+      std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >::difference_type jd = j;
       return swig::getslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____setitem____SWIG_0(std::vector< Geometry::BasicVector3D< std::complex< double > > > *self,PySliceObject *slice,std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > > const &v){
@@ -6580,8 +6661,8 @@ SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >::difference_type id = i;
-      std::vector<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >::difference_type jd = j;
+      std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >::difference_type id = i;
+      std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >::difference_type jd = j;
       swig::setslice(self, id, jd, step, v);
     }
 SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____setitem____SWIG_1(std::vector< Geometry::BasicVector3D< std::complex< double > > > *self,PySliceObject *slice){
@@ -6591,8 +6672,8 @@ SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >::difference_type id = i;
-      std::vector<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >::difference_type jd = j;
+      std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >::difference_type id = i;
+      std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____delitem____SWIG_1(std::vector< Geometry::BasicVector3D< std::complex< double > > > *self,PySliceObject *slice){
@@ -6602,8 +6683,8 @@ SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg
         return;
       }
       PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
-      std::vector<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >::difference_type id = i;
-      std::vector<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >::difference_type jd = j;
+      std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >::difference_type id = i;
+      std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >::difference_type jd = j;
       swig::delslice(self, id, jd, step);
     }
 SWIGINTERN std::vector< Geometry::BasicVector3D< std::complex< double > > >::value_type const &std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____getitem____SWIG_1(std::vector< Geometry::BasicVector3D< std::complex< double > > > const *self,std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type i){
@@ -6612,6 +6693,13 @@ SWIGINTERN std::vector< Geometry::BasicVector3D< std::complex< double > > >::val
 SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____setitem____SWIG_2(std::vector< Geometry::BasicVector3D< std::complex< double > > > *self,std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type i,std::vector< Geometry::BasicVector3D< std::complex< double > > >::value_type const &x){
       *(swig::getpos(self,i)) = x;
     }
+SWIGINTERN std::vector< Geometry::BasicVector3D< std::complex< double > > >::value_type std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg__pop(std::vector< Geometry::BasicVector3D< std::complex< double > > > *self){
+      if (self->size() == 0)
+	throw std::out_of_range("pop from empty container");
+      std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
 SWIGINTERN void std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg__append(std::vector< Geometry::BasicVector3D< std::complex< double > > > *self,std::vector< Geometry::BasicVector3D< std::complex< double > > >::value_type const &x){
       self->push_back(x);
     }
@@ -6643,7 +6731,7 @@ SWIGINTERN double VariableBinAxis___getitem__(VariableBinAxis *self,unsigned int
     }
 
   namespace swig {
-    template <>  struct traits<ISample > {
+    template <>  struct traits< ISample > {
       typedef pointer_category category;
       static const char* type_name() { return"ISample"; }
     };
@@ -6651,7 +6739,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 * >" " >";
@@ -6671,24 +6759,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;
@@ -6697,8 +6781,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){
@@ -6708,8 +6792,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){
@@ -6719,8 +6803,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){
@@ -6730,8 +6814,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){
@@ -6740,6 +6824,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);
     }
@@ -6749,7 +6840,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 * >" " >";
@@ -6769,24 +6860,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;
@@ -6795,8 +6882,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){
@@ -6806,8 +6893,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){
@@ -6817,8 +6904,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){
@@ -6828,8 +6915,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){
@@ -6838,6 +6925,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);
     }
@@ -6869,7 +6963,7 @@ SWIGINTERN double FixedBinAxis___getitem__(FixedBinAxis *self,unsigned int i){
     }
 
   namespace swig {
-    template <>  struct traits<IFormFactor > {
+    template <>  struct traits< IFormFactor > {
       typedef pointer_category category;
       static const char* type_name() { return"IFormFactor"; }
     };
@@ -6877,7 +6971,7 @@ SWIGINTERN double FixedBinAxis___getitem__(FixedBinAxis *self,unsigned int i){
 
 
       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 * >" " >";
@@ -6897,24 +6991,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;
@@ -6923,8 +7013,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){
@@ -6934,8 +7024,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){
@@ -6945,8 +7035,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){
@@ -6956,8 +7046,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){
@@ -6966,6 +7056,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);
     }
@@ -7799,7 +7896,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 * > >""'");
@@ -8251,7 +8348,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 * > >""'");
@@ -8674,14 +8771,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);
   }
@@ -8793,14 +8890,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);
   }
@@ -9344,14 +9441,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);
   }
@@ -9498,35 +9595,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 ;
@@ -9540,26 +9658,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());
@@ -9568,14 +9685,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 ;
@@ -9610,7 +9727,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 &""'"); 
@@ -9621,7 +9738,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());
@@ -9639,69 +9756,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) {
       {
@@ -9714,14 +9783,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) {
       {
@@ -9734,10 +9803,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);
           }
         }
       }
@@ -9747,8 +9816,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;
 }
 
@@ -9829,6 +9898,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;
@@ -9901,7 +9973,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 &""'"); 
@@ -10007,20 +10079,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) {
       {
@@ -10033,7 +10105,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) {
       {
@@ -10093,20 +10165,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) {
       {
@@ -10119,7 +10191,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) {
       {
@@ -10189,20 +10261,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) {
       {
@@ -10215,14 +10287,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);
@@ -10232,7 +10304,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) {
       {
@@ -10261,6 +10333,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 ;
@@ -10315,7 +10415,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 &""'"); 
@@ -10379,27 +10479,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 ;
@@ -10433,28 +10512,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 ;
@@ -10547,6 +10604,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 ;
@@ -10712,20 +10812,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;
@@ -10738,7 +10838,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;
@@ -10798,14 +10898,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);
   }
@@ -10824,7 +10924,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);
@@ -11017,20 +11117,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) {
       {
@@ -11044,7 +11144,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) {
       {
@@ -11178,20 +11278,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;
@@ -11210,7 +11310,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;
@@ -11413,34 +11513,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 ;
@@ -11495,20 +11567,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 > > *""'"); 
@@ -11524,19 +11593,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());
@@ -11546,10 +11604,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;
 }
 
@@ -11559,17 +11615,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 > > *""'"); 
@@ -11585,8 +11644,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());
@@ -11596,27 +11666,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) {
       {
@@ -11629,14 +11701,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) {
       {
@@ -11649,10 +11721,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);
           }
         }
       }
@@ -11662,8 +11734,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;
 }
 
@@ -11744,6 +11816,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;
@@ -11816,7 +11891,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 &""'"); 
@@ -11922,20 +11997,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) {
       {
@@ -11948,7 +12023,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) {
       {
@@ -12000,7 +12075,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;
@@ -12008,20 +12083,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) {
       {
@@ -12034,7 +12109,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) {
       {
@@ -12082,7 +12157,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 &""'"); 
@@ -12109,20 +12184,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) {
       {
@@ -12135,14 +12210,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);
@@ -12152,7 +12227,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) {
       {
@@ -12160,7 +12235,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);
@@ -12179,6 +12254,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 ;
@@ -12196,7 +12299,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 &""'"); 
@@ -12238,7 +12341,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 &""'"); 
@@ -12302,27 +12405,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 ;
@@ -12356,28 +12438,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 ;
@@ -12470,6 +12530,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 ;
@@ -12635,20 +12738,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;
@@ -12661,7 +12764,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;
@@ -12705,7 +12808,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 &""'"); 
@@ -12726,14 +12829,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);
   }
@@ -12752,7 +12855,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);
@@ -12765,7 +12868,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);
@@ -12801,7 +12904,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 &""'"); 
@@ -12836,7 +12939,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;
@@ -12858,7 +12961,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;
@@ -12891,7 +12994,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 &""'"); 
@@ -12937,7 +13040,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 &""'"); 
@@ -12958,20 +13061,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) {
       {
@@ -12985,7 +13088,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) {
       {
@@ -12993,7 +13096,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);
@@ -13044,7 +13147,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 &""'"); 
@@ -13106,7 +13209,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 &""'"); 
@@ -13127,27 +13230,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);
@@ -13157,7 +13260,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;
@@ -13169,7 +13272,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);
@@ -13358,34 +13461,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 ;
@@ -13440,20 +13515,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 > *""'"); 
@@ -13469,19 +13541,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());
@@ -13491,10 +13552,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;
 }
 
@@ -13504,17 +13563,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 > *""'"); 
@@ -13530,8 +13592,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());
@@ -13541,27 +13614,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) {
       {
@@ -13574,14 +13649,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) {
       {
@@ -13594,10 +13669,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);
           }
         }
       }
@@ -13607,8 +13682,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;
 }
 
@@ -13689,6 +13764,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;
@@ -13761,7 +13839,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 &""'"); 
@@ -13867,20 +13945,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) {
       {
@@ -13893,7 +13971,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) {
       {
@@ -13953,20 +14031,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) {
       {
@@ -13979,7 +14057,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) {
       {
@@ -14049,20 +14127,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) {
       {
@@ -14075,14 +14153,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);
@@ -14092,7 +14170,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) {
       {
@@ -14121,6 +14199,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 ;
@@ -14175,7 +14281,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 &""'"); 
@@ -14239,27 +14345,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 ;
@@ -14293,28 +14378,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 ;
@@ -14407,6 +14470,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 ;
@@ -14572,20 +14678,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;
@@ -14598,7 +14704,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;
@@ -14658,14 +14764,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);
   }
@@ -14684,7 +14790,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);
@@ -14877,20 +14983,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) {
       {
@@ -14904,7 +15010,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) {
       {
@@ -15038,20 +15144,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;
@@ -15070,7 +15176,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;
@@ -15273,34 +15379,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 ;
@@ -15355,20 +15433,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 > *""'"); 
@@ -15384,19 +15459,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());
@@ -15406,10 +15470,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;
 }
 
@@ -15419,17 +15481,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 > *""'"); 
@@ -15445,8 +15510,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());
@@ -15456,27 +15532,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) {
       {
@@ -15489,14 +15567,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) {
       {
@@ -15509,10 +15587,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);
           }
         }
       }
@@ -15522,8 +15600,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;
 }
 
@@ -15604,6 +15682,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;
@@ -15676,7 +15757,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 &""'"); 
@@ -15782,20 +15863,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) {
       {
@@ -15808,7 +15889,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) {
       {
@@ -15868,20 +15949,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) {
       {
@@ -15894,7 +15975,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) {
       {
@@ -15964,20 +16045,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) {
       {
@@ -15990,14 +16071,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);
@@ -16007,7 +16088,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) {
       {
@@ -16036,6 +16117,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 ;
@@ -16090,7 +16199,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 &""'"); 
@@ -16154,27 +16263,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 ;
@@ -16208,28 +16296,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 ;
@@ -16322,6 +16388,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 ;
@@ -16487,20 +16596,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;
@@ -16513,7 +16622,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;
@@ -16573,14 +16682,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);
   }
@@ -16599,7 +16708,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);
@@ -16792,20 +16901,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) {
       {
@@ -16819,7 +16928,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) {
       {
@@ -16953,20 +17062,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;
@@ -16985,7 +17094,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;
@@ -17188,34 +17297,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 ;
@@ -17266,70 +17347,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 ;
@@ -17377,21 +17394,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) {
       {
@@ -17404,14 +17485,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) {
       {
@@ -17424,10 +17505,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);
           }
         }
       }
@@ -17437,8 +17518,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;
 }
 
@@ -17519,6 +17600,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;
@@ -17591,7 +17675,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 &""'"); 
@@ -17697,20 +17781,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) {
       {
@@ -17723,7 +17807,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) {
       {
@@ -17783,20 +17867,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) {
       {
@@ -17809,7 +17893,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) {
       {
@@ -17879,20 +17963,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) {
       {
@@ -17905,14 +17989,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);
@@ -17922,7 +18006,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) {
       {
@@ -17951,6 +18035,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 ;
@@ -18005,7 +18117,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 &""'"); 
@@ -18069,27 +18181,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 ;
@@ -18123,28 +18214,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 ;
@@ -18237,6 +18306,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 ;
@@ -18402,20 +18514,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;
@@ -18428,7 +18540,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;
@@ -18488,14 +18600,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);
   }
@@ -18514,7 +18626,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);
@@ -18707,20 +18819,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) {
       {
@@ -18734,7 +18846,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) {
       {
@@ -18868,20 +18980,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;
@@ -18900,7 +19012,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;
@@ -19103,34 +19215,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 ;
@@ -19181,70 +19265,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 ;
@@ -19292,21 +19312,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) {
       {
@@ -19319,14 +19403,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) {
       {
@@ -19339,10 +19423,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);
           }
         }
       }
@@ -19352,8 +19436,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;
 }
 
@@ -19434,6 +19518,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;
@@ -19506,7 +19593,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 &""'"); 
@@ -19612,20 +19699,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) {
       {
@@ -19638,7 +19725,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) {
       {
@@ -19698,20 +19785,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) {
       {
@@ -19724,7 +19811,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) {
       {
@@ -19799,20 +19886,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) {
       {
@@ -19825,14 +19912,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);
@@ -19842,7 +19929,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) {
       {
@@ -19869,6 +19956,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 ;
@@ -19928,7 +20043,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 &""'"); 
@@ -19992,27 +20107,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 ;
@@ -20046,28 +20140,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 ;
@@ -20160,6 +20232,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 ;
@@ -20325,20 +20440,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;
@@ -20351,7 +20466,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;
@@ -20416,14 +20531,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);
   }
@@ -20442,7 +20557,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);
@@ -20648,20 +20763,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) {
       {
@@ -20675,7 +20790,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) {
       {
@@ -20817,20 +20932,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;
@@ -20847,7 +20962,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;
@@ -21676,14 +21791,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);
   }
@@ -21885,14 +22000,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);
   }
@@ -22426,14 +22541,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_IParameterized_registerParameter(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);
   }
@@ -22601,14 +22716,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_ParameterPattern(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);
   }
@@ -22989,14 +23104,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);
   }
@@ -23843,34 +23958,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_kvector_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< Geometry::BasicVector3D< double > > *arg1 = (std::vector< Geometry::BasicVector3D< double > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  std::vector< Geometry::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_Geometry__BasicVector3DT_double_t_std__allocatorT_Geometry__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< Geometry::BasicVector3D< double > > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< Geometry::BasicVector3D< double > > * >(argp1);
-  try {
-    result = std_vector_Sl_Geometry_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< Geometry::BasicVector3D< double > >::value_type(static_cast< const std::vector< Geometry::BasicVector3D< double > >::value_type& >(result))), SWIGTYPE_p_Geometry__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< Geometry::BasicVector3D< double > > *arg1 = (std::vector< Geometry::BasicVector3D< double > > *) 0 ;
@@ -23921,70 +24008,6 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_kvector_t___setslice____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< Geometry::BasicVector3D< double > > *arg1 = (std::vector< Geometry::BasicVector3D< double > > *) 0 ;
-  std::vector< Geometry::BasicVector3D< double > >::difference_type arg2 ;
-  std::vector< Geometry::BasicVector3D< double > >::difference_type arg3 ;
-  std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::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_Geometry__BasicVector3DT_double_t_std__allocatorT_Geometry__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< Geometry::BasicVector3D< double > > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< Geometry::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< Geometry::BasicVector3D< double > >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector< Geometry::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< Geometry::BasicVector3D< double > >::difference_type""'");
-  } 
-  arg3 = static_cast< std::vector< Geometry::BasicVector3D< double > >::difference_type >(val3);
-  {
-    std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *ptr = (std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::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< Geometry::BasicVector3D< double >,std::allocator< Geometry::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< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > const &""'"); 
-    }
-    arg4 = ptr;
-  }
-  try {
-    std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg____setslice____SWIG_0(arg1,arg2,arg3,(std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::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< Geometry::BasicVector3D< double > > *arg1 = (std::vector< Geometry::BasicVector3D< double > > *) 0 ;
   std::vector< Geometry::BasicVector3D< double > >::difference_type arg2 ;
@@ -24032,21 +24055,85 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_kvector_t___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Geometry::BasicVector3D< double > > *arg1 = (std::vector< Geometry::BasicVector3D< double > > *) 0 ;
+  std::vector< Geometry::BasicVector3D< double > >::difference_type arg2 ;
+  std::vector< Geometry::BasicVector3D< double > >::difference_type arg3 ;
+  std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::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_Geometry__BasicVector3DT_double_t_std__allocatorT_Geometry__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< Geometry::BasicVector3D< double > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Geometry::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< Geometry::BasicVector3D< double > >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< Geometry::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< Geometry::BasicVector3D< double > >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< Geometry::BasicVector3D< double > >::difference_type >(val3);
+  {
+    std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *ptr = (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::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< Geometry::BasicVector3D< double >,std::allocator< Geometry::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< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
+  try {
+    std_vector_Sl_Geometry_BasicVector3D_Sl_double_Sg__Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::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<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -24059,14 +24146,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<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -24079,10 +24166,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<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::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);
           }
         }
       }
@@ -24092,8 +24179,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< Geometry::BasicVector3D< double > >::__setslice__(std::vector< Geometry::BasicVector3D< double > >::difference_type,std::vector< Geometry::BasicVector3D< double > >::difference_type,std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > const &)\n"
-    "    std::vector< Geometry::BasicVector3D< double > >::__setslice__(std::vector< Geometry::BasicVector3D< double > >::difference_type,std::vector< Geometry::BasicVector3D< double > >::difference_type)\n");
+    "    std::vector< Geometry::BasicVector3D< double > >::__setslice__(std::vector< Geometry::BasicVector3D< double > >::difference_type,std::vector< Geometry::BasicVector3D< double > >::difference_type)\n"
+    "    std::vector< Geometry::BasicVector3D< double > >::__setslice__(std::vector< Geometry::BasicVector3D< double > >::difference_type,std::vector< Geometry::BasicVector3D< double > >::difference_type,std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > const &)\n");
   return 0;
 }
 
@@ -24174,6 +24261,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;
@@ -24246,7 +24336,7 @@ SWIGINTERN PyObject *_wrap_vector_kvector_t___setitem____SWIG_0(PyObject *SWIGUN
     arg2 = (PySliceObject *) obj1;
   }
   {
-    std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *ptr = (std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *)0;
+    std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *ptr = (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::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< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > const &""'"); 
@@ -24352,20 +24442,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<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -24378,7 +24468,7 @@ SWIGINTERN PyObject *_wrap_vector_kvector_t___delitem__(PyObject *self, PyObject
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -24438,20 +24528,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<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -24464,7 +24554,7 @@ SWIGINTERN PyObject *_wrap_vector_kvector_t___getitem__(PyObject *self, PyObject
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -24535,20 +24625,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<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -24561,14 +24651,14 @@ SWIGINTERN PyObject *_wrap_vector_kvector_t___setitem__(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
         _v = PySlice_Check(argv[1]);
       }
       if (_v) {
-        int res = swig::asptr(argv[2], (std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vector_kvector_t___setitem____SWIG_0(self, args);
@@ -24578,7 +24668,7 @@ SWIGINTERN PyObject *_wrap_vector_kvector_t___setitem__(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -24605,6 +24695,34 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_kvector_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Geometry::BasicVector3D< double > > *arg1 = (std::vector< Geometry::BasicVector3D< double > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< Geometry::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_Geometry__BasicVector3DT_double_t_std__allocatorT_Geometry__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< Geometry::BasicVector3D< double > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Geometry::BasicVector3D< double > > * >(argp1);
+  try {
+    result = std_vector_Sl_Geometry_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< Geometry::BasicVector3D< double > >::value_type(static_cast< const std::vector< Geometry::BasicVector3D< double > >::value_type& >(result))), SWIGTYPE_p_Geometry__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< Geometry::BasicVector3D< double > > *arg1 = (std::vector< Geometry::BasicVector3D< double > > *) 0 ;
@@ -24660,7 +24778,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<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *ptr = (std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *)0;
+    std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *ptr = (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::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< Geometry::BasicVector3D< double > > const &""'"); 
@@ -24724,27 +24842,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_kvector_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< Geometry::BasicVector3D< double > > *arg1 = (std::vector< Geometry::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_Geometry__BasicVector3DT_double_t_std__allocatorT_Geometry__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< Geometry::BasicVector3D< double > > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< Geometry::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< Geometry::BasicVector3D< double > > *arg1 = (std::vector< Geometry::BasicVector3D< double > > *) 0 ;
@@ -24778,28 +24875,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_kvector_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< Geometry::BasicVector3D< double > > *arg1 = (std::vector< Geometry::BasicVector3D< double > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  SwigValueWrapper< std::allocator< Geometry::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_Geometry__BasicVector3DT_double_t_std__allocatorT_Geometry__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< Geometry::BasicVector3D< double > > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< Geometry::BasicVector3D< double > > * >(argp1);
-  result = ((std::vector< Geometry::BasicVector3D< double > > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector< Geometry::BasicVector3D< double > >::allocator_type(static_cast< const std::vector< Geometry::BasicVector3D< double > >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_Geometry__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< Geometry::BasicVector3D< double > > *arg1 = (std::vector< Geometry::BasicVector3D< double > > *) 0 ;
@@ -24892,6 +24967,49 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_kvector_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Geometry::BasicVector3D< double > > *arg1 = (std::vector< Geometry::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_Geometry__BasicVector3DT_double_t_std__allocatorT_Geometry__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< Geometry::BasicVector3D< double > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Geometry::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< Geometry::BasicVector3D< double > > *arg1 = (std::vector< Geometry::BasicVector3D< double > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< Geometry::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_Geometry__BasicVector3DT_double_t_std__allocatorT_Geometry__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< Geometry::BasicVector3D< double > > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Geometry::BasicVector3D< double > > * >(argp1);
+  result = ((std::vector< Geometry::BasicVector3D< double > > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< Geometry::BasicVector3D< double > >::allocator_type(static_cast< const std::vector< Geometry::BasicVector3D< double > >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_Geometry__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< Geometry::BasicVector3D< double > >::size_type arg1 ;
@@ -25057,20 +25175,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<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -25083,7 +25201,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<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -25144,14 +25262,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);
   }
@@ -25170,7 +25288,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<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_vector_kvector_t__SWIG_1(self, args);
@@ -25364,20 +25482,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<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -25391,7 +25509,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<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -25525,20 +25643,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<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -25555,7 +25673,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<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -25720,14 +25838,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);
   }
@@ -26334,34 +26452,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_cvector_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< Geometry::BasicVector3D< std::complex< double > > > *arg1 = (std::vector< Geometry::BasicVector3D< std::complex< double > > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  std::vector< Geometry::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_Geometry__BasicVector3DT_std__complexT_double_t_t_std__allocatorT_Geometry__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< Geometry::BasicVector3D< std::complex< double > > > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< Geometry::BasicVector3D< std::complex< double > > > * >(argp1);
-  try {
-    result = std_vector_Sl_Geometry_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< Geometry::BasicVector3D< std::complex< double > > >::value_type(static_cast< const std::vector< Geometry::BasicVector3D< std::complex< double > > >::value_type& >(result))), SWIGTYPE_p_Geometry__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< Geometry::BasicVector3D< std::complex< double > > > *arg1 = (std::vector< Geometry::BasicVector3D< std::complex< double > > > *) 0 ;
@@ -26412,70 +26502,6 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_vector_cvector_t___setslice____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< Geometry::BasicVector3D< std::complex< double > > > *arg1 = (std::vector< Geometry::BasicVector3D< std::complex< double > > > *) 0 ;
-  std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type arg2 ;
-  std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type arg3 ;
-  std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::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_Geometry__BasicVector3DT_std__complexT_double_t_t_std__allocatorT_Geometry__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< Geometry::BasicVector3D< std::complex< double > > > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< Geometry::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< Geometry::BasicVector3D< std::complex< double > > >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector< Geometry::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< Geometry::BasicVector3D< std::complex< double > > >::difference_type""'");
-  } 
-  arg3 = static_cast< std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type >(val3);
-  {
-    std::vector<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > > *ptr = (std::vector<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::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< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::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< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > > const &""'"); 
-    }
-    arg4 = ptr;
-  }
-  try {
-    std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____setslice____SWIG_0(arg1,arg2,arg3,(std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::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< Geometry::BasicVector3D< std::complex< double > > > *arg1 = (std::vector< Geometry::BasicVector3D< std::complex< double > > > *) 0 ;
   std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type arg2 ;
@@ -26523,21 +26549,85 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_cvector_t___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Geometry::BasicVector3D< std::complex< double > > > *arg1 = (std::vector< Geometry::BasicVector3D< std::complex< double > > > *) 0 ;
+  std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type arg2 ;
+  std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type arg3 ;
+  std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::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_Geometry__BasicVector3DT_std__complexT_double_t_t_std__allocatorT_Geometry__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< Geometry::BasicVector3D< std::complex< double > > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Geometry::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< Geometry::BasicVector3D< std::complex< double > > >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< Geometry::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< Geometry::BasicVector3D< std::complex< double > > >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type >(val3);
+  {
+    std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > > *ptr = (std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::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< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::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< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
+  try {
+    std_vector_Sl_Geometry_BasicVector3D_Sl_std_complex_Sl_double_Sg__Sg__Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::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<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -26550,14 +26640,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<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -26570,10 +26660,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<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
+          int res = swig::asptr(argv[3], (std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::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);
           }
         }
       }
@@ -26583,8 +26673,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< Geometry::BasicVector3D< std::complex< double > > >::__setslice__(std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type,std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type,std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > > const &)\n"
-    "    std::vector< Geometry::BasicVector3D< std::complex< double > > >::__setslice__(std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type,std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type)\n");
+    "    std::vector< Geometry::BasicVector3D< std::complex< double > > >::__setslice__(std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type,std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type)\n"
+    "    std::vector< Geometry::BasicVector3D< std::complex< double > > >::__setslice__(std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type,std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type,std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > > const &)\n");
   return 0;
 }
 
@@ -26665,6 +26755,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;
@@ -26737,7 +26830,7 @@ SWIGINTERN PyObject *_wrap_vector_cvector_t___setitem____SWIG_0(PyObject *SWIGUN
     arg2 = (PySliceObject *) obj1;
   }
   {
-    std::vector<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > > *ptr = (std::vector<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > > *)0;
+    std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > > *ptr = (std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::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< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > > const &""'"); 
@@ -26843,20 +26936,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<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -26869,7 +26962,7 @@ SWIGINTERN PyObject *_wrap_vector_cvector_t___delitem__(PyObject *self, PyObject
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -26929,20 +27022,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<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -26955,7 +27048,7 @@ SWIGINTERN PyObject *_wrap_vector_cvector_t___getitem__(PyObject *self, PyObject
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -27026,20 +27119,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<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -27052,14 +27145,14 @@ SWIGINTERN PyObject *_wrap_vector_cvector_t___setitem__(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::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<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
+        int res = swig::asptr(argv[2], (std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_vector_cvector_t___setitem____SWIG_0(self, args);
@@ -27069,7 +27162,7 @@ SWIGINTERN PyObject *_wrap_vector_cvector_t___setitem__(PyObject *self, PyObject
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -27096,6 +27189,34 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_cvector_t_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Geometry::BasicVector3D< std::complex< double > > > *arg1 = (std::vector< Geometry::BasicVector3D< std::complex< double > > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< Geometry::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_Geometry__BasicVector3DT_std__complexT_double_t_t_std__allocatorT_Geometry__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< Geometry::BasicVector3D< std::complex< double > > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Geometry::BasicVector3D< std::complex< double > > > * >(argp1);
+  try {
+    result = std_vector_Sl_Geometry_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< Geometry::BasicVector3D< std::complex< double > > >::value_type(static_cast< const std::vector< Geometry::BasicVector3D< std::complex< double > > >::value_type& >(result))), SWIGTYPE_p_Geometry__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< Geometry::BasicVector3D< std::complex< double > > > *arg1 = (std::vector< Geometry::BasicVector3D< std::complex< double > > > *) 0 ;
@@ -27151,7 +27272,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<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > > *ptr = (std::vector<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > > *)0;
+    std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > > *ptr = (std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::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< Geometry::BasicVector3D< std::complex< double > > > const &""'"); 
@@ -27215,27 +27336,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_cvector_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< Geometry::BasicVector3D< std::complex< double > > > *arg1 = (std::vector< Geometry::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_Geometry__BasicVector3DT_std__complexT_double_t_t_std__allocatorT_Geometry__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< Geometry::BasicVector3D< std::complex< double > > > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< Geometry::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< Geometry::BasicVector3D< std::complex< double > > > *arg1 = (std::vector< Geometry::BasicVector3D< std::complex< double > > > *) 0 ;
@@ -27269,28 +27369,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_cvector_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< Geometry::BasicVector3D< std::complex< double > > > *arg1 = (std::vector< Geometry::BasicVector3D< std::complex< double > > > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  SwigValueWrapper< std::allocator< Geometry::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_Geometry__BasicVector3DT_std__complexT_double_t_t_std__allocatorT_Geometry__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< Geometry::BasicVector3D< std::complex< double > > > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< Geometry::BasicVector3D< std::complex< double > > > * >(argp1);
-  result = ((std::vector< Geometry::BasicVector3D< std::complex< double > > > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector< Geometry::BasicVector3D< std::complex< double > > >::allocator_type(static_cast< const std::vector< Geometry::BasicVector3D< std::complex< double > > >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_Geometry__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< Geometry::BasicVector3D< std::complex< double > > > *arg1 = (std::vector< Geometry::BasicVector3D< std::complex< double > > > *) 0 ;
@@ -27383,6 +27461,49 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_vector_cvector_t_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Geometry::BasicVector3D< std::complex< double > > > *arg1 = (std::vector< Geometry::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_Geometry__BasicVector3DT_std__complexT_double_t_t_std__allocatorT_Geometry__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< Geometry::BasicVector3D< std::complex< double > > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Geometry::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< Geometry::BasicVector3D< std::complex< double > > > *arg1 = (std::vector< Geometry::BasicVector3D< std::complex< double > > > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< Geometry::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_Geometry__BasicVector3DT_std__complexT_double_t_t_std__allocatorT_Geometry__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< Geometry::BasicVector3D< std::complex< double > > > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Geometry::BasicVector3D< std::complex< double > > > * >(argp1);
+  result = ((std::vector< Geometry::BasicVector3D< std::complex< double > > > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< Geometry::BasicVector3D< std::complex< double > > >::allocator_type(static_cast< const std::vector< Geometry::BasicVector3D< std::complex< double > > >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_Geometry__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< Geometry::BasicVector3D< std::complex< double > > >::size_type arg1 ;
@@ -27548,20 +27669,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<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -27574,7 +27695,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<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -27635,14 +27756,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);
   }
@@ -27661,7 +27782,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<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_vector_cvector_t__SWIG_1(self, args);
@@ -27855,20 +27976,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<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -27882,7 +28003,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<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -28016,20 +28137,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<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -28046,7 +28167,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<Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< std::complex< double > >,std::allocator< Geometry::BasicVector3D< std::complex< double > > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       swig::SwigPyIterator *iter = 0;
@@ -28551,14 +28672,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);
   }
@@ -28748,14 +28869,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);
   }
@@ -29079,14 +29200,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);
   }
@@ -29402,14 +29523,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);
   }
@@ -29740,14 +29861,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);
   }
@@ -30264,7 +30385,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;
@@ -30286,7 +30407,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;
@@ -30474,7 +30595,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 &""'"); 
@@ -30713,7 +30834,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;
@@ -30735,7 +30856,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;
@@ -31111,7 +31232,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;
@@ -31274,14 +31395,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);
   }
@@ -31917,34 +32038,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 ;
@@ -31995,70 +32088,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 ;
@@ -32106,21 +32135,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) {
       {
@@ -32133,14 +32226,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) {
       {
@@ -32153,10 +32246,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);
           }
         }
       }
@@ -32166,8 +32259,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;
 }
 
@@ -32248,6 +32341,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;
@@ -32320,7 +32416,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 &""'"); 
@@ -32426,20 +32522,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) {
       {
@@ -32452,7 +32548,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) {
       {
@@ -32512,20 +32608,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) {
       {
@@ -32538,7 +32634,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) {
       {
@@ -32606,20 +32702,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) {
       {
@@ -32632,14 +32728,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);
@@ -32649,7 +32745,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) {
       {
@@ -32677,6 +32773,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 ;
@@ -32729,7 +32853,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 &""'"); 
@@ -32793,27 +32917,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 ;
@@ -32847,28 +32950,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 ;
@@ -32961,6 +33042,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 ;
@@ -33126,20 +33250,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;
@@ -33152,7 +33276,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;
@@ -33210,14 +33334,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);
   }
@@ -33236,7 +33360,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);
@@ -33422,20 +33546,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) {
       {
@@ -33449,7 +33573,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) {
       {
@@ -33578,20 +33702,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;
@@ -33609,7 +33733,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;
@@ -33811,34 +33935,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 ;
@@ -33889,70 +33985,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 ;
@@ -34000,21 +34032,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) {
       {
@@ -34027,14 +34123,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) {
       {
@@ -34047,10 +34143,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);
           }
         }
       }
@@ -34060,8 +34156,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;
 }
 
@@ -34142,6 +34238,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;
@@ -34214,7 +34313,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 &""'"); 
@@ -34320,20 +34419,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) {
       {
@@ -34346,7 +34445,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) {
       {
@@ -34406,20 +34505,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) {
       {
@@ -34432,7 +34531,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) {
       {
@@ -34500,20 +34599,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) {
       {
@@ -34526,14 +34625,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);
@@ -34543,7 +34642,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) {
       {
@@ -34571,6 +34670,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 ;
@@ -34623,7 +34750,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 &""'"); 
@@ -34687,27 +34814,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 ;
@@ -34741,28 +34847,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 ;
@@ -34855,6 +34939,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 ;
@@ -35020,20 +35147,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;
@@ -35046,7 +35173,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;
@@ -35104,14 +35231,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);
   }
@@ -35130,7 +35257,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);
@@ -35316,20 +35443,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) {
       {
@@ -35343,7 +35470,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) {
       {
@@ -35472,20 +35599,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;
@@ -35503,7 +35630,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;
@@ -35911,14 +36038,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_ISampleBuilder_registerParameter(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);
   }
@@ -38323,14 +38450,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);
   }
@@ -39733,7 +39860,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;
@@ -40594,14 +40721,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);
   }
@@ -40750,7 +40877,7 @@ SWIGINTERN PyObject *_wrap_IDistribution1D_generateValueList__SWIG_0(PyObject *S
   }
   arg4 = reinterpret_cast< AttLimits * >(argp4);
   result = ((IDistribution1D const *)arg1)->generateValueList(arg2,arg3,(AttLimits const &)*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;
@@ -40790,7 +40917,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;
@@ -40798,14 +40925,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);
   }
@@ -40907,7 +41034,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;
@@ -40966,14 +41093,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);
   }
@@ -41191,7 +41318,7 @@ SWIGINTERN PyObject *_wrap_DistributionGate_generateValueList__SWIG_0(PyObject *
   }
   arg4 = reinterpret_cast< AttLimits * >(argp4);
   result = ((DistributionGate const *)arg1)->generateValueList(arg2,arg3,(AttLimits const &)*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;
@@ -41231,7 +41358,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;
@@ -41239,14 +41366,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);
   }
@@ -41358,14 +41485,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);
   }
@@ -41561,7 +41688,7 @@ SWIGINTERN PyObject *_wrap_DistributionLorentz_generateValueList__SWIG_0(PyObjec
   }
   arg4 = reinterpret_cast< AttLimits * >(argp4);
   result = ((DistributionLorentz const *)arg1)->generateValueList(arg2,arg3,(AttLimits const &)*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;
@@ -41601,7 +41728,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;
@@ -41609,14 +41736,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);
   }
@@ -41728,14 +41855,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);
   }
@@ -41931,7 +42058,7 @@ SWIGINTERN PyObject *_wrap_DistributionGaussian_generateValueList__SWIG_0(PyObje
   }
   arg4 = reinterpret_cast< AttLimits * >(argp4);
   result = ((DistributionGaussian const *)arg1)->generateValueList(arg2,arg3,(AttLimits const &)*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;
@@ -41971,7 +42098,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;
@@ -41979,14 +42106,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);
   }
@@ -42107,14 +42234,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);
   }
@@ -42339,7 +42466,7 @@ SWIGINTERN PyObject *_wrap_DistributionLogNormal_generateValueList__SWIG_0(PyObj
   }
   arg4 = reinterpret_cast< AttLimits * >(argp4);
   result = ((DistributionLogNormal const *)arg1)->generateValueList(arg2,arg3,(AttLimits const &)*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;
@@ -42379,7 +42506,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;
@@ -42387,14 +42514,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);
   }
@@ -42506,14 +42633,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);
   }
@@ -42709,7 +42836,7 @@ SWIGINTERN PyObject *_wrap_DistributionCosine_generateValueList__SWIG_0(PyObject
   }
   arg4 = reinterpret_cast< AttLimits * >(argp4);
   result = ((DistributionCosine const *)arg1)->generateValueList(arg2,arg3,(AttLimits const &)*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;
@@ -42749,7 +42876,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;
@@ -42757,14 +42884,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);
   }
@@ -42939,14 +43066,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);
   }
@@ -43131,14 +43258,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);
   }
@@ -46495,7 +46622,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;
@@ -46517,7 +46644,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;
@@ -47153,34 +47280,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 ;
@@ -47235,20 +47334,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 * > *""'"); 
@@ -47264,19 +47360,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());
@@ -47286,10 +47371,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;
 }
 
@@ -47299,17 +47382,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 * > *""'"); 
@@ -47325,8 +47411,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());
@@ -47336,27 +47433,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) {
       {
@@ -47369,14 +47468,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) {
       {
@@ -47389,10 +47488,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);
           }
         }
       }
@@ -47402,8 +47501,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;
 }
 
@@ -47484,6 +47583,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;
@@ -47556,7 +47658,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 &""'"); 
@@ -47662,20 +47764,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) {
       {
@@ -47688,7 +47790,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) {
       {
@@ -47748,20 +47850,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) {
       {
@@ -47774,7 +47876,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) {
       {
@@ -47842,20 +47944,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) {
       {
@@ -47868,14 +47970,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);
@@ -47885,7 +47987,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) {
       {
@@ -47913,6 +48015,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 ;
@@ -47965,7 +48095,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 &""'"); 
@@ -48029,27 +48159,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 ;
@@ -48083,28 +48192,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 ;
@@ -48197,6 +48284,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 ;
@@ -48362,20 +48492,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;
@@ -48388,7 +48518,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;
@@ -48446,14 +48576,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);
   }
@@ -48472,7 +48602,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);
@@ -48658,20 +48788,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) {
       {
@@ -48685,7 +48815,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) {
       {
@@ -48814,20 +48944,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;
@@ -48845,7 +48975,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;
@@ -49773,7 +49903,7 @@ SWIGINTERN PyObject *_wrap_PolyhedralFace_diameter(PyObject *SWIGUNUSEDPARM(self
   
   if (!PyArg_ParseTuple(args,(char *)"O:PolyhedralFace_diameter",&obj0)) SWIG_fail;
   {
-    std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *ptr = (std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *)0;
+    std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *ptr = (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::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 &""'"); 
@@ -49806,7 +49936,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<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *ptr = (std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *)0;
+    std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *ptr = (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::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 &""'"); 
@@ -49840,7 +49970,7 @@ SWIGINTERN PyObject *_wrap_new_PolyhedralFace__SWIG_1(PyObject *SWIGUNUSEDPARM(s
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_PolyhedralFace",&obj0)) SWIG_fail;
   {
-    std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *ptr = (std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *)0;
+    std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *ptr = (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::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 &""'"); 
@@ -49874,14 +50004,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);
   }
@@ -49890,7 +50020,7 @@ SWIGINTERN PyObject *_wrap_new_PolyhedralFace(PyObject *self, PyObject *args) {
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_PolyhedralFace__SWIG_1(self, args);
@@ -49898,7 +50028,7 @@ SWIGINTERN PyObject *_wrap_new_PolyhedralFace(PyObject *self, PyObject *args) {
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -50177,6 +50307,82 @@ fail:
 }
 
 
+SWIGINTERN int Swig_var_PolyhedralFace_qpa_limit_series_set(PyObject *_val) {
+  {
+    double val;
+    int res = SWIG_AsVal_double(_val, &val);
+    if (!SWIG_IsOK(res)) {
+      SWIG_exception_fail(SWIG_ArgError(res), "in variable '""PolyhedralFace::qpa_limit_series""' of type '""double""'");
+    }
+    PolyhedralFace::qpa_limit_series = static_cast< double >(val);
+  }
+  return 0;
+fail:
+  return 1;
+}
+
+
+SWIGINTERN PyObject *Swig_var_PolyhedralFace_qpa_limit_series_get(void) {
+  PyObject *pyobj = 0;
+  
+  pyobj = SWIG_From_double(static_cast< double >(PolyhedralFace::qpa_limit_series));
+  return pyobj;
+}
+
+
+SWIGINTERN PyObject *_wrap_PolyhedralFace_qpa_limit_series_get(PyObject *SWIGUNUSEDPARM(self), PyObject *SWIGUNUSEDPARM(args)) {
+  return Swig_var_PolyhedralFace_qpa_limit_series_get();
+}
+
+
+SWIGINTERN PyObject *_wrap_PolyhedralFace_qpa_limit_series_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  int res;
+  PyObject *value;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:set",&value)) return NULL;
+  res = Swig_var_PolyhedralFace_qpa_limit_series_set(value);
+  return !res ? SWIG_Py_Void() : NULL;
+}
+
+
+SWIGINTERN int Swig_var_PolyhedralFace_n_limit_series_set(PyObject *_val) {
+  {
+    int val;
+    int res = SWIG_AsVal_int(_val, &val);
+    if (!SWIG_IsOK(res)) {
+      SWIG_exception_fail(SWIG_ArgError(res), "in variable '""PolyhedralFace::n_limit_series""' of type '""int""'");
+    }
+    PolyhedralFace::n_limit_series = static_cast< int >(val);
+  }
+  return 0;
+fail:
+  return 1;
+}
+
+
+SWIGINTERN PyObject *Swig_var_PolyhedralFace_n_limit_series_get(void) {
+  PyObject *pyobj = 0;
+  
+  pyobj = SWIG_From_int(static_cast< int >(PolyhedralFace::n_limit_series));
+  return pyobj;
+}
+
+
+SWIGINTERN PyObject *_wrap_PolyhedralFace_n_limit_series_get(PyObject *SWIGUNUSEDPARM(self), PyObject *SWIGUNUSEDPARM(args)) {
+  return Swig_var_PolyhedralFace_n_limit_series_get();
+}
+
+
+SWIGINTERN PyObject *_wrap_PolyhedralFace_n_limit_series_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  int res;
+  PyObject *value;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:set",&value)) return NULL;
+  res = Swig_var_PolyhedralFace_n_limit_series_set(value);
+  return !res ? SWIG_Py_Void() : NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_delete_PolyhedralFace(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   PolyhedralFace *arg1 = (PolyhedralFace *) 0 ;
@@ -50309,6 +50515,82 @@ fail:
 }
 
 
+SWIGINTERN int Swig_var_FormFactorPolyhedron_q_limit_series_set(PyObject *_val) {
+  {
+    double val;
+    int res = SWIG_AsVal_double(_val, &val);
+    if (!SWIG_IsOK(res)) {
+      SWIG_exception_fail(SWIG_ArgError(res), "in variable '""FormFactorPolyhedron::q_limit_series""' of type '""double""'");
+    }
+    FormFactorPolyhedron::q_limit_series = static_cast< double >(val);
+  }
+  return 0;
+fail:
+  return 1;
+}
+
+
+SWIGINTERN PyObject *Swig_var_FormFactorPolyhedron_q_limit_series_get(void) {
+  PyObject *pyobj = 0;
+  
+  pyobj = SWIG_From_double(static_cast< double >(FormFactorPolyhedron::q_limit_series));
+  return pyobj;
+}
+
+
+SWIGINTERN PyObject *_wrap_FormFactorPolyhedron_q_limit_series_get(PyObject *SWIGUNUSEDPARM(self), PyObject *SWIGUNUSEDPARM(args)) {
+  return Swig_var_FormFactorPolyhedron_q_limit_series_get();
+}
+
+
+SWIGINTERN PyObject *_wrap_FormFactorPolyhedron_q_limit_series_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  int res;
+  PyObject *value;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:set",&value)) return NULL;
+  res = Swig_var_FormFactorPolyhedron_q_limit_series_set(value);
+  return !res ? SWIG_Py_Void() : NULL;
+}
+
+
+SWIGINTERN int Swig_var_FormFactorPolyhedron_n_limit_series_set(PyObject *_val) {
+  {
+    int val;
+    int res = SWIG_AsVal_int(_val, &val);
+    if (!SWIG_IsOK(res)) {
+      SWIG_exception_fail(SWIG_ArgError(res), "in variable '""FormFactorPolyhedron::n_limit_series""' of type '""int""'");
+    }
+    FormFactorPolyhedron::n_limit_series = static_cast< int >(val);
+  }
+  return 0;
+fail:
+  return 1;
+}
+
+
+SWIGINTERN PyObject *Swig_var_FormFactorPolyhedron_n_limit_series_get(void) {
+  PyObject *pyobj = 0;
+  
+  pyobj = SWIG_From_int(static_cast< int >(FormFactorPolyhedron::n_limit_series));
+  return pyobj;
+}
+
+
+SWIGINTERN PyObject *_wrap_FormFactorPolyhedron_n_limit_series_get(PyObject *SWIGUNUSEDPARM(self), PyObject *SWIGUNUSEDPARM(args)) {
+  return Swig_var_FormFactorPolyhedron_n_limit_series_get();
+}
+
+
+SWIGINTERN PyObject *_wrap_FormFactorPolyhedron_n_limit_series_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  int res;
+  PyObject *value;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:set",&value)) return NULL;
+  res = Swig_var_FormFactorPolyhedron_n_limit_series_set(value);
+  return !res ? SWIG_Py_Void() : NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_delete_FormFactorPolyhedron(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   FormFactorPolyhedron *arg1 = (FormFactorPolyhedron *) 0 ;
@@ -52080,14 +52362,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);
   }
@@ -53031,14 +53313,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);
   }
@@ -55210,14 +55492,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);
   }
@@ -58003,14 +58285,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);
   }
@@ -58433,14 +58715,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);
   }
@@ -58716,14 +58998,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);
   }
@@ -58937,14 +59219,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);
   }
@@ -59131,14 +59413,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);
   }
@@ -59472,14 +59754,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);
   }
@@ -59675,14 +59957,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);
   }
@@ -59774,14 +60056,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);
   }
@@ -59897,14 +60179,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);
   }
@@ -60227,14 +60509,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);
   }
@@ -60478,14 +60760,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);
   }
@@ -60640,14 +60922,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);
   }
@@ -61056,14 +61338,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);
   }
@@ -61349,14 +61631,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);
   }
@@ -61556,14 +61838,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);
   }
@@ -61685,14 +61967,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);
   }
@@ -61814,14 +62096,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);
   }
@@ -62065,14 +62347,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);
   }
@@ -62239,14 +62521,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);
   }
@@ -62559,7 +62841,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 &""'"); 
@@ -62630,14 +62912,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);
   }
@@ -62664,7 +62946,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);
@@ -62821,14 +63103,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);
   }
@@ -62893,7 +63175,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;
@@ -62915,7 +63197,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;
@@ -62937,7 +63219,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;
@@ -63192,7 +63474,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 &""'"); 
@@ -63208,7 +63490,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 &""'"); 
@@ -63293,14 +63575,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);
   }
@@ -63331,7 +63613,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) {
         {
@@ -63339,7 +63621,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);
@@ -63534,14 +63816,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);
   }
@@ -63697,14 +63979,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);
   }
@@ -63858,14 +64140,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);
   }
@@ -64276,14 +64558,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);
   }
@@ -64587,14 +64869,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);
   }
@@ -65338,14 +65620,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);
   }
@@ -65500,14 +65782,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);
   }
@@ -67113,14 +67395,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);
   }
@@ -68043,14 +68325,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);
   }
@@ -68753,14 +69035,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);
   }
@@ -69044,14 +69326,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);
   }
@@ -69459,14 +69741,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);
   }
@@ -69632,14 +69914,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);
   }
@@ -69788,14 +70070,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);
   }
@@ -70432,14 +70714,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);
   }
@@ -70922,14 +71204,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);
   }
@@ -71120,14 +71402,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);
   }
@@ -71221,14 +71503,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);
   }
@@ -71561,14 +71843,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);
   }
@@ -71883,14 +72165,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);
   }
@@ -72125,14 +72407,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);
   }
@@ -72392,7 +72674,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;
@@ -72955,14 +73237,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);
   }
@@ -73519,14 +73801,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);
   }
@@ -73745,14 +74027,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);
   }
@@ -74762,14 +75044,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);
   }
@@ -75460,14 +75742,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);
   }
@@ -75978,14 +76260,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);
   }
@@ -76196,14 +76478,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);
   }
@@ -76436,14 +76718,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);
   }
@@ -76736,14 +77018,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);
   }
@@ -76919,14 +77201,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);
   }
@@ -76983,14 +77265,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);
   }
@@ -77047,14 +77329,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);
   }
@@ -77123,7 +77405,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 &""'"); 
@@ -77139,7 +77421,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:
@@ -77161,7 +77443,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 &""'"); 
@@ -77177,7 +77459,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:
@@ -77187,20 +77469,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) {
       {
@@ -77214,7 +77496,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) {
       {
@@ -77248,7 +77530,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 &""'"); 
@@ -77259,7 +77541,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 &""'"); 
@@ -77270,7 +77552,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;
@@ -77876,14 +78158,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);
   }
@@ -77985,14 +78267,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);
   }
@@ -78787,14 +79069,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);
   }
@@ -78990,14 +79272,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);
   }
@@ -79340,14 +79622,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);
   }
@@ -79577,14 +79859,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);
   }
@@ -79836,14 +80118,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);
   }
@@ -79971,14 +80253,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);
   }
@@ -80139,7 +80421,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;
@@ -80243,14 +80525,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);
   }
@@ -80327,14 +80609,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);
   }
@@ -80499,7 +80781,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;
@@ -80594,14 +80876,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);
   }
@@ -80673,7 +80955,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 &""'"); 
@@ -80711,7 +80993,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 &""'"); 
@@ -80819,14 +81101,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);
   }
@@ -80904,7 +81186,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;
@@ -80999,14 +81281,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);
   }
@@ -81201,7 +81483,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 &""'"); 
@@ -82091,14 +82373,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);
   }
@@ -82402,7 +82684,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;
@@ -82779,14 +83061,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_ParameterPool_registerParameter(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);
   }
@@ -83078,7 +83360,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;
@@ -83217,14 +83499,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);
   }
@@ -83730,7 +84012,7 @@ SWIGINTERN PyObject *_wrap_new_ParticleComposition__SWIG_3(PyObject *SWIGUNUSEDP
   }
   arg1 = reinterpret_cast< IParticle * >(argp1);
   {
-    std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *ptr = (std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *)0;
+    std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *ptr = (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::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 > >""'"); 
@@ -83747,14 +84029,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);
   }
@@ -83786,7 +84068,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<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
+      int res = swig::asptr(argv[1], (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > >**)(0));
       _v = SWIG_CheckState(res);
       if (_v) {
         return _wrap_new_ParticleComposition__SWIG_3(self, args);
@@ -83984,14 +84266,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);
   }
@@ -84063,7 +84345,7 @@ SWIGINTERN PyObject *_wrap_ParticleComposition_addParticles(PyObject *SWIGUNUSED
   }
   arg2 = reinterpret_cast< IParticle * >(argp2);
   {
-    std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *ptr = (std::vector<Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *)0;
+    std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::BasicVector3D< double > > > *ptr = (std::vector< Geometry::BasicVector3D< double >,std::allocator< Geometry::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 > >""'"); 
@@ -84372,14 +84654,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);
   }
@@ -85043,14 +85325,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);
   }
@@ -85391,14 +85673,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);
   }
@@ -85726,7 +86008,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;
     int res = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_Polygon" "', argument " "1"" of type '" "std::vector< double,std::allocator< double > >""'"); 
@@ -85735,7 +86017,7 @@ SWIGINTERN PyObject *_wrap_new_Polygon__SWIG_0(PyObject *SWIGUNUSEDPARM(self), P
     if (SWIG_IsNewObj(res)) delete 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;
     int res = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_Polygon" "', argument " "2"" of type '" "std::vector< double,std::allocator< double > >""'"); 
@@ -85759,7 +86041,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;
     int res = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_Polygon" "', argument " "1"" of type '" "std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > >""'"); 
@@ -85776,20 +86058,20 @@ 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);
   }
   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);
@@ -85797,10 +86079,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);
@@ -85947,14 +86229,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);
   }
@@ -86180,14 +86462,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_RealParameterWrapper(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);
   }
@@ -86613,14 +86895,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);
   }
@@ -86885,14 +87167,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);
   }
@@ -87148,14 +87430,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);
   }
@@ -87437,14 +87719,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);
   }
@@ -88414,14 +88696,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);
   }
@@ -88740,14 +89022,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);
   }
@@ -88895,14 +89177,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);
   }
@@ -89002,7 +89284,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;
@@ -89033,7 +89315,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;
@@ -89064,7 +89346,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;
@@ -89628,11 +89910,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"
@@ -89648,16 +89929,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"
@@ -89689,11 +89971,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"
@@ -89709,16 +89990,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"
@@ -89750,11 +90032,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"
@@ -89770,16 +90051,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"
@@ -89811,11 +90093,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"
@@ -89831,16 +90112,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"
@@ -89872,11 +90154,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"
@@ -89892,16 +90173,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"
@@ -89933,11 +90215,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"
@@ -89953,16 +90234,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"
@@ -90495,11 +90777,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< Geometry::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< Geometry::BasicVector3D< double > >::difference_type i, std::vector< Geometry::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< Geometry::BasicVector3D< double > >::difference_type i, std::vector< Geometry::BasicVector3D< double > >::difference_type j, vector_kvector_t v)\n"
-		"vector_kvector_t___setslice__(vector_kvector_t self, std::vector< Geometry::BasicVector3D< double > >::difference_type i, std::vector< Geometry::BasicVector3D< double > >::difference_type j)\n"
+		"__setslice__(std::vector< Geometry::BasicVector3D< double > >::difference_type i, std::vector< Geometry::BasicVector3D< double > >::difference_type j)\n"
+		"vector_kvector_t___setslice__(vector_kvector_t self, std::vector< Geometry::BasicVector3D< double > >::difference_type i, std::vector< Geometry::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< Geometry::BasicVector3D< double > >::difference_type i, std::vector< Geometry::BasicVector3D< double > >::difference_type j)"},
 	 { (char *)"vector_kvector_t___delitem__", _wrap_vector_kvector_t___delitem__, METH_VARARGS, (char *)"\n"
@@ -90515,16 +90796,17 @@ static PyMethodDef SwigMethods[] = {
 		"__setitem__(PySliceObject * slice)\n"
 		"vector_kvector_t___setitem__(vector_kvector_t self, std::vector< Geometry::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< Geometry::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< Geometry::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< Geometry::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< Geometry::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< Geometry::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< Geometry::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< Geometry::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< Geometry::BasicVector3D< double > >::iterator pos) -> std::vector< Geometry::BasicVector3D< double > >::iterator\n"
@@ -90681,11 +90963,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< Geometry::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< Geometry::BasicVector3D< std::complex< double > > >::difference_type i, std::vector< Geometry::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< Geometry::BasicVector3D< std::complex< double > > >::difference_type i, std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type j, vector_cvector_t v)\n"
-		"vector_cvector_t___setslice__(vector_cvector_t self, std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type i, std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type j)\n"
+		"__setslice__(std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type i, std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type j)\n"
+		"vector_cvector_t___setslice__(vector_cvector_t self, std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type i, std::vector< Geometry::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< Geometry::BasicVector3D< std::complex< double > > >::difference_type i, std::vector< Geometry::BasicVector3D< std::complex< double > > >::difference_type j)"},
 	 { (char *)"vector_cvector_t___delitem__", _wrap_vector_cvector_t___delitem__, METH_VARARGS, (char *)"\n"
@@ -90701,16 +90982,17 @@ static PyMethodDef SwigMethods[] = {
 		"__setitem__(PySliceObject * slice)\n"
 		"vector_cvector_t___setitem__(vector_cvector_t self, std::vector< Geometry::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< Geometry::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< Geometry::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< Geometry::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< Geometry::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< Geometry::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< Geometry::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< Geometry::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< Geometry::BasicVector3D< std::complex< double > > >::iterator pos) -> std::vector< Geometry::BasicVector3D< std::complex< double > > >::iterator\n"
@@ -91368,11 +91650,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"
@@ -91388,16 +91669,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"
@@ -91429,11 +91711,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"
@@ -91449,16 +91730,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"
@@ -93159,11 +93441,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"
@@ -93179,16 +93460,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"
@@ -93403,6 +93685,10 @@ static PyMethodDef SwigMethods[] = {
 		"Throws if deviation from inversion symmetry is detected. Does not check vertices. \n"
 		"\n"
 		""},
+	 { (char *)"PolyhedralFace_qpa_limit_series_get", _wrap_PolyhedralFace_qpa_limit_series_get, METH_VARARGS, NULL},
+	 { (char *)"PolyhedralFace_qpa_limit_series_set", _wrap_PolyhedralFace_qpa_limit_series_set, METH_VARARGS, NULL},
+	 { (char *)"PolyhedralFace_n_limit_series_get", _wrap_PolyhedralFace_n_limit_series_get, METH_VARARGS, NULL},
+	 { (char *)"PolyhedralFace_n_limit_series_set", _wrap_PolyhedralFace_n_limit_series_set, METH_VARARGS, NULL},
 	 { (char *)"delete_PolyhedralFace", _wrap_delete_PolyhedralFace, METH_VARARGS, (char *)"delete_PolyhedralFace(PolyhedralFace self)"},
 	 { (char *)"PolyhedralFace_swigregister", PolyhedralFace_swigregister, METH_VARARGS, NULL},
 	 { (char *)"FormFactorPolyhedron_evaluate_for_q", _wrap_FormFactorPolyhedron_evaluate_for_q, METH_VARARGS, (char *)"\n"
@@ -93437,6 +93723,10 @@ static PyMethodDef SwigMethods[] = {
 		"Assertions for Platonic solid. \n"
 		"\n"
 		""},
+	 { (char *)"FormFactorPolyhedron_q_limit_series_get", _wrap_FormFactorPolyhedron_q_limit_series_get, METH_VARARGS, NULL},
+	 { (char *)"FormFactorPolyhedron_q_limit_series_set", _wrap_FormFactorPolyhedron_q_limit_series_set, METH_VARARGS, NULL},
+	 { (char *)"FormFactorPolyhedron_n_limit_series_get", _wrap_FormFactorPolyhedron_n_limit_series_get, METH_VARARGS, NULL},
+	 { (char *)"FormFactorPolyhedron_n_limit_series_set", _wrap_FormFactorPolyhedron_n_limit_series_set, METH_VARARGS, NULL},
 	 { (char *)"delete_FormFactorPolyhedron", _wrap_delete_FormFactorPolyhedron, METH_VARARGS, (char *)"delete_FormFactorPolyhedron(FormFactorPolyhedron self)"},
 	 { (char *)"FormFactorPolyhedron_swigregister", FormFactorPolyhedron_swigregister, METH_VARARGS, NULL},
 	 { (char *)"FormFactorPolygonalPrism_evaluate_for_q", _wrap_FormFactorPolygonalPrism_evaluate_for_q, METH_VARARGS, (char *)"\n"
@@ -104451,10 +104741,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;
@@ -104747,6 +105046,10 @@ SWIG_init(void) {
   SWIG_addvarlink(SWIG_globals(),(char*)"deg",Swig_var_deg_get, Swig_var_deg_set);
   SWIG_addvarlink(SWIG_globals(),(char*)"tesla",Swig_var_tesla_get, Swig_var_tesla_set);
   SWIG_addvarlink(SWIG_globals(),(char*)"gauss",Swig_var_gauss_get, Swig_var_gauss_set);
+  SWIG_addvarlink(SWIG_globals(),(char*)"PolyhedralFace_qpa_limit_series",Swig_var_PolyhedralFace_qpa_limit_series_get, Swig_var_PolyhedralFace_qpa_limit_series_set);
+  SWIG_addvarlink(SWIG_globals(),(char*)"PolyhedralFace_n_limit_series",Swig_var_PolyhedralFace_n_limit_series_get, Swig_var_PolyhedralFace_n_limit_series_set);
+  SWIG_addvarlink(SWIG_globals(),(char*)"FormFactorPolyhedron_q_limit_series",Swig_var_FormFactorPolyhedron_q_limit_series_get, Swig_var_FormFactorPolyhedron_q_limit_series_set);
+  SWIG_addvarlink(SWIG_globals(),(char*)"FormFactorPolyhedron_n_limit_series",Swig_var_FormFactorPolyhedron_n_limit_series_get, Swig_var_FormFactorPolyhedron_n_limit_series_set);
   SWIG_Python_SetConstant(d, "IHistogram_DataType_INTEGRAL",SWIG_From_int(static_cast< int >(IHistogram::DataType::INTEGRAL)));
   SWIG_Python_SetConstant(d, "IHistogram_DataType_AVERAGE",SWIG_From_int(static_cast< int >(IHistogram::DataType::AVERAGE)));
   SWIG_Python_SetConstant(d, "IHistogram_DataType_STANDARD_ERROR",SWIG_From_int(static_cast< int >(IHistogram::DataType::STANDARD_ERROR)));
diff --git a/Core/PythonAPI/libBornAgainCore_wrap.h b/Core/PythonAPI/libBornAgainCore_wrap.h
index c1e9aaeff5ad209743b513e2f2f4226bdc04d3ce..5e26eb5e0de32a36fd908db8f140ba4476be7c63 100644
--- a/Core/PythonAPI/libBornAgainCore_wrap.h
+++ b/Core/PythonAPI/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/Fit/PythonAPI/libBornAgainFit.py b/Fit/PythonAPI/libBornAgainFit.py
index 4442fbe5c6cb96841e2916ac2aef05aedecbcd6f..6d2ede62439aae1e20df82c98276cd8a65fe28a2 100644
--- a/Fit/PythonAPI/libBornAgainFit.py
+++ b/Fit/PythonAPI/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):
@@ -1440,6 +1447,7 @@ class IMinimizer(_object):
     C++ includes: IMinimizer.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, IMinimizer, name, value)
     __swig_getmethods__ = {}
@@ -1693,7 +1701,8 @@ IMinimizer_swigregister = _libBornAgainFit.IMinimizer_swigregister
 IMinimizer_swigregister(IMinimizer)
 
 class IChiSquaredModule(libBornAgainCore.ICloneable):
-    """Proxy of C++ IChiSquaredModule class"""
+    """Proxy of C++ IChiSquaredModule class."""
+
     __swig_setmethods__ = {}
     for _s in [libBornAgainCore.ICloneable]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -1766,6 +1775,7 @@ class IFitObserver(libBornAgainCore.IObserver):
     C++ includes: IFitObserver.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [libBornAgainCore.IObserver]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -1790,7 +1800,7 @@ class IFitObserver(libBornAgainCore.IObserver):
         this = _libBornAgainFit.new_IFitObserver(_self, update_every_nth)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def notify(self, subject):
@@ -1836,6 +1846,7 @@ class IFitStrategy(libBornAgainCore.INamed):
     C++ includes: IFitStrategy.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [libBornAgainCore.INamed]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -1892,6 +1903,7 @@ class FitStrategyDefault(IFitStrategy):
     C++ includes: IFitStrategy.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFitStrategy]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -1912,7 +1924,7 @@ class FitStrategyDefault(IFitStrategy):
         this = _libBornAgainFit.new_FitStrategyDefault()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 
     def clone(self):
@@ -1940,7 +1952,8 @@ FitStrategyDefault_swigregister = _libBornAgainFit.FitStrategyDefault_swigregist
 FitStrategyDefault_swigregister(FitStrategyDefault)
 
 class IIntensityFunction(_object):
-    """Proxy of C++ IIntensityFunction class"""
+    """Proxy of C++ IIntensityFunction class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, IIntensityFunction, name, value)
     __swig_getmethods__ = {}
@@ -1965,7 +1978,8 @@ IIntensityFunction_swigregister = _libBornAgainFit.IIntensityFunction_swigregist
 IIntensityFunction_swigregister(IIntensityFunction)
 
 class IntensityFunctionLog(IIntensityFunction):
-    """Proxy of C++ IntensityFunctionLog class"""
+    """Proxy of C++ IntensityFunctionLog class."""
+
     __swig_setmethods__ = {}
     for _s in [IIntensityFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -1993,13 +2007,14 @@ class IntensityFunctionLog(IIntensityFunction):
         this = _libBornAgainFit.new_IntensityFunctionLog()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 IntensityFunctionLog_swigregister = _libBornAgainFit.IntensityFunctionLog_swigregister
 IntensityFunctionLog_swigregister(IntensityFunctionLog)
 
 class IntensityFunctionSqrt(IIntensityFunction):
-    """Proxy of C++ IntensityFunctionSqrt class"""
+    """Proxy of C++ IntensityFunctionSqrt class."""
+
     __swig_setmethods__ = {}
     for _s in [IIntensityFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -2027,13 +2042,14 @@ class IntensityFunctionSqrt(IIntensityFunction):
         this = _libBornAgainFit.new_IntensityFunctionSqrt()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
 IntensityFunctionSqrt_swigregister = _libBornAgainFit.IntensityFunctionSqrt_swigregister
 IntensityFunctionSqrt_swigregister(IntensityFunctionSqrt)
 
 class IIntensityNormalizer(libBornAgainCore.IParameterized):
-    """Proxy of C++ IIntensityNormalizer class"""
+    """Proxy of C++ IIntensityNormalizer class."""
+
     __swig_setmethods__ = {}
     for _s in [libBornAgainCore.IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -2072,7 +2088,8 @@ IIntensityNormalizer_swigregister = _libBornAgainFit.IIntensityNormalizer_swigre
 IIntensityNormalizer_swigregister(IIntensityNormalizer)
 
 class IntensityNormalizer(IIntensityNormalizer):
-    """Proxy of C++ IntensityNormalizer class"""
+    """Proxy of C++ IntensityNormalizer class."""
+
     __swig_setmethods__ = {}
     for _s in [IIntensityNormalizer]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -2092,7 +2109,7 @@ class IntensityNormalizer(IIntensityNormalizer):
         this = _libBornAgainFit.new_IntensityNormalizer(scale, shift)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainFit.delete_IntensityNormalizer
     __del__ = lambda self: None
@@ -2120,7 +2137,8 @@ IntensityNormalizer_swigregister = _libBornAgainFit.IntensityNormalizer_swigregi
 IntensityNormalizer_swigregister(IntensityNormalizer)
 
 class IntensityScaleAndShiftNormalizer(IntensityNormalizer):
-    """Proxy of C++ IntensityScaleAndShiftNormalizer class"""
+    """Proxy of C++ IntensityScaleAndShiftNormalizer class."""
+
     __swig_setmethods__ = {}
     for _s in [IntensityNormalizer]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -2140,7 +2158,7 @@ class IntensityScaleAndShiftNormalizer(IntensityNormalizer):
         this = _libBornAgainFit.new_IntensityScaleAndShiftNormalizer(scale, shift)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainFit.delete_IntensityScaleAndShiftNormalizer
     __del__ = lambda self: None
@@ -2158,7 +2176,8 @@ IntensityScaleAndShiftNormalizer_swigregister = _libBornAgainFit.IntensityScaleA
 IntensityScaleAndShiftNormalizer_swigregister(IntensityScaleAndShiftNormalizer)
 
 class ISquaredFunction(_object):
-    """Proxy of C++ ISquaredFunction class"""
+    """Proxy of C++ ISquaredFunction class."""
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, ISquaredFunction, name, value)
     __swig_getmethods__ = {}
@@ -2191,7 +2210,8 @@ ISquaredFunction_swigregister = _libBornAgainFit.ISquaredFunction_swigregister
 ISquaredFunction_swigregister(ISquaredFunction)
 
 class SquaredFunctionDefault(ISquaredFunction):
-    """Proxy of C++ SquaredFunctionDefault class"""
+    """Proxy of C++ SquaredFunctionDefault class."""
+
     __swig_setmethods__ = {}
     for _s in [ISquaredFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -2207,7 +2227,7 @@ class SquaredFunctionDefault(ISquaredFunction):
         this = _libBornAgainFit.new_SquaredFunctionDefault()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainFit.delete_SquaredFunctionDefault
     __del__ = lambda self: None
@@ -2233,7 +2253,8 @@ SquaredFunctionDefault_swigregister = _libBornAgainFit.SquaredFunctionDefault_sw
 SquaredFunctionDefault_swigregister(SquaredFunctionDefault)
 
 class SquaredFunctionSimError(ISquaredFunction):
-    """Proxy of C++ SquaredFunctionSimError class"""
+    """Proxy of C++ SquaredFunctionSimError class."""
+
     __swig_setmethods__ = {}
     for _s in [ISquaredFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -2267,7 +2288,8 @@ SquaredFunctionSimError_swigregister = _libBornAgainFit.SquaredFunctionSimError_
 SquaredFunctionSimError_swigregister(SquaredFunctionSimError)
 
 class SquaredFunctionMeanSquaredError(ISquaredFunction):
-    """Proxy of C++ SquaredFunctionMeanSquaredError class"""
+    """Proxy of C++ SquaredFunctionMeanSquaredError class."""
+
     __swig_setmethods__ = {}
     for _s in [ISquaredFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -2301,7 +2323,8 @@ SquaredFunctionMeanSquaredError_swigregister = _libBornAgainFit.SquaredFunctionM
 SquaredFunctionMeanSquaredError_swigregister(SquaredFunctionMeanSquaredError)
 
 class SquaredFunctionSystematicError(ISquaredFunction):
-    """Proxy of C++ SquaredFunctionSystematicError class"""
+    """Proxy of C++ SquaredFunctionSystematicError class."""
+
     __swig_setmethods__ = {}
     for _s in [ISquaredFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -2335,7 +2358,8 @@ SquaredFunctionSystematicError_swigregister = _libBornAgainFit.SquaredFunctionSy
 SquaredFunctionSystematicError_swigregister(SquaredFunctionSystematicError)
 
 class SquaredFunctionGaussianError(ISquaredFunction):
-    """Proxy of C++ SquaredFunctionGaussianError class"""
+    """Proxy of C++ SquaredFunctionGaussianError class."""
+
     __swig_setmethods__ = {}
     for _s in [ISquaredFunction]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -2369,7 +2393,8 @@ SquaredFunctionGaussianError_swigregister = _libBornAgainFit.SquaredFunctionGaus
 SquaredFunctionGaussianError_swigregister(SquaredFunctionGaussianError)
 
 class ChiSquaredModule(IChiSquaredModule):
-    """Proxy of C++ ChiSquaredModule class"""
+    """Proxy of C++ ChiSquaredModule class."""
+
     __swig_setmethods__ = {}
     for _s in [IChiSquaredModule]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -2388,7 +2413,7 @@ class ChiSquaredModule(IChiSquaredModule):
         this = _libBornAgainFit.new_ChiSquaredModule(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainFit.delete_ChiSquaredModule
     __del__ = lambda self: None
@@ -2414,6 +2439,7 @@ class FitObject(libBornAgainCore.IParameterized):
     C++ includes: FitObject.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [libBornAgainCore.IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -2453,7 +2479,7 @@ class FitObject(libBornAgainCore.IParameterized):
         this = _libBornAgainFit.new_FitObject(simulation, real_data, weight, adjust_detector_to_data)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainFit.delete_FitObject
     __del__ = lambda self: None
@@ -2554,6 +2580,7 @@ class FitOptions(_object):
     C++ includes: FitOptions.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, FitOptions, name, value)
     __swig_getmethods__ = {}
@@ -2570,7 +2597,7 @@ class FitOptions(_object):
         this = _libBornAgainFit.new_FitOptions()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainFit.delete_FitOptions
     __del__ = lambda self: None
@@ -2626,6 +2653,7 @@ class FitParameter(libBornAgainCore.INamed, libBornAgainCore.AttLimits):
     C++ includes: FitParameter.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [libBornAgainCore.INamed, libBornAgainCore.AttLimits]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -2650,7 +2678,7 @@ class FitParameter(libBornAgainCore.INamed, libBornAgainCore.AttLimits):
         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
@@ -2738,6 +2766,7 @@ class FitSuite(libBornAgainCore.IObservable):
     C++ includes: FitSuite.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [libBornAgainCore.IObservable]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -2758,7 +2787,7 @@ class FitSuite(libBornAgainCore.IObservable):
         this = _libBornAgainFit.new_FitSuite()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainFit.delete_FitSuite
     __del__ = lambda self: None
@@ -3161,6 +3190,7 @@ class FitSuiteObjects(libBornAgainCore.IParameterized):
     C++ includes: FitSuiteObjects.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [libBornAgainCore.IParameterized]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -3181,7 +3211,7 @@ class FitSuiteObjects(libBornAgainCore.IParameterized):
         this = _libBornAgainFit.new_FitSuiteObjects()
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainFit.delete_FitSuiteObjects
     __del__ = lambda self: None
@@ -3365,6 +3395,7 @@ class FitSuiteParameters(_object):
     C++ includes: FitSuiteParameters.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, FitSuiteParameters, name, value)
     __swig_getmethods__ = {}
@@ -3381,7 +3412,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
@@ -3716,6 +3747,7 @@ class MinimizerOptions(_object):
     C++ includes: MinimizerOptions.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, MinimizerOptions, name, value)
     __swig_getmethods__ = {}
@@ -3732,7 +3764,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
@@ -3944,6 +3976,7 @@ class MinimizerFactory(_object):
     C++ includes: MinimizerFactory.h
 
     """
+
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, MinimizerFactory, name, value)
     __swig_getmethods__ = {}
@@ -3985,7 +4018,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
@@ -4014,6 +4047,7 @@ class FitStrategyAdjustMinimizer(IFitStrategy):
     C++ includes: FitStrategyAdjustMinimizer.h
 
     """
+
     __swig_setmethods__ = {}
     for _s in [IFitStrategy]:
         __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
@@ -4037,7 +4071,7 @@ class FitStrategyAdjustMinimizer(IFitStrategy):
         this = _libBornAgainFit.new_FitStrategyAdjustMinimizer(*args)
         try:
             self.this.append(this)
-        except:
+        except Exception:
             self.this = this
     __swig_destroy__ = _libBornAgainFit.delete_FitStrategyAdjustMinimizer
     __del__ = lambda self: None
diff --git a/Fit/PythonAPI/libBornAgainFit_wrap.cxx b/Fit/PythonAPI/libBornAgainFit_wrap.cxx
index 528f78ef932341aae9eb5978ba9487715dfacc2b..c038eae3375625f3a04348f6d0f4a628ab7d5fe1 100644
--- a/Fit/PythonAPI/libBornAgainFit_wrap.cxx
+++ b/Fit/PythonAPI/libBornAgainFit_wrap.cxx
@@ -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;
   }
   
@@ -3529,7 +3568,7 @@ static swig_module_info swig_module = {swig_types, 89, 0, 0, 0, 0};
 #endif
 #define SWIG_name    "_libBornAgainFit"
 
-#define SWIGVERSION 0x030007 
+#define SWIGVERSION 0x030008 
 #define SWIG_VERSION SWIGVERSION
 
 
@@ -3775,9 +3814,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()) {
@@ -3869,18 +3910,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
@@ -3937,16 +3967,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
@@ -3996,7 +4030,7 @@ SWIGINTERNINLINE PyObject*
 }
 
 
-namespace swig {  
+namespace swig {
   template <class Type>
   struct noconst_traits {
     typedef Type noconst_type;
@@ -4010,7 +4044,7 @@ namespace swig {
   /*
     type categories
   */
-  struct pointer_category { };  
+  struct pointer_category { };
   struct value_category { };
 
   /*
@@ -4023,12 +4057,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;
@@ -4049,17 +4083,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 { };
 
 }
@@ -4403,6 +4437,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) {
@@ -4777,7 +4817,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)
     {
     }
@@ -4789,7 +4829,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>());
 	}
@@ -4807,7 +4847,7 @@ namespace swig
 
   private:
     PyObject* _seq;
-    int _index;
+    Py_ssize_t _index;
   };
 
   template <class T>
@@ -4828,13 +4868,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)
     {
     }
@@ -4914,6 +4954,7 @@ namespace swig
     difference_type _index;
   };
 
+  // STL container wrapper around a Python sequence
   template <class T>
   struct SwigPySequence_Cont
   {
@@ -4921,8 +4962,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;
@@ -4983,13 +5024,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;
@@ -5009,17 +5050,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);
@@ -5093,10 +5134,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;
@@ -5127,7 +5167,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 >" " >";
@@ -5162,24 +5202,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;
@@ -5188,8 +5224,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){
@@ -5199,8 +5235,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){
@@ -5210,8 +5246,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){
@@ -5221,8 +5257,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){
@@ -5231,6 +5267,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);
     }
@@ -5240,7 +5283,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 > > >" " >";
@@ -5260,24 +5303,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;
@@ -5286,8 +5325,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){
@@ -5297,8 +5336,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){
@@ -5308,8 +5347,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){
@@ -5319,8 +5358,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){
@@ -5329,6 +5368,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);
     }
@@ -5364,17 +5410,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);
@@ -5384,7 +5430,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 >" " >";
@@ -5404,24 +5450,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;
@@ -5430,8 +5472,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){
@@ -5441,8 +5483,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){
@@ -5452,8 +5494,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){
@@ -5463,8 +5505,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){
@@ -5473,6 +5515,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);
     }
@@ -5482,17 +5531,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);
@@ -5502,7 +5551,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 >" " >";
@@ -5522,24 +5571,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;
@@ -5548,8 +5593,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){
@@ -5559,8 +5604,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){
@@ -5570,8 +5615,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){
@@ -5581,8 +5626,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){
@@ -5591,6 +5636,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);
     }
@@ -5618,7 +5670,7 @@ SWIG_AsVal_std_complex_Sl_double_Sg_  (PyObject *o, std::complex<double>* val)
 
 
 SWIGINTERNINLINE PyObject*
-SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/usr/share/swig3.0/typemaps/swigmacros.swg,104,%ifcplusplus@*/
+SWIG_From_std_complex_Sl_double_Sg_  (/*@SWIG:/opt/share/swig/3.0.8/typemaps/swigmacros.swg,104,%ifcplusplus@*/
 
 const std::complex<double>&
 
@@ -5631,17 +5683,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);
@@ -5651,7 +5703,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 > >" " >";
@@ -5671,24 +5723,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;
@@ -5697,8 +5745,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){
@@ -5708,8 +5756,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){
@@ -5719,8 +5767,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){
@@ -5730,8 +5778,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){
@@ -5740,6 +5788,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);
     }
@@ -5801,18 +5856,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);
       }
     }
@@ -5822,6 +5876,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;
@@ -5897,12 +5975,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 {
@@ -5919,17 +5997,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);
@@ -5939,7 +6017,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 >" " >";
@@ -5959,24 +6037,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;
@@ -5985,8 +6059,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){
@@ -5996,8 +6070,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){
@@ -6007,8 +6081,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){
@@ -6018,8 +6092,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){
@@ -6028,6 +6102,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);
     }
@@ -6300,14 +6381,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);
   }
@@ -6419,14 +6500,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);
   }
@@ -6970,14 +7051,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);
   }
@@ -7124,34 +7205,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 ;
@@ -7206,20 +7259,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 > *""'"); 
@@ -7235,19 +7285,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());
@@ -7257,10 +7296,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;
 }
 
@@ -7270,17 +7307,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 > *""'"); 
@@ -7296,8 +7336,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());
@@ -7307,27 +7358,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) {
       {
@@ -7340,14 +7393,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) {
       {
@@ -7360,10 +7413,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);
           }
         }
       }
@@ -7373,8 +7426,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;
 }
 
@@ -7455,6 +7508,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;
@@ -7527,7 +7583,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 &""'"); 
@@ -7633,20 +7689,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) {
       {
@@ -7659,7 +7715,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) {
       {
@@ -7719,20 +7775,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) {
       {
@@ -7745,7 +7801,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) {
       {
@@ -7815,20 +7871,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) {
       {
@@ -7841,14 +7897,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);
@@ -7858,7 +7914,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) {
       {
@@ -7887,6 +7943,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 ;
@@ -7941,7 +8025,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 &""'"); 
@@ -8005,42 +8089,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 );
@@ -8059,28 +8122,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 ;
@@ -8173,6 +8214,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 ;
@@ -8338,20 +8422,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;
@@ -8364,7 +8448,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;
@@ -8424,14 +8508,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);
   }
@@ -8450,7 +8534,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);
@@ -8643,20 +8727,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) {
       {
@@ -8670,7 +8754,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) {
       {
@@ -8804,20 +8888,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;
@@ -8836,7 +8920,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;
@@ -9039,34 +9123,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 ;
@@ -9121,20 +9177,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 > > *""'"); 
@@ -9150,19 +9203,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());
@@ -9172,10 +9214,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;
 }
 
@@ -9185,17 +9225,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 > > *""'"); 
@@ -9211,8 +9254,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());
@@ -9222,27 +9276,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) {
       {
@@ -9255,14 +9311,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) {
       {
@@ -9275,10 +9331,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);
           }
         }
       }
@@ -9288,8 +9344,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;
 }
 
@@ -9370,6 +9426,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;
@@ -9442,7 +9501,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 &""'"); 
@@ -9548,20 +9607,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) {
       {
@@ -9574,7 +9633,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) {
       {
@@ -9626,7 +9685,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;
@@ -9634,20 +9693,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) {
       {
@@ -9660,7 +9719,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) {
       {
@@ -9708,7 +9767,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 &""'"); 
@@ -9735,20 +9794,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) {
       {
@@ -9761,14 +9820,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);
@@ -9778,7 +9837,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) {
       {
@@ -9786,7 +9845,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);
@@ -9805,6 +9864,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 ;
@@ -9822,7 +9909,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 &""'"); 
@@ -9864,7 +9951,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 &""'"); 
@@ -9928,27 +10015,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 ;
@@ -9982,28 +10048,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 ;
@@ -10096,6 +10140,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 ;
@@ -10261,20 +10348,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;
@@ -10287,7 +10374,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;
@@ -10331,7 +10418,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 &""'"); 
@@ -10352,14 +10439,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);
   }
@@ -10378,7 +10465,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);
@@ -10391,7 +10478,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);
@@ -10427,7 +10514,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 &""'"); 
@@ -10462,7 +10549,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;
@@ -10484,7 +10571,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;
@@ -10517,7 +10604,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 &""'"); 
@@ -10563,7 +10650,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 &""'"); 
@@ -10584,20 +10671,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) {
       {
@@ -10611,7 +10698,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) {
       {
@@ -10619,7 +10706,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);
@@ -10670,7 +10757,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 &""'"); 
@@ -10732,7 +10819,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 &""'"); 
@@ -10753,27 +10840,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);
@@ -10783,7 +10870,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;
@@ -10795,7 +10882,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);
@@ -10973,39 +11060,11 @@ SWIGINTERN PyObject *_wrap_vector_integer_t___len__(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"O:vector_integer_t___len__",&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___len__" "', argument " "1"" of type '" "std::vector< int > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
-  result = std_vector_Sl_int_Sg____len__((std::vector< int > const *)arg1);
-  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-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());
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_integer_t___len__" "', argument " "1"" of type '" "std::vector< int > const *""'"); 
   }
-  
-  resultobj = SWIG_From_int(static_cast< int >(result));
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  result = std_vector_Sl_int_Sg____len__((std::vector< int > const *)arg1);
+  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
   return NULL;
@@ -11066,20 +11125,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 > *""'"); 
@@ -11095,19 +11151,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());
@@ -11117,10 +11162,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;
 }
 
@@ -11130,17 +11173,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 > *""'"); 
@@ -11156,8 +11202,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());
@@ -11167,27 +11224,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) {
       {
@@ -11200,14 +11259,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) {
       {
@@ -11220,10 +11279,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);
           }
         }
       }
@@ -11233,8 +11292,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;
 }
 
@@ -11315,6 +11374,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;
@@ -11387,7 +11449,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 &""'"); 
@@ -11493,20 +11555,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) {
       {
@@ -11519,7 +11581,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) {
       {
@@ -11579,20 +11641,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) {
       {
@@ -11605,7 +11667,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) {
       {
@@ -11675,20 +11737,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) {
       {
@@ -11701,14 +11763,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);
@@ -11718,7 +11780,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) {
       {
@@ -11747,6 +11809,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 ;
@@ -11801,7 +11891,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 &""'"); 
@@ -11865,27 +11955,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 ;
@@ -11919,28 +11988,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 ;
@@ -12033,6 +12080,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 ;
@@ -12198,20 +12288,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;
@@ -12224,7 +12314,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;
@@ -12284,14 +12374,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);
   }
@@ -12310,7 +12400,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);
@@ -12503,20 +12593,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) {
       {
@@ -12530,7 +12620,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) {
       {
@@ -12664,20 +12754,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;
@@ -12696,7 +12786,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;
@@ -12899,34 +12989,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 ;
@@ -12981,20 +13043,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 > *""'"); 
@@ -13010,19 +13069,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());
@@ -13032,10 +13080,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;
 }
 
@@ -13045,17 +13091,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 > *""'"); 
@@ -13071,8 +13120,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());
@@ -13082,27 +13142,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) {
       {
@@ -13115,14 +13177,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) {
       {
@@ -13135,10 +13197,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);
           }
         }
       }
@@ -13148,8 +13210,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;
 }
 
@@ -13230,6 +13292,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;
@@ -13302,7 +13367,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 &""'"); 
@@ -13408,20 +13473,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) {
       {
@@ -13434,7 +13499,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) {
       {
@@ -13494,20 +13559,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) {
       {
@@ -13520,7 +13585,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) {
       {
@@ -13590,20 +13655,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) {
       {
@@ -13616,14 +13681,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);
@@ -13633,7 +13698,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) {
       {
@@ -13653,12 +13718,40 @@ SWIGINTERN PyObject *_wrap_vector_longinteger_t___setitem__(PyObject *self, PyOb
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'vector_longinteger_t___setitem__'.\n"
-    "  Possible C/C++ prototypes are:\n"
-    "    std::vector< unsigned long >::__setitem__(PySliceObject *,std::vector< unsigned long,std::allocator< unsigned long > > const &)\n"
-    "    std::vector< unsigned long >::__setitem__(PySliceObject *)\n"
-    "    std::vector< unsigned long >::__setitem__(std::vector< unsigned long >::difference_type,std::vector< unsigned long >::value_type const &)\n");
-  return 0;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'vector_longinteger_t___setitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< unsigned long >::__setitem__(PySliceObject *,std::vector< unsigned long,std::allocator< unsigned long > > const &)\n"
+    "    std::vector< unsigned long >::__setitem__(PySliceObject *)\n"
+    "    std::vector< unsigned long >::__setitem__(std::vector< unsigned long >::difference_type,std::vector< unsigned long >::value_type const &)\n");
+  return 0;
+}
+
+
+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;
 }
 
 
@@ -13716,7 +13809,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 &""'"); 
@@ -13780,27 +13873,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 ;
@@ -13834,28 +13906,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 ;
@@ -13948,6 +13998,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 ;
@@ -14113,20 +14206,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;
@@ -14139,7 +14232,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;
@@ -14199,14 +14292,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);
   }
@@ -14225,7 +14318,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);
@@ -14418,20 +14511,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) {
       {
@@ -14445,7 +14538,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) {
       {
@@ -14579,20 +14672,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;
@@ -14611,7 +14704,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;
@@ -14814,34 +14907,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 ;
@@ -14896,20 +14961,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 > > *""'"); 
@@ -14925,19 +14987,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());
@@ -14947,10 +14998,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;
 }
 
@@ -14960,17 +15009,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 > > *""'"); 
@@ -14986,8 +15038,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());
@@ -14997,27 +15060,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) {
       {
@@ -15030,14 +15095,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) {
       {
@@ -15050,10 +15115,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);
           }
         }
       }
@@ -15063,8 +15128,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;
 }
 
@@ -15145,6 +15210,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;
@@ -15217,7 +15285,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 &""'"); 
@@ -15323,20 +15391,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) {
       {
@@ -15349,7 +15417,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) {
       {
@@ -15409,20 +15477,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) {
       {
@@ -15435,7 +15503,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) {
       {
@@ -15505,20 +15573,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) {
       {
@@ -15531,14 +15599,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);
@@ -15548,7 +15616,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) {
       {
@@ -15577,6 +15645,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 ;
@@ -15631,7 +15727,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 &""'"); 
@@ -15695,27 +15791,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 ;
@@ -15749,29 +15824,30 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_complex_t_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+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 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
-  SwigValueWrapper< std::allocator< std::complex< double > > > result;
+  std::vector< std::complex< double > >::iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_complex_t_get_allocator",&obj0)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_complex_t_begin",&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 *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_complex_t_begin" "', argument " "1"" of type '" "std::vector< std::complex< double > > *""'"); 
   }
   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 );
+  result = (arg1)->begin();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< std::complex< double > >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_complex_t_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_vector_complex_t_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   std::vector< std::complex< double > > *arg1 = (std::vector< std::complex< double > > *) 0 ;
   void *argp1 = 0 ;
@@ -15779,13 +15855,13 @@ SWIGINTERN PyObject *_wrap_vector_complex_t_begin(PyObject *SWIGUNUSEDPARM(self)
   PyObject * obj0 = 0 ;
   std::vector< std::complex< double > >::iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_complex_t_begin",&obj0)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_complex_t_end",&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_begin" "', argument " "1"" of type '" "std::vector< std::complex< double > > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_complex_t_end" "', argument " "1"" of type '" "std::vector< std::complex< double > > *""'"); 
   }
   arg1 = reinterpret_cast< std::vector< std::complex< double > > * >(argp1);
-  result = (arg1)->begin();
+  result = (arg1)->end();
   resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< std::complex< double > >::iterator & >(result)),
     swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
@@ -15794,22 +15870,45 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_complex_t_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_vector_complex_t_rbegin(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 > >::reverse_iterator result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_complex_t_rbegin",&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_rbegin" "', argument " "1"" of type '" "std::vector< std::complex< double > > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< std::complex< double > > * >(argp1);
+  result = (arg1)->rbegin();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< std::complex< double > >::reverse_iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vector_complex_t_rend(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 > >::iterator result;
+  std::vector< std::complex< double > >::reverse_iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_complex_t_end",&obj0)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"O:vector_complex_t_rend",&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_end" "', argument " "1"" of type '" "std::vector< std::complex< double > > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vector_complex_t_rend" "', argument " "1"" of type '" "std::vector< std::complex< double > > *""'"); 
   }
   arg1 = reinterpret_cast< std::vector< std::complex< double > > * >(argp1);
-  result = (arg1)->end();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< std::complex< double > >::iterator & >(result)),
+  result = (arg1)->rend();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< std::complex< double > >::reverse_iterator & >(result)),
     swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
@@ -15817,46 +15916,43 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_complex_t_rbegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+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 ;
-  std::vector< std::complex< double > >::reverse_iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_complex_t_rbegin",&obj0)) SWIG_fail;
+  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_rbegin" "', argument " "1"" of type '" "std::vector< std::complex< double > > *""'"); 
+    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);
-  result = (arg1)->rbegin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< std::complex< double > >::reverse_iterator & >(result)),
-    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_vector_complex_t_rend(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+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 ;
-  std::vector< std::complex< double > >::reverse_iterator result;
+  SwigValueWrapper< std::allocator< std::complex< double > > > result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:vector_complex_t_rend",&obj0)) SWIG_fail;
+  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_rend" "', argument " "1"" of type '" "std::vector< std::complex< double > > *""'"); 
+    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 = (arg1)->rend();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< std::complex< double > >::reverse_iterator & >(result)),
-    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
+  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;
@@ -16028,20 +16124,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;
@@ -16054,7 +16150,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;
@@ -16114,14 +16210,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);
   }
@@ -16140,7 +16236,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);
@@ -16333,20 +16429,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) {
       {
@@ -16360,7 +16456,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) {
       {
@@ -16494,20 +16590,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;
@@ -16526,7 +16622,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;
@@ -16729,34 +16825,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 ;
@@ -16811,20 +16879,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 > *""'"); 
@@ -16840,19 +16905,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());
@@ -16862,10 +16916,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;
 }
 
@@ -16875,17 +16927,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 > *""'"); 
@@ -16901,8 +16956,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());
@@ -16912,27 +16978,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) {
       {
@@ -16945,14 +17013,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) {
       {
@@ -16965,10 +17033,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);
           }
         }
       }
@@ -16978,8 +17046,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;
 }
 
@@ -17060,6 +17128,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;
@@ -17132,7 +17203,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 &""'"); 
@@ -17238,20 +17309,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) {
       {
@@ -17264,7 +17335,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) {
       {
@@ -17324,20 +17395,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) {
       {
@@ -17350,7 +17421,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) {
       {
@@ -17425,20 +17496,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) {
       {
@@ -17451,14 +17522,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);
@@ -17468,7 +17539,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) {
       {
@@ -17495,6 +17566,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 ;
@@ -17554,7 +17653,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 &""'"); 
@@ -17618,27 +17717,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 ;
@@ -17672,28 +17750,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 ;
@@ -17786,6 +17842,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 ;
@@ -17951,20 +18050,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;
@@ -17977,7 +18076,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;
@@ -18042,14 +18141,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);
   }
@@ -18068,7 +18167,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);
@@ -18274,20 +18373,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) {
       {
@@ -18301,7 +18400,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) {
       {
@@ -18443,20 +18542,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;
@@ -18473,7 +18572,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;
@@ -18891,7 +18990,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;
@@ -18944,7 +19043,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;
@@ -19060,14 +19159,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);
   }
@@ -19371,14 +19470,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);
   }
@@ -19464,14 +19563,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);
   }
@@ -20540,14 +20639,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);
   }
@@ -20805,14 +20904,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);
   }
@@ -21091,14 +21190,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);
   }
@@ -21323,14 +21422,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);
   }
@@ -21946,14 +22045,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);
   }
@@ -22222,14 +22321,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);
   }
@@ -22523,14 +22622,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);
   }
@@ -23023,14 +23122,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_FitParameter(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);
   }
@@ -23555,14 +23654,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);
   }
@@ -23830,14 +23929,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuite_addFitParameter(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);
   }
@@ -24179,14 +24278,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);
   }
@@ -24382,7 +24481,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 &""'"); 
@@ -24504,14 +24603,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);
   }
@@ -24603,14 +24702,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);
   }
@@ -24702,14 +24801,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);
   }
@@ -25040,14 +25139,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);
   }
@@ -25139,14 +25238,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);
   }
@@ -25238,14 +25337,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);
   }
@@ -25424,14 +25523,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);
   }
@@ -25616,14 +25715,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);
   }
@@ -25715,14 +25814,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);
   }
@@ -25814,14 +25913,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);
   }
@@ -26190,14 +26289,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuiteParameters_addParameter(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);
   }
@@ -26352,14 +26451,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuiteParameters_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);
   }
@@ -26446,7 +26545,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 &""'"); 
@@ -26467,14 +26566,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);
   }
@@ -26498,7 +26597,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);
@@ -26530,7 +26629,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;
@@ -26554,7 +26653,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 &""'"); 
@@ -26589,7 +26688,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;
@@ -26693,14 +26792,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);
   }
@@ -26777,14 +26876,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);
   }
@@ -26940,14 +27039,14 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_FitSuiteParameters_valuesAreDifferent(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);
   }
@@ -27079,7 +27178,7 @@ SWIGINTERN PyObject *_wrap_FitSuiteParameters_setParametersFixed(PyObject *SWIGU
   }
   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_setParametersFixed" "', argument " "2"" of type '" "std::vector< std::string,std::allocator< std::string > > const &""'"); 
@@ -27169,14 +27268,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);
   }
@@ -27424,14 +27523,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);
   }
@@ -27629,14 +27728,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);
   }
@@ -27699,14 +27798,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);
   }
@@ -27769,14 +27868,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);
   }
@@ -27877,7 +27976,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 &""'"); 
@@ -27903,14 +28002,14 @@ 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);
   }
@@ -27930,7 +28029,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) {
       {
@@ -27964,7 +28063,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 &""'"); 
@@ -27975,7 +28074,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 &""'"); 
@@ -28538,14 +28637,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);
   }
@@ -28763,14 +28862,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);
   }
@@ -28985,14 +29084,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);
   }
@@ -29374,14 +29473,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);
   }
@@ -29632,14 +29731,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);
   }
@@ -29949,14 +30048,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);
   }
@@ -30121,11 +30220,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"
@@ -30141,16 +30239,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"
@@ -30182,11 +30281,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"
@@ -30202,16 +30300,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"
@@ -30243,11 +30342,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"
@@ -30263,16 +30361,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"
@@ -30304,11 +30403,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"
@@ -30324,16 +30422,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"
@@ -30365,11 +30464,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"
@@ -30385,16 +30483,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"
@@ -30426,11 +30525,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"
@@ -30446,16 +30544,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"
@@ -32721,10 +32820,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/Fit/PythonAPI/libBornAgainFit_wrap.h b/Fit/PythonAPI/libBornAgainFit_wrap.h
index 1a057689d5735ec407584282287e0196bb5507d7..718336e1d7d8207a58ce326d8315db2f22642a5d 100644
--- a/Fit/PythonAPI/libBornAgainFit_wrap.h
+++ b/Fit/PythonAPI/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/Tests/FunctionalTests/TestPyCore/layerwithroughness.py b/Tests/FunctionalTests/TestPyCore/layerwithroughness.py
index 8a1f6936543dffb142b8eee69013b9c3dc725081..d64aca65e35fcb10db72271f74f42f1fcc1d47c8 100644
--- a/Tests/FunctionalTests/TestPyCore/layerwithroughness.py
+++ b/Tests/FunctionalTests/TestPyCore/layerwithroughness.py
@@ -47,14 +47,14 @@ def RunSimulation():
     my_sample.addLayerWithTopRoughness(l_substrate, roughness)
     my_sample.setCrossCorrLength(1e-4)
 
-
     # build and run experiment
     simulation = GISASSimulation()
     simulation.setDetectorParameters(100, -0.5*degree, 0.5*degree, 100, 0.0*degree, 1.0*degree)
     simulation.setBeamParameters(1.0*angstrom, 0.2*degree, 0.0*degree)
     simulation.setSample(my_sample)
     simulation.runSimulation()
-    ## intensity data
+    
+    # intensity data
     return simulation.getIntensityData()
 
 
@@ -65,18 +65,20 @@ def runTest():
     result = RunSimulation()
     reference = get_reference_data("roughness01_reference.int.gz")
 
+    # IntensityDataIOFactory.writeIntensityData(result, "roughness01_reference.int.gz")
+
     diff = IntensityDataFunctions.getRelativeDifference(result, reference)
 
     status = "OK"
-    if(diff > 2e-10 or numpy.isnan(diff)): status = "FAILED"
+    if diff > 2e-10 or numpy.isnan(diff): status = "FAILED"
     return "LayerWithRoughness", "Layers with correlated roughness", diff, status
 
 
-#-------------------------------------------------------------
+# -------------------------------------------------------------
 # main()
-#-------------------------------------------------------------
+# -------------------------------------------------------------
 if __name__ == '__main__':
     name, description, diff, status = runTest()
     print(name, description, diff, status)
-    if("FAILED" in status):
+    if "FAILED" in status:
         exit(1)
diff --git a/Tests/FunctionalTests/TestPyCore/mesocrystal1.py b/Tests/FunctionalTests/TestPyCore/mesocrystal1.py
index 9a67fe3b760c32e6c22802b08bd8e3a502be64e1..c3c5cf80f6e8c790c4b04548235b6170173a3fbc 100644
--- a/Tests/FunctionalTests/TestPyCore/mesocrystal1.py
+++ b/Tests/FunctionalTests/TestPyCore/mesocrystal1.py
@@ -82,7 +82,7 @@ class MySampleBuilder(ISampleBuilder):
         alpha_start = - (n_alpha_rotation_steps/2.0)*alpha_step
 
         phi_step = 2*numpy.pi/3.0/n_max_phi_rotation_steps
-        phi_start = 0.0;
+        phi_start = 0.0
         for i in range(0, n_max_phi_rotation_steps):
             for j in range(0, n_alpha_rotation_steps):
 
@@ -157,14 +157,16 @@ def runTest():
     # setting detector axis as in reference data
     simulation.setDetectorParameters(reference)
 
-    #running simulation
+    # running simulation
     simulation.runSimulation()
     result = simulation.getIntensityData()
 
+    # IntensityDataIOFactory.writeIntensityData(result, "mesocrystal01_reference.int.gz")
+
     diff = IntensityDataFunctions.getRelativeDifference(result, reference)
 
     status = "OK"
-    if(diff > 1e-10 or numpy.isnan(diff)):
+    if diff > 1e-10 or numpy.isnan(diff):
         status = "FAILED"
     return "MesoCrystal1", "Mesocrystal simulation", diff, status
 
@@ -174,12 +176,12 @@ def createSimulation():
     simulation = GISASSimulation()
     simulation.setBeamParameters(1.77*angstrom, 0.4*degree, 0.0*degree)
     simulation.setBeamIntensity(5.0090e+12)
-    #simulation.setDetectorResolutionFunction(ResolutionFunction2DGaussian(0.0002, 0.0002))
+    # simulation.setDetectorResolutionFunction(ResolutionFunction2DGaussian(0.0002, 0.0002))
     return simulation
 
 
 if __name__ == '__main__':
     name, description, diff, status = runTest()
     print(name, description, diff, status)
-    if("FAILED" in status):
+    if "FAILED" in status:
         exit(1)
diff --git a/Tests/ReferenceData/BornAgain/mesocrystal01_reference.int.gz b/Tests/ReferenceData/BornAgain/mesocrystal01_reference.int.gz
index 9153e0643aa9200cabc0d3e501fae6bdd670fbb3..256f8fe5c566305738e852a630a29d16da23c1b3 100644
Binary files a/Tests/ReferenceData/BornAgain/mesocrystal01_reference.int.gz and b/Tests/ReferenceData/BornAgain/mesocrystal01_reference.int.gz differ
diff --git a/Tests/ReferenceData/BornAgain/ref_MesoCrystal.int.gz b/Tests/ReferenceData/BornAgain/ref_MesoCrystal.int.gz
index f0faf5a0ed2879d3eeb855440474ac5d9c882b33..31bc8c12698a8a6289e45e8f475b1420dfe57e30 100644
Binary files a/Tests/ReferenceData/BornAgain/ref_MesoCrystal.int.gz and b/Tests/ReferenceData/BornAgain/ref_MesoCrystal.int.gz differ
diff --git a/Tests/ReferenceData/BornAgain/ref_MultiLayerWithRoughness.int.gz b/Tests/ReferenceData/BornAgain/ref_MultiLayerWithRoughness.int.gz
index 33389c83c7cdb1edad8a1a06e02f3caee1aab219..7a4163660a47596f1fb57aede9612aa364360add 100644
Binary files a/Tests/ReferenceData/BornAgain/ref_MultiLayerWithRoughness.int.gz and b/Tests/ReferenceData/BornAgain/ref_MultiLayerWithRoughness.int.gz differ
diff --git a/Tests/ReferenceData/BornAgain/roughness01_reference.int.gz b/Tests/ReferenceData/BornAgain/roughness01_reference.int.gz
index 331d4ac926d59da6339a371593f293fe9527878f..07add92f881abc6feb8232379290fbc7c409c38c 100644
Binary files a/Tests/ReferenceData/BornAgain/roughness01_reference.int.gz and b/Tests/ReferenceData/BornAgain/roughness01_reference.int.gz differ
diff --git a/ThirdParty/CMakeLists.txt b/ThirdParty/CMakeLists.txt
index df37235aa113b95471b6a30e3d855d8cd642042b..7a2686843c3e109997385fe6405ba74b8daf3671 100644
--- a/ThirdParty/CMakeLists.txt
+++ b/ThirdParty/CMakeLists.txt
@@ -2,3 +2,4 @@
 
 add_subdirectory(gtest)
 add_subdirectory(RootMinimizers)
+add_subdirectory(Faddeeva)
diff --git a/ThirdParty/Faddeeva/CMakeLists.txt b/ThirdParty/Faddeeva/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..98277d1ce39bd12502a9192f28fe0c4de4631eae
--- /dev/null
+++ b/ThirdParty/Faddeeva/CMakeLists.txt
@@ -0,0 +1,23 @@
+############################################################################
+# CMakeLists.txt file for building libFaddeeva package
+############################################################################
+set(library_name Faddeeva)
+
+# --- source and include files ---------
+set(include_dirs
+    ${CMAKE_CURRENT_SOURCE_DIR}
+)
+include_directories(${include_dirs})
+
+file(GLOB source_files "*.cc")
+
+file(GLOB include_files "*.hh")
+
+# --- making library ------------
+add_library(
+    ${library_name}
+    STATIC
+    ${source_files} ${include_files}
+)
+set(${library_name}_INCLUDE_DIR ${include_dirs} CACHE INTERNAL "")
+set(${library_name}_LIBRARY ${library_name} CACHE INTERNAL "")
diff --git a/ThirdParty/Faddeeva/Faddeeva.cc b/ThirdParty/Faddeeva/Faddeeva.cc
new file mode 100644
index 0000000000000000000000000000000000000000..e48ef3acbb19c02229e7e2301c3cc50707cf8c40
--- /dev/null
+++ b/ThirdParty/Faddeeva/Faddeeva.cc
@@ -0,0 +1,2517 @@
+//  -*- mode:c++; tab-width:2; indent-tabs-mode:nil;  -*-
+
+/* Copyright (c) 2012 Massachusetts Institute of Technology
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/* (Note that this file can be compiled with either C++, in which
+    case it uses C++ std::complex<double>, or C, in which case it
+    uses C99 double complex.) */
+
+/* Available at: http://ab-initio.mit.edu/Faddeeva
+
+   Computes various error functions (erf, erfc, erfi, erfcx),
+   including the Dawson integral, in the complex plane, based
+   on algorithms for the computation of the Faddeeva function
+              w(z) = exp(-z^2) * erfc(-i*z).
+   Given w(z), the error functions are mostly straightforward
+   to compute, except for certain regions where we have to
+   switch to Taylor expansions to avoid cancellation errors
+   [e.g. near the origin for erf(z)].
+
+   To compute the Faddeeva function, we use a combination of two
+   algorithms:
+
+   For sufficiently large |z|, we use a continued-fraction expansion
+   for w(z) similar to those described in:
+
+      Walter Gautschi, "Efficient computation of the complex error
+      function," SIAM J. Numer. Anal. 7(1), pp. 187-198 (1970)
+
+      G. P. M. Poppe and C. M. J. Wijers, "More efficient computation
+      of the complex error function," ACM Trans. Math. Soft. 16(1),
+      pp. 38-46 (1990).
+
+   Unlike those papers, however, we switch to a completely different
+   algorithm for smaller |z|:
+
+      Mofreh R. Zaghloul and Ahmed N. Ali, "Algorithm 916: Computing the
+      Faddeyeva and Voigt Functions," ACM Trans. Math. Soft. 38(2), 15
+      (2011).
+
+   (I initially used this algorithm for all z, but it turned out to be
+    significantly slower than the continued-fraction expansion for
+    larger |z|.  On the other hand, it is competitive for smaller |z|,
+    and is significantly more accurate than the Poppe & Wijers code
+    in some regions, e.g. in the vicinity of z=1+1i.)
+
+   Note that this is an INDEPENDENT RE-IMPLEMENTATION of these algorithms,
+   based on the description in the papers ONLY.  In particular, I did
+   not refer to the authors' Fortran or Matlab implementations, respectively,
+   (which are under restrictive ACM copyright terms and therefore unusable
+    in free/open-source software).
+
+   Steven G. Johnson, Massachusetts Institute of Technology
+   http://math.mit.edu/~stevenj
+   October 2012.
+
+    -- Note that Algorithm 916 assumes that the erfc(x) function,
+       or rather the scaled function erfcx(x) = exp(x*x)*erfc(x),
+       is supplied for REAL arguments x.   I originally used an
+       erfcx routine derived from DERFC in SLATEC, but I have
+       since replaced it with a much faster routine written by
+       me which uses a combination of continued-fraction expansions
+       and a lookup table of Chebyshev polynomials.  For speed,
+       I implemented a similar algorithm for Im[w(x)] of real x,
+       since this comes up frequently in the other error functions.
+
+   A small test program is included the end, which checks
+   the w(z) etc. results against several known values.  To compile
+   the test function, compile with -DTEST_FADDEEVA (that is,
+   #define TEST_FADDEEVA).
+
+   If HAVE_CONFIG_H is #defined (e.g. by compiling with -DHAVE_CONFIG_H),
+   then we #include "config.h", which is assumed to be a GNU autoconf-style
+   header defining HAVE_* macros to indicate the presence of features. In
+   particular, if HAVE_ISNAN and HAVE_ISINF are #defined, we use those
+   functions in math.h instead of defining our own, and if HAVE_ERF and/or
+   HAVE_ERFC are defined we use those functions from <cmath> for erf and
+   erfc of real arguments, respectively, instead of defining our own.
+
+   REVISION HISTORY:
+       4 October 2012: Initial public release (SGJ)
+       5 October 2012: Revised (SGJ) to fix spelling error,
+                       start summation for large x at round(x/a) (> 1)
+                       rather than ceil(x/a) as in the original
+                       paper, which should slightly improve performance
+                       (and, apparently, slightly improves accuracy)
+      19 October 2012: Revised (SGJ) to fix bugs for large x, large -y,
+                       and 15<x<26. Performance improvements. Prototype
+                       now supplies default value for relerr.
+      24 October 2012: Switch to continued-fraction expansion for
+                       sufficiently large z, for performance reasons.
+                       Also, avoid spurious overflow for |z| > 1e154.
+                       Set relerr argument to min(relerr,0.1).
+      27 October 2012: Enhance accuracy in Re[w(z)] taken by itself,
+                       by switching to Alg. 916 in a region near
+                       the real-z axis where continued fractions
+                       have poor relative accuracy in Re[w(z)].  Thanks
+                       to M. Zaghloul for the tip.
+      29 October 2012: Replace SLATEC-derived erfcx routine with
+                       completely rewritten code by me, using a very
+                       different algorithm which is much faster.
+      30 October 2012: Implemented special-case code for real z
+                       (where real part is exp(-x^2) and imag part is
+                        Dawson integral), using algorithm similar to erfx.
+                       Export ImFaddeeva_w function to make Dawson's
+                       integral directly accessible.
+      3 November 2012: Provide implementations of erf, erfc, erfcx,
+                       and Dawson functions in Faddeeva:: namespace,
+                       in addition to Faddeeva::w.  Provide header
+                       file Faddeeva.hh.
+      4 November 2012: Slightly faster erf for real arguments.
+                       Updated MATLAB and Octave plugins.
+     27 November 2012: Support compilation with either C++ or
+                       plain C (using C99 complex numbers).
+                       For real x, use standard-library erf(x)
+                       and erfc(x) if available (for C99 or C++11).
+                       #include "config.h" if HAVE_CONFIG_H is #defined.
+     15 December 2012: Portability fixes (copysign, Inf/NaN creation),
+                       use CMPLX/__builtin_complex if available in C,
+                       slight accuracy improvements to erf and dawson
+                       functions near the origin.  Use gnulib functions
+                       if GNULIB_NAMESPACE is defined.
+     18 December 2012: Slight tweaks (remove recomputation of x*x in Dawson)
+          12 May 2015: Bugfix for systems lacking copysign function.
+*/
+
+/////////////////////////////////////////////////////////////////////////
+/* If this file is compiled as a part of a larger project,
+   support using an autoconf-style config.h header file
+   (with various "HAVE_*" #defines to indicate features)
+   if HAVE_CONFIG_H is #defined (in GNU autotools style). */
+
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
+
+/////////////////////////////////////////////////////////////////////////
+// macros to allow us to use either C++ or C (with C99 features)
+
+#ifdef __cplusplus
+
+#  include "Faddeeva.hh"
+
+#  include <cfloat>
+#  include <cmath>
+#  include <limits>
+using namespace std;
+
+// use std::numeric_limits, since 1./0. and 0./0. fail with some compilers (MS)
+#  define Inf numeric_limits<double>::infinity()
+#  define NaN numeric_limits<double>::quiet_NaN()
+
+typedef complex<double> cmplx;
+
+// Use C-like complex syntax, since the C syntax is more restrictive
+#  define cexp(z) exp(z)
+#  define creal(z) real(z)
+#  define cimag(z) imag(z)
+#  define cpolar(r,t) polar(r,t)
+
+#  define C(a,b) cmplx(a,b)
+
+#  define FADDEEVA(name) Faddeeva::name
+#  define FADDEEVA_RE(name) Faddeeva::name
+
+// isnan/isinf were introduced in C++11
+#  if (__cplusplus < 201103L) && (!defined(HAVE_ISNAN) || !defined(HAVE_ISINF))
+static inline bool my_isnan(double x) { return x != x; }
+#    define isnan my_isnan
+static inline bool my_isinf(double x) { return 1/x == 0.; }
+#    define isinf my_isinf
+#  elif (__cplusplus >= 201103L)
+// g++ gets confused between the C and C++ isnan/isinf functions
+#    define isnan std::isnan
+#    define isinf std::isinf
+#  endif
+
+// copysign was introduced in C++11 (and is also in POSIX and C99)
+#  if defined(_WIN32) || defined(__WIN32__)
+#    define copysign _copysign // of course MS had to be different
+#  elif defined(GNULIB_NAMESPACE) // we are using using gnulib <cmath>
+#    define copysign GNULIB_NAMESPACE::copysign
+#  elif (__cplusplus < 201103L) && !defined(HAVE_COPYSIGN) && !defined(__linux__) && !(defined(__APPLE__) && defined(__MACH__)) && !defined(_AIX)
+static inline double my_copysign(double x, double y) { return x<0 != y<0 ? -x : x; }
+#    define copysign my_copysign
+#  endif
+
+// If we are using the gnulib <cmath> (e.g. in the GNU Octave sources),
+// gnulib generates a link warning if we use ::floor instead of gnulib::floor.
+// This warning is completely innocuous because the only difference between
+// gnulib::floor and the system ::floor (and only on ancient OSF systems)
+// has to do with floor(-0), which doesn't occur in the usage below, but
+// the Octave developers prefer that we silence the warning.
+#  ifdef GNULIB_NAMESPACE
+#    define floor GNULIB_NAMESPACE::floor
+#  endif
+
+#else // !__cplusplus, i.e. pure C (requires C99 features)
+
+#  include "Faddeeva.h"
+
+#  define _GNU_SOURCE // enable GNU libc NAN extension if possible
+
+#  include <float.h>
+#  include <math.h>
+
+typedef double complex cmplx;
+
+#  define FADDEEVA(name) Faddeeva_ ## name
+#  define FADDEEVA_RE(name) Faddeeva_ ## name ## _re
+
+/* Constructing complex numbers like 0+i*NaN is problematic in C99
+   without the C11 CMPLX macro, because 0.+I*NAN may give NaN+i*NAN if
+   I is a complex (rather than imaginary) constant.  For some reason,
+   however, it works fine in (pre-4.7) gcc if I define Inf and NaN as
+   1/0 and 0/0 (and only if I compile with optimization -O1 or more),
+   but not if I use the INFINITY or NAN macros. */
+
+/* __builtin_complex was introduced in gcc 4.7, but the C11 CMPLX macro
+   may not be defined unless we are using a recent (2012) version of
+   glibc and compile with -std=c11... note that icc lies about being
+   gcc and probably doesn't have this builtin(?), so exclude icc explicitly */
+#  if !defined(CMPLX) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !(defined(__ICC) || defined(__INTEL_COMPILER))
+#    define CMPLX(a,b) __builtin_complex((double) (a), (double) (b))
+#  endif
+
+#  ifdef CMPLX // C11
+#    define C(a,b) CMPLX(a,b)
+#    define Inf INFINITY // C99 infinity
+#    ifdef NAN // GNU libc extension
+#      define NaN NAN
+#    else
+#      define NaN (0./0.) // NaN
+#    endif
+#  else
+#    define C(a,b) ((a) + I*(b))
+#    define Inf (1./0.)
+#    define NaN (0./0.)
+#  endif
+
+static inline cmplx cpolar(double r, double t)
+{
+  if (r == 0.0 && !isnan(t))
+    return 0.0;
+  else
+    return C(r * cos(t), r * sin(t));
+}
+
+#endif // !__cplusplus, i.e. pure C (requires C99 features)
+
+/////////////////////////////////////////////////////////////////////////
+// Auxiliary routines to compute other special functions based on w(z)
+
+// compute erfcx(z) = exp(z^2) erfz(z)
+cmplx FADDEEVA(erfcx)(cmplx z, double relerr)
+{
+  return FADDEEVA(w)(C(-cimag(z), creal(z)), relerr);
+}
+
+// compute the error function erf(x)
+double FADDEEVA_RE(erf)(double x)
+{
+#if !defined(__cplusplus)
+  return erf(x); // C99 supplies erf in math.h
+#elif (__cplusplus >= 201103L) || defined(HAVE_ERF)
+  return ::erf(x); // C++11 supplies std::erf in cmath
+#else
+  double mx2 = -x*x;
+  if (mx2 < -750) // underflow
+    return (x >= 0 ? 1.0 : -1.0);
+
+  if (x >= 0) {
+    if (x < 8e-2) goto taylor;
+    return 1.0 - exp(mx2) * FADDEEVA_RE(erfcx)(x);
+  }
+  else { // x < 0
+    if (x > -8e-2) goto taylor;
+    return exp(mx2) * FADDEEVA_RE(erfcx)(-x) - 1.0;
+  }
+
+  // Use Taylor series for small |x|, to avoid cancellation inaccuracy
+  //   erf(x) = 2/sqrt(pi) * x * (1 - x^2/3 + x^4/10 - x^6/42 + x^8/216 + ...)
+ taylor:
+  return x * (1.1283791670955125739
+              + mx2 * (0.37612638903183752464
+                       + mx2 * (0.11283791670955125739
+                                + mx2 * (0.026866170645131251760
+                                         + mx2 * 0.0052239776254421878422))));
+#endif
+}
+
+// compute the error function erf(z)
+cmplx FADDEEVA(erf)(cmplx z, double relerr)
+{
+  double x = creal(z), y = cimag(z);
+
+  if (y == 0)
+    return C(FADDEEVA_RE(erf)(x),
+             y); // preserve sign of 0
+  if (x == 0) // handle separately for speed & handling of y = Inf or NaN
+    return C(x, // preserve sign of 0
+             /* handle y -> Inf limit manually, since
+                exp(y^2) -> Inf but Im[w(y)] -> 0, so
+                IEEE will give us a NaN when it should be Inf */
+             y*y > 720 ? (y > 0 ? Inf : -Inf)
+             : exp(y*y) * FADDEEVA(w_im)(y));
+
+  double mRe_z2 = (y - x) * (x + y); // Re(-z^2), being careful of overflow
+  double mIm_z2 = -2*x*y; // Im(-z^2)
+  if (mRe_z2 < -750) // underflow
+    return (x >= 0 ? 1.0 : -1.0);
+
+  /* Handle positive and negative x via different formulas,
+     using the mirror symmetries of w, to avoid overflow/underflow
+     problems from multiplying exponentially large and small quantities. */
+  if (x >= 0) {
+    if (x < 8e-2) {
+      if (fabs(y) < 1e-2)
+        goto taylor;
+      else if (fabs(mIm_z2) < 5e-3 && x < 5e-3)
+        goto taylor_erfi;
+    }
+    /* don't use complex exp function, since that will produce spurious NaN
+       values when multiplying w in an overflow situation. */
+    return 1.0 - exp(mRe_z2) *
+      (C(cos(mIm_z2), sin(mIm_z2))
+       * FADDEEVA(w)(C(-y,x), relerr));
+  }
+  else { // x < 0
+    if (x > -8e-2) { // duplicate from above to avoid fabs(x) call
+      if (fabs(y) < 1e-2)
+        goto taylor;
+      else if (fabs(mIm_z2) < 5e-3 && x > -5e-3)
+        goto taylor_erfi;
+    }
+    else if (isnan(x))
+      return C(NaN, y == 0 ? 0 : NaN);
+    /* don't use complex exp function, since that will produce spurious NaN
+       values when multiplying w in an overflow situation. */
+    return exp(mRe_z2) *
+      (C(cos(mIm_z2), sin(mIm_z2))
+       * FADDEEVA(w)(C(y,-x), relerr)) - 1.0;
+  }
+
+  // Use Taylor series for small |z|, to avoid cancellation inaccuracy
+  //   erf(z) = 2/sqrt(pi) * z * (1 - z^2/3 + z^4/10 - z^6/42 + z^8/216 + ...)
+ taylor:
+  {
+    cmplx mz2 = C(mRe_z2, mIm_z2); // -z^2
+    return z * (1.1283791670955125739
+                + mz2 * (0.37612638903183752464
+                         + mz2 * (0.11283791670955125739
+                                  + mz2 * (0.026866170645131251760
+                                          + mz2 * 0.0052239776254421878422))));
+  }
+
+  /* for small |x| and small |xy|,
+     use Taylor series to avoid cancellation inaccuracy:
+       erf(x+iy) = erf(iy)
+          + 2*exp(y^2)/sqrt(pi) *
+            [ x * (1 - x^2 * (1+2y^2)/3 + x^4 * (3+12y^2+4y^4)/30 + ...
+              - i * x^2 * y * (1 - x^2 * (3+2y^2)/6 + ...) ]
+     where:
+        erf(iy) = exp(y^2) * Im[w(y)]
+  */
+ taylor_erfi:
+  {
+    double x2 = x*x, y2 = y*y;
+    double expy2 = exp(y2);
+    return C
+      (expy2 * x * (1.1283791670955125739
+                    - x2 * (0.37612638903183752464
+                            + 0.75225277806367504925*y2)
+                    + x2*x2 * (0.11283791670955125739
+                               + y2 * (0.45135166683820502956
+                                       + 0.15045055561273500986*y2))),
+       expy2 * (FADDEEVA(w_im)(y)
+                - x2*y * (1.1283791670955125739
+                          - x2 * (0.56418958354775628695
+                                  + 0.37612638903183752464*y2))));
+  }
+}
+
+// erfi(z) = -i erf(iz)
+cmplx FADDEEVA(erfi)(cmplx z, double relerr)
+{
+  cmplx e = FADDEEVA(erf)(C(-cimag(z),creal(z)), relerr);
+  return C(cimag(e), -creal(e));
+}
+
+// erfi(x) = -i erf(ix)
+double FADDEEVA_RE(erfi)(double x)
+{
+  return x*x > 720 ? (x > 0 ? Inf : -Inf)
+    : exp(x*x) * FADDEEVA(w_im)(x);
+}
+
+// erfc(x) = 1 - erf(x)
+double FADDEEVA_RE(erfc)(double x)
+{
+#if !defined(__cplusplus)
+  return erfc(x); // C99 supplies erfc in math.h
+#elif (__cplusplus >= 201103L) || defined(HAVE_ERFC)
+  return ::erfc(x); // C++11 supplies std::erfc in cmath
+#else
+  if (x*x > 750) // underflow
+    return (x >= 0 ? 0.0 : 2.0);
+  return x >= 0 ? exp(-x*x) * FADDEEVA_RE(erfcx)(x)
+    : 2. - exp(-x*x) * FADDEEVA_RE(erfcx)(-x);
+#endif
+}
+
+// erfc(z) = 1 - erf(z)
+cmplx FADDEEVA(erfc)(cmplx z, double relerr)
+{
+  double x = creal(z), y = cimag(z);
+
+  if (x == 0.)
+    return C(1,
+             /* handle y -> Inf limit manually, since
+                exp(y^2) -> Inf but Im[w(y)] -> 0, so
+                IEEE will give us a NaN when it should be Inf */
+             y*y > 720 ? (y > 0 ? -Inf : Inf)
+             : -exp(y*y) * FADDEEVA(w_im)(y));
+  if (y == 0.) {
+    if (x*x > 750) // underflow
+      return C(x >= 0 ? 0.0 : 2.0,
+               -y); // preserve sign of 0
+    return C(x >= 0 ? exp(-x*x) * FADDEEVA_RE(erfcx)(x)
+             : 2. - exp(-x*x) * FADDEEVA_RE(erfcx)(-x),
+             -y); // preserve sign of zero
+  }
+
+  double mRe_z2 = (y - x) * (x + y); // Re(-z^2), being careful of overflow
+  double mIm_z2 = -2*x*y; // Im(-z^2)
+  if (mRe_z2 < -750) // underflow
+    return (x >= 0 ? 0.0 : 2.0);
+
+  if (x >= 0)
+    return cexp(C(mRe_z2, mIm_z2))
+      * FADDEEVA(w)(C(-y,x), relerr);
+  else
+    return 2.0 - cexp(C(mRe_z2, mIm_z2))
+      * FADDEEVA(w)(C(y,-x), relerr);
+}
+
+// compute Dawson(x) = sqrt(pi)/2  *  exp(-x^2) * erfi(x)
+double FADDEEVA_RE(Dawson)(double x)
+{
+  const double spi2 = 0.8862269254527580136490837416705725913990; // sqrt(pi)/2
+  return spi2 * FADDEEVA(w_im)(x);
+}
+
+// compute Dawson(z) = sqrt(pi)/2  *  exp(-z^2) * erfi(z)
+cmplx FADDEEVA(Dawson)(cmplx z, double relerr)
+{
+  const double spi2 = 0.8862269254527580136490837416705725913990; // sqrt(pi)/2
+  double x = creal(z), y = cimag(z);
+
+  // handle axes separately for speed & proper handling of x or y = Inf or NaN
+  if (y == 0)
+    return C(spi2 * FADDEEVA(w_im)(x),
+             -y); // preserve sign of 0
+  if (x == 0) {
+    double y2 = y*y;
+    if (y2 < 2.5e-5) { // Taylor expansion
+      return C(x, // preserve sign of 0
+               y * (1.
+                    + y2 * (0.6666666666666666666666666666666666666667
+                            + y2 * 0.26666666666666666666666666666666666667)));
+    }
+    return C(x, // preserve sign of 0
+             spi2 * (y >= 0
+                     ? exp(y2) - FADDEEVA_RE(erfcx)(y)
+                     : FADDEEVA_RE(erfcx)(-y) - exp(y2)));
+  }
+
+  double mRe_z2 = (y - x) * (x + y); // Re(-z^2), being careful of overflow
+  double mIm_z2 = -2*x*y; // Im(-z^2)
+  cmplx mz2 = C(mRe_z2, mIm_z2); // -z^2
+
+  /* Handle positive and negative x via different formulas,
+     using the mirror symmetries of w, to avoid overflow/underflow
+     problems from multiplying exponentially large and small quantities. */
+  if (y >= 0) {
+    if (y < 5e-3) {
+      if (fabs(x) < 5e-3)
+        goto taylor;
+      else if (fabs(mIm_z2) < 5e-3)
+        goto taylor_realaxis;
+    }
+    cmplx res = cexp(mz2) - FADDEEVA(w)(z, relerr);
+    return spi2 * C(-cimag(res), creal(res));
+  }
+  else { // y < 0
+    if (y > -5e-3) { // duplicate from above to avoid fabs(x) call
+      if (fabs(x) < 5e-3)
+        goto taylor;
+      else if (fabs(mIm_z2) < 5e-3)
+        goto taylor_realaxis;
+    }
+    else if (isnan(y))
+      return C(x == 0 ? 0 : NaN, NaN);
+    cmplx res = FADDEEVA(w)(-z, relerr) - cexp(mz2);
+    return spi2 * C(-cimag(res), creal(res));
+  }
+
+  // Use Taylor series for small |z|, to avoid cancellation inaccuracy
+  //     dawson(z) = z - 2/3 z^3 + 4/15 z^5 + ...
+ taylor:
+  return z * (1.
+              + mz2 * (0.6666666666666666666666666666666666666667
+                       + mz2 * 0.2666666666666666666666666666666666666667));
+
+  /* for small |y| and small |xy|,
+     use Taylor series to avoid cancellation inaccuracy:
+       dawson(x + iy)
+        = D + y^2 (D + x - 2Dx^2)
+            + y^4 (D/2 + 5x/6 - 2Dx^2 - x^3/3 + 2Dx^4/3)
+        + iy [ (1-2Dx) + 2/3 y^2 (1 - 3Dx - x^2 + 2Dx^3)
+              + y^4/15 (4 - 15Dx - 9x^2 + 20Dx^3 + 2x^4 - 4Dx^5) ] + ...
+     where D = dawson(x)
+
+     However, for large |x|, 2Dx -> 1 which gives cancellation problems in
+     this series (many of the leading terms cancel).  So, for large |x|,
+     we need to substitute a continued-fraction expansion for D.
+
+        dawson(x) = 0.5 / (x-0.5/(x-1/(x-1.5/(x-2/(x-2.5/(x...))))))
+
+     The 6 terms shown here seems to be the minimum needed to be
+     accurate as soon as the simpler Taylor expansion above starts
+     breaking down.  Using this 6-term expansion, factoring out the
+     denominator, and simplifying with Maple, we obtain:
+
+      Re dawson(x + iy) * (-15 + 90x^2 - 60x^4 + 8x^6) / x
+        = 33 - 28x^2 + 4x^4 + y^2 (18 - 4x^2) + 4 y^4
+      Im dawson(x + iy) * (-15 + 90x^2 - 60x^4 + 8x^6) / y
+        = -15 + 24x^2 - 4x^4 + 2/3 y^2 (6x^2 - 15) - 4 y^4
+
+     Finally, for |x| > 5e7, we can use a simpler 1-term continued-fraction
+     expansion for the real part, and a 2-term expansion for the imaginary
+     part.  (This avoids overflow problems for huge |x|.)  This yields:
+
+     Re dawson(x + iy) = [1 + y^2 (1 + y^2/2 - (xy)^2/3)] / (2x)
+     Im dawson(x + iy) = y [ -1 - 2/3 y^2 + y^4/15 (2x^2 - 4) ] / (2x^2 - 1)
+
+ */
+ taylor_realaxis:
+  {
+    double x2 = x*x;
+    if (x2 > 1600) { // |x| > 40
+      double y2 = y*y;
+      if (x2 > 25e14) {// |x| > 5e7
+        double xy2 = (x*y)*(x*y);
+        return C((0.5 + y2 * (0.5 + 0.25*y2
+                              - 0.16666666666666666667*xy2)) / x,
+                 y * (-1 + y2 * (-0.66666666666666666667
+                                 + 0.13333333333333333333*xy2
+                                 - 0.26666666666666666667*y2))
+                 / (2*x2 - 1));
+      }
+      return (1. / (-15 + x2*(90 + x2*(-60 + 8*x2)))) *
+        C(x * (33 + x2 * (-28 + 4*x2)
+               + y2 * (18 - 4*x2 + 4*y2)),
+          y * (-15 + x2 * (24 - 4*x2)
+               + y2 * (4*x2 - 10 - 4*y2)));
+    }
+    else {
+      double D = spi2 * FADDEEVA(w_im)(x);
+      double y2 = y*y;
+      return C
+        (D + y2 * (D + x - 2*D*x2)
+         + y2*y2 * (D * (0.5 - x2 * (2 - 0.66666666666666666667*x2))
+                    + x * (0.83333333333333333333
+                           - 0.33333333333333333333 * x2)),
+         y * (1 - 2*D*x
+              + y2 * 0.66666666666666666667 * (1 - x2 - D*x * (3 - 2*x2))
+              + y2*y2 * (0.26666666666666666667 -
+                         x2 * (0.6 - 0.13333333333333333333 * x2)
+                         - D*x * (1 - x2 * (1.3333333333333333333
+                                            - 0.26666666666666666667 * x2)))));
+    }
+  }
+}
+
+/////////////////////////////////////////////////////////////////////////
+
+// return sinc(x) = sin(x)/x, given both x and sin(x)
+// [since we only use this in cases where sin(x) has already been computed]
+static inline double sinc(double x, double sinx) {
+  return fabs(x) < 1e-4 ? 1 - (0.1666666666666666666667)*x*x : sinx / x;
+}
+
+// sinh(x) via Taylor series, accurate to machine precision for |x| < 1e-2
+static inline double sinh_taylor(double x) {
+  return x * (1 + (x*x) * (0.1666666666666666666667
+                           + 0.00833333333333333333333 * (x*x)));
+}
+
+static inline double sqr(double x) { return x*x; }
+
+// precomputed table of expa2n2[n-1] = exp(-a2*n*n)
+// for double-precision a2 = 0.26865... in FADDEEVA(w), below.
+static const double expa2n2[] = {
+  7.64405281671221563e-01,
+  3.41424527166548425e-01,
+  8.91072646929412548e-02,
+  1.35887299055460086e-02,
+  1.21085455253437481e-03,
+  6.30452613933449404e-05,
+  1.91805156577114683e-06,
+  3.40969447714832381e-08,
+  3.54175089099469393e-10,
+  2.14965079583260682e-12,
+  7.62368911833724354e-15,
+  1.57982797110681093e-17,
+  1.91294189103582677e-20,
+  1.35344656764205340e-23,
+  5.59535712428588720e-27,
+  1.35164257972401769e-30,
+  1.90784582843501167e-34,
+  1.57351920291442930e-38,
+  7.58312432328032845e-43,
+  2.13536275438697082e-47,
+  3.51352063787195769e-52,
+  3.37800830266396920e-57,
+  1.89769439468301000e-62,
+  6.22929926072668851e-68,
+  1.19481172006938722e-73,
+  1.33908181133005953e-79,
+  8.76924303483223939e-86,
+  3.35555576166254986e-92,
+  7.50264110688173024e-99,
+  9.80192200745410268e-106,
+  7.48265412822268959e-113,
+  3.33770122566809425e-120,
+  8.69934598159861140e-128,
+  1.32486951484088852e-135,
+  1.17898144201315253e-143,
+  6.13039120236180012e-152,
+  1.86258785950822098e-160,
+  3.30668408201432783e-169,
+  3.43017280887946235e-178,
+  2.07915397775808219e-187,
+  7.36384545323984966e-197,
+  1.52394760394085741e-206,
+  1.84281935046532100e-216,
+  1.30209553802992923e-226,
+  5.37588903521080531e-237,
+  1.29689584599763145e-247,
+  1.82813078022866562e-258,
+  1.50576355348684241e-269,
+  7.24692320799294194e-281,
+  2.03797051314726829e-292,
+  3.34880215927873807e-304,
+  0.0 // underflow (also prevents reads past array end, below)
+};
+
+/////////////////////////////////////////////////////////////////////////
+
+cmplx FADDEEVA(w)(cmplx z, double relerr)
+{
+  if (creal(z) == 0.0)
+    return C(FADDEEVA_RE(erfcx)(cimag(z)),
+             creal(z)); // give correct sign of 0 in cimag(w)
+  else if (cimag(z) == 0)
+    return C(exp(-sqr(creal(z))),
+             FADDEEVA(w_im)(creal(z)));
+
+  double a, a2, c;
+  if (relerr <= DBL_EPSILON) {
+    relerr = DBL_EPSILON;
+    a = 0.518321480430085929872; // pi / sqrt(-log(eps*0.5))
+    c = 0.329973702884629072537; // (2/pi) * a;
+    a2 = 0.268657157075235951582; // a^2
+  }
+  else {
+    const double pi = 3.14159265358979323846264338327950288419716939937510582;
+    if (relerr > 0.1) relerr = 0.1; // not sensible to compute < 1 digit
+    a = pi / sqrt(-log(relerr*0.5));
+    c = (2/pi)*a;
+    a2 = a*a;
+  }
+  const double x = fabs(creal(z));
+  const double y = cimag(z), ya = fabs(y);
+
+  cmplx ret = 0.; // return value
+
+  double sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0, sum5 = 0;
+
+#define USE_CONTINUED_FRACTION 1 // 1 to use continued fraction for large |z|
+
+#if USE_CONTINUED_FRACTION
+  if (ya > 7 || (x > 6  // continued fraction is faster
+                 /* As pointed out by M. Zaghloul, the continued
+                    fraction seems to give a large relative error in
+                    Re w(z) for |x| ~ 6 and small |y|, so use
+                    algorithm 816 in this region: */
+                 && (ya > 0.1 || (x > 8 && ya > 1e-10) || x > 28))) {
+
+    /* Poppe & Wijers suggest using a number of terms
+           nu = 3 + 1442 / (26*rho + 77)
+       where rho = sqrt((x/x0)^2 + (y/y0)^2) where x0=6.3, y0=4.4.
+       (They only use this expansion for rho >= 1, but rho a little less
+        than 1 seems okay too.)
+       Instead, I did my own fit to a slightly different function
+       that avoids the hypotenuse calculation, using NLopt to minimize
+       the sum of the squares of the errors in nu with the constraint
+       that the estimated nu be >= minimum nu to attain machine precision.
+       I also separate the regions where nu == 2 and nu == 1. */
+    const double ispi = 0.56418958354775628694807945156; // 1 / sqrt(pi)
+    double xs = y < 0 ? -creal(z) : creal(z); // compute for -z if y < 0
+    if (x + ya > 4000) { // nu <= 2
+      if (x + ya > 1e7) { // nu == 1, w(z) = i/sqrt(pi) / z
+        // scale to avoid overflow
+        if (x > ya) {
+          double yax = ya / xs;
+          double denom = ispi / (xs + yax*ya);
+          ret = C(denom*yax, denom);
+        }
+        else if (isinf(ya))
+          return ((isnan(x) || y < 0)
+                  ? C(NaN,NaN) : C(0,0));
+        else {
+          double xya = xs / ya;
+          double denom = ispi / (xya*xs + ya);
+          ret = C(denom, denom*xya);
+        }
+      }
+      else { // nu == 2, w(z) = i/sqrt(pi) * z / (z*z - 0.5)
+        double dr = xs*xs - ya*ya - 0.5, di = 2*xs*ya;
+        double denom = ispi / (dr*dr + di*di);
+        ret = C(denom * (xs*di-ya*dr), denom * (xs*dr+ya*di));
+      }
+    }
+    else { // compute nu(z) estimate and do general continued fraction
+      const double c0=3.9, c1=11.398, c2=0.08254, c3=0.1421, c4=0.2023; // fit
+      double nu = floor(c0 + c1 / (c2*x + c3*ya + c4));
+      double wr = xs, wi = ya;
+      for (nu = 0.5 * (nu - 1); nu > 0.4; nu -= 0.5) {
+        // w <- z - nu/w:
+        double denom = nu / (wr*wr + wi*wi);
+        wr = xs - wr * denom;
+        wi = ya + wi * denom;
+      }
+      { // w(z) = i/sqrt(pi) / w:
+        double denom = ispi / (wr*wr + wi*wi);
+        ret = C(denom*wi, denom*wr);
+      }
+    }
+    if (y < 0) {
+      // use w(z) = 2.0*exp(-z*z) - w(-z),
+      // but be careful of overflow in exp(-z*z)
+      //                                = exp(-(xs*xs-ya*ya) -2*i*xs*ya)
+      return 2.0*cexp(C((ya-xs)*(xs+ya), 2*xs*y)) - ret;
+    }
+    else
+      return ret;
+  }
+#else // !USE_CONTINUED_FRACTION
+  if (x + ya > 1e7) { // w(z) = i/sqrt(pi) / z, to machine precision
+    const double ispi = 0.56418958354775628694807945156; // 1 / sqrt(pi)
+    double xs = y < 0 ? -creal(z) : creal(z); // compute for -z if y < 0
+    // scale to avoid overflow
+    if (x > ya) {
+      double yax = ya / xs;
+      double denom = ispi / (xs + yax*ya);
+      ret = C(denom*yax, denom);
+    }
+    else {
+      double xya = xs / ya;
+      double denom = ispi / (xya*xs + ya);
+      ret = C(denom, denom*xya);
+    }
+    if (y < 0) {
+      // use w(z) = 2.0*exp(-z*z) - w(-z),
+      // but be careful of overflow in exp(-z*z)
+      //                                = exp(-(xs*xs-ya*ya) -2*i*xs*ya)
+      return 2.0*cexp(C((ya-xs)*(xs+ya), 2*xs*y)) - ret;
+    }
+    else
+      return ret;
+  }
+#endif // !USE_CONTINUED_FRACTION
+
+  /* Note: The test that seems to be suggested in the paper is x <
+     sqrt(-log(DBL_MIN)), about 26.6, since otherwise exp(-x^2)
+     underflows to zero and sum1,sum2,sum4 are zero.  However, long
+     before this occurs, the sum1,sum2,sum4 contributions are
+     negligible in double precision; I find that this happens for x >
+     about 6, for all y.  On the other hand, I find that the case
+     where we compute all of the sums is faster (at least with the
+     precomputed expa2n2 table) until about x=10.  Furthermore, if we
+     try to compute all of the sums for x > 20, I find that we
+     sometimes run into numerical problems because underflow/overflow
+     problems start to appear in the various coefficients of the sums,
+     below.  Therefore, we use x < 10 here. */
+  else if (x < 10) {
+    double prod2ax = 1, prodm2ax = 1;
+    double expx2;
+
+    if (isnan(y))
+      return C(y,y);
+
+    /* Somewhat ugly copy-and-paste duplication here, but I see significant
+       speedups from using the special-case code with the precomputed
+       exponential, and the x < 5e-4 special case is needed for accuracy. */
+
+    if (relerr == DBL_EPSILON) { // use precomputed exp(-a2*(n*n)) table
+      if (x < 5e-4) { // compute sum4 and sum5 together as sum5-sum4
+        const double x2 = x*x;
+        expx2 = 1 - x2 * (1 - 0.5*x2); // exp(-x*x) via Taylor
+        // compute exp(2*a*x) and exp(-2*a*x) via Taylor, to double precision
+        const double ax2 = 1.036642960860171859744*x; // 2*a*x
+        const double exp2ax =
+          1 + ax2 * (1 + ax2 * (0.5 + 0.166666666666666666667*ax2));
+        const double expm2ax =
+          1 - ax2 * (1 - ax2 * (0.5 - 0.166666666666666666667*ax2));
+        for (int n = 1; 1; ++n) {
+          const double coef = expa2n2[n-1] * expx2 / (a2*(n*n) + y*y);
+          prod2ax *= exp2ax;
+          prodm2ax *= expm2ax;
+          sum1 += coef;
+          sum2 += coef * prodm2ax;
+          sum3 += coef * prod2ax;
+
+          // really = sum5 - sum4
+          sum5 += coef * (2*a) * n * sinh_taylor((2*a)*n*x);
+
+          // test convergence via sum3
+          if (coef * prod2ax < relerr * sum3) break;
+        }
+      }
+      else { // x > 5e-4, compute sum4 and sum5 separately
+        expx2 = exp(-x*x);
+        const double exp2ax = exp((2*a)*x), expm2ax = 1 / exp2ax;
+        for (int n = 1; 1; ++n) {
+          const double coef = expa2n2[n-1] * expx2 / (a2*(n*n) + y*y);
+          prod2ax *= exp2ax;
+          prodm2ax *= expm2ax;
+          sum1 += coef;
+          sum2 += coef * prodm2ax;
+          sum4 += (coef * prodm2ax) * (a*n);
+          sum3 += coef * prod2ax;
+          sum5 += (coef * prod2ax) * (a*n);
+          // test convergence via sum5, since this sum has the slowest decay
+          if ((coef * prod2ax) * (a*n) < relerr * sum5) break;
+        }
+      }
+    }
+    else { // relerr != DBL_EPSILON, compute exp(-a2*(n*n)) on the fly
+      const double exp2ax = exp((2*a)*x), expm2ax = 1 / exp2ax;
+      if (x < 5e-4) { // compute sum4 and sum5 together as sum5-sum4
+        const double x2 = x*x;
+        expx2 = 1 - x2 * (1 - 0.5*x2); // exp(-x*x) via Taylor
+        for (int n = 1; 1; ++n) {
+          const double coef = exp(-a2*(n*n)) * expx2 / (a2*(n*n) + y*y);
+          prod2ax *= exp2ax;
+          prodm2ax *= expm2ax;
+          sum1 += coef;
+          sum2 += coef * prodm2ax;
+          sum3 += coef * prod2ax;
+
+          // really = sum5 - sum4
+          sum5 += coef * (2*a) * n * sinh_taylor((2*a)*n*x);
+
+          // test convergence via sum3
+          if (coef * prod2ax < relerr * sum3) break;
+        }
+      }
+      else { // x > 5e-4, compute sum4 and sum5 separately
+        expx2 = exp(-x*x);
+        for (int n = 1; 1; ++n) {
+          const double coef = exp(-a2*(n*n)) * expx2 / (a2*(n*n) + y*y);
+          prod2ax *= exp2ax;
+          prodm2ax *= expm2ax;
+          sum1 += coef;
+          sum2 += coef * prodm2ax;
+          sum4 += (coef * prodm2ax) * (a*n);
+          sum3 += coef * prod2ax;
+          sum5 += (coef * prod2ax) * (a*n);
+          // test convergence via sum5, since this sum has the slowest decay
+          if ((coef * prod2ax) * (a*n) < relerr * sum5) break;
+        }
+      }
+    }
+    const double expx2erfcxy = // avoid spurious overflow for large negative y
+      y > -6 // for y < -6, erfcx(y) = 2*exp(y*y) to double precision
+      ? expx2*FADDEEVA_RE(erfcx)(y) : 2*exp(y*y-x*x);
+    if (y > 5) { // imaginary terms cancel
+      const double sinxy = sin(x*y);
+      ret = (expx2erfcxy - c*y*sum1) * cos(2*x*y)
+        + (c*x*expx2) * sinxy * sinc(x*y, sinxy);
+    }
+    else {
+      double xs = creal(z);
+      const double sinxy = sin(xs*y);
+      const double sin2xy = sin(2*xs*y), cos2xy = cos(2*xs*y);
+      const double coef1 = expx2erfcxy - c*y*sum1;
+      const double coef2 = c*xs*expx2;
+      ret = C(coef1 * cos2xy + coef2 * sinxy * sinc(xs*y, sinxy),
+              coef2 * sinc(2*xs*y, sin2xy) - coef1 * sin2xy);
+    }
+  }
+  else { // x large: only sum3 & sum5 contribute (see above note)
+    if (isnan(x))
+      return C(x,x);
+    if (isnan(y))
+      return C(y,y);
+
+#if USE_CONTINUED_FRACTION
+    ret = exp(-x*x); // |y| < 1e-10, so we only need exp(-x*x) term
+#else
+    if (y < 0) {
+      /* erfcx(y) ~ 2*exp(y*y) + (< 1) if y < 0, so
+         erfcx(y)*exp(-x*x) ~ 2*exp(y*y-x*x) term may not be negligible
+         if y*y - x*x > -36 or so.  So, compute this term just in case.
+         We also need the -exp(-x*x) term to compute Re[w] accurately
+         in the case where y is very small. */
+      ret = cpolar(2*exp(y*y-x*x) - exp(-x*x), -2*creal(z)*y);
+    }
+    else
+      ret = exp(-x*x); // not negligible in real part if y very small
+#endif
+    // (round instead of ceil as in original paper; note that x/a > 1 here)
+    double n0 = floor(x/a + 0.5); // sum in both directions, starting at n0
+    double dx = a*n0 - x;
+    sum3 = exp(-dx*dx) / (a2*(n0*n0) + y*y);
+    sum5 = a*n0 * sum3;
+    double exp1 = exp(4*a*dx), exp1dn = 1;
+    int dn;
+    for (dn = 1; n0 - dn > 0; ++dn) { // loop over n0-dn and n0+dn terms
+      double np = n0 + dn, nm = n0 - dn;
+      double tp = exp(-sqr(a*dn+dx));
+      double tm = tp * (exp1dn *= exp1); // trick to get tm from tp
+      tp /= (a2*(np*np) + y*y);
+      tm /= (a2*(nm*nm) + y*y);
+      sum3 += tp + tm;
+      sum5 += a * (np * tp + nm * tm);
+      if (a * (np * tp + nm * tm) < relerr * sum5) goto finish;
+    }
+    while (1) { // loop over n0+dn terms only (since n0-dn <= 0)
+      double np = n0 + dn++;
+      double tp = exp(-sqr(a*dn+dx)) / (a2*(np*np) + y*y);
+      sum3 += tp;
+      sum5 += a * np * tp;
+      if (a * np * tp < relerr * sum5) goto finish;
+    }
+  }
+ finish:
+  return ret + C((0.5*c)*y*(sum2+sum3),
+                 (0.5*c)*copysign(sum5-sum4, creal(z)));
+}
+
+/////////////////////////////////////////////////////////////////////////
+
+/* erfcx(x) = exp(x^2) erfc(x) function, for real x, written by
+   Steven G. Johnson, October 2012.
+
+   This function combines a few different ideas.
+
+   First, for x > 50, it uses a continued-fraction expansion (same as
+   for the Faddeeva function, but with algebraic simplifications for z=i*x).
+
+   Second, for 0 <= x <= 50, it uses Chebyshev polynomial approximations,
+   but with two twists:
+
+      a) It maps x to y = 4 / (4+x) in [0,1].  This simple transformation,
+         inspired by a similar transformation in the octave-forge/specfun
+         erfcx by Soren Hauberg, results in much faster Chebyshev convergence
+         than other simple transformations I have examined.
+
+      b) Instead of using a single Chebyshev polynomial for the entire
+         [0,1] y interval, we break the interval up into 100 equal
+         subintervals, with a switch/lookup table, and use much lower
+         degree Chebyshev polynomials in each subinterval. This greatly
+         improves performance in my tests.
+
+   For x < 0, we use the relationship erfcx(-x) = 2 exp(x^2) - erfc(x),
+   with the usual checks for overflow etcetera.
+
+   Performance-wise, it seems to be substantially faster than either
+   the SLATEC DERFC function [or an erfcx function derived therefrom]
+   or Cody's CALERF function (from netlib.org/specfun), while
+   retaining near machine precision in accuracy.  */
+
+/* Given y100=100*y, where y = 4/(4+x) for x >= 0, compute erfc(x).
+
+   Uses a look-up table of 100 different Chebyshev polynomials
+   for y intervals [0,0.01], [0.01,0.02], ...., [0.99,1], generated
+   with the help of Maple and a little shell script.   This allows
+   the Chebyshev polynomials to be of significantly lower degree (about 1/4)
+   compared to fitting the whole [0,1] interval with a single polynomial. */
+static double erfcx_y100(double y100)
+{
+  switch ((int) y100) {
+case 0: {
+double t = 2*y100 - 1;
+return 0.70878032454106438663e-3 + (0.71234091047026302958e-3 + (0.35779077297597742384e-5 + (0.17403143962587937815e-7 + (0.81710660047307788845e-10 + (0.36885022360434957634e-12 + 0.15917038551111111111e-14 * t) * t) * t) * t) * t) * t;
+}
+case 1: {
+double t = 2*y100 - 3;
+return 0.21479143208285144230e-2 + (0.72686402367379996033e-3 + (0.36843175430938995552e-5 + (0.18071841272149201685e-7 + (0.85496449296040325555e-10 + (0.38852037518534291510e-12 + 0.16868473576888888889e-14 * t) * t) * t) * t) * t) * t;
+}
+case 2: {
+double t = 2*y100 - 5;
+return 0.36165255935630175090e-2 + (0.74182092323555510862e-3 + (0.37948319957528242260e-5 + (0.18771627021793087350e-7 + (0.89484715122415089123e-10 + (0.40935858517772440862e-12 + 0.17872061464888888889e-14 * t) * t) * t) * t) * t) * t;
+}
+case 3: {
+double t = 2*y100 - 7;
+return 0.51154983860031979264e-2 + (0.75722840734791660540e-3 + (0.39096425726735703941e-5 + (0.19504168704300468210e-7 + (0.93687503063178993915e-10 + (0.43143925959079664747e-12 + 0.18939926435555555556e-14 * t) * t) * t) * t) * t) * t;
+}
+case 4: {
+double t = 2*y100 - 9;
+return 0.66457513172673049824e-2 + (0.77310406054447454920e-3 + (0.40289510589399439385e-5 + (0.20271233238288381092e-7 + (0.98117631321709100264e-10 + (0.45484207406017752971e-12 + 0.20076352213333333333e-14 * t) * t) * t) * t) * t) * t;
+}
+case 5: {
+double t = 2*y100 - 11;
+return 0.82082389970241207883e-2 + (0.78946629611881710721e-3 + (0.41529701552622656574e-5 + (0.21074693344544655714e-7 + (0.10278874108587317989e-9 + (0.47965201390613339638e-12 + 0.21285907413333333333e-14 * t) * t) * t) * t) * t) * t;
+}
+case 6: {
+double t = 2*y100 - 13;
+return 0.98039537275352193165e-2 + (0.80633440108342840956e-3 + (0.42819241329736982942e-5 + (0.21916534346907168612e-7 + (0.10771535136565470914e-9 + (0.50595972623692822410e-12 + 0.22573462684444444444e-14 * t) * t) * t) * t) * t) * t;
+}
+case 7: {
+double t = 2*y100 - 15;
+return 0.11433927298290302370e-1 + (0.82372858383196561209e-3 + (0.44160495311765438816e-5 + (0.22798861426211986056e-7 + (0.11291291745879239736e-9 + (0.53386189365816880454e-12 + 0.23944209546666666667e-14 * t) * t) * t) * t) * t) * t;
+}
+case 8: {
+double t = 2*y100 - 17;
+return 0.13099232878814653979e-1 + (0.84167002467906968214e-3 + (0.45555958988457506002e-5 + (0.23723907357214175198e-7 + (0.11839789326602695603e-9 + (0.56346163067550237877e-12 + 0.25403679644444444444e-14 * t) * t) * t) * t) * t) * t;
+}
+case 9: {
+double t = 2*y100 - 19;
+return 0.14800987015587535621e-1 + (0.86018092946345943214e-3 + (0.47008265848816866105e-5 + (0.24694040760197315333e-7 + (0.12418779768752299093e-9 + (0.59486890370320261949e-12 + 0.26957764568888888889e-14 * t) * t) * t) * t) * t) * t;
+}
+case 10: {
+double t = 2*y100 - 21;
+return 0.16540351739394069380e-1 + (0.87928458641241463952e-3 + (0.48520195793001753903e-5 + (0.25711774900881709176e-7 + (0.13030128534230822419e-9 + (0.62820097586874779402e-12 + 0.28612737351111111111e-14 * t) * t) * t) * t) * t) * t;
+}
+case 11: {
+double t = 2*y100 - 23;
+return 0.18318536789842392647e-1 + (0.89900542647891721692e-3 + (0.50094684089553365810e-5 + (0.26779777074218070482e-7 + (0.13675822186304615566e-9 + (0.66358287745352705725e-12 + 0.30375273884444444444e-14 * t) * t) * t) * t) * t) * t;
+}
+case 12: {
+double t = 2*y100 - 25;
+return 0.20136801964214276775e-1 + (0.91936908737673676012e-3 + (0.51734830914104276820e-5 + (0.27900878609710432673e-7 + (0.14357976402809042257e-9 + (0.70114790311043728387e-12 + 0.32252476000000000000e-14 * t) * t) * t) * t) * t) * t;
+}
+case 13: {
+double t = 2*y100 - 27;
+return 0.21996459598282740954e-1 + (0.94040248155366777784e-3 + (0.53443911508041164739e-5 + (0.29078085538049374673e-7 + (0.15078844500329731137e-9 + (0.74103813647499204269e-12 + 0.34251892320000000000e-14 * t) * t) * t) * t) * t) * t;
+}
+case 14: {
+double t = 2*y100 - 29;
+return 0.23898877187226319502e-1 + (0.96213386835900177540e-3 + (0.55225386998049012752e-5 + (0.30314589961047687059e-7 + (0.15840826497296335264e-9 + (0.78340500472414454395e-12 + 0.36381553564444444445e-14 * t) * t) * t) * t) * t) * t;
+}
+case 15: {
+double t = 2*y100 - 31;
+return 0.25845480155298518485e-1 + (0.98459293067820123389e-3 + (0.57082915920051843672e-5 + (0.31613782169164830118e-7 + (0.16646478745529630813e-9 + (0.82840985928785407942e-12 + 0.38649975768888888890e-14 * t) * t) * t) * t) * t) * t;
+}
+case 16: {
+double t = 2*y100 - 33;
+return 0.27837754783474696598e-1 + (0.10078108563256892757e-2 + (0.59020366493792212221e-5 + (0.32979263553246520417e-7 + (0.17498524159268458073e-9 + (0.87622459124842525110e-12 + 0.41066206488888888890e-14 * t) * t) * t) * t) * t) * t;
+}
+case 17: {
+double t = 2*y100 - 35;
+return 0.29877251304899307550e-1 + (0.10318204245057349310e-2 + (0.61041829697162055093e-5 + (0.34414860359542720579e-7 + (0.18399863072934089607e-9 + (0.92703227366365046533e-12 + 0.43639844053333333334e-14 * t) * t) * t) * t) * t) * t;
+}
+case 18: {
+double t = 2*y100 - 37;
+return 0.31965587178596443475e-1 + (0.10566560976716574401e-2 + (0.63151633192414586770e-5 + (0.35924638339521924242e-7 + (0.19353584758781174038e-9 + (0.98102783859889264382e-12 + 0.46381060817777777779e-14 * t) * t) * t) * t) * t) * t;
+}
+case 19: {
+double t = 2*y100 - 39;
+return 0.34104450552588334840e-1 + (0.10823541191350532574e-2 + (0.65354356159553934436e-5 + (0.37512918348533521149e-7 + (0.20362979635817883229e-9 + (0.10384187833037282363e-11 + 0.49300625262222222221e-14 * t) * t) * t) * t) * t) * t;
+}
+case 20: {
+double t = 2*y100 - 41;
+return 0.36295603928292425716e-1 + (0.11089526167995268200e-2 + (0.67654845095518363577e-5 + (0.39184292949913591646e-7 + (0.21431552202133775150e-9 + (0.10994259106646731797e-11 + 0.52409949102222222221e-14 * t) * t) * t) * t) * t) * t;
+}
+case 21: {
+double t = 2*y100 - 43;
+return 0.38540888038840509795e-1 + (0.11364917134175420009e-2 + (0.70058230641246312003e-5 + (0.40943644083718586939e-7 + (0.22563034723692881631e-9 + (0.11642841011361992885e-11 + 0.55721092871111111110e-14 * t) * t) * t) * t) * t) * t;
+}
+case 22: {
+double t = 2*y100 - 45;
+return 0.40842225954785960651e-1 + (0.11650136437945673891e-2 + (0.72569945502343006619e-5 + (0.42796161861855042273e-7 + (0.23761401711005024162e-9 + (0.12332431172381557035e-11 + 0.59246802364444444445e-14 * t) * t) * t) * t) * t) * t;
+}
+case 23: {
+double t = 2*y100 - 47;
+return 0.43201627431540222422e-1 + (0.11945628793917272199e-2 + (0.75195743532849206263e-5 + (0.44747364553960993492e-7 + (0.25030885216472953674e-9 + (0.13065684400300476484e-11 + 0.63000532853333333334e-14 * t) * t) * t) * t) * t) * t;
+}
+case 24: {
+double t = 2*y100 - 49;
+return 0.45621193513810471438e-1 + (0.12251862608067529503e-2 + (0.77941720055551920319e-5 + (0.46803119830954460212e-7 + (0.26375990983978426273e-9 + (0.13845421370977119765e-11 + 0.66996477404444444445e-14 * t) * t) * t) * t) * t) * t;
+}
+case 25: {
+double t = 2*y100 - 51;
+return 0.48103121413299865517e-1 + (0.12569331386432195113e-2 + (0.80814333496367673980e-5 + (0.48969667335682018324e-7 + (0.27801515481905748484e-9 + (0.14674637611609884208e-11 + 0.71249589351111111110e-14 * t) * t) * t) * t) * t) * t;
+}
+case 26: {
+double t = 2*y100 - 53;
+return 0.50649709676983338501e-1 + (0.12898555233099055810e-2 + (0.83820428414568799654e-5 + (0.51253642652551838659e-7 + (0.29312563849675507232e-9 + (0.15556512782814827846e-11 + 0.75775607822222222221e-14 * t) * t) * t) * t) * t) * t;
+}
+case 27: {
+double t = 2*y100 - 55;
+return 0.53263363664388864181e-1 + (0.13240082443256975769e-2 + (0.86967260015007658418e-5 + (0.53662102750396795566e-7 + (0.30914568786634796807e-9 + (0.16494420240828493176e-11 + 0.80591079644444444445e-14 * t) * t) * t) * t) * t) * t;
+}
+case 28: {
+double t = 2*y100 - 57;
+return 0.55946601353500013794e-1 + (0.13594491197408190706e-2 + (0.90262520233016380987e-5 + (0.56202552975056695376e-7 + (0.32613310410503135996e-9 + (0.17491936862246367398e-11 + 0.85713381688888888890e-14 * t) * t) * t) * t) * t) * t;
+}
+case 29: {
+double t = 2*y100 - 59;
+return 0.58702059496154081813e-1 + (0.13962391363223647892e-2 + (0.93714365487312784270e-5 + (0.58882975670265286526e-7 + (0.34414937110591753387e-9 + (0.18552853109751857859e-11 + 0.91160736711111111110e-14 * t) * t) * t) * t) * t) * t;
+}
+case 30: {
+double t = 2*y100 - 61;
+return 0.61532500145144778048e-1 + (0.14344426411912015247e-2 + (0.97331446201016809696e-5 + (0.61711860507347175097e-7 + (0.36325987418295300221e-9 + (0.19681183310134518232e-11 + 0.96952238400000000000e-14 * t) * t) * t) * t) * t) * t;
+}
+case 31: {
+double t = 2*y100 - 63;
+return 0.64440817576653297993e-1 + (0.14741275456383131151e-2 + (0.10112293819576437838e-4 + (0.64698236605933246196e-7 + (0.38353412915303665586e-9 + (0.20881176114385120186e-11 + 0.10310784480000000000e-13 * t) * t) * t) * t) * t) * t;
+}
+case 32: {
+double t = 2*y100 - 65;
+return 0.67430045633130393282e-1 + (0.15153655418916540370e-2 + (0.10509857606888328667e-4 + (0.67851706529363332855e-7 + (0.40504602194811140006e-9 + (0.22157325110542534469e-11 + 0.10964842115555555556e-13 * t) * t) * t) * t) * t) * t;
+}
+case 33: {
+double t = 2*y100 - 67;
+return 0.70503365513338850709e-1 + (0.15582323336495709827e-2 + (0.10926868866865231089e-4 + (0.71182482239613507542e-7 + (0.42787405890153386710e-9 + (0.23514379522274416437e-11 + 0.11659571751111111111e-13 * t) * t) * t) * t) * t) * t;
+}
+case 34: {
+double t = 2*y100 - 69;
+return 0.73664114037944596353e-1 + (0.16028078812438820413e-2 + (0.11364423678778207991e-4 + (0.74701423097423182009e-7 + (0.45210162777476488324e-9 + (0.24957355004088569134e-11 + 0.12397238257777777778e-13 * t) * t) * t) * t) * t) * t;
+}
+case 35: {
+double t = 2*y100 - 71;
+return 0.76915792420819562379e-1 + (0.16491766623447889354e-2 + (0.11823685320041302169e-4 + (0.78420075993781544386e-7 + (0.47781726956916478925e-9 + (0.26491544403815724749e-11 + 0.13180196462222222222e-13 * t) * t) * t) * t) * t) * t;
+}
+case 36: {
+double t = 2*y100 - 73;
+return 0.80262075578094612819e-1 + (0.16974279491709504117e-2 + (0.12305888517309891674e-4 + (0.82350717698979042290e-7 + (0.50511496109857113929e-9 + (0.28122528497626897696e-11 + 0.14010889635555555556e-13 * t) * t) * t) * t) * t) * t;
+}
+case 37: {
+double t = 2*y100 - 75;
+return 0.83706822008980357446e-1 + (0.17476561032212656962e-2 + (0.12812343958540763368e-4 + (0.86506399515036435592e-7 + (0.53409440823869467453e-9 + (0.29856186620887555043e-11 + 0.14891851591111111111e-13 * t) * t) * t) * t) * t) * t;
+}
+case 38: {
+double t = 2*y100 - 77;
+return 0.87254084284461718231e-1 + (0.17999608886001962327e-2 + (0.13344443080089492218e-4 + (0.90900994316429008631e-7 + (0.56486134972616465316e-9 + (0.31698707080033956934e-11 + 0.15825697795555555556e-13 * t) * t) * t) * t) * t) * t;
+}
+case 39: {
+double t = 2*y100 - 79;
+return 0.90908120182172748487e-1 + (0.18544478050657699758e-2 + (0.13903663143426120077e-4 + (0.95549246062549906177e-7 + (0.59752787125242054315e-9 + (0.33656597366099099413e-11 + 0.16815130613333333333e-13 * t) * t) * t) * t) * t) * t;
+}
+case 40: {
+double t = 2*y100 - 81;
+return 0.94673404508075481121e-1 + (0.19112284419887303347e-2 + (0.14491572616545004930e-4 + (0.10046682186333613697e-6 + (0.63221272959791000515e-9 + (0.35736693975589130818e-11 + 0.17862931591111111111e-13 * t) * t) * t) * t) * t) * t;
+}
+case 41: {
+double t = 2*y100 - 83;
+return 0.98554641648004456555e-1 + (0.19704208544725622126e-2 + (0.15109836875625443935e-4 + (0.10567036667675984067e-6 + (0.66904168640019354565e-9 + (0.37946171850824333014e-11 + 0.18971959040000000000e-13 * t) * t) * t) * t) * t) * t;
+}
+case 42: {
+double t = 2*y100 - 85;
+return 0.10255677889470089531e0 + (0.20321499629472857418e-2 + (0.15760224242962179564e-4 + (0.11117756071353507391e-6 + (0.70814785110097658502e-9 + (0.40292553276632563925e-11 + 0.20145143075555555556e-13 * t) * t) * t) * t) * t) * t;
+}
+case 43: {
+double t = 2*y100 - 87;
+return 0.10668502059865093318e0 + (0.20965479776148731610e-2 + (0.16444612377624983565e-4 + (0.11700717962026152749e-6 + (0.74967203250938418991e-9 + (0.42783716186085922176e-11 + 0.21385479360000000000e-13 * t) * t) * t) * t) * t) * t;
+}
+case 44: {
+double t = 2*y100 - 89;
+return 0.11094484319386444474e0 + (0.21637548491908170841e-2 + (0.17164995035719657111e-4 + (0.12317915750735938089e-6 + (0.79376309831499633734e-9 + (0.45427901763106353914e-11 + 0.22696025653333333333e-13 * t) * t) * t) * t) * t) * t;
+}
+case 45: {
+double t = 2*y100 - 91;
+return 0.11534201115268804714e0 + (0.22339187474546420375e-2 + (0.17923489217504226813e-4 + (0.12971465288245997681e-6 + (0.84057834180389073587e-9 + (0.48233721206418027227e-11 + 0.24079890062222222222e-13 * t) * t) * t) * t) * t) * t;
+}
+case 46: {
+double t = 2*y100 - 93;
+return 0.11988259392684094740e0 + (0.23071965691918689601e-2 + (0.18722342718958935446e-4 + (0.13663611754337957520e-6 + (0.89028385488493287005e-9 + (0.51210161569225846701e-11 + 0.25540227111111111111e-13 * t) * t) * t) * t) * t) * t;
+}
+case 47: {
+double t = 2*y100 - 95;
+return 0.12457298393509812907e0 + (0.23837544771809575380e-2 + (0.19563942105711612475e-4 + (0.14396736847739470782e-6 + (0.94305490646459247016e-9 + (0.54366590583134218096e-11 + 0.27080225920000000000e-13 * t) * t) * t) * t) * t) * t;
+}
+case 48: {
+double t = 2*y100 - 97;
+return 0.12941991566142438816e0 + (0.24637684719508859484e-2 + (0.20450821127475879816e-4 + (0.15173366280523906622e-6 + (0.99907632506389027739e-9 + (0.57712760311351625221e-11 + 0.28703099555555555556e-13 * t) * t) * t) * t) * t) * t;
+}
+case 49: {
+double t = 2*y100 - 99;
+return 0.13443048593088696613e0 + (0.25474249981080823877e-2 + (0.21385669591362915223e-4 + (0.15996177579900443030e-6 + (0.10585428844575134013e-8 + (0.61258809536787882989e-11 + 0.30412080142222222222e-13 * t) * t) * t) * t) * t) * t;
+}
+case 50: {
+double t = 2*y100 - 101;
+return 0.13961217543434561353e0 + (0.26349215871051761416e-2 + (0.22371342712572567744e-4 + (0.16868008199296822247e-6 + (0.11216596910444996246e-8 + (0.65015264753090890662e-11 + 0.32210394506666666666e-13 * t) * t) * t) * t) * t) * t;
+}
+case 51: {
+double t = 2*y100 - 103;
+return 0.14497287157673800690e0 + (0.27264675383982439814e-2 + (0.23410870961050950197e-4 + (0.17791863939526376477e-6 + (0.11886425714330958106e-8 + (0.68993039665054288034e-11 + 0.34101266222222222221e-13 * t) * t) * t) * t) * t) * t;
+}
+case 52: {
+double t = 2*y100 - 105;
+return 0.15052089272774618151e0 + (0.28222846410136238008e-2 + (0.24507470422713397006e-4 + (0.18770927679626136909e-6 + (0.12597184587583370712e-8 + (0.73203433049229821618e-11 + 0.36087889048888888890e-13 * t) * t) * t) * t) * t) * t;
+}
+case 53: {
+double t = 2*y100 - 107;
+return 0.15626501395774612325e0 + (0.29226079376196624949e-2 + (0.25664553693768450545e-4 + (0.19808568415654461964e-6 + (0.13351257759815557897e-8 + (0.77658124891046760667e-11 + 0.38173420035555555555e-13 * t) * t) * t) * t) * t) * t;
+}
+case 54: {
+double t = 2*y100 - 109;
+return 0.16221449434620737567e0 + (0.30276865332726475672e-2 + (0.26885741326534564336e-4 + (0.20908350604346384143e-6 + (0.14151148144240728728e-8 + (0.82369170665974313027e-11 + 0.40360957457777777779e-13 * t) * t) * t) * t) * t) * t;
+}
+case 55: {
+double t = 2*y100 - 111;
+return 0.16837910595412130659e0 + (0.31377844510793082301e-2 + (0.28174873844911175026e-4 + (0.22074043807045782387e-6 + (0.14999481055996090039e-8 + (0.87348993661930809254e-11 + 0.42653528977777777779e-13 * t) * t) * t) * t) * t) * t;
+}
+case 56: {
+double t = 2*y100 - 113;
+return 0.17476916455659369953e0 + (0.32531815370903068316e-2 + (0.29536024347344364074e-4 + (0.23309632627767074202e-6 + (0.15899007843582444846e-8 + (0.92610375235427359475e-11 + 0.45054073102222222221e-13 * t) * t) * t) * t) * t) * t;
+}
+case 57: {
+double t = 2*y100 - 115;
+return 0.18139556223643701364e0 + (0.33741744168096996041e-2 + (0.30973511714709500836e-4 + (0.24619326937592290996e-6 + (0.16852609412267750744e-8 + (0.98166442942854895573e-11 + 0.47565418097777777779e-13 * t) * t) * t) * t) * t) * t;
+}
+case 58: {
+double t = 2*y100 - 117;
+return 0.18826980194443664549e0 + (0.35010775057740317997e-2 + (0.32491914440014267480e-4 + (0.26007572375886319028e-6 + (0.17863299617388376116e-8 + (0.10403065638343878679e-10 + 0.50190265831111111110e-13 * t) * t) * t) * t) * t) * t;
+}
+case 59: {
+double t = 2*y100 - 119;
+return 0.19540403413693967350e0 + (0.36342240767211326315e-2 + (0.34096085096200907289e-4 + (0.27479061117017637474e-6 + (0.18934228504790032826e-8 + (0.11021679075323598664e-10 + 0.52931171733333333334e-13 * t) * t) * t) * t) * t) * t;
+}
+case 60: {
+double t = 2*y100 - 121;
+return 0.20281109560651886959e0 + (0.37739673859323597060e-2 + (0.35791165457592409054e-4 + (0.29038742889416172404e-6 + (0.20068685374849001770e-8 + (0.11673891799578381999e-10 + 0.55790523093333333334e-13 * t) * t) * t) * t) * t) * t;
+}
+case 61: {
+double t = 2*y100 - 123;
+return 0.21050455062669334978e0 + (0.39206818613925652425e-2 + (0.37582602289680101704e-4 + (0.30691836231886877385e-6 + (0.21270101645763677824e-8 + (0.12361138551062899455e-10 + 0.58770520160000000000e-13 * t) * t) * t) * t) * t) * t;
+}
+case 62: {
+double t = 2*y100 - 125;
+return 0.21849873453703332479e0 + (0.40747643554689586041e-2 + (0.39476163820986711501e-4 + (0.32443839970139918836e-6 + (0.22542053491518680200e-8 + (0.13084879235290858490e-10 + 0.61873153262222222221e-13 * t) * t) * t) * t) * t) * t;
+}
+case 63: {
+double t = 2*y100 - 127;
+return 0.22680879990043229327e0 + (0.42366354648628516935e-2 + (0.41477956909656896779e-4 + (0.34300544894502810002e-6 + (0.23888264229264067658e-8 + (0.13846596292818514601e-10 + 0.65100183751111111110e-13 * t) * t) * t) * t) * t) * t;
+}
+case 64: {
+double t = 2*y100 - 129;
+return 0.23545076536988703937e0 + (0.44067409206365170888e-2 + (0.43594444916224700881e-4 + (0.36268045617760415178e-6 + (0.25312606430853202748e-8 + (0.14647791812837903061e-10 + 0.68453122631111111110e-13 * t) * t) * t) * t) * t) * t;
+}
+case 65: {
+double t = 2*y100 - 131;
+return 0.24444156740777432838e0 + (0.45855530511605787178e-2 + (0.45832466292683085475e-4 + (0.38352752590033030472e-6 + (0.26819103733055603460e-8 + (0.15489984390884756993e-10 + 0.71933206364444444445e-13 * t) * t) * t) * t) * t) * t;
+}
+case 66: {
+double t = 2*y100 - 133;
+return 0.25379911500634264643e0 + (0.47735723208650032167e-2 + (0.48199253896534185372e-4 + (0.40561404245564732314e-6 + (0.28411932320871165585e-8 + (0.16374705736458320149e-10 + 0.75541379822222222221e-13 * t) * t) * t) * t) * t) * t;
+}
+case 67: {
+double t = 2*y100 - 135;
+return 0.26354234756393613032e0 + (0.49713289477083781266e-2 + (0.50702455036930367504e-4 + (0.42901079254268185722e-6 + (0.30095422058900481753e-8 + (0.17303497025347342498e-10 + 0.79278273368888888890e-13 * t) * t) * t) * t) * t) * t;
+}
+case 68: {
+double t = 2*y100 - 137;
+return 0.27369129607732343398e0 + (0.51793846023052643767e-2 + (0.53350152258326602629e-4 + (0.45379208848865015485e-6 + (0.31874057245814381257e-8 + (0.18277905010245111046e-10 + 0.83144182364444444445e-13 * t) * t) * t) * t) * t) * t;
+}
+case 69: {
+double t = 2*y100 - 139;
+return 0.28426714781640316172e0 + (0.53983341916695141966e-2 + (0.56150884865255810638e-4 + (0.48003589196494734238e-6 + (0.33752476967570796349e-8 + (0.19299477888083469086e-10 + 0.87139049137777777779e-13 * t) * t) * t) * t) * t) * t;
+}
+case 70: {
+double t = 2*y100 - 141;
+return 0.29529231465348519920e0 + (0.56288077305420795663e-2 + (0.59113671189913307427e-4 + (0.50782393781744840482e-6 + (0.35735475025851713168e-8 + (0.20369760937017070382e-10 + 0.91262442613333333334e-13 * t) * t) * t) * t) * t) * t;
+}
+case 71: {
+double t = 2*y100 - 143;
+return 0.30679050522528838613e0 + (0.58714723032745403331e-2 + (0.62248031602197686791e-4 + (0.53724185766200945789e-6 + (0.37827999418960232678e-8 + (0.21490291930444538307e-10 + 0.95513539182222222221e-13 * t) * t) * t) * t) * t) * t;
+}
+case 72: {
+double t = 2*y100 - 145;
+return 0.31878680111173319425e0 + (0.61270341192339103514e-2 + (0.65564012259707640976e-4 + (0.56837930287837738996e-6 + (0.40035151353392378882e-8 + (0.22662596341239294792e-10 + 0.99891109760000000000e-13 * t) * t) * t) * t) * t) * t;
+}
+case 73: {
+double t = 2*y100 - 147;
+return 0.33130773722152622027e0 + (0.63962406646798080903e-2 + (0.69072209592942396666e-4 + (0.60133006661885941812e-6 + (0.42362183765883466691e-8 + (0.23888182347073698382e-10 + 0.10439349811555555556e-12 * t) * t) * t) * t) * t) * t;
+}
+case 74: {
+double t = 2*y100 - 149;
+return 0.34438138658041336523e0 + (0.66798829540414007258e-2 + (0.72783795518603561144e-4 + (0.63619220443228800680e-6 + (0.44814499336514453364e-8 + (0.25168535651285475274e-10 + 0.10901861383111111111e-12 * t) * t) * t) * t) * t) * t;
+}
+case 75: {
+double t = 2*y100 - 151;
+return 0.35803744972380175583e0 + (0.69787978834882685031e-2 + (0.76710543371454822497e-4 + (0.67306815308917386747e-6 + (0.47397647975845228205e-8 + (0.26505114141143050509e-10 + 0.11376390933333333333e-12 * t) * t) * t) * t) * t) * t;
+}
+case 76: {
+double t = 2*y100 - 153;
+return 0.37230734890119724188e0 + (0.72938706896461381003e-2 + (0.80864854542670714092e-4 + (0.71206484718062688779e-6 + (0.50117323769745883805e-8 + (0.27899342394100074165e-10 + 0.11862637614222222222e-12 * t) * t) * t) * t) * t) * t;
+}
+case 77: {
+double t = 2*y100 - 155;
+return 0.38722432730555448223e0 + (0.76260375162549802745e-2 + (0.85259785810004603848e-4 + (0.75329383305171327677e-6 + (0.52979361368388119355e-8 + (0.29352606054164086709e-10 + 0.12360253370666666667e-12 * t) * t) * t) * t) * t) * t;
+}
+case 78: {
+double t = 2*y100 - 157;
+return 0.40282355354616940667e0 + (0.79762880915029728079e-2 + (0.89909077342438246452e-4 + (0.79687137961956194579e-6 + (0.55989731807360403195e-8 + (0.30866246101464869050e-10 + 0.12868841946666666667e-12 * t) * t) * t) * t) * t) * t;
+}
+case 79: {
+double t = 2*y100 - 159;
+return 0.41914223158913787649e0 + (0.83456685186950463538e-2 + (0.94827181359250161335e-4 + (0.84291858561783141014e-6 + (0.59154537751083485684e-8 + (0.32441553034347469291e-10 + 0.13387957943111111111e-12 * t) * t) * t) * t) * t) * t;
+}
+case 80: {
+double t = 2*y100 - 161;
+return 0.43621971639463786896e0 + (0.87352841828289495773e-2 + (0.10002929142066799966e-3 + (0.89156148280219880024e-6 + (0.62480008150788597147e-8 + (0.34079760983458878910e-10 + 0.13917107176888888889e-12 * t) * t) * t) * t) * t) * t;
+}
+case 81: {
+double t = 2*y100 - 163;
+return 0.45409763548534330981e0 + (0.91463027755548240654e-2 + (0.10553137232446167258e-3 + (0.94293113464638623798e-6 + (0.65972492312219959885e-8 + (0.35782041795476563662e-10 + 0.14455745872000000000e-12 * t) * t) * t) * t) * t) * t;
+}
+case 82: {
+double t = 2*y100 - 165;
+return 0.47282001668512331468e0 + (0.95799574408860463394e-2 + (0.11135019058000067469e-3 + (0.99716373005509038080e-6 + (0.69638453369956970347e-8 + (0.37549499088161345850e-10 + 0.15003280712888888889e-12 * t) * t) * t) * t) * t) * t;
+}
+case 83: {
+double t = 2*y100 - 167;
+return 0.49243342227179841649e0 + (0.10037550043909497071e-1 + (0.11750334542845234952e-3 + (0.10544006716188967172e-5 + (0.73484461168242224872e-8 + (0.39383162326435752965e-10 + 0.15559069118222222222e-12 * t) * t) * t) * t) * t) * t;
+}
+case 84: {
+double t = 2*y100 - 169;
+return 0.51298708979209258326e0 + (0.10520454564612427224e-1 + (0.12400930037494996655e-3 + (0.11147886579371265246e-5 + (0.77517184550568711454e-8 + (0.41283980931872622611e-10 + 0.16122419680000000000e-12 * t) * t) * t) * t) * t) * t;
+}
+case 85: {
+double t = 2*y100 - 171;
+return 0.53453307979101369843e0 + (0.11030120618800726938e-1 + (0.13088741519572269581e-3 + (0.11784797595374515432e-5 + (0.81743383063044825400e-8 + (0.43252818449517081051e-10 + 0.16692592640000000000e-12 * t) * t) * t) * t) * t) * t;
+}
+case 86: {
+double t = 2*y100 - 173;
+return 0.55712643071169299478e0 + (0.11568077107929735233e-1 + (0.13815797838036651289e-3 + (0.12456314879260904558e-5 + (0.86169898078969313597e-8 + (0.45290446811539652525e-10 + 0.17268801084444444444e-12 * t) * t) * t) * t) * t) * t;
+}
+case 87: {
+double t = 2*y100 - 175;
+return 0.58082532122519320968e0 + (0.12135935999503877077e-1 + (0.14584223996665838559e-3 + (0.13164068573095710742e-5 + (0.90803643355106020163e-8 + (0.47397540713124619155e-10 + 0.17850211608888888889e-12 * t) * t) * t) * t) * t) * t;
+}
+case 88: {
+double t = 2*y100 - 177;
+return 0.60569124025293375554e0 + (0.12735396239525550361e-1 + (0.15396244472258863344e-3 + (0.13909744385382818253e-5 + (0.95651595032306228245e-8 + (0.49574672127669041550e-10 + 0.18435945564444444444e-12 * t) * t) * t) * t) * t) * t;
+}
+case 89: {
+double t = 2*y100 - 179;
+return 0.63178916494715716894e0 + (0.13368247798287030927e-1 + (0.16254186562762076141e-3 + (0.14695084048334056083e-5 + (0.10072078109604152350e-7 + (0.51822304995680707483e-10 + 0.19025081422222222222e-12 * t) * t) * t) * t) * t) * t;
+}
+case 90: {
+double t = 2*y100 - 181;
+return 0.65918774689725319200e0 + (0.14036375850601992063e-1 + (0.17160483760259706354e-3 + (0.15521885688723188371e-5 + (0.10601827031535280590e-7 + (0.54140790105837520499e-10 + 0.19616655146666666667e-12 * t) * t) * t) * t) * t) * t;
+}
+case 91: {
+double t = 2*y100 - 183;
+return 0.68795950683174433822e0 + (0.14741765091365869084e-1 + (0.18117679143520433835e-3 + (0.16392004108230585213e-5 + (0.11155116068018043001e-7 + (0.56530360194925690374e-10 + 0.20209663662222222222e-12 * t) * t) * t) * t) * t) * t;
+}
+case 92: {
+double t = 2*y100 - 185;
+return 0.71818103808729967036e0 + (0.15486504187117112279e-1 + (0.19128428784550923217e-3 + (0.17307350969359975848e-5 + (0.11732656736113607751e-7 + (0.58991125287563833603e-10 + 0.20803065333333333333e-12 * t) * t) * t) * t) * t) * t;
+}
+case 93: {
+double t = 2*y100 - 187;
+return 0.74993321911726254661e0 + (0.16272790364044783382e-1 + (0.20195505163377912645e-3 + (0.18269894883203346953e-5 + (0.12335161021630225535e-7 + (0.61523068312169087227e-10 + 0.21395783431111111111e-12 * t) * t) * t) * t) * t) * t;
+}
+case 94: {
+double t = 2*y100 - 189;
+return 0.78330143531283492729e0 + (0.17102934132652429240e-1 + (0.21321800585063327041e-3 + (0.19281661395543913713e-5 + (0.12963340087354341574e-7 + (0.64126040998066348872e-10 + 0.21986708942222222222e-12 * t) * t) * t) * t) * t) * t;
+}
+case 95: {
+double t = 2*y100 - 191;
+return 0.81837581041023811832e0 + (0.17979364149044223802e-1 + (0.22510330592753129006e-3 + (0.20344732868018175389e-5 + (0.13617902941839949718e-7 + (0.66799760083972474642e-10 + 0.22574701262222222222e-12 * t) * t) * t) * t) * t) * t;
+}
+case 96: {
+double t = 2*y100 - 193;
+return 0.85525144775685126237e0 + (0.18904632212547561026e-1 + (0.23764237370371255638e-3 + (0.21461248251306387979e-5 + (0.14299555071870523786e-7 + (0.69543803864694171934e-10 + 0.23158593688888888889e-12 * t) * t) * t) * t) * t) * t;
+}
+case 97: {
+double t = 2*y100 - 195;
+return 0.89402868170849933734e0 + (0.19881418399127202569e-1 + (0.25086793128395995798e-3 + (0.22633402747585233180e-5 + (0.15008997042116532283e-7 + (0.72357609075043941261e-10 + 0.23737194737777777778e-12 * t) * t) * t) * t) * t) * t;
+}
+case 98: {
+double t = 2*y100 - 197;
+return 0.93481333942870796363e0 + (0.20912536329780368893e-1 + (0.26481403465998477969e-3 + (0.23863447359754921676e-5 + (0.15746923065472184451e-7 + (0.75240468141720143653e-10 + 0.24309291271111111111e-12 * t) * t) * t) * t) * t) * t;
+}
+case 99: {
+double t = 2*y100 - 199;
+return 0.97771701335885035464e0 + (0.22000938572830479551e-1 + (0.27951610702682383001e-3 + (0.25153688325245314530e-5 + (0.16514019547822821453e-7 + (0.78191526829368231251e-10 + 0.24873652355555555556e-12 * t) * t) * t) * t) * t) * t;
+}
+  }
+  // we only get here if y = 1, i.e. |x| < 4*eps, in which case
+  // erfcx is within 1e-15 of 1..
+  return 1.0;
+}
+
+double FADDEEVA_RE(erfcx)(double x)
+{
+  if (x >= 0) {
+    if (x > 50) { // continued-fraction expansion is faster
+      const double ispi = 0.56418958354775628694807945156; // 1 / sqrt(pi)
+      if (x > 5e7) // 1-term expansion, important to avoid overflow
+        return ispi / x;
+      /* 5-term expansion (rely on compiler for CSE), simplified from:
+                ispi / (x+0.5/(x+1/(x+1.5/(x+2/x))))  */
+      return ispi*((x*x) * (x*x+4.5) + 2) / (x * ((x*x) * (x*x+5) + 3.75));
+    }
+    return erfcx_y100(400/(4+x));
+  }
+  else
+    return x < -26.7 ? HUGE_VAL : (x < -6.1 ? 2*exp(x*x)
+                                   : 2*exp(x*x) - erfcx_y100(400/(4-x)));
+}
+
+/////////////////////////////////////////////////////////////////////////
+/* Compute a scaled Dawson integral
+            FADDEEVA(w_im)(x) = 2*Dawson(x)/sqrt(pi)
+   equivalent to the imaginary part w(x) for real x.
+
+   Uses methods similar to the erfcx calculation above: continued fractions
+   for large |x|, a lookup table of Chebyshev polynomials for smaller |x|,
+   and finally a Taylor expansion for |x|<0.01.
+
+   Steven G. Johnson, October 2012. */
+
+/* Given y100=100*y, where y = 1/(1+x) for x >= 0, compute w_im(x).
+
+   Uses a look-up table of 100 different Chebyshev polynomials
+   for y intervals [0,0.01], [0.01,0.02], ...., [0.99,1], generated
+   with the help of Maple and a little shell script.   This allows
+   the Chebyshev polynomials to be of significantly lower degree (about 1/30)
+   compared to fitting the whole [0,1] interval with a single polynomial. */
+static double w_im_y100(double y100, double x) {
+  switch ((int) y100) {
+    case 0: {
+      double t = 2*y100 - 1;
+      return 0.28351593328822191546e-2 + (0.28494783221378400759e-2 + (0.14427470563276734183e-4 + (0.10939723080231588129e-6 + (0.92474307943275042045e-9 + (0.89128907666450075245e-11 + 0.92974121935111111110e-13 * t) * t) * t) * t) * t) * t;
+    }
+    case 1: {
+      double t = 2*y100 - 3;
+      return 0.85927161243940350562e-2 + (0.29085312941641339862e-2 + (0.15106783707725582090e-4 + (0.11716709978531327367e-6 + (0.10197387816021040024e-8 + (0.10122678863073360769e-10 + 0.10917479678400000000e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 2: {
+      double t = 2*y100 - 5;
+      return 0.14471159831187703054e-1 + (0.29703978970263836210e-2 + (0.15835096760173030976e-4 + (0.12574803383199211596e-6 + (0.11278672159518415848e-8 + (0.11547462300333495797e-10 + 0.12894535335111111111e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 3: {
+      double t = 2*y100 - 7;
+      return 0.20476320420324610618e-1 + (0.30352843012898665856e-2 + (0.16617609387003727409e-4 + (0.13525429711163116103e-6 + (0.12515095552507169013e-8 + (0.13235687543603382345e-10 + 0.15326595042666666667e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 4: {
+      double t = 2*y100 - 9;
+      return 0.26614461952489004566e-1 + (0.31034189276234947088e-2 + (0.17460268109986214274e-4 + (0.14582130824485709573e-6 + (0.13935959083809746345e-8 + (0.15249438072998932900e-10 + 0.18344741882133333333e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 5: {
+      double t = 2*y100 - 11;
+      return 0.32892330248093586215e-1 + (0.31750557067975068584e-2 + (0.18369907582308672632e-4 + (0.15761063702089457882e-6 + (0.15577638230480894382e-8 + (0.17663868462699097951e-10 + (0.22126732680711111111e-12 + 0.30273474177737853668e-14 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 6: {
+      double t = 2*y100 - 13;
+      return 0.39317207681134336024e-1 + (0.32504779701937539333e-2 + (0.19354426046513400534e-4 + (0.17081646971321290539e-6 + (0.17485733959327106250e-8 + (0.20593687304921961410e-10 + (0.26917401949155555556e-12 + 0.38562123837725712270e-14 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 7: {
+      double t = 2*y100 - 15;
+      return 0.45896976511367738235e-1 + (0.33300031273110976165e-2 + (0.20423005398039037313e-4 + (0.18567412470376467303e-6 + (0.19718038363586588213e-8 + (0.24175006536781219807e-10 + (0.33059982791466666666e-12 + 0.49756574284439426165e-14 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 8: {
+      double t = 2*y100 - 17;
+      return 0.52640192524848962855e-1 + (0.34139883358846720806e-2 + (0.21586390240603337337e-4 + (0.20247136501568904646e-6 + (0.22348696948197102935e-8 + (0.28597516301950162548e-10 + (0.41045502119111111110e-12 + 0.65151614515238361946e-14 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 9: {
+      double t = 2*y100 - 19;
+      return 0.59556171228656770456e-1 + (0.35028374386648914444e-2 + (0.22857246150998562824e-4 + (0.22156372146525190679e-6 + (0.25474171590893813583e-8 + (0.34122390890697400584e-10 + (0.51593189879111111110e-12 + 0.86775076853908006938e-14 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 10: {
+      double t = 2*y100 - 21;
+      return 0.66655089485108212551e-1 + (0.35970095381271285568e-2 + (0.24250626164318672928e-4 + (0.24339561521785040536e-6 + (0.29221990406518411415e-8 + (0.41117013527967776467e-10 + (0.65786450716444444445e-12 + 0.11791885745450623331e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 11: {
+      double t = 2*y100 - 23;
+      return 0.73948106345519174661e-1 + (0.36970297216569341748e-2 + (0.25784588137312868792e-4 + (0.26853012002366752770e-6 + (0.33763958861206729592e-8 + (0.50111549981376976397e-10 + (0.85313857496888888890e-12 + 0.16417079927706899860e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 12: {
+      double t = 2*y100 - 25;
+      return 0.81447508065002963203e-1 + (0.38035026606492705117e-2 + (0.27481027572231851896e-4 + (0.29769200731832331364e-6 + (0.39336816287457655076e-8 + (0.61895471132038157624e-10 + (0.11292303213511111111e-11 + 0.23558532213703884304e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 13: {
+      double t = 2*y100 - 27;
+      return 0.89166884027582716628e-1 + (0.39171301322438946014e-2 + (0.29366827260422311668e-4 + (0.33183204390350724895e-6 + (0.46276006281647330524e-8 + (0.77692631378169813324e-10 + (0.15335153258844444444e-11 + 0.35183103415916026911e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 14: {
+      double t = 2*y100 - 29;
+      return 0.97121342888032322019e-1 + (0.40387340353207909514e-2 + (0.31475490395950776930e-4 + (0.37222714227125135042e-6 + (0.55074373178613809996e-8 + (0.99509175283990337944e-10 + (0.21552645758222222222e-11 + 0.55728651431872687605e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 15: {
+      double t = 2*y100 - 31;
+      return 0.10532778218603311137e0 + (0.41692873614065380607e-2 + (0.33849549774889456984e-4 + (0.42064596193692630143e-6 + (0.66494579697622432987e-8 + (0.13094103581931802337e-9 + (0.31896187409777777778e-11 + 0.97271974184476560742e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 16: {
+      double t = 2*y100 - 33;
+      return 0.11380523107427108222e0 + (0.43099572287871821013e-2 + (0.36544324341565929930e-4 + (0.47965044028581857764e-6 + (0.81819034238463698796e-8 + (0.17934133239549647357e-9 + (0.50956666166186293627e-11 + (0.18850487318190638010e-12 + 0.79697813173519853340e-14 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 17: {
+      double t = 2*y100 - 35;
+      return 0.12257529703447467345e0 + (0.44621675710026986366e-2 + (0.39634304721292440285e-4 + (0.55321553769873381819e-6 + (0.10343619428848520870e-7 + (0.26033830170470368088e-9 + (0.87743837749108025357e-11 + (0.34427092430230063401e-12 + 0.10205506615709843189e-13 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 18: {
+      double t = 2*y100 - 37;
+      return 0.13166276955656699478e0 + (0.46276970481783001803e-2 + (0.43225026380496399310e-4 + (0.64799164020016902656e-6 + (0.13580082794704641782e-7 + (0.39839800853954313927e-9 + (0.14431142411840000000e-10 + 0.42193457308830027541e-12 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 19: {
+      double t = 2*y100 - 39;
+      return 0.14109647869803356475e0 + (0.48088424418545347758e-2 + (0.47474504753352150205e-4 + (0.77509866468724360352e-6 + (0.18536851570794291724e-7 + (0.60146623257887570439e-9 + (0.18533978397305276318e-10 + (0.41033845938901048380e-13 - 0.46160680279304825485e-13 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 20: {
+      double t = 2*y100 - 41;
+      return 0.15091057940548936603e0 + (0.50086864672004685703e-2 + (0.52622482832192230762e-4 + (0.95034664722040355212e-6 + (0.25614261331144718769e-7 + (0.80183196716888606252e-9 + (0.12282524750534352272e-10 + (-0.10531774117332273617e-11 - 0.86157181395039646412e-13 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 21: {
+      double t = 2*y100 - 43;
+      return 0.16114648116017010770e0 + (0.52314661581655369795e-2 + (0.59005534545908331315e-4 + (0.11885518333915387760e-5 + (0.33975801443239949256e-7 + (0.82111547144080388610e-9 + (-0.12357674017312854138e-10 + (-0.24355112256914479176e-11 - 0.75155506863572930844e-13 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 22: {
+      double t = 2*y100 - 45;
+      return 0.17185551279680451144e0 + (0.54829002967599420860e-2 + (0.67013226658738082118e-4 + (0.14897400671425088807e-5 + (0.40690283917126153701e-7 + (0.44060872913473778318e-9 + (-0.52641873433280000000e-10 - 0.30940587864543343124e-11 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 23: {
+      double t = 2*y100 - 47;
+      return 0.18310194559815257381e0 + (0.57701559375966953174e-2 + (0.76948789401735193483e-4 + (0.18227569842290822512e-5 + (0.41092208344387212276e-7 + (-0.44009499965694442143e-9 + (-0.92195414685628803451e-10 + (-0.22657389705721753299e-11 + 0.10004784908106839254e-12 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 24: {
+      double t = 2*y100 - 49;
+      return 0.19496527191546630345e0 + (0.61010853144364724856e-2 + (0.88812881056342004864e-4 + (0.21180686746360261031e-5 + (0.30652145555130049203e-7 + (-0.16841328574105890409e-8 + (-0.11008129460612823934e-9 + (-0.12180794204544515779e-12 + 0.15703325634590334097e-12 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 25: {
+      double t = 2*y100 - 51;
+      return 0.20754006813966575720e0 + (0.64825787724922073908e-2 + (0.10209599627522311893e-3 + (0.22785233392557600468e-5 + (0.73495224449907568402e-8 + (-0.29442705974150112783e-8 + (-0.94082603434315016546e-10 + (0.23609990400179321267e-11 + 0.14141908654269023788e-12 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 26: {
+      double t = 2*y100 - 53;
+      return 0.22093185554845172146e0 + (0.69182878150187964499e-2 + (0.11568723331156335712e-3 + (0.22060577946323627739e-5 + (-0.26929730679360840096e-7 + (-0.38176506152362058013e-8 + (-0.47399503861054459243e-10 + (0.40953700187172127264e-11 + 0.69157730376118511127e-13 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 27: {
+      double t = 2*y100 - 55;
+      return 0.23524827304057813918e0 + (0.74063350762008734520e-2 + (0.12796333874615790348e-3 + (0.18327267316171054273e-5 + (-0.66742910737957100098e-7 + (-0.40204740975496797870e-8 + (0.14515984139495745330e-10 + (0.44921608954536047975e-11 - 0.18583341338983776219e-13 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 28: {
+      double t = 2*y100 - 57;
+      return 0.25058626331812744775e0 + (0.79377285151602061328e-2 + (0.13704268650417478346e-3 + (0.11427511739544695861e-5 + (-0.10485442447768377485e-6 + (-0.34850364756499369763e-8 + (0.72656453829502179208e-10 + (0.36195460197779299406e-11 - 0.84882136022200714710e-13 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 29: {
+      double t = 2*y100 - 59;
+      return 0.26701724900280689785e0 + (0.84959936119625864274e-2 + (0.14112359443938883232e-3 + (0.17800427288596909634e-6 + (-0.13443492107643109071e-6 + (-0.23512456315677680293e-8 + (0.11245846264695936769e-9 + (0.19850501334649565404e-11 - 0.11284666134635050832e-12 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 30: {
+      double t = 2*y100 - 61;
+      return 0.28457293586253654144e0 + (0.90581563892650431899e-2 + (0.13880520331140646738e-3 + (-0.97262302362522896157e-6 + (-0.15077100040254187366e-6 + (-0.88574317464577116689e-9 + (0.12760311125637474581e-9 + (0.20155151018282695055e-12 - 0.10514169375181734921e-12 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 31: {
+      double t = 2*y100 - 63;
+      return 0.30323425595617385705e0 + (0.95968346790597422934e-2 + (0.12931067776725883939e-3 + (-0.21938741702795543986e-5 + (-0.15202888584907373963e-6 + (0.61788350541116331411e-9 + (0.11957835742791248256e-9 + (-0.12598179834007710908e-11 - 0.75151817129574614194e-13 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 32: {
+      double t = 2*y100 - 65;
+      return 0.32292521181517384379e0 + (0.10082957727001199408e-1 + (0.11257589426154962226e-3 + (-0.33670890319327881129e-5 + (-0.13910529040004008158e-6 + (0.19170714373047512945e-8 + (0.94840222377720494290e-10 + (-0.21650018351795353201e-11 - 0.37875211678024922689e-13 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 33: {
+      double t = 2*y100 - 67;
+      return 0.34351233557911753862e0 + (0.10488575435572745309e-1 + (0.89209444197248726614e-4 + (-0.43893459576483345364e-5 + (-0.11488595830450424419e-6 + (0.28599494117122464806e-8 + (0.61537542799857777779e-10 - 0.24935749227658002212e-11 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 34: {
+      double t = 2*y100 - 69;
+      return 0.36480946642143669093e0 + (0.10789304203431861366e-1 + (0.60357993745283076834e-4 + (-0.51855862174130669389e-5 + (-0.83291664087289801313e-7 + (0.33898011178582671546e-8 + (0.27082948188277716482e-10 + (-0.23603379397408694974e-11 + 0.19328087692252869842e-13 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 35: {
+      double t = 2*y100 - 71;
+      return 0.38658679935694939199e0 + (0.10966119158288804999e-1 + (0.27521612041849561426e-4 + (-0.57132774537670953638e-5 + (-0.48404772799207914899e-7 + (0.35268354132474570493e-8 + (-0.32383477652514618094e-11 + (-0.19334202915190442501e-11 + 0.32333189861286460270e-13 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 36: {
+      double t = 2*y100 - 73;
+      return 0.40858275583808707870e0 + (0.11006378016848466550e-1 + (-0.76396376685213286033e-5 + (-0.59609835484245791439e-5 + (-0.13834610033859313213e-7 + (0.33406952974861448790e-8 + (-0.26474915974296612559e-10 + (-0.13750229270354351983e-11 + 0.36169366979417390637e-13 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 37: {
+      double t = 2*y100 - 75;
+      return 0.43051714914006682977e0 + (0.10904106549500816155e-1 + (-0.43477527256787216909e-4 + (-0.59429739547798343948e-5 + (0.17639200194091885949e-7 + (0.29235991689639918688e-8 + (-0.41718791216277812879e-10 + (-0.81023337739508049606e-12 + 0.33618915934461994428e-13 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 38: {
+      double t = 2*y100 - 77;
+      return 0.45210428135559607406e0 + (0.10659670756384400554e-1 + (-0.78488639913256978087e-4 + (-0.56919860886214735936e-5 + (0.44181850467477733407e-7 + (0.23694306174312688151e-8 + (-0.49492621596685443247e-10 + (-0.31827275712126287222e-12 + 0.27494438742721623654e-13 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 39: {
+      double t = 2*y100 - 79;
+      return 0.47306491195005224077e0 + (0.10279006119745977570e-1 + (-0.11140268171830478306e-3 + (-0.52518035247451432069e-5 + (0.64846898158889479518e-7 + (0.17603624837787337662e-8 + (-0.51129481592926104316e-10 + (0.62674584974141049511e-13 + 0.20055478560829935356e-13 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 40: {
+      double t = 2*y100 - 81;
+      return 0.49313638965719857647e0 + (0.97725799114772017662e-2 + (-0.14122854267291533334e-3 + (-0.46707252568834951907e-5 + (0.79421347979319449524e-7 + (0.11603027184324708643e-8 + (-0.48269605844397175946e-10 + (0.32477251431748571219e-12 + 0.12831052634143527985e-13 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 41: {
+      double t = 2*y100 - 83;
+      return 0.51208057433416004042e0 + (0.91542422354009224951e-2 + (-0.16726530230228647275e-3 + (-0.39964621752527649409e-5 + (0.88232252903213171454e-7 + (0.61343113364949928501e-9 + (-0.42516755603130443051e-10 + (0.47910437172240209262e-12 + 0.66784341874437478953e-14 * t) * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 42: {
+      double t = 2*y100 - 85;
+      return 0.52968945458607484524e0 + (0.84400880445116786088e-2 + (-0.18908729783854258774e-3 + (-0.32725905467782951931e-5 + (0.91956190588652090659e-7 + (0.14593989152420122909e-9 + (-0.35239490687644444445e-10 + 0.54613829888448694898e-12 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 43: {
+      double t = 2*y100 - 87;
+      return 0.54578857454330070965e0 + (0.76474155195880295311e-2 + (-0.20651230590808213884e-3 + (-0.25364339140543131706e-5 + (0.91455367999510681979e-7 + (-0.23061359005297528898e-9 + (-0.27512928625244444444e-10 + 0.54895806008493285579e-12 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 44: {
+      double t = 2*y100 - 89;
+      return 0.56023851910298493910e0 + (0.67938321739997196804e-2 + (-0.21956066613331411760e-3 + (-0.18181127670443266395e-5 + (0.87650335075416845987e-7 + (-0.51548062050366615977e-9 + (-0.20068462174044444444e-10 + 0.50912654909758187264e-12 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 45: {
+      double t = 2*y100 - 91;
+      return 0.57293478057455721150e0 + (0.58965321010394044087e-2 + (-0.22841145229276575597e-3 + (-0.11404605562013443659e-5 + (0.81430290992322326296e-7 + (-0.71512447242755357629e-9 + (-0.13372664928000000000e-10 + 0.44461498336689298148e-12 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 46: {
+      double t = 2*y100 - 93;
+      return 0.58380635448407827360e0 + (0.49717469530842831182e-2 + (-0.23336001540009645365e-3 + (-0.51952064448608850822e-6 + (0.73596577815411080511e-7 + (-0.84020916763091566035e-9 + (-0.76700972702222222221e-11 + 0.36914462807972467044e-12 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 47: {
+      double t = 2*y100 - 95;
+      return 0.59281340237769489597e0 + (0.40343592069379730568e-2 + (-0.23477963738658326185e-3 + (0.34615944987790224234e-7 + (0.64832803248395814574e-7 + (-0.90329163587627007971e-9 + (-0.30421940400000000000e-11 + 0.29237386653743536669e-12 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 48: {
+      double t = 2*y100 - 97;
+      return 0.59994428743114271918e0 + (0.30976579788271744329e-2 + (-0.23308875765700082835e-3 + (0.51681681023846925160e-6 + (0.55694594264948268169e-7 + (-0.91719117313243464652e-9 + (0.53982743680000000000e-12 + 0.22050829296187771142e-12 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 49: {
+      double t = 2*y100 - 99;
+      return 0.60521224471819875444e0 + (0.21732138012345456060e-2 + (-0.22872428969625997456e-3 + (0.92588959922653404233e-6 + (0.46612665806531930684e-7 + (-0.89393722514414153351e-9 + (0.31718550353777777778e-11 + 0.15705458816080549117e-12 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 50: {
+      double t = 2*y100 - 101;
+      return 0.60865189969791123620e0 + (0.12708480848877451719e-2 + (-0.22212090111534847166e-3 + (0.12636236031532793467e-5 + (0.37904037100232937574e-7 + (-0.84417089968101223519e-9 + (0.49843180828444444445e-11 + 0.10355439441049048273e-12 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 51: {
+      double t = 2*y100 - 103;
+      return 0.61031580103499200191e0 + (0.39867436055861038223e-3 + (-0.21369573439579869291e-3 + (0.15339402129026183670e-5 + (0.29787479206646594442e-7 + (-0.77687792914228632974e-9 + (0.61192452741333333334e-11 + 0.60216691829459295780e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 52: {
+      double t = 2*y100 - 105;
+      return 0.61027109047879835868e0 + (-0.43680904508059878254e-3 + (-0.20383783788303894442e-3 + (0.17421743090883439959e-5 + (0.22400425572175715576e-7 + (-0.69934719320045128997e-9 + (0.67152759655111111110e-11 + 0.26419960042578359995e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 53: {
+      double t = 2*y100 - 107;
+      return 0.60859639489217430521e0 + (-0.12305921390962936873e-2 + (-0.19290150253894682629e-3 + (0.18944904654478310128e-5 + (0.15815530398618149110e-7 + (-0.61726850580964876070e-9 + 0.68987888999111111110e-11 * t) * t) * t) * t) * t) * t;
+    }
+    case 54: {
+      double t = 2*y100 - 109;
+      return 0.60537899426486075181e0 + (-0.19790062241395705751e-2 + (-0.18120271393047062253e-3 + (0.19974264162313241405e-5 + (0.10055795094298172492e-7 + (-0.53491997919318263593e-9 + (0.67794550295111111110e-11 - 0.17059208095741511603e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 55: {
+      double t = 2*y100 - 111;
+      return 0.60071229457904110537e0 + (-0.26795676776166354354e-2 + (-0.16901799553627508781e-3 + (0.20575498324332621581e-5 + (0.51077165074461745053e-8 + (-0.45536079828057221858e-9 + (0.64488005516444444445e-11 - 0.29311677573152766338e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 56: {
+      double t = 2*y100 - 113;
+      return 0.59469361520112714738e0 + (-0.33308208190600993470e-2 + (-0.15658501295912405679e-3 + (0.20812116912895417272e-5 + (0.93227468760614182021e-9 + (-0.38066673740116080415e-9 + (0.59806790359111111110e-11 - 0.36887077278950440597e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 57: {
+      double t = 2*y100 - 115;
+      return 0.58742228631775388268e0 + (-0.39321858196059227251e-2 + (-0.14410441141450122535e-3 + (0.20743790018404020716e-5 + (-0.25261903811221913762e-8 + (-0.31212416519526924318e-9 + (0.54328422462222222221e-11 - 0.40864152484979815972e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 58: {
+      double t = 2*y100 - 117;
+      return 0.57899804200033018447e0 + (-0.44838157005618913447e-2 + (-0.13174245966501437965e-3 + (0.20425306888294362674e-5 + (-0.53330296023875447782e-8 + (-0.25041289435539821014e-9 + (0.48490437205333333334e-11 - 0.42162206939169045177e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 59: {
+      double t = 2*y100 - 119;
+      return 0.56951968796931245974e0 + (-0.49864649488074868952e-2 + (-0.11963416583477567125e-3 + (0.19906021780991036425e-5 + (-0.75580140299436494248e-8 + (-0.19576060961919820491e-9 + (0.42613011928888888890e-11 - 0.41539443304115604377e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 60: {
+      double t = 2*y100 - 121;
+      return 0.55908401930063918964e0 + (-0.54413711036826877753e-2 + (-0.10788661102511914628e-3 + (0.19229663322982839331e-5 + (-0.92714731195118129616e-8 + (-0.14807038677197394186e-9 + (0.36920870298666666666e-11 - 0.39603726688419162617e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 61: {
+      double t = 2*y100 - 123;
+      return 0.54778496152925675315e0 + (-0.58501497933213396670e-2 + (-0.96582314317855227421e-4 + (0.18434405235069270228e-5 + (-0.10541580254317078711e-7 + (-0.10702303407788943498e-9 + (0.31563175582222222222e-11 - 0.36829748079110481422e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 62: {
+      double t = 2*y100 - 125;
+      return 0.53571290831682823999e0 + (-0.62147030670760791791e-2 + (-0.85782497917111760790e-4 + (0.17553116363443470478e-5 + (-0.11432547349815541084e-7 + (-0.72157091369041330520e-10 + (0.26630811607111111111e-11 - 0.33578660425893164084e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 63: {
+      double t = 2*y100 - 127;
+      return 0.52295422962048434978e0 + (-0.65371404367776320720e-2 + (-0.75530164941473343780e-4 + (0.16613725797181276790e-5 + (-0.12003521296598910761e-7 + (-0.42929753689181106171e-10 + (0.22170894940444444444e-11 - 0.30117697501065110505e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 64: {
+      double t = 2*y100 - 129;
+      return 0.50959092577577886140e0 + (-0.68197117603118591766e-2 + (-0.65852936198953623307e-4 + (0.15639654113906716939e-5 + (-0.12308007991056524902e-7 + (-0.18761997536910939570e-10 + (0.18198628922666666667e-11 - 0.26638355362285200932e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 65: {
+      double t = 2*y100 - 131;
+      return 0.49570040481823167970e0 + (-0.70647509397614398066e-2 + (-0.56765617728962588218e-4 + (0.14650274449141448497e-5 + (-0.12393681471984051132e-7 + (0.92904351801168955424e-12 + (0.14706755960177777778e-11 - 0.23272455351266325318e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 66: {
+      double t = 2*y100 - 133;
+      return 0.48135536250935238066e0 + (-0.72746293327402359783e-2 + (-0.48272489495730030780e-4 + (0.13661377309113939689e-5 + (-0.12302464447599382189e-7 + (0.16707760028737074907e-10 + (0.11672928324444444444e-11 - 0.20105801424709924499e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 67: {
+      double t = 2*y100 - 135;
+      return 0.46662374675511439448e0 + (-0.74517177649528487002e-2 + (-0.40369318744279128718e-4 + (0.12685621118898535407e-5 + (-0.12070791463315156250e-7 + (0.29105507892605823871e-10 + (0.90653314645333333334e-12 - 0.17189503312102982646e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 68: {
+      double t = 2*y100 - 137;
+      return 0.45156879030168268778e0 + (-0.75983560650033817497e-2 + (-0.33045110380705139759e-4 + (0.11732956732035040896e-5 + (-0.11729986947158201869e-7 + (0.38611905704166441308e-10 + (0.68468768305777777779e-12 - 0.14549134330396754575e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 69: {
+      double t = 2*y100 - 139;
+      return 0.43624909769330896904e0 + (-0.77168291040309554679e-2 + (-0.26283612321339907756e-4 + (0.10811018836893550820e-5 + (-0.11306707563739851552e-7 + (0.45670446788529607380e-10 + (0.49782492549333333334e-12 - 0.12191983967561779442e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 70: {
+      double t = 2*y100 - 141;
+      return 0.42071877443548481181e0 + (-0.78093484015052730097e-2 + (-0.20064596897224934705e-4 + (0.99254806680671890766e-6 + (-0.10823412088884741451e-7 + (0.50677203326904716247e-10 + (0.34200547594666666666e-12 - 0.10112698698356194618e-13 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 71: {
+      double t = 2*y100 - 143;
+      return 0.40502758809710844280e0 + (-0.78780384460872937555e-2 + (-0.14364940764532853112e-4 + (0.90803709228265217384e-6 + (-0.10298832847014466907e-7 + (0.53981671221969478551e-10 + (0.21342751381333333333e-12 - 0.82975901848387729274e-14 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 72: {
+      double t = 2*y100 - 145;
+      return 0.38922115269731446690e0 + (-0.79249269708242064120e-2 + (-0.91595258799106970453e-5 + (0.82783535102217576495e-6 + (-0.97484311059617744437e-8 + (0.55889029041660225629e-10 + (0.10851981336888888889e-12 - 0.67278553237853459757e-14 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 73: {
+      double t = 2*y100 - 147;
+      return 0.37334112915460307335e0 + (-0.79519385109223148791e-2 + (-0.44219833548840469752e-5 + (0.75209719038240314732e-6 + (-0.91848251458553190451e-8 + (0.56663266668051433844e-10 + (0.23995894257777777778e-13 - 0.53819475285389344313e-14 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 74: {
+      double t = 2*y100 - 149;
+      return 0.35742543583374223085e0 + (-0.79608906571527956177e-2 + (-0.12530071050975781198e-6 + (0.68088605744900552505e-6 + (-0.86181844090844164075e-8 + (0.56530784203816176153e-10 + (-0.43120012248888888890e-13 - 0.42372603392496813810e-14 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 75: {
+      double t = 2*y100 - 151;
+      return 0.34150846431979618536e0 + (-0.79534924968773806029e-2 + (0.37576885610891515813e-5 + (0.61419263633090524326e-6 + (-0.80565865409945960125e-8 + (0.55684175248749269411e-10 + (-0.95486860764444444445e-13 - 0.32712946432984510595e-14 * t) * t) * t) * t) * t) * t) * t;
+    }
+    case 76: {
+      double t = 2*y100 - 153;
+      return 0.32562129649136346824e0 + (-0.79313448067948884309e-2 + (0.72539159933545300034e-5 + (0.55195028297415503083e-6 + (-0.75063365335570475258e-8 + (0.54281686749699595941e-10 - 0.13545424295111111111e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 77: {
+      double t = 2*y100 - 155;
+      return 0.30979191977078391864e0 + (-0.78959416264207333695e-2 + (0.10389774377677210794e-4 + (0.49404804463196316464e-6 + (-0.69722488229411164685e-8 + (0.52469254655951393842e-10 - 0.16507860650666666667e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 78: {
+      double t = 2*y100 - 157;
+      return 0.29404543811214459904e0 + (-0.78486728990364155356e-2 + (0.13190885683106990459e-4 + (0.44034158861387909694e-6 + (-0.64578942561562616481e-8 + (0.50354306498006928984e-10 - 0.18614473550222222222e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 79: {
+      double t = 2*y100 - 159;
+      return 0.27840427686253660515e0 + (-0.77908279176252742013e-2 + (0.15681928798708548349e-4 + (0.39066226205099807573e-6 + (-0.59658144820660420814e-8 + (0.48030086420373141763e-10 - 0.20018995173333333333e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 80: {
+      double t = 2*y100 - 161;
+      return 0.26288838011163800908e0 + (-0.77235993576119469018e-2 + (0.17886516796198660969e-4 + (0.34482457073472497720e-6 + (-0.54977066551955420066e-8 + (0.45572749379147269213e-10 - 0.20852924954666666667e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 81: {
+      double t = 2*y100 - 163;
+      return 0.24751539954181029717e0 + (-0.76480877165290370975e-2 + (0.19827114835033977049e-4 + (0.30263228619976332110e-6 + (-0.50545814570120129947e-8 + (0.43043879374212005966e-10 - 0.21228012028444444444e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 82: {
+      double t = 2*y100 - 165;
+      return 0.23230087411688914593e0 + (-0.75653060136384041587e-2 + (0.21524991113020016415e-4 + (0.26388338542539382413e-6 + (-0.46368974069671446622e-8 + (0.40492715758206515307e-10 - 0.21238627815111111111e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 83: {
+      double t = 2*y100 - 167;
+      return 0.21725840021297341931e0 + (-0.74761846305979730439e-2 + (0.23000194404129495243e-4 + (0.22837400135642906796e-6 + (-0.42446743058417541277e-8 + (0.37958104071765923728e-10 - 0.20963978568888888889e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 84: {
+      double t = 2*y100 - 169;
+      return 0.20239979200788191491e0 + (-0.73815761980493466516e-2 + (0.24271552727631854013e-4 + (0.19590154043390012843e-6 + (-0.38775884642456551753e-8 + (0.35470192372162901168e-10 - 0.20470131678222222222e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 85: {
+      double t = 2*y100 - 171;
+      return 0.18773523211558098962e0 + (-0.72822604530339834448e-2 + (0.25356688567841293697e-4 + (0.16626710297744290016e-6 + (-0.35350521468015310830e-8 + (0.33051896213898864306e-10 - 0.19811844544000000000e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 86: {
+      double t = 2*y100 - 173;
+      return 0.17327341258479649442e0 + (-0.71789490089142761950e-2 + (0.26272046822383820476e-4 + (0.13927732375657362345e-6 + (-0.32162794266956859603e-8 + (0.30720156036105652035e-10 - 0.19034196304000000000e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 87: {
+      double t = 2*y100 - 175;
+      return 0.15902166648328672043e0 + (-0.70722899934245504034e-2 + (0.27032932310132226025e-4 + (0.11474573347816568279e-6 + (-0.29203404091754665063e-8 + (0.28487010262547971859e-10 - 0.18174029063111111111e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 88: {
+      double t = 2*y100 - 177;
+      return 0.14498609036610283865e0 + (-0.69628725220045029273e-2 + (0.27653554229160596221e-4 + (0.92493727167393036470e-7 + (-0.26462055548683583849e-8 + (0.26360506250989943739e-10 - 0.17261211260444444444e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 89: {
+      double t = 2*y100 - 179;
+      return 0.13117165798208050667e0 + (-0.68512309830281084723e-2 + (0.28147075431133863774e-4 + (0.72351212437979583441e-7 + (-0.23927816200314358570e-8 + (0.24345469651209833155e-10 - 0.16319736960000000000e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 90: {
+      double t = 2*y100 - 181;
+      return 0.11758232561160626306e0 + (-0.67378491192463392927e-2 + (0.28525664781722907847e-4 + (0.54156999310046790024e-7 + (-0.21589405340123827823e-8 + (0.22444150951727334619e-10 - 0.15368675584000000000e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 91: {
+      double t = 2*y100 - 183;
+      return 0.10422112945361673560e0 + (-0.66231638959845581564e-2 + (0.28800551216363918088e-4 + (0.37758983397952149613e-7 + (-0.19435423557038933431e-8 + (0.20656766125421362458e-10 - 0.14422990012444444444e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 92: {
+      double t = 2*y100 - 185;
+      return 0.91090275493541084785e-1 + (-0.65075691516115160062e-2 + (0.28982078385527224867e-4 + (0.23014165807643012781e-7 + (-0.17454532910249875958e-8 + (0.18981946442680092373e-10 - 0.13494234691555555556e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 93: {
+      double t = 2*y100 - 187;
+      return 0.78191222288771379358e-1 + (-0.63914190297303976434e-2 + (0.29079759021299682675e-4 + (0.97885458059415717014e-8 + (-0.15635596116134296819e-8 + (0.17417110744051331974e-10 - 0.12591151763555555556e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 94: {
+      double t = 2*y100 - 189;
+      return 0.65524757106147402224e-1 + (-0.62750311956082444159e-2 + (0.29102328354323449795e-4 + (-0.20430838882727954582e-8 + (-0.13967781903855367270e-8 + (0.15958771833747057569e-10 - 0.11720175765333333333e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 95: {
+      double t = 2*y100 - 191;
+      return 0.53091065838453612773e-1 + (-0.61586898417077043662e-2 + (0.29057796072960100710e-4 + (-0.12597414620517987536e-7 + (-0.12440642607426861943e-8 + (0.14602787128447932137e-10 - 0.10885859114666666667e-12 * t) * t) * t) * t) * t) * t;
+    }
+    case 96: {
+      double t = 2*y100 - 193;
+      return 0.40889797115352738582e-1 + (-0.60426484889413678200e-2 + (0.28953496450191694606e-4 + (-0.21982952021823718400e-7 + (-0.11044169117553026211e-8 + (0.13344562332430552171e-10 - 0.10091231402844444444e-12 * t) * t) * t) * t) * t) * t;
+    }
+  case 97: case 98:
+  case 99: case 100: { // use Taylor expansion for small x (|x| <= 0.0309...)
+      //  (2/sqrt(pi)) * (x - 2/3 x^3  + 4/15 x^5  - 8/105 x^7 + 16/945 x^9)
+      double x2 = x*x;
+      return x * (1.1283791670955125739
+                  - x2 * (0.75225277806367504925
+                          - x2 * (0.30090111122547001970
+                                  - x2 * (0.085971746064420005629
+                                          - x2 * 0.016931216931216931217))));
+    }
+  }
+  /* Since 0 <= y100 < 101, this is only reached if x is NaN,
+     in which case we should return NaN. */
+  return NaN;
+}
+
+double FADDEEVA(w_im)(double x)
+{
+  if (x >= 0) {
+    if (x > 45) { // continued-fraction expansion is faster
+      const double ispi = 0.56418958354775628694807945156; // 1 / sqrt(pi)
+      if (x > 5e7) // 1-term expansion, important to avoid overflow
+        return ispi / x;
+      /* 5-term expansion (rely on compiler for CSE), simplified from:
+                ispi / (x-0.5/(x-1/(x-1.5/(x-2/x))))  */
+      return ispi*((x*x) * (x*x-4.5) + 2) / (x * ((x*x) * (x*x-5) + 3.75));
+    }
+    return w_im_y100(100/(1+x), x);
+  }
+  else { // = -FADDEEVA(w_im)(-x)
+    if (x < -45) { // continued-fraction expansion is faster
+      const double ispi = 0.56418958354775628694807945156; // 1 / sqrt(pi)
+      if (x < -5e7) // 1-term expansion, important to avoid overflow
+        return ispi / x;
+      /* 5-term expansion (rely on compiler for CSE), simplified from:
+                ispi / (x-0.5/(x-1/(x-1.5/(x-2/x))))  */
+      return ispi*((x*x) * (x*x-4.5) + 2) / (x * ((x*x) * (x*x-5) + 3.75));
+    }
+    return -w_im_y100(100/(1-x), -x);
+  }
+}
+
+/////////////////////////////////////////////////////////////////////////
+
+// Compile with -DTEST_FADDEEVA to compile a little test program
+#ifdef TEST_FADDEEVA
+
+#ifdef __cplusplus
+#  include <cstdio>
+#else
+#  include <stdio.h>
+#endif
+
+// compute relative error |b-a|/|a|, handling case of NaN and Inf,
+static double relerr(double a, double b) {
+  if (isnan(a) || isnan(b) || isinf(a) || isinf(b)) {
+    if ((isnan(a) && !isnan(b)) || (!isnan(a) && isnan(b)) ||
+        (isinf(a) && !isinf(b)) || (!isinf(a) && isinf(b)) ||
+        (isinf(a) && isinf(b) && a*b < 0))
+      return Inf; // "infinite" error
+    return 0; // matching infinity/nan results counted as zero error
+  }
+  if (a == 0)
+    return b == 0 ? 0 : Inf;
+  else
+    return fabs((b-a) / a);
+}
+
+int main(void) {
+  double errmax_all = 0;
+  {
+    printf("############# w(z) tests #############\n");
+#define NTST 57 // define instead of const for C compatibility
+    cmplx z[NTST] = {
+      C(624.2,-0.26123),
+      C(-0.4,3.),
+      C(0.6,2.),
+      C(-1.,1.),
+      C(-1.,-9.),
+      C(-1.,9.),
+      C(-0.0000000234545,1.1234),
+      C(-3.,5.1),
+      C(-53,30.1),
+      C(0.0,0.12345),
+      C(11,1),
+      C(-22,-2),
+      C(9,-28),
+      C(21,-33),
+      C(1e5,1e5),
+      C(1e14,1e14),
+      C(-3001,-1000),
+      C(1e160,-1e159),
+      C(-6.01,0.01),
+      C(-0.7,-0.7),
+      C(2.611780000000000e+01, 4.540909610972489e+03),
+      C(0.8e7,0.3e7),
+      C(-20,-19.8081),
+      C(1e-16,-1.1e-16),
+      C(2.3e-8,1.3e-8),
+      C(6.3,-1e-13),
+      C(6.3,1e-20),
+      C(1e-20,6.3),
+      C(1e-20,16.3),
+      C(9,1e-300),
+      C(6.01,0.11),
+      C(8.01,1.01e-10),
+      C(28.01,1e-300),
+      C(10.01,1e-200),
+      C(10.01,-1e-200),
+      C(10.01,0.99e-10),
+      C(10.01,-0.99e-10),
+      C(1e-20,7.01),
+      C(-1,7.01),
+      C(5.99,7.01),
+      C(1,0),
+      C(55,0),
+      C(-0.1,0),
+      C(1e-20,0),
+      C(0,5e-14),
+      C(0,51),
+      C(Inf,0),
+      C(-Inf,0),
+      C(0,Inf),
+      C(0,-Inf),
+      C(Inf,Inf),
+      C(Inf,-Inf),
+      C(NaN,NaN),
+      C(NaN,0),
+      C(0,NaN),
+      C(NaN,Inf),
+      C(Inf,NaN)
+    };
+    cmplx w[NTST] = { /* w(z), computed with WolframAlpha
+                                   ... note that WolframAlpha is problematic
+                                   some of the above inputs, so I had to
+                                   use the continued-fraction expansion
+                                   in WolframAlpha in some cases, or switch
+                                   to Maple */
+      C(-3.78270245518980507452677445620103199303131110e-7,
+        0.000903861276433172057331093754199933411710053155),
+      C(0.1764906227004816847297495349730234591778719532788,
+        -0.02146550539468457616788719893991501311573031095617),
+      C(0.2410250715772692146133539023007113781272362309451,
+        0.06087579663428089745895459735240964093522265589350),
+      C(0.30474420525691259245713884106959496013413834051768,
+        -0.20821893820283162728743734725471561394145872072738),
+      C(7.317131068972378096865595229600561710140617977e34,
+        8.321873499714402777186848353320412813066170427e34),
+      C(0.0615698507236323685519612934241429530190806818395,
+        -0.00676005783716575013073036218018565206070072304635),
+      C(0.3960793007699874918961319170187598400134746631,
+        -5.593152259116644920546186222529802777409274656e-9),
+      C(0.08217199226739447943295069917990417630675021771804,
+        -0.04701291087643609891018366143118110965272615832184),
+      C(0.00457246000350281640952328010227885008541748668738,
+        -0.00804900791411691821818731763401840373998654987934),
+      C(0.8746342859608052666092782112565360755791467973338452,
+        0.),
+      C(0.00468190164965444174367477874864366058339647648741,
+        0.0510735563901306197993676329845149741675029197050),
+      C(-0.0023193175200187620902125853834909543869428763219,
+        -0.025460054739731556004902057663500272721780776336),
+      C(9.11463368405637174660562096516414499772662584e304,
+        3.97101807145263333769664875189354358563218932e305),
+      C(-4.4927207857715598976165541011143706155432296e281,
+        -2.8019591213423077494444700357168707775769028e281),
+      C(2.820947917809305132678577516325951485807107151e-6,
+        2.820947917668257736791638444590253942253354058e-6),
+      C(2.82094791773878143474039725787438662716372268e-15,
+        2.82094791773878143474039725773333923127678361e-15),
+      C(-0.0000563851289696244350147899376081488003110150498,
+        -0.000169211755126812174631861529808288295454992688),
+      C(-5.586035480670854326218608431294778077663867e-162,
+        5.586035480670854326218608431294778077663867e-161),
+      C(0.00016318325137140451888255634399123461580248456,
+        -0.095232456573009287370728788146686162555021209999),
+      C(0.69504753678406939989115375989939096800793577783885,
+        -1.8916411171103639136680830887017670616339912024317),
+      C(0.0001242418269653279656612334210746733213167234822,
+        7.145975826320186888508563111992099992116786763e-7),
+      C(2.318587329648353318615800865959225429377529825e-8,
+        6.182899545728857485721417893323317843200933380e-8),
+      C(-0.0133426877243506022053521927604277115767311800303,
+        -0.0148087097143220769493341484176979826888871576145),
+      C(1.00000000000000012412170838050638522857747934,
+        1.12837916709551279389615890312156495593616433e-16),
+      C(0.9999999853310704677583504063775310832036830015,
+        2.595272024519678881897196435157270184030360773e-8),
+      C(-1.4731421795638279504242963027196663601154624e-15,
+        0.090727659684127365236479098488823462473074709),
+      C(5.79246077884410284575834156425396800754409308e-18,
+        0.0907276596841273652364790985059772809093822374),
+      C(0.0884658993528521953466533278764830881245144368,
+        1.37088352495749125283269718778582613192166760e-22),
+      C(0.0345480845419190424370085249304184266813447878,
+        2.11161102895179044968099038990446187626075258e-23),
+      C(6.63967719958073440070225527042829242391918213e-36,
+        0.0630820900592582863713653132559743161572639353),
+      C(0.00179435233208702644891092397579091030658500743634,
+        0.0951983814805270647939647438459699953990788064762),
+      C(9.09760377102097999924241322094863528771095448e-13,
+        0.0709979210725138550986782242355007611074966717),
+      C(7.2049510279742166460047102593255688682910274423e-304,
+        0.0201552956479526953866611812593266285000876784321),
+      C(3.04543604652250734193622967873276113872279682e-44,
+        0.0566481651760675042930042117726713294607499165),
+      C(3.04543604652250734193622967873276113872279682e-44,
+        0.0566481651760675042930042117726713294607499165),
+      C(0.5659928732065273429286988428080855057102069081e-12,
+        0.056648165176067504292998527162143030538756683302),
+      C(-0.56599287320652734292869884280802459698927645e-12,
+        0.0566481651760675042929985271621430305387566833029),
+      C(0.0796884251721652215687859778119964009569455462,
+        1.11474461817561675017794941973556302717225126e-22),
+      C(0.07817195821247357458545539935996687005781943386550,
+        -0.01093913670103576690766705513142246633056714279654),
+      C(0.04670032980990449912809326141164730850466208439937,
+        0.03944038961933534137558064191650437353429669886545),
+      C(0.36787944117144232159552377016146086744581113103176,
+        0.60715770584139372911503823580074492116122092866515),
+      C(0,
+        0.010259688805536830986089913987516716056946786526145),
+      C(0.99004983374916805357390597718003655777207908125383,
+        -0.11208866436449538036721343053869621153527769495574),
+      C(0.99999999999999999999999999999999999999990000,
+        1.12837916709551257389615890312154517168802603e-20),
+      C(0.999999999999943581041645226871305192054749891144158,
+        0),
+      C(0.0110604154853277201542582159216317923453996211744250,
+        0),
+      C(0,0),
+      C(0,0),
+      C(0,0),
+      C(Inf,0),
+      C(0,0),
+      C(NaN,NaN),
+      C(NaN,NaN),
+      C(NaN,NaN),
+      C(NaN,0),
+      C(NaN,NaN),
+      C(NaN,NaN)
+    };
+    double errmax = 0;
+    for (int i = 0; i < NTST; ++i) {
+      cmplx fw = FADDEEVA(w)(z[i],0.);
+      double re_err = relerr(creal(w[i]), creal(fw));
+      double im_err = relerr(cimag(w[i]), cimag(fw));
+      printf("w(%g%+gi) = %g%+gi (vs. %g%+gi), re/im rel. err. = %0.2g/%0.2g)\n",
+             creal(z[i]),cimag(z[i]), creal(fw),cimag(fw), creal(w[i]),cimag(w[i]),
+             re_err, im_err);
+      if (re_err > errmax) errmax = re_err;
+      if (im_err > errmax) errmax = im_err;
+    }
+    if (errmax > 1e-13) {
+      printf("FAILURE -- relative error %g too large!\n", errmax);
+      return 1;
+    }
+    printf("SUCCESS (max relative error = %g)\n", errmax);
+    if (errmax > errmax_all) errmax_all = errmax;
+  }
+  {
+#undef NTST
+#define NTST 41 // define instead of const for C compatibility
+    cmplx z[NTST] = {
+      C(1,2),
+      C(-1,2),
+      C(1,-2),
+      C(-1,-2),
+      C(9,-28),
+      C(21,-33),
+      C(1e3,1e3),
+      C(-3001,-1000),
+      C(1e160,-1e159),
+      C(5.1e-3, 1e-8),
+      C(-4.9e-3, 4.95e-3),
+      C(4.9e-3, 0.5),
+      C(4.9e-4, -0.5e1),
+      C(-4.9e-5, -0.5e2),
+      C(5.1e-3, 0.5),
+      C(5.1e-4, -0.5e1),
+      C(-5.1e-5, -0.5e2),
+      C(1e-6,2e-6),
+      C(0,2e-6),
+      C(0,2),
+      C(0,20),
+      C(0,200),
+      C(Inf,0),
+      C(-Inf,0),
+      C(0,Inf),
+      C(0,-Inf),
+      C(Inf,Inf),
+      C(Inf,-Inf),
+      C(NaN,NaN),
+      C(NaN,0),
+      C(0,NaN),
+      C(NaN,Inf),
+      C(Inf,NaN),
+      C(1e-3,NaN),
+      C(7e-2,7e-2),
+      C(7e-2,-7e-4),
+      C(-9e-2,7e-4),
+      C(-9e-2,9e-2),
+      C(-7e-4,9e-2),
+      C(7e-2,0.9e-2),
+      C(7e-2,1.1e-2)
+    };
+    cmplx w[NTST] = { // erf(z[i]), evaluated with Maple
+      C(-0.5366435657785650339917955593141927494421,
+        -5.049143703447034669543036958614140565553),
+      C(0.5366435657785650339917955593141927494421,
+        -5.049143703447034669543036958614140565553),
+      C(-0.5366435657785650339917955593141927494421,
+        5.049143703447034669543036958614140565553),
+      C(0.5366435657785650339917955593141927494421,
+        5.049143703447034669543036958614140565553),
+      C(0.3359473673830576996788000505817956637777e304,
+        -0.1999896139679880888755589794455069208455e304),
+      C(0.3584459971462946066523939204836760283645e278,
+        0.3818954885257184373734213077678011282505e280),
+      C(0.9996020422657148639102150147542224526887,
+        0.00002801044116908227889681753993542916894856),
+      C(-1, 0),
+      C(1, 0),
+      C(0.005754683859034800134412990541076554934877,
+        0.1128349818335058741511924929801267822634e-7),
+      C(-0.005529149142341821193633460286828381876955,
+        0.005585388387864706679609092447916333443570),
+      C(0.007099365669981359632319829148438283865814,
+        0.6149347012854211635026981277569074001219),
+      C(0.3981176338702323417718189922039863062440e8,
+        -0.8298176341665249121085423917575122140650e10),
+      C(-Inf,
+        -Inf),
+      C(0.007389128308257135427153919483147229573895,
+        0.6149332524601658796226417164791221815139),
+      C(0.4143671923267934479245651547534414976991e8,
+        -0.8298168216818314211557046346850921446950e10),
+      C(-Inf,
+        -Inf),
+      C(0.1128379167099649964175513742247082845155e-5,
+        0.2256758334191777400570377193451519478895e-5),
+      C(0,
+        0.2256758334194034158904576117253481476197e-5),
+      C(0,
+        18.56480241457555259870429191324101719886),
+      C(0,
+        0.1474797539628786202447733153131835124599e173),
+      C(0,
+        Inf),
+      C(1,0),
+      C(-1,0),
+      C(0,Inf),
+      C(0,-Inf),
+      C(NaN,NaN),
+      C(NaN,NaN),
+      C(NaN,NaN),
+      C(NaN,0),
+      C(0,NaN),
+      C(NaN,NaN),
+      C(NaN,NaN),
+      C(NaN,NaN),
+      C(0.07924380404615782687930591956705225541145,
+        0.07872776218046681145537914954027729115247),
+      C(0.07885775828512276968931773651224684454495,
+        -0.0007860046704118224342390725280161272277506),
+      C(-0.1012806432747198859687963080684978759881,
+        0.0007834934747022035607566216654982820299469),
+      C(-0.1020998418798097910247132140051062512527,
+        0.1010030778892310851309082083238896270340),
+      C(-0.0007962891763147907785684591823889484764272,
+        0.1018289385936278171741809237435404896152),
+      C(0.07886408666470478681566329888615410479530,
+        0.01010604288780868961492224347707949372245),
+      C(0.07886723099940260286824654364807981336591,
+        0.01235199327873258197931147306290916629654)
+    };
+#define TST(f,isc)                                                      \
+    printf("############# " #f "(z) tests #############\n");            \
+    double errmax = 0;                                                  \
+    for (int i = 0; i < NTST; ++i) {                                    \
+      cmplx fw = FADDEEVA(f)(z[i],0.);                  \
+      double re_err = relerr(creal(w[i]), creal(fw));                   \
+      double im_err = relerr(cimag(w[i]), cimag(fw));                   \
+      printf(#f "(%g%+gi) = %g%+gi (vs. %g%+gi), re/im rel. err. = %0.2g/%0.2g)\n", \
+             creal(z[i]),cimag(z[i]), creal(fw),cimag(fw), creal(w[i]),cimag(w[i]), \
+             re_err, im_err);                                           \
+      if (re_err > errmax) errmax = re_err;                             \
+      if (im_err > errmax) errmax = im_err;                             \
+    }                                                                   \
+    if (errmax > 1e-13) {                                               \
+      printf("FAILURE -- relative error %g too large!\n", errmax);      \
+      return 1;                                                         \
+    }                                                                   \
+    printf("Checking " #f "(x) special case...\n");                     \
+    for (int i = 0; i < 10000; ++i) {                                   \
+      double x = pow(10., -300. + i * 600. / (10000 - 1));              \
+      double re_err = relerr(FADDEEVA_RE(f)(x),                         \
+                             creal(FADDEEVA(f)(C(x,x*isc),0.)));        \
+      if (re_err > errmax) errmax = re_err;                             \
+      re_err = relerr(FADDEEVA_RE(f)(-x),                               \
+                      creal(FADDEEVA(f)(C(-x,x*isc),0.)));              \
+      if (re_err > errmax) errmax = re_err;                             \
+    }                                                                   \
+    {                                                                   \
+      double re_err = relerr(FADDEEVA_RE(f)(Inf),                       \
+                             creal(FADDEEVA(f)(C(Inf,0.),0.))); \
+      if (re_err > errmax) errmax = re_err;                             \
+      re_err = relerr(FADDEEVA_RE(f)(-Inf),                             \
+                      creal(FADDEEVA(f)(C(-Inf,0.),0.)));               \
+      if (re_err > errmax) errmax = re_err;                             \
+      re_err = relerr(FADDEEVA_RE(f)(NaN),                              \
+                      creal(FADDEEVA(f)(C(NaN,0.),0.)));                \
+      if (re_err > errmax) errmax = re_err;                             \
+    }                                                                   \
+    if (errmax > 1e-13) {                                               \
+      printf("FAILURE -- relative error %g too large!\n", errmax);      \
+      return 1;                                                         \
+    }                                                                   \
+    printf("SUCCESS (max relative error = %g)\n", errmax);              \
+    if (errmax > errmax_all) errmax_all = errmax
+
+    TST(erf, 1e-20);
+  }
+  {
+    // since erfi just calls through to erf, just one test should
+    // be sufficient to make sure I didn't screw up the signs or something
+#undef NTST
+#define NTST 1 // define instead of const for C compatibility
+    cmplx z[NTST] = { C(1.234,0.5678) };
+    cmplx w[NTST] = { // erfi(z[i]), computed with Maple
+      C(1.081032284405373149432716643834106923212,
+        1.926775520840916645838949402886591180834)
+    };
+    TST(erfi, 0);
+  }
+  {
+    // since erfcx just calls through to w, just one test should
+    // be sufficient to make sure I didn't screw up the signs or something
+#undef NTST
+#define NTST 1 // define instead of const for C compatibility
+    cmplx z[NTST] = { C(1.234,0.5678) };
+    cmplx w[NTST] = { // erfcx(z[i]), computed with Maple
+      C(0.3382187479799972294747793561190487832579,
+        -0.1116077470811648467464927471872945833154)
+    };
+    TST(erfcx, 0);
+  }
+  {
+#undef NTST
+#define NTST 30 // define instead of const for C compatibility
+    cmplx z[NTST] = {
+      C(1,2),
+      C(-1,2),
+      C(1,-2),
+      C(-1,-2),
+      C(9,-28),
+      C(21,-33),
+      C(1e3,1e3),
+      C(-3001,-1000),
+      C(1e160,-1e159),
+      C(5.1e-3, 1e-8),
+      C(0,2e-6),
+      C(0,2),
+      C(0,20),
+      C(0,200),
+      C(2e-6,0),
+      C(2,0),
+      C(20,0),
+      C(200,0),
+      C(Inf,0),
+      C(-Inf,0),
+      C(0,Inf),
+      C(0,-Inf),
+      C(Inf,Inf),
+      C(Inf,-Inf),
+      C(NaN,NaN),
+      C(NaN,0),
+      C(0,NaN),
+      C(NaN,Inf),
+      C(Inf,NaN),
+      C(88,0)
+    };
+    cmplx w[NTST] = { // erfc(z[i]), evaluated with Maple
+      C(1.536643565778565033991795559314192749442,
+        5.049143703447034669543036958614140565553),
+      C(0.4633564342214349660082044406858072505579,
+        5.049143703447034669543036958614140565553),
+      C(1.536643565778565033991795559314192749442,
+        -5.049143703447034669543036958614140565553),
+      C(0.4633564342214349660082044406858072505579,
+        -5.049143703447034669543036958614140565553),
+      C(-0.3359473673830576996788000505817956637777e304,
+        0.1999896139679880888755589794455069208455e304),
+      C(-0.3584459971462946066523939204836760283645e278,
+        -0.3818954885257184373734213077678011282505e280),
+      C(0.0003979577342851360897849852457775473112748,
+        -0.00002801044116908227889681753993542916894856),
+      C(2, 0),
+      C(0, 0),
+      C(0.9942453161409651998655870094589234450651,
+        -0.1128349818335058741511924929801267822634e-7),
+      C(1,
+        -0.2256758334194034158904576117253481476197e-5),
+      C(1,
+        -18.56480241457555259870429191324101719886),
+      C(1,
+        -0.1474797539628786202447733153131835124599e173),
+      C(1, -Inf),
+      C(0.9999977432416658119838633199332831406314,
+        0),
+      C(0.004677734981047265837930743632747071389108,
+        0),
+      C(0.5395865611607900928934999167905345604088e-175,
+        0),
+      C(0, 0),
+      C(0, 0),
+      C(2, 0),
+      C(1, -Inf),
+      C(1, Inf),
+      C(NaN, NaN),
+      C(NaN, NaN),
+      C(NaN, NaN),
+      C(NaN, 0),
+      C(1, NaN),
+      C(NaN, NaN),
+      C(NaN, NaN),
+      C(0,0)
+    };
+    TST(erfc, 1e-20);
+  }
+  {
+#undef NTST
+#define NTST 48 // define instead of const for C compatibility
+    cmplx z[NTST] = {
+      C(2,1),
+      C(-2,1),
+      C(2,-1),
+      C(-2,-1),
+      C(-28,9),
+      C(33,-21),
+      C(1e3,1e3),
+      C(-1000,-3001),
+      C(1e-8, 5.1e-3),
+      C(4.95e-3, -4.9e-3),
+      C(5.1e-3, 5.1e-3),
+      C(0.5, 4.9e-3),
+      C(-0.5e1, 4.9e-4),
+      C(-0.5e2, -4.9e-5),
+      C(0.5e3, 4.9e-6),
+      C(0.5, 5.1e-3),
+      C(-0.5e1, 5.1e-4),
+      C(-0.5e2, -5.1e-5),
+      C(1e-6,2e-6),
+      C(2e-6,0),
+      C(2,0),
+      C(20,0),
+      C(200,0),
+      C(0,4.9e-3),
+      C(0,-5.1e-3),
+      C(0,2e-6),
+      C(0,-2),
+      C(0,20),
+      C(0,-200),
+      C(Inf,0),
+      C(-Inf,0),
+      C(0,Inf),
+      C(0,-Inf),
+      C(Inf,Inf),
+      C(Inf,-Inf),
+      C(NaN,NaN),
+      C(NaN,0),
+      C(0,NaN),
+      C(NaN,Inf),
+      C(Inf,NaN),
+      C(39, 6.4e-5),
+      C(41, 6.09e-5),
+      C(4.9e7, 5e-11),
+      C(5.1e7, 4.8e-11),
+      C(1e9, 2.4e-12),
+      C(1e11, 2.4e-14),
+      C(1e13, 2.4e-16),
+      C(1e300, 2.4e-303)
+    };
+    cmplx w[NTST] = { // dawson(z[i]), evaluated with Maple
+      C(0.1635394094345355614904345232875688576839,
+        -0.1531245755371229803585918112683241066853),
+      C(-0.1635394094345355614904345232875688576839,
+        -0.1531245755371229803585918112683241066853),
+      C(0.1635394094345355614904345232875688576839,
+        0.1531245755371229803585918112683241066853),
+      C(-0.1635394094345355614904345232875688576839,
+        0.1531245755371229803585918112683241066853),
+      C(-0.01619082256681596362895875232699626384420,
+        -0.005210224203359059109181555401330902819419),
+      C(0.01078377080978103125464543240346760257008,
+        0.006866888783433775382193630944275682670599),
+      C(-0.5808616819196736225612296471081337245459,
+        0.6688593905505562263387760667171706325749),
+      C(Inf,
+        -Inf),
+      C(0.1000052020902036118082966385855563526705e-7,
+        0.005100088434920073153418834680320146441685),
+      C(0.004950156837581592745389973960217444687524,
+        -0.004899838305155226382584756154100963570500),
+      C(0.005100176864319675957314822982399286703798,
+        0.005099823128319785355949825238269336481254),
+      C(0.4244534840871830045021143490355372016428,
+        0.002820278933186814021399602648373095266538),
+      C(-0.1021340733271046543881236523269967674156,
+        -0.00001045696456072005761498961861088944159916),
+      C(-0.01000200120119206748855061636187197886859,
+        0.9805885888237419500266621041508714123763e-8),
+      C(0.001000002000012000023960527532953151819595,
+        -0.9800058800588007290937355024646722133204e-11),
+      C(0.4244549085628511778373438768121222815752,
+        0.002935393851311701428647152230552122898291),
+      C(-0.1021340732357117208743299813648493928105,
+        -0.00001088377943049851799938998805451564893540),
+      C(-0.01000200120119126652710792390331206563616,
+        0.1020612612857282306892368985525393707486e-7),
+      C(0.1000000000007333333333344266666666664457e-5,
+        0.2000000000001333333333323199999999978819e-5),
+      C(0.1999999999994666666666675199999999990248e-5,
+        0),
+      C(0.3013403889237919660346644392864226952119,
+        0),
+      C(0.02503136792640367194699495234782353186858,
+        0),
+      C(0.002500031251171948248596912483183760683918,
+        0),
+      C(0,0.004900078433419939164774792850907128053308),
+      C(0,-0.005100088434920074173454208832365950009419),
+      C(0,0.2000000000005333333333341866666666676419e-5),
+      C(0,-48.16001211429122974789822893525016528191),
+      C(0,0.4627407029504443513654142715903005954668e174),
+      C(0,-Inf),
+      C(0,0),
+      C(-0,0),
+      C(0, Inf),
+      C(0, -Inf),
+      C(NaN, NaN),
+      C(NaN, NaN),
+      C(NaN, NaN),
+      C(NaN, 0),
+      C(0, NaN),
+      C(NaN, NaN),
+      C(NaN, NaN),
+      C(0.01282473148489433743567240624939698290584,
+        -0.2105957276516618621447832572909153498104e-7),
+      C(0.01219875253423634378984109995893708152885,
+        -0.1813040560401824664088425926165834355953e-7),
+      C(0.1020408163265306334945473399689037886997e-7,
+        -0.1041232819658476285651490827866174985330e-25),
+      C(0.9803921568627452865036825956835185367356e-8,
+        -0.9227220299884665067601095648451913375754e-26),
+      C(0.5000000000000000002500000000000000003750e-9,
+        -0.1200000000000000001800000188712838420241e-29),
+      C(5.00000000000000000000025000000000000000000003e-12,
+        -1.20000000000000000000018000000000000000000004e-36),
+      C(5.00000000000000000000000002500000000000000000e-14,
+        -1.20000000000000000000000001800000000000000000e-42),
+      C(5e-301, 0)
+    };
+    TST(Dawson, 1e-20);
+  }
+  printf("#####################################\n");
+  printf("SUCCESS (max relative error = %g)\n", errmax_all);
+}
+
+#endif
diff --git a/ThirdParty/Faddeeva/Faddeeva.hh b/ThirdParty/Faddeeva/Faddeeva.hh
new file mode 100644
index 0000000000000000000000000000000000000000..c4a2e9717fdb844491d1d213d2522e36e600a8c5
--- /dev/null
+++ b/ThirdParty/Faddeeva/Faddeeva.hh
@@ -0,0 +1,62 @@
+/* Copyright (c) 2012 Massachusetts Institute of Technology
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
+ */
+
+/* Available at: http://ab-initio.mit.edu/Faddeeva
+
+   Header file for Faddeeva.cc; see that file for more information. */
+
+#ifndef FADDEEVA_HH
+#define FADDEEVA_HH 1
+
+#include <complex>
+
+namespace Faddeeva {
+
+// compute w(z) = exp(-z^2) erfc(-iz) [ Faddeeva / scaled complex error func ]
+extern std::complex<double> w(std::complex<double> z,double relerr=0);
+extern double w_im(double x); // special-case code for Im[w(x)] of real x
+
+// Various functions that we can compute with the help of w(z)
+
+// compute erfcx(z) = exp(z^2) erfc(z)
+extern std::complex<double> erfcx(std::complex<double> z, double relerr=0);
+extern double erfcx(double x); // special case for real x
+
+// compute erf(z), the error function of complex arguments
+extern std::complex<double> erf(std::complex<double> z, double relerr=0);
+extern double erf(double x); // special case for real x
+
+// compute erfi(z) = -i erf(iz), the imaginary error function
+extern std::complex<double> erfi(std::complex<double> z, double relerr=0);
+extern double erfi(double x); // special case for real x
+
+// compute erfc(z) = 1 - erf(z), the complementary error function
+extern std::complex<double> erfc(std::complex<double> z, double relerr=0);
+extern double erfc(double x); // special case for real x
+
+// compute Dawson(z) = sqrt(pi)/2  *  exp(-z^2) * erfi(z)
+extern std::complex<double> Dawson(std::complex<double> z, double relerr=0);
+extern double Dawson(double x); // special case for real x
+
+} // namespace Faddeeva
+
+#endif // FADDEEVA_HH