diff --git a/App/inc/TestMiscellaneous.h b/App/inc/TestMiscellaneous.h
index c819a04f9e9c309498072e8d425eb36953de89da..9690dbe1ffd32927321640602c59de8d166a260a 100644
--- a/App/inc/TestMiscellaneous.h
+++ b/App/inc/TestMiscellaneous.h
@@ -58,6 +58,9 @@ public:
     //! testing specific sample geometries (for debugging purposes)
     void test_SampleGeometry();
 
+    //! testing hierarchical visitor
+    void test_HierarchicalVisitor();
+
 };
 
 #endif // TESTMISCELLANEOUS_H
diff --git a/App/src/TestMiscellaneous.cpp b/App/src/TestMiscellaneous.cpp
index 6856f56fecb50f502b4a610224979a26f07c88bd..051fd6b5340e22213d5b51d99e534db840a9186f 100644
--- a/App/src/TestMiscellaneous.cpp
+++ b/App/src/TestMiscellaneous.cpp
@@ -13,6 +13,8 @@
 //
 // ************************************************************************** //
 
+#include "ISampleHierarchicalVisitor.h"
+
 #include "TestMiscellaneous.h"
 #include "SampleFactory.h"
 #include "OutputData.h"
@@ -51,6 +53,7 @@ TestMiscellaneous::TestMiscellaneous()
 
 void TestMiscellaneous::execute()
 {
+    test_HierarchicalVisitor();
     //test_PrintVisitor();
     //test_LogSystem();
     //test_OutputDataTo2DArray();
@@ -60,12 +63,27 @@ void TestMiscellaneous::execute()
     //test_FormFactor1();
     //test_FormFactor();
     //test_DrawMesocrystal();
-    test_SampleGeometry();
+    //test_SampleGeometry();
 }
 
 
 /* ************************************************************************* */
-// test of log system
+// test of hierarchical visitor
+/* ************************************************************************* */
+void TestMiscellaneous::test_HierarchicalVisitor()
+{
+    std::cout << "TestMiscellaneous::test_PrintVisitor() ->" << std::endl;
+    SampleBuilderFactory factory;
+    ISample *sample = factory.createSample("isgisaxs04_2DDL");
+    //std::cout << (*sample) << std::endl;
+
+    SamplePrintVisitor visitor;
+    sample->accept(&visitor);
+}
+
+
+/* ************************************************************************* */
+// test of print visitor
 /* ************************************************************************* */
 void TestMiscellaneous::test_PrintVisitor()
 {
diff --git a/Core/PythonAPI/inc/__call_policies.pypp.hpp b/Core/PythonAPI/inc/__call_policies.pypp.hpp
index b31e20b5413618a6720f6151c07ec0cfd0729a62..e5f8bb6a1bf0725c4072ca511a85c0b091532890 100644
--- a/Core/PythonAPI/inc/__call_policies.pypp.hpp
+++ b/Core/PythonAPI/inc/__call_policies.pypp.hpp
@@ -73,7 +73,7 @@ struct make_addressof_holder{
             return bpl::detail::none();
         }
         else{
-            size_t addressof_p = size_t( p );
+            boost::uint32_t addressof_p = reinterpret_cast< boost::uint32_t >( p );
             bpl::object p_address( addressof_p );
             return bpl::incref( p_address.ptr() );
         }
@@ -152,11 +152,6 @@ struct as_tuple_impl{
         MemoryManager::deallocate_array( arr );
         return bpl::incref( bpl::tuple( list_ ).ptr() );
     }
-
-    static PyTypeObject const *get_pytype(){
-        return &PyTuple_Type;
-    }
-
 };
 
 }
diff --git a/Core/PythonAPI/src/AxisBin.pypp.cpp b/Core/PythonAPI/src/AxisBin.pypp.cpp
index 669c312a4c85bf07f086a7f26075a4cc0df870dc..d7803664b4fcd249729648094d50df19b3e8ecb4 100644
--- a/Core/PythonAPI/src/AxisBin.pypp.cpp
+++ b/Core/PythonAPI/src/AxisBin.pypp.cpp
@@ -30,7 +30,7 @@ struct AxisBin_wrapper : AxisBin, bp::wrapper< AxisBin > {
     
     }
 
-    AxisBin_wrapper(::std::string name, ::size_t nbr_bins, double start, double end )
+    AxisBin_wrapper(::std::string name, ::std::size_t nbr_bins, double start, double end )
     : AxisBin( name, nbr_bins, start, end )
       , bp::wrapper< AxisBin >(){
         // constructor
@@ -40,11 +40,11 @@ struct AxisBin_wrapper : AxisBin, bp::wrapper< AxisBin > {
     virtual ::AxisBin * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->AxisBin::clone(  );
-        }
     }
     
+    
     ::AxisBin * default_clone(  ) const  {
         return AxisBin::clone( );
     }
@@ -52,47 +52,47 @@ struct AxisBin_wrapper : AxisBin, bp::wrapper< AxisBin > {
     virtual ::AxisBin * createDoubleBinSize(  ) const  {
         if( bp::override func_createDoubleBinSize = this->get_override( "createDoubleBinSize" ) )
             return func_createDoubleBinSize(  );
-        else{
+        else
             return this->AxisBin::createDoubleBinSize(  );
-        }
     }
     
+    
     ::AxisBin * default_createDoubleBinSize(  ) const  {
         return AxisBin::createDoubleBinSize( );
     }
 
-    virtual ::size_t findClosestIndex( double value ) const  {
+    virtual ::std::size_t findClosestIndex( double value ) const  {
         if( bp::override func_findClosestIndex = this->get_override( "findClosestIndex" ) )
             return func_findClosestIndex( value );
-        else{
+        else
             return this->AxisBin::findClosestIndex( value );
-        }
     }
     
-    ::size_t default_findClosestIndex( double value ) const  {
+    
+    ::std::size_t default_findClosestIndex( double value ) const  {
         return AxisBin::findClosestIndex( value );
     }
 
-    virtual ::Bin1D getBin( ::size_t index ) const  {
+    virtual ::Bin1D getBin( ::std::size_t index ) const  {
         if( bp::override func_getBin = this->get_override( "getBin" ) )
             return func_getBin( index );
-        else{
+        else
             return this->AxisBin::getBin( index );
-        }
     }
     
-    ::Bin1D default_getBin( ::size_t index ) const  {
+    
+    ::Bin1D default_getBin( ::std::size_t index ) const  {
         return AxisBin::getBin( index );
     }
 
     virtual double getMax(  ) const  {
         if( bp::override func_getMax = this->get_override( "getMax" ) )
             return func_getMax(  );
-        else{
+        else
             return this->AxisBin::getMax(  );
-        }
     }
     
+    
     double default_getMax(  ) const  {
         return AxisBin::getMax( );
     }
@@ -100,36 +100,36 @@ struct AxisBin_wrapper : AxisBin, bp::wrapper< AxisBin > {
     virtual double getMin(  ) const  {
         if( bp::override func_getMin = this->get_override( "getMin" ) )
             return func_getMin(  );
-        else{
+        else
             return this->AxisBin::getMin(  );
-        }
     }
     
+    
     double default_getMin(  ) const  {
         return AxisBin::getMin( );
     }
 
-    virtual ::size_t getSize(  ) const  {
+    virtual ::std::size_t getSize(  ) const  {
         if( bp::override func_getSize = this->get_override( "getSize" ) )
             return func_getSize(  );
-        else{
+        else
             return this->AxisBin::getSize(  );
-        }
     }
     
-    ::size_t default_getSize(  ) const  {
+    
+    ::std::size_t default_getSize(  ) const  {
         return AxisBin::getSize( );
     }
 
-    virtual double operator[]( ::size_t index ) const  {
+    virtual double operator[]( ::std::size_t index ) const  {
         if( bp::override func___getitem__ = this->get_override( "__getitem__" ) )
             return func___getitem__( index );
-        else{
+        else
             return this->AxisBin::operator[]( index );
-        }
     }
     
-    double default___getitem__( ::size_t index ) const  {
+    
+    double default___getitem__( ::std::size_t index ) const  {
         return AxisBin::operator[]( index );
     }
 
@@ -141,7 +141,7 @@ void register_AxisBin_class(){
         typedef bp::class_< AxisBin_wrapper, bp::bases< IAxis > > AxisBin_exposer_t;
         AxisBin_exposer_t AxisBin_exposer = AxisBin_exposer_t( "AxisBin", bp::init< std::string >(( bp::arg("name") )) );
         bp::scope AxisBin_scope( AxisBin_exposer );
-        AxisBin_exposer.def( bp::init< std::string, size_t, double, double >(( bp::arg("name"), bp::arg("nbr_bins"), bp::arg("start"), bp::arg("end") )) );
+        AxisBin_exposer.def( bp::init< std::string, std::size_t, double, double >(( bp::arg("name"), bp::arg("nbr_bins"), bp::arg("start"), bp::arg("end") )) );
         { //::AxisBin::clone
         
             typedef ::AxisBin * ( ::AxisBin::*clone_function_type )(  ) const;
@@ -168,8 +168,8 @@ void register_AxisBin_class(){
         }
         { //::AxisBin::findClosestIndex
         
-            typedef ::size_t ( ::AxisBin::*findClosestIndex_function_type )( double ) const;
-            typedef ::size_t ( AxisBin_wrapper::*default_findClosestIndex_function_type )( double ) const;
+            typedef ::std::size_t ( ::AxisBin::*findClosestIndex_function_type )( double ) const;
+            typedef ::std::size_t ( AxisBin_wrapper::*default_findClosestIndex_function_type )( double ) const;
             
             AxisBin_exposer.def( 
                 "findClosestIndex"
@@ -180,8 +180,8 @@ void register_AxisBin_class(){
         }
         { //::AxisBin::getBin
         
-            typedef ::Bin1D ( ::AxisBin::*getBin_function_type )( ::size_t ) const;
-            typedef ::Bin1D ( AxisBin_wrapper::*default_getBin_function_type )( ::size_t ) const;
+            typedef ::Bin1D ( ::AxisBin::*getBin_function_type )( ::std::size_t ) const;
+            typedef ::Bin1D ( AxisBin_wrapper::*default_getBin_function_type )( ::std::size_t ) const;
             
             AxisBin_exposer.def( 
                 "getBin"
@@ -214,8 +214,8 @@ void register_AxisBin_class(){
         }
         { //::AxisBin::getSize
         
-            typedef ::size_t ( ::AxisBin::*getSize_function_type )(  ) const;
-            typedef ::size_t ( AxisBin_wrapper::*default_getSize_function_type )(  ) const;
+            typedef ::std::size_t ( ::AxisBin::*getSize_function_type )(  ) const;
+            typedef ::std::size_t ( AxisBin_wrapper::*default_getSize_function_type )(  ) const;
             
             AxisBin_exposer.def( 
                 "getSize"
@@ -234,7 +234,7 @@ void register_AxisBin_class(){
         }
         { //::AxisBin::initBins
         
-            typedef void ( ::AxisBin::*initBins_function_type )( ::size_t,double,double ) ;
+            typedef void ( ::AxisBin::*initBins_function_type )( ::std::size_t,double,double ) ;
             
             AxisBin_exposer.def( 
                 "initBins"
@@ -244,8 +244,8 @@ void register_AxisBin_class(){
         }
         { //::AxisBin::operator[]
         
-            typedef double ( ::AxisBin::*__getitem___function_type )( ::size_t ) const;
-            typedef double ( AxisBin_wrapper::*default___getitem___function_type )( ::size_t ) const;
+            typedef double ( ::AxisBin::*__getitem___function_type )( ::std::size_t ) const;
+            typedef double ( AxisBin_wrapper::*default___getitem___function_type )( ::std::size_t ) const;
             
             AxisBin_exposer.def( 
                 "__getitem__"
diff --git a/Core/PythonAPI/src/AxisDouble.pypp.cpp b/Core/PythonAPI/src/AxisDouble.pypp.cpp
index b8f339934ce794cec37fda805faa559fd1cde158..300be999fae50e538a44392edbd3c49a5667437c 100644
--- a/Core/PythonAPI/src/AxisDouble.pypp.cpp
+++ b/Core/PythonAPI/src/AxisDouble.pypp.cpp
@@ -30,7 +30,7 @@ struct AxisDouble_wrapper : AxisDouble, bp::wrapper< AxisDouble > {
     
     }
 
-    AxisDouble_wrapper(::std::string name, ::size_t size, double start, double end )
+    AxisDouble_wrapper(::std::string name, ::std::size_t size, double start, double end )
     : AxisDouble( name, size, start, end )
       , bp::wrapper< AxisDouble >(){
         // constructor
@@ -44,38 +44,38 @@ struct AxisDouble_wrapper : AxisDouble, bp::wrapper< AxisDouble > {
     
     }
 
-    virtual ::size_t findClosestIndex( double value ) const  {
+    virtual ::std::size_t findClosestIndex( double value ) const  {
         if( bp::override func_findClosestIndex = this->get_override( "findClosestIndex" ) )
             return func_findClosestIndex( value );
-        else{
+        else
             return this->AxisDouble::findClosestIndex( value );
-        }
     }
     
-    ::size_t default_findClosestIndex( double value ) const  {
+    
+    ::std::size_t default_findClosestIndex( double value ) const  {
         return AxisDouble::findClosestIndex( value );
     }
 
-    virtual ::Bin1D getBin( ::size_t index ) const  {
+    virtual ::Bin1D getBin( ::std::size_t index ) const  {
         if( bp::override func_getBin = this->get_override( "getBin" ) )
             return func_getBin( index );
-        else{
+        else
             return this->AxisDouble::getBin( index );
-        }
     }
     
-    ::Bin1D default_getBin( ::size_t index ) const  {
+    
+    ::Bin1D default_getBin( ::std::size_t index ) const  {
         return AxisDouble::getBin( index );
     }
 
     virtual double getMax(  ) const  {
         if( bp::override func_getMax = this->get_override( "getMax" ) )
             return func_getMax(  );
-        else{
+        else
             return this->AxisDouble::getMax(  );
-        }
     }
     
+    
     double default_getMax(  ) const  {
         return AxisDouble::getMax( );
     }
@@ -83,36 +83,36 @@ struct AxisDouble_wrapper : AxisDouble, bp::wrapper< AxisDouble > {
     virtual double getMin(  ) const  {
         if( bp::override func_getMin = this->get_override( "getMin" ) )
             return func_getMin(  );
-        else{
+        else
             return this->AxisDouble::getMin(  );
-        }
     }
     
+    
     double default_getMin(  ) const  {
         return AxisDouble::getMin( );
     }
 
-    virtual ::size_t getSize(  ) const  {
+    virtual ::std::size_t getSize(  ) const  {
         if( bp::override func_getSize = this->get_override( "getSize" ) )
             return func_getSize(  );
-        else{
+        else
             return this->AxisDouble::getSize(  );
-        }
     }
     
-    ::size_t default_getSize(  ) const  {
+    
+    ::std::size_t default_getSize(  ) const  {
         return AxisDouble::getSize( );
     }
 
-    virtual double operator[]( ::size_t index ) const  {
+    virtual double operator[]( ::std::size_t index ) const  {
         if( bp::override func___getitem__ = this->get_override( "__getitem__" ) )
             return func___getitem__( index );
-        else{
+        else
             return this->AxisDouble::operator[]( index );
-        }
     }
     
-    double default___getitem__( ::size_t index ) const  {
+    
+    double default___getitem__( ::std::size_t index ) const  {
         return AxisDouble::operator[]( index );
     }
 
@@ -124,12 +124,12 @@ void register_AxisDouble_class(){
         typedef bp::class_< AxisDouble_wrapper, bp::bases< IAxis > > AxisDouble_exposer_t;
         AxisDouble_exposer_t AxisDouble_exposer = AxisDouble_exposer_t( "AxisDouble", bp::init< std::string >(( bp::arg("name") )) );
         bp::scope AxisDouble_scope( AxisDouble_exposer );
-        AxisDouble_exposer.def( bp::init< std::string, size_t, double, double >(( bp::arg("name"), bp::arg("size"), bp::arg("start"), bp::arg("end") )) );
+        AxisDouble_exposer.def( bp::init< std::string, std::size_t, double, double >(( bp::arg("name"), bp::arg("size"), bp::arg("start"), bp::arg("end") )) );
         AxisDouble_exposer.def( bp::init< AxisBin const & >(( bp::arg("source") )) );
         { //::AxisDouble::findClosestIndex
         
-            typedef ::size_t ( ::AxisDouble::*findClosestIndex_function_type )( double ) const;
-            typedef ::size_t ( AxisDouble_wrapper::*default_findClosestIndex_function_type )( double ) const;
+            typedef ::std::size_t ( ::AxisDouble::*findClosestIndex_function_type )( double ) const;
+            typedef ::std::size_t ( AxisDouble_wrapper::*default_findClosestIndex_function_type )( double ) const;
             
             AxisDouble_exposer.def( 
                 "findClosestIndex"
@@ -140,8 +140,8 @@ void register_AxisDouble_class(){
         }
         { //::AxisDouble::getBin
         
-            typedef ::Bin1D ( ::AxisDouble::*getBin_function_type )( ::size_t ) const;
-            typedef ::Bin1D ( AxisDouble_wrapper::*default_getBin_function_type )( ::size_t ) const;
+            typedef ::Bin1D ( ::AxisDouble::*getBin_function_type )( ::std::size_t ) const;
+            typedef ::Bin1D ( AxisDouble_wrapper::*default_getBin_function_type )( ::std::size_t ) const;
             
             AxisDouble_exposer.def( 
                 "getBin"
@@ -152,7 +152,7 @@ void register_AxisDouble_class(){
         }
         { //::AxisDouble::getLowerBoundIndex
         
-            typedef ::size_t ( ::AxisDouble::*getLowerBoundIndex_function_type )( double ) const;
+            typedef ::std::size_t ( ::AxisDouble::*getLowerBoundIndex_function_type )( double ) const;
             
             AxisDouble_exposer.def( 
                 "getLowerBoundIndex"
@@ -184,8 +184,8 @@ void register_AxisDouble_class(){
         }
         { //::AxisDouble::getSize
         
-            typedef ::size_t ( ::AxisDouble::*getSize_function_type )(  ) const;
-            typedef ::size_t ( AxisDouble_wrapper::*default_getSize_function_type )(  ) const;
+            typedef ::std::size_t ( ::AxisDouble::*getSize_function_type )(  ) const;
+            typedef ::std::size_t ( AxisDouble_wrapper::*default_getSize_function_type )(  ) const;
             
             AxisDouble_exposer.def( 
                 "getSize"
@@ -195,7 +195,7 @@ void register_AxisDouble_class(){
         }
         { //::AxisDouble::getUpperBoundIndex
         
-            typedef ::size_t ( ::AxisDouble::*getUpperBoundIndex_function_type )( double ) const;
+            typedef ::std::size_t ( ::AxisDouble::*getUpperBoundIndex_function_type )( double ) const;
             
             AxisDouble_exposer.def( 
                 "getUpperBoundIndex"
@@ -214,7 +214,7 @@ void register_AxisDouble_class(){
         }
         { //::AxisDouble::initElements
         
-            typedef void ( ::AxisDouble::*initElements_function_type )( ::size_t,double,double ) ;
+            typedef void ( ::AxisDouble::*initElements_function_type )( ::std::size_t,double,double ) ;
             
             AxisDouble_exposer.def( 
                 "initElements"
@@ -224,8 +224,8 @@ void register_AxisDouble_class(){
         }
         { //::AxisDouble::operator[]
         
-            typedef double ( ::AxisDouble::*__getitem___function_type )( ::size_t ) const;
-            typedef double ( AxisDouble_wrapper::*default___getitem___function_type )( ::size_t ) const;
+            typedef double ( ::AxisDouble::*__getitem___function_type )( ::std::size_t ) const;
+            typedef double ( AxisDouble_wrapper::*default___getitem___function_type )( ::std::size_t ) const;
             
             AxisDouble_exposer.def( 
                 "__getitem__"
diff --git a/Core/PythonAPI/src/Beam.pypp.cpp b/Core/PythonAPI/src/Beam.pypp.cpp
index e2c8d55743ef22fa11641a03dbf69c5dc931fe7f..f346c78eb1d2179bf5d7226620082197b369c7eb 100644
--- a/Core/PythonAPI/src/Beam.pypp.cpp
+++ b/Core/PythonAPI/src/Beam.pypp.cpp
@@ -35,11 +35,11 @@ struct Beam_wrapper : Beam, bp::wrapper< Beam > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -47,11 +47,11 @@ struct Beam_wrapper : Beam, bp::wrapper< Beam > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -59,11 +59,11 @@ struct Beam_wrapper : Beam, bp::wrapper< Beam > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -71,11 +71,11 @@ struct Beam_wrapper : Beam, bp::wrapper< Beam > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -102,11 +102,11 @@ struct Beam_wrapper : Beam, bp::wrapper< Beam > {
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -114,11 +114,11 @@ struct Beam_wrapper : Beam, bp::wrapper< Beam > {
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -126,11 +126,11 @@ struct Beam_wrapper : Beam, bp::wrapper< Beam > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
diff --git a/Core/PythonAPI/src/Crystal.pypp.cpp b/Core/PythonAPI/src/Crystal.pypp.cpp
index adf7227ce3286986183ef976fabbb2f1f76d4b27..e80cbe6dd7d73085c2acdb73033632d6a15f897a 100644
--- a/Core/PythonAPI/src/Crystal.pypp.cpp
+++ b/Core/PythonAPI/src/Crystal.pypp.cpp
@@ -28,11 +28,11 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual ::Crystal * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->Crystal::clone(  );
-        }
     }
     
+    
     ::Crystal * default_clone(  ) const  {
         return Crystal::clone( );
     }
@@ -40,11 +40,11 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual ::Crystal * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->Crystal::cloneInvertB(  );
-        }
     }
     
+    
     ::Crystal * default_cloneInvertB(  ) const  {
         return Crystal::cloneInvertB( );
     }
@@ -52,11 +52,11 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual ::Geometry::ITransform3D const * getTransform(  ) const  {
         if( bp::override func_getTransform = this->get_override( "getTransform" ) )
             return func_getTransform(  );
-        else{
+        else
             return this->Crystal::getTransform(  );
-        }
     }
     
+    
     ::Geometry::ITransform3D const * default_getTransform(  ) const  {
         return Crystal::getTransform( );
     }
@@ -64,11 +64,11 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual void setTransform( ::Geometry::ITransform3D const & transform ) {
         if( bp::override func_setTransform = this->get_override( "setTransform" ) )
             func_setTransform( boost::ref(transform) );
-        else{
+        else
             this->Crystal::setTransform( boost::ref(transform) );
-        }
     }
     
+    
     void default_setTransform( ::Geometry::ITransform3D const & transform ) {
         Crystal::setTransform( boost::ref(transform) );
     }
@@ -76,11 +76,11 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -88,11 +88,11 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -100,23 +100,47 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ICompositeSample::getCompositeSample( );
+    }
+
+    virtual ::ICompositeSample const * getCompositeSample(  ) const  {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample const * default_getCompositeSample(  ) const  {
+        return ICompositeSample::getCompositeSample( );
+    }
+
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -124,11 +148,11 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -155,11 +179,11 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -167,11 +191,11 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -179,15 +203,27 @@ struct Crystal_wrapper : Crystal, bp::wrapper< Crystal > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
+    virtual ::std::size_t size(  ) const  {
+        if( bp::override func_size = this->get_override( "size" ) )
+            return func_size(  );
+        else
+            return this->ICompositeSample::size(  );
+    }
+    
+    
+    ::std::size_t default_size(  ) const  {
+        return ICompositeSample::size( );
+    }
+
 };
 
 void register_Crystal_class(){
@@ -316,6 +352,30 @@ void register_Crystal_class(){
                 , default_createParameterTree_function_type(&Crystal_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( Crystal_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            Crystal_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&Crystal_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample const * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) const;
+            typedef ::ICompositeSample const * ( Crystal_wrapper::*default_getCompositeSample_function_type )(  ) const;
+            
+            Crystal_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&Crystal_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::IParameterized::printParameters
         
@@ -384,6 +444,17 @@ void register_Crystal_class(){
                 , default_setParametersAreChanged_function_type(&Crystal_wrapper::default_setParametersAreChanged) );
         
         }
+        { //::ICompositeSample::size
+        
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( Crystal_wrapper::*default_size_function_type )(  ) const;
+            
+            Crystal_exposer.def( 
+                "size"
+                , size_function_type(&::ICompositeSample::size)
+                , default_size_function_type(&Crystal_wrapper::default_size) );
+        
+        }
     }
 
 }
diff --git a/Core/PythonAPI/src/Detector.pypp.cpp b/Core/PythonAPI/src/Detector.pypp.cpp
index 286cff5b79d2a8861c188f1b46e52c2cc7c0c262..b5d25887a535a0f25367bbff3e25514a002df70a 100644
--- a/Core/PythonAPI/src/Detector.pypp.cpp
+++ b/Core/PythonAPI/src/Detector.pypp.cpp
@@ -35,11 +35,11 @@ struct Detector_wrapper : Detector, bp::wrapper< Detector > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -47,11 +47,11 @@ struct Detector_wrapper : Detector, bp::wrapper< Detector > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -59,11 +59,11 @@ struct Detector_wrapper : Detector, bp::wrapper< Detector > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -71,11 +71,11 @@ struct Detector_wrapper : Detector, bp::wrapper< Detector > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -102,11 +102,11 @@ struct Detector_wrapper : Detector, bp::wrapper< Detector > {
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -114,11 +114,11 @@ struct Detector_wrapper : Detector, bp::wrapper< Detector > {
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -126,11 +126,11 @@ struct Detector_wrapper : Detector, bp::wrapper< Detector > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -155,7 +155,7 @@ void register_Detector_class(){
         }
         { //::Detector::getAxis
         
-            typedef ::IAxis const & ( ::Detector::*getAxis_function_type )( ::size_t ) const;
+            typedef ::IAxis const & ( ::Detector::*getAxis_function_type )( ::std::size_t ) const;
             
             Detector_exposer.def( 
                 "getAxis"
@@ -176,7 +176,7 @@ void register_Detector_class(){
         }
         { //::Detector::getDimension
         
-            typedef ::size_t ( ::Detector::*getDimension_function_type )(  ) const;
+            typedef ::std::size_t ( ::Detector::*getDimension_function_type )(  ) const;
             
             Detector_exposer.def( 
                 "getDimension"
diff --git a/Core/PythonAPI/src/FTDistribution2DCauchy.pypp.cpp b/Core/PythonAPI/src/FTDistribution2DCauchy.pypp.cpp
index 7178ab3ede9cd4ccdaece1cfd1994efd3a52d8c1..ce3e50e7291369b371ef5f67e3a95521ed50ebae 100644
--- a/Core/PythonAPI/src/FTDistribution2DCauchy.pypp.cpp
+++ b/Core/PythonAPI/src/FTDistribution2DCauchy.pypp.cpp
@@ -35,11 +35,11 @@ struct FTDistribution2DCauchy_wrapper : FTDistribution2DCauchy, bp::wrapper< FTD
     virtual ::FTDistribution2DCauchy * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FTDistribution2DCauchy::clone(  );
-        }
     }
     
+    
     ::FTDistribution2DCauchy * default_clone(  ) const  {
         return FTDistribution2DCauchy::clone( );
     }
@@ -47,11 +47,11 @@ struct FTDistribution2DCauchy_wrapper : FTDistribution2DCauchy, bp::wrapper< FTD
     virtual double evaluate( double qx, double qy ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( qx, qy );
-        else{
+        else
             return this->FTDistribution2DCauchy::evaluate( qx, qy );
-        }
     }
     
+    
     double default_evaluate( double qx, double qy ) const  {
         return FTDistribution2DCauchy::evaluate( qx, qy );
     }
@@ -59,11 +59,11 @@ struct FTDistribution2DCauchy_wrapper : FTDistribution2DCauchy, bp::wrapper< FTD
     virtual void transformToStarBasis( double qX, double qY, double alpha, double a, double b, double & qa, double & qb ) const  {
         if( bp::override func_transformToStarBasis = this->get_override( "transformToStarBasis" ) )
             func_transformToStarBasis( qX, qY, alpha, a, b, qa, qb );
-        else{
+        else
             this->FTDistribution2DCauchy::transformToStarBasis( qX, qY, alpha, a, b, qa, qb );
-        }
     }
     
+    
     void default_transformToStarBasis( double qX, double qY, double alpha, double a, double b, double & qa, double & qb ) const  {
         FTDistribution2DCauchy::transformToStarBasis( qX, qY, alpha, a, b, qa, qb );
     }
@@ -71,11 +71,11 @@ struct FTDistribution2DCauchy_wrapper : FTDistribution2DCauchy, bp::wrapper< FTD
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -83,11 +83,11 @@ struct FTDistribution2DCauchy_wrapper : FTDistribution2DCauchy, bp::wrapper< FTD
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -95,11 +95,11 @@ struct FTDistribution2DCauchy_wrapper : FTDistribution2DCauchy, bp::wrapper< FTD
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -107,11 +107,11 @@ struct FTDistribution2DCauchy_wrapper : FTDistribution2DCauchy, bp::wrapper< FTD
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -138,11 +138,11 @@ struct FTDistribution2DCauchy_wrapper : FTDistribution2DCauchy, bp::wrapper< FTD
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -150,11 +150,11 @@ struct FTDistribution2DCauchy_wrapper : FTDistribution2DCauchy, bp::wrapper< FTD
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -162,11 +162,11 @@ struct FTDistribution2DCauchy_wrapper : FTDistribution2DCauchy, bp::wrapper< FTD
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
diff --git a/Core/PythonAPI/src/FormFactorBox.pypp.cpp b/Core/PythonAPI/src/FormFactorBox.pypp.cpp
index 12d73f5c09ceeada8cc2dff21c9e620f585212c2..545a8c77d41cd272ae432ad6234956d3055751d3 100644
--- a/Core/PythonAPI/src/FormFactorBox.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorBox.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual ::FormFactorBox * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorBox::clone(  );
-        }
     }
     
+    
     ::FormFactorBox * default_clone(  ) const  {
         return FormFactorBox::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorBox::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorBox::evaluate_for_q( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorBox::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorBox::getHeight( );
     }
@@ -64,11 +64,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorBox::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorBox::getNumberOfStochasticParameters( );
     }
@@ -76,11 +76,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->FormFactorBox::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return FormFactorBox::getRadius( );
     }
@@ -88,11 +88,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -100,11 +100,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -112,35 +112,35 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -148,11 +148,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
@@ -160,11 +160,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -172,11 +172,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -184,11 +184,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -196,11 +196,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -208,11 +208,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -239,11 +239,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -251,11 +251,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -263,11 +263,11 @@ struct FormFactorBox_wrapper : FormFactorBox, bp::wrapper< FormFactorBox > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -382,8 +382,8 @@ void register_FormFactorBox_class(){
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorBox_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorBox_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorBox_exposer.def( 
                 "createDistributedFormFactors"
diff --git a/Core/PythonAPI/src/FormFactorCone.pypp.cpp b/Core/PythonAPI/src/FormFactorCone.pypp.cpp
index d31a4a434b8258e1f862755a58c83c091d8b2967..caa337a5de9b0d7de50faf7f205f38aab20c27bc 100644
--- a/Core/PythonAPI/src/FormFactorCone.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorCone.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual ::FormFactorCone * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorCone::clone(  );
-        }
     }
     
+    
     ::FormFactorCone * default_clone(  ) const  {
         return FormFactorCone::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorCone::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorCone::evaluate_for_q( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual double getAlpha(  ) const  {
         if( bp::override func_getAlpha = this->get_override( "getAlpha" ) )
             return func_getAlpha(  );
-        else{
+        else
             return this->FormFactorCone::getAlpha(  );
-        }
     }
     
+    
     double default_getAlpha(  ) const  {
         return FormFactorCone::getAlpha( );
     }
@@ -64,11 +64,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorCone::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorCone::getHeight( );
     }
@@ -76,11 +76,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorCone::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorCone::getNumberOfStochasticParameters( );
     }
@@ -88,11 +88,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->FormFactorCone::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return FormFactorCone::getRadius( );
     }
@@ -100,11 +100,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual void setAlpha( double alpha ) {
         if( bp::override func_setAlpha = this->get_override( "setAlpha" ) )
             func_setAlpha( alpha );
-        else{
+        else
             this->FormFactorCone::setAlpha( alpha );
-        }
     }
     
+    
     void default_setAlpha( double alpha ) {
         FormFactorCone::setAlpha( alpha );
     }
@@ -112,11 +112,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual void setHeight( double height ) {
         if( bp::override func_setHeight = this->get_override( "setHeight" ) )
             func_setHeight( height );
-        else{
+        else
             this->FormFactorCone::setHeight( height );
-        }
     }
     
+    
     void default_setHeight( double height ) {
         FormFactorCone::setHeight( height );
     }
@@ -124,11 +124,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual void setRadius( double radius ) {
         if( bp::override func_setRadius = this->get_override( "setRadius" ) )
             func_setRadius( radius );
-        else{
+        else
             this->FormFactorCone::setRadius( radius );
-        }
     }
     
+    
     void default_setRadius( double radius ) {
         FormFactorCone::setRadius( radius );
     }
@@ -136,11 +136,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -148,11 +148,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -160,35 +160,35 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -196,11 +196,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
@@ -208,11 +208,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -220,11 +220,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -232,11 +232,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -244,11 +244,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -256,11 +256,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -287,11 +287,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -299,11 +299,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -311,11 +311,11 @@ struct FormFactorCone_wrapper : FormFactorCone, bp::wrapper< FormFactorCone > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -468,8 +468,8 @@ void register_FormFactorCone_class(){
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorCone_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorCone_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorCone_exposer.def( 
                 "createDistributedFormFactors"
diff --git a/Core/PythonAPI/src/FormFactorCrystal.pypp.cpp b/Core/PythonAPI/src/FormFactorCrystal.pypp.cpp
index 3faf86f8d95de072bf15ad0c899d3ab743c756e1..f4956ed3ec4668b672c803a3d108e96e57c0f286 100644
--- a/Core/PythonAPI/src/FormFactorCrystal.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorCrystal.pypp.cpp
@@ -21,11 +21,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual ::FormFactorCrystal * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorCrystal::clone(  );
-        }
     }
     
+    
     ::FormFactorCrystal * default_clone(  ) const  {
         return FormFactorCrystal::clone( );
     }
@@ -33,11 +33,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->FormFactorCrystal::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return FormFactorCrystal::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
@@ -45,11 +45,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorCrystal::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorCrystal::evaluate_for_q( boost::ref(q) );
     }
@@ -57,11 +57,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->FormFactorCrystal::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return FormFactorCrystal::getVolume( );
     }
@@ -69,11 +69,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -81,11 +81,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -93,35 +93,35 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -129,11 +129,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -141,11 +141,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->IFormFactor::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return IFormFactor::getHeight( );
     }
@@ -153,11 +153,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->IFormFactor::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return IFormFactor::getNumberOfStochasticParameters( );
     }
@@ -165,11 +165,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactor::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactor::getRadius( );
     }
@@ -177,11 +177,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -189,11 +189,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -201,11 +201,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -232,11 +232,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -244,11 +244,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -256,11 +256,11 @@ struct FormFactorCrystal_wrapper : FormFactorCrystal, bp::wrapper< FormFactorCry
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -356,8 +356,8 @@ void register_FormFactorCrystal_class(){
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorCrystal_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorCrystal_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorCrystal_exposer.def( 
                 "createDistributedFormFactors"
diff --git a/Core/PythonAPI/src/FormFactorCylinder.pypp.cpp b/Core/PythonAPI/src/FormFactorCylinder.pypp.cpp
index db9d699759587891d02f407418235624d2616bd6..8e6f648fb3f65bf5bb8502c554c44d4b8ece3c08 100644
--- a/Core/PythonAPI/src/FormFactorCylinder.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorCylinder.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual ::FormFactorCylinder * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorCylinder::clone(  );
-        }
     }
     
+    
     ::FormFactorCylinder * default_clone(  ) const  {
         return FormFactorCylinder::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorCylinder::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorCylinder::evaluate_for_q( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorCylinder::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorCylinder::getHeight( );
     }
@@ -64,11 +64,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorCylinder::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorCylinder::getNumberOfStochasticParameters( );
     }
@@ -76,11 +76,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->FormFactorCylinder::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return FormFactorCylinder::getRadius( );
     }
@@ -88,11 +88,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual void setHeight( double height ) {
         if( bp::override func_setHeight = this->get_override( "setHeight" ) )
             func_setHeight( height );
-        else{
+        else
             this->FormFactorCylinder::setHeight( height );
-        }
     }
     
+    
     void default_setHeight( double height ) {
         FormFactorCylinder::setHeight( height );
     }
@@ -100,11 +100,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual void setRadius( double radius ) {
         if( bp::override func_setRadius = this->get_override( "setRadius" ) )
             func_setRadius( radius );
-        else{
+        else
             this->FormFactorCylinder::setRadius( radius );
-        }
     }
     
+    
     void default_setRadius( double radius ) {
         FormFactorCylinder::setRadius( radius );
     }
@@ -112,11 +112,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -124,11 +124,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -136,35 +136,35 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -172,11 +172,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
@@ -184,11 +184,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -196,11 +196,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -208,11 +208,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -220,11 +220,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -232,11 +232,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -263,11 +263,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -275,11 +275,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -287,11 +287,11 @@ struct FormFactorCylinder_wrapper : FormFactorCylinder, bp::wrapper< FormFactorC
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -421,8 +421,8 @@ void register_FormFactorCylinder_class(){
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorCylinder_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorCylinder_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorCylinder_exposer.def( 
                 "createDistributedFormFactors"
diff --git a/Core/PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp b/Core/PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp
index 9c9ae4b68d9506f011b80574738757283ac85a4e..b7d22d1b008955fff615cc70a634b8d99ff38c9b 100644
--- a/Core/PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual ::FormFactorDecoratorDebyeWaller * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorDecoratorDebyeWaller::clone(  );
-        }
     }
     
+    
     ::FormFactorDecoratorDebyeWaller * default_clone(  ) const  {
         return FormFactorDecoratorDebyeWaller::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->FormFactorDecoratorDebyeWaller::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return FormFactorDecoratorDebyeWaller::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
@@ -52,11 +52,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorDecoratorDebyeWaller::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorDecoratorDebyeWaller::getNumberOfStochasticParameters( );
     }
@@ -64,11 +64,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -76,11 +76,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -88,35 +88,35 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -124,11 +124,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -136,11 +136,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->IFormFactorDecorator::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return IFormFactorDecorator::getHeight( );
     }
@@ -148,11 +148,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactorDecorator::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactorDecorator::getRadius( );
     }
@@ -160,11 +160,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorDecorator::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorDecorator::getVolume( );
     }
@@ -172,11 +172,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -184,11 +184,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -196,11 +196,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -227,11 +227,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -239,11 +239,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -251,11 +251,11 @@ struct FormFactorDecoratorDebyeWaller_wrapper : FormFactorDecoratorDebyeWaller,
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -339,8 +339,8 @@ void register_FormFactorDecoratorDebyeWaller_class(){
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorDecoratorDebyeWaller_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorDecoratorDebyeWaller_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorDecoratorDebyeWaller_exposer.def( 
                 "createDistributedFormFactors"
diff --git a/Core/PythonAPI/src/FormFactorEllipsoid.pypp.cpp b/Core/PythonAPI/src/FormFactorEllipsoid.pypp.cpp
index 8920cf3e6854c886a8f3f509f2489da27d9b47c3..f5b8c13ec58113eb0ae4ec114a3479397b9bf0c7 100644
--- a/Core/PythonAPI/src/FormFactorEllipsoid.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorEllipsoid.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual ::FormFactorEllipsoid * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorEllipsoid::clone(  );
-        }
     }
     
+    
     ::FormFactorEllipsoid * default_clone(  ) const  {
         return FormFactorEllipsoid::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorEllipsoid::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorEllipsoid::evaluate_for_q( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorEllipsoid::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorEllipsoid::getHeight( );
     }
@@ -64,11 +64,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorEllipsoid::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorEllipsoid::getNumberOfStochasticParameters( );
     }
@@ -76,11 +76,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->FormFactorEllipsoid::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return FormFactorEllipsoid::getRadius( );
     }
@@ -88,11 +88,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -100,11 +100,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -112,35 +112,35 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -148,11 +148,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
@@ -160,11 +160,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -172,11 +172,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -184,11 +184,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -196,11 +196,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -208,11 +208,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -239,11 +239,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -251,11 +251,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -263,11 +263,11 @@ struct FormFactorEllipsoid_wrapper : FormFactorEllipsoid, bp::wrapper< FormFacto
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -382,8 +382,8 @@ void register_FormFactorEllipsoid_class(){
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorEllipsoid_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorEllipsoid_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorEllipsoid_exposer.def( 
                 "createDistributedFormFactors"
diff --git a/Core/PythonAPI/src/FormFactorFullSphere.pypp.cpp b/Core/PythonAPI/src/FormFactorFullSphere.pypp.cpp
index 82ece89ac2e832a9c644570c32f60b155017d14f..3849c05432af743970fbe2db9a8a797dac9f13e1 100644
--- a/Core/PythonAPI/src/FormFactorFullSphere.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorFullSphere.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual ::FormFactorFullSphere * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorFullSphere::clone(  );
-        }
     }
     
+    
     ::FormFactorFullSphere * default_clone(  ) const  {
         return FormFactorFullSphere::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorFullSphere::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorFullSphere::evaluate_for_q( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorFullSphere::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorFullSphere::getHeight( );
     }
@@ -64,11 +64,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorFullSphere::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorFullSphere::getNumberOfStochasticParameters( );
     }
@@ -76,11 +76,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->FormFactorFullSphere::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return FormFactorFullSphere::getRadius( );
     }
@@ -88,11 +88,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual void setRadius( double radius ) {
         if( bp::override func_setRadius = this->get_override( "setRadius" ) )
             func_setRadius( radius );
-        else{
+        else
             this->FormFactorFullSphere::setRadius( radius );
-        }
     }
     
+    
     void default_setRadius( double radius ) {
         FormFactorFullSphere::setRadius( radius );
     }
@@ -100,11 +100,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -112,11 +112,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -124,35 +124,35 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -160,11 +160,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
@@ -172,11 +172,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -184,11 +184,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -196,11 +196,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -208,11 +208,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -220,11 +220,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -251,11 +251,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -263,11 +263,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -275,11 +275,11 @@ struct FormFactorFullSphere_wrapper : FormFactorFullSphere, bp::wrapper< FormFac
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -397,8 +397,8 @@ void register_FormFactorFullSphere_class(){
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorFullSphere_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorFullSphere_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorFullSphere_exposer.def( 
                 "createDistributedFormFactors"
diff --git a/Core/PythonAPI/src/FormFactorFullSpheroid.pypp.cpp b/Core/PythonAPI/src/FormFactorFullSpheroid.pypp.cpp
index cb9c15a1ba43929d013c0e440f3d7c3d9d6c84bf..02848d2d2afeea7cac6d890cd9231fcfc265866b 100644
--- a/Core/PythonAPI/src/FormFactorFullSpheroid.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorFullSpheroid.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual ::FormFactorFullSpheroid * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorFullSpheroid::clone(  );
-        }
     }
     
+    
     ::FormFactorFullSpheroid * default_clone(  ) const  {
         return FormFactorFullSpheroid::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorFullSpheroid::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorFullSpheroid::evaluate_for_q( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorFullSpheroid::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorFullSpheroid::getHeight( );
     }
@@ -64,11 +64,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorFullSpheroid::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorFullSpheroid::getNumberOfStochasticParameters( );
     }
@@ -76,11 +76,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->FormFactorFullSpheroid::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return FormFactorFullSpheroid::getRadius( );
     }
@@ -88,11 +88,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -100,11 +100,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -112,35 +112,35 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -148,11 +148,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
@@ -160,11 +160,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -172,11 +172,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -184,11 +184,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -196,11 +196,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -208,11 +208,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -239,11 +239,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -251,11 +251,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -263,11 +263,11 @@ struct FormFactorFullSpheroid_wrapper : FormFactorFullSpheroid, bp::wrapper< For
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -373,8 +373,8 @@ void register_FormFactorFullSpheroid_class(){
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorFullSpheroid_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorFullSpheroid_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorFullSpheroid_exposer.def( 
                 "createDistributedFormFactors"
diff --git a/Core/PythonAPI/src/FormFactorGauss.pypp.cpp b/Core/PythonAPI/src/FormFactorGauss.pypp.cpp
index abf315d60f01011121fa90e0e1de8f3cf1918c62..c0431a98d53f87d0b56028b8e4a0d28bebd45f1f 100644
--- a/Core/PythonAPI/src/FormFactorGauss.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorGauss.pypp.cpp
@@ -35,11 +35,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual ::FormFactorGauss * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorGauss::clone(  );
-        }
     }
     
+    
     ::FormFactorGauss * default_clone(  ) const  {
         return FormFactorGauss::clone( );
     }
@@ -47,11 +47,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorGauss::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorGauss::evaluate_for_q( boost::ref(q) );
     }
@@ -59,11 +59,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorGauss::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorGauss::getHeight( );
     }
@@ -71,11 +71,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorGauss::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorGauss::getNumberOfStochasticParameters( );
     }
@@ -83,11 +83,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->FormFactorGauss::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return FormFactorGauss::getRadius( );
     }
@@ -95,11 +95,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->FormFactorGauss::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return FormFactorGauss::getVolume( );
     }
@@ -107,11 +107,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -119,11 +119,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -131,35 +131,35 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -167,11 +167,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
@@ -179,11 +179,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -191,11 +191,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -203,11 +203,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -215,11 +215,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -246,11 +246,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -258,11 +258,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -270,11 +270,11 @@ struct FormFactorGauss_wrapper : FormFactorGauss, bp::wrapper< FormFactorGauss >
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -392,8 +392,8 @@ void register_FormFactorGauss_class(){
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorGauss_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorGauss_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorGauss_exposer.def( 
                 "createDistributedFormFactors"
diff --git a/Core/PythonAPI/src/FormFactorHemiSpheroid.pypp.cpp b/Core/PythonAPI/src/FormFactorHemiSpheroid.pypp.cpp
index 98d83fa669b419400d55323bfdceeee139ac1126..1a300af87c57d5d832a1b2b723e8548daf4099ba 100644
--- a/Core/PythonAPI/src/FormFactorHemiSpheroid.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorHemiSpheroid.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual ::FormFactorHemiSpheroid * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorHemiSpheroid::clone(  );
-        }
     }
     
+    
     ::FormFactorHemiSpheroid * default_clone(  ) const  {
         return FormFactorHemiSpheroid::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorHemiSpheroid::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorHemiSpheroid::getHeight( );
     }
@@ -52,11 +52,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorHemiSpheroid::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorHemiSpheroid::getNumberOfStochasticParameters( );
     }
@@ -64,11 +64,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -76,11 +76,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -88,35 +88,35 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -124,11 +124,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
@@ -136,11 +136,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -148,11 +148,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactor::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactor::getRadius( );
     }
@@ -160,11 +160,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -172,11 +172,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -184,11 +184,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -196,11 +196,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -227,11 +227,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -239,11 +239,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -251,11 +251,11 @@ struct FormFactorHemiSpheroid_wrapper : FormFactorHemiSpheroid, bp::wrapper< For
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -338,8 +338,8 @@ void register_FormFactorHemiSpheroid_class(){
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorHemiSpheroid_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorHemiSpheroid_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorHemiSpheroid_exposer.def( 
                 "createDistributedFormFactors"
diff --git a/Core/PythonAPI/src/FormFactorLorentz.pypp.cpp b/Core/PythonAPI/src/FormFactorLorentz.pypp.cpp
index aa20e83afaa9352db370cd4a93d0b44012fadbc0..4b41e00edca20e7caa2fb92cc6d95296a2b494c7 100644
--- a/Core/PythonAPI/src/FormFactorLorentz.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorLorentz.pypp.cpp
@@ -35,11 +35,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual ::FormFactorLorentz * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorLorentz::clone(  );
-        }
     }
     
+    
     ::FormFactorLorentz * default_clone(  ) const  {
         return FormFactorLorentz::clone( );
     }
@@ -47,11 +47,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorLorentz::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorLorentz::evaluate_for_q( boost::ref(q) );
     }
@@ -59,11 +59,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorLorentz::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorLorentz::getNumberOfStochasticParameters( );
     }
@@ -71,11 +71,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -83,11 +83,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -95,35 +95,35 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -131,11 +131,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
@@ -143,11 +143,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -155,11 +155,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->IFormFactor::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return IFormFactor::getHeight( );
     }
@@ -167,11 +167,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactor::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactor::getRadius( );
     }
@@ -179,11 +179,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -191,11 +191,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -203,11 +203,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -215,11 +215,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -246,11 +246,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -258,11 +258,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -270,11 +270,11 @@ struct FormFactorLorentz_wrapper : FormFactorLorentz, bp::wrapper< FormFactorLor
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -359,8 +359,8 @@ void register_FormFactorLorentz_class(){
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorLorentz_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorLorentz_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorLorentz_exposer.def( 
                 "createDistributedFormFactors"
diff --git a/Core/PythonAPI/src/FormFactorParallelepiped.pypp.cpp b/Core/PythonAPI/src/FormFactorParallelepiped.pypp.cpp
index 9dd07799961c004bd570139edf3426fb31157f1c..20268561acd1ab05bc4e0573555c27aac0b8b4b0 100644
--- a/Core/PythonAPI/src/FormFactorParallelepiped.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorParallelepiped.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual ::FormFactorParallelepiped * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorParallelepiped::clone(  );
-        }
     }
     
+    
     ::FormFactorParallelepiped * default_clone(  ) const  {
         return FormFactorParallelepiped::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorParallelepiped::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorParallelepiped::evaluate_for_q( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorParallelepiped::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorParallelepiped::getHeight( );
     }
@@ -64,11 +64,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorParallelepiped::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorParallelepiped::getNumberOfStochasticParameters( );
     }
@@ -76,11 +76,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->FormFactorParallelepiped::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return FormFactorParallelepiped::getRadius( );
     }
@@ -88,11 +88,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -100,11 +100,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -112,35 +112,35 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -148,11 +148,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
@@ -160,11 +160,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -172,11 +172,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -184,11 +184,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -196,11 +196,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -208,11 +208,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -239,11 +239,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -251,11 +251,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -263,11 +263,11 @@ struct FormFactorParallelepiped_wrapper : FormFactorParallelepiped, bp::wrapper<
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -373,8 +373,8 @@ void register_FormFactorParallelepiped_class(){
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorParallelepiped_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorParallelepiped_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorParallelepiped_exposer.def( 
                 "createDistributedFormFactors"
diff --git a/Core/PythonAPI/src/FormFactorPrism3.pypp.cpp b/Core/PythonAPI/src/FormFactorPrism3.pypp.cpp
index 11d345099711c63babb0c3577f1e6006e843f03a..7344a006a550e713af3795888c6ef0ab692df703 100644
--- a/Core/PythonAPI/src/FormFactorPrism3.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorPrism3.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual ::FormFactorPrism3 * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorPrism3::clone(  );
-        }
     }
     
+    
     ::FormFactorPrism3 * default_clone(  ) const  {
         return FormFactorPrism3::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorPrism3::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorPrism3::evaluate_for_q( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual double getHalfSide(  ) const  {
         if( bp::override func_getHalfSide = this->get_override( "getHalfSide" ) )
             return func_getHalfSide(  );
-        else{
+        else
             return this->FormFactorPrism3::getHalfSide(  );
-        }
     }
     
+    
     double default_getHalfSide(  ) const  {
         return FormFactorPrism3::getHalfSide( );
     }
@@ -64,11 +64,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorPrism3::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorPrism3::getHeight( );
     }
@@ -76,11 +76,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorPrism3::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorPrism3::getNumberOfStochasticParameters( );
     }
@@ -88,11 +88,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual void setHalfSide( double half_side ) {
         if( bp::override func_setHalfSide = this->get_override( "setHalfSide" ) )
             func_setHalfSide( half_side );
-        else{
+        else
             this->FormFactorPrism3::setHalfSide( half_side );
-        }
     }
     
+    
     void default_setHalfSide( double half_side ) {
         FormFactorPrism3::setHalfSide( half_side );
     }
@@ -100,11 +100,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual void setHeight( double height ) {
         if( bp::override func_setHeight = this->get_override( "setHeight" ) )
             func_setHeight( height );
-        else{
+        else
             this->FormFactorPrism3::setHeight( height );
-        }
     }
     
+    
     void default_setHeight( double height ) {
         FormFactorPrism3::setHeight( height );
     }
@@ -112,11 +112,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -124,11 +124,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -136,35 +136,35 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -172,11 +172,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
@@ -184,11 +184,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -196,11 +196,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactor::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactor::getRadius( );
     }
@@ -208,11 +208,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -220,11 +220,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -232,11 +232,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -244,11 +244,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -275,11 +275,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -287,11 +287,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -299,11 +299,11 @@ struct FormFactorPrism3_wrapper : FormFactorPrism3, bp::wrapper< FormFactorPrism
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -433,8 +433,8 @@ void register_FormFactorPrism3_class(){
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorPrism3_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorPrism3_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorPrism3_exposer.def( 
                 "createDistributedFormFactors"
diff --git a/Core/PythonAPI/src/FormFactorPrism6.pypp.cpp b/Core/PythonAPI/src/FormFactorPrism6.pypp.cpp
index 56beb9799b362a14cb268272582e64a9c3c8b186..23fa49d6c4467d4e8e3a72283745f74f39258308 100644
--- a/Core/PythonAPI/src/FormFactorPrism6.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorPrism6.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual ::FormFactorPrism6 * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorPrism6::clone(  );
-        }
     }
     
+    
     ::FormFactorPrism6 * default_clone(  ) const  {
         return FormFactorPrism6::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorPrism6::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorPrism6::evaluate_for_q( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorPrism6::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorPrism6::getHeight( );
     }
@@ -64,11 +64,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorPrism6::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorPrism6::getNumberOfStochasticParameters( );
     }
@@ -76,11 +76,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->FormFactorPrism6::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return FormFactorPrism6::getRadius( );
     }
@@ -88,11 +88,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual void setHeight( double height ) {
         if( bp::override func_setHeight = this->get_override( "setHeight" ) )
             func_setHeight( height );
-        else{
+        else
             this->FormFactorPrism6::setHeight( height );
-        }
     }
     
+    
     void default_setHeight( double height ) {
         FormFactorPrism6::setHeight( height );
     }
@@ -100,11 +100,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual void setRadius( double radius ) {
         if( bp::override func_setRadius = this->get_override( "setRadius" ) )
             func_setRadius( radius );
-        else{
+        else
             this->FormFactorPrism6::setRadius( radius );
-        }
     }
     
+    
     void default_setRadius( double radius ) {
         FormFactorPrism6::setRadius( radius );
     }
@@ -112,11 +112,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -124,11 +124,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -136,35 +136,35 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -172,11 +172,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
@@ -184,11 +184,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -196,11 +196,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -208,11 +208,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -220,11 +220,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -232,11 +232,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -263,11 +263,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -275,11 +275,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -287,11 +287,11 @@ struct FormFactorPrism6_wrapper : FormFactorPrism6, bp::wrapper< FormFactorPrism
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -421,8 +421,8 @@ void register_FormFactorPrism6_class(){
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorPrism6_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorPrism6_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorPrism6_exposer.def( 
                 "createDistributedFormFactors"
diff --git a/Core/PythonAPI/src/FormFactorPyramid.pypp.cpp b/Core/PythonAPI/src/FormFactorPyramid.pypp.cpp
index d7f7e69a726b9d63527038fb9bd345be95140246..db82e8d663c2afc6e668ce94f5ea67552ae52b1c 100644
--- a/Core/PythonAPI/src/FormFactorPyramid.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorPyramid.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual ::FormFactorPyramid * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorPyramid::clone(  );
-        }
     }
     
+    
     ::FormFactorPyramid * default_clone(  ) const  {
         return FormFactorPyramid::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorPyramid::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorPyramid::evaluate_for_q( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual double getAlpha(  ) const  {
         if( bp::override func_getAlpha = this->get_override( "getAlpha" ) )
             return func_getAlpha(  );
-        else{
+        else
             return this->FormFactorPyramid::getAlpha(  );
-        }
     }
     
+    
     double default_getAlpha(  ) const  {
         return FormFactorPyramid::getAlpha( );
     }
@@ -64,11 +64,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual double getHalfSide(  ) const  {
         if( bp::override func_getHalfSide = this->get_override( "getHalfSide" ) )
             return func_getHalfSide(  );
-        else{
+        else
             return this->FormFactorPyramid::getHalfSide(  );
-        }
     }
     
+    
     double default_getHalfSide(  ) const  {
         return FormFactorPyramid::getHalfSide( );
     }
@@ -76,11 +76,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorPyramid::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorPyramid::getHeight( );
     }
@@ -88,11 +88,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorPyramid::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorPyramid::getNumberOfStochasticParameters( );
     }
@@ -100,11 +100,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual void setAlpha( double alpha ) {
         if( bp::override func_setAlpha = this->get_override( "setAlpha" ) )
             func_setAlpha( alpha );
-        else{
+        else
             this->FormFactorPyramid::setAlpha( alpha );
-        }
     }
     
+    
     void default_setAlpha( double alpha ) {
         FormFactorPyramid::setAlpha( alpha );
     }
@@ -112,11 +112,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual void setHalfSide( double half_side ) {
         if( bp::override func_setHalfSide = this->get_override( "setHalfSide" ) )
             func_setHalfSide( half_side );
-        else{
+        else
             this->FormFactorPyramid::setHalfSide( half_side );
-        }
     }
     
+    
     void default_setHalfSide( double half_side ) {
         FormFactorPyramid::setHalfSide( half_side );
     }
@@ -124,11 +124,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual void setHeight( double height ) {
         if( bp::override func_setHeight = this->get_override( "setHeight" ) )
             func_setHeight( height );
-        else{
+        else
             this->FormFactorPyramid::setHeight( height );
-        }
     }
     
+    
     void default_setHeight( double height ) {
         FormFactorPyramid::setHeight( height );
     }
@@ -136,11 +136,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -148,11 +148,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -160,35 +160,35 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -196,11 +196,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
@@ -208,11 +208,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -220,11 +220,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactor::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactor::getRadius( );
     }
@@ -232,11 +232,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -244,11 +244,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -256,11 +256,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -268,11 +268,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -299,11 +299,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -311,11 +311,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -323,11 +323,11 @@ struct FormFactorPyramid_wrapper : FormFactorPyramid, bp::wrapper< FormFactorPyr
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -480,8 +480,8 @@ void register_FormFactorPyramid_class(){
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorPyramid_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorPyramid_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorPyramid_exposer.def( 
                 "createDistributedFormFactors"
diff --git a/Core/PythonAPI/src/FormFactorSphere.pypp.cpp b/Core/PythonAPI/src/FormFactorSphere.pypp.cpp
index 5034f2e682dfd92250ffed4546ad046c52d3a03b..b2b8893a00b96f316859555fff3a056a7c9f4b65 100644
--- a/Core/PythonAPI/src/FormFactorSphere.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorSphere.pypp.cpp
@@ -28,11 +28,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual ::FormFactorSphere * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorSphere::clone(  );
-        }
     }
     
+    
     ::FormFactorSphere * default_clone(  ) const  {
         return FormFactorSphere::clone( );
     }
@@ -40,11 +40,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorSphere::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorSphere::getHeight( );
     }
@@ -52,11 +52,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorSphere::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorSphere::getNumberOfStochasticParameters( );
     }
@@ -64,11 +64,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -76,11 +76,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -88,35 +88,35 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -124,11 +124,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
@@ -136,11 +136,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -148,11 +148,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactor::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactor::getRadius( );
     }
@@ -160,11 +160,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -172,11 +172,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -184,11 +184,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -196,11 +196,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -227,11 +227,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -239,11 +239,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -251,11 +251,11 @@ struct FormFactorSphere_wrapper : FormFactorSphere, bp::wrapper< FormFactorSpher
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -338,8 +338,8 @@ void register_FormFactorSphere_class(){
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorSphere_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorSphere_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorSphere_exposer.def( 
                 "createDistributedFormFactors"
diff --git a/Core/PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp b/Core/PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp
index 71fab8c6f659420af5d876b26de34267b35d9111..e3edc65106a17f047434b6f87edb19879a8398c7 100644
--- a/Core/PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp
@@ -28,35 +28,35 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual ::FormFactorSphereGaussianRadius * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->FormFactorSphereGaussianRadius::clone(  );
-        }
     }
     
+    
     ::FormFactorSphereGaussianRadius * default_clone(  ) const  {
         return FormFactorSphereGaussianRadius::clone( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->FormFactorSphereGaussianRadius::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         FormFactorSphereGaussianRadius::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
-        else{
+        else
             return this->FormFactorSphereGaussianRadius::evaluate_for_q( boost::ref(q) );
-        }
     }
     
+    
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
         return FormFactorSphereGaussianRadius::evaluate_for_q( boost::ref(q) );
     }
@@ -64,11 +64,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->FormFactorSphereGaussianRadius::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return FormFactorSphereGaussianRadius::getHeight( );
     }
@@ -76,11 +76,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->FormFactorSphereGaussianRadius::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return FormFactorSphereGaussianRadius::getNumberOfStochasticParameters( );
     }
@@ -88,11 +88,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->FormFactorSphereGaussianRadius::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return FormFactorSphereGaussianRadius::isDistributedFormFactor( );
     }
@@ -100,11 +100,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -112,11 +112,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -124,11 +124,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
@@ -136,11 +136,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -148,11 +148,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
@@ -160,11 +160,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -172,11 +172,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactor::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactor::getRadius( );
     }
@@ -184,11 +184,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -196,11 +196,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -208,11 +208,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -239,11 +239,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -251,11 +251,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -263,11 +263,11 @@ struct FormFactorSphereGaussianRadius_wrapper : FormFactorSphereGaussianRadius,
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -294,8 +294,8 @@ void register_FormFactorSphereGaussianRadius_class(){
         }
         { //::FormFactorSphereGaussianRadius::createDistributedFormFactors
         
-            typedef void ( ::FormFactorSphereGaussianRadius::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( FormFactorSphereGaussianRadius_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::FormFactorSphereGaussianRadius::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( FormFactorSphereGaussianRadius_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             FormFactorSphereGaussianRadius_exposer.def( 
                 "createDistributedFormFactors"
diff --git a/Core/PythonAPI/src/HomogeneousMaterial.pypp.cpp b/Core/PythonAPI/src/HomogeneousMaterial.pypp.cpp
index 54f03ec9383a707ab1c91d44dee1d4cf8fb73d45..cb298c17261071e1fc6ba80361e9d491935e34b6 100644
--- a/Core/PythonAPI/src/HomogeneousMaterial.pypp.cpp
+++ b/Core/PythonAPI/src/HomogeneousMaterial.pypp.cpp
@@ -40,11 +40,11 @@ struct HomogeneousMaterial_wrapper : HomogeneousMaterial, bp::wrapper< Homogeneo
     virtual ::HomogeneousMaterial * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->HomogeneousMaterial::clone(  );
-        }
     }
     
+    
     ::HomogeneousMaterial * default_clone(  ) const  {
         return HomogeneousMaterial::clone( );
     }
@@ -52,11 +52,11 @@ struct HomogeneousMaterial_wrapper : HomogeneousMaterial, bp::wrapper< Homogeneo
     virtual ::IMaterial const * createTransformedMaterial( ::Geometry::ITransform3D const & transform ) const  {
         if( bp::override func_createTransformedMaterial = this->get_override( "createTransformedMaterial" ) )
             return func_createTransformedMaterial( boost::ref(transform) );
-        else{
+        else
             return this->HomogeneousMaterial::createTransformedMaterial( boost::ref(transform) );
-        }
     }
     
+    
     ::IMaterial const * default_createTransformedMaterial( ::Geometry::ITransform3D const & transform ) const  {
         return HomogeneousMaterial::createTransformedMaterial( boost::ref(transform) );
     }
@@ -64,11 +64,11 @@ struct HomogeneousMaterial_wrapper : HomogeneousMaterial, bp::wrapper< Homogeneo
     virtual ::complex_t getRefractiveIndex(  ) const  {
         if( bp::override func_getRefractiveIndex = this->get_override( "getRefractiveIndex" ) )
             return func_getRefractiveIndex(  );
-        else{
+        else
             return this->HomogeneousMaterial::getRefractiveIndex(  );
-        }
     }
     
+    
     ::complex_t default_getRefractiveIndex(  ) const  {
         return HomogeneousMaterial::getRefractiveIndex( );
     }
@@ -76,11 +76,11 @@ struct HomogeneousMaterial_wrapper : HomogeneousMaterial, bp::wrapper< Homogeneo
     virtual bool isScalarMaterial(  ) const  {
         if( bp::override func_isScalarMaterial = this->get_override( "isScalarMaterial" ) )
             return func_isScalarMaterial(  );
-        else{
+        else
             return this->IMaterial::isScalarMaterial(  );
-        }
     }
     
+    
     bool default_isScalarMaterial(  ) const  {
         return IMaterial::isScalarMaterial( );
     }
diff --git a/Core/PythonAPI/src/IAxis.pypp.cpp b/Core/PythonAPI/src/IAxis.pypp.cpp
index a6c9c35dcd98aa69f39a992fe63304b54e7adf7c..9c689bebe60a4d93f9e856aaab898a9a45e5c2d3 100644
--- a/Core/PythonAPI/src/IAxis.pypp.cpp
+++ b/Core/PythonAPI/src/IAxis.pypp.cpp
@@ -33,12 +33,12 @@ struct IAxis_wrapper : IAxis, bp::wrapper< IAxis > {
         return func_createDoubleBinSize(  );
     }
 
-    virtual ::size_t findClosestIndex( double value ) const {
+    virtual ::std::size_t findClosestIndex( double value ) const {
         bp::override func_findClosestIndex = this->get_override( "findClosestIndex" );
         return func_findClosestIndex( value );
     }
 
-    virtual ::Bin1D getBin( ::size_t index ) const {
+    virtual ::Bin1D getBin( ::std::size_t index ) const {
         bp::override func_getBin = this->get_override( "getBin" );
         return func_getBin( index );
     }
@@ -53,12 +53,12 @@ struct IAxis_wrapper : IAxis, bp::wrapper< IAxis > {
         return func_getMin(  );
     }
 
-    virtual ::size_t getSize(  ) const {
+    virtual ::std::size_t getSize(  ) const {
         bp::override func_getSize = this->get_override( "getSize" );
         return func_getSize(  );
     }
 
-    virtual double operator[]( ::size_t index ) const {
+    virtual double operator[]( ::std::size_t index ) const {
         bp::override func___getitem__ = this->get_override( "__getitem__" );
         return func___getitem__( index );
     }
@@ -93,7 +93,7 @@ void register_IAxis_class(){
         }
         { //::IAxis::findClosestIndex
         
-            typedef ::size_t ( ::IAxis::*findClosestIndex_function_type )( double ) const;
+            typedef ::std::size_t ( ::IAxis::*findClosestIndex_function_type )( double ) const;
             
             IAxis_exposer.def( 
                 "findClosestIndex"
@@ -103,7 +103,7 @@ void register_IAxis_class(){
         }
         { //::IAxis::getBin
         
-            typedef ::Bin1D ( ::IAxis::*getBin_function_type )( ::size_t ) const;
+            typedef ::Bin1D ( ::IAxis::*getBin_function_type )( ::std::size_t ) const;
             
             IAxis_exposer.def( 
                 "getBin"
@@ -140,7 +140,7 @@ void register_IAxis_class(){
         }
         { //::IAxis::getSize
         
-            typedef ::size_t ( ::IAxis::*getSize_function_type )(  ) const;
+            typedef ::std::size_t ( ::IAxis::*getSize_function_type )(  ) const;
             
             IAxis_exposer.def( 
                 "getSize"
@@ -149,7 +149,7 @@ void register_IAxis_class(){
         }
         { //::IAxis::operator[]
         
-            typedef double ( ::IAxis::*__getitem___function_type )( ::size_t ) const;
+            typedef double ( ::IAxis::*__getitem___function_type )( ::std::size_t ) const;
             
             IAxis_exposer.def( 
                 "__getitem__"
diff --git a/Core/PythonAPI/src/IClusteredParticles.pypp.cpp b/Core/PythonAPI/src/IClusteredParticles.pypp.cpp
index 1da215fb6bbe60753750111037a550fae6c5fb16..dbd80633145ffbf03b3ed3ab1ee3940d641779d8 100644
--- a/Core/PythonAPI/src/IClusteredParticles.pypp.cpp
+++ b/Core/PythonAPI/src/IClusteredParticles.pypp.cpp
@@ -28,11 +28,11 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere
     virtual ::IClusteredParticles * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->IClusteredParticles::clone(  );
-        }
     }
     
+    
     ::IClusteredParticles * default_clone(  ) const  {
         return IClusteredParticles::clone( );
     }
@@ -40,11 +40,11 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere
     virtual ::IClusteredParticles * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->IClusteredParticles::cloneInvertB(  );
-        }
     }
     
+    
     ::IClusteredParticles * default_cloneInvertB(  ) const  {
         return IClusteredParticles::cloneInvertB( );
     }
@@ -52,11 +52,11 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere
     virtual ::Geometry::ITransform3D const * getTransform(  ) const  {
         if( bp::override func_getTransform = this->get_override( "getTransform" ) )
             return func_getTransform(  );
-        else{
+        else
             return this->IClusteredParticles::getTransform(  );
-        }
     }
     
+    
     ::Geometry::ITransform3D const * default_getTransform(  ) const  {
         return IClusteredParticles::getTransform( );
     }
@@ -69,23 +69,28 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere
     virtual void setTransform( ::Geometry::ITransform3D const & transform ) {
         if( bp::override func_setTransform = this->get_override( "setTransform" ) )
             func_setTransform( boost::ref(transform) );
-        else{
+        else
             this->IClusteredParticles::setTransform( boost::ref(transform) );
-        }
     }
     
+    
     void default_setTransform( ::Geometry::ITransform3D const & transform ) {
         IClusteredParticles::setTransform( boost::ref(transform) );
     }
 
+    virtual void accept( ::ISampleVisitor * p_visitor ) const {
+        bp::override func_accept = this->get_override( "accept" );
+        func_accept( boost::python::ptr(p_visitor) );
+    }
+
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -93,11 +98,11 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -105,23 +110,47 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ICompositeSample::getCompositeSample( );
+    }
+
+    virtual ::ICompositeSample const * getCompositeSample(  ) const  {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample const * default_getCompositeSample(  ) const  {
+        return ICompositeSample::getCompositeSample( );
+    }
+
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -129,11 +158,11 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -160,11 +189,11 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -172,11 +201,11 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -184,15 +213,27 @@ struct IClusteredParticles_wrapper : IClusteredParticles, bp::wrapper< IClustere
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
+    virtual ::std::size_t size(  ) const  {
+        if( bp::override func_size = this->get_override( "size" ) )
+            return func_size(  );
+        else
+            return this->ICompositeSample::size(  );
+    }
+    
+    
+    ::std::size_t default_size(  ) const  {
+        return ICompositeSample::size( );
+    }
+
 };
 
 void register_IClusteredParticles_class(){
@@ -258,6 +299,16 @@ void register_IClusteredParticles_class(){
                 , default_setTransform_function_type(&IClusteredParticles_wrapper::default_setTransform)
                 , ( bp::arg("transform") ) );
         
+        }
+        { //::ISample::accept
+        
+            typedef void ( ::ISample::*accept_function_type )( ::ISampleVisitor * ) const;
+            
+            IClusteredParticles_exposer.def( 
+                "accept"
+                , bp::pure_virtual( accept_function_type(&::ISample::accept) )
+                , ( bp::arg("p_visitor") ) );
+        
         }
         { //::IParameterized::areParametersChanged
         
@@ -292,6 +343,30 @@ void register_IClusteredParticles_class(){
                 , default_createParameterTree_function_type(&IClusteredParticles_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( IClusteredParticles_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            IClusteredParticles_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&IClusteredParticles_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample const * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) const;
+            typedef ::ICompositeSample const * ( IClusteredParticles_wrapper::*default_getCompositeSample_function_type )(  ) const;
+            
+            IClusteredParticles_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&IClusteredParticles_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::IParameterized::printParameters
         
@@ -360,6 +435,17 @@ void register_IClusteredParticles_class(){
                 , default_setParametersAreChanged_function_type(&IClusteredParticles_wrapper::default_setParametersAreChanged) );
         
         }
+        { //::ICompositeSample::size
+        
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( IClusteredParticles_wrapper::*default_size_function_type )(  ) const;
+            
+            IClusteredParticles_exposer.def( 
+                "size"
+                , size_function_type(&::ICompositeSample::size)
+                , default_size_function_type(&IClusteredParticles_wrapper::default_size) );
+        
+        }
     }
 
 }
diff --git a/Core/PythonAPI/src/ICompositeSample.pypp.cpp b/Core/PythonAPI/src/ICompositeSample.pypp.cpp
index 011980f21fd5964d8a0b5bdd9db1ecfd69266638..10f89768880888ddbc755621b4b9b3d0d9aafbc7 100644
--- a/Core/PythonAPI/src/ICompositeSample.pypp.cpp
+++ b/Core/PythonAPI/src/ICompositeSample.pypp.cpp
@@ -25,6 +25,47 @@ struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSampl
     
     }
 
+    virtual ::ICompositeSample * clone(  ) const {
+        bp::override func_clone = this->get_override( "clone" );
+        return func_clone(  );
+    }
+
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ICompositeSample::getCompositeSample( );
+    }
+
+    virtual ::ICompositeSample const * getCompositeSample(  ) const  {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample const * default_getCompositeSample(  ) const  {
+        return ICompositeSample::getCompositeSample( );
+    }
+
+    virtual ::std::size_t size(  ) const  {
+        if( bp::override func_size = this->get_override( "size" ) )
+            return func_size(  );
+        else
+            return this->ICompositeSample::size(  );
+    }
+    
+    
+    ::std::size_t default_size(  ) const  {
+        return ICompositeSample::size( );
+    }
+
     virtual void accept( ::ISampleVisitor * p_visitor ) const {
         bp::override func_accept = this->get_override( "accept" );
         func_accept( boost::python::ptr(p_visitor) );
@@ -33,11 +74,11 @@ struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSampl
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -45,11 +86,11 @@ struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSampl
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -57,11 +98,11 @@ struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSampl
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
@@ -69,11 +110,11 @@ struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSampl
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -81,11 +122,11 @@ struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSampl
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -93,11 +134,11 @@ struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSampl
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -124,11 +165,11 @@ struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSampl
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -136,11 +177,11 @@ struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSampl
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -148,11 +189,11 @@ struct ICompositeSample_wrapper : ICompositeSample, bp::wrapper< ICompositeSampl
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -165,6 +206,87 @@ void register_ICompositeSample_class(){
         typedef bp::class_< ICompositeSample_wrapper, bp::bases< ISample >, boost::noncopyable > ICompositeSample_exposer_t;
         ICompositeSample_exposer_t ICompositeSample_exposer = ICompositeSample_exposer_t( "ICompositeSample", bp::init< >() );
         bp::scope ICompositeSample_scope( ICompositeSample_exposer );
+        { //::ICompositeSample::begin_shallow
+        
+            typedef ::std::_List_iterator< ISample* > ( ::ICompositeSample::*begin_shallow_function_type )(  ) ;
+            
+            ICompositeSample_exposer.def( 
+                "begin_shallow"
+                , begin_shallow_function_type( &::ICompositeSample::begin_shallow ) );
+        
+        }
+        { //::ICompositeSample::begin_shallow
+        
+            typedef ::std::_List_const_iterator< ISample* > ( ::ICompositeSample::*begin_shallow_function_type )(  ) const;
+            
+            ICompositeSample_exposer.def( 
+                "begin_shallow"
+                , begin_shallow_function_type( &::ICompositeSample::begin_shallow ) );
+        
+        }
+        { //::ICompositeSample::clone
+        
+            typedef ::ICompositeSample * ( ::ICompositeSample::*clone_function_type )(  ) const;
+            
+            ICompositeSample_exposer.def( 
+                "clone"
+                , bp::pure_virtual( clone_function_type(&::ICompositeSample::clone) )
+                , bp::return_value_policy< bp::manage_new_object >() );
+        
+        }
+        { //::ICompositeSample::end_shallow
+        
+            typedef ::std::_List_iterator< ISample* > ( ::ICompositeSample::*end_shallow_function_type )(  ) ;
+            
+            ICompositeSample_exposer.def( 
+                "end_shallow"
+                , end_shallow_function_type( &::ICompositeSample::end_shallow ) );
+        
+        }
+        { //::ICompositeSample::end_shallow
+        
+            typedef ::std::_List_const_iterator< ISample* > ( ::ICompositeSample::*end_shallow_function_type )(  ) const;
+            
+            ICompositeSample_exposer.def( 
+                "end_shallow"
+                , end_shallow_function_type( &::ICompositeSample::end_shallow ) );
+        
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( ICompositeSample_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            ICompositeSample_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&ICompositeSample_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample const * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) const;
+            typedef ::ICompositeSample const * ( ICompositeSample_wrapper::*default_getCompositeSample_function_type )(  ) const;
+            
+            ICompositeSample_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&ICompositeSample_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
+        }
+        { //::ICompositeSample::size
+        
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( ICompositeSample_wrapper::*default_size_function_type )(  ) const;
+            
+            ICompositeSample_exposer.def( 
+                "size"
+                , size_function_type(&::ICompositeSample::size)
+                , default_size_function_type(&ICompositeSample_wrapper::default_size) );
+        
+        }
         { //::ISample::accept
         
             typedef void ( ::ISample::*accept_function_type )( ::ISampleVisitor * ) const;
diff --git a/Core/PythonAPI/src/IDecoration.pypp.cpp b/Core/PythonAPI/src/IDecoration.pypp.cpp
index 2e3ae6efe7e98acd6866f928a7dabda587ec1a94..4cbc743d39b703660f81b897c0f55d561a2bce23 100644
--- a/Core/PythonAPI/src/IDecoration.pypp.cpp
+++ b/Core/PythonAPI/src/IDecoration.pypp.cpp
@@ -35,7 +35,7 @@ struct IDecoration_wrapper : IDecoration, bp::wrapper< IDecoration > {
         return func_cloneInvertB(  );
     }
 
-    virtual double getAbundanceFractionOfParticle( ::size_t index ) const {
+    virtual double getAbundanceFractionOfParticle( ::std::size_t index ) const {
         bp::override func_getAbundanceFractionOfParticle = this->get_override( "getAbundanceFractionOfParticle" );
         return func_getAbundanceFractionOfParticle( index );
     }
@@ -45,24 +45,24 @@ struct IDecoration_wrapper : IDecoration, bp::wrapper< IDecoration > {
         return func_getInterferenceFunctions(  );
     }
 
-    virtual ::size_t getNumberOfInterferenceFunctions(  ) const  {
+    virtual ::std::size_t getNumberOfInterferenceFunctions(  ) const  {
         if( bp::override func_getNumberOfInterferenceFunctions = this->get_override( "getNumberOfInterferenceFunctions" ) )
             return func_getNumberOfInterferenceFunctions(  );
-        else{
+        else
             return this->IDecoration::getNumberOfInterferenceFunctions(  );
-        }
     }
     
-    ::size_t default_getNumberOfInterferenceFunctions(  ) const  {
+    
+    ::std::size_t default_getNumberOfInterferenceFunctions(  ) const  {
         return IDecoration::getNumberOfInterferenceFunctions( );
     }
 
-    virtual ::size_t getNumberOfParticles(  ) const {
+    virtual ::std::size_t getNumberOfParticles(  ) const {
         bp::override func_getNumberOfParticles = this->get_override( "getNumberOfParticles" );
         return func_getNumberOfParticles(  );
     }
 
-    virtual ::ParticleInfo const * getParticleInfo( ::size_t index ) const {
+    virtual ::ParticleInfo const * getParticleInfo( ::std::size_t index ) const {
         bp::override func_getParticleInfo = this->get_override( "getParticleInfo" );
         return func_getParticleInfo( index );
     }
@@ -75,11 +75,11 @@ struct IDecoration_wrapper : IDecoration, bp::wrapper< IDecoration > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -87,11 +87,11 @@ struct IDecoration_wrapper : IDecoration, bp::wrapper< IDecoration > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -99,23 +99,47 @@ struct IDecoration_wrapper : IDecoration, bp::wrapper< IDecoration > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ICompositeSample::getCompositeSample( );
+    }
+
+    virtual ::ICompositeSample const * getCompositeSample(  ) const  {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample const * default_getCompositeSample(  ) const  {
+        return ICompositeSample::getCompositeSample( );
+    }
+
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -123,11 +147,11 @@ struct IDecoration_wrapper : IDecoration, bp::wrapper< IDecoration > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -154,11 +178,11 @@ struct IDecoration_wrapper : IDecoration, bp::wrapper< IDecoration > {
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -166,11 +190,11 @@ struct IDecoration_wrapper : IDecoration, bp::wrapper< IDecoration > {
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -178,15 +202,27 @@ struct IDecoration_wrapper : IDecoration, bp::wrapper< IDecoration > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
+    virtual ::std::size_t size(  ) const  {
+        if( bp::override func_size = this->get_override( "size" ) )
+            return func_size(  );
+        else
+            return this->ICompositeSample::size(  );
+    }
+    
+    
+    ::std::size_t default_size(  ) const  {
+        return ICompositeSample::size( );
+    }
+
 };
 
 void register_IDecoration_class(){
@@ -217,7 +253,7 @@ void register_IDecoration_class(){
         }
         { //::IDecoration::getAbundanceFractionOfParticle
         
-            typedef double ( ::IDecoration::*getAbundanceFractionOfParticle_function_type )( ::size_t ) const;
+            typedef double ( ::IDecoration::*getAbundanceFractionOfParticle_function_type )( ::std::size_t ) const;
             
             IDecoration_exposer.def( 
                 "getAbundanceFractionOfParticle"
@@ -236,8 +272,8 @@ void register_IDecoration_class(){
         }
         { //::IDecoration::getNumberOfInterferenceFunctions
         
-            typedef ::size_t ( ::IDecoration::*getNumberOfInterferenceFunctions_function_type )(  ) const;
-            typedef ::size_t ( IDecoration_wrapper::*default_getNumberOfInterferenceFunctions_function_type )(  ) const;
+            typedef ::std::size_t ( ::IDecoration::*getNumberOfInterferenceFunctions_function_type )(  ) const;
+            typedef ::std::size_t ( IDecoration_wrapper::*default_getNumberOfInterferenceFunctions_function_type )(  ) const;
             
             IDecoration_exposer.def( 
                 "getNumberOfInterferenceFunctions"
@@ -247,7 +283,7 @@ void register_IDecoration_class(){
         }
         { //::IDecoration::getNumberOfParticles
         
-            typedef ::size_t ( ::IDecoration::*getNumberOfParticles_function_type )(  ) const;
+            typedef ::std::size_t ( ::IDecoration::*getNumberOfParticles_function_type )(  ) const;
             
             IDecoration_exposer.def( 
                 "getNumberOfParticles"
@@ -256,7 +292,7 @@ void register_IDecoration_class(){
         }
         { //::IDecoration::getParticleInfo
         
-            typedef ::ParticleInfo const * ( ::IDecoration::*getParticleInfo_function_type )( ::size_t ) const;
+            typedef ::ParticleInfo const * ( ::IDecoration::*getParticleInfo_function_type )( ::std::size_t ) const;
             
             IDecoration_exposer.def( 
                 "getParticleInfo"
@@ -327,6 +363,30 @@ void register_IDecoration_class(){
                 , default_createParameterTree_function_type(&IDecoration_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( IDecoration_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            IDecoration_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&IDecoration_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample const * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) const;
+            typedef ::ICompositeSample const * ( IDecoration_wrapper::*default_getCompositeSample_function_type )(  ) const;
+            
+            IDecoration_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&IDecoration_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::IParameterized::printParameters
         
@@ -395,6 +455,17 @@ void register_IDecoration_class(){
                 , default_setParametersAreChanged_function_type(&IDecoration_wrapper::default_setParametersAreChanged) );
         
         }
+        { //::ICompositeSample::size
+        
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( IDecoration_wrapper::*default_size_function_type )(  ) const;
+            
+            IDecoration_exposer.def( 
+                "size"
+                , size_function_type(&::ICompositeSample::size)
+                , default_size_function_type(&IDecoration_wrapper::default_size) );
+        
+        }
     }
 
 }
diff --git a/Core/PythonAPI/src/IDetectorResolution.pypp.cpp b/Core/PythonAPI/src/IDetectorResolution.pypp.cpp
index 2ac71b82b8d091acd0a28ae5f861d1682740b439..3cf199b2353950e447bcd111c2f8a5b262ad5971 100644
--- a/Core/PythonAPI/src/IDetectorResolution.pypp.cpp
+++ b/Core/PythonAPI/src/IDetectorResolution.pypp.cpp
@@ -38,11 +38,11 @@ struct IDetectorResolution_wrapper : IDetectorResolution, bp::wrapper< IDetector
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -50,11 +50,11 @@ struct IDetectorResolution_wrapper : IDetectorResolution, bp::wrapper< IDetector
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -62,11 +62,11 @@ struct IDetectorResolution_wrapper : IDetectorResolution, bp::wrapper< IDetector
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -74,11 +74,11 @@ struct IDetectorResolution_wrapper : IDetectorResolution, bp::wrapper< IDetector
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -105,11 +105,11 @@ struct IDetectorResolution_wrapper : IDetectorResolution, bp::wrapper< IDetector
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -117,11 +117,11 @@ struct IDetectorResolution_wrapper : IDetectorResolution, bp::wrapper< IDetector
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -129,11 +129,11 @@ struct IDetectorResolution_wrapper : IDetectorResolution, bp::wrapper< IDetector
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
diff --git a/Core/PythonAPI/src/IFTDistribution2D.pypp.cpp b/Core/PythonAPI/src/IFTDistribution2D.pypp.cpp
index bcd19d0838aa60d7bdbfab1b286f13ae6782e73b..7fcb99d2deaa83f5bb03cea68f4e6cc1d667a25a 100644
--- a/Core/PythonAPI/src/IFTDistribution2D.pypp.cpp
+++ b/Core/PythonAPI/src/IFTDistribution2D.pypp.cpp
@@ -43,11 +43,11 @@ struct IFTDistribution2D_wrapper : IFTDistribution2D, bp::wrapper< IFTDistributi
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -55,11 +55,11 @@ struct IFTDistribution2D_wrapper : IFTDistribution2D, bp::wrapper< IFTDistributi
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -67,11 +67,11 @@ struct IFTDistribution2D_wrapper : IFTDistribution2D, bp::wrapper< IFTDistributi
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -79,11 +79,11 @@ struct IFTDistribution2D_wrapper : IFTDistribution2D, bp::wrapper< IFTDistributi
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -110,11 +110,11 @@ struct IFTDistribution2D_wrapper : IFTDistribution2D, bp::wrapper< IFTDistributi
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -122,11 +122,11 @@ struct IFTDistribution2D_wrapper : IFTDistribution2D, bp::wrapper< IFTDistributi
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -134,11 +134,11 @@ struct IFTDistribution2D_wrapper : IFTDistribution2D, bp::wrapper< IFTDistributi
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
diff --git a/Core/PythonAPI/src/IFormFactor.pypp.cpp b/Core/PythonAPI/src/IFormFactor.pypp.cpp
index 582ff582f9083260d7ac7dc6e323f97677c3a768..47eb2f5e9677080390dd7461980ae652c7b67550 100644
--- a/Core/PythonAPI/src/IFormFactor.pypp.cpp
+++ b/Core/PythonAPI/src/IFormFactor.pypp.cpp
@@ -30,15 +30,15 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
         return func_clone(  );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
@@ -50,11 +50,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->IFormFactor::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return IFormFactor::getHeight( );
     }
@@ -62,11 +62,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->IFormFactor::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return IFormFactor::getNumberOfStochasticParameters( );
     }
@@ -74,11 +74,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactor::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactor::getRadius( );
     }
@@ -86,11 +86,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactor::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactor::getVolume( );
     }
@@ -98,11 +98,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -110,11 +110,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -122,11 +122,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -134,11 +134,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
@@ -146,11 +146,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -158,11 +158,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -170,11 +170,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -182,11 +182,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -213,11 +213,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -225,11 +225,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -237,11 +237,11 @@ struct IFormFactor_wrapper : IFormFactor, bp::wrapper< IFormFactor > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -266,8 +266,8 @@ void register_IFormFactor_class(){
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( IFormFactor_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( IFormFactor_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             IFormFactor_exposer.def( 
                 "createDistributedFormFactors"
diff --git a/Core/PythonAPI/src/IFormFactorBorn.pypp.cpp b/Core/PythonAPI/src/IFormFactorBorn.pypp.cpp
index 401068a3c4b4d1dd6457856b751a1f802021fc44..fc3c5fce9ad3ab1c3717436434395be8c33822d4 100644
--- a/Core/PythonAPI/src/IFormFactorBorn.pypp.cpp
+++ b/Core/PythonAPI/src/IFormFactorBorn.pypp.cpp
@@ -33,11 +33,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual ::complex_t evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        else{
+        else
             return this->IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
-        }
     }
     
+    
     ::complex_t default_evaluate( ::cvector_t const & k_i, ::Bin1DCVector const & k_f_bin, ::Bin1D alpha_f_bin ) const  {
         return IFormFactorBorn::evaluate( boost::ref(k_i), boost::ref(k_f_bin), alpha_f_bin );
     }
@@ -50,11 +50,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorBorn::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorBorn::getVolume( );
     }
@@ -62,11 +62,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -74,11 +74,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -86,35 +86,35 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -122,11 +122,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -134,11 +134,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->IFormFactor::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return IFormFactor::getHeight( );
     }
@@ -146,11 +146,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->IFormFactor::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return IFormFactor::getNumberOfStochasticParameters( );
     }
@@ -158,11 +158,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactor::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactor::getRadius( );
     }
@@ -170,11 +170,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -182,11 +182,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -194,11 +194,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -225,11 +225,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -237,11 +237,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -249,11 +249,11 @@ struct IFormFactorBorn_wrapper : IFormFactorBorn, bp::wrapper< IFormFactorBorn >
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -345,8 +345,8 @@ void register_IFormFactorBorn_class(){
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( IFormFactorBorn_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( IFormFactorBorn_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             IFormFactorBorn_exposer.def( 
                 "createDistributedFormFactors"
diff --git a/Core/PythonAPI/src/IFormFactorDecorator.pypp.cpp b/Core/PythonAPI/src/IFormFactorDecorator.pypp.cpp
index 8285eadec4f19d3791ca2e84f5b1cceaa2a65d4b..29b0fd2305d7847208f4118f3b7a86a6f4bad961 100644
--- a/Core/PythonAPI/src/IFormFactorDecorator.pypp.cpp
+++ b/Core/PythonAPI/src/IFormFactorDecorator.pypp.cpp
@@ -26,11 +26,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual double getHeight(  ) const  {
         if( bp::override func_getHeight = this->get_override( "getHeight" ) )
             return func_getHeight(  );
-        else{
+        else
             return this->IFormFactorDecorator::getHeight(  );
-        }
     }
     
+    
     double default_getHeight(  ) const  {
         return IFormFactorDecorator::getHeight( );
     }
@@ -38,11 +38,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
-        else{
+        else
             return this->IFormFactorDecorator::getRadius(  );
-        }
     }
     
+    
     double default_getRadius(  ) const  {
         return IFormFactorDecorator::getRadius( );
     }
@@ -50,11 +50,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual double getVolume(  ) const  {
         if( bp::override func_getVolume = this->get_override( "getVolume" ) )
             return func_getVolume(  );
-        else{
+        else
             return this->IFormFactorDecorator::getVolume(  );
-        }
     }
     
+    
     double default_getVolume(  ) const  {
         return IFormFactorDecorator::getVolume( );
     }
@@ -62,11 +62,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -74,11 +74,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -86,35 +86,35 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
 
-    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    virtual void createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         if( bp::override func_createDistributedFormFactors = this->get_override( "createDistributedFormFactors" ) )
             func_createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        else{
+        else
             this->IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
-        }
     }
     
-    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::size_t nbr_samples ) const  {
+    
+    void default_createDistributedFormFactors( ::std::vector< IFormFactor* > & form_factors, ::std::vector< double > & probabilities, ::std::size_t nbr_samples ) const  {
         IFormFactor::createDistributedFormFactors( boost::ref(form_factors), boost::ref(probabilities), nbr_samples );
     }
 
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -127,11 +127,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -139,11 +139,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual int getNumberOfStochasticParameters(  ) const  {
         if( bp::override func_getNumberOfStochasticParameters = this->get_override( "getNumberOfStochasticParameters" ) )
             return func_getNumberOfStochasticParameters(  );
-        else{
+        else
             return this->IFormFactor::getNumberOfStochasticParameters(  );
-        }
     }
     
+    
     int default_getNumberOfStochasticParameters(  ) const  {
         return IFormFactor::getNumberOfStochasticParameters( );
     }
@@ -151,11 +151,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual bool isDistributedFormFactor(  ) const  {
         if( bp::override func_isDistributedFormFactor = this->get_override( "isDistributedFormFactor" ) )
             return func_isDistributedFormFactor(  );
-        else{
+        else
             return this->IFormFactor::isDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_isDistributedFormFactor(  ) const  {
         return IFormFactor::isDistributedFormFactor( );
     }
@@ -163,11 +163,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -175,11 +175,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -206,11 +206,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -218,11 +218,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -230,11 +230,11 @@ struct IFormFactorDecorator_wrapper : IFormFactorDecorator, bp::wrapper< IFormFa
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -326,8 +326,8 @@ void register_IFormFactorDecorator_class(){
         }
         { //::IFormFactor::createDistributedFormFactors
         
-            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
-            typedef void ( IFormFactorDecorator_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::size_t ) const;
+            typedef void ( ::IFormFactor::*createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
+            typedef void ( IFormFactorDecorator_wrapper::*default_createDistributedFormFactors_function_type )( ::std::vector< IFormFactor* > &,::std::vector< double > &,::std::size_t ) const;
             
             IFormFactorDecorator_exposer.def( 
                 "createDistributedFormFactors"
diff --git a/Core/PythonAPI/src/IInterferenceFunction.pypp.cpp b/Core/PythonAPI/src/IInterferenceFunction.pypp.cpp
index 0d33b05e0da1d736c2423cb0c8482e3dcf8c9bbe..629e437f138d8cbf5aa6dfe3161a65006c2ba55d 100644
--- a/Core/PythonAPI/src/IInterferenceFunction.pypp.cpp
+++ b/Core/PythonAPI/src/IInterferenceFunction.pypp.cpp
@@ -38,11 +38,11 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte
     virtual double getKappa(  ) const  {
         if( bp::override func_getKappa = this->get_override( "getKappa" ) )
             return func_getKappa(  );
-        else{
+        else
             return this->IInterferenceFunction::getKappa(  );
-        }
     }
     
+    
     double default_getKappa(  ) const  {
         return IInterferenceFunction::getKappa( );
     }
@@ -50,11 +50,11 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -62,11 +62,11 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -74,11 +74,11 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
@@ -86,11 +86,11 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -98,11 +98,11 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -110,11 +110,11 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -122,11 +122,11 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -153,11 +153,11 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -165,11 +165,11 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -177,11 +177,11 @@ struct IInterferenceFunction_wrapper : IInterferenceFunction, bp::wrapper< IInte
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
diff --git a/Core/PythonAPI/src/IMaterial.pypp.cpp b/Core/PythonAPI/src/IMaterial.pypp.cpp
index 06ef528bf18110412ed581e97ba85e52d2a18d50..3585f441333c7a69c5e0b8582480abb706347554 100644
--- a/Core/PythonAPI/src/IMaterial.pypp.cpp
+++ b/Core/PythonAPI/src/IMaterial.pypp.cpp
@@ -33,11 +33,11 @@ struct IMaterial_wrapper : IMaterial, bp::wrapper< IMaterial > {
     virtual ::IMaterial * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->IMaterial::clone(  );
-        }
     }
     
+    
     ::IMaterial * default_clone(  ) const  {
         return IMaterial::clone( );
     }
@@ -45,11 +45,11 @@ struct IMaterial_wrapper : IMaterial, bp::wrapper< IMaterial > {
     virtual ::IMaterial const * createTransformedMaterial( ::Geometry::ITransform3D const & transform ) const  {
         if( bp::override func_createTransformedMaterial = this->get_override( "createTransformedMaterial" ) )
             return func_createTransformedMaterial( boost::ref(transform) );
-        else{
+        else
             return this->IMaterial::createTransformedMaterial( boost::ref(transform) );
-        }
     }
     
+    
     ::IMaterial const * default_createTransformedMaterial( ::Geometry::ITransform3D const & transform ) const  {
         return IMaterial::createTransformedMaterial( boost::ref(transform) );
     }
@@ -57,11 +57,11 @@ struct IMaterial_wrapper : IMaterial, bp::wrapper< IMaterial > {
     virtual ::complex_t getRefractiveIndex(  ) const  {
         if( bp::override func_getRefractiveIndex = this->get_override( "getRefractiveIndex" ) )
             return func_getRefractiveIndex(  );
-        else{
+        else
             return this->IMaterial::getRefractiveIndex(  );
-        }
     }
     
+    
     ::complex_t default_getRefractiveIndex(  ) const  {
         return IMaterial::getRefractiveIndex( );
     }
@@ -69,11 +69,11 @@ struct IMaterial_wrapper : IMaterial, bp::wrapper< IMaterial > {
     virtual bool isScalarMaterial(  ) const  {
         if( bp::override func_isScalarMaterial = this->get_override( "isScalarMaterial" ) )
             return func_isScalarMaterial(  );
-        else{
+        else
             return this->IMaterial::isScalarMaterial(  );
-        }
     }
     
+    
     bool default_isScalarMaterial(  ) const  {
         return IMaterial::isScalarMaterial( );
     }
diff --git a/Core/PythonAPI/src/IObservable.pypp.cpp b/Core/PythonAPI/src/IObservable.pypp.cpp
index 6e3f06ed514410bbb627cc7662aae9e981e84ec4..c73a23d0bf6708f67b04bfc30d66b984ecb5fd0c 100644
--- a/Core/PythonAPI/src/IObservable.pypp.cpp
+++ b/Core/PythonAPI/src/IObservable.pypp.cpp
@@ -33,11 +33,11 @@ struct IObservable_wrapper : IObservable, bp::wrapper< IObservable > {
     virtual void attachObserver( ::boost::shared_ptr< IObserver > obj ) {
         if( bp::override func_attachObserver = this->get_override( "attachObserver" ) )
             func_attachObserver( obj );
-        else{
+        else
             this->IObservable::attachObserver( obj );
-        }
     }
     
+    
     void default_attachObserver( ::boost::shared_ptr< IObserver > obj ) {
         IObservable::attachObserver( obj );
     }
@@ -45,11 +45,11 @@ struct IObservable_wrapper : IObservable, bp::wrapper< IObservable > {
     virtual void notifyObservers(  ) {
         if( bp::override func_notifyObservers = this->get_override( "notifyObservers" ) )
             func_notifyObservers(  );
-        else{
+        else
             this->IObservable::notifyObservers(  );
-        }
     }
     
+    
     void default_notifyObservers(  ) {
         IObservable::notifyObservers( );
     }
diff --git a/Core/PythonAPI/src/IObserver.pypp.cpp b/Core/PythonAPI/src/IObserver.pypp.cpp
index 04ac2919e58459d79daaa149dec2b099ee23ac18..9d93fda86f32c812006aa5454c63b36241843e57 100644
--- a/Core/PythonAPI/src/IObserver.pypp.cpp
+++ b/Core/PythonAPI/src/IObserver.pypp.cpp
@@ -33,11 +33,11 @@ struct IObserver_wrapper : IObserver, bp::wrapper< IObserver > {
     virtual void update( ::IObservable * arg0 ) {
         if( bp::override func_update = this->get_override( "update" ) )
             func_update( boost::python::ptr(arg0) );
-        else{
+        else
             this->IObserver::update( boost::python::ptr(arg0) );
-        }
     }
     
+    
     void default_update( ::IObservable * arg0 ) {
         IObserver::update( boost::python::ptr(arg0) );
     }
diff --git a/Core/PythonAPI/src/IParameterized.pypp.cpp b/Core/PythonAPI/src/IParameterized.pypp.cpp
index a877d62ddc8a79a787310eb88b336f103cd0fc39..337d9ae2451e0446157a1d34a2c3b8f4fec8302a 100644
--- a/Core/PythonAPI/src/IParameterized.pypp.cpp
+++ b/Core/PythonAPI/src/IParameterized.pypp.cpp
@@ -42,11 +42,11 @@ struct IParameterized_wrapper : IParameterized, bp::wrapper< IParameterized > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -54,11 +54,11 @@ struct IParameterized_wrapper : IParameterized, bp::wrapper< IParameterized > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -66,11 +66,11 @@ struct IParameterized_wrapper : IParameterized, bp::wrapper< IParameterized > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -78,11 +78,11 @@ struct IParameterized_wrapper : IParameterized, bp::wrapper< IParameterized > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -109,11 +109,11 @@ struct IParameterized_wrapper : IParameterized, bp::wrapper< IParameterized > {
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -121,11 +121,11 @@ struct IParameterized_wrapper : IParameterized, bp::wrapper< IParameterized > {
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -133,11 +133,11 @@ struct IParameterized_wrapper : IParameterized, bp::wrapper< IParameterized > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
diff --git a/Core/PythonAPI/src/IResolutionFunction2D.pypp.cpp b/Core/PythonAPI/src/IResolutionFunction2D.pypp.cpp
index 6fb03f15fa94c212e0cb39ff67a23b9a1f2df6d3..a3291d70e3e0b7ae6ce3e98de25f854a43894833 100644
--- a/Core/PythonAPI/src/IResolutionFunction2D.pypp.cpp
+++ b/Core/PythonAPI/src/IResolutionFunction2D.pypp.cpp
@@ -38,11 +38,11 @@ struct IResolutionFunction2D_wrapper : IResolutionFunction2D, bp::wrapper< IReso
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -50,11 +50,11 @@ struct IResolutionFunction2D_wrapper : IResolutionFunction2D, bp::wrapper< IReso
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -62,11 +62,11 @@ struct IResolutionFunction2D_wrapper : IResolutionFunction2D, bp::wrapper< IReso
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -74,11 +74,11 @@ struct IResolutionFunction2D_wrapper : IResolutionFunction2D, bp::wrapper< IReso
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -105,11 +105,11 @@ struct IResolutionFunction2D_wrapper : IResolutionFunction2D, bp::wrapper< IReso
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -117,11 +117,11 @@ struct IResolutionFunction2D_wrapper : IResolutionFunction2D, bp::wrapper< IReso
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -129,11 +129,11 @@ struct IResolutionFunction2D_wrapper : IResolutionFunction2D, bp::wrapper< IReso
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
diff --git a/Core/PythonAPI/src/ISample.pypp.cpp b/Core/PythonAPI/src/ISample.pypp.cpp
index 49e71dd8e14a86538511b365019ca7185e4883c1..d6893b23933d57512a1db7d2b9583656b33c7007 100644
--- a/Core/PythonAPI/src/ISample.pypp.cpp
+++ b/Core/PythonAPI/src/ISample.pypp.cpp
@@ -33,11 +33,11 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > {
     virtual ::ISample * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->ISample::clone(  );
-        }
     }
     
+    
     ::ISample * default_clone(  ) const  {
         return ISample::clone( );
     }
@@ -45,11 +45,11 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > {
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
@@ -57,11 +57,11 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > {
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -69,11 +69,11 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -81,11 +81,11 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -93,11 +93,11 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -105,11 +105,11 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -117,11 +117,11 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -148,11 +148,11 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > {
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -160,11 +160,11 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > {
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -172,11 +172,11 @@ struct ISample_wrapper : ISample, bp::wrapper< ISample > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
diff --git a/Core/PythonAPI/src/ISampleBuilder.pypp.cpp b/Core/PythonAPI/src/ISampleBuilder.pypp.cpp
index 324cda2a65e75b670f60703f702560a5b3588d02..e6773ad2d71b848c73ad1d341ca69beae4c8edd3 100644
--- a/Core/PythonAPI/src/ISampleBuilder.pypp.cpp
+++ b/Core/PythonAPI/src/ISampleBuilder.pypp.cpp
@@ -35,11 +35,11 @@ struct ISampleBuilder_wrapper : ISampleBuilder, bp::wrapper< ISampleBuilder > {
     virtual ::ISample * buildSample(  ) const  {
         if( bp::override func_buildSample = this->get_override( "buildSample" ) )
             return func_buildSample(  );
-        else{
+        else
             return this->ISampleBuilder::buildSample(  );
-        }
     }
     
+    
     ::ISample * default_buildSample(  ) const  {
         return ISampleBuilder::buildSample( );
     }
@@ -47,11 +47,11 @@ struct ISampleBuilder_wrapper : ISampleBuilder, bp::wrapper< ISampleBuilder > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -59,11 +59,11 @@ struct ISampleBuilder_wrapper : ISampleBuilder, bp::wrapper< ISampleBuilder > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -71,11 +71,11 @@ struct ISampleBuilder_wrapper : ISampleBuilder, bp::wrapper< ISampleBuilder > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -83,11 +83,11 @@ struct ISampleBuilder_wrapper : ISampleBuilder, bp::wrapper< ISampleBuilder > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -114,11 +114,11 @@ struct ISampleBuilder_wrapper : ISampleBuilder, bp::wrapper< ISampleBuilder > {
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -126,11 +126,11 @@ struct ISampleBuilder_wrapper : ISampleBuilder, bp::wrapper< ISampleBuilder > {
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -138,11 +138,11 @@ struct ISampleBuilder_wrapper : ISampleBuilder, bp::wrapper< ISampleBuilder > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
diff --git a/Core/PythonAPI/src/ITransform3D.pypp.cpp b/Core/PythonAPI/src/ITransform3D.pypp.cpp
index f500e0d020698ebca3098edb5465eb690e8cd7ef..facf344322d8c1d3cecdc6458b54e4785564c39a 100644
--- a/Core/PythonAPI/src/ITransform3D.pypp.cpp
+++ b/Core/PythonAPI/src/ITransform3D.pypp.cpp
@@ -33,11 +33,11 @@ struct ITransform3D_wrapper : Geometry::ITransform3D, bp::wrapper< Geometry::ITr
     virtual ::Geometry::ITransform3D * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->Geometry::ITransform3D::clone(  );
-        }
     }
     
+    
     ::Geometry::ITransform3D * default_clone(  ) const  {
         return Geometry::ITransform3D::clone( );
     }
@@ -45,11 +45,11 @@ struct ITransform3D_wrapper : Geometry::ITransform3D, bp::wrapper< Geometry::ITr
     virtual void print( ::std::ostream & ostr ) const  {
         if( bp::override func_print = this->get_override( "print" ) )
             func_print( boost::ref(ostr) );
-        else{
+        else
             this->Geometry::ITransform3D::print( boost::ref(ostr) );
-        }
     }
     
+    
     void default_print( ::std::ostream & ostr ) const  {
         Geometry::ITransform3D::print( boost::ref(ostr) );
     }
diff --git a/Core/PythonAPI/src/Instrument.pypp.cpp b/Core/PythonAPI/src/Instrument.pypp.cpp
index f39802358545385a9cf76252d24b10400a573c0d..8fb80ac1b2d5bf6f3328c8b3a4a8a1e453aebdac 100644
--- a/Core/PythonAPI/src/Instrument.pypp.cpp
+++ b/Core/PythonAPI/src/Instrument.pypp.cpp
@@ -35,11 +35,11 @@ struct Instrument_wrapper : Instrument, bp::wrapper< Instrument > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -47,11 +47,11 @@ struct Instrument_wrapper : Instrument, bp::wrapper< Instrument > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -59,11 +59,11 @@ struct Instrument_wrapper : Instrument, bp::wrapper< Instrument > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -71,11 +71,11 @@ struct Instrument_wrapper : Instrument, bp::wrapper< Instrument > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -102,11 +102,11 @@ struct Instrument_wrapper : Instrument, bp::wrapper< Instrument > {
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -114,11 +114,11 @@ struct Instrument_wrapper : Instrument, bp::wrapper< Instrument > {
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -126,11 +126,11 @@ struct Instrument_wrapper : Instrument, bp::wrapper< Instrument > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -164,7 +164,7 @@ void register_Instrument_class(){
         }
         { //::Instrument::getDetectorAxis
         
-            typedef ::IAxis const & ( ::Instrument::*getDetectorAxis_function_type )( ::size_t ) const;
+            typedef ::IAxis const & ( ::Instrument::*getDetectorAxis_function_type )( ::std::size_t ) const;
             
             Instrument_exposer.def( 
                 "getDetectorAxis"
@@ -175,7 +175,7 @@ void register_Instrument_class(){
         }
         { //::Instrument::getDetectorDimension
         
-            typedef ::size_t ( ::Instrument::*getDetectorDimension_function_type )(  ) const;
+            typedef ::std::size_t ( ::Instrument::*getDetectorDimension_function_type )(  ) const;
             
             Instrument_exposer.def( 
                 "getDetectorDimension"
@@ -233,7 +233,7 @@ void register_Instrument_class(){
         }
         { //::Instrument::setDetectorParameters
         
-            typedef void ( ::Instrument::*setDetectorParameters_function_type )( ::size_t,double,double,::size_t,double,double,bool ) ;
+            typedef void ( ::Instrument::*setDetectorParameters_function_type )( ::std::size_t,double,double,::std::size_t,double,double,bool ) ;
             
             Instrument_exposer.def( 
                 "setDetectorParameters"
diff --git a/Core/PythonAPI/src/IntensityData.pypp.cpp b/Core/PythonAPI/src/IntensityData.pypp.cpp
index a4764e19baa7e85e942818834665a55839a3b2bd..55ba4ac878ef958f57f97341661d4e9ac8ef5717 100644
--- a/Core/PythonAPI/src/IntensityData.pypp.cpp
+++ b/Core/PythonAPI/src/IntensityData.pypp.cpp
@@ -34,7 +34,7 @@ void register_IntensityData_class(){
         { //::OutputData< double >::addAxis
         
             typedef OutputData< double > exported_class_t;
-            typedef void ( exported_class_t::*addAxis_function_type )( ::std::string const &,::size_t,double,double ) ;
+            typedef void ( exported_class_t::*addAxis_function_type )( ::std::string const &,::std::size_t,double,double ) ;
             
             IntensityData_exposer.def( 
                 "addAxis"
@@ -87,7 +87,7 @@ void register_IntensityData_class(){
         { //::OutputData< double >::getAllocatedSize
         
             typedef OutputData< double > exported_class_t;
-            typedef ::size_t ( exported_class_t::*getAllocatedSize_function_type )(  ) const;
+            typedef ::std::size_t ( exported_class_t::*getAllocatedSize_function_type )(  ) const;
             
             IntensityData_exposer.def( 
                 "getAllocatedSize"
@@ -107,7 +107,7 @@ void register_IntensityData_class(){
         { //::OutputData< double >::getAxis
         
             typedef OutputData< double > exported_class_t;
-            typedef ::IAxis const * ( exported_class_t::*getAxis_function_type )( ::size_t ) const;
+            typedef ::IAxis const * ( exported_class_t::*getAxis_function_type )( ::std::size_t ) const;
             
             IntensityData_exposer.def( 
                 "getAxis"
@@ -131,7 +131,7 @@ void register_IntensityData_class(){
         { //::OutputData< double >::getAxisIndex
         
             typedef OutputData< double > exported_class_t;
-            typedef ::size_t ( exported_class_t::*getAxisIndex_function_type )( ::std::string const & ) const;
+            typedef ::std::size_t ( exported_class_t::*getAxisIndex_function_type )( ::std::string const & ) const;
             
             IntensityData_exposer.def( 
                 "getAxisIndex"
@@ -142,7 +142,7 @@ void register_IntensityData_class(){
         { //::OutputData< double >::getIndexOfAxis
         
             typedef OutputData< double > exported_class_t;
-            typedef ::size_t ( exported_class_t::*getIndexOfAxis_function_type )( ::std::string const &,::size_t ) const;
+            typedef ::std::size_t ( exported_class_t::*getIndexOfAxis_function_type )( ::std::string const &,::std::size_t ) const;
             
             IntensityData_exposer.def( 
                 "getIndexOfAxis"
@@ -153,7 +153,7 @@ void register_IntensityData_class(){
         { //::OutputData< double >::getRank
         
             typedef OutputData< double > exported_class_t;
-            typedef ::size_t ( exported_class_t::*getRank_function_type )(  ) const;
+            typedef ::std::size_t ( exported_class_t::*getRank_function_type )(  ) const;
             
             IntensityData_exposer.def( 
                 "getRank"
@@ -173,7 +173,7 @@ void register_IntensityData_class(){
         { //::OutputData< double >::getValueOfAxis
         
             typedef OutputData< double > exported_class_t;
-            typedef double ( exported_class_t::*getValueOfAxis_function_type )( ::std::string const &,::size_t ) const;
+            typedef double ( exported_class_t::*getValueOfAxis_function_type )( ::std::string const &,::std::size_t ) const;
             
             IntensityData_exposer.def( 
                 "getValueOfAxis"
@@ -210,7 +210,7 @@ void register_IntensityData_class(){
         { //::OutputData< double >::operator[]
         
             typedef OutputData< double > exported_class_t;
-            typedef double & ( exported_class_t::*__getitem___function_type )( ::size_t ) ;
+            typedef double & ( exported_class_t::*__getitem___function_type )( ::std::size_t ) ;
             
             IntensityData_exposer.def( 
                 "__getitem__"
@@ -222,7 +222,7 @@ void register_IntensityData_class(){
         { //::OutputData< double >::operator[]
         
             typedef OutputData< double > exported_class_t;
-            typedef double const & ( exported_class_t::*__getitem___function_type )( ::size_t ) const;
+            typedef double const & ( exported_class_t::*__getitem___function_type )( ::std::size_t ) const;
             
             IntensityData_exposer.def( 
                 "__getitem__"
@@ -277,7 +277,7 @@ void register_IntensityData_class(){
         { //::OutputData< double >::toCoordinate
         
             typedef OutputData< double > exported_class_t;
-            typedef int ( exported_class_t::*toCoordinate_function_type )( ::size_t,::size_t ) const;
+            typedef int ( exported_class_t::*toCoordinate_function_type )( ::std::size_t,::std::size_t ) const;
             
             IntensityData_exposer.def( 
                 "toCoordinate"
@@ -288,7 +288,7 @@ void register_IntensityData_class(){
         { //::OutputData< double >::toCoordinates
         
             typedef OutputData< double > exported_class_t;
-            typedef ::std::vector< int > ( exported_class_t::*toCoordinates_function_type )( ::size_t ) const;
+            typedef ::std::vector< int > ( exported_class_t::*toCoordinates_function_type )( ::std::size_t ) const;
             
             IntensityData_exposer.def( 
                 "toCoordinates"
@@ -299,7 +299,7 @@ void register_IntensityData_class(){
         { //::OutputData< double >::toIndex
         
             typedef OutputData< double > exported_class_t;
-            typedef ::size_t ( exported_class_t::*toIndex_function_type )( ::std::vector< int > ) const;
+            typedef ::std::size_t ( exported_class_t::*toIndex_function_type )( ::std::vector< int > ) const;
             
             IntensityData_exposer.def( 
                 "toIndex"
diff --git a/Core/PythonAPI/src/InterferenceFunction1DParaCrystal.pypp.cpp b/Core/PythonAPI/src/InterferenceFunction1DParaCrystal.pypp.cpp
index 5353eeed314f623ab4b4bc98da03094630222540..6db34fb10b29bbb053547674be4b8188bc59f68b 100644
--- a/Core/PythonAPI/src/InterferenceFunction1DParaCrystal.pypp.cpp
+++ b/Core/PythonAPI/src/InterferenceFunction1DParaCrystal.pypp.cpp
@@ -28,11 +28,11 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual ::InterferenceFunction1DParaCrystal * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->InterferenceFunction1DParaCrystal::clone(  );
-        }
     }
     
+    
     ::InterferenceFunction1DParaCrystal * default_clone(  ) const  {
         return InterferenceFunction1DParaCrystal::clone( );
     }
@@ -40,11 +40,11 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual double evaluate( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(q) );
-        else{
+        else
             return this->InterferenceFunction1DParaCrystal::evaluate( boost::ref(q) );
-        }
     }
     
+    
     double default_evaluate( ::cvector_t const & q ) const  {
         return InterferenceFunction1DParaCrystal::evaluate( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual double getKappa(  ) const  {
         if( bp::override func_getKappa = this->get_override( "getKappa" ) )
             return func_getKappa(  );
-        else{
+        else
             return this->InterferenceFunction1DParaCrystal::getKappa(  );
-        }
     }
     
+    
     double default_getKappa(  ) const  {
         return InterferenceFunction1DParaCrystal::getKappa( );
     }
@@ -64,11 +64,11 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -76,11 +76,11 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -88,11 +88,11 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
@@ -100,11 +100,11 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -112,11 +112,11 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -124,11 +124,11 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -136,11 +136,11 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -167,11 +167,11 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -179,11 +179,11 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -191,11 +191,11 @@ struct InterferenceFunction1DParaCrystal_wrapper : InterferenceFunction1DParaCry
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
diff --git a/Core/PythonAPI/src/InterferenceFunction2DLattice.pypp.cpp b/Core/PythonAPI/src/InterferenceFunction2DLattice.pypp.cpp
index 343d5b225e3d99e346dbb1556232655aa82f648b..bb22c253926c675f269f7f8320d4ddc4cf095c40 100644
--- a/Core/PythonAPI/src/InterferenceFunction2DLattice.pypp.cpp
+++ b/Core/PythonAPI/src/InterferenceFunction2DLattice.pypp.cpp
@@ -28,11 +28,11 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual ::InterferenceFunction2DLattice * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->InterferenceFunction2DLattice::clone(  );
-        }
     }
     
+    
     ::InterferenceFunction2DLattice * default_clone(  ) const  {
         return InterferenceFunction2DLattice::clone( );
     }
@@ -40,11 +40,11 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual double evaluate( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(q) );
-        else{
+        else
             return this->InterferenceFunction2DLattice::evaluate( boost::ref(q) );
-        }
     }
     
+    
     double default_evaluate( ::cvector_t const & q ) const  {
         return InterferenceFunction2DLattice::evaluate( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -64,11 +64,11 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -76,11 +76,11 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
@@ -88,11 +88,11 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -100,11 +100,11 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -112,11 +112,11 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual double getKappa(  ) const  {
         if( bp::override func_getKappa = this->get_override( "getKappa" ) )
             return func_getKappa(  );
-        else{
+        else
             return this->IInterferenceFunction::getKappa(  );
-        }
     }
     
+    
     double default_getKappa(  ) const  {
         return IInterferenceFunction::getKappa( );
     }
@@ -124,11 +124,11 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -136,11 +136,11 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -167,11 +167,11 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -179,11 +179,11 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -191,11 +191,11 @@ struct InterferenceFunction2DLattice_wrapper : InterferenceFunction2DLattice, bp
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
diff --git a/Core/PythonAPI/src/InterferenceFunction2DParaCrystal.pypp.cpp b/Core/PythonAPI/src/InterferenceFunction2DParaCrystal.pypp.cpp
index 15f0c4497fba2cdce37b28dac1e307a34cd4d00e..00e15bd8f140e84b2444589480eeb16a37908e66 100644
--- a/Core/PythonAPI/src/InterferenceFunction2DParaCrystal.pypp.cpp
+++ b/Core/PythonAPI/src/InterferenceFunction2DParaCrystal.pypp.cpp
@@ -28,11 +28,11 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual ::InterferenceFunction2DParaCrystal * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->InterferenceFunction2DParaCrystal::clone(  );
-        }
     }
     
+    
     ::InterferenceFunction2DParaCrystal * default_clone(  ) const  {
         return InterferenceFunction2DParaCrystal::clone( );
     }
@@ -40,11 +40,11 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual double evaluate( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(q) );
-        else{
+        else
             return this->InterferenceFunction2DParaCrystal::evaluate( boost::ref(q) );
-        }
     }
     
+    
     double default_evaluate( ::cvector_t const & q ) const  {
         return InterferenceFunction2DParaCrystal::evaluate( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -64,11 +64,11 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -76,11 +76,11 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
@@ -88,11 +88,11 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -100,11 +100,11 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -112,11 +112,11 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual double getKappa(  ) const  {
         if( bp::override func_getKappa = this->get_override( "getKappa" ) )
             return func_getKappa(  );
-        else{
+        else
             return this->IInterferenceFunction::getKappa(  );
-        }
     }
     
+    
     double default_getKappa(  ) const  {
         return IInterferenceFunction::getKappa( );
     }
@@ -124,11 +124,11 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -136,11 +136,11 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -167,11 +167,11 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -179,11 +179,11 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -191,11 +191,11 @@ struct InterferenceFunction2DParaCrystal_wrapper : InterferenceFunction2DParaCry
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
diff --git a/Core/PythonAPI/src/InterferenceFunctionNone.pypp.cpp b/Core/PythonAPI/src/InterferenceFunctionNone.pypp.cpp
index 81d2515145fabc0e977f7085b89778ef714b6643..eca6fc43a2ffc4c6635a1e1673c2fc9d31925da6 100644
--- a/Core/PythonAPI/src/InterferenceFunctionNone.pypp.cpp
+++ b/Core/PythonAPI/src/InterferenceFunctionNone.pypp.cpp
@@ -28,11 +28,11 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual ::InterferenceFunctionNone * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->InterferenceFunctionNone::clone(  );
-        }
     }
     
+    
     ::InterferenceFunctionNone * default_clone(  ) const  {
         return InterferenceFunctionNone::clone( );
     }
@@ -40,11 +40,11 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual double evaluate( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate = this->get_override( "evaluate" ) )
             return func_evaluate( boost::ref(q) );
-        else{
+        else
             return this->InterferenceFunctionNone::evaluate( boost::ref(q) );
-        }
     }
     
+    
     double default_evaluate( ::cvector_t const & q ) const  {
         return InterferenceFunctionNone::evaluate( boost::ref(q) );
     }
@@ -52,11 +52,11 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -64,11 +64,11 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -76,11 +76,11 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
@@ -88,11 +88,11 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -100,11 +100,11 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -112,11 +112,11 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual double getKappa(  ) const  {
         if( bp::override func_getKappa = this->get_override( "getKappa" ) )
             return func_getKappa(  );
-        else{
+        else
             return this->IInterferenceFunction::getKappa(  );
-        }
     }
     
+    
     double default_getKappa(  ) const  {
         return IInterferenceFunction::getKappa( );
     }
@@ -124,11 +124,11 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -136,11 +136,11 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -167,11 +167,11 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -179,11 +179,11 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -191,11 +191,11 @@ struct InterferenceFunctionNone_wrapper : InterferenceFunctionNone, bp::wrapper<
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
diff --git a/Core/PythonAPI/src/LatticeBasis.pypp.cpp b/Core/PythonAPI/src/LatticeBasis.pypp.cpp
index 924e90f59fbaed0c16db45df7da6e37025c777c0..cd465f513cd41b6d1e5b7c046cc21c767c13f756 100644
--- a/Core/PythonAPI/src/LatticeBasis.pypp.cpp
+++ b/Core/PythonAPI/src/LatticeBasis.pypp.cpp
@@ -28,11 +28,11 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -40,11 +40,11 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -52,23 +52,47 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ICompositeSample::getCompositeSample( );
+    }
+
+    virtual ::ICompositeSample const * getCompositeSample(  ) const  {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample const * default_getCompositeSample(  ) const  {
+        return ICompositeSample::getCompositeSample( );
+    }
+
     virtual ::IMaterial const * getMaterial(  ) const  {
         if( bp::override func_getMaterial = this->get_override( "getMaterial" ) )
             return func_getMaterial(  );
-        else{
+        else
             return this->Particle::getMaterial(  );
-        }
     }
     
+    
     ::IMaterial const * default_getMaterial(  ) const  {
         return Particle::getMaterial( );
     }
@@ -76,11 +100,11 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
     virtual ::complex_t getRefractiveIndex(  ) const  {
         if( bp::override func_getRefractiveIndex = this->get_override( "getRefractiveIndex" ) )
             return func_getRefractiveIndex(  );
-        else{
+        else
             return this->Particle::getRefractiveIndex(  );
-        }
     }
     
+    
     ::complex_t default_getRefractiveIndex(  ) const  {
         return Particle::getRefractiveIndex( );
     }
@@ -88,11 +112,11 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
     virtual ::IFormFactor const * getSimpleFormFactor(  ) const  {
         if( bp::override func_getSimpleFormFactor = this->get_override( "getSimpleFormFactor" ) )
             return func_getSimpleFormFactor(  );
-        else{
+        else
             return this->Particle::getSimpleFormFactor(  );
-        }
     }
     
+    
     ::IFormFactor const * default_getSimpleFormFactor(  ) const  {
         return Particle::getSimpleFormFactor( );
     }
@@ -100,11 +124,11 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
     virtual bool hasDistributedFormFactor(  ) const  {
         if( bp::override func_hasDistributedFormFactor = this->get_override( "hasDistributedFormFactor" ) )
             return func_hasDistributedFormFactor(  );
-        else{
+        else
             return this->Particle::hasDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_hasDistributedFormFactor(  ) const  {
         return Particle::hasDistributedFormFactor( );
     }
@@ -112,11 +136,11 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -124,11 +148,11 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -155,11 +179,11 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -167,11 +191,11 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -179,15 +203,27 @@ struct LatticeBasis_wrapper : LatticeBasis, bp::wrapper< LatticeBasis > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
+    virtual ::std::size_t size(  ) const  {
+        if( bp::override func_size = this->get_override( "size" ) )
+            return func_size(  );
+        else
+            return this->ICompositeSample::size(  );
+    }
+    
+    
+    ::std::size_t default_size(  ) const  {
+        return ICompositeSample::size( );
+    }
+
 };
 
 void register_LatticeBasis_class(){
@@ -239,6 +275,30 @@ void register_LatticeBasis_class(){
                 , default_createParameterTree_function_type(&LatticeBasis_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( LatticeBasis_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            LatticeBasis_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&LatticeBasis_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample const * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) const;
+            typedef ::ICompositeSample const * ( LatticeBasis_wrapper::*default_getCompositeSample_function_type )(  ) const;
+            
+            LatticeBasis_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&LatticeBasis_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::Particle::getMaterial
         
@@ -353,6 +413,17 @@ void register_LatticeBasis_class(){
                 , default_setParametersAreChanged_function_type(&LatticeBasis_wrapper::default_setParametersAreChanged) );
         
         }
+        { //::ICompositeSample::size
+        
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( LatticeBasis_wrapper::*default_size_function_type )(  ) const;
+            
+            LatticeBasis_exposer.def( 
+                "size"
+                , size_function_type(&::ICompositeSample::size)
+                , default_size_function_type(&LatticeBasis_wrapper::default_size) );
+        
+        }
     }
 
 }
diff --git a/Core/PythonAPI/src/Layer.pypp.cpp b/Core/PythonAPI/src/Layer.pypp.cpp
index bedfc896d57e78390912ba0c08dcc02539ca5656..f7cdcb34595f6b50c8d65843c3e9e30a94548151 100644
--- a/Core/PythonAPI/src/Layer.pypp.cpp
+++ b/Core/PythonAPI/src/Layer.pypp.cpp
@@ -49,11 +49,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual ::Layer * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->Layer::clone(  );
-        }
     }
     
+    
     ::Layer * default_clone(  ) const  {
         return Layer::clone( );
     }
@@ -61,11 +61,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual ::Layer * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->Layer::cloneInvertB(  );
-        }
     }
     
+    
     ::Layer * default_cloneInvertB(  ) const  {
         return Layer::cloneInvertB( );
     }
@@ -73,11 +73,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual ::IDecoration const * getDecoration(  ) const  {
         if( bp::override func_getDecoration = this->get_override( "getDecoration" ) )
             return func_getDecoration(  );
-        else{
+        else
             return this->Layer::getDecoration(  );
-        }
     }
     
+    
     ::IDecoration const * default_getDecoration(  ) const  {
         return Layer::getDecoration( );
     }
@@ -85,11 +85,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual ::IMaterial const * getMaterial(  ) const  {
         if( bp::override func_getMaterial = this->get_override( "getMaterial" ) )
             return func_getMaterial(  );
-        else{
+        else
             return this->Layer::getMaterial(  );
-        }
     }
     
+    
     ::IMaterial const * default_getMaterial(  ) const  {
         return Layer::getMaterial( );
     }
@@ -97,11 +97,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual ::complex_t getRefractiveIndex(  ) const  {
         if( bp::override func_getRefractiveIndex = this->get_override( "getRefractiveIndex" ) )
             return func_getRefractiveIndex(  );
-        else{
+        else
             return this->Layer::getRefractiveIndex(  );
-        }
     }
     
+    
     ::complex_t default_getRefractiveIndex(  ) const  {
         return Layer::getRefractiveIndex( );
     }
@@ -109,11 +109,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual double getThickness(  ) const  {
         if( bp::override func_getThickness = this->get_override( "getThickness" ) )
             return func_getThickness(  );
-        else{
+        else
             return this->Layer::getThickness(  );
-        }
     }
     
+    
     double default_getThickness(  ) const  {
         return Layer::getThickness( );
     }
@@ -121,11 +121,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual double getTotalParticleSurfaceDensity(  ) const  {
         if( bp::override func_getTotalParticleSurfaceDensity = this->get_override( "getTotalParticleSurfaceDensity" ) )
             return func_getTotalParticleSurfaceDensity(  );
-        else{
+        else
             return this->Layer::getTotalParticleSurfaceDensity(  );
-        }
     }
     
+    
     double default_getTotalParticleSurfaceDensity(  ) const  {
         return Layer::getTotalParticleSurfaceDensity( );
     }
@@ -133,11 +133,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual void setDecoration( ::IDecoration const & decoration ) {
         if( bp::override func_setDecoration = this->get_override( "setDecoration" ) )
             func_setDecoration( boost::ref(decoration) );
-        else{
+        else
             this->Layer::setDecoration( boost::ref(decoration) );
-        }
     }
     
+    
     void default_setDecoration( ::IDecoration const & decoration ) {
         Layer::setDecoration( boost::ref(decoration) );
     }
@@ -145,11 +145,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual void setMaterial( ::IMaterial const * material ) {
         if( bp::override func_setMaterial = this->get_override( "setMaterial" ) )
             func_setMaterial( boost::python::ptr(material) );
-        else{
+        else
             this->Layer::setMaterial( boost::python::ptr(material) );
-        }
     }
     
+    
     void default_setMaterial( ::IMaterial const * material ) {
         Layer::setMaterial( boost::python::ptr(material) );
     }
@@ -157,11 +157,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual void setMaterial( ::IMaterial const * material, double thickness ) {
         if( bp::override func_setMaterial = this->get_override( "setMaterial" ) )
             func_setMaterial( boost::python::ptr(material), thickness );
-        else{
+        else
             this->Layer::setMaterial( boost::python::ptr(material), thickness );
-        }
     }
     
+    
     void default_setMaterial( ::IMaterial const * material, double thickness ) {
         Layer::setMaterial( boost::python::ptr(material), thickness );
     }
@@ -169,11 +169,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual void setThickness( double thickness ) {
         if( bp::override func_setThickness = this->get_override( "setThickness" ) )
             func_setThickness( thickness );
-        else{
+        else
             this->Layer::setThickness( thickness );
-        }
     }
     
+    
     void default_setThickness( double thickness ) {
         Layer::setThickness( thickness );
     }
@@ -181,11 +181,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -193,11 +193,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -205,23 +205,47 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ICompositeSample::getCompositeSample( );
+    }
+
+    virtual ::ICompositeSample const * getCompositeSample(  ) const  {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample const * default_getCompositeSample(  ) const  {
+        return ICompositeSample::getCompositeSample( );
+    }
+
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -229,11 +253,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -260,11 +284,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -272,11 +296,11 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -284,15 +308,27 @@ struct Layer_wrapper : Layer, bp::wrapper< Layer > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
+    virtual ::std::size_t size(  ) const  {
+        if( bp::override func_size = this->get_override( "size" ) )
+            return func_size(  );
+        else
+            return this->ICompositeSample::size(  );
+    }
+    
+    
+    ::std::size_t default_size(  ) const  {
+        return ICompositeSample::size( );
+    }
+
 };
 
 void register_Layer_class(){
@@ -466,6 +502,30 @@ void register_Layer_class(){
                 , default_createParameterTree_function_type(&Layer_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( Layer_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            Layer_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&Layer_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample const * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) const;
+            typedef ::ICompositeSample const * ( Layer_wrapper::*default_getCompositeSample_function_type )(  ) const;
+            
+            Layer_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&Layer_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::IParameterized::printParameters
         
@@ -534,6 +594,17 @@ void register_Layer_class(){
                 , default_setParametersAreChanged_function_type(&Layer_wrapper::default_setParametersAreChanged) );
         
         }
+        { //::ICompositeSample::size
+        
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( Layer_wrapper::*default_size_function_type )(  ) const;
+            
+            Layer_exposer.def( 
+                "size"
+                , size_function_type(&::ICompositeSample::size)
+                , default_size_function_type(&Layer_wrapper::default_size) );
+        
+        }
     }
 
 }
diff --git a/Core/PythonAPI/src/LayerInterface.pypp.cpp b/Core/PythonAPI/src/LayerInterface.pypp.cpp
index c4624f8f69e398d6e9179cba665ecca4ccba08b2..e05592483090e4fa246b6647cdc028fa6cf3aa5f 100644
--- a/Core/PythonAPI/src/LayerInterface.pypp.cpp
+++ b/Core/PythonAPI/src/LayerInterface.pypp.cpp
@@ -18,14 +18,26 @@ namespace bp = boost::python;
 
 struct LayerInterface_wrapper : LayerInterface, bp::wrapper< LayerInterface > {
 
+    virtual ::LayerInterface * clone(  ) const  {
+        if( bp::override func_clone = this->get_override( "clone" ) )
+            return func_clone(  );
+        else
+            return this->LayerInterface::clone(  );
+    }
+    
+    
+    ::LayerInterface * default_clone(  ) const  {
+        return LayerInterface::clone( );
+    }
+
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -33,11 +45,11 @@ struct LayerInterface_wrapper : LayerInterface, bp::wrapper< LayerInterface > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -45,11 +57,11 @@ struct LayerInterface_wrapper : LayerInterface, bp::wrapper< LayerInterface > {
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
@@ -57,23 +69,47 @@ struct LayerInterface_wrapper : LayerInterface, bp::wrapper< LayerInterface > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ICompositeSample::getCompositeSample( );
+    }
+
+    virtual ::ICompositeSample const * getCompositeSample(  ) const  {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample const * default_getCompositeSample(  ) const  {
+        return ICompositeSample::getCompositeSample( );
+    }
+
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -81,11 +117,11 @@ struct LayerInterface_wrapper : LayerInterface, bp::wrapper< LayerInterface > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -112,11 +148,11 @@ struct LayerInterface_wrapper : LayerInterface, bp::wrapper< LayerInterface > {
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -124,11 +160,11 @@ struct LayerInterface_wrapper : LayerInterface, bp::wrapper< LayerInterface > {
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -136,15 +172,27 @@ struct LayerInterface_wrapper : LayerInterface, bp::wrapper< LayerInterface > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
+    virtual ::std::size_t size(  ) const  {
+        if( bp::override func_size = this->get_override( "size" ) )
+            return func_size(  );
+        else
+            return this->ICompositeSample::size(  );
+    }
+    
+    
+    ::std::size_t default_size(  ) const  {
+        return ICompositeSample::size( );
+    }
+
 };
 
 void register_LayerInterface_class(){
@@ -153,6 +201,18 @@ void register_LayerInterface_class(){
         typedef bp::class_< LayerInterface_wrapper, bp::bases< ICompositeSample >, boost::noncopyable > LayerInterface_exposer_t;
         LayerInterface_exposer_t LayerInterface_exposer = LayerInterface_exposer_t( "LayerInterface", bp::no_init );
         bp::scope LayerInterface_scope( LayerInterface_exposer );
+        { //::LayerInterface::clone
+        
+            typedef ::LayerInterface * ( ::LayerInterface::*clone_function_type )(  ) const;
+            typedef ::LayerInterface * ( LayerInterface_wrapper::*default_clone_function_type )(  ) const;
+            
+            LayerInterface_exposer.def( 
+                "clone"
+                , clone_function_type(&::LayerInterface::clone)
+                , default_clone_function_type(&LayerInterface_wrapper::default_clone)
+                , bp::return_value_policy< bp::manage_new_object >() );
+        
+        }
         { //::LayerInterface::getLayerBottom
         
             typedef ::Layer const * ( ::LayerInterface::*getLayerBottom_function_type )(  ) const;
@@ -238,6 +298,30 @@ void register_LayerInterface_class(){
                 , default_createParameterTree_function_type(&LayerInterface_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( LayerInterface_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            LayerInterface_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&LayerInterface_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample const * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) const;
+            typedef ::ICompositeSample const * ( LayerInterface_wrapper::*default_getCompositeSample_function_type )(  ) const;
+            
+            LayerInterface_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&LayerInterface_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::IParameterized::printParameters
         
@@ -306,6 +390,17 @@ void register_LayerInterface_class(){
                 , default_setParametersAreChanged_function_type(&LayerInterface_wrapper::default_setParametersAreChanged) );
         
         }
+        { //::ICompositeSample::size
+        
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( LayerInterface_wrapper::*default_size_function_type )(  ) const;
+            
+            LayerInterface_exposer.def( 
+                "size"
+                , size_function_type(&::ICompositeSample::size)
+                , default_size_function_type(&LayerInterface_wrapper::default_size) );
+        
+        }
     }
 
 }
diff --git a/Core/PythonAPI/src/LayerRoughness.pypp.cpp b/Core/PythonAPI/src/LayerRoughness.pypp.cpp
index 6b753fac19daf26a8b09766e4d8d0ce9b660ef3e..b0d3ae5398c45f503a7782267ad8e4aa215a1efe 100644
--- a/Core/PythonAPI/src/LayerRoughness.pypp.cpp
+++ b/Core/PythonAPI/src/LayerRoughness.pypp.cpp
@@ -35,11 +35,11 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > {
     virtual ::LayerRoughness * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->LayerRoughness::clone(  );
-        }
     }
     
+    
     ::LayerRoughness * default_clone(  ) const  {
         return LayerRoughness::clone( );
     }
@@ -47,11 +47,11 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -59,11 +59,11 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -71,11 +71,11 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > {
     virtual ::ISample * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ISample::cloneInvertB(  );
-        }
     }
     
+    
     ::ISample * default_cloneInvertB(  ) const  {
         return ISample::cloneInvertB( );
     }
@@ -83,11 +83,11 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -95,11 +95,11 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > {
     virtual ::ICompositeSample const * getCompositeSample(  ) const  {
         if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
             return func_getCompositeSample(  );
-        else{
+        else
             return this->ISample::getCompositeSample(  );
-        }
     }
     
+    
     ::ICompositeSample const * default_getCompositeSample(  ) const  {
         return ISample::getCompositeSample( );
     }
@@ -107,11 +107,11 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -119,11 +119,11 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -150,11 +150,11 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > {
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -162,11 +162,11 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > {
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -174,11 +174,11 @@ struct LayerRoughness_wrapper : LayerRoughness, bp::wrapper< LayerRoughness > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
diff --git a/Core/PythonAPI/src/MesoCrystal.pypp.cpp b/Core/PythonAPI/src/MesoCrystal.pypp.cpp
index 65508c00583f1671bca04be4c5d424605345a55d..35a1d1b1252c5bb1f9a154c163ab0419104f3256 100644
--- a/Core/PythonAPI/src/MesoCrystal.pypp.cpp
+++ b/Core/PythonAPI/src/MesoCrystal.pypp.cpp
@@ -28,11 +28,11 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -40,11 +40,11 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -52,23 +52,47 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ICompositeSample::getCompositeSample( );
+    }
+
+    virtual ::ICompositeSample const * getCompositeSample(  ) const  {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample const * default_getCompositeSample(  ) const  {
+        return ICompositeSample::getCompositeSample( );
+    }
+
     virtual ::IMaterial const * getMaterial(  ) const  {
         if( bp::override func_getMaterial = this->get_override( "getMaterial" ) )
             return func_getMaterial(  );
-        else{
+        else
             return this->Particle::getMaterial(  );
-        }
     }
     
+    
     ::IMaterial const * default_getMaterial(  ) const  {
         return Particle::getMaterial( );
     }
@@ -76,11 +100,11 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > {
     virtual ::complex_t getRefractiveIndex(  ) const  {
         if( bp::override func_getRefractiveIndex = this->get_override( "getRefractiveIndex" ) )
             return func_getRefractiveIndex(  );
-        else{
+        else
             return this->Particle::getRefractiveIndex(  );
-        }
     }
     
+    
     ::complex_t default_getRefractiveIndex(  ) const  {
         return Particle::getRefractiveIndex( );
     }
@@ -88,11 +112,11 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > {
     virtual bool hasDistributedFormFactor(  ) const  {
         if( bp::override func_hasDistributedFormFactor = this->get_override( "hasDistributedFormFactor" ) )
             return func_hasDistributedFormFactor(  );
-        else{
+        else
             return this->Particle::hasDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_hasDistributedFormFactor(  ) const  {
         return Particle::hasDistributedFormFactor( );
     }
@@ -100,11 +124,11 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -112,11 +136,11 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -143,11 +167,11 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > {
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -155,11 +179,11 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > {
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -167,15 +191,27 @@ struct MesoCrystal_wrapper : MesoCrystal, bp::wrapper< MesoCrystal > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
+    virtual ::std::size_t size(  ) const  {
+        if( bp::override func_size = this->get_override( "size" ) )
+            return func_size(  );
+        else
+            return this->ICompositeSample::size(  );
+    }
+    
+    
+    ::std::size_t default_size(  ) const  {
+        return ICompositeSample::size( );
+    }
+
 };
 
 void register_MesoCrystal_class(){
@@ -217,6 +253,30 @@ void register_MesoCrystal_class(){
                 , default_createParameterTree_function_type(&MesoCrystal_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( MesoCrystal_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            MesoCrystal_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&MesoCrystal_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample const * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) const;
+            typedef ::ICompositeSample const * ( MesoCrystal_wrapper::*default_getCompositeSample_function_type )(  ) const;
+            
+            MesoCrystal_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&MesoCrystal_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::Particle::getMaterial
         
@@ -319,6 +379,17 @@ void register_MesoCrystal_class(){
                 , default_setParametersAreChanged_function_type(&MesoCrystal_wrapper::default_setParametersAreChanged) );
         
         }
+        { //::ICompositeSample::size
+        
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( MesoCrystal_wrapper::*default_size_function_type )(  ) const;
+            
+            MesoCrystal_exposer.def( 
+                "size"
+                , size_function_type(&::ICompositeSample::size)
+                , default_size_function_type(&MesoCrystal_wrapper::default_size) );
+        
+        }
     }
 
 }
diff --git a/Core/PythonAPI/src/MultiLayer.pypp.cpp b/Core/PythonAPI/src/MultiLayer.pypp.cpp
index dc8621adcde6f40679dfdc75243b68310e6e1af6..a3a979ae2ac4f68521f60af85c0e4cd3f49cc6d7 100644
--- a/Core/PythonAPI/src/MultiLayer.pypp.cpp
+++ b/Core/PythonAPI/src/MultiLayer.pypp.cpp
@@ -28,11 +28,11 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > {
     virtual ::MultiLayer * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->MultiLayer::clone(  );
-        }
     }
     
+    
     ::MultiLayer * default_clone(  ) const  {
         return MultiLayer::clone( );
     }
@@ -40,11 +40,11 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > {
     virtual ::MultiLayer * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->MultiLayer::cloneInvertB(  );
-        }
     }
     
+    
     ::MultiLayer * default_cloneInvertB(  ) const  {
         return MultiLayer::cloneInvertB( );
     }
@@ -52,11 +52,11 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -64,11 +64,11 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -76,23 +76,47 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ICompositeSample::getCompositeSample( );
+    }
+
+    virtual ::ICompositeSample const * getCompositeSample(  ) const  {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample const * default_getCompositeSample(  ) const  {
+        return ICompositeSample::getCompositeSample( );
+    }
+
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -100,11 +124,11 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -131,11 +155,11 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > {
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -143,11 +167,11 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > {
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -155,15 +179,27 @@ struct MultiLayer_wrapper : MultiLayer, bp::wrapper< MultiLayer > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
+    virtual ::std::size_t size(  ) const  {
+        if( bp::override func_size = this->get_override( "size" ) )
+            return func_size(  );
+        else
+            return this->ICompositeSample::size(  );
+    }
+    
+    
+    ::std::size_t default_size(  ) const  {
+        return ICompositeSample::size( );
+    }
+
 };
 
 void register_MultiLayer_class(){
@@ -236,7 +272,7 @@ void register_MultiLayer_class(){
         }
         { //::MultiLayer::getCrossCorrSpectralFun
         
-            typedef double ( ::MultiLayer::*getCrossCorrSpectralFun_function_type )( ::kvector_t const &,::size_t,::size_t ) const;
+            typedef double ( ::MultiLayer::*getCrossCorrSpectralFun_function_type )( ::kvector_t const &,::std::size_t,::std::size_t ) const;
             
             MultiLayer_exposer.def( 
                 "getCrossCorrSpectralFun"
@@ -246,7 +282,7 @@ void register_MultiLayer_class(){
         }
         { //::MultiLayer::getLayer
         
-            typedef ::Layer const * ( ::MultiLayer::*getLayer_function_type )( ::size_t ) const;
+            typedef ::Layer const * ( ::MultiLayer::*getLayer_function_type )( ::std::size_t ) const;
             
             MultiLayer_exposer.def( 
                 "getLayer"
@@ -257,7 +293,7 @@ void register_MultiLayer_class(){
         }
         { //::MultiLayer::getLayerBottomInterface
         
-            typedef ::LayerInterface const * ( ::MultiLayer::*getLayerBottomInterface_function_type )( ::size_t ) const;
+            typedef ::LayerInterface const * ( ::MultiLayer::*getLayerBottomInterface_function_type )( ::std::size_t ) const;
             
             MultiLayer_exposer.def( 
                 "getLayerBottomInterface"
@@ -268,7 +304,7 @@ void register_MultiLayer_class(){
         }
         { //::MultiLayer::getLayerBottomZ
         
-            typedef double ( ::MultiLayer::*getLayerBottomZ_function_type )( ::size_t ) const;
+            typedef double ( ::MultiLayer::*getLayerBottomZ_function_type )( ::std::size_t ) const;
             
             MultiLayer_exposer.def( 
                 "getLayerBottomZ"
@@ -278,7 +314,7 @@ void register_MultiLayer_class(){
         }
         { //::MultiLayer::getLayerInterface
         
-            typedef ::LayerInterface const * ( ::MultiLayer::*getLayerInterface_function_type )( ::size_t ) const;
+            typedef ::LayerInterface const * ( ::MultiLayer::*getLayerInterface_function_type )( ::std::size_t ) const;
             
             MultiLayer_exposer.def( 
                 "getLayerInterface"
@@ -289,7 +325,7 @@ void register_MultiLayer_class(){
         }
         { //::MultiLayer::getLayerThickness
         
-            typedef double ( ::MultiLayer::*getLayerThickness_function_type )( ::size_t ) const;
+            typedef double ( ::MultiLayer::*getLayerThickness_function_type )( ::std::size_t ) const;
             
             MultiLayer_exposer.def( 
                 "getLayerThickness"
@@ -299,7 +335,7 @@ void register_MultiLayer_class(){
         }
         { //::MultiLayer::getLayerTopInterface
         
-            typedef ::LayerInterface const * ( ::MultiLayer::*getLayerTopInterface_function_type )( ::size_t ) const;
+            typedef ::LayerInterface const * ( ::MultiLayer::*getLayerTopInterface_function_type )( ::std::size_t ) const;
             
             MultiLayer_exposer.def( 
                 "getLayerTopInterface"
@@ -310,7 +346,7 @@ void register_MultiLayer_class(){
         }
         { //::MultiLayer::getNumberOfInterfaces
         
-            typedef ::size_t ( ::MultiLayer::*getNumberOfInterfaces_function_type )(  ) const;
+            typedef ::std::size_t ( ::MultiLayer::*getNumberOfInterfaces_function_type )(  ) const;
             
             MultiLayer_exposer.def( 
                 "getNumberOfInterfaces"
@@ -319,7 +355,7 @@ void register_MultiLayer_class(){
         }
         { //::MultiLayer::getNumberOfLayers
         
-            typedef ::size_t ( ::MultiLayer::*getNumberOfLayers_function_type )(  ) const;
+            typedef ::std::size_t ( ::MultiLayer::*getNumberOfLayers_function_type )(  ) const;
             
             MultiLayer_exposer.def( 
                 "getNumberOfLayers"
@@ -338,7 +374,7 @@ void register_MultiLayer_class(){
         }
         { //::MultiLayer::setLayerThickness
         
-            typedef void ( ::MultiLayer::*setLayerThickness_function_type )( ::size_t,double ) ;
+            typedef void ( ::MultiLayer::*setLayerThickness_function_type )( ::std::size_t,double ) ;
             
             MultiLayer_exposer.def( 
                 "setLayerThickness"
@@ -379,6 +415,30 @@ void register_MultiLayer_class(){
                 , default_createParameterTree_function_type(&MultiLayer_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( MultiLayer_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            MultiLayer_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&MultiLayer_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample const * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) const;
+            typedef ::ICompositeSample const * ( MultiLayer_wrapper::*default_getCompositeSample_function_type )(  ) const;
+            
+            MultiLayer_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&MultiLayer_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::IParameterized::printParameters
         
@@ -447,6 +507,17 @@ void register_MultiLayer_class(){
                 , default_setParametersAreChanged_function_type(&MultiLayer_wrapper::default_setParametersAreChanged) );
         
         }
+        { //::ICompositeSample::size
+        
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( MultiLayer_wrapper::*default_size_function_type )(  ) const;
+            
+            MultiLayer_exposer.def( 
+                "size"
+                , size_function_type(&::ICompositeSample::size)
+                , default_size_function_type(&MultiLayer_wrapper::default_size) );
+        
+        }
     }
 
 }
diff --git a/Core/PythonAPI/src/ParameterPool.pypp.cpp b/Core/PythonAPI/src/ParameterPool.pypp.cpp
index 914cffcceb87c743ab97a780af190e5900711dce..88a890adef42f8d7457b59117ee8e8606bba2a3c 100644
--- a/Core/PythonAPI/src/ParameterPool.pypp.cpp
+++ b/Core/PythonAPI/src/ParameterPool.pypp.cpp
@@ -26,11 +26,11 @@ struct ParameterPool_wrapper : ParameterPool, bp::wrapper< ParameterPool > {
     virtual ::ParameterPool * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->ParameterPool::clone(  );
-        }
     }
     
+    
     ::ParameterPool * default_clone(  ) const  {
         return ParameterPool::clone( );
     }
@@ -127,7 +127,7 @@ void register_ParameterPool_class(){
         }
         { //::ParameterPool::size
         
-            typedef ::size_t ( ::ParameterPool::*size_function_type )(  ) const;
+            typedef ::std::size_t ( ::ParameterPool::*size_function_type )(  ) const;
             
             ParameterPool_exposer.def( 
                 "size"
diff --git a/Core/PythonAPI/src/Particle.pypp.cpp b/Core/PythonAPI/src/Particle.pypp.cpp
index 3a49a163917c9caa7d1a31d3472884d0edb09f6b..d488ceb636a0e770c8d270222de4b9b0e0370516 100644
--- a/Core/PythonAPI/src/Particle.pypp.cpp
+++ b/Core/PythonAPI/src/Particle.pypp.cpp
@@ -42,11 +42,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual ::Particle * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->Particle::clone(  );
-        }
     }
     
+    
     ::Particle * default_clone(  ) const  {
         return Particle::clone( );
     }
@@ -54,11 +54,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual ::Particle * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->Particle::cloneInvertB(  );
-        }
     }
     
+    
     ::Particle * default_cloneInvertB(  ) const  {
         return Particle::cloneInvertB( );
     }
@@ -66,11 +66,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual ::IFormFactor * createFormFactor( ::complex_t wavevector_scattering_factor ) const  {
         if( bp::override func_createFormFactor = this->get_override( "createFormFactor" ) )
             return func_createFormFactor( wavevector_scattering_factor );
-        else{
+        else
             return this->Particle::createFormFactor( wavevector_scattering_factor );
-        }
     }
     
+    
     ::IFormFactor * default_createFormFactor( ::complex_t wavevector_scattering_factor ) const  {
         return Particle::createFormFactor( wavevector_scattering_factor );
     }
@@ -78,11 +78,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual ::IMaterial const * getMaterial(  ) const  {
         if( bp::override func_getMaterial = this->get_override( "getMaterial" ) )
             return func_getMaterial(  );
-        else{
+        else
             return this->Particle::getMaterial(  );
-        }
     }
     
+    
     ::IMaterial const * default_getMaterial(  ) const  {
         return Particle::getMaterial( );
     }
@@ -90,11 +90,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual ::complex_t getRefractiveIndex(  ) const  {
         if( bp::override func_getRefractiveIndex = this->get_override( "getRefractiveIndex" ) )
             return func_getRefractiveIndex(  );
-        else{
+        else
             return this->Particle::getRefractiveIndex(  );
-        }
     }
     
+    
     ::complex_t default_getRefractiveIndex(  ) const  {
         return Particle::getRefractiveIndex( );
     }
@@ -102,11 +102,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual ::IFormFactor const * getSimpleFormFactor(  ) const  {
         if( bp::override func_getSimpleFormFactor = this->get_override( "getSimpleFormFactor" ) )
             return func_getSimpleFormFactor(  );
-        else{
+        else
             return this->Particle::getSimpleFormFactor(  );
-        }
     }
     
+    
     ::IFormFactor const * default_getSimpleFormFactor(  ) const  {
         return Particle::getSimpleFormFactor( );
     }
@@ -114,11 +114,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual bool hasDistributedFormFactor(  ) const  {
         if( bp::override func_hasDistributedFormFactor = this->get_override( "hasDistributedFormFactor" ) )
             return func_hasDistributedFormFactor(  );
-        else{
+        else
             return this->Particle::hasDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_hasDistributedFormFactor(  ) const  {
         return Particle::hasDistributedFormFactor( );
     }
@@ -126,11 +126,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual void setTransform( ::Geometry::ITransform3D const & transform ) {
         if( bp::override func_setTransform = this->get_override( "setTransform" ) )
             func_setTransform( boost::ref(transform) );
-        else{
+        else
             this->Particle::setTransform( boost::ref(transform) );
-        }
     }
     
+    
     void default_setTransform( ::Geometry::ITransform3D const & transform ) {
         Particle::setTransform( boost::ref(transform) );
     }
@@ -138,11 +138,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -150,11 +150,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -162,23 +162,47 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ICompositeSample::getCompositeSample( );
+    }
+
+    virtual ::ICompositeSample const * getCompositeSample(  ) const  {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample const * default_getCompositeSample(  ) const  {
+        return ICompositeSample::getCompositeSample( );
+    }
+
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -186,11 +210,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -217,11 +241,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -229,11 +253,11 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -241,15 +265,27 @@ struct Particle_wrapper : Particle, bp::wrapper< Particle > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
+    virtual ::std::size_t size(  ) const  {
+        if( bp::override func_size = this->get_override( "size" ) )
+            return func_size(  );
+        else
+            return this->ICompositeSample::size(  );
+    }
+    
+    
+    ::std::size_t default_size(  ) const  {
+        return ICompositeSample::size( );
+    }
+
 };
 
 void register_Particle_class(){
@@ -398,6 +434,30 @@ void register_Particle_class(){
                 , default_createParameterTree_function_type(&Particle_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( Particle_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            Particle_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&Particle_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample const * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) const;
+            typedef ::ICompositeSample const * ( Particle_wrapper::*default_getCompositeSample_function_type )(  ) const;
+            
+            Particle_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&Particle_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::IParameterized::printParameters
         
@@ -466,6 +526,17 @@ void register_Particle_class(){
                 , default_setParametersAreChanged_function_type(&Particle_wrapper::default_setParametersAreChanged) );
         
         }
+        { //::ICompositeSample::size
+        
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( Particle_wrapper::*default_size_function_type )(  ) const;
+            
+            Particle_exposer.def( 
+                "size"
+                , size_function_type(&::ICompositeSample::size)
+                , default_size_function_type(&Particle_wrapper::default_size) );
+        
+        }
     }
 
 }
diff --git a/Core/PythonAPI/src/ParticleCoreShell.pypp.cpp b/Core/PythonAPI/src/ParticleCoreShell.pypp.cpp
index e3063687fe5e5517f95cc43000e84f2181d538f1..8519934d1814c9953183b4db9ac3d04a66106a1f 100644
--- a/Core/PythonAPI/src/ParticleCoreShell.pypp.cpp
+++ b/Core/PythonAPI/src/ParticleCoreShell.pypp.cpp
@@ -28,11 +28,11 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -40,11 +40,11 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -52,23 +52,47 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ICompositeSample::getCompositeSample( );
+    }
+
+    virtual ::ICompositeSample const * getCompositeSample(  ) const  {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample const * default_getCompositeSample(  ) const  {
+        return ICompositeSample::getCompositeSample( );
+    }
+
     virtual ::IMaterial const * getMaterial(  ) const  {
         if( bp::override func_getMaterial = this->get_override( "getMaterial" ) )
             return func_getMaterial(  );
-        else{
+        else
             return this->Particle::getMaterial(  );
-        }
     }
     
+    
     ::IMaterial const * default_getMaterial(  ) const  {
         return Particle::getMaterial( );
     }
@@ -76,11 +100,11 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
     virtual ::complex_t getRefractiveIndex(  ) const  {
         if( bp::override func_getRefractiveIndex = this->get_override( "getRefractiveIndex" ) )
             return func_getRefractiveIndex(  );
-        else{
+        else
             return this->Particle::getRefractiveIndex(  );
-        }
     }
     
+    
     ::complex_t default_getRefractiveIndex(  ) const  {
         return Particle::getRefractiveIndex( );
     }
@@ -88,11 +112,11 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
     virtual bool hasDistributedFormFactor(  ) const  {
         if( bp::override func_hasDistributedFormFactor = this->get_override( "hasDistributedFormFactor" ) )
             return func_hasDistributedFormFactor(  );
-        else{
+        else
             return this->Particle::hasDistributedFormFactor(  );
-        }
     }
     
+    
     bool default_hasDistributedFormFactor(  ) const  {
         return Particle::hasDistributedFormFactor( );
     }
@@ -100,11 +124,11 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -112,11 +136,11 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -143,11 +167,11 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -155,11 +179,11 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -167,11 +191,11 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -179,15 +203,27 @@ struct ParticleCoreShell_wrapper : ParticleCoreShell, bp::wrapper< ParticleCoreS
     virtual void setTransform( ::Geometry::ITransform3D const & transform ) {
         if( bp::override func_setTransform = this->get_override( "setTransform" ) )
             func_setTransform( boost::ref(transform) );
-        else{
+        else
             this->Particle::setTransform( boost::ref(transform) );
-        }
     }
     
+    
     void default_setTransform( ::Geometry::ITransform3D const & transform ) {
         Particle::setTransform( boost::ref(transform) );
     }
 
+    virtual ::std::size_t size(  ) const  {
+        if( bp::override func_size = this->get_override( "size" ) )
+            return func_size(  );
+        else
+            return this->ICompositeSample::size(  );
+    }
+    
+    
+    ::std::size_t default_size(  ) const  {
+        return ICompositeSample::size( );
+    }
+
 };
 
 void register_ParticleCoreShell_class(){
@@ -229,6 +265,30 @@ void register_ParticleCoreShell_class(){
                 , default_createParameterTree_function_type(&ParticleCoreShell_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( ParticleCoreShell_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            ParticleCoreShell_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&ParticleCoreShell_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample const * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) const;
+            typedef ::ICompositeSample const * ( ParticleCoreShell_wrapper::*default_getCompositeSample_function_type )(  ) const;
+            
+            ParticleCoreShell_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&ParticleCoreShell_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::Particle::getMaterial
         
@@ -343,6 +403,17 @@ void register_ParticleCoreShell_class(){
                 , ( bp::arg("transform") ) );
         
         }
+        { //::ICompositeSample::size
+        
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( ParticleCoreShell_wrapper::*default_size_function_type )(  ) const;
+            
+            ParticleCoreShell_exposer.def( 
+                "size"
+                , size_function_type(&::ICompositeSample::size)
+                , default_size_function_type(&ParticleCoreShell_wrapper::default_size) );
+        
+        }
     }
 
 }
diff --git a/Core/PythonAPI/src/ParticleDecoration.pypp.cpp b/Core/PythonAPI/src/ParticleDecoration.pypp.cpp
index 30a5422de2f7a5f953ac487108ab5ab65804b0ba..3ab807ebada32b27ee0ff31d4557c930a38d7fc2 100644
--- a/Core/PythonAPI/src/ParticleDecoration.pypp.cpp
+++ b/Core/PythonAPI/src/ParticleDecoration.pypp.cpp
@@ -28,11 +28,11 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec
     virtual ::ParticleDecoration * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->ParticleDecoration::clone(  );
-        }
     }
     
+    
     ::ParticleDecoration * default_clone(  ) const  {
         return ParticleDecoration::clone( );
     }
@@ -40,83 +40,83 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec
     virtual ::ParticleDecoration * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ParticleDecoration::cloneInvertB(  );
-        }
     }
     
+    
     ::ParticleDecoration * default_cloneInvertB(  ) const  {
         return ParticleDecoration::cloneInvertB( );
     }
 
-    virtual double getAbundanceFractionOfParticle( ::size_t index ) const  {
+    virtual double getAbundanceFractionOfParticle( ::std::size_t index ) const  {
         if( bp::override func_getAbundanceFractionOfParticle = this->get_override( "getAbundanceFractionOfParticle" ) )
             return func_getAbundanceFractionOfParticle( index );
-        else{
+        else
             return this->ParticleDecoration::getAbundanceFractionOfParticle( index );
-        }
     }
     
-    double default_getAbundanceFractionOfParticle( ::size_t index ) const  {
+    
+    double default_getAbundanceFractionOfParticle( ::std::size_t index ) const  {
         return ParticleDecoration::getAbundanceFractionOfParticle( index );
     }
 
     virtual ::SafePointerVector< IInterferenceFunction > getInterferenceFunctions(  ) const  {
         if( bp::override func_getInterferenceFunctions = this->get_override( "getInterferenceFunctions" ) )
             return func_getInterferenceFunctions(  );
-        else{
+        else
             return this->ParticleDecoration::getInterferenceFunctions(  );
-        }
     }
     
+    
     ::SafePointerVector< IInterferenceFunction > default_getInterferenceFunctions(  ) const  {
         return ParticleDecoration::getInterferenceFunctions( );
     }
 
-    virtual ::size_t getNumberOfInterferenceFunctions(  ) const  {
+    virtual ::std::size_t getNumberOfInterferenceFunctions(  ) const  {
         if( bp::override func_getNumberOfInterferenceFunctions = this->get_override( "getNumberOfInterferenceFunctions" ) )
             return func_getNumberOfInterferenceFunctions(  );
-        else{
+        else
             return this->ParticleDecoration::getNumberOfInterferenceFunctions(  );
-        }
     }
     
-    ::size_t default_getNumberOfInterferenceFunctions(  ) const  {
+    
+    ::std::size_t default_getNumberOfInterferenceFunctions(  ) const  {
         return ParticleDecoration::getNumberOfInterferenceFunctions( );
     }
 
-    virtual ::size_t getNumberOfParticles(  ) const  {
+    virtual ::std::size_t getNumberOfParticles(  ) const  {
         if( bp::override func_getNumberOfParticles = this->get_override( "getNumberOfParticles" ) )
             return func_getNumberOfParticles(  );
-        else{
+        else
             return this->ParticleDecoration::getNumberOfParticles(  );
-        }
     }
     
-    ::size_t default_getNumberOfParticles(  ) const  {
+    
+    ::std::size_t default_getNumberOfParticles(  ) const  {
         return ParticleDecoration::getNumberOfParticles( );
     }
 
-    virtual ::ParticleInfo const * getParticleInfo( ::size_t index ) const  {
+    virtual ::ParticleInfo const * getParticleInfo( ::std::size_t index ) const  {
         if( bp::override func_getParticleInfo = this->get_override( "getParticleInfo" ) )
             return func_getParticleInfo( index );
-        else{
+        else
             return this->ParticleDecoration::getParticleInfo( index );
-        }
     }
     
-    ::ParticleInfo const * default_getParticleInfo( ::size_t index ) const  {
+    
+    ::ParticleInfo const * default_getParticleInfo( ::std::size_t index ) const  {
         return ParticleDecoration::getParticleInfo( index );
     }
 
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -124,11 +124,11 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -136,23 +136,47 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ICompositeSample::getCompositeSample( );
+    }
+
+    virtual ::ICompositeSample const * getCompositeSample(  ) const  {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample const * default_getCompositeSample(  ) const  {
+        return ICompositeSample::getCompositeSample( );
+    }
+
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -160,11 +184,11 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -191,11 +215,11 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -203,11 +227,11 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -215,15 +239,27 @@ struct ParticleDecoration_wrapper : ParticleDecoration, bp::wrapper< ParticleDec
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
+    virtual ::std::size_t size(  ) const  {
+        if( bp::override func_size = this->get_override( "size" ) )
+            return func_size(  );
+        else
+            return this->ICompositeSample::size(  );
+    }
+    
+    
+    ::std::size_t default_size(  ) const  {
+        return ICompositeSample::size( );
+    }
+
 };
 
 void register_ParticleDecoration_class(){
@@ -298,8 +334,8 @@ void register_ParticleDecoration_class(){
         }
         { //::ParticleDecoration::getAbundanceFractionOfParticle
         
-            typedef double ( ::ParticleDecoration::*getAbundanceFractionOfParticle_function_type )( ::size_t ) const;
-            typedef double ( ParticleDecoration_wrapper::*default_getAbundanceFractionOfParticle_function_type )( ::size_t ) const;
+            typedef double ( ::ParticleDecoration::*getAbundanceFractionOfParticle_function_type )( ::std::size_t ) const;
+            typedef double ( ParticleDecoration_wrapper::*default_getAbundanceFractionOfParticle_function_type )( ::std::size_t ) const;
             
             ParticleDecoration_exposer.def( 
                 "getAbundanceFractionOfParticle"
@@ -310,7 +346,7 @@ void register_ParticleDecoration_class(){
         }
         { //::ParticleDecoration::getInterferenceFunction
         
-            typedef ::IInterferenceFunction const * ( ::ParticleDecoration::*getInterferenceFunction_function_type )( ::size_t ) const;
+            typedef ::IInterferenceFunction const * ( ::ParticleDecoration::*getInterferenceFunction_function_type )( ::std::size_t ) const;
             
             ParticleDecoration_exposer.def( 
                 "getInterferenceFunction"
@@ -332,8 +368,8 @@ void register_ParticleDecoration_class(){
         }
         { //::ParticleDecoration::getNumberOfInterferenceFunctions
         
-            typedef ::size_t ( ::ParticleDecoration::*getNumberOfInterferenceFunctions_function_type )(  ) const;
-            typedef ::size_t ( ParticleDecoration_wrapper::*default_getNumberOfInterferenceFunctions_function_type )(  ) const;
+            typedef ::std::size_t ( ::ParticleDecoration::*getNumberOfInterferenceFunctions_function_type )(  ) const;
+            typedef ::std::size_t ( ParticleDecoration_wrapper::*default_getNumberOfInterferenceFunctions_function_type )(  ) const;
             
             ParticleDecoration_exposer.def( 
                 "getNumberOfInterferenceFunctions"
@@ -343,8 +379,8 @@ void register_ParticleDecoration_class(){
         }
         { //::ParticleDecoration::getNumberOfParticles
         
-            typedef ::size_t ( ::ParticleDecoration::*getNumberOfParticles_function_type )(  ) const;
-            typedef ::size_t ( ParticleDecoration_wrapper::*default_getNumberOfParticles_function_type )(  ) const;
+            typedef ::std::size_t ( ::ParticleDecoration::*getNumberOfParticles_function_type )(  ) const;
+            typedef ::std::size_t ( ParticleDecoration_wrapper::*default_getNumberOfParticles_function_type )(  ) const;
             
             ParticleDecoration_exposer.def( 
                 "getNumberOfParticles"
@@ -354,8 +390,8 @@ void register_ParticleDecoration_class(){
         }
         { //::ParticleDecoration::getParticleInfo
         
-            typedef ::ParticleInfo const * ( ::ParticleDecoration::*getParticleInfo_function_type )( ::size_t ) const;
-            typedef ::ParticleInfo const * ( ParticleDecoration_wrapper::*default_getParticleInfo_function_type )( ::size_t ) const;
+            typedef ::ParticleInfo const * ( ::ParticleDecoration::*getParticleInfo_function_type )( ::std::size_t ) const;
+            typedef ::ParticleInfo const * ( ParticleDecoration_wrapper::*default_getParticleInfo_function_type )( ::std::size_t ) const;
             
             ParticleDecoration_exposer.def( 
                 "getParticleInfo"
@@ -398,6 +434,30 @@ void register_ParticleDecoration_class(){
                 , default_createParameterTree_function_type(&ParticleDecoration_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( ParticleDecoration_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            ParticleDecoration_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&ParticleDecoration_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample const * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) const;
+            typedef ::ICompositeSample const * ( ParticleDecoration_wrapper::*default_getCompositeSample_function_type )(  ) const;
+            
+            ParticleDecoration_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&ParticleDecoration_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::IParameterized::printParameters
         
@@ -466,6 +526,17 @@ void register_ParticleDecoration_class(){
                 , default_setParametersAreChanged_function_type(&ParticleDecoration_wrapper::default_setParametersAreChanged) );
         
         }
+        { //::ICompositeSample::size
+        
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( ParticleDecoration_wrapper::*default_size_function_type )(  ) const;
+            
+            ParticleDecoration_exposer.def( 
+                "size"
+                , size_function_type(&::ICompositeSample::size)
+                , default_size_function_type(&ParticleDecoration_wrapper::default_size) );
+        
+        }
     }
 
 }
diff --git a/Core/PythonAPI/src/ParticleInfo.pypp.cpp b/Core/PythonAPI/src/ParticleInfo.pypp.cpp
index 2620a854bc3a657ec611b5dd0fd398b2e1fbcf29..283ee6d731fb22b2b801c2693eb6cde93375d965 100644
--- a/Core/PythonAPI/src/ParticleInfo.pypp.cpp
+++ b/Core/PythonAPI/src/ParticleInfo.pypp.cpp
@@ -28,11 +28,11 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > {
     virtual ::ParticleInfo * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->ParticleInfo::clone(  );
-        }
     }
     
+    
     ::ParticleInfo * default_clone(  ) const  {
         return ParticleInfo::clone( );
     }
@@ -40,11 +40,11 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > {
     virtual ::ParticleInfo * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ParticleInfo::cloneInvertB(  );
-        }
     }
     
+    
     ::ParticleInfo * default_cloneInvertB(  ) const  {
         return ParticleInfo::cloneInvertB( );
     }
@@ -52,11 +52,11 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -64,11 +64,11 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -76,23 +76,47 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ICompositeSample::getCompositeSample( );
+    }
+
+    virtual ::ICompositeSample const * getCompositeSample(  ) const  {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample const * default_getCompositeSample(  ) const  {
+        return ICompositeSample::getCompositeSample( );
+    }
+
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -100,11 +124,11 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > {
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -131,11 +155,11 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > {
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -143,11 +167,11 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > {
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -155,15 +179,27 @@ struct ParticleInfo_wrapper : ParticleInfo, bp::wrapper< ParticleInfo > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
+    virtual ::std::size_t size(  ) const  {
+        if( bp::override func_size = this->get_override( "size" ) )
+            return func_size(  );
+        else
+            return this->ICompositeSample::size(  );
+    }
+    
+    
+    ::std::size_t default_size(  ) const  {
+        return ICompositeSample::size( );
+    }
+
 };
 
 void register_ParticleInfo_class(){
@@ -277,6 +313,30 @@ void register_ParticleInfo_class(){
                 , default_createParameterTree_function_type(&ParticleInfo_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( ParticleInfo_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            ParticleInfo_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&ParticleInfo_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample const * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) const;
+            typedef ::ICompositeSample const * ( ParticleInfo_wrapper::*default_getCompositeSample_function_type )(  ) const;
+            
+            ParticleInfo_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&ParticleInfo_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::IParameterized::printParameters
         
@@ -345,6 +405,17 @@ void register_ParticleInfo_class(){
                 , default_setParametersAreChanged_function_type(&ParticleInfo_wrapper::default_setParametersAreChanged) );
         
         }
+        { //::ICompositeSample::size
+        
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( ParticleInfo_wrapper::*default_size_function_type )(  ) const;
+            
+            ParticleInfo_exposer.def( 
+                "size"
+                , size_function_type(&::ICompositeSample::size)
+                , default_size_function_type(&ParticleInfo_wrapper::default_size) );
+        
+        }
     }
 
 }
diff --git a/Core/PythonAPI/src/PositionParticleInfo.pypp.cpp b/Core/PythonAPI/src/PositionParticleInfo.pypp.cpp
index 8e2c7fa57e45acc954470ff23d81d5b6dd08ce77..229e73a8d8400d91e41819ac414d04e462c260ce 100644
--- a/Core/PythonAPI/src/PositionParticleInfo.pypp.cpp
+++ b/Core/PythonAPI/src/PositionParticleInfo.pypp.cpp
@@ -28,11 +28,11 @@ struct PositionParticleInfo_wrapper : PositionParticleInfo, bp::wrapper< Positio
     virtual ::PositionParticleInfo * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->PositionParticleInfo::clone(  );
-        }
     }
     
+    
     ::PositionParticleInfo * default_clone(  ) const  {
         return PositionParticleInfo::clone( );
     }
@@ -40,11 +40,11 @@ struct PositionParticleInfo_wrapper : PositionParticleInfo, bp::wrapper< Positio
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -52,11 +52,11 @@ struct PositionParticleInfo_wrapper : PositionParticleInfo, bp::wrapper< Positio
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -64,11 +64,11 @@ struct PositionParticleInfo_wrapper : PositionParticleInfo, bp::wrapper< Positio
     virtual ::ParticleInfo * cloneInvertB(  ) const  {
         if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
             return func_cloneInvertB(  );
-        else{
+        else
             return this->ParticleInfo::cloneInvertB(  );
-        }
     }
     
+    
     ::ParticleInfo * default_cloneInvertB(  ) const  {
         return ParticleInfo::cloneInvertB( );
     }
@@ -76,23 +76,47 @@ struct PositionParticleInfo_wrapper : PositionParticleInfo, bp::wrapper< Positio
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
 
+    virtual ::ICompositeSample * getCompositeSample(  ) {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample * default_getCompositeSample(  ) {
+        return ICompositeSample::getCompositeSample( );
+    }
+
+    virtual ::ICompositeSample const * getCompositeSample(  ) const  {
+        if( bp::override func_getCompositeSample = this->get_override( "getCompositeSample" ) )
+            return func_getCompositeSample(  );
+        else
+            return this->ICompositeSample::getCompositeSample(  );
+    }
+    
+    
+    ::ICompositeSample const * default_getCompositeSample(  ) const  {
+        return ICompositeSample::getCompositeSample( );
+    }
+
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -100,11 +124,11 @@ struct PositionParticleInfo_wrapper : PositionParticleInfo, bp::wrapper< Positio
     virtual void printSampleTree(  ) {
         if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
             func_printSampleTree(  );
-        else{
+        else
             this->ISample::printSampleTree(  );
-        }
     }
     
+    
     void default_printSampleTree(  ) {
         ISample::printSampleTree( );
     }
@@ -131,11 +155,11 @@ struct PositionParticleInfo_wrapper : PositionParticleInfo, bp::wrapper< Positio
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -143,11 +167,11 @@ struct PositionParticleInfo_wrapper : PositionParticleInfo, bp::wrapper< Positio
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -155,15 +179,27 @@ struct PositionParticleInfo_wrapper : PositionParticleInfo, bp::wrapper< Positio
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
 
+    virtual ::std::size_t size(  ) const  {
+        if( bp::override func_size = this->get_override( "size" ) )
+            return func_size(  );
+        else
+            return this->ICompositeSample::size(  );
+    }
+    
+    
+    ::std::size_t default_size(  ) const  {
+        return ICompositeSample::size( );
+    }
+
 };
 
 void register_PositionParticleInfo_class(){
@@ -258,6 +294,30 @@ void register_PositionParticleInfo_class(){
                 , default_createParameterTree_function_type(&PositionParticleInfo_wrapper::default_createParameterTree)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) ;
+            typedef ::ICompositeSample * ( PositionParticleInfo_wrapper::*default_getCompositeSample_function_type )(  ) ;
+            
+            PositionParticleInfo_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&PositionParticleInfo_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
+        }
+        { //::ICompositeSample::getCompositeSample
+        
+            typedef ::ICompositeSample const * ( ::ICompositeSample::*getCompositeSample_function_type )(  ) const;
+            typedef ::ICompositeSample const * ( PositionParticleInfo_wrapper::*default_getCompositeSample_function_type )(  ) const;
+            
+            PositionParticleInfo_exposer.def( 
+                "getCompositeSample"
+                , getCompositeSample_function_type(&::ICompositeSample::getCompositeSample)
+                , default_getCompositeSample_function_type(&PositionParticleInfo_wrapper::default_getCompositeSample)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
         }
         { //::IParameterized::printParameters
         
@@ -326,6 +386,17 @@ void register_PositionParticleInfo_class(){
                 , default_setParametersAreChanged_function_type(&PositionParticleInfo_wrapper::default_setParametersAreChanged) );
         
         }
+        { //::ICompositeSample::size
+        
+            typedef ::std::size_t ( ::ICompositeSample::*size_function_type )(  ) const;
+            typedef ::std::size_t ( PositionParticleInfo_wrapper::*default_size_function_type )(  ) const;
+            
+            PositionParticleInfo_exposer.def( 
+                "size"
+                , size_function_type(&::ICompositeSample::size)
+                , default_size_function_type(&PositionParticleInfo_wrapper::default_size) );
+        
+        }
     }
 
 }
diff --git a/Core/PythonAPI/src/PythonModule.cpp b/Core/PythonAPI/src/PythonModule.cpp
index a398f4bb3f6acf338851e974ca1bb214fc3a3c05..08a156af7a1a338f156211529150fdf6c3a967c8 100644
--- a/Core/PythonAPI/src/PythonModule.cpp
+++ b/Core/PythonAPI/src/PythonModule.cpp
@@ -4,95 +4,95 @@
 #include "numpy/arrayobject.h"
 // the order of 3 guys above is important
 
-#include "AxisBin.pypp.h" 
-#include "AxisDouble.pypp.h" 
-#include "Beam.pypp.h" 
-#include "Bin1D.pypp.h" 
-#include "Bin1DCVector.pypp.h" 
-#include "Crystal.pypp.h" 
+#include "RotateZ_3D.pypp.h" 
+#include "IFTDistribution2D.pypp.h" 
 #include "Detector.pypp.h" 
-#include "FTDistribution2DCauchy.pypp.h" 
-#include "FormFactorBox.pypp.h" 
-#include "FormFactorCone.pypp.h" 
-#include "FormFactorCrystal.pypp.h" 
+#include "LatticeBasis.pypp.h" 
+#include "ParticleCoreShell.pypp.h" 
+#include "Beam.pypp.h" 
+#include "Lattice.pypp.h" 
 #include "FormFactorCylinder.pypp.h" 
-#include "FormFactorDecoratorDebyeWaller.pypp.h" 
-#include "FormFactorEllipsoid.pypp.h" 
-#include "FormFactorFullSphere.pypp.h" 
-#include "FormFactorFullSpheroid.pypp.h" 
-#include "FormFactorGauss.pypp.h" 
-#include "FormFactorHemiSpheroid.pypp.h" 
-#include "FormFactorLorentz.pypp.h" 
-#include "FormFactorParallelepiped.pypp.h" 
-#include "FormFactorPrism3.pypp.h" 
-#include "FormFactorPrism6.pypp.h" 
-#include "FormFactorPyramid.pypp.h" 
-#include "FormFactorSphere.pypp.h" 
-#include "FormFactorSphereGaussianRadius.pypp.h" 
+#include "ICloneable.pypp.h" 
+#include "StochasticSampledParameter.pypp.h" 
 #include "HomogeneousMaterial.pypp.h" 
+#include "vector_integer_t.pypp.h" 
+#include "AxisDouble.pypp.h" 
 #include "IAxis.pypp.h" 
-#include "ICloneable.pypp.h" 
-#include "IClusteredParticles.pypp.h" 
-#include "ICompositeSample.pypp.h" 
-#include "IDecoration.pypp.h" 
-#include "IDetectorResolution.pypp.h" 
-#include "IFTDistribution2D.pypp.h" 
+#include "Layer.pypp.h" 
 #include "IFormFactor.pypp.h" 
-#include "IFormFactorBorn.pypp.h" 
-#include "IFormFactorDecorator.pypp.h" 
-#include "IInterferenceFunction.pypp.h" 
-#include "IMaterial.pypp.h" 
 #include "IObservable.pypp.h" 
-#include "IObserver.pypp.h" 
-#include "IParameterized.pypp.h" 
-#include "IResolutionFunction2D.pypp.h" 
-#include "ISample.pypp.h" 
+#include "FormFactorParallelepiped.pypp.h" 
+#include "RealParameterWrapper.pypp.h" 
+#include "MaterialManager.pypp.h" 
+#include "ResolutionFunction2DSimple.pypp.h" 
+#include "SimulationParameters.pypp.h" 
+#include "AxisBin.pypp.h" 
+#include "FormFactorGauss.pypp.h" 
+#include "FormFactorFullSpheroid.pypp.h" 
+#include "PythonInterface_global_variables.pypp.h" 
 #include "ISampleBuilder.pypp.h" 
-#include "ISelectionRule.pypp.h" 
-#include "ITransform3D.pypp.h" 
-#include "Instrument.pypp.h" 
-#include "IntensityData.pypp.h" 
-#include "InterferenceFunction1DParaCrystal.pypp.h" 
+#include "StochasticParameter_t.pypp.h" 
+#include "StochasticDoubleGaussian.pypp.h" 
+#include "FormFactorPrism6.pypp.h" 
 #include "InterferenceFunction2DLattice.pypp.h" 
-#include "InterferenceFunction2DParaCrystal.pypp.h" 
-#include "InterferenceFunctionNone.pypp.h" 
-#include "Lattice.pypp.h" 
-#include "Lattice2DIFParameters.pypp.h" 
-#include "LatticeBasis.pypp.h" 
-#include "Layer.pypp.h" 
-#include "LayerInterface.pypp.h" 
-#include "LayerRoughness.pypp.h" 
-#include "MaterialManager.pypp.h" 
-#include "MesoCrystal.pypp.h" 
+#include "FormFactorPyramid.pypp.h" 
+#include "FormFactorBox.pypp.h" 
+#include "IResolutionFunction2D.pypp.h" 
+#include "IFormFactorBorn.pypp.h" 
 #include "MultiLayer.pypp.h" 
-#include "OutputDataIOFactory.pypp.h" 
+#include "ITransform3D.pypp.h" 
+#include "ParticleDecoration.pypp.h" 
+#include "IDecoration.pypp.h" 
+#include "FTDistribution2DCauchy.pypp.h" 
+#include "ICompositeSample.pypp.h" 
+#include "cvector_t.pypp.h" 
 #include "ParameterPool.pypp.h" 
 #include "Particle.pypp.h" 
-#include "ParticleBuilder.pypp.h" 
-#include "ParticleCoreShell.pypp.h" 
-#include "ParticleDecoration.pypp.h" 
+#include "FormFactorCone.pypp.h" 
+#include "FormFactorPrism3.pypp.h" 
+#include "InterferenceFunction2DParaCrystal.pypp.h" 
+#include "vdouble1d_t.pypp.h" 
+#include "MesoCrystal.pypp.h" 
+#include "RotateY_3D.pypp.h" 
+#include "FormFactorDecoratorDebyeWaller.pypp.h" 
+#include "vector_IFormFactorPtr_t.pypp.h" 
+#include "IMaterial.pypp.h" 
+#include "IFormFactorDecorator.pypp.h" 
+#include "Instrument.pypp.h" 
+#include "IDetectorResolution.pypp.h" 
+#include "ISelectionRule.pypp.h" 
+#include "Bin1D.pypp.h" 
 #include "ParticleInfo.pypp.h" 
+#include "vector_longinteger_t.pypp.h" 
+#include "FormFactorHemiSpheroid.pypp.h" 
+#include "LayerInterface.pypp.h" 
+#include "FormFactorFullSphere.pypp.h" 
 #include "PositionParticleInfo.pypp.h" 
-#include "PythonInterface_free_functions.pypp.h" 
-#include "PythonInterface_global_variables.pypp.h" 
-#include "RealParameterWrapper.pypp.h" 
-#include "ResolutionFunction2DSimple.pypp.h" 
-#include "RotateY_3D.pypp.h" 
-#include "RotateZ_3D.pypp.h" 
-#include "SimpleSelectionRule.pypp.h" 
-#include "Simulation.pypp.h" 
-#include "SimulationParameters.pypp.h" 
+#include "LayerRoughness.pypp.h" 
+#include "FormFactorCrystal.pypp.h" 
+#include "IntensityData.pypp.h" 
+#include "IParameterized.pypp.h" 
+#include "Bin1DCVector.pypp.h" 
 #include "StochasticDoubleGate.pypp.h" 
-#include "StochasticDoubleGaussian.pypp.h" 
-#include "StochasticParameter_t.pypp.h" 
-#include "StochasticSampledParameter.pypp.h" 
-#include "cvector_t.pypp.h" 
-#include "kvector_t.pypp.h" 
-#include "vdouble1d_t.pypp.h" 
-#include "vector_IFormFactorPtr_t.pypp.h" 
-#include "vector_integer_t.pypp.h" 
+#include "IClusteredParticles.pypp.h" 
+#include "IInterferenceFunction.pypp.h" 
+#include "SimpleSelectionRule.pypp.h" 
+#include "FormFactorLorentz.pypp.h" 
+#include "OutputDataIOFactory.pypp.h" 
 #include "vector_kvector_t.pypp.h" 
-#include "vector_longinteger_t.pypp.h" 
+#include "InterferenceFunction1DParaCrystal.pypp.h" 
+#include "InterferenceFunctionNone.pypp.h" 
+#include "Crystal.pypp.h" 
+#include "PythonInterface_free_functions.pypp.h" 
+#include "kvector_t.pypp.h" 
+#include "FormFactorEllipsoid.pypp.h" 
+#include "Simulation.pypp.h" 
+#include "ISample.pypp.h" 
+#include "IObserver.pypp.h" 
+#include "ParticleBuilder.pypp.h" 
+#include "FormFactorSphereGaussianRadius.pypp.h" 
+#include "Lattice2DIFParameters.pypp.h" 
+#include "FormFactorSphere.pypp.h" 
 #include "__call_policies.pypp.hpp" 
 #include "__convenience.pypp.hpp" 
 
diff --git a/Core/PythonAPI/src/ResolutionFunction2DSimple.pypp.cpp b/Core/PythonAPI/src/ResolutionFunction2DSimple.pypp.cpp
index 2b60275edbe18de579def50a3085769c8da7b354..e28260c83791ca0b473ed83b168ed4f94a6acc64 100644
--- a/Core/PythonAPI/src/ResolutionFunction2DSimple.pypp.cpp
+++ b/Core/PythonAPI/src/ResolutionFunction2DSimple.pypp.cpp
@@ -28,11 +28,11 @@ struct ResolutionFunction2DSimple_wrapper : ResolutionFunction2DSimple, bp::wrap
     virtual ::ResolutionFunction2DSimple * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->ResolutionFunction2DSimple::clone(  );
-        }
     }
     
+    
     ::ResolutionFunction2DSimple * default_clone(  ) const  {
         return ResolutionFunction2DSimple::clone( );
     }
@@ -40,11 +40,11 @@ struct ResolutionFunction2DSimple_wrapper : ResolutionFunction2DSimple, bp::wrap
     virtual double evaluateCDF( double x, double y ) const  {
         if( bp::override func_evaluateCDF = this->get_override( "evaluateCDF" ) )
             return func_evaluateCDF( x, y );
-        else{
+        else
             return this->ResolutionFunction2DSimple::evaluateCDF( x, y );
-        }
     }
     
+    
     double default_evaluateCDF( double x, double y ) const  {
         return ResolutionFunction2DSimple::evaluateCDF( x, y );
     }
@@ -52,11 +52,11 @@ struct ResolutionFunction2DSimple_wrapper : ResolutionFunction2DSimple, bp::wrap
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -64,11 +64,11 @@ struct ResolutionFunction2DSimple_wrapper : ResolutionFunction2DSimple, bp::wrap
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -76,11 +76,11 @@ struct ResolutionFunction2DSimple_wrapper : ResolutionFunction2DSimple, bp::wrap
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -88,11 +88,11 @@ struct ResolutionFunction2DSimple_wrapper : ResolutionFunction2DSimple, bp::wrap
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -119,11 +119,11 @@ struct ResolutionFunction2DSimple_wrapper : ResolutionFunction2DSimple, bp::wrap
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -131,11 +131,11 @@ struct ResolutionFunction2DSimple_wrapper : ResolutionFunction2DSimple, bp::wrap
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -143,11 +143,11 @@ struct ResolutionFunction2DSimple_wrapper : ResolutionFunction2DSimple, bp::wrap
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
diff --git a/Core/PythonAPI/src/RotateY_3D.pypp.cpp b/Core/PythonAPI/src/RotateY_3D.pypp.cpp
index aa59091d230fad26d5946f570fbe1e9c967a4585..97710288431fce6ba71b8760dfdb48c005e68652 100644
--- a/Core/PythonAPI/src/RotateY_3D.pypp.cpp
+++ b/Core/PythonAPI/src/RotateY_3D.pypp.cpp
@@ -33,11 +33,11 @@ struct RotateY_3D_wrapper : Geometry::RotateY_3D, bp::wrapper< Geometry::RotateY
     virtual ::Geometry::RotateY_3D * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->Geometry::RotateY_3D::clone(  );
-        }
     }
     
+    
     ::Geometry::RotateY_3D * default_clone(  ) const  {
         return Geometry::RotateY_3D::clone( );
     }
@@ -45,11 +45,11 @@ struct RotateY_3D_wrapper : Geometry::RotateY_3D, bp::wrapper< Geometry::RotateY
     virtual void print( ::std::ostream & ostr ) const  {
         if( bp::override func_print = this->get_override( "print" ) )
             func_print( boost::ref(ostr) );
-        else{
+        else
             this->Geometry::RotateY_3D::print( boost::ref(ostr) );
-        }
     }
     
+    
     void default_print( ::std::ostream & ostr ) const  {
         Geometry::RotateY_3D::print( boost::ref(ostr) );
     }
diff --git a/Core/PythonAPI/src/RotateZ_3D.pypp.cpp b/Core/PythonAPI/src/RotateZ_3D.pypp.cpp
index 6fa2018db5c7ea988de5acc358e3bf8e7e4e786a..e2cbeda26e50a2dfe449fd6a76a10beecd83cbdc 100644
--- a/Core/PythonAPI/src/RotateZ_3D.pypp.cpp
+++ b/Core/PythonAPI/src/RotateZ_3D.pypp.cpp
@@ -33,11 +33,11 @@ struct RotateZ_3D_wrapper : Geometry::RotateZ_3D, bp::wrapper< Geometry::RotateZ
     virtual ::Geometry::RotateZ_3D * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->Geometry::RotateZ_3D::clone(  );
-        }
     }
     
+    
     ::Geometry::RotateZ_3D * default_clone(  ) const  {
         return Geometry::RotateZ_3D::clone( );
     }
@@ -45,11 +45,11 @@ struct RotateZ_3D_wrapper : Geometry::RotateZ_3D, bp::wrapper< Geometry::RotateZ
     virtual void print( ::std::ostream & ostr ) const  {
         if( bp::override func_print = this->get_override( "print" ) )
             func_print( boost::ref(ostr) );
-        else{
+        else
             this->Geometry::RotateZ_3D::print( boost::ref(ostr) );
-        }
     }
     
+    
     void default_print( ::std::ostream & ostr ) const  {
         Geometry::RotateZ_3D::print( boost::ref(ostr) );
     }
diff --git a/Core/PythonAPI/src/SimpleSelectionRule.pypp.cpp b/Core/PythonAPI/src/SimpleSelectionRule.pypp.cpp
index cb07c7da7f228d0ed0627c2ad86dc6ba479e1229..b66737013bbb60b02e5b57ca8a9ffcc1cd795f14 100644
--- a/Core/PythonAPI/src/SimpleSelectionRule.pypp.cpp
+++ b/Core/PythonAPI/src/SimpleSelectionRule.pypp.cpp
@@ -33,11 +33,11 @@ struct SimpleSelectionRule_wrapper : SimpleSelectionRule, bp::wrapper< SimpleSel
     virtual ::SimpleSelectionRule * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->SimpleSelectionRule::clone(  );
-        }
     }
     
+    
     ::SimpleSelectionRule * default_clone(  ) const  {
         return SimpleSelectionRule::clone( );
     }
@@ -45,11 +45,11 @@ struct SimpleSelectionRule_wrapper : SimpleSelectionRule, bp::wrapper< SimpleSel
     virtual bool coordinateSelected( ::IndexVector3D const & coordinate ) const  {
         if( bp::override func_coordinateSelected = this->get_override( "coordinateSelected" ) )
             return func_coordinateSelected( boost::ref(coordinate) );
-        else{
+        else
             return this->SimpleSelectionRule::coordinateSelected( boost::ref(coordinate) );
-        }
     }
     
+    
     bool default_coordinateSelected( ::IndexVector3D const & coordinate ) const  {
         return SimpleSelectionRule::coordinateSelected( boost::ref(coordinate) );
     }
diff --git a/Core/PythonAPI/src/Simulation.pypp.cpp b/Core/PythonAPI/src/Simulation.pypp.cpp
index 841a35e2ca8b5e80662bd2a4a282a2777c4db282..0adb050006923e79c5e90ac99d7c5026e86f923d 100644
--- a/Core/PythonAPI/src/Simulation.pypp.cpp
+++ b/Core/PythonAPI/src/Simulation.pypp.cpp
@@ -28,11 +28,11 @@ struct Simulation_wrapper : Simulation, bp::wrapper< Simulation > {
     virtual ::Simulation * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->Simulation::clone(  );
-        }
     }
     
+    
     ::Simulation * default_clone(  ) const  {
         return Simulation::clone( );
     }
@@ -40,11 +40,11 @@ struct Simulation_wrapper : Simulation, bp::wrapper< Simulation > {
     virtual bool areParametersChanged(  ) {
         if( bp::override func_areParametersChanged = this->get_override( "areParametersChanged" ) )
             return func_areParametersChanged(  );
-        else{
+        else
             return this->IParameterized::areParametersChanged(  );
-        }
     }
     
+    
     bool default_areParametersChanged(  ) {
         return IParameterized::areParametersChanged( );
     }
@@ -52,11 +52,11 @@ struct Simulation_wrapper : Simulation, bp::wrapper< Simulation > {
     virtual void clearParameterPool(  ) {
         if( bp::override func_clearParameterPool = this->get_override( "clearParameterPool" ) )
             func_clearParameterPool(  );
-        else{
+        else
             this->IParameterized::clearParameterPool(  );
-        }
     }
     
+    
     void default_clearParameterPool(  ) {
         IParameterized::clearParameterPool( );
     }
@@ -64,11 +64,11 @@ struct Simulation_wrapper : Simulation, bp::wrapper< Simulation > {
     virtual ::ParameterPool * createParameterTree(  ) const  {
         if( bp::override func_createParameterTree = this->get_override( "createParameterTree" ) )
             return func_createParameterTree(  );
-        else{
+        else
             return this->IParameterized::createParameterTree(  );
-        }
     }
     
+    
     ::ParameterPool * default_createParameterTree(  ) const  {
         return IParameterized::createParameterTree( );
     }
@@ -76,11 +76,11 @@ struct Simulation_wrapper : Simulation, bp::wrapper< Simulation > {
     virtual void printParameters(  ) const  {
         if( bp::override func_printParameters = this->get_override( "printParameters" ) )
             func_printParameters(  );
-        else{
+        else
             this->IParameterized::printParameters(  );
-        }
     }
     
+    
     void default_printParameters(  ) const  {
         IParameterized::printParameters( );
     }
@@ -107,11 +107,11 @@ struct Simulation_wrapper : Simulation, bp::wrapper< Simulation > {
     virtual int setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         if( bp::override func_setMatchedParametersValue = this->get_override( "setMatchedParametersValue" ) )
             return func_setMatchedParametersValue( wildcards, value );
-        else{
+        else
             return this->IParameterized::setMatchedParametersValue( wildcards, value );
-        }
     }
     
+    
     int default_setMatchedParametersValue( ::std::string const & wildcards, double value ) {
         return IParameterized::setMatchedParametersValue( wildcards, value );
     }
@@ -119,11 +119,11 @@ struct Simulation_wrapper : Simulation, bp::wrapper< Simulation > {
     virtual bool setParameterValue( ::std::string const & name, double value ) {
         if( bp::override func_setParameterValue = this->get_override( "setParameterValue" ) )
             return func_setParameterValue( name, value );
-        else{
+        else
             return this->IParameterized::setParameterValue( name, value );
-        }
     }
     
+    
     bool default_setParameterValue( ::std::string const & name, double value ) {
         return IParameterized::setParameterValue( name, value );
     }
@@ -131,11 +131,11 @@ struct Simulation_wrapper : Simulation, bp::wrapper< Simulation > {
     virtual void setParametersAreChanged(  ) {
         if( bp::override func_setParametersAreChanged = this->get_override( "setParametersAreChanged" ) )
             func_setParametersAreChanged(  );
-        else{
+        else
             this->IParameterized::setParametersAreChanged(  );
-        }
     }
     
+    
     void default_setParametersAreChanged(  ) {
         IParameterized::setParametersAreChanged( );
     }
@@ -249,7 +249,7 @@ void register_Simulation_class(){
         }
         { //::Simulation::runSimulationElement
         
-            typedef void ( ::Simulation::*runSimulationElement_function_type )( ::size_t ) ;
+            typedef void ( ::Simulation::*runSimulationElement_function_type )( ::std::size_t ) ;
             
             Simulation_exposer.def( 
                 "runSimulationElement"
@@ -289,7 +289,7 @@ void register_Simulation_class(){
         }
         { //::Simulation::setDetectorParameters
         
-            typedef void ( ::Simulation::*setDetectorParameters_function_type )( ::size_t,double,double,::size_t,double,double,bool ) ;
+            typedef void ( ::Simulation::*setDetectorParameters_function_type )( ::std::size_t,double,double,::std::size_t,double,double,bool ) ;
             
             Simulation_exposer.def( 
                 "setDetectorParameters"
diff --git a/Core/PythonAPI/src/StochasticDoubleGate.pypp.cpp b/Core/PythonAPI/src/StochasticDoubleGate.pypp.cpp
index ea0d2bcc00b58e26f953ab1f8c5b8d497e51565b..a2c2e6ca95bf639e8c92a7e2947e72283af1c1eb 100644
--- a/Core/PythonAPI/src/StochasticDoubleGate.pypp.cpp
+++ b/Core/PythonAPI/src/StochasticDoubleGate.pypp.cpp
@@ -26,11 +26,11 @@ struct StochasticDoubleGate_wrapper : StochasticDoubleGate, bp::wrapper< Stochas
     virtual ::StochasticDoubleGate * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->StochasticDoubleGate::clone(  );
-        }
     }
     
+    
     ::StochasticDoubleGate * default_clone(  ) const  {
         return StochasticDoubleGate::clone( );
     }
@@ -38,11 +38,11 @@ struct StochasticDoubleGate_wrapper : StochasticDoubleGate, bp::wrapper< Stochas
     virtual double getFWHM(  ) const  {
         if( bp::override func_getFWHM = this->get_override( "getFWHM" ) )
             return func_getFWHM(  );
-        else{
+        else
             return this->StochasticDoubleGate::getFWHM(  );
-        }
     }
     
+    
     double default_getFWHM(  ) const  {
         return StochasticDoubleGate::getFWHM( );
     }
@@ -50,11 +50,11 @@ struct StochasticDoubleGate_wrapper : StochasticDoubleGate, bp::wrapper< Stochas
     virtual double probabilityDensity( double value ) const  {
         if( bp::override func_probabilityDensity = this->get_override( "probabilityDensity" ) )
             return func_probabilityDensity( value );
-        else{
+        else
             return this->StochasticDoubleGate::probabilityDensity( value );
-        }
     }
     
+    
     double default_probabilityDensity( double value ) const  {
         return StochasticDoubleGate::probabilityDensity( value );
     }
@@ -62,11 +62,11 @@ struct StochasticDoubleGate_wrapper : StochasticDoubleGate, bp::wrapper< Stochas
     virtual void setToRandom(  ) {
         if( bp::override func_setToRandom = this->get_override( "setToRandom" ) )
             func_setToRandom(  );
-        else{
+        else
             this->StochasticDoubleGate::setToRandom(  );
-        }
     }
     
+    
     void default_setToRandom(  ) {
         StochasticDoubleGate::setToRandom( );
     }
@@ -74,11 +74,11 @@ struct StochasticDoubleGate_wrapper : StochasticDoubleGate, bp::wrapper< Stochas
     virtual double getRandom(  ) {
         if( bp::override func_getRandom = this->get_override( "getRandom" ) )
             return func_getRandom(  );
-        else{
+        else
             return this->StochasticParameter< double >::getRandom(  );
-        }
     }
     
+    
     double default_getRandom(  ) {
         return StochasticParameter< double >::getRandom( );
     }
@@ -86,11 +86,11 @@ struct StochasticDoubleGate_wrapper : StochasticDoubleGate, bp::wrapper< Stochas
     virtual void setToAverage(  ) {
         if( bp::override func_setToAverage = this->get_override( "setToAverage" ) )
             func_setToAverage(  );
-        else{
+        else
             this->StochasticParameter< double >::setToAverage(  );
-        }
     }
     
+    
     void default_setToAverage(  ) {
         StochasticParameter< double >::setToAverage( );
     }
diff --git a/Core/PythonAPI/src/StochasticDoubleGaussian.pypp.cpp b/Core/PythonAPI/src/StochasticDoubleGaussian.pypp.cpp
index 820e29c3e451eda7af03306e5dd63852ca7c9913..ec0bb290500ff2041944e8335e9be278491390af 100644
--- a/Core/PythonAPI/src/StochasticDoubleGaussian.pypp.cpp
+++ b/Core/PythonAPI/src/StochasticDoubleGaussian.pypp.cpp
@@ -26,11 +26,11 @@ struct StochasticDoubleGaussian_wrapper : StochasticDoubleGaussian, bp::wrapper<
     virtual ::StochasticDoubleGaussian * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->StochasticDoubleGaussian::clone(  );
-        }
     }
     
+    
     ::StochasticDoubleGaussian * default_clone(  ) const  {
         return StochasticDoubleGaussian::clone( );
     }
@@ -38,11 +38,11 @@ struct StochasticDoubleGaussian_wrapper : StochasticDoubleGaussian, bp::wrapper<
     virtual double getFWHM(  ) const  {
         if( bp::override func_getFWHM = this->get_override( "getFWHM" ) )
             return func_getFWHM(  );
-        else{
+        else
             return this->StochasticDoubleGaussian::getFWHM(  );
-        }
     }
     
+    
     double default_getFWHM(  ) const  {
         return StochasticDoubleGaussian::getFWHM( );
     }
@@ -50,11 +50,11 @@ struct StochasticDoubleGaussian_wrapper : StochasticDoubleGaussian, bp::wrapper<
     virtual double probabilityDensity( double value ) const  {
         if( bp::override func_probabilityDensity = this->get_override( "probabilityDensity" ) )
             return func_probabilityDensity( value );
-        else{
+        else
             return this->StochasticDoubleGaussian::probabilityDensity( value );
-        }
     }
     
+    
     double default_probabilityDensity( double value ) const  {
         return StochasticDoubleGaussian::probabilityDensity( value );
     }
@@ -62,11 +62,11 @@ struct StochasticDoubleGaussian_wrapper : StochasticDoubleGaussian, bp::wrapper<
     virtual void setToRandom(  ) {
         if( bp::override func_setToRandom = this->get_override( "setToRandom" ) )
             func_setToRandom(  );
-        else{
+        else
             this->StochasticDoubleGaussian::setToRandom(  );
-        }
     }
     
+    
     void default_setToRandom(  ) {
         StochasticDoubleGaussian::setToRandom( );
     }
@@ -74,11 +74,11 @@ struct StochasticDoubleGaussian_wrapper : StochasticDoubleGaussian, bp::wrapper<
     virtual double getRandom(  ) {
         if( bp::override func_getRandom = this->get_override( "getRandom" ) )
             return func_getRandom(  );
-        else{
+        else
             return this->StochasticParameter< double >::getRandom(  );
-        }
     }
     
+    
     double default_getRandom(  ) {
         return StochasticParameter< double >::getRandom( );
     }
@@ -86,11 +86,11 @@ struct StochasticDoubleGaussian_wrapper : StochasticDoubleGaussian, bp::wrapper<
     virtual void setToAverage(  ) {
         if( bp::override func_setToAverage = this->get_override( "setToAverage" ) )
             func_setToAverage(  );
-        else{
+        else
             this->StochasticParameter< double >::setToAverage(  );
-        }
     }
     
+    
     void default_setToAverage(  ) {
         StochasticParameter< double >::setToAverage( );
     }
diff --git a/Core/PythonAPI/src/StochasticParameter_t.pypp.cpp b/Core/PythonAPI/src/StochasticParameter_t.pypp.cpp
index 1c7f4060708c9de5ed217052a0046dc0d45ae2ba..e6cd435ac44605b2a56bb0a5ef8f60d430c7f15d 100644
--- a/Core/PythonAPI/src/StochasticParameter_t.pypp.cpp
+++ b/Core/PythonAPI/src/StochasticParameter_t.pypp.cpp
@@ -31,11 +31,11 @@ struct StochasticParameter_less__double__greater__wrapper : StochasticParameter<
     virtual double getFWHM(  ) const  {
         if( bp::override func_getFWHM = this->get_override( "getFWHM" ) )
             return func_getFWHM(  );
-        else{
+        else
             return this->StochasticParameter< double >::getFWHM(  );
-        }
     }
     
+    
     double default_getFWHM(  ) const  {
         return StochasticParameter< double >::getFWHM( );
     }
@@ -43,11 +43,11 @@ struct StochasticParameter_less__double__greater__wrapper : StochasticParameter<
     virtual double getRandom(  ) {
         if( bp::override func_getRandom = this->get_override( "getRandom" ) )
             return func_getRandom(  );
-        else{
+        else
             return this->StochasticParameter< double >::getRandom(  );
-        }
     }
     
+    
     double default_getRandom(  ) {
         return StochasticParameter< double >::getRandom( );
     }
@@ -60,11 +60,11 @@ struct StochasticParameter_less__double__greater__wrapper : StochasticParameter<
     virtual void setToAverage(  ) {
         if( bp::override func_setToAverage = this->get_override( "setToAverage" ) )
             func_setToAverage(  );
-        else{
+        else
             this->StochasticParameter< double >::setToAverage(  );
-        }
     }
     
+    
     void default_setToAverage(  ) {
         StochasticParameter< double >::setToAverage( );
     }
diff --git a/Core/PythonAPI/src/StochasticSampledParameter.pypp.cpp b/Core/PythonAPI/src/StochasticSampledParameter.pypp.cpp
index 26fc062960c37ebca48c2c814e930d4a27534734..6868e315885f63e6e03aec579237a42e2dde5cfc 100644
--- a/Core/PythonAPI/src/StochasticSampledParameter.pypp.cpp
+++ b/Core/PythonAPI/src/StochasticSampledParameter.pypp.cpp
@@ -16,14 +16,14 @@ namespace bp = boost::python;
 
 struct StochasticSampledParameter_wrapper : StochasticSampledParameter, bp::wrapper< StochasticSampledParameter > {
 
-    StochasticSampledParameter_wrapper(::StochasticParameter< double > const & par, ::size_t nbins, double xmin, double xmax )
+    StochasticSampledParameter_wrapper(::StochasticParameter< double > const & par, ::std::size_t nbins, double xmin, double xmax )
     : StochasticSampledParameter( boost::ref(par), nbins, xmin, xmax )
       , bp::wrapper< StochasticSampledParameter >(){
         // constructor
     
     }
 
-    StochasticSampledParameter_wrapper(::StochasticParameter< double > const & par, ::size_t nbins, int nfwhm=3 )
+    StochasticSampledParameter_wrapper(::StochasticParameter< double > const & par, ::std::size_t nbins, int nfwhm=3 )
     : StochasticSampledParameter( boost::ref(par), nbins, nfwhm )
       , bp::wrapper< StochasticSampledParameter >(){
         // constructor
@@ -33,11 +33,11 @@ struct StochasticSampledParameter_wrapper : StochasticSampledParameter, bp::wrap
     virtual ::StochasticSampledParameter * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->StochasticSampledParameter::clone(  );
-        }
     }
     
+    
     ::StochasticSampledParameter * default_clone(  ) const  {
         return StochasticSampledParameter::clone( );
     }
@@ -45,11 +45,11 @@ struct StochasticSampledParameter_wrapper : StochasticSampledParameter, bp::wrap
     virtual double probabilityDensity( double value ) const  {
         if( bp::override func_probabilityDensity = this->get_override( "probabilityDensity" ) )
             return func_probabilityDensity( value );
-        else{
+        else
             return this->StochasticSampledParameter::probabilityDensity( value );
-        }
     }
     
+    
     double default_probabilityDensity( double value ) const  {
         return StochasticSampledParameter::probabilityDensity( value );
     }
@@ -57,11 +57,11 @@ struct StochasticSampledParameter_wrapper : StochasticSampledParameter, bp::wrap
     virtual void setToRandom(  ) {
         if( bp::override func_setToRandom = this->get_override( "setToRandom" ) )
             func_setToRandom(  );
-        else{
+        else
             this->StochasticSampledParameter::setToRandom(  );
-        }
     }
     
+    
     void default_setToRandom(  ) {
         StochasticSampledParameter::setToRandom( );
     }
@@ -69,11 +69,11 @@ struct StochasticSampledParameter_wrapper : StochasticSampledParameter, bp::wrap
     virtual double getFWHM(  ) const  {
         if( bp::override func_getFWHM = this->get_override( "getFWHM" ) )
             return func_getFWHM(  );
-        else{
+        else
             return this->StochasticParameter< double >::getFWHM(  );
-        }
     }
     
+    
     double default_getFWHM(  ) const  {
         return StochasticParameter< double >::getFWHM( );
     }
@@ -81,11 +81,11 @@ struct StochasticSampledParameter_wrapper : StochasticSampledParameter, bp::wrap
     virtual double getRandom(  ) {
         if( bp::override func_getRandom = this->get_override( "getRandom" ) )
             return func_getRandom(  );
-        else{
+        else
             return this->StochasticParameter< double >::getRandom(  );
-        }
     }
     
+    
     double default_getRandom(  ) {
         return StochasticParameter< double >::getRandom( );
     }
@@ -93,11 +93,11 @@ struct StochasticSampledParameter_wrapper : StochasticSampledParameter, bp::wrap
     virtual void setToAverage(  ) {
         if( bp::override func_setToAverage = this->get_override( "setToAverage" ) )
             func_setToAverage(  );
-        else{
+        else
             this->StochasticParameter< double >::setToAverage(  );
-        }
     }
     
+    
     void default_setToAverage(  ) {
         StochasticParameter< double >::setToAverage( );
     }
@@ -108,9 +108,9 @@ void register_StochasticSampledParameter_class(){
 
     { //::StochasticSampledParameter
         typedef bp::class_< StochasticSampledParameter_wrapper, bp::bases< StochasticParameter< double > >, boost::noncopyable > StochasticSampledParameter_exposer_t;
-        StochasticSampledParameter_exposer_t StochasticSampledParameter_exposer = StochasticSampledParameter_exposer_t( "StochasticSampledParameter", bp::init< StochasticParameter< double > const &, size_t, double, double >(( bp::arg("par"), bp::arg("nbins"), bp::arg("xmin"), bp::arg("xmax") )) );
+        StochasticSampledParameter_exposer_t StochasticSampledParameter_exposer = StochasticSampledParameter_exposer_t( "StochasticSampledParameter", bp::init< StochasticParameter< double > const &, std::size_t, double, double >(( bp::arg("par"), bp::arg("nbins"), bp::arg("xmin"), bp::arg("xmax") )) );
         bp::scope StochasticSampledParameter_scope( StochasticSampledParameter_exposer );
-        StochasticSampledParameter_exposer.def( bp::init< StochasticParameter< double > const &, size_t, bp::optional< int > >(( bp::arg("par"), bp::arg("nbins"), bp::arg("nfwhm")=(int)(3) )) );
+        StochasticSampledParameter_exposer.def( bp::init< StochasticParameter< double > const &, std::size_t, bp::optional< int > >(( bp::arg("par"), bp::arg("nbins"), bp::arg("nfwhm")=(int)(3) )) );
         { //::StochasticSampledParameter::clone
         
             typedef ::StochasticSampledParameter * ( ::StochasticSampledParameter::*clone_function_type )(  ) const;
@@ -125,7 +125,7 @@ void register_StochasticSampledParameter_class(){
         }
         { //::StochasticSampledParameter::getBinValue
         
-            typedef double ( ::StochasticSampledParameter::*getBinValue_function_type )( ::size_t ) const;
+            typedef double ( ::StochasticSampledParameter::*getBinValue_function_type )( ::std::size_t ) const;
             
             StochasticSampledParameter_exposer.def( 
                 "getBinValue"
@@ -135,7 +135,7 @@ void register_StochasticSampledParameter_class(){
         }
         { //::StochasticSampledParameter::getNbins
         
-            typedef ::size_t ( ::StochasticSampledParameter::*getNbins_function_type )(  ) const;
+            typedef ::std::size_t ( ::StochasticSampledParameter::*getNbins_function_type )(  ) const;
             
             StochasticSampledParameter_exposer.def( 
                 "getNbins"
@@ -144,7 +144,7 @@ void register_StochasticSampledParameter_class(){
         }
         { //::StochasticSampledParameter::getNormalizedProbability
         
-            typedef double ( ::StochasticSampledParameter::*getNormalizedProbability_function_type )( ::size_t ) const;
+            typedef double ( ::StochasticSampledParameter::*getNormalizedProbability_function_type )( ::std::size_t ) const;
             
             StochasticSampledParameter_exposer.def( 
                 "getNormalizedProbability"
@@ -154,7 +154,7 @@ void register_StochasticSampledParameter_class(){
         }
         { //::StochasticSampledParameter::probabilityBinDensity
         
-            typedef double ( ::StochasticSampledParameter::*probabilityBinDensity_function_type )( ::size_t ) const;
+            typedef double ( ::StochasticSampledParameter::*probabilityBinDensity_function_type )( ::std::size_t ) const;
             
             StochasticSampledParameter_exposer.def( 
                 "probabilityBinDensity"
diff --git a/Core/Samples/inc/IClusteredParticles.h b/Core/Samples/inc/IClusteredParticles.h
index 0875c621c7239223b60caaf57339b7bb304d646f..2b73a4acd155f3727fc42e087d2663d6534d68e5 100644
--- a/Core/Samples/inc/IClusteredParticles.h
+++ b/Core/Samples/inc/IClusteredParticles.h
@@ -41,11 +41,6 @@ public:
                 "Error! Not implemented exception");
     }
 
-    //! Calls the ISampleVisitor's visit method
-    virtual void accept(ISampleVisitor *p_visitor) const {
-        p_visitor->visit(this);
-    }
-
     virtual void setAmbientMaterial(const IMaterial *p_ambient_material)=0;
 
     //! @brief create a total form factor for the mesocrystal with a specific
diff --git a/Core/Samples/inc/ICompositeSample.h b/Core/Samples/inc/ICompositeSample.h
index 5eeb1c5d086ebff6d98585fabb2f6b7328664dc7..b6e7f7cee045b5a2c8f4bccf2d5053ae15df3994 100644
--- a/Core/Samples/inc/ICompositeSample.h
+++ b/Core/Samples/inc/ICompositeSample.h
@@ -24,10 +24,13 @@
 class BA_CORE_API_ ICompositeSample : public ISample
 {
 public:
+    typedef std::list<ISample*>::iterator iterator_t;
+    typedef std::list<ISample*>::const_iterator const_iterator_t;
+
     ICompositeSample() {}
     virtual ~ICompositeSample() {}
 
-    ICompositeSample *clone() const;
+    ICompositeSample *clone() const = 0;
 
     //! to confirm compound nature of given class
     virtual ICompositeSample *getCompositeSample() { return this; }
@@ -40,20 +43,16 @@ public:
     virtual void deregisterChild(ISample *sample);
 
     //! Begins iteration over local registered children.
-    std::list<ISample*>::iterator begin_shallow()
-    { return m_samples.begin(); }
+    iterator_t begin_shallow() { return m_samples.begin(); }
 
     //! Ends iteration over local registered children.
-    std::list<ISample*>::iterator end_shallow()
-    { return m_samples.end(); }
+    iterator_t end_shallow() { return m_samples.end(); }
 
     //! Begins read-only iteration over local registered children.
-    std::list<ISample*>::const_iterator begin_shallow() const
-    { return m_samples.begin(); }
+    const_iterator_t begin_shallow() const { return m_samples.begin(); }
 
     //! Ends read-only iteration over local registered children.
-    std::list<ISample*>::const_iterator end_shallow() const
-    { return m_samples.end(); }
+    const_iterator_t end_shallow() const { return m_samples.end(); }
 
     //! Returns number of children.
     virtual size_t size() const { return m_samples.size(); }
diff --git a/Core/Samples/inc/ISample.h b/Core/Samples/inc/ISample.h
index a2117bafc7975d38b3430d3531317b41b067c6e3..2c6be217469e1d4adb4417b0113ddb95649257c6 100644
--- a/Core/Samples/inc/ISample.h
+++ b/Core/Samples/inc/ISample.h
@@ -19,6 +19,7 @@
 #include "IParameterized.h"
 #include "ICloneable.h"
 #include "ISampleVisitor.h"
+#include "ISampleHierarchicalVisitor.h"
 
 class ICompositeSample;
 class DWBASimulation;
diff --git a/Core/Samples/inc/ISampleHierarchicalVisitor.h b/Core/Samples/inc/ISampleHierarchicalVisitor.h
new file mode 100644
index 0000000000000000000000000000000000000000..852a34c41139e180e80ea2a79b3410ba77ac2ad2
--- /dev/null
+++ b/Core/Samples/inc/ISampleHierarchicalVisitor.h
@@ -0,0 +1,191 @@
+// ************************************************************************** //
+//
+//  BornAgain: simulate and fit scattering at grazing incidence
+//
+//! @file      Samples/inc/ISampleHierarchicalVisitor.h
+//! @brief     Defines interface class ISampleHierarchicalVisitor.
+//!
+//! @homepage  http://apps.jcns.fz-juelich.de/BornAgain
+//! @license   GNU General Public License v3 or higher (see COPYING)
+//! @copyright Forschungszentrum Jülich GmbH 2013
+//! @authors   Scientific Computing Group at MLZ Garching
+//! @authors   C. Durniak, G. Pospelov, W. Van Herck, J. Wuttke
+//
+// ************************************************************************** //
+
+#ifndef ISAMPLEHIERARCHICALVISITOR_H
+#define ISAMPLEHIERARCHICALVISITOR_H
+
+#include "Exceptions.h"
+
+class ISample;
+// - the order according to the hierarchy as reported by IDE
+class ICompositeSample;
+// -
+class IClusteredParticles;
+class Crystal;
+// -
+class IDecoration;
+class ParticleDecoration;
+// -
+class Layer;
+// -
+class LayerInterface;
+// -
+class MultiLayer;
+// -
+class Particle;
+class LatticeBasis;
+class MesoCrystal;
+class ParticleCoreShell;
+// -
+class ParticleInfo;
+class DiffuseParticleInfo;
+class PositionParticleInfo;
+// -
+class IFormFactor;
+// -
+class FormFactorDWBAPol;
+class FormFactorDWBAPolConstZ;
+// -
+class FormFactorWeighted;
+// -
+class IFormFactorBorn;
+// -
+class FormFactorBox;
+class FormFactorCone;
+class FormFactorCrystal;
+class FormFactorCylinder;
+class FormFactorEllipsoid;
+class FormFactorFullSphere;
+class FormFactorFullSpheroid;
+class FormFactorGauss;
+class FormFactorHemiSpheroid;
+class FormFactorLorentz;
+class FormFactorParallelepiped;
+class FormFactorPrism3;
+class FormFactorPrism6;
+class FormFactorPyramid;
+class FormFactorSphere;
+class FormFactorSphereGaussianRadius;
+class FormFactorTetrahedron;
+class IFormFactorBornSeparable;
+// -
+class IFormFactorDecorator;
+// -
+class FormFactorDWBA;
+class FormFactorDWBAConstZ;
+class FormFactorDecoratorDebyeWaller;
+class FormFactorDecoratorFactor;
+class FormFactorDecoratorMaterial;
+class FormFactorDecoratorMultiPositionFactor;
+class FormFactorDecoratorPositionFactor;
+class FormFactorDecoratorTransformation;
+// -
+class IInterferenceFunction;
+class InterferenceFunction1DParaCrystal;
+class InterferenceFunction2DLattice;
+class InterferenceFunction2DParaCrystal;
+class InterferenceFunctionNone;
+// -
+class IRoughness;
+class LayerRoughness;
+
+
+class BA_CORE_API_ ISampleHierarchicalVisitor
+{
+public:
+    ISampleHierarchicalVisitor() : m_nlevel(0) {}
+    virtual ~ISampleHierarchicalVisitor(){}
+
+    // visiting methods (the order according to the hierarchy as reported by IDE)
+
+    virtual bool visit(const ISample *);
+
+    virtual bool visit(const ICompositeSample *);
+
+    virtual bool visit(const IClusteredParticles *);
+    virtual bool visit(const Crystal *);
+
+    virtual bool visit(const IDecoration *);
+    virtual bool visit(const ParticleDecoration *);
+
+    virtual bool visit(const Layer *);
+
+    virtual bool visit(const LayerInterface *);
+
+    virtual bool visit(const MultiLayer *);
+
+    virtual bool visit(const Particle *);
+    virtual bool visit(const LatticeBasis *);
+    virtual bool visit(const MesoCrystal *);
+    virtual bool visit(const ParticleCoreShell *);
+
+    virtual bool visit(const ParticleInfo *);
+    virtual bool visit(const DiffuseParticleInfo *);
+    virtual bool visit(const PositionParticleInfo *);
+
+    virtual bool visit(const IFormFactor *);
+
+    virtual bool visit(const FormFactorDWBAPol *);
+    virtual bool visit(const FormFactorDWBAPolConstZ *);
+
+    virtual bool visit(const FormFactorWeighted *);
+
+    virtual bool visit(const IFormFactorBorn *);
+
+    virtual bool visit(const FormFactorBox *);
+    virtual bool visit(const FormFactorCone *);
+    virtual bool visit(const FormFactorCrystal *);
+    virtual bool visit(const FormFactorCylinder *);
+    virtual bool visit(const FormFactorEllipsoid *);
+    virtual bool visit(const FormFactorFullSphere *);
+    virtual bool visit(const FormFactorFullSpheroid *);
+    virtual bool visit(const FormFactorGauss *);
+    virtual bool visit(const FormFactorHemiSpheroid *);
+    virtual bool visit(const FormFactorLorentz *);
+    virtual bool visit(const FormFactorParallelepiped *);
+    virtual bool visit(const FormFactorPrism3 *);
+    virtual bool visit(const FormFactorPrism6 *);
+    virtual bool visit(const FormFactorPyramid *);
+    virtual bool visit(const FormFactorSphere *);
+    virtual bool visit(const FormFactorSphereGaussianRadius *);
+    virtual bool visit(const FormFactorTetrahedron *);
+    virtual bool visit(const IFormFactorBornSeparable *);
+
+    virtual bool visit(const IFormFactorDecorator *);
+
+    virtual bool visit(const FormFactorDWBA *);
+    virtual bool visit(const FormFactorDWBAConstZ *);
+    virtual bool visit(const FormFactorDecoratorDebyeWaller *);
+    virtual bool visit(const FormFactorDecoratorFactor *);
+    virtual bool visit(const FormFactorDecoratorMaterial *);
+    virtual bool visit(const FormFactorDecoratorMultiPositionFactor *);
+    virtual bool visit(const FormFactorDecoratorPositionFactor *);
+    virtual bool visit(const FormFactorDecoratorTransformation *);
+
+    virtual bool visit(const IInterferenceFunction *);
+    virtual bool visit(const InterferenceFunction1DParaCrystal *);
+    virtual bool visit(const InterferenceFunction2DLattice *);
+    virtual bool visit(const InterferenceFunction2DParaCrystal *);
+    virtual bool visit(const InterferenceFunctionNone *);
+
+    virtual bool visit(const IRoughness *);
+    virtual bool visit(const LayerRoughness *);
+
+
+    // enter and leave methods
+    bool visitEnter(const ICompositeSample *);
+    bool visitLeave(const ICompositeSample *);
+
+    //! return current level of the visitor
+    int getLevel() const { return m_nlevel; }
+
+protected:
+    int m_nlevel;
+};
+
+
+
+#endif // ISAMPLEHIERARCHICALVISITOR_H
+
diff --git a/Core/Samples/inc/LayerInterface.h b/Core/Samples/inc/LayerInterface.h
index 76a240a5e09fc3b8fb9531f08d36c474fcf4fb33..ba9a96d4ed87b0f5ec8a701288fc069aaef4140f 100644
--- a/Core/Samples/inc/LayerInterface.h
+++ b/Core/Samples/inc/LayerInterface.h
@@ -28,6 +28,8 @@ class LayerInterface : public ICompositeSample
 public:
     virtual ~LayerInterface();
 
+    LayerInterface *clone() const;
+
     //! calls the ISampleVisitor's visit method
     virtual void accept(ISampleVisitor *visitor) const { visitor->visit(this); }
 
diff --git a/Core/Samples/src/ICompositeSample.cpp b/Core/Samples/src/ICompositeSample.cpp
index 60d135b89679e88d5cd8e583eaf7ffca607740e5..5eddbb6df3928205d7ff423938553c319bdd7bd0 100644
--- a/Core/Samples/src/ICompositeSample.cpp
+++ b/Core/Samples/src/ICompositeSample.cpp
@@ -19,21 +19,16 @@
 #include <sstream>
 #include "Exceptions.h"
 
-ICompositeSample *ICompositeSample::clone() const
-{
-    throw NotImplementedException("ICompositeSample::clone() -> "
-                                  "Error: not implemented");
-}
 
 //! Registers child in the container
 
 void ICompositeSample::registerChild(ISample *sample)
 {
-    if(!sample) { // QUESTION: why not throw exception ???
-        msglog(MSG::ERROR) << "ICompositeSample::registerChild() -> "
-            "Attempt to register NULL child in this " << *this;
+    if(sample) {
+        m_samples.push_back(sample);
+    }else {
+        throw NullPointerException("ICompositeSample::registerChild -> Error. Null pointer.");
     }
-    m_samples.push_back(sample);
 }
 
 //! remove registere child from the container
diff --git a/Core/Samples/src/ISampleHierarchicalVisitor.cpp b/Core/Samples/src/ISampleHierarchicalVisitor.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..4eb51dcae03d394dcbd21e15fc997e8a6ada26fb
--- /dev/null
+++ b/Core/Samples/src/ISampleHierarchicalVisitor.cpp
@@ -0,0 +1,292 @@
+#include "ISampleHierarchicalVisitor.h"
+
+
+bool ISampleHierarchicalVisitor::visit(const ISample *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const ISample *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const ICompositeSample *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const ICompositeSample *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const IClusteredParticles *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const IClusteredParticles *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const Crystal *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const Crystal *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const IDecoration *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const IDecoration *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const ParticleDecoration *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const ParticleDecoration *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const Layer *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const Layer *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const LayerInterface *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const LayerInterface *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const MultiLayer *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const MultiLayer *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const Particle *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const Particle *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const LatticeBasis *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const LatticeBasis *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const MesoCrystal *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const MesoCrystal *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const ParticleCoreShell *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const ParticleCoreShell *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const ParticleInfo *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const ParticleInfo *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const DiffuseParticleInfo *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const DiffuseParticleInfo *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const PositionParticleInfo *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const PositionParticleInfo *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const IFormFactor *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const IFormFactor *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorDWBAPol *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorDWBAPol *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorDWBAPolConstZ *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorDWBAPolConstZ *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorWeighted *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorWeighted *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const IFormFactorBorn *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const IFormFactorBorn *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorBox *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorBox *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorCone *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorCone *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorCrystal *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorCrystal *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorCylinder *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorCylinder *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorEllipsoid *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorEllipsoid *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorFullSphere *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorFullSphere *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorFullSpheroid *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorFullSpheroid *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorGauss *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorGauss *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorHemiSpheroid *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit const FormFactorHemiSpheroid *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorLorentz *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorLorentz *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorParallelepiped *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorParallelepiped *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorPrism3 *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorPrism3 *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorPrism6 *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorPrism6 *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorPyramid *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorPyramid *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorSphere *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorSphere *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorSphereGaussianRadius *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorSphereGaussianRadius *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorTetrahedron *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorTetrahedron *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const IFormFactorBornSeparable *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const IFormFactorBornSeparable *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const IFormFactorDecorator *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const IFormFactorDecorator *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorDWBA *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorDWBA *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorDWBAConstZ *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorDWBAConstZ *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorDecoratorDebyeWaller *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorDecoratorDebyeWaller *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorDecoratorFactor *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorDecoratorFactor *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorDecoratorMaterial *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorDecoratorMaterial *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorDecoratorMultiPositionFactor *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorDecoratorMultiPositionFactor *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorDecoratorPositionFactor *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorDecoratorPositionFactor *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const FormFactorDecoratorTransformation *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const FormFactorDecoratorTransformation *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const IInterferenceFunction *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const IInterferenceFunction *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const InterferenceFunction1DParaCrystal *){
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const InterferenceFunction1DParaCrystal *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const InterferenceFunction2DLattice *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const InterferenceFunction2DLattice *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const InterferenceFunction2DParaCrystal *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const InterferenceFunction2DParaCrystal *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const InterferenceFunctionNone *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const InterferenceFunctionNone *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const IRoughness *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const IRoughness *) -> Error. Not implemented.");
+}
+
+bool ISampleHierarchicalVisitor::visit(const LayerRoughness *)
+{
+    throw NotImplementedException("ISampleHierarchicalVisitor::visit(const LayerRoughness *) -> Error. Not implemented.");
+}
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+bool  ISampleHierarchicalVisitor::visitEnter(const ICompositeSample *)
+{
+    m_nlevel++;
+    return true;
+}
+
+bool  ISampleHierarchicalVisitor::visitLeave(const ICompositeSample *)
+{
+    m_nlevel--;
+    return true;
+}
diff --git a/Core/Samples/src/LayerInterface.cpp b/Core/Samples/src/LayerInterface.cpp
index c5e363ab4b9f2310251a989a970c3098fb47ac34..17c6d67c1790ffd9356eb1d781cf75a4fc04f5a4 100644
--- a/Core/Samples/src/LayerInterface.cpp
+++ b/Core/Samples/src/LayerInterface.cpp
@@ -31,6 +31,10 @@ LayerInterface::~LayerInterface()
     delete m_roughness;
 }
 
+LayerInterface *LayerInterface::clone() const
+{
+    throw NotImplementedException("LayerInterface::clone() -> Not allowed to clone.");
+}
 
 LayerInterface *LayerInterface::createSmoothInterface(const Layer *p_layer_top, const Layer *p_layer_bottom)
 {
diff --git a/Core/python_module.pri b/Core/python_module.pri
index 6546e3ba35a630a6614ba116c853f8c73b4f51fe..ad5fb6536af69ef782ab7839ea80369e6fcf1c80 100644
--- a/Core/python_module.pri
+++ b/Core/python_module.pri
@@ -4,95 +4,95 @@ HEADERS +=  \
     PythonAPI/inc/PythonOutputData.h \ 
     PythonAPI/inc/PythonCoreExposer.h \ 
     PythonAPI/inc/PythonCoreList.h \ 
-    PythonAPI/inc/AxisBin.pypp.h \
-    PythonAPI/inc/AxisDouble.pypp.h \
-    PythonAPI/inc/Beam.pypp.h \
-    PythonAPI/inc/Bin1D.pypp.h \
-    PythonAPI/inc/Bin1DCVector.pypp.h \
-    PythonAPI/inc/Crystal.pypp.h \
+    PythonAPI/inc/RotateZ_3D.pypp.h \
+    PythonAPI/inc/IFTDistribution2D.pypp.h \
     PythonAPI/inc/Detector.pypp.h \
-    PythonAPI/inc/FTDistribution2DCauchy.pypp.h \
-    PythonAPI/inc/FormFactorBox.pypp.h \
-    PythonAPI/inc/FormFactorCone.pypp.h \
-    PythonAPI/inc/FormFactorCrystal.pypp.h \
+    PythonAPI/inc/LatticeBasis.pypp.h \
+    PythonAPI/inc/ParticleCoreShell.pypp.h \
+    PythonAPI/inc/Beam.pypp.h \
+    PythonAPI/inc/Lattice.pypp.h \
     PythonAPI/inc/FormFactorCylinder.pypp.h \
-    PythonAPI/inc/FormFactorDecoratorDebyeWaller.pypp.h \
-    PythonAPI/inc/FormFactorEllipsoid.pypp.h \
-    PythonAPI/inc/FormFactorFullSphere.pypp.h \
-    PythonAPI/inc/FormFactorFullSpheroid.pypp.h \
-    PythonAPI/inc/FormFactorGauss.pypp.h \
-    PythonAPI/inc/FormFactorHemiSpheroid.pypp.h \
-    PythonAPI/inc/FormFactorLorentz.pypp.h \
-    PythonAPI/inc/FormFactorParallelepiped.pypp.h \
-    PythonAPI/inc/FormFactorPrism3.pypp.h \
-    PythonAPI/inc/FormFactorPrism6.pypp.h \
-    PythonAPI/inc/FormFactorPyramid.pypp.h \
-    PythonAPI/inc/FormFactorSphere.pypp.h \
-    PythonAPI/inc/FormFactorSphereGaussianRadius.pypp.h \
+    PythonAPI/inc/ICloneable.pypp.h \
+    PythonAPI/inc/StochasticSampledParameter.pypp.h \
     PythonAPI/inc/HomogeneousMaterial.pypp.h \
+    PythonAPI/inc/vector_integer_t.pypp.h \
+    PythonAPI/inc/AxisDouble.pypp.h \
     PythonAPI/inc/IAxis.pypp.h \
-    PythonAPI/inc/ICloneable.pypp.h \
-    PythonAPI/inc/IClusteredParticles.pypp.h \
-    PythonAPI/inc/ICompositeSample.pypp.h \
-    PythonAPI/inc/IDecoration.pypp.h \
-    PythonAPI/inc/IDetectorResolution.pypp.h \
-    PythonAPI/inc/IFTDistribution2D.pypp.h \
+    PythonAPI/inc/Layer.pypp.h \
     PythonAPI/inc/IFormFactor.pypp.h \
-    PythonAPI/inc/IFormFactorBorn.pypp.h \
-    PythonAPI/inc/IFormFactorDecorator.pypp.h \
-    PythonAPI/inc/IInterferenceFunction.pypp.h \
-    PythonAPI/inc/IMaterial.pypp.h \
     PythonAPI/inc/IObservable.pypp.h \
-    PythonAPI/inc/IObserver.pypp.h \
-    PythonAPI/inc/IParameterized.pypp.h \
-    PythonAPI/inc/IResolutionFunction2D.pypp.h \
-    PythonAPI/inc/ISample.pypp.h \
+    PythonAPI/inc/FormFactorParallelepiped.pypp.h \
+    PythonAPI/inc/RealParameterWrapper.pypp.h \
+    PythonAPI/inc/MaterialManager.pypp.h \
+    PythonAPI/inc/ResolutionFunction2DSimple.pypp.h \
+    PythonAPI/inc/SimulationParameters.pypp.h \
+    PythonAPI/inc/AxisBin.pypp.h \
+    PythonAPI/inc/FormFactorGauss.pypp.h \
+    PythonAPI/inc/FormFactorFullSpheroid.pypp.h \
+    PythonAPI/inc/PythonInterface_global_variables.pypp.h \
     PythonAPI/inc/ISampleBuilder.pypp.h \
-    PythonAPI/inc/ISelectionRule.pypp.h \
-    PythonAPI/inc/ITransform3D.pypp.h \
-    PythonAPI/inc/Instrument.pypp.h \
-    PythonAPI/inc/IntensityData.pypp.h \
-    PythonAPI/inc/InterferenceFunction1DParaCrystal.pypp.h \
+    PythonAPI/inc/StochasticParameter_t.pypp.h \
+    PythonAPI/inc/StochasticDoubleGaussian.pypp.h \
+    PythonAPI/inc/FormFactorPrism6.pypp.h \
     PythonAPI/inc/InterferenceFunction2DLattice.pypp.h \
-    PythonAPI/inc/InterferenceFunction2DParaCrystal.pypp.h \
-    PythonAPI/inc/InterferenceFunctionNone.pypp.h \
-    PythonAPI/inc/Lattice.pypp.h \
-    PythonAPI/inc/Lattice2DIFParameters.pypp.h \
-    PythonAPI/inc/LatticeBasis.pypp.h \
-    PythonAPI/inc/Layer.pypp.h \
-    PythonAPI/inc/LayerInterface.pypp.h \
-    PythonAPI/inc/LayerRoughness.pypp.h \
-    PythonAPI/inc/MaterialManager.pypp.h \
-    PythonAPI/inc/MesoCrystal.pypp.h \
+    PythonAPI/inc/FormFactorPyramid.pypp.h \
+    PythonAPI/inc/FormFactorBox.pypp.h \
+    PythonAPI/inc/IResolutionFunction2D.pypp.h \
+    PythonAPI/inc/IFormFactorBorn.pypp.h \
     PythonAPI/inc/MultiLayer.pypp.h \
-    PythonAPI/inc/OutputDataIOFactory.pypp.h \
+    PythonAPI/inc/ITransform3D.pypp.h \
+    PythonAPI/inc/ParticleDecoration.pypp.h \
+    PythonAPI/inc/IDecoration.pypp.h \
+    PythonAPI/inc/FTDistribution2DCauchy.pypp.h \
+    PythonAPI/inc/ICompositeSample.pypp.h \
+    PythonAPI/inc/cvector_t.pypp.h \
     PythonAPI/inc/ParameterPool.pypp.h \
     PythonAPI/inc/Particle.pypp.h \
-    PythonAPI/inc/ParticleBuilder.pypp.h \
-    PythonAPI/inc/ParticleCoreShell.pypp.h \
-    PythonAPI/inc/ParticleDecoration.pypp.h \
+    PythonAPI/inc/FormFactorCone.pypp.h \
+    PythonAPI/inc/FormFactorPrism3.pypp.h \
+    PythonAPI/inc/InterferenceFunction2DParaCrystal.pypp.h \
+    PythonAPI/inc/vdouble1d_t.pypp.h \
+    PythonAPI/inc/MesoCrystal.pypp.h \
+    PythonAPI/inc/RotateY_3D.pypp.h \
+    PythonAPI/inc/FormFactorDecoratorDebyeWaller.pypp.h \
+    PythonAPI/inc/vector_IFormFactorPtr_t.pypp.h \
+    PythonAPI/inc/IMaterial.pypp.h \
+    PythonAPI/inc/IFormFactorDecorator.pypp.h \
+    PythonAPI/inc/Instrument.pypp.h \
+    PythonAPI/inc/IDetectorResolution.pypp.h \
+    PythonAPI/inc/ISelectionRule.pypp.h \
+    PythonAPI/inc/Bin1D.pypp.h \
     PythonAPI/inc/ParticleInfo.pypp.h \
+    PythonAPI/inc/vector_longinteger_t.pypp.h \
+    PythonAPI/inc/FormFactorHemiSpheroid.pypp.h \
+    PythonAPI/inc/LayerInterface.pypp.h \
+    PythonAPI/inc/FormFactorFullSphere.pypp.h \
     PythonAPI/inc/PositionParticleInfo.pypp.h \
-    PythonAPI/inc/PythonInterface_free_functions.pypp.h \
-    PythonAPI/inc/PythonInterface_global_variables.pypp.h \
-    PythonAPI/inc/RealParameterWrapper.pypp.h \
-    PythonAPI/inc/ResolutionFunction2DSimple.pypp.h \
-    PythonAPI/inc/RotateY_3D.pypp.h \
-    PythonAPI/inc/RotateZ_3D.pypp.h \
-    PythonAPI/inc/SimpleSelectionRule.pypp.h \
-    PythonAPI/inc/Simulation.pypp.h \
-    PythonAPI/inc/SimulationParameters.pypp.h \
+    PythonAPI/inc/LayerRoughness.pypp.h \
+    PythonAPI/inc/FormFactorCrystal.pypp.h \
+    PythonAPI/inc/IntensityData.pypp.h \
+    PythonAPI/inc/IParameterized.pypp.h \
+    PythonAPI/inc/Bin1DCVector.pypp.h \
     PythonAPI/inc/StochasticDoubleGate.pypp.h \
-    PythonAPI/inc/StochasticDoubleGaussian.pypp.h \
-    PythonAPI/inc/StochasticParameter_t.pypp.h \
-    PythonAPI/inc/StochasticSampledParameter.pypp.h \
-    PythonAPI/inc/cvector_t.pypp.h \
-    PythonAPI/inc/kvector_t.pypp.h \
-    PythonAPI/inc/vdouble1d_t.pypp.h \
-    PythonAPI/inc/vector_IFormFactorPtr_t.pypp.h \
-    PythonAPI/inc/vector_integer_t.pypp.h \
+    PythonAPI/inc/IClusteredParticles.pypp.h \
+    PythonAPI/inc/IInterferenceFunction.pypp.h \
+    PythonAPI/inc/SimpleSelectionRule.pypp.h \
+    PythonAPI/inc/FormFactorLorentz.pypp.h \
+    PythonAPI/inc/OutputDataIOFactory.pypp.h \
     PythonAPI/inc/vector_kvector_t.pypp.h \
-    PythonAPI/inc/vector_longinteger_t.pypp.h \
+    PythonAPI/inc/InterferenceFunction1DParaCrystal.pypp.h \
+    PythonAPI/inc/InterferenceFunctionNone.pypp.h \
+    PythonAPI/inc/Crystal.pypp.h \
+    PythonAPI/inc/PythonInterface_free_functions.pypp.h \
+    PythonAPI/inc/kvector_t.pypp.h \
+    PythonAPI/inc/FormFactorEllipsoid.pypp.h \
+    PythonAPI/inc/Simulation.pypp.h \
+    PythonAPI/inc/ISample.pypp.h \
+    PythonAPI/inc/IObserver.pypp.h \
+    PythonAPI/inc/ParticleBuilder.pypp.h \
+    PythonAPI/inc/FormFactorSphereGaussianRadius.pypp.h \
+    PythonAPI/inc/Lattice2DIFParameters.pypp.h \
+    PythonAPI/inc/FormFactorSphere.pypp.h \
     PythonAPI/inc/__call_policies.pypp.hpp \
     PythonAPI/inc/__convenience.pypp.hpp 
 
@@ -100,95 +100,95 @@ SOURCES +=  \
     PythonAPI/src/PythonModule.cpp \ 
     PythonAPI/src/PythonListConverter.cpp \ 
     PythonAPI/src/PythonOutputData.cpp \ 
-    PythonAPI/src/AxisBin.pypp.cpp \
-    PythonAPI/src/AxisDouble.pypp.cpp \
-    PythonAPI/src/Beam.pypp.cpp \
-    PythonAPI/src/Bin1D.pypp.cpp \
-    PythonAPI/src/Bin1DCVector.pypp.cpp \
-    PythonAPI/src/Crystal.pypp.cpp \
-    PythonAPI/src/Detector.pypp.cpp \
-    PythonAPI/src/FTDistribution2DCauchy.pypp.cpp \
-    PythonAPI/src/FormFactorBox.pypp.cpp \
-    PythonAPI/src/FormFactorCone.pypp.cpp \
-    PythonAPI/src/FormFactorCrystal.pypp.cpp \
-    PythonAPI/src/FormFactorCylinder.pypp.cpp \
-    PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp \
-    PythonAPI/src/FormFactorEllipsoid.pypp.cpp \
-    PythonAPI/src/FormFactorFullSphere.pypp.cpp \
-    PythonAPI/src/FormFactorFullSpheroid.pypp.cpp \
-    PythonAPI/src/FormFactorGauss.pypp.cpp \
-    PythonAPI/src/FormFactorHemiSpheroid.pypp.cpp \
+    PythonAPI/src/ParticleCoreShell.pypp.cpp \
+    PythonAPI/src/kvector_t.pypp.cpp \
+    PythonAPI/src/vector_IFormFactorPtr_t.pypp.cpp \
+    PythonAPI/src/FormFactorSphere.pypp.cpp \
     PythonAPI/src/FormFactorLorentz.pypp.cpp \
+    PythonAPI/src/FormFactorCylinder.pypp.cpp \
+    PythonAPI/src/ISelectionRule.pypp.cpp \
+    PythonAPI/src/InterferenceFunctionNone.pypp.cpp \
+    PythonAPI/src/IResolutionFunction2D.pypp.cpp \
+    PythonAPI/src/ITransform3D.pypp.cpp \
+    PythonAPI/src/Layer.pypp.cpp \
+    PythonAPI/src/Lattice2DIFParameters.pypp.cpp \
     PythonAPI/src/FormFactorParallelepiped.pypp.cpp \
-    PythonAPI/src/FormFactorPrism3.pypp.cpp \
+    PythonAPI/src/ISample.pypp.cpp \
+    PythonAPI/src/MultiLayer.pypp.cpp \
     PythonAPI/src/FormFactorPrism6.pypp.cpp \
     PythonAPI/src/FormFactorPyramid.pypp.cpp \
-    PythonAPI/src/FormFactorSphere.pypp.cpp \
-    PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp \
-    PythonAPI/src/HomogeneousMaterial.pypp.cpp \
     PythonAPI/src/IAxis.pypp.cpp \
-    PythonAPI/src/ICloneable.pypp.cpp \
-    PythonAPI/src/IClusteredParticles.pypp.cpp \
-    PythonAPI/src/ICompositeSample.pypp.cpp \
-    PythonAPI/src/IDecoration.pypp.cpp \
-    PythonAPI/src/IDetectorResolution.pypp.cpp \
-    PythonAPI/src/IFTDistribution2D.pypp.cpp \
-    PythonAPI/src/IFormFactor.pypp.cpp \
-    PythonAPI/src/IFormFactorBorn.pypp.cpp \
+    PythonAPI/src/vdouble1d_t.pypp.cpp \
     PythonAPI/src/IFormFactorDecorator.pypp.cpp \
-    PythonAPI/src/IInterferenceFunction.pypp.cpp \
-    PythonAPI/src/IMaterial.pypp.cpp \
-    PythonAPI/src/IObservable.pypp.cpp \
-    PythonAPI/src/IObserver.pypp.cpp \
+    PythonAPI/src/Bin1D.pypp.cpp \
     PythonAPI/src/IParameterized.pypp.cpp \
-    PythonAPI/src/IResolutionFunction2D.pypp.cpp \
-    PythonAPI/src/ISample.pypp.cpp \
+    PythonAPI/src/PythonInterface_global_variables.pypp.cpp \
+    PythonAPI/src/IInterferenceFunction.pypp.cpp \
+    PythonAPI/src/RealParameterWrapper.pypp.cpp \
+    PythonAPI/src/PythonInterface_free_functions.pypp.cpp \
+    PythonAPI/src/MesoCrystal.pypp.cpp \
+    PythonAPI/src/FormFactorCrystal.pypp.cpp \
     PythonAPI/src/ISampleBuilder.pypp.cpp \
-    PythonAPI/src/ISelectionRule.pypp.cpp \
-    PythonAPI/src/ITransform3D.pypp.cpp \
-    PythonAPI/src/Instrument.pypp.cpp \
-    PythonAPI/src/IntensityData.pypp.cpp \
-    PythonAPI/src/InterferenceFunction1DParaCrystal.pypp.cpp \
-    PythonAPI/src/InterferenceFunction2DLattice.pypp.cpp \
-    PythonAPI/src/InterferenceFunction2DParaCrystal.pypp.cpp \
-    PythonAPI/src/InterferenceFunctionNone.pypp.cpp \
+    PythonAPI/src/StochasticSampledParameter.pypp.cpp \
+    PythonAPI/src/FormFactorFullSphere.pypp.cpp \
+    PythonAPI/src/StochasticParameter_t.pypp.cpp \
+    PythonAPI/src/AxisBin.pypp.cpp \
+    PythonAPI/src/SimpleSelectionRule.pypp.cpp \
+    PythonAPI/src/IDecoration.pypp.cpp \
+    PythonAPI/src/FTDistribution2DCauchy.pypp.cpp \
+    PythonAPI/src/IFTDistribution2D.pypp.cpp \
+    PythonAPI/src/ICloneable.pypp.cpp \
+    PythonAPI/src/ParticleInfo.pypp.cpp \
+    PythonAPI/src/ParticleDecoration.pypp.cpp \
+    PythonAPI/src/FormFactorSphereGaussianRadius.pypp.cpp \
+    PythonAPI/src/IClusteredParticles.pypp.cpp \
+    PythonAPI/src/Particle.pypp.cpp \
+    PythonAPI/src/IObserver.pypp.cpp \
     PythonAPI/src/Lattice.pypp.cpp \
-    PythonAPI/src/Lattice2DIFParameters.pypp.cpp \
-    PythonAPI/src/LatticeBasis.pypp.cpp \
-    PythonAPI/src/Layer.pypp.cpp \
-    PythonAPI/src/LayerInterface.pypp.cpp \
-    PythonAPI/src/LayerRoughness.pypp.cpp \
-    PythonAPI/src/MaterialManager.pypp.cpp \
-    PythonAPI/src/MesoCrystal.pypp.cpp \
-    PythonAPI/src/MultiLayer.pypp.cpp \
+    PythonAPI/src/vector_longinteger_t.pypp.cpp \
+    PythonAPI/src/IMaterial.pypp.cpp \
+    PythonAPI/src/InterferenceFunction2DLattice.pypp.cpp \
+    PythonAPI/src/ResolutionFunction2DSimple.pypp.cpp \
+    PythonAPI/src/Detector.pypp.cpp \
+    PythonAPI/src/Bin1DCVector.pypp.cpp \
+    PythonAPI/src/HomogeneousMaterial.pypp.cpp \
+    PythonAPI/src/FormFactorHemiSpheroid.pypp.cpp \
+    PythonAPI/src/vector_integer_t.pypp.cpp \
     PythonAPI/src/OutputDataIOFactory.pypp.cpp \
     PythonAPI/src/ParameterPool.pypp.cpp \
-    PythonAPI/src/Particle.pypp.cpp \
+    PythonAPI/src/InterferenceFunction2DParaCrystal.pypp.cpp \
+    PythonAPI/src/FormFactorCone.pypp.cpp \
+    PythonAPI/src/Simulation.pypp.cpp \
+    PythonAPI/src/IntensityData.pypp.cpp \
+    PythonAPI/src/AxisDouble.pypp.cpp \
+    PythonAPI/src/FormFactorFullSpheroid.pypp.cpp \
+    PythonAPI/src/MaterialManager.pypp.cpp \
+    PythonAPI/src/IObservable.pypp.cpp \
     PythonAPI/src/ParticleBuilder.pypp.cpp \
-    PythonAPI/src/ParticleCoreShell.pypp.cpp \
-    PythonAPI/src/ParticleDecoration.pypp.cpp \
-    PythonAPI/src/ParticleInfo.pypp.cpp \
+    PythonAPI/src/Instrument.pypp.cpp \
+    PythonAPI/src/FormFactorGauss.pypp.cpp \
+    PythonAPI/src/FormFactorPrism3.pypp.cpp \
     PythonAPI/src/PositionParticleInfo.pypp.cpp \
-    PythonAPI/src/PythonInterface_free_functions.pypp.cpp \
-    PythonAPI/src/PythonInterface_global_variables.pypp.cpp \
-    PythonAPI/src/RealParameterWrapper.pypp.cpp \
-    PythonAPI/src/ResolutionFunction2DSimple.pypp.cpp \
-    PythonAPI/src/RotateY_3D.pypp.cpp \
+    PythonAPI/src/ICompositeSample.pypp.cpp \
+    PythonAPI/src/Beam.pypp.cpp \
+    PythonAPI/src/FormFactorDecoratorDebyeWaller.pypp.cpp \
+    PythonAPI/src/IFormFactor.pypp.cpp \
+    PythonAPI/src/FormFactorBox.pypp.cpp \
+    PythonAPI/src/IDetectorResolution.pypp.cpp \
     PythonAPI/src/RotateZ_3D.pypp.cpp \
-    PythonAPI/src/SimpleSelectionRule.pypp.cpp \
-    PythonAPI/src/Simulation.pypp.cpp \
-    PythonAPI/src/SimulationParameters.pypp.cpp \
+    PythonAPI/src/LayerInterface.pypp.cpp \
+    PythonAPI/src/InterferenceFunction1DParaCrystal.pypp.cpp \
+    PythonAPI/src/RotateY_3D.pypp.cpp \
     PythonAPI/src/StochasticDoubleGate.pypp.cpp \
-    PythonAPI/src/StochasticDoubleGaussian.pypp.cpp \
-    PythonAPI/src/StochasticParameter_t.pypp.cpp \
-    PythonAPI/src/StochasticSampledParameter.pypp.cpp \
     PythonAPI/src/cvector_t.pypp.cpp \
-    PythonAPI/src/kvector_t.pypp.cpp \
-    PythonAPI/src/vdouble1d_t.pypp.cpp \
-    PythonAPI/src/vector_IFormFactorPtr_t.pypp.cpp \
-    PythonAPI/src/vector_integer_t.pypp.cpp \
+    PythonAPI/src/SimulationParameters.pypp.cpp \
+    PythonAPI/src/IFormFactorBorn.pypp.cpp \
     PythonAPI/src/vector_kvector_t.pypp.cpp \
-    PythonAPI/src/vector_longinteger_t.pypp.cpp 
+    PythonAPI/src/FormFactorEllipsoid.pypp.cpp \
+    PythonAPI/src/LayerRoughness.pypp.cpp \
+    PythonAPI/src/LatticeBasis.pypp.cpp \
+    PythonAPI/src/StochasticDoubleGaussian.pypp.cpp \
+    PythonAPI/src/Crystal.pypp.cpp 
 
 INCLUDEPATH += ./PythonAPI/inc 
 DEPENDPATH  += ./PythonAPI/inc 
diff --git a/Fit/PythonAPI/src/AttLimits.pypp.cpp b/Fit/PythonAPI/src/AttLimits.pypp.cpp
index e9ebeee424eb2c646fdbec7c49aea06ddc19540b..9faa92236e7264e872e5aa990419aca05dc8b399 100644
--- a/Fit/PythonAPI/src/AttLimits.pypp.cpp
+++ b/Fit/PythonAPI/src/AttLimits.pypp.cpp
@@ -33,11 +33,11 @@ struct AttLimits_wrapper : AttLimits, bp::wrapper< AttLimits > {
     virtual double getLowerLimit(  ) const  {
         if( bp::override func_getLowerLimit = this->get_override( "getLowerLimit" ) )
             return func_getLowerLimit(  );
-        else{
+        else
             return this->AttLimits::getLowerLimit(  );
-        }
     }
     
+    
     double default_getLowerLimit(  ) const  {
         return AttLimits::getLowerLimit( );
     }
@@ -45,11 +45,11 @@ struct AttLimits_wrapper : AttLimits, bp::wrapper< AttLimits > {
     virtual double getUpperLimit(  ) const  {
         if( bp::override func_getUpperLimit = this->get_override( "getUpperLimit" ) )
             return func_getUpperLimit(  );
-        else{
+        else
             return this->AttLimits::getUpperLimit(  );
-        }
     }
     
+    
     double default_getUpperLimit(  ) const  {
         return AttLimits::getUpperLimit( );
     }
@@ -57,11 +57,11 @@ struct AttLimits_wrapper : AttLimits, bp::wrapper< AttLimits > {
     virtual bool hasLowerAndUpperLimits(  ) const  {
         if( bp::override func_hasLowerAndUpperLimits = this->get_override( "hasLowerAndUpperLimits" ) )
             return func_hasLowerAndUpperLimits(  );
-        else{
+        else
             return this->AttLimits::hasLowerAndUpperLimits(  );
-        }
     }
     
+    
     bool default_hasLowerAndUpperLimits(  ) const  {
         return AttLimits::hasLowerAndUpperLimits( );
     }
@@ -69,11 +69,11 @@ struct AttLimits_wrapper : AttLimits, bp::wrapper< AttLimits > {
     virtual bool hasLowerLimit(  ) const  {
         if( bp::override func_hasLowerLimit = this->get_override( "hasLowerLimit" ) )
             return func_hasLowerLimit(  );
-        else{
+        else
             return this->AttLimits::hasLowerLimit(  );
-        }
     }
     
+    
     bool default_hasLowerLimit(  ) const  {
         return AttLimits::hasLowerLimit( );
     }
@@ -81,11 +81,11 @@ struct AttLimits_wrapper : AttLimits, bp::wrapper< AttLimits > {
     virtual bool hasUpperLimit(  ) const  {
         if( bp::override func_hasUpperLimit = this->get_override( "hasUpperLimit" ) )
             return func_hasUpperLimit(  );
-        else{
+        else
             return this->AttLimits::hasUpperLimit(  );
-        }
     }
     
+    
     bool default_hasUpperLimit(  ) const  {
         return AttLimits::hasUpperLimit( );
     }
@@ -93,11 +93,11 @@ struct AttLimits_wrapper : AttLimits, bp::wrapper< AttLimits > {
     virtual bool isFixed(  ) const  {
         if( bp::override func_isFixed = this->get_override( "isFixed" ) )
             return func_isFixed(  );
-        else{
+        else
             return this->AttLimits::isFixed(  );
-        }
     }
     
+    
     bool default_isFixed(  ) const  {
         return AttLimits::isFixed( );
     }
@@ -105,11 +105,11 @@ struct AttLimits_wrapper : AttLimits, bp::wrapper< AttLimits > {
     virtual void removeLimits(  ) {
         if( bp::override func_removeLimits = this->get_override( "removeLimits" ) )
             func_removeLimits(  );
-        else{
+        else
             this->AttLimits::removeLimits(  );
-        }
     }
     
+    
     void default_removeLimits(  ) {
         AttLimits::removeLimits( );
     }
@@ -117,11 +117,11 @@ struct AttLimits_wrapper : AttLimits, bp::wrapper< AttLimits > {
     virtual void removeLowerLimit(  ) {
         if( bp::override func_removeLowerLimit = this->get_override( "removeLowerLimit" ) )
             func_removeLowerLimit(  );
-        else{
+        else
             this->AttLimits::removeLowerLimit(  );
-        }
     }
     
+    
     void default_removeLowerLimit(  ) {
         AttLimits::removeLowerLimit( );
     }
@@ -129,11 +129,11 @@ struct AttLimits_wrapper : AttLimits, bp::wrapper< AttLimits > {
     virtual void removeUpperLimit(  ) {
         if( bp::override func_removeUpperLimit = this->get_override( "removeUpperLimit" ) )
             func_removeUpperLimit(  );
-        else{
+        else
             this->AttLimits::removeUpperLimit(  );
-        }
     }
     
+    
     void default_removeUpperLimit(  ) {
         AttLimits::removeUpperLimit( );
     }
@@ -141,11 +141,11 @@ struct AttLimits_wrapper : AttLimits, bp::wrapper< AttLimits > {
     virtual void setFixed( bool is_fixed ) {
         if( bp::override func_setFixed = this->get_override( "setFixed" ) )
             func_setFixed( is_fixed );
-        else{
+        else
             this->AttLimits::setFixed( is_fixed );
-        }
     }
     
+    
     void default_setFixed( bool is_fixed ) {
         AttLimits::setFixed( is_fixed );
     }
@@ -153,11 +153,11 @@ struct AttLimits_wrapper : AttLimits, bp::wrapper< AttLimits > {
     virtual void setLimits( double xmin, double xmax ) {
         if( bp::override func_setLimits = this->get_override( "setLimits" ) )
             func_setLimits( xmin, xmax );
-        else{
+        else
             this->AttLimits::setLimits( xmin, xmax );
-        }
     }
     
+    
     void default_setLimits( double xmin, double xmax ) {
         AttLimits::setLimits( xmin, xmax );
     }
@@ -165,11 +165,11 @@ struct AttLimits_wrapper : AttLimits, bp::wrapper< AttLimits > {
     virtual void setLowerLimit( double value ) {
         if( bp::override func_setLowerLimit = this->get_override( "setLowerLimit" ) )
             func_setLowerLimit( value );
-        else{
+        else
             this->AttLimits::setLowerLimit( value );
-        }
     }
     
+    
     void default_setLowerLimit( double value ) {
         AttLimits::setLowerLimit( value );
     }
@@ -177,11 +177,11 @@ struct AttLimits_wrapper : AttLimits, bp::wrapper< AttLimits > {
     virtual void setUpperLimit( double value ) {
         if( bp::override func_setUpperLimit = this->get_override( "setUpperLimit" ) )
             func_setUpperLimit( value );
-        else{
+        else
             this->AttLimits::setUpperLimit( value );
-        }
     }
     
+    
     void default_setUpperLimit( double value ) {
         AttLimits::setUpperLimit( value );
     }
diff --git a/Fit/PythonAPI/src/ChiSquaredModule.pypp.cpp b/Fit/PythonAPI/src/ChiSquaredModule.pypp.cpp
index 85ec4492f73bcc75250442d5e346b3def2042761..b2e416fca359015f2890a5d361248bb319b20c11 100644
--- a/Fit/PythonAPI/src/ChiSquaredModule.pypp.cpp
+++ b/Fit/PythonAPI/src/ChiSquaredModule.pypp.cpp
@@ -33,11 +33,11 @@ struct ChiSquaredModule_wrapper : ChiSquaredModule, bp::wrapper< ChiSquaredModul
     virtual double calculateChiSquared(  ) {
         if( bp::override func_calculateChiSquared = this->get_override( "calculateChiSquared" ) )
             return func_calculateChiSquared(  );
-        else{
+        else
             return this->ChiSquaredModule::calculateChiSquared(  );
-        }
     }
     
+    
     double default_calculateChiSquared(  ) {
         return ChiSquaredModule::calculateChiSquared( );
     }
@@ -45,11 +45,11 @@ struct ChiSquaredModule_wrapper : ChiSquaredModule, bp::wrapper< ChiSquaredModul
     virtual ::ChiSquaredModule * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->ChiSquaredModule::clone(  );
-        }
     }
     
+    
     ::ChiSquaredModule * default_clone(  ) const  {
         return ChiSquaredModule::clone( );
     }
@@ -57,35 +57,35 @@ struct ChiSquaredModule_wrapper : ChiSquaredModule, bp::wrapper< ChiSquaredModul
     virtual ::OutputData< double > * createChi2DifferenceMap(  ) const  {
         if( bp::override func_createChi2DifferenceMap = this->get_override( "createChi2DifferenceMap" ) )
             return func_createChi2DifferenceMap(  );
-        else{
+        else
             return this->ChiSquaredModule::createChi2DifferenceMap(  );
-        }
     }
     
+    
     ::OutputData< double > * default_createChi2DifferenceMap(  ) const  {
         return ChiSquaredModule::createChi2DifferenceMap( );
     }
 
-    virtual double getResidualValue( ::size_t index ) const  {
+    virtual double getResidualValue( ::std::size_t index ) const  {
         if( bp::override func_getResidualValue = this->get_override( "getResidualValue" ) )
             return func_getResidualValue( index );
-        else{
+        else
             return this->ChiSquaredModule::getResidualValue( index );
-        }
     }
     
-    double default_getResidualValue( ::size_t index ) const  {
+    
+    double default_getResidualValue( ::std::size_t index ) const  {
         return ChiSquaredModule::getResidualValue( index );
     }
 
     virtual ::IFittingDataSelector const * getFittingDataSelector(  ) const  {
         if( bp::override func_getFittingDataSelector = this->get_override( "getFittingDataSelector" ) )
             return func_getFittingDataSelector(  );
-        else{
+        else
             return this->IChiSquaredModule::getFittingDataSelector(  );
-        }
     }
     
+    
     ::IFittingDataSelector const * default_getFittingDataSelector(  ) const  {
         return IChiSquaredModule::getFittingDataSelector( );
     }
@@ -93,11 +93,11 @@ struct ChiSquaredModule_wrapper : ChiSquaredModule, bp::wrapper< ChiSquaredModul
     virtual ::IIntensityFunction const * getIntensityFunction(  ) const  {
         if( bp::override func_getIntensityFunction = this->get_override( "getIntensityFunction" ) )
             return func_getIntensityFunction(  );
-        else{
+        else
             return this->IChiSquaredModule::getIntensityFunction(  );
-        }
     }
     
+    
     ::IIntensityFunction const * default_getIntensityFunction(  ) const  {
         return IChiSquaredModule::getIntensityFunction( );
     }
@@ -105,11 +105,11 @@ struct ChiSquaredModule_wrapper : ChiSquaredModule, bp::wrapper< ChiSquaredModul
     virtual ::IOutputDataNormalizer const * getOutputDataNormalizer(  ) const  {
         if( bp::override func_getOutputDataNormalizer = this->get_override( "getOutputDataNormalizer" ) )
             return func_getOutputDataNormalizer(  );
-        else{
+        else
             return this->IChiSquaredModule::getOutputDataNormalizer(  );
-        }
     }
     
+    
     ::IOutputDataNormalizer const * default_getOutputDataNormalizer(  ) const  {
         return IChiSquaredModule::getOutputDataNormalizer( );
     }
@@ -117,11 +117,11 @@ struct ChiSquaredModule_wrapper : ChiSquaredModule, bp::wrapper< ChiSquaredModul
     virtual ::IOutputDataNormalizer * getOutputDataNormalizer(  ) {
         if( bp::override func_getOutputDataNormalizer = this->get_override( "getOutputDataNormalizer" ) )
             return func_getOutputDataNormalizer(  );
-        else{
+        else
             return this->IChiSquaredModule::getOutputDataNormalizer(  );
-        }
     }
     
+    
     ::IOutputDataNormalizer * default_getOutputDataNormalizer(  ) {
         return IChiSquaredModule::getOutputDataNormalizer( );
     }
@@ -129,11 +129,11 @@ struct ChiSquaredModule_wrapper : ChiSquaredModule, bp::wrapper< ChiSquaredModul
     virtual void setFittingDataSelector( ::IFittingDataSelector const & selector ) {
         if( bp::override func_setFittingDataSelector = this->get_override( "setFittingDataSelector" ) )
             func_setFittingDataSelector( boost::ref(selector) );
-        else{
+        else
             this->IChiSquaredModule::setFittingDataSelector( boost::ref(selector) );
-        }
     }
     
+    
     void default_setFittingDataSelector( ::IFittingDataSelector const & selector ) {
         IChiSquaredModule::setFittingDataSelector( boost::ref(selector) );
     }
@@ -141,11 +141,11 @@ struct ChiSquaredModule_wrapper : ChiSquaredModule, bp::wrapper< ChiSquaredModul
     virtual void setIntensityFunction( ::IIntensityFunction const & intensity_function ) {
         if( bp::override func_setIntensityFunction = this->get_override( "setIntensityFunction" ) )
             func_setIntensityFunction( boost::ref(intensity_function) );
-        else{
+        else
             this->IChiSquaredModule::setIntensityFunction( boost::ref(intensity_function) );
-        }
     }
     
+    
     void default_setIntensityFunction( ::IIntensityFunction const & intensity_function ) {
         IChiSquaredModule::setIntensityFunction( boost::ref(intensity_function) );
     }
@@ -153,11 +153,11 @@ struct ChiSquaredModule_wrapper : ChiSquaredModule, bp::wrapper< ChiSquaredModul
     virtual void setOutputDataNormalizer( ::IOutputDataNormalizer const & data_normalizer ) {
         if( bp::override func_setOutputDataNormalizer = this->get_override( "setOutputDataNormalizer" ) )
             func_setOutputDataNormalizer( boost::ref(data_normalizer) );
-        else{
+        else
             this->IChiSquaredModule::setOutputDataNormalizer( boost::ref(data_normalizer) );
-        }
     }
     
+    
     void default_setOutputDataNormalizer( ::IOutputDataNormalizer const & data_normalizer ) {
         IChiSquaredModule::setOutputDataNormalizer( boost::ref(data_normalizer) );
     }
@@ -208,8 +208,8 @@ void register_ChiSquaredModule_class(){
         }
         { //::ChiSquaredModule::getResidualValue
         
-            typedef double ( ::ChiSquaredModule::*getResidualValue_function_type )( ::size_t ) const;
-            typedef double ( ChiSquaredModule_wrapper::*default_getResidualValue_function_type )( ::size_t ) const;
+            typedef double ( ::ChiSquaredModule::*getResidualValue_function_type )( ::std::size_t ) const;
+            typedef double ( ChiSquaredModule_wrapper::*default_getResidualValue_function_type )( ::std::size_t ) const;
             
             ChiSquaredModule_exposer.def( 
                 "getResidualValue"
diff --git a/Fit/PythonAPI/src/FitObject.pypp.cpp b/Fit/PythonAPI/src/FitObject.pypp.cpp
index c07985a9a329cf89787a1e30ff2de6343296d99a..44aaab36a69611d610f24ad1a4406eaad38762a8 100644
--- a/Fit/PythonAPI/src/FitObject.pypp.cpp
+++ b/Fit/PythonAPI/src/FitObject.pypp.cpp
@@ -91,7 +91,7 @@ void register_FitObject_class(){
         }
         { //::FitObject::getSizeOfData
         
-            typedef ::size_t ( ::FitObject::*getSizeOfData_function_type )(  ) const;
+            typedef ::std::size_t ( ::FitObject::*getSizeOfData_function_type )(  ) const;
             
             FitObject_exposer.def( 
                 "getSizeOfData"
diff --git a/Fit/PythonAPI/src/FitParameter.pypp.cpp b/Fit/PythonAPI/src/FitParameter.pypp.cpp
index 719bdf807ebbde7074da6fe83fae832c507d7bac..36fb7bcb1518619f7be884fc4c0291eed66dd9dd 100644
--- a/Fit/PythonAPI/src/FitParameter.pypp.cpp
+++ b/Fit/PythonAPI/src/FitParameter.pypp.cpp
@@ -40,11 +40,11 @@ struct FitParameter_wrapper : FitParameter, bp::wrapper< FitParameter > {
     virtual double getError(  ) const  {
         if( bp::override func_getError = this->get_override( "getError" ) )
             return func_getError(  );
-        else{
+        else
             return this->FitParameter::getError(  );
-        }
     }
     
+    
     double default_getError(  ) const  {
         return FitParameter::getError( );
     }
@@ -52,11 +52,11 @@ struct FitParameter_wrapper : FitParameter, bp::wrapper< FitParameter > {
     virtual double getStep(  ) const  {
         if( bp::override func_getStep = this->get_override( "getStep" ) )
             return func_getStep(  );
-        else{
+        else
             return this->FitParameter::getStep(  );
-        }
     }
     
+    
     double default_getStep(  ) const  {
         return FitParameter::getStep( );
     }
@@ -64,11 +64,11 @@ struct FitParameter_wrapper : FitParameter, bp::wrapper< FitParameter > {
     virtual double getValue(  ) const  {
         if( bp::override func_getValue = this->get_override( "getValue" ) )
             return func_getValue(  );
-        else{
+        else
             return this->FitParameter::getValue(  );
-        }
     }
     
+    
     double default_getValue(  ) const  {
         return FitParameter::getValue( );
     }
@@ -76,11 +76,11 @@ struct FitParameter_wrapper : FitParameter, bp::wrapper< FitParameter > {
     virtual void setError( double value ) {
         if( bp::override func_setError = this->get_override( "setError" ) )
             func_setError( value );
-        else{
+        else
             this->FitParameter::setError( value );
-        }
     }
     
+    
     void default_setError( double value ) {
         FitParameter::setError( value );
     }
@@ -88,11 +88,11 @@ struct FitParameter_wrapper : FitParameter, bp::wrapper< FitParameter > {
     virtual void setStep( double value ) {
         if( bp::override func_setStep = this->get_override( "setStep" ) )
             func_setStep( value );
-        else{
+        else
             this->FitParameter::setStep( value );
-        }
     }
     
+    
     void default_setStep( double value ) {
         FitParameter::setStep( value );
     }
@@ -100,11 +100,11 @@ struct FitParameter_wrapper : FitParameter, bp::wrapper< FitParameter > {
     virtual void setValue( double value ) {
         if( bp::override func_setValue = this->get_override( "setValue" ) )
             func_setValue( value );
-        else{
+        else
             this->FitParameter::setValue( value );
-        }
     }
     
+    
     void default_setValue( double value ) {
         FitParameter::setValue( value );
     }
@@ -112,11 +112,11 @@ struct FitParameter_wrapper : FitParameter, bp::wrapper< FitParameter > {
     virtual double getLowerLimit(  ) const  {
         if( bp::override func_getLowerLimit = this->get_override( "getLowerLimit" ) )
             return func_getLowerLimit(  );
-        else{
+        else
             return this->AttLimits::getLowerLimit(  );
-        }
     }
     
+    
     double default_getLowerLimit(  ) const  {
         return AttLimits::getLowerLimit( );
     }
@@ -124,11 +124,11 @@ struct FitParameter_wrapper : FitParameter, bp::wrapper< FitParameter > {
     virtual double getUpperLimit(  ) const  {
         if( bp::override func_getUpperLimit = this->get_override( "getUpperLimit" ) )
             return func_getUpperLimit(  );
-        else{
+        else
             return this->AttLimits::getUpperLimit(  );
-        }
     }
     
+    
     double default_getUpperLimit(  ) const  {
         return AttLimits::getUpperLimit( );
     }
@@ -136,11 +136,11 @@ struct FitParameter_wrapper : FitParameter, bp::wrapper< FitParameter > {
     virtual bool hasLowerAndUpperLimits(  ) const  {
         if( bp::override func_hasLowerAndUpperLimits = this->get_override( "hasLowerAndUpperLimits" ) )
             return func_hasLowerAndUpperLimits(  );
-        else{
+        else
             return this->AttLimits::hasLowerAndUpperLimits(  );
-        }
     }
     
+    
     bool default_hasLowerAndUpperLimits(  ) const  {
         return AttLimits::hasLowerAndUpperLimits( );
     }
@@ -148,11 +148,11 @@ struct FitParameter_wrapper : FitParameter, bp::wrapper< FitParameter > {
     virtual bool hasLowerLimit(  ) const  {
         if( bp::override func_hasLowerLimit = this->get_override( "hasLowerLimit" ) )
             return func_hasLowerLimit(  );
-        else{
+        else
             return this->AttLimits::hasLowerLimit(  );
-        }
     }
     
+    
     bool default_hasLowerLimit(  ) const  {
         return AttLimits::hasLowerLimit( );
     }
@@ -160,11 +160,11 @@ struct FitParameter_wrapper : FitParameter, bp::wrapper< FitParameter > {
     virtual bool hasUpperLimit(  ) const  {
         if( bp::override func_hasUpperLimit = this->get_override( "hasUpperLimit" ) )
             return func_hasUpperLimit(  );
-        else{
+        else
             return this->AttLimits::hasUpperLimit(  );
-        }
     }
     
+    
     bool default_hasUpperLimit(  ) const  {
         return AttLimits::hasUpperLimit( );
     }
@@ -172,11 +172,11 @@ struct FitParameter_wrapper : FitParameter, bp::wrapper< FitParameter > {
     virtual bool isFixed(  ) const  {
         if( bp::override func_isFixed = this->get_override( "isFixed" ) )
             return func_isFixed(  );
-        else{
+        else
             return this->AttLimits::isFixed(  );
-        }
     }
     
+    
     bool default_isFixed(  ) const  {
         return AttLimits::isFixed( );
     }
@@ -184,11 +184,11 @@ struct FitParameter_wrapper : FitParameter, bp::wrapper< FitParameter > {
     virtual void removeLimits(  ) {
         if( bp::override func_removeLimits = this->get_override( "removeLimits" ) )
             func_removeLimits(  );
-        else{
+        else
             this->AttLimits::removeLimits(  );
-        }
     }
     
+    
     void default_removeLimits(  ) {
         AttLimits::removeLimits( );
     }
@@ -196,11 +196,11 @@ struct FitParameter_wrapper : FitParameter, bp::wrapper< FitParameter > {
     virtual void removeLowerLimit(  ) {
         if( bp::override func_removeLowerLimit = this->get_override( "removeLowerLimit" ) )
             func_removeLowerLimit(  );
-        else{
+        else
             this->AttLimits::removeLowerLimit(  );
-        }
     }
     
+    
     void default_removeLowerLimit(  ) {
         AttLimits::removeLowerLimit( );
     }
@@ -208,11 +208,11 @@ struct FitParameter_wrapper : FitParameter, bp::wrapper< FitParameter > {
     virtual void removeUpperLimit(  ) {
         if( bp::override func_removeUpperLimit = this->get_override( "removeUpperLimit" ) )
             func_removeUpperLimit(  );
-        else{
+        else
             this->AttLimits::removeUpperLimit(  );
-        }
     }
     
+    
     void default_removeUpperLimit(  ) {
         AttLimits::removeUpperLimit( );
     }
@@ -220,11 +220,11 @@ struct FitParameter_wrapper : FitParameter, bp::wrapper< FitParameter > {
     virtual void setFixed( bool is_fixed ) {
         if( bp::override func_setFixed = this->get_override( "setFixed" ) )
             func_setFixed( is_fixed );
-        else{
+        else
             this->AttLimits::setFixed( is_fixed );
-        }
     }
     
+    
     void default_setFixed( bool is_fixed ) {
         AttLimits::setFixed( is_fixed );
     }
@@ -232,11 +232,11 @@ struct FitParameter_wrapper : FitParameter, bp::wrapper< FitParameter > {
     virtual void setLimits( double xmin, double xmax ) {
         if( bp::override func_setLimits = this->get_override( "setLimits" ) )
             func_setLimits( xmin, xmax );
-        else{
+        else
             this->AttLimits::setLimits( xmin, xmax );
-        }
     }
     
+    
     void default_setLimits( double xmin, double xmax ) {
         AttLimits::setLimits( xmin, xmax );
     }
@@ -244,11 +244,11 @@ struct FitParameter_wrapper : FitParameter, bp::wrapper< FitParameter > {
     virtual void setLowerLimit( double value ) {
         if( bp::override func_setLowerLimit = this->get_override( "setLowerLimit" ) )
             func_setLowerLimit( value );
-        else{
+        else
             this->AttLimits::setLowerLimit( value );
-        }
     }
     
+    
     void default_setLowerLimit( double value ) {
         AttLimits::setLowerLimit( value );
     }
@@ -256,11 +256,11 @@ struct FitParameter_wrapper : FitParameter, bp::wrapper< FitParameter > {
     virtual void setUpperLimit( double value ) {
         if( bp::override func_setUpperLimit = this->get_override( "setUpperLimit" ) )
             func_setUpperLimit( value );
-        else{
+        else
             this->AttLimits::setUpperLimit( value );
-        }
     }
     
+    
     void default_setUpperLimit( double value ) {
         AttLimits::setUpperLimit( value );
     }
diff --git a/Fit/PythonAPI/src/FitSuite.pypp.cpp b/Fit/PythonAPI/src/FitSuite.pypp.cpp
index 4d8276308c13a0f01f1689b630c2fcd21e7246e9..05de160f1144a90e3ceb854a4fc948bcc87b87dd 100644
--- a/Fit/PythonAPI/src/FitSuite.pypp.cpp
+++ b/Fit/PythonAPI/src/FitSuite.pypp.cpp
@@ -26,11 +26,11 @@ struct FitSuite_wrapper : FitSuite, bp::wrapper< FitSuite > {
     virtual void link_fit_parameters(  ) {
         if( bp::override func_link_fit_parameters = this->get_override( "link_fit_parameters" ) )
             func_link_fit_parameters(  );
-        else{
+        else
             this->FitSuite::link_fit_parameters(  );
-        }
     }
     
+    
     void default_link_fit_parameters(  ) {
         FitSuite::link_fit_parameters( );
     }
@@ -38,11 +38,11 @@ struct FitSuite_wrapper : FitSuite, bp::wrapper< FitSuite > {
     virtual void minimize(  ) {
         if( bp::override func_minimize = this->get_override( "minimize" ) )
             func_minimize(  );
-        else{
+        else
             this->FitSuite::minimize(  );
-        }
     }
     
+    
     void default_minimize(  ) {
         FitSuite::minimize( );
     }
@@ -50,11 +50,11 @@ struct FitSuite_wrapper : FitSuite, bp::wrapper< FitSuite > {
     virtual void runFit(  ) {
         if( bp::override func_runFit = this->get_override( "runFit" ) )
             func_runFit(  );
-        else{
+        else
             this->FitSuite::runFit(  );
-        }
     }
     
+    
     void default_runFit(  ) {
         FitSuite::runFit( );
     }
@@ -62,11 +62,11 @@ struct FitSuite_wrapper : FitSuite, bp::wrapper< FitSuite > {
     virtual void attachObserver( ::boost::shared_ptr< IObserver > obj ) {
         if( bp::override func_attachObserver = this->get_override( "attachObserver" ) )
             func_attachObserver( obj );
-        else{
+        else
             this->IObservable::attachObserver( obj );
-        }
     }
     
+    
     void default_attachObserver( ::boost::shared_ptr< IObserver > obj ) {
         IObservable::attachObserver( obj );
     }
@@ -74,11 +74,11 @@ struct FitSuite_wrapper : FitSuite, bp::wrapper< FitSuite > {
     virtual void notifyObservers(  ) {
         if( bp::override func_notifyObservers = this->get_override( "notifyObservers" ) )
             func_notifyObservers(  );
-        else{
+        else
             this->IObservable::notifyObservers(  );
-        }
     }
     
+    
     void default_notifyObservers(  ) {
         IObservable::notifyObservers( );
     }
@@ -183,7 +183,7 @@ void register_FitSuite_class(){
         }
         { //::FitSuite::getNCalls
         
-            typedef ::size_t ( ::FitSuite::*getNCalls_function_type )(  ) const;
+            typedef ::std::size_t ( ::FitSuite::*getNCalls_function_type )(  ) const;
             
             FitSuite_exposer.def( 
                 "getNCalls"
@@ -192,7 +192,7 @@ void register_FitSuite_class(){
         }
         { //::FitSuite::getNStrategy
         
-            typedef ::size_t ( ::FitSuite::*getNStrategy_function_type )(  ) const;
+            typedef ::std::size_t ( ::FitSuite::*getNStrategy_function_type )(  ) const;
             
             FitSuite_exposer.def( 
                 "getNStrategy"
diff --git a/Fit/PythonAPI/src/FitSuiteObjects.pypp.cpp b/Fit/PythonAPI/src/FitSuiteObjects.pypp.cpp
index 0aea9b4d8f46edf249fe6c90c6820b04969ce574..50e77c75aaa3c4167ad5fe1095baaef54d02855e 100644
--- a/Fit/PythonAPI/src/FitSuiteObjects.pypp.cpp
+++ b/Fit/PythonAPI/src/FitSuiteObjects.pypp.cpp
@@ -59,40 +59,40 @@ void register_FitSuiteObjects_class(){
         }
         { //::FitSuiteObjects::getObject
         
-            typedef ::FitObject const * ( ::FitSuiteObjects::*getObject_function_type )( ::size_t ) const;
+            typedef ::FitObject const * ( ::FitSuiteObjects::*getObject_function_type )( ::std::size_t ) const;
             
             FitSuiteObjects_exposer.def( 
                 "getObject"
                 , getObject_function_type( &::FitSuiteObjects::getObject )
-                , ( bp::arg("i_item")=(::size_t)(0) )
+                , ( bp::arg("i_item")=(long unsigned int)(0) )
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
         }
         { //::FitSuiteObjects::getObject
         
-            typedef ::FitObject * ( ::FitSuiteObjects::*getObject_function_type )( ::size_t ) ;
+            typedef ::FitObject * ( ::FitSuiteObjects::*getObject_function_type )( ::std::size_t ) ;
             
             FitSuiteObjects_exposer.def( 
                 "getObject"
                 , getObject_function_type( &::FitSuiteObjects::getObject )
-                , ( bp::arg("i_item")=(::size_t)(0) )
+                , ( bp::arg("i_item")=(long unsigned int)(0) )
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
         }
         { //::FitSuiteObjects::getRealData
         
-            typedef ::OutputData< double > const * ( ::FitSuiteObjects::*getRealData_function_type )( ::size_t ) const;
+            typedef ::OutputData< double > const * ( ::FitSuiteObjects::*getRealData_function_type )( ::std::size_t ) const;
             
             FitSuiteObjects_exposer.def( 
                 "getRealData"
                 , getRealData_function_type( &::FitSuiteObjects::getRealData )
-                , ( bp::arg("i_item")=(::size_t)(0) )
+                , ( bp::arg("i_item")=(long unsigned int)(0) )
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
         }
         { //::FitSuiteObjects::getResidualValue
         
-            typedef double ( ::FitSuiteObjects::*getResidualValue_function_type )( ::size_t ) ;
+            typedef double ( ::FitSuiteObjects::*getResidualValue_function_type )( ::std::size_t ) ;
             
             FitSuiteObjects_exposer.def( 
                 "getResidualValue"
@@ -102,40 +102,40 @@ void register_FitSuiteObjects_class(){
         }
         { //::FitSuiteObjects::getSimulation
         
-            typedef ::Simulation const * ( ::FitSuiteObjects::*getSimulation_function_type )( ::size_t ) const;
+            typedef ::Simulation const * ( ::FitSuiteObjects::*getSimulation_function_type )( ::std::size_t ) const;
             
             FitSuiteObjects_exposer.def( 
                 "getSimulation"
                 , getSimulation_function_type( &::FitSuiteObjects::getSimulation )
-                , ( bp::arg("i_item")=(::size_t)(0) )
+                , ( bp::arg("i_item")=(long unsigned int)(0) )
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
         }
         { //::FitSuiteObjects::getSimulation
         
-            typedef ::Simulation * ( ::FitSuiteObjects::*getSimulation_function_type )( ::size_t ) ;
+            typedef ::Simulation * ( ::FitSuiteObjects::*getSimulation_function_type )( ::std::size_t ) ;
             
             FitSuiteObjects_exposer.def( 
                 "getSimulation"
                 , getSimulation_function_type( &::FitSuiteObjects::getSimulation )
-                , ( bp::arg("i_item")=(::size_t)(0) )
+                , ( bp::arg("i_item")=(long unsigned int)(0) )
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
         }
         { //::FitSuiteObjects::getSimulationData
         
-            typedef ::OutputData< double > const * ( ::FitSuiteObjects::*getSimulationData_function_type )( ::size_t ) const;
+            typedef ::OutputData< double > const * ( ::FitSuiteObjects::*getSimulationData_function_type )( ::std::size_t ) const;
             
             FitSuiteObjects_exposer.def( 
                 "getSimulationData"
                 , getSimulationData_function_type( &::FitSuiteObjects::getSimulationData )
-                , ( bp::arg("i_item")=(::size_t)(0) )
+                , ( bp::arg("i_item")=(long unsigned int)(0) )
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
         }
         { //::FitSuiteObjects::getSizeOfDataSet
         
-            typedef ::size_t ( ::FitSuiteObjects::*getSizeOfDataSet_function_type )(  ) const;
+            typedef ::std::size_t ( ::FitSuiteObjects::*getSizeOfDataSet_function_type )(  ) const;
             
             FitSuiteObjects_exposer.def( 
                 "getSizeOfDataSet"
@@ -163,12 +163,12 @@ void register_FitSuiteObjects_class(){
         }
         { //::FitSuiteObjects::setRealData
         
-            typedef void ( ::FitSuiteObjects::*setRealData_function_type )( ::OutputData< double > const &,::size_t ) ;
+            typedef void ( ::FitSuiteObjects::*setRealData_function_type )( ::OutputData< double > const &,::std::size_t ) ;
             
             FitSuiteObjects_exposer.def( 
                 "setRealData"
                 , setRealData_function_type( &::FitSuiteObjects::setRealData )
-                , ( bp::arg("real_data"), bp::arg("i_item")=(::size_t)(0) ) );
+                , ( bp::arg("real_data"), bp::arg("i_item")=(long unsigned int)(0) ) );
         
         }
         { //::FitSuiteObjects::setSimulationNormalize
@@ -183,7 +183,7 @@ void register_FitSuiteObjects_class(){
         }
         { //::FitSuiteObjects::size
         
-            typedef ::size_t ( ::FitSuiteObjects::*size_function_type )(  ) const;
+            typedef ::std::size_t ( ::FitSuiteObjects::*size_function_type )(  ) const;
             
             FitSuiteObjects_exposer.def( 
                 "size"
diff --git a/Fit/PythonAPI/src/FitSuiteParameters.pypp.cpp b/Fit/PythonAPI/src/FitSuiteParameters.pypp.cpp
index 3ac893aa9913956d70bc67e842334fcc05db6650..586ccde2d6c4189dd56e6e9fca1313d4fa6dfd89 100644
--- a/Fit/PythonAPI/src/FitSuiteParameters.pypp.cpp
+++ b/Fit/PythonAPI/src/FitSuiteParameters.pypp.cpp
@@ -50,7 +50,7 @@ void register_FitSuiteParameters_class(){
         }
         { //::FitSuiteParameters::getNfreeParameters
         
-            typedef ::size_t ( ::FitSuiteParameters::*getNfreeParameters_function_type )(  ) const;
+            typedef ::std::size_t ( ::FitSuiteParameters::*getNfreeParameters_function_type )(  ) const;
             
             FitSuiteParameters_exposer.def( 
                 "getNfreeParameters"
@@ -90,7 +90,7 @@ void register_FitSuiteParameters_class(){
         }
         { //::FitSuiteParameters::operator[]
         
-            typedef ::FitParameter const * ( ::FitSuiteParameters::*__getitem___function_type )( ::size_t ) const;
+            typedef ::FitParameter const * ( ::FitSuiteParameters::*__getitem___function_type )( ::std::size_t ) const;
             
             FitSuiteParameters_exposer.def( 
                 "__getitem__"
@@ -101,7 +101,7 @@ void register_FitSuiteParameters_class(){
         }
         { //::FitSuiteParameters::operator[]
         
-            typedef ::FitParameter * ( ::FitSuiteParameters::*__getitem___function_type )( ::size_t ) ;
+            typedef ::FitParameter * ( ::FitSuiteParameters::*__getitem___function_type )( ::std::size_t ) ;
             
             FitSuiteParameters_exposer.def( 
                 "__getitem__"
@@ -163,7 +163,7 @@ void register_FitSuiteParameters_class(){
         }
         { //::FitSuiteParameters::size
         
-            typedef ::size_t ( ::FitSuiteParameters::*size_function_type )(  ) const;
+            typedef ::std::size_t ( ::FitSuiteParameters::*size_function_type )(  ) const;
             
             FitSuiteParameters_exposer.def( 
                 "size"
diff --git a/Fit/PythonAPI/src/IChiSquaredModule.pypp.cpp b/Fit/PythonAPI/src/IChiSquaredModule.pypp.cpp
index 5952056df869de4fc60756008917ad0859e6a21c..2d8c14cad8db365d3eb2da910988874caa6c3c49 100644
--- a/Fit/PythonAPI/src/IChiSquaredModule.pypp.cpp
+++ b/Fit/PythonAPI/src/IChiSquaredModule.pypp.cpp
@@ -41,11 +41,11 @@ struct IChiSquaredModule_wrapper : IChiSquaredModule, bp::wrapper< IChiSquaredMo
     virtual ::IFittingDataSelector const * getFittingDataSelector(  ) const  {
         if( bp::override func_getFittingDataSelector = this->get_override( "getFittingDataSelector" ) )
             return func_getFittingDataSelector(  );
-        else{
+        else
             return this->IChiSquaredModule::getFittingDataSelector(  );
-        }
     }
     
+    
     ::IFittingDataSelector const * default_getFittingDataSelector(  ) const  {
         return IChiSquaredModule::getFittingDataSelector( );
     }
@@ -53,11 +53,11 @@ struct IChiSquaredModule_wrapper : IChiSquaredModule, bp::wrapper< IChiSquaredMo
     virtual ::IIntensityFunction const * getIntensityFunction(  ) const  {
         if( bp::override func_getIntensityFunction = this->get_override( "getIntensityFunction" ) )
             return func_getIntensityFunction(  );
-        else{
+        else
             return this->IChiSquaredModule::getIntensityFunction(  );
-        }
     }
     
+    
     ::IIntensityFunction const * default_getIntensityFunction(  ) const  {
         return IChiSquaredModule::getIntensityFunction( );
     }
@@ -65,11 +65,11 @@ struct IChiSquaredModule_wrapper : IChiSquaredModule, bp::wrapper< IChiSquaredMo
     virtual ::IOutputDataNormalizer const * getOutputDataNormalizer(  ) const  {
         if( bp::override func_getOutputDataNormalizer = this->get_override( "getOutputDataNormalizer" ) )
             return func_getOutputDataNormalizer(  );
-        else{
+        else
             return this->IChiSquaredModule::getOutputDataNormalizer(  );
-        }
     }
     
+    
     ::IOutputDataNormalizer const * default_getOutputDataNormalizer(  ) const  {
         return IChiSquaredModule::getOutputDataNormalizer( );
     }
@@ -77,35 +77,35 @@ struct IChiSquaredModule_wrapper : IChiSquaredModule, bp::wrapper< IChiSquaredMo
     virtual ::IOutputDataNormalizer * getOutputDataNormalizer(  ) {
         if( bp::override func_getOutputDataNormalizer = this->get_override( "getOutputDataNormalizer" ) )
             return func_getOutputDataNormalizer(  );
-        else{
+        else
             return this->IChiSquaredModule::getOutputDataNormalizer(  );
-        }
     }
     
+    
     ::IOutputDataNormalizer * default_getOutputDataNormalizer(  ) {
         return IChiSquaredModule::getOutputDataNormalizer( );
     }
 
-    virtual double getResidualValue( ::size_t arg0 ) const  {
+    virtual double getResidualValue( ::std::size_t arg0 ) const  {
         if( bp::override func_getResidualValue = this->get_override( "getResidualValue" ) )
             return func_getResidualValue( arg0 );
-        else{
+        else
             return this->IChiSquaredModule::getResidualValue( arg0 );
-        }
     }
     
-    double default_getResidualValue( ::size_t arg0 ) const  {
+    
+    double default_getResidualValue( ::std::size_t arg0 ) const  {
         return IChiSquaredModule::getResidualValue( arg0 );
     }
 
     virtual void setFittingDataSelector( ::IFittingDataSelector const & selector ) {
         if( bp::override func_setFittingDataSelector = this->get_override( "setFittingDataSelector" ) )
             func_setFittingDataSelector( boost::ref(selector) );
-        else{
+        else
             this->IChiSquaredModule::setFittingDataSelector( boost::ref(selector) );
-        }
     }
     
+    
     void default_setFittingDataSelector( ::IFittingDataSelector const & selector ) {
         IChiSquaredModule::setFittingDataSelector( boost::ref(selector) );
     }
@@ -113,11 +113,11 @@ struct IChiSquaredModule_wrapper : IChiSquaredModule, bp::wrapper< IChiSquaredMo
     virtual void setIntensityFunction( ::IIntensityFunction const & intensity_function ) {
         if( bp::override func_setIntensityFunction = this->get_override( "setIntensityFunction" ) )
             func_setIntensityFunction( boost::ref(intensity_function) );
-        else{
+        else
             this->IChiSquaredModule::setIntensityFunction( boost::ref(intensity_function) );
-        }
     }
     
+    
     void default_setIntensityFunction( ::IIntensityFunction const & intensity_function ) {
         IChiSquaredModule::setIntensityFunction( boost::ref(intensity_function) );
     }
@@ -125,11 +125,11 @@ struct IChiSquaredModule_wrapper : IChiSquaredModule, bp::wrapper< IChiSquaredMo
     virtual void setOutputDataNormalizer( ::IOutputDataNormalizer const & data_normalizer ) {
         if( bp::override func_setOutputDataNormalizer = this->get_override( "setOutputDataNormalizer" ) )
             func_setOutputDataNormalizer( boost::ref(data_normalizer) );
-        else{
+        else
             this->IChiSquaredModule::setOutputDataNormalizer( boost::ref(data_normalizer) );
-        }
     }
     
+    
     void default_setOutputDataNormalizer( ::IOutputDataNormalizer const & data_normalizer ) {
         IChiSquaredModule::setOutputDataNormalizer( boost::ref(data_normalizer) );
     }
@@ -231,8 +231,8 @@ void register_IChiSquaredModule_class(){
         }
         { //::IChiSquaredModule::getResidualValue
         
-            typedef double ( ::IChiSquaredModule::*getResidualValue_function_type )( ::size_t ) const;
-            typedef double ( IChiSquaredModule_wrapper::*default_getResidualValue_function_type )( ::size_t ) const;
+            typedef double ( ::IChiSquaredModule::*getResidualValue_function_type )( ::std::size_t ) const;
+            typedef double ( IChiSquaredModule_wrapper::*default_getResidualValue_function_type )( ::std::size_t ) const;
             
             IChiSquaredModule_exposer.def( 
                 "getResidualValue"
diff --git a/Fit/PythonAPI/src/IMinimizer.pypp.cpp b/Fit/PythonAPI/src/IMinimizer.pypp.cpp
index e7d5213970a5d1c10abdb97bd231426200c4efec..692986d6c7952638bb5402f67f4ec14b20eae6da 100644
--- a/Fit/PythonAPI/src/IMinimizer.pypp.cpp
+++ b/Fit/PythonAPI/src/IMinimizer.pypp.cpp
@@ -26,35 +26,35 @@ struct IMinimizer_wrapper : IMinimizer, bp::wrapper< IMinimizer > {
     virtual void clear(  ) {
         if( bp::override func_clear = this->get_override( "clear" ) )
             func_clear(  );
-        else{
+        else
             this->IMinimizer::clear(  );
-        }
     }
     
+    
     void default_clear(  ) {
         IMinimizer::clear( );
     }
 
-    virtual double getErrorOfVariable( ::size_t arg0 ) const  {
+    virtual double getErrorOfVariable( ::std::size_t arg0 ) const  {
         if( bp::override func_getErrorOfVariable = this->get_override( "getErrorOfVariable" ) )
             return func_getErrorOfVariable( arg0 );
-        else{
+        else
             return this->IMinimizer::getErrorOfVariable( arg0 );
-        }
     }
     
-    double default_getErrorOfVariable( ::size_t arg0 ) const  {
+    
+    double default_getErrorOfVariable( ::std::size_t arg0 ) const  {
         return IMinimizer::getErrorOfVariable( arg0 );
     }
 
     virtual ::std::vector< double > getErrorOfVariables(  ) const  {
         if( bp::override func_getErrorOfVariables = this->get_override( "getErrorOfVariables" ) )
             return func_getErrorOfVariables(  );
-        else{
+        else
             return this->IMinimizer::getErrorOfVariables(  );
-        }
     }
     
+    
     ::std::vector< double > default_getErrorOfVariables(  ) const  {
         return IMinimizer::getErrorOfVariables( );
     }
@@ -62,71 +62,71 @@ struct IMinimizer_wrapper : IMinimizer, bp::wrapper< IMinimizer > {
     virtual double getMinValue(  ) const  {
         if( bp::override func_getMinValue = this->get_override( "getMinValue" ) )
             return func_getMinValue(  );
-        else{
+        else
             return this->IMinimizer::getMinValue(  );
-        }
     }
     
+    
     double default_getMinValue(  ) const  {
         return IMinimizer::getMinValue( );
     }
 
-    virtual ::size_t getNCalls(  ) const  {
+    virtual ::std::size_t getNCalls(  ) const  {
         if( bp::override func_getNCalls = this->get_override( "getNCalls" ) )
             return func_getNCalls(  );
-        else{
+        else
             return this->IMinimizer::getNCalls(  );
-        }
     }
     
-    ::size_t default_getNCalls(  ) const  {
+    
+    ::std::size_t default_getNCalls(  ) const  {
         return IMinimizer::getNCalls( );
     }
 
-    virtual ::size_t getNumberOfVariables(  ) const  {
+    virtual ::std::size_t getNumberOfVariables(  ) const  {
         if( bp::override func_getNumberOfVariables = this->get_override( "getNumberOfVariables" ) )
             return func_getNumberOfVariables(  );
-        else{
+        else
             return this->IMinimizer::getNumberOfVariables(  );
-        }
     }
     
-    ::size_t default_getNumberOfVariables(  ) const  {
+    
+    ::std::size_t default_getNumberOfVariables(  ) const  {
         return IMinimizer::getNumberOfVariables( );
     }
 
     virtual ::MinimizerOptions getOptions(  ) const  {
         if( bp::override func_getOptions = this->get_override( "getOptions" ) )
             return func_getOptions(  );
-        else{
+        else
             return this->IMinimizer::getOptions(  );
-        }
     }
     
+    
     ::MinimizerOptions default_getOptions(  ) const  {
         return IMinimizer::getOptions( );
     }
 
-    virtual double getValueOfVariableAtMinimum( ::size_t arg0 ) const  {
+    virtual double getValueOfVariableAtMinimum( ::std::size_t arg0 ) const  {
         if( bp::override func_getValueOfVariableAtMinimum = this->get_override( "getValueOfVariableAtMinimum" ) )
             return func_getValueOfVariableAtMinimum( arg0 );
-        else{
+        else
             return this->IMinimizer::getValueOfVariableAtMinimum( arg0 );
-        }
     }
     
-    double default_getValueOfVariableAtMinimum( ::size_t arg0 ) const  {
+    
+    double default_getValueOfVariableAtMinimum( ::std::size_t arg0 ) const  {
         return IMinimizer::getValueOfVariableAtMinimum( arg0 );
     }
 
     virtual ::std::vector< double > getValueOfVariablesAtMinimum(  ) const  {
         if( bp::override func_getValueOfVariablesAtMinimum = this->get_override( "getValueOfVariablesAtMinimum" ) )
             return func_getValueOfVariablesAtMinimum(  );
-        else{
+        else
             return this->IMinimizer::getValueOfVariablesAtMinimum(  );
-        }
     }
     
+    
     ::std::vector< double > default_getValueOfVariablesAtMinimum(  ) const  {
         return IMinimizer::getValueOfVariablesAtMinimum( );
     }
@@ -139,11 +139,11 @@ struct IMinimizer_wrapper : IMinimizer, bp::wrapper< IMinimizer > {
     virtual void printResults(  ) const  {
         if( bp::override func_printResults = this->get_override( "printResults" ) )
             func_printResults(  );
-        else{
+        else
             this->IMinimizer::printResults(  );
-        }
     }
     
+    
     void default_printResults(  ) const  {
         IMinimizer::printResults( );
     }
@@ -151,11 +151,11 @@ struct IMinimizer_wrapper : IMinimizer, bp::wrapper< IMinimizer > {
     virtual void setOptions( ::MinimizerOptions const & arg0 ) {
         if( bp::override func_setOptions = this->get_override( "setOptions" ) )
             func_setOptions( boost::ref(arg0) );
-        else{
+        else
             this->IMinimizer::setOptions( boost::ref(arg0) );
-        }
     }
     
+    
     void default_setOptions( ::MinimizerOptions const & arg0 ) {
         IMinimizer::setOptions( boost::ref(arg0) );
     }
@@ -163,11 +163,11 @@ struct IMinimizer_wrapper : IMinimizer, bp::wrapper< IMinimizer > {
     virtual void setOptions( ::std::string const & arg0 ) {
         if( bp::override func_setOptions = this->get_override( "setOptions" ) )
             func_setOptions( arg0 );
-        else{
+        else
             this->IMinimizer::setOptions( arg0 );
-        }
     }
     
+    
     void default_setOptions( ::std::string const & arg0 ) {
         IMinimizer::setOptions( arg0 );
     }
@@ -175,11 +175,11 @@ struct IMinimizer_wrapper : IMinimizer, bp::wrapper< IMinimizer > {
     virtual void setParameters( ::FitSuiteParameters const & arg0 ) {
         if( bp::override func_setParameters = this->get_override( "setParameters" ) )
             func_setParameters( boost::ref(arg0) );
-        else{
+        else
             this->IMinimizer::setParameters( boost::ref(arg0) );
-        }
     }
     
+    
     void default_setParameters( ::FitSuiteParameters const & arg0 ) {
         IMinimizer::setParameters( boost::ref(arg0) );
     }
@@ -205,8 +205,8 @@ void register_IMinimizer_class(){
         }
         { //::IMinimizer::getErrorOfVariable
         
-            typedef double ( ::IMinimizer::*getErrorOfVariable_function_type )( ::size_t ) const;
-            typedef double ( IMinimizer_wrapper::*default_getErrorOfVariable_function_type )( ::size_t ) const;
+            typedef double ( ::IMinimizer::*getErrorOfVariable_function_type )( ::std::size_t ) const;
+            typedef double ( IMinimizer_wrapper::*default_getErrorOfVariable_function_type )( ::std::size_t ) const;
             
             IMinimizer_exposer.def( 
                 "getErrorOfVariable"
@@ -239,8 +239,8 @@ void register_IMinimizer_class(){
         }
         { //::IMinimizer::getNCalls
         
-            typedef ::size_t ( ::IMinimizer::*getNCalls_function_type )(  ) const;
-            typedef ::size_t ( IMinimizer_wrapper::*default_getNCalls_function_type )(  ) const;
+            typedef ::std::size_t ( ::IMinimizer::*getNCalls_function_type )(  ) const;
+            typedef ::std::size_t ( IMinimizer_wrapper::*default_getNCalls_function_type )(  ) const;
             
             IMinimizer_exposer.def( 
                 "getNCalls"
@@ -250,8 +250,8 @@ void register_IMinimizer_class(){
         }
         { //::IMinimizer::getNumberOfVariables
         
-            typedef ::size_t ( ::IMinimizer::*getNumberOfVariables_function_type )(  ) const;
-            typedef ::size_t ( IMinimizer_wrapper::*default_getNumberOfVariables_function_type )(  ) const;
+            typedef ::std::size_t ( ::IMinimizer::*getNumberOfVariables_function_type )(  ) const;
+            typedef ::std::size_t ( IMinimizer_wrapper::*default_getNumberOfVariables_function_type )(  ) const;
             
             IMinimizer_exposer.def( 
                 "getNumberOfVariables"
@@ -272,8 +272,8 @@ void register_IMinimizer_class(){
         }
         { //::IMinimizer::getValueOfVariableAtMinimum
         
-            typedef double ( ::IMinimizer::*getValueOfVariableAtMinimum_function_type )( ::size_t ) const;
-            typedef double ( IMinimizer_wrapper::*default_getValueOfVariableAtMinimum_function_type )( ::size_t ) const;
+            typedef double ( ::IMinimizer::*getValueOfVariableAtMinimum_function_type )( ::std::size_t ) const;
+            typedef double ( IMinimizer_wrapper::*default_getValueOfVariableAtMinimum_function_type )( ::std::size_t ) const;
             
             IMinimizer_exposer.def( 
                 "getValueOfVariableAtMinimum"
diff --git a/Fit/PythonAPI/src/ISquaredFunction.pypp.cpp b/Fit/PythonAPI/src/ISquaredFunction.pypp.cpp
index d3102be1a4b8578ccb595113353c8de045bf2187..03961fd42f54edf9f09a3ad4ce233f78b6345e0e 100644
--- a/Fit/PythonAPI/src/ISquaredFunction.pypp.cpp
+++ b/Fit/PythonAPI/src/ISquaredFunction.pypp.cpp
@@ -31,11 +31,11 @@ struct ISquaredFunction_wrapper : ISquaredFunction, bp::wrapper< ISquaredFunctio
     virtual double calculateSquaredError( double real_value, double simulated_value=0.0 ) const  {
         if( bp::override func_calculateSquaredError = this->get_override( "calculateSquaredError" ) )
             return func_calculateSquaredError( real_value, simulated_value );
-        else{
+        else
             return this->ISquaredFunction::calculateSquaredError( real_value, simulated_value );
-        }
     }
     
+    
     double default_calculateSquaredError( double real_value, double simulated_value=0.0 ) const  {
         return ISquaredFunction::calculateSquaredError( real_value, simulated_value );
     }
diff --git a/Fit/PythonAPI/src/OutputDataNormalizer.pypp.cpp b/Fit/PythonAPI/src/OutputDataNormalizer.pypp.cpp
index 1f174b834df98ba7427c89851fdabb962ea652c5..e73f1c904aa56c1d756dddd015373eae70f6340c 100644
--- a/Fit/PythonAPI/src/OutputDataNormalizer.pypp.cpp
+++ b/Fit/PythonAPI/src/OutputDataNormalizer.pypp.cpp
@@ -33,11 +33,11 @@ struct OutputDataNormalizer_wrapper : OutputDataNormalizer, bp::wrapper< OutputD
     virtual ::OutputDataNormalizer * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->OutputDataNormalizer::clone(  );
-        }
     }
     
+    
     ::OutputDataNormalizer * default_clone(  ) const  {
         return OutputDataNormalizer::clone( );
     }
@@ -45,11 +45,11 @@ struct OutputDataNormalizer_wrapper : OutputDataNormalizer, bp::wrapper< OutputD
     virtual ::OutputData< double > * createNormalizedData( ::OutputData< double > const & data ) const  {
         if( bp::override func_createNormalizedData = this->get_override( "createNormalizedData" ) )
             return func_createNormalizedData( boost::ref(data) );
-        else{
+        else
             return this->OutputDataNormalizer::createNormalizedData( boost::ref(data) );
-        }
     }
     
+    
     ::OutputData< double > * default_createNormalizedData( ::OutputData< double > const & data ) const  {
         return OutputDataNormalizer::createNormalizedData( boost::ref(data) );
     }
@@ -57,11 +57,11 @@ struct OutputDataNormalizer_wrapper : OutputDataNormalizer, bp::wrapper< OutputD
     virtual void setMaximumIntensity( double max_intensity ) {
         if( bp::override func_setMaximumIntensity = this->get_override( "setMaximumIntensity" ) )
             func_setMaximumIntensity( max_intensity );
-        else{
+        else
             this->OutputDataNormalizer::setMaximumIntensity( max_intensity );
-        }
     }
     
+    
     void default_setMaximumIntensity( double max_intensity ) {
         OutputDataNormalizer::setMaximumIntensity( max_intensity );
     }
diff --git a/Fit/PythonAPI/src/OutputDataSimpleNormalizer.pypp.cpp b/Fit/PythonAPI/src/OutputDataSimpleNormalizer.pypp.cpp
index 70b59588290d8d49c637096863ec5648dc3965f9..0bce6f350de766396e59c1525029ee93dd8f3714 100644
--- a/Fit/PythonAPI/src/OutputDataSimpleNormalizer.pypp.cpp
+++ b/Fit/PythonAPI/src/OutputDataSimpleNormalizer.pypp.cpp
@@ -33,11 +33,11 @@ struct OutputDataSimpleNormalizer_wrapper : OutputDataSimpleNormalizer, bp::wrap
     virtual ::OutputDataSimpleNormalizer * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->OutputDataSimpleNormalizer::clone(  );
-        }
     }
     
+    
     ::OutputDataSimpleNormalizer * default_clone(  ) const  {
         return OutputDataSimpleNormalizer::clone( );
     }
@@ -45,11 +45,11 @@ struct OutputDataSimpleNormalizer_wrapper : OutputDataSimpleNormalizer, bp::wrap
     virtual void setMaximumIntensity( double max_intensity ) {
         if( bp::override func_setMaximumIntensity = this->get_override( "setMaximumIntensity" ) )
             func_setMaximumIntensity( max_intensity );
-        else{
+        else
             this->OutputDataSimpleNormalizer::setMaximumIntensity( max_intensity );
-        }
     }
     
+    
     void default_setMaximumIntensity( double max_intensity ) {
         OutputDataSimpleNormalizer::setMaximumIntensity( max_intensity );
     }
@@ -57,11 +57,11 @@ struct OutputDataSimpleNormalizer_wrapper : OutputDataSimpleNormalizer, bp::wrap
     virtual ::OutputData< double > * createNormalizedData( ::OutputData< double > const & data ) const  {
         if( bp::override func_createNormalizedData = this->get_override( "createNormalizedData" ) )
             return func_createNormalizedData( boost::ref(data) );
-        else{
+        else
             return this->OutputDataNormalizer::createNormalizedData( boost::ref(data) );
-        }
     }
     
+    
     ::OutputData< double > * default_createNormalizedData( ::OutputData< double > const & data ) const  {
         return OutputDataNormalizer::createNormalizedData( boost::ref(data) );
     }
diff --git a/Fit/PythonAPI/src/PythonModule.cpp b/Fit/PythonAPI/src/PythonModule.cpp
index a505ce9bb29347cfe8c4f4e4b2d5d9cbb5fac35f..52a616d52fb25673f53b35e4764df957007fc2b3 100644
--- a/Fit/PythonAPI/src/PythonModule.cpp
+++ b/Fit/PythonAPI/src/PythonModule.cpp
@@ -6,27 +6,27 @@ GCC_DIAG_OFF(missing-field-initializers);
 GCC_DIAG_ON(unused-parameter);
 GCC_DIAG_ON(missing-field-initializers);
 
+#include "SquaredFunctionWithGaussianError.pypp.h" 
+#include "OutputDataSimpleNormalizer.pypp.h" 
 #include "AttFitting.pypp.h" 
-#include "AttLimits.pypp.h" 
-#include "ChiSquaredModule.pypp.h" 
-#include "FitObject.pypp.h" 
-#include "FitParameter.pypp.h" 
-#include "FitSuite.pypp.h" 
 #include "FitSuiteObjects.pypp.h" 
-#include "FitSuiteParameters.pypp.h" 
-#include "IChiSquaredModule.pypp.h" 
-#include "IMinimizer.pypp.h" 
-#include "INamed.pypp.h" 
-#include "IOutputDataNormalizer.pypp.h" 
 #include "ISquaredFunction.pypp.h" 
 #include "MinimizerFactory.pypp.h" 
-#include "MinimizerOptions.pypp.h" 
 #include "OutputDataNormalizer.pypp.h" 
-#include "OutputDataSimpleNormalizer.pypp.h" 
-#include "SquaredFunctionDefault.pypp.h" 
-#include "SquaredFunctionWhichOnlyWorks.pypp.h" 
-#include "SquaredFunctionWithGaussianError.pypp.h" 
+#include "MinimizerOptions.pypp.h" 
 #include "SquaredFunctionWithSystematicError.pypp.h" 
+#include "IOutputDataNormalizer.pypp.h" 
+#include "SquaredFunctionWhichOnlyWorks.pypp.h" 
+#include "FitParameter.pypp.h" 
+#include "FitObject.pypp.h" 
+#include "IMinimizer.pypp.h" 
+#include "INamed.pypp.h" 
+#include "SquaredFunctionDefault.pypp.h" 
+#include "ChiSquaredModule.pypp.h" 
+#include "FitSuite.pypp.h" 
+#include "AttLimits.pypp.h" 
+#include "IChiSquaredModule.pypp.h" 
+#include "FitSuiteParameters.pypp.h" 
 
 BOOST_PYTHON_MODULE(libBornAgainFit){
 
diff --git a/Fit/PythonAPI/src/SquaredFunctionDefault.pypp.cpp b/Fit/PythonAPI/src/SquaredFunctionDefault.pypp.cpp
index 24c1031d440dfb73a3a0f7df006e34d0ea02bb61..3b0b52c824aaccf828d36061a7c0a4ba77a587a3 100644
--- a/Fit/PythonAPI/src/SquaredFunctionDefault.pypp.cpp
+++ b/Fit/PythonAPI/src/SquaredFunctionDefault.pypp.cpp
@@ -33,11 +33,11 @@ struct SquaredFunctionDefault_wrapper : SquaredFunctionDefault, bp::wrapper< Squ
     virtual double calculateSquaredDifference( double real_value, double simulated_value ) const  {
         if( bp::override func_calculateSquaredDifference = this->get_override( "calculateSquaredDifference" ) )
             return func_calculateSquaredDifference( real_value, simulated_value );
-        else{
+        else
             return this->SquaredFunctionDefault::calculateSquaredDifference( real_value, simulated_value );
-        }
     }
     
+    
     double default_calculateSquaredDifference( double real_value, double simulated_value ) const  {
         return SquaredFunctionDefault::calculateSquaredDifference( real_value, simulated_value );
     }
@@ -45,11 +45,11 @@ struct SquaredFunctionDefault_wrapper : SquaredFunctionDefault, bp::wrapper< Squ
     virtual double calculateSquaredError( double real_value, double arg1 ) const  {
         if( bp::override func_calculateSquaredError = this->get_override( "calculateSquaredError" ) )
             return func_calculateSquaredError( real_value, arg1 );
-        else{
+        else
             return this->SquaredFunctionDefault::calculateSquaredError( real_value, arg1 );
-        }
     }
     
+    
     double default_calculateSquaredError( double real_value, double arg1 ) const  {
         return SquaredFunctionDefault::calculateSquaredError( real_value, arg1 );
     }
@@ -57,11 +57,11 @@ struct SquaredFunctionDefault_wrapper : SquaredFunctionDefault, bp::wrapper< Squ
     virtual ::SquaredFunctionDefault * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->SquaredFunctionDefault::clone(  );
-        }
     }
     
+    
     ::SquaredFunctionDefault * default_clone(  ) const  {
         return SquaredFunctionDefault::clone( );
     }
diff --git a/Fit/PythonAPI/src/SquaredFunctionWhichOnlyWorks.pypp.cpp b/Fit/PythonAPI/src/SquaredFunctionWhichOnlyWorks.pypp.cpp
index bbb302b394a39e8dbddda31cd8b59120bf12a96c..378918ee7ee2be818a1e7e61ee959902551042b7 100644
--- a/Fit/PythonAPI/src/SquaredFunctionWhichOnlyWorks.pypp.cpp
+++ b/Fit/PythonAPI/src/SquaredFunctionWhichOnlyWorks.pypp.cpp
@@ -33,11 +33,11 @@ struct SquaredFunctionWhichOnlyWorks_wrapper : SquaredFunctionWhichOnlyWorks, bp
     virtual double calculateSquaredDifference( double real_value, double simulated_value ) const  {
         if( bp::override func_calculateSquaredDifference = this->get_override( "calculateSquaredDifference" ) )
             return func_calculateSquaredDifference( real_value, simulated_value );
-        else{
+        else
             return this->SquaredFunctionWhichOnlyWorks::calculateSquaredDifference( real_value, simulated_value );
-        }
     }
     
+    
     double default_calculateSquaredDifference( double real_value, double simulated_value ) const  {
         return SquaredFunctionWhichOnlyWorks::calculateSquaredDifference( real_value, simulated_value );
     }
@@ -45,11 +45,11 @@ struct SquaredFunctionWhichOnlyWorks_wrapper : SquaredFunctionWhichOnlyWorks, bp
     virtual ::SquaredFunctionWhichOnlyWorks * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->SquaredFunctionWhichOnlyWorks::clone(  );
-        }
     }
     
+    
     ::SquaredFunctionWhichOnlyWorks * default_clone(  ) const  {
         return SquaredFunctionWhichOnlyWorks::clone( );
     }
@@ -57,11 +57,11 @@ struct SquaredFunctionWhichOnlyWorks_wrapper : SquaredFunctionWhichOnlyWorks, bp
     virtual double calculateSquaredError( double real_value, double simulated_value=0.0 ) const  {
         if( bp::override func_calculateSquaredError = this->get_override( "calculateSquaredError" ) )
             return func_calculateSquaredError( real_value, simulated_value );
-        else{
+        else
             return this->ISquaredFunction::calculateSquaredError( real_value, simulated_value );
-        }
     }
     
+    
     double default_calculateSquaredError( double real_value, double simulated_value=0.0 ) const  {
         return ISquaredFunction::calculateSquaredError( real_value, simulated_value );
     }
diff --git a/Fit/PythonAPI/src/SquaredFunctionWithGaussianError.pypp.cpp b/Fit/PythonAPI/src/SquaredFunctionWithGaussianError.pypp.cpp
index 87abc082ddab8fe0715b108485d9918c947bae3c..6d869a72a869ab3957b46ac5c9d8a469bc25395d 100644
--- a/Fit/PythonAPI/src/SquaredFunctionWithGaussianError.pypp.cpp
+++ b/Fit/PythonAPI/src/SquaredFunctionWithGaussianError.pypp.cpp
@@ -33,11 +33,11 @@ struct SquaredFunctionWithGaussianError_wrapper : SquaredFunctionWithGaussianErr
     virtual double calculateSquaredDifference( double real_value, double simulated_value ) const  {
         if( bp::override func_calculateSquaredDifference = this->get_override( "calculateSquaredDifference" ) )
             return func_calculateSquaredDifference( real_value, simulated_value );
-        else{
+        else
             return this->SquaredFunctionWithGaussianError::calculateSquaredDifference( real_value, simulated_value );
-        }
     }
     
+    
     double default_calculateSquaredDifference( double real_value, double simulated_value ) const  {
         return SquaredFunctionWithGaussianError::calculateSquaredDifference( real_value, simulated_value );
     }
@@ -45,11 +45,11 @@ struct SquaredFunctionWithGaussianError_wrapper : SquaredFunctionWithGaussianErr
     virtual double calculateSquaredError( double arg0, double arg1 ) const  {
         if( bp::override func_calculateSquaredError = this->get_override( "calculateSquaredError" ) )
             return func_calculateSquaredError( arg0, arg1 );
-        else{
+        else
             return this->SquaredFunctionWithGaussianError::calculateSquaredError( arg0, arg1 );
-        }
     }
     
+    
     double default_calculateSquaredError( double arg0, double arg1 ) const  {
         return SquaredFunctionWithGaussianError::calculateSquaredError( arg0, arg1 );
     }
@@ -57,11 +57,11 @@ struct SquaredFunctionWithGaussianError_wrapper : SquaredFunctionWithGaussianErr
     virtual ::SquaredFunctionWithGaussianError * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->SquaredFunctionWithGaussianError::clone(  );
-        }
     }
     
+    
     ::SquaredFunctionWithGaussianError * default_clone(  ) const  {
         return SquaredFunctionWithGaussianError::clone( );
     }
diff --git a/Fit/PythonAPI/src/SquaredFunctionWithSystematicError.pypp.cpp b/Fit/PythonAPI/src/SquaredFunctionWithSystematicError.pypp.cpp
index 1129f605a5790a1f9349c749d78ddce6dd9e3e5d..37b0378963542325d24c0bfba602a6189dff1f24 100644
--- a/Fit/PythonAPI/src/SquaredFunctionWithSystematicError.pypp.cpp
+++ b/Fit/PythonAPI/src/SquaredFunctionWithSystematicError.pypp.cpp
@@ -33,11 +33,11 @@ struct SquaredFunctionWithSystematicError_wrapper : SquaredFunctionWithSystemati
     virtual double calculateSquaredDifference( double real_value, double simulated_value ) const  {
         if( bp::override func_calculateSquaredDifference = this->get_override( "calculateSquaredDifference" ) )
             return func_calculateSquaredDifference( real_value, simulated_value );
-        else{
+        else
             return this->SquaredFunctionWithSystematicError::calculateSquaredDifference( real_value, simulated_value );
-        }
     }
     
+    
     double default_calculateSquaredDifference( double real_value, double simulated_value ) const  {
         return SquaredFunctionWithSystematicError::calculateSquaredDifference( real_value, simulated_value );
     }
@@ -45,11 +45,11 @@ struct SquaredFunctionWithSystematicError_wrapper : SquaredFunctionWithSystemati
     virtual double calculateSquaredError( double real_value, double simulated_value=0.0 ) const  {
         if( bp::override func_calculateSquaredError = this->get_override( "calculateSquaredError" ) )
             return func_calculateSquaredError( real_value, simulated_value );
-        else{
+        else
             return this->SquaredFunctionWithSystematicError::calculateSquaredError( real_value, simulated_value );
-        }
     }
     
+    
     double default_calculateSquaredError( double real_value, double simulated_value=0.0 ) const  {
         return SquaredFunctionWithSystematicError::calculateSquaredError( real_value, simulated_value );
     }
@@ -57,11 +57,11 @@ struct SquaredFunctionWithSystematicError_wrapper : SquaredFunctionWithSystemati
     virtual ::SquaredFunctionWithSystematicError * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
-        else{
+        else
             return this->SquaredFunctionWithSystematicError::clone(  );
-        }
     }
     
+    
     ::SquaredFunctionWithSystematicError * default_clone(  ) const  {
         return SquaredFunctionWithSystematicError::clone( );
     }
diff --git a/Fit/python_module.pri b/Fit/python_module.pri
index b85ff59160b2ea3247264300f639bf8bc990e16f..71eae99f6300bb9c8953e05ee6618b6dce4bd14c 100644
--- a/Fit/python_module.pri
+++ b/Fit/python_module.pri
@@ -1,51 +1,51 @@
 HEADERS +=  \ 
     PythonAPI/inc/PythonFitExposer.h \ 
     PythonAPI/inc/PythonFitList.h \ 
+    PythonAPI/inc/SquaredFunctionWithGaussianError.pypp.h \
+    PythonAPI/inc/OutputDataSimpleNormalizer.pypp.h \
     PythonAPI/inc/AttFitting.pypp.h \
-    PythonAPI/inc/AttLimits.pypp.h \
-    PythonAPI/inc/ChiSquaredModule.pypp.h \
-    PythonAPI/inc/FitObject.pypp.h \
-    PythonAPI/inc/FitParameter.pypp.h \
-    PythonAPI/inc/FitSuite.pypp.h \
     PythonAPI/inc/FitSuiteObjects.pypp.h \
-    PythonAPI/inc/FitSuiteParameters.pypp.h \
-    PythonAPI/inc/IChiSquaredModule.pypp.h \
-    PythonAPI/inc/IMinimizer.pypp.h \
-    PythonAPI/inc/INamed.pypp.h \
-    PythonAPI/inc/IOutputDataNormalizer.pypp.h \
     PythonAPI/inc/ISquaredFunction.pypp.h \
     PythonAPI/inc/MinimizerFactory.pypp.h \
-    PythonAPI/inc/MinimizerOptions.pypp.h \
     PythonAPI/inc/OutputDataNormalizer.pypp.h \
-    PythonAPI/inc/OutputDataSimpleNormalizer.pypp.h \
-    PythonAPI/inc/SquaredFunctionDefault.pypp.h \
+    PythonAPI/inc/MinimizerOptions.pypp.h \
+    PythonAPI/inc/SquaredFunctionWithSystematicError.pypp.h \
+    PythonAPI/inc/IOutputDataNormalizer.pypp.h \
     PythonAPI/inc/SquaredFunctionWhichOnlyWorks.pypp.h \
-    PythonAPI/inc/SquaredFunctionWithGaussianError.pypp.h \
-    PythonAPI/inc/SquaredFunctionWithSystematicError.pypp.h 
+    PythonAPI/inc/FitParameter.pypp.h \
+    PythonAPI/inc/FitObject.pypp.h \
+    PythonAPI/inc/IMinimizer.pypp.h \
+    PythonAPI/inc/INamed.pypp.h \
+    PythonAPI/inc/SquaredFunctionDefault.pypp.h \
+    PythonAPI/inc/ChiSquaredModule.pypp.h \
+    PythonAPI/inc/FitSuite.pypp.h \
+    PythonAPI/inc/AttLimits.pypp.h \
+    PythonAPI/inc/IChiSquaredModule.pypp.h \
+    PythonAPI/inc/FitSuiteParameters.pypp.h 
 
 SOURCES +=  \ 
     PythonAPI/src/PythonModule.cpp \ 
-    PythonAPI/src/AttFitting.pypp.cpp \
+    PythonAPI/src/OutputDataSimpleNormalizer.pypp.cpp \
+    PythonAPI/src/SquaredFunctionWithSystematicError.pypp.cpp \
+    PythonAPI/src/INamed.pypp.cpp \
+    PythonAPI/src/FitParameter.pypp.cpp \
     PythonAPI/src/AttLimits.pypp.cpp \
     PythonAPI/src/ChiSquaredModule.pypp.cpp \
-    PythonAPI/src/FitObject.pypp.cpp \
-    PythonAPI/src/FitParameter.pypp.cpp \
-    PythonAPI/src/FitSuite.pypp.cpp \
-    PythonAPI/src/FitSuiteObjects.pypp.cpp \
-    PythonAPI/src/FitSuiteParameters.pypp.cpp \
     PythonAPI/src/IChiSquaredModule.pypp.cpp \
-    PythonAPI/src/IMinimizer.pypp.cpp \
-    PythonAPI/src/INamed.pypp.cpp \
-    PythonAPI/src/IOutputDataNormalizer.pypp.cpp \
-    PythonAPI/src/ISquaredFunction.pypp.cpp \
-    PythonAPI/src/MinimizerFactory.pypp.cpp \
-    PythonAPI/src/MinimizerOptions.pypp.cpp \
-    PythonAPI/src/OutputDataNormalizer.pypp.cpp \
-    PythonAPI/src/OutputDataSimpleNormalizer.pypp.cpp \
     PythonAPI/src/SquaredFunctionDefault.pypp.cpp \
     PythonAPI/src/SquaredFunctionWhichOnlyWorks.pypp.cpp \
+    PythonAPI/src/OutputDataNormalizer.pypp.cpp \
+    PythonAPI/src/FitSuite.pypp.cpp \
+    PythonAPI/src/IMinimizer.pypp.cpp \
     PythonAPI/src/SquaredFunctionWithGaussianError.pypp.cpp \
-    PythonAPI/src/SquaredFunctionWithSystematicError.pypp.cpp 
+    PythonAPI/src/MinimizerFactory.pypp.cpp \
+    PythonAPI/src/ISquaredFunction.pypp.cpp \
+    PythonAPI/src/IOutputDataNormalizer.pypp.cpp \
+    PythonAPI/src/FitSuiteObjects.pypp.cpp \
+    PythonAPI/src/FitObject.pypp.cpp \
+    PythonAPI/src/AttFitting.pypp.cpp \
+    PythonAPI/src/FitSuiteParameters.pypp.cpp \
+    PythonAPI/src/MinimizerOptions.pypp.cpp 
 
 INCLUDEPATH += ./PythonAPI/inc 
 DEPENDPATH  += ./PythonAPI/inc 
diff --git a/ThirdParty/eigen3/Eigen/src/MetisSupport/CMakeLists.txt b/ThirdParty/eigen3/Eigen/src/MetisSupport/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2bad314163c5044265aa6ac14e3767308dd04ba6
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/MetisSupport/CMakeLists.txt
@@ -0,0 +1,6 @@
+FILE(GLOB Eigen_MetisSupport_SRCS "*.h")
+
+INSTALL(FILES 
+  ${Eigen_MetisSupport_SRCS}
+  DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/MetisSupport COMPONENT Devel
+  )
diff --git a/ThirdParty/eigen3/Eigen/src/MetisSupport/MetisSupport.h b/ThirdParty/eigen3/Eigen/src/MetisSupport/MetisSupport.h
new file mode 100644
index 0000000000000000000000000000000000000000..f2bbef20c8fae299071462c087703e8faad3a0a8
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/MetisSupport/MetisSupport.h
@@ -0,0 +1,137 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef METIS_SUPPORT_H
+#define METIS_SUPPORT_H
+
+namespace Eigen {
+/**
+ * Get the fill-reducing ordering from the METIS package
+ * 
+ * If A is the original matrix and Ap is the permuted matrix, 
+ * the fill-reducing permutation is defined as follows :
+ * Row (column) i of A is the matperm(i) row (column) of Ap. 
+ * WARNING: As computed by METIS, this corresponds to the vector iperm (instead of perm)
+ */
+template <typename Index>
+class MetisOrdering
+{
+public:
+  typedef PermutationMatrix<Dynamic,Dynamic,Index> PermutationType;
+  typedef Matrix<Index,Dynamic,1> IndexVector; 
+  
+  template <typename MatrixType>
+  void get_symmetrized_graph(const MatrixType& A)
+  {
+    Index m = A.cols(); 
+    eigen_assert((A.rows() == A.cols()) && "ONLY FOR SQUARED MATRICES");
+    // Get the transpose of the input matrix 
+    MatrixType At = A.transpose(); 
+    // Get the number of nonzeros elements in each row/col of At+A
+    Index TotNz = 0; 
+    IndexVector visited(m); 
+    visited.setConstant(-1); 
+    for (int j = 0; j < m; j++)
+    {
+      // Compute the union structure of of A(j,:) and At(j,:)
+      visited(j) = j; // Do not include the diagonal element
+      // Get the nonzeros in row/column j of A
+      for (typename MatrixType::InnerIterator it(A, j); it; ++it)
+      {
+        Index idx = it.index(); // Get the row index (for column major) or column index (for row major)
+        if (visited(idx) != j ) 
+        {
+          visited(idx) = j; 
+          ++TotNz; 
+        }
+      }
+      //Get the nonzeros in row/column j of At
+      for (typename MatrixType::InnerIterator it(At, j); it; ++it)
+      {
+        Index idx = it.index(); 
+        if(visited(idx) != j)
+        {
+          visited(idx) = j; 
+          ++TotNz; 
+        }
+      }
+    }
+    // Reserve place for A + At
+    m_indexPtr.resize(m+1);
+    m_innerIndices.resize(TotNz); 
+
+    // Now compute the real adjacency list of each column/row 
+    visited.setConstant(-1); 
+    Index CurNz = 0; 
+    for (int j = 0; j < m; j++)
+    {
+      m_indexPtr(j) = CurNz; 
+      
+      visited(j) = j; // Do not include the diagonal element
+      // Add the pattern of row/column j of A to A+At
+      for (typename MatrixType::InnerIterator it(A,j); it; ++it)
+      {
+        Index idx = it.index(); // Get the row index (for column major) or column index (for row major)
+        if (visited(idx) != j ) 
+        {
+          visited(idx) = j; 
+          m_innerIndices(CurNz) = idx; 
+          CurNz++; 
+        }
+      }
+      //Add the pattern of row/column j of At to A+At
+      for (typename MatrixType::InnerIterator it(At, j); it; ++it)
+      {
+        Index idx = it.index(); 
+        if(visited(idx) != j)
+        {
+          visited(idx) = j; 
+          m_innerIndices(CurNz) = idx; 
+          ++CurNz; 
+        }
+      }
+    }
+    m_indexPtr(m) = CurNz;    
+  }
+  
+  template <typename MatrixType>
+  void operator() (const MatrixType& A, PermutationType& matperm)
+  {
+     Index m = A.cols();
+     IndexVector perm(m),iperm(m); 
+    // First, symmetrize the matrix graph. 
+     get_symmetrized_graph(A); 
+     int output_error;
+     
+     // Call the fill-reducing routine from METIS 
+     output_error = METIS_NodeND(&m, m_indexPtr.data(), m_innerIndices.data(), NULL, NULL, perm.data(), iperm.data());
+     
+    if(output_error != METIS_OK) 
+    {
+      //FIXME The ordering interface should define a class of possible errors 
+     std::cerr << "ERROR WHILE CALLING THE METIS PACKAGE \n"; 
+     return; 
+    }
+    
+    // Get the fill-reducing permutation 
+    //NOTE:  If Ap is the permuted matrix then perm and iperm vectors are defined as follows 
+    // Row (column) i of Ap is the perm(i) row(column) of A, and row (column) i of A is the iperm(i) row(column) of Ap
+    
+     matperm.resize(m);
+     for (int j = 0; j < m; j++)
+       matperm.indices()(iperm(j)) = j;
+   
+  }
+  
+  protected:
+    IndexVector m_indexPtr; // Pointer to the adjacenccy list of each row/column
+    IndexVector m_innerIndices; // Adjacency list 
+};
+
+}// end namespace eigen 
+#endif
diff --git a/ThirdParty/eigen3/Eigen/src/SPQRSupport/CMakeLists.txt b/ThirdParty/eigen3/Eigen/src/SPQRSupport/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4968beaf2c59bcec07fe1861b5d72cb4d6723a6d
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SPQRSupport/CMakeLists.txt
@@ -0,0 +1,6 @@
+FILE(GLOB Eigen_SPQRSupport_SRCS "*.h")
+
+INSTALL(FILES
+  ${Eigen_SPQRSupport_SRCS}
+  DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/SPQRSupport/ COMPONENT Devel
+  )
diff --git a/ThirdParty/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h b/ThirdParty/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h
new file mode 100644
index 0000000000000000000000000000000000000000..aa41f434c03ac294d63a42224ed0de7843fd2196
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h
@@ -0,0 +1,306 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Desire Nuentsa <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SUITESPARSEQRSUPPORT_H
+#define EIGEN_SUITESPARSEQRSUPPORT_H
+
+namespace Eigen {
+  
+  template<typename MatrixType> class SPQR; 
+  template<typename SPQRType> struct SPQRMatrixQReturnType; 
+  template<typename SPQRType> struct SPQRMatrixQTransposeReturnType; 
+  template <typename SPQRType, typename Derived> struct SPQR_QProduct;
+  namespace internal {
+    template <typename SPQRType> struct traits<SPQRMatrixQReturnType<SPQRType> >
+    {
+      typedef typename SPQRType::MatrixType ReturnType;
+    };
+    template <typename SPQRType> struct traits<SPQRMatrixQTransposeReturnType<SPQRType> >
+    {
+      typedef typename SPQRType::MatrixType ReturnType;
+    };
+    template <typename SPQRType, typename Derived> struct traits<SPQR_QProduct<SPQRType, Derived> >
+    {
+      typedef typename Derived::PlainObject ReturnType;
+    };
+  } // End namespace internal
+  
+/**
+ * \ingroup SPQRSupport_Module
+ * \class SPQR
+ * \brief Sparse QR factorization based on SuiteSparseQR library
+ * 
+ * This class is used to perform a multithreaded and multifrontal rank-revealing QR decomposition 
+ * of sparse matrices. The result is then used to solve linear leasts_square systems.
+ * Clearly, a QR factorization is returned such that A*P = Q*R where :
+ * 
+ * P is the column permutation. Use colsPermutation() to get it.
+ * 
+ * Q is the orthogonal matrix represented as Householder reflectors. 
+ * Use matrixQ() to get an expression and matrixQ().transpose() to get the transpose.
+ * You can then apply it to a vector.
+ * 
+ * R is the sparse triangular factor. Use matrixQR() to get it as SparseMatrix.
+ * NOTE : The Index type of R is always UF_long. You can get it with SPQR::Index
+ * 
+ * \tparam _MatrixType The type of the sparse matrix A, must be a column-major SparseMatrix<>
+ * NOTE 
+ * 
+ */
+template<typename _MatrixType>
+class SPQR
+{
+  public:
+    typedef typename _MatrixType::Scalar Scalar;
+    typedef typename _MatrixType::RealScalar RealScalar;
+    typedef UF_long Index ; 
+    typedef SparseMatrix<Scalar, ColMajor, Index> MatrixType;
+    typedef PermutationMatrix<Dynamic, Dynamic> PermutationType;
+  public:
+    SPQR() 
+    : m_ordering(SPQR_ORDERING_DEFAULT),
+      m_allow_tol(SPQR_DEFAULT_TOL),
+      m_tolerance (NumTraits<Scalar>::epsilon())
+    { 
+      cholmod_l_start(&m_cc);
+    }
+    
+    SPQR(const _MatrixType& matrix) 
+    : m_ordering(SPQR_ORDERING_DEFAULT),
+      m_allow_tol(SPQR_DEFAULT_TOL),
+      m_tolerance (NumTraits<Scalar>::epsilon())
+    {
+      cholmod_l_start(&m_cc);
+      compute(matrix);
+    }
+    
+    ~SPQR()
+    {
+      // Calls SuiteSparseQR_free()
+      cholmod_l_free_sparse(&m_H, &m_cc);
+      cholmod_l_free_sparse(&m_cR, &m_cc);
+      cholmod_l_free_dense(&m_HTau, &m_cc);
+      std::free(m_E);
+      std::free(m_HPinv);
+      cholmod_l_finish(&m_cc);
+    }
+    void compute(const _MatrixType& matrix)
+    {
+      MatrixType mat(matrix);
+      cholmod_sparse A; 
+      A = viewAsCholmod(mat);
+      Index col = matrix.cols();
+      m_rank = SuiteSparseQR<Scalar>(m_ordering, m_tolerance, col, &A, 
+                             &m_cR, &m_E, &m_H, &m_HPinv, &m_HTau, &m_cc);
+
+      if (!m_cR)
+      {
+        m_info = NumericalIssue; 
+        m_isInitialized = false;
+        return;
+      }
+      m_info = Success;
+      m_isInitialized = true;
+      m_isRUpToDate = false;
+    }
+    /** 
+     * Get the number of rows of the input matrix and the Q matrix
+     */
+    inline Index rows() const {return m_H->nrow; }
+    
+    /** 
+     * Get the number of columns of the input matrix. 
+     */
+    inline Index cols() const { return m_cR->ncol; }
+   
+      /** \returns the solution X of \f$ A X = B \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<SPQR, Rhs> solve(const MatrixBase<Rhs>& B) const 
+    {
+      eigen_assert(m_isInitialized && " The QR factorization should be computed first, call compute()");
+      eigen_assert(this->rows()==B.rows()
+                    && "SPQR::solve(): invalid number of rows of the right hand side matrix B");
+          return internal::solve_retval<SPQR, Rhs>(*this, B.derived());
+    }
+    
+    template<typename Rhs, typename Dest>
+    void _solve(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const
+    {
+      eigen_assert(m_isInitialized && " The QR factorization should be computed first, call compute()");
+      eigen_assert(b.cols()==1 && "This method is for vectors only");
+      
+      //Compute Q^T * b
+      Dest y; 
+      y = matrixQ().transpose() * b;
+        // Solves with the triangular matrix R
+      Index rk = this->rank();
+      y.topRows(rk) = this->matrixR().topLeftCorner(rk, rk).template triangularView<Upper>().solve(y.topRows(rk));
+      y.bottomRows(cols()-rk).setZero();
+      // Apply the column permutation 
+      dest.topRows(cols()) = colsPermutation() * y.topRows(cols());
+      
+      m_info = Success;
+    }
+    
+    /** \returns the sparse triangular factor R. It is a sparse matrix
+     */
+    const MatrixType matrixR() const
+    {
+      eigen_assert(m_isInitialized && " The QR factorization should be computed first, call compute()");
+      if(!m_isRUpToDate) {
+        m_R = viewAsEigen<Scalar,ColMajor, typename MatrixType::Index>(*m_cR);
+        m_isRUpToDate = true;
+      }
+      return m_R;
+    }
+    /// Get an expression of the matrix Q
+    SPQRMatrixQReturnType<SPQR> matrixQ() const
+    {
+      return SPQRMatrixQReturnType<SPQR>(*this);
+    }
+    /// Get the permutation that was applied to columns of A
+    PermutationType colsPermutation() const
+    { 
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      Index n = m_cR->ncol;
+      PermutationType colsPerm(n);
+      for(Index j = 0; j <n; j++) colsPerm.indices()(j) = m_E[j];
+      return colsPerm; 
+      
+    }
+    /**
+     * Gets the rank of the matrix. 
+     * It should be equal to matrixQR().cols if the matrix is full-rank
+     */
+    Index rank() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_cc.SPQR_istat[4];
+    }
+    /// Set the fill-reducing ordering method to be used
+    void setSPQROrdering(int ord) { m_ordering = ord;}
+    /// Set the tolerance tol to treat columns with 2-norm < =tol as zero
+    void setPivotThreshold(const RealScalar& tol) { m_tolerance = tol; }
+    
+    /** \returns a pointer to the SPQR workspace */
+    cholmod_common *cholmodCommon() const { return &m_cc; }
+    
+    
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the sparse QR can not be computed
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_info;
+    }
+  protected:
+    bool m_isInitialized;
+    bool m_analysisIsOk;
+    bool m_factorizationIsOk;
+    mutable bool m_isRUpToDate;
+    mutable ComputationInfo m_info;
+    int m_ordering; // Ordering method to use, see SPQR's manual
+    int m_allow_tol; // Allow to use some tolerance during numerical factorization.
+    RealScalar m_tolerance; // treat columns with 2-norm below this tolerance as zero
+    mutable cholmod_sparse *m_cR; // The sparse R factor in cholmod format
+    mutable MatrixType m_R; // The sparse matrix R in Eigen format
+    mutable Index *m_E; // The permutation applied to columns
+    mutable cholmod_sparse *m_H;  //The householder vectors
+    mutable Index *m_HPinv; // The row permutation of H
+    mutable cholmod_dense *m_HTau; // The Householder coefficients
+    mutable Index m_rank; // The rank of the matrix
+    mutable cholmod_common m_cc; // Workspace and parameters
+    template<typename ,typename > friend struct SPQR_QProduct;
+};
+
+template <typename SPQRType, typename Derived>
+struct SPQR_QProduct : ReturnByValue<SPQR_QProduct<SPQRType,Derived> >
+{
+  typedef typename SPQRType::Scalar Scalar;
+  typedef typename SPQRType::Index Index;
+  //Define the constructor to get reference to argument types
+  SPQR_QProduct(const SPQRType& spqr, const Derived& other, bool transpose) : m_spqr(spqr),m_other(other),m_transpose(transpose) {}
+  
+  inline Index rows() const { return m_transpose ? m_spqr.rows() : m_spqr.cols(); }
+  inline Index cols() const { return m_other.cols(); }
+  // Assign to a vector
+  template<typename ResType>
+  void evalTo(ResType& res) const
+  {
+    cholmod_dense y_cd;
+    cholmod_dense *x_cd; 
+    int method = m_transpose ? SPQR_QTX : SPQR_QX; 
+    cholmod_common *cc = m_spqr.cholmodCommon();
+    y_cd = viewAsCholmod(m_other.const_cast_derived());
+    x_cd = SuiteSparseQR_qmult<Scalar>(method, m_spqr.m_H, m_spqr.m_HTau, m_spqr.m_HPinv, &y_cd, cc);
+    res = Matrix<Scalar,ResType::RowsAtCompileTime,ResType::ColsAtCompileTime>::Map(reinterpret_cast<Scalar*>(x_cd->x), x_cd->nrow, x_cd->ncol);
+    cholmod_l_free_dense(&x_cd, cc);
+  }
+  const SPQRType& m_spqr; 
+  const Derived& m_other; 
+  bool m_transpose; 
+  
+};
+template<typename SPQRType>
+struct SPQRMatrixQReturnType{
+  
+  SPQRMatrixQReturnType(const SPQRType& spqr) : m_spqr(spqr) {}
+  template<typename Derived>
+  SPQR_QProduct<SPQRType, Derived> operator*(const MatrixBase<Derived>& other)
+  {
+    return SPQR_QProduct<SPQRType,Derived>(m_spqr,other.derived(),false);
+  }
+  SPQRMatrixQTransposeReturnType<SPQRType> adjoint() const
+  {
+    return SPQRMatrixQTransposeReturnType<SPQRType>(m_spqr);
+  }
+  // To use for operations with the transpose of Q
+  SPQRMatrixQTransposeReturnType<SPQRType> transpose() const
+  {
+    return SPQRMatrixQTransposeReturnType<SPQRType>(m_spqr);
+  }
+  const SPQRType& m_spqr;
+};
+
+template<typename SPQRType>
+struct SPQRMatrixQTransposeReturnType{
+  SPQRMatrixQTransposeReturnType(const SPQRType& spqr) : m_spqr(spqr) {}
+  template<typename Derived>
+  SPQR_QProduct<SPQRType,Derived> operator*(const MatrixBase<Derived>& other)
+  {
+    return SPQR_QProduct<SPQRType,Derived>(m_spqr,other.derived(), true);
+  }
+  const SPQRType& m_spqr;
+};
+
+namespace internal {
+  
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<SPQR<_MatrixType>, Rhs>
+  : solve_retval_base<SPQR<_MatrixType>, Rhs>
+{
+  typedef SPQR<_MatrixType> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+} // end namespace internal
+
+}// End namespace Eigen
+#endif
diff --git a/ThirdParty/eigen3/Eigen/src/SparseLU/CMakeLists.txt b/ThirdParty/eigen3/Eigen/src/SparseLU/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..69729ee8961aa7d4ef514e9f890de0d29f12161f
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SparseLU/CMakeLists.txt
@@ -0,0 +1,6 @@
+FILE(GLOB Eigen_SparseLU_SRCS "*.h")
+
+INSTALL(FILES
+  ${Eigen_SparseLU_SRCS}
+  DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/SparseLU COMPONENT Devel
+  )
diff --git a/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU.h b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU.h
new file mode 100644
index 0000000000000000000000000000000000000000..dd9eab2c2c41fa57796c8618c1c29e372ab736ee
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU.h
@@ -0,0 +1,756 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+#ifndef EIGEN_SPARSE_LU_H
+#define EIGEN_SPARSE_LU_H
+
+namespace Eigen {
+
+template <typename _MatrixType, typename _OrderingType = COLAMDOrdering<typename _MatrixType::Index> > class SparseLU;
+template <typename MappedSparseMatrixType> struct SparseLUMatrixLReturnType;
+template <typename MatrixLType, typename MatrixUType> struct SparseLUMatrixUReturnType;
+
+/** \ingroup SparseLU_Module
+  * \class SparseLU
+  * 
+  * \brief Sparse supernodal LU factorization for general matrices
+  * 
+  * This class implements the supernodal LU factorization for general matrices.
+  * It uses the main techniques from the sequential SuperLU package 
+  * (http://crd-legacy.lbl.gov/~xiaoye/SuperLU/). It handles transparently real 
+  * and complex arithmetics with single and double precision, depending on the 
+  * scalar type of your input matrix. 
+  * The code has been optimized to provide BLAS-3 operations during supernode-panel updates. 
+  * It benefits directly from the built-in high-performant Eigen BLAS routines. 
+  * Moreover, when the size of a supernode is very small, the BLAS calls are avoided to 
+  * enable a better optimization from the compiler. For best performance, 
+  * you should compile it with NDEBUG flag to avoid the numerous bounds checking on vectors. 
+  * 
+  * An important parameter of this class is the ordering method. It is used to reorder the columns 
+  * (and eventually the rows) of the matrix to reduce the number of new elements that are created during 
+  * numerical factorization. The cheapest method available is COLAMD. 
+  * See  \link OrderingMethods_Module the OrderingMethods module \endlink for the list of 
+  * built-in and external ordering methods. 
+  *
+  * Simple example with key steps 
+  * \code
+  * VectorXd x(n), b(n);
+  * SparseMatrix<double, ColMajor> A;
+  * SparseLU<SparseMatrix<scalar, ColMajor>, COLAMDOrdering<Index> >   solver;
+  * // fill A and b;
+  * // Compute the ordering permutation vector from the structural pattern of A
+  * solver.analyzePattern(A); 
+  * // Compute the numerical factorization 
+  * solver.factorize(A); 
+  * //Use the factors to solve the linear system 
+  * x = solver.solve(b); 
+  * \endcode
+  * 
+  * \warning The input matrix A should be in a \b compressed and \b column-major form.
+  * Otherwise an expensive copy will be made. You can call the inexpensive makeCompressed() to get a compressed matrix.
+  * 
+  * \note Unlike the initial SuperLU implementation, there is no step to equilibrate the matrix. 
+  * For badly scaled matrices, this step can be useful to reduce the pivoting during factorization. 
+  * If this is the case for your matrices, you can try the basic scaling method at
+  *  "unsupported/Eigen/src/IterativeSolvers/Scaling.h"
+  * 
+  * \tparam _MatrixType The type of the sparse matrix. It must be a column-major SparseMatrix<>
+  * \tparam _OrderingType The ordering method to use, either AMD, COLAMD or METIS. Default is COLMAD
+  * 
+  * 
+  * \sa \ref TutorialSparseDirectSolvers
+  * \sa \ref OrderingMethods_Module
+  */
+template <typename _MatrixType, typename _OrderingType>
+class SparseLU : public internal::SparseLUImpl<typename _MatrixType::Scalar, typename _MatrixType::Index>
+{
+  public:
+    typedef _MatrixType MatrixType; 
+    typedef _OrderingType OrderingType;
+    typedef typename MatrixType::Scalar Scalar; 
+    typedef typename MatrixType::RealScalar RealScalar; 
+    typedef typename MatrixType::Index Index; 
+    typedef SparseMatrix<Scalar,ColMajor,Index> NCMatrix;
+    typedef internal::MappedSuperNodalMatrix<Scalar, Index> SCMatrix; 
+    typedef Matrix<Scalar,Dynamic,1> ScalarVector;
+    typedef Matrix<Index,Dynamic,1> IndexVector;
+    typedef PermutationMatrix<Dynamic, Dynamic, Index> PermutationType;
+    typedef internal::SparseLUImpl<Scalar, Index> Base;
+    
+  public:
+    SparseLU():m_isInitialized(true),m_lastError(""),m_Ustore(0,0,0,0,0,0),m_symmetricmode(false),m_diagpivotthresh(1.0),m_detPermR(1)
+    {
+      initperfvalues(); 
+    }
+    SparseLU(const MatrixType& matrix):m_isInitialized(true),m_lastError(""),m_Ustore(0,0,0,0,0,0),m_symmetricmode(false),m_diagpivotthresh(1.0),m_detPermR(1)
+    {
+      initperfvalues(); 
+      compute(matrix);
+    }
+    
+    ~SparseLU()
+    {
+      // Free all explicit dynamic pointers 
+    }
+    
+    void analyzePattern (const MatrixType& matrix);
+    void factorize (const MatrixType& matrix);
+    void simplicialfactorize(const MatrixType& matrix);
+    
+    /**
+      * Compute the symbolic and numeric factorization of the input sparse matrix.
+      * The input matrix should be in column-major storage. 
+      */
+    void compute (const MatrixType& matrix)
+    {
+      // Analyze 
+      analyzePattern(matrix); 
+      //Factorize
+      factorize(matrix);
+    } 
+    
+    inline Index rows() const { return m_mat.rows(); }
+    inline Index cols() const { return m_mat.cols(); }
+    /** Indicate that the pattern of the input matrix is symmetric */
+    void isSymmetric(bool sym)
+    {
+      m_symmetricmode = sym;
+    }
+    
+    /** \returns an expression of the matrix L, internally stored as supernodes
+      * The only operation available with this expression is the triangular solve
+      * \code
+      * y = b; matrixL().solveInPlace(y);
+      * \endcode
+      */
+    SparseLUMatrixLReturnType<SCMatrix> matrixL() const
+    {
+      return SparseLUMatrixLReturnType<SCMatrix>(m_Lstore);
+    }
+    /** \returns an expression of the matrix U,
+      * The only operation available with this expression is the triangular solve
+      * \code
+      * y = b; matrixU().solveInPlace(y);
+      * \endcode
+      */
+    SparseLUMatrixUReturnType<SCMatrix,MappedSparseMatrix<Scalar,ColMajor,Index> > matrixU() const
+    {
+      return SparseLUMatrixUReturnType<SCMatrix, MappedSparseMatrix<Scalar,ColMajor,Index> >(m_Lstore, m_Ustore);
+    }
+
+    /**
+      * \returns a reference to the row matrix permutation \f$ P_r \f$ such that \f$P_r A P_c^T = L U\f$
+      * \sa colsPermutation()
+      */
+    inline const PermutationType& rowsPermutation() const
+    {
+      return m_perm_r;
+    }
+    /**
+      * \returns a reference to the column matrix permutation\f$ P_c^T \f$ such that \f$P_r A P_c^T = L U\f$
+      * \sa rowsPermutation()
+      */
+    inline const PermutationType& colsPermutation() const
+    {
+      return m_perm_c;
+    }
+    /** Set the threshold used for a diagonal entry to be an acceptable pivot. */
+    void setPivotThreshold(const RealScalar& thresh)
+    {
+      m_diagpivotthresh = thresh; 
+    }
+
+    /** \returns the solution X of \f$ A X = B \f$ using the current decomposition of A.
+      *
+      * \warning the destination matrix X in X = this->solve(B) must be colmun-major.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<SparseLU, Rhs> solve(const MatrixBase<Rhs>& B) const 
+    {
+      eigen_assert(m_factorizationIsOk && "SparseLU is not initialized."); 
+      eigen_assert(rows()==B.rows()
+                    && "SparseLU::solve(): invalid number of rows of the right hand side matrix B");
+          return internal::solve_retval<SparseLU, Rhs>(*this, B.derived());
+    }
+
+    /** \returns the solution X of \f$ A X = B \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::sparse_solve_retval<SparseLU, Rhs> solve(const SparseMatrixBase<Rhs>& B) const 
+    {
+      eigen_assert(m_factorizationIsOk && "SparseLU is not initialized."); 
+      eigen_assert(rows()==B.rows()
+                    && "SparseLU::solve(): invalid number of rows of the right hand side matrix B");
+          return internal::sparse_solve_retval<SparseLU, Rhs>(*this, B.derived());
+    }
+    
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the LU factorization reports a problem, zero diagonal for instance
+      *          \c InvalidInput if the input matrix is invalid
+      *
+      * \sa iparm()          
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_info;
+    }
+    
+    /**
+      * \returns A string describing the type of error
+      */
+    std::string lastErrorMessage() const
+    {
+      return m_lastError; 
+    }
+
+    template<typename Rhs, typename Dest>
+    bool _solve(const MatrixBase<Rhs> &B, MatrixBase<Dest> &_X) const
+    {
+      Dest& X(_X.derived());
+      eigen_assert(m_factorizationIsOk && "The matrix should be factorized first");
+      EIGEN_STATIC_ASSERT((Dest::Flags&RowMajorBit)==0,
+                        THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES);
+      
+      // Permute the right hand side to form X = Pr*B
+      // on return, X is overwritten by the computed solution
+      X.resize(B.rows(),B.cols());
+      for(Index j = 0; j < B.cols(); ++j)
+        X.col(j) = rowsPermutation() * B.col(j);
+      
+      //Forward substitution with L
+      this->matrixL().solveInPlace(X);
+      this->matrixU().solveInPlace(X);
+      
+      // Permute back the solution 
+      for (Index j = 0; j < B.cols(); ++j)
+        X.col(j) = colsPermutation().inverse() * X.col(j);
+      
+      return true; 
+    }
+    
+    /**
+      * \returns the absolute value of the determinant of the matrix of which
+      * *this is the QR decomposition.
+      *
+      * \warning a determinant can be very big or small, so for matrices
+      * of large enough dimension, there is a risk of overflow/underflow.
+      * One way to work around that is to use logAbsDeterminant() instead.
+      *
+      * \sa logAbsDeterminant(), signDeterminant()
+      */
+     Scalar absDeterminant()
+    {
+      eigen_assert(m_factorizationIsOk && "The matrix should be factorized first.");
+      // Initialize with the determinant of the row matrix
+      Scalar det = Scalar(1.);
+      //Note that the diagonal blocks of U are stored in supernodes,
+      // which are available in the  L part :)
+      for (Index j = 0; j < this->cols(); ++j)
+      {
+        for (typename SCMatrix::InnerIterator it(m_Lstore, j); it; ++it)
+        {
+          if(it.row() < j) continue;
+          if(it.row() == j)
+          {
+            det *= (std::abs)(it.value());
+            break;
+          }
+        }
+       }
+       return det;
+     }
+
+     /** \returns the natural log of the absolute value of the determinant of the matrix
+       * of which **this is the QR decomposition
+       *
+       * \note This method is useful to work around the risk of overflow/underflow that's
+       * inherent to the determinant computation.
+       *
+       * \sa absDeterminant(), signDeterminant()
+       */
+     Scalar logAbsDeterminant() const
+     {
+       eigen_assert(m_factorizationIsOk && "The matrix should be factorized first.");
+       Scalar det = Scalar(0.);
+       for (Index j = 0; j < this->cols(); ++j)
+       {
+         for (typename SCMatrix::InnerIterator it(m_Lstore, j); it; ++it)
+         {
+           if(it.row() < j) continue;
+           if(it.row() == j)
+           {
+             det += (std::log)((std::abs)(it.value()));
+             break;
+           }
+         }
+       }
+       return det;
+     }
+
+     /** \returns A number representing the sign of the determinant
+       *
+       * \sa absDeterminant(), logAbsDeterminant()
+       */
+     Scalar signDeterminant()
+     {
+       eigen_assert(m_factorizationIsOk && "The matrix should be factorized first.");
+       return Scalar(m_detPermR);
+     }
+
+  protected:
+    // Functions 
+    void initperfvalues()
+    {
+      m_perfv.panel_size = 1;
+      m_perfv.relax = 1; 
+      m_perfv.maxsuper = 128; 
+      m_perfv.rowblk = 16; 
+      m_perfv.colblk = 8; 
+      m_perfv.fillfactor = 20;  
+    }
+      
+    // Variables 
+    mutable ComputationInfo m_info;
+    bool m_isInitialized;
+    bool m_factorizationIsOk;
+    bool m_analysisIsOk;
+    std::string m_lastError;
+    NCMatrix m_mat; // The input (permuted ) matrix 
+    SCMatrix m_Lstore; // The lower triangular matrix (supernodal)
+    MappedSparseMatrix<Scalar,ColMajor,Index> m_Ustore; // The upper triangular matrix
+    PermutationType m_perm_c; // Column permutation 
+    PermutationType m_perm_r ; // Row permutation
+    IndexVector m_etree; // Column elimination tree 
+    
+    typename Base::GlobalLU_t m_glu; 
+                               
+    // SparseLU options 
+    bool m_symmetricmode;
+    // values for performance 
+    internal::perfvalues<Index> m_perfv; 
+    RealScalar m_diagpivotthresh; // Specifies the threshold used for a diagonal entry to be an acceptable pivot
+    Index m_nnzL, m_nnzU; // Nonzeros in L and U factors 
+    Index m_detPermR; // Determinant of the coefficient matrix
+  private:
+    // Disable copy constructor 
+    SparseLU (const SparseLU& );
+  
+}; // End class SparseLU
+
+
+
+// Functions needed by the anaysis phase
+/** 
+  * Compute the column permutation to minimize the fill-in
+  * 
+  *  - Apply this permutation to the input matrix - 
+  * 
+  *  - Compute the column elimination tree on the permuted matrix 
+  * 
+  *  - Postorder the elimination tree and the column permutation
+  * 
+  */
+template <typename MatrixType, typename OrderingType>
+void SparseLU<MatrixType, OrderingType>::analyzePattern(const MatrixType& mat)
+{
+  
+  //TODO  It is possible as in SuperLU to compute row and columns scaling vectors to equilibrate the matrix mat.
+  
+  OrderingType ord; 
+  ord(mat,m_perm_c);
+  
+  // Apply the permutation to the column of the input  matrix
+  //First copy the whole input matrix. 
+  m_mat = mat;
+  if (m_perm_c.size()) {
+    m_mat.uncompress(); //NOTE: The effect of this command is only to create the InnerNonzeros pointers. FIXME : This vector is filled but not subsequently used.  
+    //Then, permute only the column pointers
+    const Index * outerIndexPtr;
+    if (mat.isCompressed()) outerIndexPtr = mat.outerIndexPtr();
+    else
+    {
+      Index *outerIndexPtr_t = new Index[mat.cols()+1];
+      for(Index i = 0; i <= mat.cols(); i++) outerIndexPtr_t[i] = m_mat.outerIndexPtr()[i];
+      outerIndexPtr = outerIndexPtr_t;
+    }
+    for (Index i = 0; i < mat.cols(); i++)
+    {
+      m_mat.outerIndexPtr()[m_perm_c.indices()(i)] = outerIndexPtr[i];
+      m_mat.innerNonZeroPtr()[m_perm_c.indices()(i)] = outerIndexPtr[i+1] - outerIndexPtr[i];
+    }
+    if(!mat.isCompressed()) delete[] outerIndexPtr;
+  }
+  // Compute the column elimination tree of the permuted matrix 
+  IndexVector firstRowElt;
+  internal::coletree(m_mat, m_etree,firstRowElt); 
+     
+  // In symmetric mode, do not do postorder here
+  if (!m_symmetricmode) {
+    IndexVector post, iwork; 
+    // Post order etree
+    internal::treePostorder(m_mat.cols(), m_etree, post); 
+      
+   
+    // Renumber etree in postorder 
+    Index m = m_mat.cols(); 
+    iwork.resize(m+1);
+    for (Index i = 0; i < m; ++i) iwork(post(i)) = post(m_etree(i));
+    m_etree = iwork;
+    
+    // Postmultiply A*Pc by post, i.e reorder the matrix according to the postorder of the etree
+    PermutationType post_perm(m); 
+    for (Index i = 0; i < m; i++) 
+      post_perm.indices()(i) = post(i); 
+        
+    // Combine the two permutations : postorder the permutation for future use
+    if(m_perm_c.size()) {
+      m_perm_c = post_perm * m_perm_c;
+    }
+    
+  } // end postordering 
+  
+  m_analysisIsOk = true; 
+}
+
+// Functions needed by the numerical factorization phase
+
+
+/** 
+  *  - Numerical factorization 
+  *  - Interleaved with the symbolic factorization 
+  * On exit,  info is 
+  * 
+  *    = 0: successful factorization
+  * 
+  *    > 0: if info = i, and i is
+  * 
+  *       <= A->ncol: U(i,i) is exactly zero. The factorization has
+  *          been completed, but the factor U is exactly singular,
+  *          and division by zero will occur if it is used to solve a
+  *          system of equations.
+  * 
+  *       > A->ncol: number of bytes allocated when memory allocation
+  *         failure occurred, plus A->ncol. If lwork = -1, it is
+  *         the estimated amount of space needed, plus A->ncol.  
+  */
+template <typename MatrixType, typename OrderingType>
+void SparseLU<MatrixType, OrderingType>::factorize(const MatrixType& matrix)
+{
+  using internal::emptyIdxLU;
+  eigen_assert(m_analysisIsOk && "analyzePattern() should be called first"); 
+  eigen_assert((matrix.rows() == matrix.cols()) && "Only for squared matrices");
+  
+  typedef typename IndexVector::Scalar Index; 
+  
+  
+  // Apply the column permutation computed in analyzepattern()
+  //   m_mat = matrix * m_perm_c.inverse(); 
+  m_mat = matrix;
+  if (m_perm_c.size()) 
+  {
+    m_mat.uncompress(); //NOTE: The effect of this command is only to create the InnerNonzeros pointers.
+    //Then, permute only the column pointers
+    const Index * outerIndexPtr;
+    if (matrix.isCompressed()) outerIndexPtr = matrix.outerIndexPtr();
+    else
+    {
+      Index* outerIndexPtr_t = new Index[matrix.cols()+1];
+      for(Index i = 0; i <= matrix.cols(); i++) outerIndexPtr_t[i] = m_mat.outerIndexPtr()[i];
+      outerIndexPtr = outerIndexPtr_t;
+    }
+    for (Index i = 0; i < matrix.cols(); i++)
+    {
+      m_mat.outerIndexPtr()[m_perm_c.indices()(i)] = outerIndexPtr[i];
+      m_mat.innerNonZeroPtr()[m_perm_c.indices()(i)] = outerIndexPtr[i+1] - outerIndexPtr[i];
+    }
+    if(!matrix.isCompressed()) delete[] outerIndexPtr;
+  } 
+  else 
+  { //FIXME This should not be needed if the empty permutation is handled transparently
+    m_perm_c.resize(matrix.cols());
+    for(Index i = 0; i < matrix.cols(); ++i) m_perm_c.indices()(i) = i;
+  }
+  
+  Index m = m_mat.rows();
+  Index n = m_mat.cols();
+  Index nnz = m_mat.nonZeros();
+  Index maxpanel = m_perfv.panel_size * m;
+  // Allocate working storage common to the factor routines
+  Index lwork = 0;
+  Index info = Base::memInit(m, n, nnz, lwork, m_perfv.fillfactor, m_perfv.panel_size, m_glu); 
+  if (info) 
+  {
+    m_lastError = "UNABLE TO ALLOCATE WORKING MEMORY\n\n" ;
+    m_factorizationIsOk = false;
+    return ; 
+  }
+  
+  // Set up pointers for integer working arrays 
+  IndexVector segrep(m); segrep.setZero();
+  IndexVector parent(m); parent.setZero();
+  IndexVector xplore(m); xplore.setZero();
+  IndexVector repfnz(maxpanel);
+  IndexVector panel_lsub(maxpanel);
+  IndexVector xprune(n); xprune.setZero();
+  IndexVector marker(m*internal::LUNoMarker); marker.setZero();
+  
+  repfnz.setConstant(-1); 
+  panel_lsub.setConstant(-1);
+  
+  // Set up pointers for scalar working arrays 
+  ScalarVector dense; 
+  dense.setZero(maxpanel);
+  ScalarVector tempv; 
+  tempv.setZero(internal::LUnumTempV(m, m_perfv.panel_size, m_perfv.maxsuper, /*m_perfv.rowblk*/m) );
+  
+  // Compute the inverse of perm_c
+  PermutationType iperm_c(m_perm_c.inverse()); 
+  
+  // Identify initial relaxed snodes
+  IndexVector relax_end(n);
+  if ( m_symmetricmode == true ) 
+    Base::heap_relax_snode(n, m_etree, m_perfv.relax, marker, relax_end);
+  else
+    Base::relax_snode(n, m_etree, m_perfv.relax, marker, relax_end);
+  
+  
+  m_perm_r.resize(m); 
+  m_perm_r.indices().setConstant(-1);
+  marker.setConstant(-1);
+  m_detPermR = 1; // Record the determinant of the row permutation
+  
+  m_glu.supno(0) = emptyIdxLU; m_glu.xsup.setConstant(0);
+  m_glu.xsup(0) = m_glu.xlsub(0) = m_glu.xusub(0) = m_glu.xlusup(0) = Index(0);
+  
+  // Work on one 'panel' at a time. A panel is one of the following :
+  //  (a) a relaxed supernode at the bottom of the etree, or
+  //  (b) panel_size contiguous columns, <panel_size> defined by the user
+  Index jcol; 
+  IndexVector panel_histo(n);
+  Index pivrow; // Pivotal row number in the original row matrix
+  Index nseg1; // Number of segments in U-column above panel row jcol
+  Index nseg; // Number of segments in each U-column 
+  Index irep; 
+  Index i, k, jj; 
+  for (jcol = 0; jcol < n; )
+  {
+    // Adjust panel size so that a panel won't overlap with the next relaxed snode. 
+    Index panel_size = m_perfv.panel_size; // upper bound on panel width
+    for (k = jcol + 1; k < (std::min)(jcol+panel_size, n); k++)
+    {
+      if (relax_end(k) != emptyIdxLU) 
+      {
+        panel_size = k - jcol; 
+        break; 
+      }
+    }
+    if (k == n) 
+      panel_size = n - jcol; 
+      
+    // Symbolic outer factorization on a panel of columns 
+    Base::panel_dfs(m, panel_size, jcol, m_mat, m_perm_r.indices(), nseg1, dense, panel_lsub, segrep, repfnz, xprune, marker, parent, xplore, m_glu); 
+    
+    // Numeric sup-panel updates in topological order 
+    Base::panel_bmod(m, panel_size, jcol, nseg1, dense, tempv, segrep, repfnz, m_glu); 
+    
+    // Sparse LU within the panel, and below the panel diagonal 
+    for ( jj = jcol; jj< jcol + panel_size; jj++) 
+    {
+      k = (jj - jcol) * m; // Column index for w-wide arrays 
+      
+      nseg = nseg1; // begin after all the panel segments
+      //Depth-first-search for the current column
+      VectorBlock<IndexVector> panel_lsubk(panel_lsub, k, m);
+      VectorBlock<IndexVector> repfnz_k(repfnz, k, m); 
+      info = Base::column_dfs(m, jj, m_perm_r.indices(), m_perfv.maxsuper, nseg, panel_lsubk, segrep, repfnz_k, xprune, marker, parent, xplore, m_glu); 
+      if ( info ) 
+      {
+        m_lastError =  "UNABLE TO EXPAND MEMORY IN COLUMN_DFS() ";
+        m_info = NumericalIssue; 
+        m_factorizationIsOk = false; 
+        return; 
+      }
+      // Numeric updates to this column 
+      VectorBlock<ScalarVector> dense_k(dense, k, m); 
+      VectorBlock<IndexVector> segrep_k(segrep, nseg1, m-nseg1); 
+      info = Base::column_bmod(jj, (nseg - nseg1), dense_k, tempv, segrep_k, repfnz_k, jcol, m_glu); 
+      if ( info ) 
+      {
+        m_lastError = "UNABLE TO EXPAND MEMORY IN COLUMN_BMOD() ";
+        m_info = NumericalIssue; 
+        m_factorizationIsOk = false; 
+        return; 
+      }
+      
+      // Copy the U-segments to ucol(*)
+      info = Base::copy_to_ucol(jj, nseg, segrep, repfnz_k ,m_perm_r.indices(), dense_k, m_glu); 
+      if ( info ) 
+      {
+        m_lastError = "UNABLE TO EXPAND MEMORY IN COPY_TO_UCOL() ";
+        m_info = NumericalIssue; 
+        m_factorizationIsOk = false; 
+        return; 
+      }
+      
+      // Form the L-segment 
+      info = Base::pivotL(jj, m_diagpivotthresh, m_perm_r.indices(), iperm_c.indices(), pivrow, m_glu);
+      if ( info ) 
+      {
+        m_lastError = "THE MATRIX IS STRUCTURALLY SINGULAR ... ZERO COLUMN AT ";
+        std::ostringstream returnInfo;
+        returnInfo << info; 
+        m_lastError += returnInfo.str();
+        m_info = NumericalIssue; 
+        m_factorizationIsOk = false; 
+        return; 
+      }
+      
+      // Update the determinant of the row permutation matrix
+      if (pivrow != jj) m_detPermR *= -1;
+
+      // Prune columns (0:jj-1) using column jj
+      Base::pruneL(jj, m_perm_r.indices(), pivrow, nseg, segrep, repfnz_k, xprune, m_glu); 
+      
+      // Reset repfnz for this column 
+      for (i = 0; i < nseg; i++)
+      {
+        irep = segrep(i); 
+        repfnz_k(irep) = emptyIdxLU; 
+      }
+    } // end SparseLU within the panel  
+    jcol += panel_size;  // Move to the next panel
+  } // end for -- end elimination 
+  
+  // Count the number of nonzeros in factors 
+  Base::countnz(n, m_nnzL, m_nnzU, m_glu); 
+  // Apply permutation  to the L subscripts 
+  Base::fixupL(n, m_perm_r.indices(), m_glu); 
+  
+  // Create supernode matrix L 
+  m_Lstore.setInfos(m, n, m_glu.lusup, m_glu.xlusup, m_glu.lsub, m_glu.xlsub, m_glu.supno, m_glu.xsup); 
+  // Create the column major upper sparse matrix  U; 
+  new (&m_Ustore) MappedSparseMatrix<Scalar, ColMajor, Index> ( m, n, m_nnzU, m_glu.xusub.data(), m_glu.usub.data(), m_glu.ucol.data() ); 
+  
+  m_info = Success;
+  m_factorizationIsOk = true;
+}
+
+template<typename MappedSupernodalType>
+struct SparseLUMatrixLReturnType : internal::no_assignment_operator
+{
+  typedef typename MappedSupernodalType::Index Index;
+  typedef typename MappedSupernodalType::Scalar Scalar;
+  SparseLUMatrixLReturnType(const MappedSupernodalType& mapL) : m_mapL(mapL)
+  { }
+  Index rows() { return m_mapL.rows(); }
+  Index cols() { return m_mapL.cols(); }
+  template<typename Dest>
+  void solveInPlace( MatrixBase<Dest> &X) const
+  {
+    m_mapL.solveInPlace(X);
+  }
+  const MappedSupernodalType& m_mapL;
+};
+
+template<typename MatrixLType, typename MatrixUType>
+struct SparseLUMatrixUReturnType : internal::no_assignment_operator
+{
+  typedef typename MatrixLType::Index Index;
+  typedef typename MatrixLType::Scalar Scalar;
+  SparseLUMatrixUReturnType(const MatrixLType& mapL, const MatrixUType& mapU)
+  : m_mapL(mapL),m_mapU(mapU)
+  { }
+  Index rows() { return m_mapL.rows(); }
+  Index cols() { return m_mapL.cols(); }
+
+  template<typename Dest>   void solveInPlace(MatrixBase<Dest> &X) const
+  {
+    Index nrhs = X.cols();
+    Index n = X.rows();
+    // Backward solve with U
+    for (Index k = m_mapL.nsuper(); k >= 0; k--)
+    {
+      Index fsupc = m_mapL.supToCol()[k];
+      Index lda = m_mapL.colIndexPtr()[fsupc+1] - m_mapL.colIndexPtr()[fsupc]; // leading dimension
+      Index nsupc = m_mapL.supToCol()[k+1] - fsupc;
+      Index luptr = m_mapL.colIndexPtr()[fsupc];
+
+      if (nsupc == 1)
+      {
+        for (Index j = 0; j < nrhs; j++)
+        {
+          X(fsupc, j) /= m_mapL.valuePtr()[luptr];
+        }
+      }
+      else
+      {
+        Map<const Matrix<Scalar,Dynamic,Dynamic>, 0, OuterStride<> > A( &(m_mapL.valuePtr()[luptr]), nsupc, nsupc, OuterStride<>(lda) );
+        Map< Matrix<Scalar,Dynamic,Dynamic>, 0, OuterStride<> > U (&(X(fsupc,0)), nsupc, nrhs, OuterStride<>(n) );
+        U = A.template triangularView<Upper>().solve(U);
+      }
+
+      for (Index j = 0; j < nrhs; ++j)
+      {
+        for (Index jcol = fsupc; jcol < fsupc + nsupc; jcol++)
+        {
+          typename MatrixUType::InnerIterator it(m_mapU, jcol);
+          for ( ; it; ++it)
+          {
+            Index irow = it.index();
+            X(irow, j) -= X(jcol, j) * it.value();
+          }
+        }
+      }
+    } // End For U-solve
+  }
+  const MatrixLType& m_mapL;
+  const MatrixUType& m_mapU;
+};
+
+namespace internal {
+  
+template<typename _MatrixType, typename Derived, typename Rhs>
+struct solve_retval<SparseLU<_MatrixType,Derived>, Rhs>
+  : solve_retval_base<SparseLU<_MatrixType,Derived>, Rhs>
+{
+  typedef SparseLU<_MatrixType,Derived> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+template<typename _MatrixType, typename Derived, typename Rhs>
+struct sparse_solve_retval<SparseLU<_MatrixType,Derived>, Rhs>
+  : sparse_solve_retval_base<SparseLU<_MatrixType,Derived>, Rhs>
+{
+  typedef SparseLU<_MatrixType,Derived> Dec;
+  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    this->defaultEvalTo(dst);
+  }
+};
+} // end namespace internal
+
+} // End namespace Eigen 
+
+#endif
diff --git a/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLUImpl.h b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLUImpl.h
new file mode 100644
index 0000000000000000000000000000000000000000..14d70897df7c77598b587567b592fc753a88eb3b
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLUImpl.h
@@ -0,0 +1,64 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef SPARSELU_IMPL_H
+#define SPARSELU_IMPL_H
+
+namespace Eigen {
+namespace internal {
+  
+/** \ingroup SparseLU_Module
+  * \class SparseLUImpl
+  * Base class for sparseLU
+  */
+template <typename Scalar, typename Index>
+class SparseLUImpl
+{
+  public:
+    typedef Matrix<Scalar,Dynamic,1> ScalarVector;
+    typedef Matrix<Index,Dynamic,1> IndexVector; 
+    typedef typename ScalarVector::RealScalar RealScalar; 
+    typedef Ref<Matrix<Scalar,Dynamic,1> > BlockScalarVector;
+    typedef Ref<Matrix<Index,Dynamic,1> > BlockIndexVector;
+    typedef LU_GlobalLU_t<IndexVector, ScalarVector> GlobalLU_t; 
+    typedef SparseMatrix<Scalar,ColMajor,Index> MatrixType; 
+    
+  protected:
+     template <typename VectorType>
+     Index expand(VectorType& vec, Index& length, Index nbElts, Index keep_prev, Index& num_expansions);
+     Index memInit(Index m, Index n, Index annz, Index lwork, Index fillratio, Index panel_size,  GlobalLU_t& glu); 
+     template <typename VectorType>
+     Index memXpand(VectorType& vec, Index& maxlen, Index nbElts, MemType memtype, Index& num_expansions);
+     void heap_relax_snode (const Index n, IndexVector& et, const Index relax_columns, IndexVector& descendants, IndexVector& relax_end); 
+     void relax_snode (const Index n, IndexVector& et, const Index relax_columns, IndexVector& descendants, IndexVector& relax_end); 
+     Index snode_dfs(const Index jcol, const Index kcol,const MatrixType& mat,  IndexVector& xprune, IndexVector& marker, GlobalLU_t& glu); 
+     Index snode_bmod (const Index jcol, const Index fsupc, ScalarVector& dense, GlobalLU_t& glu);
+     Index pivotL(const Index jcol, const RealScalar& diagpivotthresh, IndexVector& perm_r, IndexVector& iperm_c, Index& pivrow, GlobalLU_t& glu);
+     template <typename Traits>
+     void dfs_kernel(const Index jj, IndexVector& perm_r,
+                    Index& nseg, IndexVector& panel_lsub, IndexVector& segrep,
+                    Ref<IndexVector> repfnz_col, IndexVector& xprune, Ref<IndexVector> marker, IndexVector& parent,
+                    IndexVector& xplore, GlobalLU_t& glu, Index& nextl_col, Index krow, Traits& traits);
+     void panel_dfs(const Index m, const Index w, const Index jcol, MatrixType& A, IndexVector& perm_r, Index& nseg, ScalarVector& dense, IndexVector& panel_lsub, IndexVector& segrep, IndexVector& repfnz, IndexVector& xprune, IndexVector& marker, IndexVector& parent, IndexVector& xplore, GlobalLU_t& glu);
+    
+     void panel_bmod(const Index m, const Index w, const Index jcol, const Index nseg, ScalarVector& dense, ScalarVector& tempv, IndexVector& segrep, IndexVector& repfnz, GlobalLU_t& glu);
+     Index column_dfs(const Index m, const Index jcol, IndexVector& perm_r, Index maxsuper, Index& nseg,  BlockIndexVector lsub_col, IndexVector& segrep, BlockIndexVector repfnz, IndexVector& xprune, IndexVector& marker, IndexVector& parent, IndexVector& xplore, GlobalLU_t& glu);
+     Index column_bmod(const Index jcol, const Index nseg, BlockScalarVector dense, ScalarVector& tempv, BlockIndexVector segrep, BlockIndexVector repfnz, Index fpanelc, GlobalLU_t& glu); 
+     Index copy_to_ucol(const Index jcol, const Index nseg, IndexVector& segrep, BlockIndexVector repfnz ,IndexVector& perm_r, BlockScalarVector dense, GlobalLU_t& glu); 
+     void pruneL(const Index jcol, const IndexVector& perm_r, const Index pivrow, const Index nseg, const IndexVector& segrep, BlockIndexVector repfnz, IndexVector& xprune, GlobalLU_t& glu);
+     void countnz(const Index n, Index& nnzL, Index& nnzU, GlobalLU_t& glu); 
+     void fixupL(const Index n, const IndexVector& perm_r, GlobalLU_t& glu); 
+     
+     template<typename , typename >
+     friend struct column_dfs_traits;
+}; 
+
+} // end namespace internal
+} // namespace Eigen
+
+#endif
diff --git a/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h
new file mode 100644
index 0000000000000000000000000000000000000000..a5158025c5183a036a0ef980e058bb29b1909e7b
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h
@@ -0,0 +1,222 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ 
+ * NOTE: This file is the modified version of [s,d,c,z]memory.c files in SuperLU 
+ 
+ * -- SuperLU routine (version 3.1) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * August 1, 2008
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+
+#ifndef EIGEN_SPARSELU_MEMORY
+#define EIGEN_SPARSELU_MEMORY
+
+namespace Eigen {
+namespace internal {
+  
+enum { LUNoMarker = 3 };
+enum {emptyIdxLU = -1};
+template<typename Index>
+inline Index LUnumTempV(Index& m, Index& w, Index& t, Index& b)
+{
+  return (std::max)(m, (t+b)*w);
+}
+
+template< typename Scalar, typename Index>
+inline Index LUTempSpace(Index&m, Index& w)
+{
+  return (2*w + 4 + LUNoMarker) * m * sizeof(Index) + (w + 1) * m * sizeof(Scalar);
+}
+
+
+
+
+/** 
+  * Expand the existing storage to accomodate more fill-ins
+  * \param vec Valid pointer to the vector to allocate or expand
+  * \param[in,out] length  At input, contain the current length of the vector that is to be increased. At output, length of the newly allocated vector
+  * \param[in] nbElts Current number of elements in the factors
+  * \param keep_prev  1: use length  and do not expand the vector; 0: compute new_len and expand
+  * \param[in,out] num_expansions Number of times the memory has been expanded
+  */
+template <typename Scalar, typename Index>
+template <typename VectorType>
+Index  SparseLUImpl<Scalar,Index>::expand(VectorType& vec, Index& length, Index nbElts, Index keep_prev, Index& num_expansions) 
+{
+  
+  float alpha = 1.5; // Ratio of the memory increase 
+  Index new_len; // New size of the allocated memory
+  
+  if(num_expansions == 0 || keep_prev) 
+    new_len = length ; // First time allocate requested
+  else 
+    new_len = Index(alpha * length);
+  
+  VectorType old_vec; // Temporary vector to hold the previous values   
+  if (nbElts > 0 )
+    old_vec = vec.segment(0,nbElts); 
+  
+  //Allocate or expand the current vector
+  try 
+  {
+    vec.resize(new_len); 
+  }
+  catch(std::bad_alloc& )
+  {
+    if ( !num_expansions )
+    {
+      // First time to allocate from LUMemInit()
+      throw; // Pass the exception to LUMemInit() which has a try... catch block
+    }
+    if (keep_prev)
+    {
+      // In this case, the memory length should not not be reduced
+      return new_len;
+    }
+    else 
+    {
+      // Reduce the size and increase again 
+      Index tries = 0; // Number of attempts
+      do 
+      {
+        alpha = (alpha + 1)/2;
+        new_len = Index(alpha * length);
+        try
+        {
+          vec.resize(new_len); 
+        }
+        catch(std::bad_alloc& )
+        {
+          tries += 1; 
+          if ( tries > 10) return new_len; 
+        }
+      } while (!vec.size());
+    }
+  }
+  //Copy the previous values to the newly allocated space 
+  if (nbElts > 0)
+    vec.segment(0, nbElts) = old_vec;   
+   
+  
+  length  = new_len;
+  if(num_expansions) ++num_expansions;
+  return 0; 
+}
+
+/**
+ * \brief  Allocate various working space for the numerical factorization phase.
+ * \param m number of rows of the input matrix 
+ * \param n number of columns 
+ * \param annz number of initial nonzeros in the matrix 
+ * \param lwork  if lwork=-1, this routine returns an estimated size of the required memory
+ * \param glu persistent data to facilitate multiple factors : will be deleted later ??
+ * \param fillratio estimated ratio of fill in the factors
+ * \param panel_size Size of a panel
+ * \return an estimated size of the required memory if lwork = -1; otherwise, return the size of actually allocated memory when allocation failed, and 0 on success
+ * \note Unlike SuperLU, this routine does not support successive factorization with the same pattern and the same row permutation
+ */
+template <typename Scalar, typename Index>
+Index SparseLUImpl<Scalar,Index>::memInit(Index m, Index n, Index annz, Index lwork, Index fillratio, Index panel_size,  GlobalLU_t& glu)
+{
+  Index& num_expansions = glu.num_expansions; //No memory expansions so far
+  num_expansions = 0; 
+  glu.nzumax = glu.nzlumax = (std::max)(fillratio * annz, m*n); // estimated number of nonzeros in U 
+  glu.nzlmax = (std::max)(Index(4), fillratio) * annz / 4; // estimated  nnz in L factor
+
+  // Return the estimated size to the user if necessary
+  Index tempSpace;
+  tempSpace = (2*panel_size + 4 + LUNoMarker) * m * sizeof(Index) + (panel_size + 1) * m * sizeof(Scalar);
+  if (lwork == emptyIdxLU) 
+  {
+    Index estimated_size;
+    estimated_size = (5 * n + 5) * sizeof(Index)  + tempSpace
+                    + (glu.nzlmax + glu.nzumax) * sizeof(Index) + (glu.nzlumax+glu.nzumax) *  sizeof(Scalar) + n; 
+    return estimated_size;
+  }
+  
+  // Setup the required space 
+  
+  // First allocate Integer pointers for L\U factors
+  glu.xsup.resize(n+1);
+  glu.supno.resize(n+1);
+  glu.xlsub.resize(n+1);
+  glu.xlusup.resize(n+1);
+  glu.xusub.resize(n+1);
+
+  // Reserve memory for L/U factors
+  do 
+  {
+    try
+    {
+      expand<ScalarVector>(glu.lusup, glu.nzlumax, 0, 0, num_expansions); 
+      expand<ScalarVector>(glu.ucol,glu.nzumax, 0, 0, num_expansions); 
+      expand<IndexVector>(glu.lsub,glu.nzlmax, 0, 0, num_expansions); 
+      expand<IndexVector>(glu.usub,glu.nzumax, 0, 1, num_expansions); 
+    }
+    catch(std::bad_alloc& )
+    {
+      //Reduce the estimated size and retry
+      glu.nzlumax /= 2;
+      glu.nzumax /= 2;
+      glu.nzlmax /= 2;
+      if (glu.nzlumax < annz ) return glu.nzlumax; 
+    }
+    
+  } while (!glu.lusup.size() || !glu.ucol.size() || !glu.lsub.size() || !glu.usub.size());
+
+  
+  
+  ++num_expansions;
+  return 0;
+  
+} // end LuMemInit
+
+/** 
+ * \brief Expand the existing storage 
+ * \param vec vector to expand 
+ * \param[in,out] maxlen On input, previous size of vec (Number of elements to copy ). on output, new size
+ * \param nbElts current number of elements in the vector.
+ * \param memtype Type of the element to expand
+ * \param num_expansions Number of expansions 
+ * \return 0 on success, > 0 size of the memory allocated so far
+ */
+template <typename Scalar, typename Index>
+template <typename VectorType>
+Index SparseLUImpl<Scalar,Index>::memXpand(VectorType& vec, Index& maxlen, Index nbElts, MemType memtype, Index& num_expansions)
+{
+  Index failed_size; 
+  if (memtype == USUB)
+     failed_size = this->expand<VectorType>(vec, maxlen, nbElts, 1, num_expansions);
+  else
+    failed_size = this->expand<VectorType>(vec, maxlen, nbElts, 0, num_expansions);
+
+  if (failed_size)
+    return failed_size; 
+  
+  return 0 ;  
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+#endif // EIGEN_SPARSELU_MEMORY
diff --git a/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h
new file mode 100644
index 0000000000000000000000000000000000000000..24d6bf17946323e29dd90f04ee2c464d3523a42d
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h
@@ -0,0 +1,111 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ * NOTE: This file comes from a partly modified version of files slu_[s,d,c,z]defs.h
+ * -- SuperLU routine (version 4.1) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * November, 2010
+ * 
+ * Global data structures used in LU factorization -
+ * 
+ *   nsuper: #supernodes = nsuper + 1, numbered [0, nsuper].
+ *   (xsup,supno): supno[i] is the supernode no to which i belongs;
+ *  xsup(s) points to the beginning of the s-th supernode.
+ *  e.g.   supno 0 1 2 2 3 3 3 4 4 4 4 4   (n=12)
+ *          xsup 0 1 2 4 7 12
+ *  Note: dfs will be performed on supernode rep. relative to the new 
+ *        row pivoting ordering
+ *
+ *   (xlsub,lsub): lsub[*] contains the compressed subscript of
+ *  rectangular supernodes; xlsub[j] points to the starting
+ *  location of the j-th column in lsub[*]. Note that xlsub 
+ *  is indexed by column.
+ *  Storage: original row subscripts
+ *
+ *      During the course of sparse LU factorization, we also use
+ *  (xlsub,lsub) for the purpose of symmetric pruning. For each
+ *  supernode {s,s+1,...,t=s+r} with first column s and last
+ *  column t, the subscript set
+ *    lsub[j], j=xlsub[s], .., xlsub[s+1]-1
+ *  is the structure of column s (i.e. structure of this supernode).
+ *  It is used for the storage of numerical values.
+ *  Furthermore,
+ *    lsub[j], j=xlsub[t], .., xlsub[t+1]-1
+ *  is the structure of the last column t of this supernode.
+ *  It is for the purpose of symmetric pruning. Therefore, the
+ *  structural subscripts can be rearranged without making physical
+ *  interchanges among the numerical values.
+ *
+ *  However, if the supernode has only one column, then we
+ *  only keep one set of subscripts. For any subscript interchange
+ *  performed, similar interchange must be done on the numerical
+ *  values.
+ *
+ *  The last column structures (for pruning) will be removed
+ *  after the numercial LU factorization phase.
+ *
+ *   (xlusup,lusup): lusup[*] contains the numerical values of the
+ *  rectangular supernodes; xlusup[j] points to the starting
+ *  location of the j-th column in storage vector lusup[*]
+ *  Note: xlusup is indexed by column.
+ *  Each rectangular supernode is stored by column-major
+ *  scheme, consistent with Fortran 2-dim array storage.
+ *
+ *   (xusub,ucol,usub): ucol[*] stores the numerical values of
+ *  U-columns outside the rectangular supernodes. The row
+ *  subscript of nonzero ucol[k] is stored in usub[k].
+ *  xusub[i] points to the starting location of column i in ucol.
+ *  Storage: new row subscripts; that is subscripts of PA.
+ */
+
+#ifndef EIGEN_LU_STRUCTS
+#define EIGEN_LU_STRUCTS
+namespace Eigen {
+namespace internal {
+  
+typedef enum {LUSUP, UCOL, LSUB, USUB, LLVL, ULVL} MemType; 
+
+template <typename IndexVector, typename ScalarVector>
+struct LU_GlobalLU_t {
+  typedef typename IndexVector::Scalar Index; 
+  IndexVector xsup; //First supernode column ... xsup(s) points to the beginning of the s-th supernode
+  IndexVector supno; // Supernode number corresponding to this column (column to supernode mapping)
+  ScalarVector  lusup; // nonzero values of L ordered by columns 
+  IndexVector lsub; // Compressed row indices of L rectangular supernodes. 
+  IndexVector xlusup; // pointers to the beginning of each column in lusup
+  IndexVector xlsub; // pointers to the beginning of each column in lsub
+  Index   nzlmax; // Current max size of lsub
+  Index   nzlumax; // Current max size of lusup
+  ScalarVector  ucol; // nonzero values of U ordered by columns 
+  IndexVector usub; // row indices of U columns in ucol
+  IndexVector xusub; // Pointers to the beginning of each column of U in ucol 
+  Index   nzumax; // Current max size of ucol
+  Index   n; // Number of columns in the matrix  
+  Index   num_expansions; 
+};
+
+// Values to set for performance
+template <typename Index>
+struct perfvalues {
+  Index panel_size; // a panel consists of at most <panel_size> consecutive columns
+  Index relax; // To control degree of relaxing supernodes. If the number of nodes (columns) 
+                // in a subtree of the elimination tree is less than relax, this subtree is considered 
+                // as one supernode regardless of the row structures of those columns
+  Index maxsuper; // The maximum size for a supernode in complete LU
+  Index rowblk; // The minimum row dimension for 2-D blocking to be used;
+  Index colblk; // The minimum column dimension for 2-D blocking to be used;
+  Index fillfactor; // The estimated fills factors for L and U, compared with A
+}; 
+
+} // end namespace internal
+
+} // end namespace Eigen
+#endif // EIGEN_LU_STRUCTS
diff --git a/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
new file mode 100644
index 0000000000000000000000000000000000000000..ad6f2183fed2ae75bb40ed7eb774df7a24a40fcf
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
@@ -0,0 +1,298 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSELU_SUPERNODAL_MATRIX_H
+#define EIGEN_SPARSELU_SUPERNODAL_MATRIX_H
+
+namespace Eigen {
+namespace internal {
+
+/** \ingroup SparseLU_Module
+ * \brief a class to manipulate the L supernodal factor from the SparseLU factorization
+ * 
+ * This class  contain the data to easily store 
+ * and manipulate the supernodes during the factorization and solution phase of Sparse LU. 
+ * Only the lower triangular matrix has supernodes.
+ * 
+ * NOTE : This class corresponds to the SCformat structure in SuperLU
+ * 
+ */
+/* TODO
+ * InnerIterator as for sparsematrix 
+ * SuperInnerIterator to iterate through all supernodes 
+ * Function for triangular solve
+ */
+template <typename _Scalar, typename _Index>
+class MappedSuperNodalMatrix
+{
+  public:
+    typedef _Scalar Scalar; 
+    typedef _Index Index;
+    typedef Matrix<Index,Dynamic,1> IndexVector; 
+    typedef Matrix<Scalar,Dynamic,1> ScalarVector;
+  public:
+    MappedSuperNodalMatrix()
+    {
+      
+    }
+    MappedSuperNodalMatrix(Index m, Index n,  ScalarVector& nzval, IndexVector& nzval_colptr, IndexVector& rowind, 
+             IndexVector& rowind_colptr, IndexVector& col_to_sup, IndexVector& sup_to_col )
+    {
+      setInfos(m, n, nzval, nzval_colptr, rowind, rowind_colptr, col_to_sup, sup_to_col);
+    }
+    
+    ~MappedSuperNodalMatrix()
+    {
+      
+    }
+    /**
+     * Set appropriate pointers for the lower triangular supernodal matrix
+     * These infos are available at the end of the numerical factorization
+     * FIXME This class will be modified such that it can be use in the course 
+     * of the factorization.
+     */
+    void setInfos(Index m, Index n, ScalarVector& nzval, IndexVector& nzval_colptr, IndexVector& rowind, 
+             IndexVector& rowind_colptr, IndexVector& col_to_sup, IndexVector& sup_to_col )
+    {
+      m_row = m;
+      m_col = n; 
+      m_nzval = nzval.data(); 
+      m_nzval_colptr = nzval_colptr.data(); 
+      m_rowind = rowind.data(); 
+      m_rowind_colptr = rowind_colptr.data(); 
+      m_nsuper = col_to_sup(n); 
+      m_col_to_sup = col_to_sup.data(); 
+      m_sup_to_col = sup_to_col.data(); 
+    }
+    
+    /**
+     * Number of rows
+     */
+    Index rows() { return m_row; }
+    
+    /**
+     * Number of columns
+     */
+    Index cols() { return m_col; }
+    
+    /**
+     * Return the array of nonzero values packed by column
+     * 
+     * The size is nnz
+     */
+    Scalar* valuePtr() {  return m_nzval; }
+    
+    const Scalar* valuePtr() const 
+    {
+      return m_nzval; 
+    }
+    /**
+     * Return the pointers to the beginning of each column in \ref valuePtr()
+     */
+    Index* colIndexPtr()
+    {
+      return m_nzval_colptr; 
+    }
+    
+    const Index* colIndexPtr() const
+    {
+      return m_nzval_colptr; 
+    }
+    
+    /**
+     * Return the array of compressed row indices of all supernodes
+     */
+    Index* rowIndex()  { return m_rowind; }
+    
+    const Index* rowIndex() const
+    {
+      return m_rowind; 
+    }
+    
+    /**
+     * Return the location in \em rowvaluePtr() which starts each column
+     */
+    Index* rowIndexPtr() { return m_rowind_colptr; }
+    
+    const Index* rowIndexPtr() const 
+    {
+      return m_rowind_colptr; 
+    }
+    
+    /** 
+     * Return the array of column-to-supernode mapping 
+     */
+    Index* colToSup()  { return m_col_to_sup; }
+    
+    const Index* colToSup() const
+    {
+      return m_col_to_sup;       
+    }
+    /**
+     * Return the array of supernode-to-column mapping
+     */
+    Index* supToCol() { return m_sup_to_col; }
+    
+    const Index* supToCol() const 
+    {
+      return m_sup_to_col;
+    }
+    
+    /**
+     * Return the number of supernodes
+     */
+    Index nsuper() const 
+    {
+      return m_nsuper; 
+    }
+    
+    class InnerIterator; 
+    template<typename Dest>
+    void solveInPlace( MatrixBase<Dest>&X) const;
+    
+      
+      
+    
+  protected:
+    Index m_row; // Number of rows
+    Index m_col; // Number of columns 
+    Index m_nsuper; // Number of supernodes 
+    Scalar* m_nzval; //array of nonzero values packed by column
+    Index* m_nzval_colptr; //nzval_colptr[j] Stores the location in nzval[] which starts column j 
+    Index* m_rowind; // Array of compressed row indices of rectangular supernodes
+    Index* m_rowind_colptr; //rowind_colptr[j] stores the location in rowind[] which starts column j
+    Index* m_col_to_sup; // col_to_sup[j] is the supernode number to which column j belongs
+    Index* m_sup_to_col; //sup_to_col[s] points to the starting column of the s-th supernode
+    
+  private :
+};
+
+/**
+  * \brief InnerIterator class to iterate over nonzero values of the current column in the supernodal matrix L
+  * 
+  */
+template<typename Scalar, typename Index>
+class MappedSuperNodalMatrix<Scalar,Index>::InnerIterator
+{
+  public:
+     InnerIterator(const MappedSuperNodalMatrix& mat, Index outer)
+      : m_matrix(mat),
+        m_outer(outer), 
+        m_supno(mat.colToSup()[outer]),
+        m_idval(mat.colIndexPtr()[outer]),
+        m_startidval(m_idval),
+        m_endidval(mat.colIndexPtr()[outer+1]),
+        m_idrow(mat.rowIndexPtr()[outer]),
+        m_endidrow(mat.rowIndexPtr()[outer+1])
+    {}
+    inline InnerIterator& operator++()
+    { 
+      m_idval++; 
+      m_idrow++;
+      return *this;
+    }
+    inline Scalar value() const { return m_matrix.valuePtr()[m_idval]; }
+    
+    inline Scalar& valueRef() { return const_cast<Scalar&>(m_matrix.valuePtr()[m_idval]); }
+    
+    inline Index index() const { return m_matrix.rowIndex()[m_idrow]; }
+    inline Index row() const { return index(); }
+    inline Index col() const { return m_outer; }
+    
+    inline Index supIndex() const { return m_supno; }
+    
+    inline operator bool() const 
+    { 
+      return ( (m_idval < m_endidval) && (m_idval >= m_startidval)
+                && (m_idrow < m_endidrow) );
+    }
+    
+  protected:
+    const MappedSuperNodalMatrix& m_matrix; // Supernodal lower triangular matrix 
+    const Index m_outer;                    // Current column 
+    const Index m_supno;                    // Current SuperNode number
+    Index m_idval;                          // Index to browse the values in the current column
+    const Index m_startidval;               // Start of the column value
+    const Index m_endidval;                 // End of the column value
+    Index m_idrow;                          // Index to browse the row indices 
+    Index m_endidrow;                       // End index of row indices of the current column
+};
+
+/**
+ * \brief Solve with the supernode triangular matrix
+ * 
+ */
+template<typename Scalar, typename Index>
+template<typename Dest>
+void MappedSuperNodalMatrix<Scalar,Index>::solveInPlace( MatrixBase<Dest>&X) const
+{
+    Index n = X.rows(); 
+    Index nrhs = X.cols(); 
+    const Scalar * Lval = valuePtr();                 // Nonzero values 
+    Matrix<Scalar,Dynamic,Dynamic> work(n, nrhs);     // working vector
+    work.setZero();
+    for (Index k = 0; k <= nsuper(); k ++)
+    {
+      Index fsupc = supToCol()[k];                    // First column of the current supernode 
+      Index istart = rowIndexPtr()[fsupc];            // Pointer index to the subscript of the current column
+      Index nsupr = rowIndexPtr()[fsupc+1] - istart;  // Number of rows in the current supernode
+      Index nsupc = supToCol()[k+1] - fsupc;          // Number of columns in the current supernode
+      Index nrow = nsupr - nsupc;                     // Number of rows in the non-diagonal part of the supernode
+      Index irow;                                     //Current index row
+      
+      if (nsupc == 1 )
+      {
+        for (Index j = 0; j < nrhs; j++)
+        {
+          InnerIterator it(*this, fsupc);
+          ++it; // Skip the diagonal element
+          for (; it; ++it)
+          {
+            irow = it.row();
+            X(irow, j) -= X(fsupc, j) * it.value();
+          }
+        }
+      }
+      else
+      {
+        // The supernode has more than one column 
+        Index luptr = colIndexPtr()[fsupc]; 
+        Index lda = colIndexPtr()[fsupc+1] - luptr;
+        
+        // Triangular solve 
+        Map<const Matrix<Scalar,Dynamic,Dynamic>, 0, OuterStride<> > A( &(Lval[luptr]), nsupc, nsupc, OuterStride<>(lda) ); 
+        Map< Matrix<Scalar,Dynamic,Dynamic>, 0, OuterStride<> > U (&(X(fsupc,0)), nsupc, nrhs, OuterStride<>(n) ); 
+        U = A.template triangularView<UnitLower>().solve(U); 
+        
+        // Matrix-vector product 
+        new (&A) Map<const Matrix<Scalar,Dynamic,Dynamic>, 0, OuterStride<> > ( &(Lval[luptr+nsupc]), nrow, nsupc, OuterStride<>(lda) ); 
+        work.block(0, 0, nrow, nrhs) = A * U; 
+        
+        //Begin Scatter 
+        for (Index j = 0; j < nrhs; j++)
+        {
+          Index iptr = istart + nsupc; 
+          for (Index i = 0; i < nrow; i++)
+          {
+            irow = rowIndex()[iptr]; 
+            X(irow, j) -= work(i, j); // Scatter operation
+            work(i, j) = Scalar(0); 
+            iptr++;
+          }
+        }
+      }
+    } 
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSELU_MATRIX_H
diff --git a/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h
new file mode 100644
index 0000000000000000000000000000000000000000..15352ac33ae82a17b50adc5bd8fb1bbbf757ae6e
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h
@@ -0,0 +1,80 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+#ifndef EIGEN_SPARSELU_UTILS_H
+#define EIGEN_SPARSELU_UTILS_H
+
+namespace Eigen {
+namespace internal {
+
+/**
+ * \brief Count Nonzero elements in the factors
+ */
+template <typename Scalar, typename Index>
+void SparseLUImpl<Scalar,Index>::countnz(const Index n, Index& nnzL, Index& nnzU, GlobalLU_t& glu)
+{
+ nnzL = 0; 
+ nnzU = (glu.xusub)(n); 
+ Index nsuper = (glu.supno)(n); 
+ Index jlen; 
+ Index i, j, fsupc;
+ if (n <= 0 ) return; 
+ // For each supernode
+ for (i = 0; i <= nsuper; i++)
+ {
+   fsupc = glu.xsup(i); 
+   jlen = glu.xlsub(fsupc+1) - glu.xlsub(fsupc); 
+   
+   for (j = fsupc; j < glu.xsup(i+1); j++)
+   {
+     nnzL += jlen; 
+     nnzU += j - fsupc + 1; 
+     jlen--; 
+   }
+ }
+}
+
+/**
+ * \brief Fix up the data storage lsub for L-subscripts. 
+ * 
+ * It removes the subscripts sets for structural pruning, 
+ * and applies permutation to the remaining subscripts
+ * 
+ */
+template <typename Scalar, typename Index>
+void SparseLUImpl<Scalar,Index>::fixupL(const Index n, const IndexVector& perm_r, GlobalLU_t& glu)
+{
+  Index fsupc, i, j, k, jstart; 
+  
+  Index nextl = 0; 
+  Index nsuper = (glu.supno)(n); 
+  
+  // For each supernode 
+  for (i = 0; i <= nsuper; i++)
+  {
+    fsupc = glu.xsup(i); 
+    jstart = glu.xlsub(fsupc); 
+    glu.xlsub(fsupc) = nextl; 
+    for (j = jstart; j < glu.xlsub(fsupc + 1); j++)
+    {
+      glu.lsub(nextl) = perm_r(glu.lsub(j)); // Now indexed into P*A
+      nextl++;
+    }
+    for (k = fsupc+1; k < glu.xsup(i+1); k++)
+      glu.xlsub(k) = nextl; // other columns in supernode i
+  }
+  
+  glu.xlsub(n) = nextl; 
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+#endif // EIGEN_SPARSELU_UTILS_H
diff --git a/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h
new file mode 100644
index 0000000000000000000000000000000000000000..f24bd87d3e9b860ea2a2d3338e2721b61c5f078f
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h
@@ -0,0 +1,180 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ 
+ * NOTE: This file is the modified version of xcolumn_bmod.c file in SuperLU 
+ 
+ * -- SuperLU routine (version 3.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * October 15, 2003
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_COLUMN_BMOD_H
+#define SPARSELU_COLUMN_BMOD_H
+
+namespace Eigen {
+
+namespace internal {
+/**
+ * \brief Performs numeric block updates (sup-col) in topological order
+ * 
+ * \param jcol current column to update
+ * \param nseg Number of segments in the U part
+ * \param dense Store the full representation of the column
+ * \param tempv working array 
+ * \param segrep segment representative ...
+ * \param repfnz ??? First nonzero column in each row ???  ...
+ * \param fpanelc First column in the current panel
+ * \param glu Global LU data. 
+ * \return 0 - successful return 
+ *         > 0 - number of bytes allocated when run out of space
+ * 
+ */
+template <typename Scalar, typename Index>
+Index SparseLUImpl<Scalar,Index>::column_bmod(const Index jcol, const Index nseg, BlockScalarVector dense, ScalarVector& tempv, BlockIndexVector segrep, BlockIndexVector repfnz, Index fpanelc, GlobalLU_t& glu)
+{
+  Index  jsupno, k, ksub, krep, ksupno; 
+  Index lptr, nrow, isub, irow, nextlu, new_next, ufirst; 
+  Index fsupc, nsupc, nsupr, luptr, kfnz, no_zeros; 
+  /* krep = representative of current k-th supernode
+    * fsupc =  first supernodal column
+    * nsupc = number of columns in a supernode
+    * nsupr = number of rows in a supernode
+    * luptr = location of supernodal LU-block in storage
+    * kfnz = first nonz in the k-th supernodal segment
+    * no_zeros = no lf leading zeros in a supernodal U-segment
+    */
+  
+  jsupno = glu.supno(jcol);
+  // For each nonzero supernode segment of U[*,j] in topological order 
+  k = nseg - 1; 
+  Index d_fsupc; // distance between the first column of the current panel and the 
+               // first column of the current snode
+  Index fst_col; // First column within small LU update
+  Index segsize; 
+  for (ksub = 0; ksub < nseg; ksub++)
+  {
+    krep = segrep(k); k--; 
+    ksupno = glu.supno(krep); 
+    if (jsupno != ksupno )
+    {
+      // outside the rectangular supernode 
+      fsupc = glu.xsup(ksupno); 
+      fst_col = (std::max)(fsupc, fpanelc); 
+      
+      // Distance from the current supernode to the current panel; 
+      // d_fsupc = 0 if fsupc > fpanelc
+      d_fsupc = fst_col - fsupc; 
+      
+      luptr = glu.xlusup(fst_col) + d_fsupc; 
+      lptr = glu.xlsub(fsupc) + d_fsupc; 
+      
+      kfnz = repfnz(krep); 
+      kfnz = (std::max)(kfnz, fpanelc); 
+      
+      segsize = krep - kfnz + 1; 
+      nsupc = krep - fst_col + 1; 
+      nsupr = glu.xlsub(fsupc+1) - glu.xlsub(fsupc); 
+      nrow = nsupr - d_fsupc - nsupc;
+      Index lda = glu.xlusup(fst_col+1) - glu.xlusup(fst_col);
+      
+      
+      // Perform a triangular solver and block update, 
+      // then scatter the result of sup-col update to dense
+      no_zeros = kfnz - fst_col; 
+      if(segsize==1)
+        LU_kernel_bmod<1>::run(segsize, dense, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
+      else
+        LU_kernel_bmod<Dynamic>::run(segsize, dense, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
+    } // end if jsupno 
+  } // end for each segment
+  
+  // Process the supernodal portion of  L\U[*,j]
+  nextlu = glu.xlusup(jcol); 
+  fsupc = glu.xsup(jsupno);
+  
+  // copy the SPA dense into L\U[*,j]
+  Index mem; 
+  new_next = nextlu + glu.xlsub(fsupc + 1) - glu.xlsub(fsupc); 
+  Index offset = internal::first_multiple<Index>(new_next, internal::packet_traits<Scalar>::size) - new_next;
+  if(offset)
+    new_next += offset;
+  while (new_next > glu.nzlumax )
+  {
+    mem = memXpand<ScalarVector>(glu.lusup, glu.nzlumax, nextlu, LUSUP, glu.num_expansions);  
+    if (mem) return mem; 
+  }
+  
+  for (isub = glu.xlsub(fsupc); isub < glu.xlsub(fsupc+1); isub++)
+  {
+    irow = glu.lsub(isub);
+    glu.lusup(nextlu) = dense(irow);
+    dense(irow) = Scalar(0.0); 
+    ++nextlu; 
+  }
+  
+  if(offset)
+  {
+    glu.lusup.segment(nextlu,offset).setZero();
+    nextlu += offset;
+  }
+  glu.xlusup(jcol + 1) = nextlu;  // close L\U(*,jcol); 
+  
+  /* For more updates within the panel (also within the current supernode),
+   * should start from the first column of the panel, or the first column
+   * of the supernode, whichever is bigger. There are two cases:
+   *  1) fsupc < fpanelc, then fst_col <-- fpanelc
+   *  2) fsupc >= fpanelc, then fst_col <-- fsupc
+   */
+  fst_col = (std::max)(fsupc, fpanelc); 
+  
+  if (fst_col  < jcol)
+  {
+    // Distance between the current supernode and the current panel
+    // d_fsupc = 0 if fsupc >= fpanelc
+    d_fsupc = fst_col - fsupc; 
+    
+    lptr = glu.xlsub(fsupc) + d_fsupc; 
+    luptr = glu.xlusup(fst_col) + d_fsupc; 
+    nsupr = glu.xlsub(fsupc+1) - glu.xlsub(fsupc); // leading dimension
+    nsupc = jcol - fst_col; // excluding jcol 
+    nrow = nsupr - d_fsupc - nsupc; 
+    
+    // points to the beginning of jcol in snode L\U(jsupno) 
+    ufirst = glu.xlusup(jcol) + d_fsupc; 
+    Index lda = glu.xlusup(jcol+1) - glu.xlusup(jcol);
+    Map<Matrix<Scalar,Dynamic,Dynamic>, 0,  OuterStride<> > A( &(glu.lusup.data()[luptr]), nsupc, nsupc, OuterStride<>(lda) ); 
+    VectorBlock<ScalarVector> u(glu.lusup, ufirst, nsupc); 
+    u = A.template triangularView<UnitLower>().solve(u); 
+    
+    new (&A) Map<Matrix<Scalar,Dynamic,Dynamic>, 0, OuterStride<> > ( &(glu.lusup.data()[luptr+nsupc]), nrow, nsupc, OuterStride<>(lda) ); 
+    VectorBlock<ScalarVector> l(glu.lusup, ufirst+nsupc, nrow); 
+    l.noalias() -= A * u;
+    
+  } // End if fst_col
+  return 0; 
+}
+
+} // end namespace internal
+} // end namespace Eigen
+
+#endif // SPARSELU_COLUMN_BMOD_H
diff --git a/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h
new file mode 100644
index 0000000000000000000000000000000000000000..4c04b0e44e9fb0c619911ad4aee225c8c36229ea
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h
@@ -0,0 +1,177 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ 
+ * NOTE: This file is the modified version of [s,d,c,z]column_dfs.c file in SuperLU 
+ 
+ * -- SuperLU routine (version 2.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * November 15, 1997
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_COLUMN_DFS_H
+#define SPARSELU_COLUMN_DFS_H
+
+template <typename Scalar, typename Index> class SparseLUImpl;
+namespace Eigen {
+
+namespace internal {
+
+template<typename IndexVector, typename ScalarVector>
+struct column_dfs_traits : no_assignment_operator
+{
+  typedef typename ScalarVector::Scalar Scalar;
+  typedef typename IndexVector::Scalar Index;
+  column_dfs_traits(Index jcol, Index& jsuper, typename SparseLUImpl<Scalar, Index>::GlobalLU_t& glu, SparseLUImpl<Scalar, Index>& luImpl)
+   : m_jcol(jcol), m_jsuper_ref(jsuper), m_glu(glu), m_luImpl(luImpl)
+ {}
+  bool update_segrep(Index /*krep*/, Index /*jj*/)
+  {
+    return true;
+  }
+  void mem_expand(IndexVector& lsub, Index& nextl, Index chmark)
+  {
+    if (nextl >= m_glu.nzlmax)
+      m_luImpl.memXpand(lsub, m_glu.nzlmax, nextl, LSUB, m_glu.num_expansions); 
+    if (chmark != (m_jcol-1)) m_jsuper_ref = emptyIdxLU;
+  }
+  enum { ExpandMem = true };
+  
+  Index m_jcol;
+  Index& m_jsuper_ref;
+  typename SparseLUImpl<Scalar, Index>::GlobalLU_t& m_glu;
+  SparseLUImpl<Scalar, Index>& m_luImpl;
+};
+
+
+/**
+ * \brief Performs a symbolic factorization on column jcol and decide the supernode boundary
+ * 
+ * A supernode representative is the last column of a supernode.
+ * The nonzeros in U[*,j] are segments that end at supernodes representatives. 
+ * The routine returns a list of the supernodal representatives 
+ * in topological order of the dfs that generates them. 
+ * The location of the first nonzero in each supernodal segment 
+ * (supernodal entry location) is also returned. 
+ * 
+ * \param m number of rows in the matrix
+ * \param jcol Current column 
+ * \param perm_r Row permutation
+ * \param maxsuper  Maximum number of column allowed in a supernode
+ * \param [in,out] nseg Number of segments in current U[*,j] - new segments appended
+ * \param lsub_col defines the rhs vector to start the dfs
+ * \param [in,out] segrep Segment representatives - new segments appended 
+ * \param repfnz  First nonzero location in each row
+ * \param xprune 
+ * \param marker  marker[i] == jj, if i was visited during dfs of current column jj;
+ * \param parent
+ * \param xplore working array
+ * \param glu global LU data 
+ * \return 0 success
+ *         > 0 number of bytes allocated when run out of space
+ * 
+ */
+template <typename Scalar, typename Index>
+Index SparseLUImpl<Scalar,Index>::column_dfs(const Index m, const Index jcol, IndexVector& perm_r, Index maxsuper, Index& nseg,  BlockIndexVector lsub_col, IndexVector& segrep, BlockIndexVector repfnz, IndexVector& xprune, IndexVector& marker, IndexVector& parent, IndexVector& xplore, GlobalLU_t& glu)
+{
+  
+  Index jsuper = glu.supno(jcol); 
+  Index nextl = glu.xlsub(jcol); 
+  VectorBlock<IndexVector> marker2(marker, 2*m, m); 
+  
+  
+  column_dfs_traits<IndexVector, ScalarVector> traits(jcol, jsuper, glu, *this);
+  
+  // For each nonzero in A(*,jcol) do dfs 
+  for (Index k = 0; ((k < m) ? lsub_col[k] != emptyIdxLU : false) ; k++)
+  {
+    Index krow = lsub_col(k); 
+    lsub_col(k) = emptyIdxLU; 
+    Index kmark = marker2(krow); 
+    
+    // krow was visited before, go to the next nonz; 
+    if (kmark == jcol) continue;
+    
+    dfs_kernel(jcol, perm_r, nseg, glu.lsub, segrep, repfnz, xprune, marker2, parent,
+                   xplore, glu, nextl, krow, traits);
+  } // for each nonzero ... 
+  
+  Index fsupc, jptr, jm1ptr, ito, ifrom, istop;
+  Index nsuper = glu.supno(jcol);
+  Index jcolp1 = jcol + 1;
+  Index jcolm1 = jcol - 1;
+  
+  // check to see if j belongs in the same supernode as j-1
+  if ( jcol == 0 )
+  { // Do nothing for column 0 
+    nsuper = glu.supno(0) = 0 ;
+  }
+  else 
+  {
+    fsupc = glu.xsup(nsuper); 
+    jptr = glu.xlsub(jcol); // Not yet compressed
+    jm1ptr = glu.xlsub(jcolm1); 
+    
+    // Use supernodes of type T2 : see SuperLU paper
+    if ( (nextl-jptr != jptr-jm1ptr-1) ) jsuper = emptyIdxLU;
+    
+    // Make sure the number of columns in a supernode doesn't
+    // exceed threshold
+    if ( (jcol - fsupc) >= maxsuper) jsuper = emptyIdxLU; 
+    
+    /* If jcol starts a new supernode, reclaim storage space in
+     * glu.lsub from previous supernode. Note we only store 
+     * the subscript set of the first and last columns of 
+     * a supernode. (first for num values, last for pruning)
+     */
+    if (jsuper == emptyIdxLU)
+    { // starts a new supernode 
+      if ( (fsupc < jcolm1-1) ) 
+      { // >= 3 columns in nsuper
+        ito = glu.xlsub(fsupc+1);
+        glu.xlsub(jcolm1) = ito; 
+        istop = ito + jptr - jm1ptr; 
+        xprune(jcolm1) = istop; // intialize xprune(jcol-1)
+        glu.xlsub(jcol) = istop; 
+        
+        for (ifrom = jm1ptr; ifrom < nextl; ++ifrom, ++ito)
+          glu.lsub(ito) = glu.lsub(ifrom); 
+        nextl = ito;  // = istop + length(jcol)
+      }
+      nsuper++; 
+      glu.supno(jcol) = nsuper; 
+    } // if a new supernode 
+  } // end else:  jcol > 0
+  
+  // Tidy up the pointers before exit
+  glu.xsup(nsuper+1) = jcolp1; 
+  glu.supno(jcolp1) = nsuper; 
+  xprune(jcol) = nextl;  // Intialize upper bound for pruning
+  glu.xlsub(jcolp1) = nextl; 
+  
+  return 0; 
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif
diff --git a/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
new file mode 100644
index 0000000000000000000000000000000000000000..170610d9f2908ddebbbf9d8fd5cb6584572f61a4
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
@@ -0,0 +1,106 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+/* 
+ 
+ * NOTE: This file is the modified version of [s,d,c,z]copy_to_ucol.c file in SuperLU 
+ 
+ * -- SuperLU routine (version 2.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * November 15, 1997
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_COPY_TO_UCOL_H
+#define SPARSELU_COPY_TO_UCOL_H
+
+namespace Eigen {
+namespace internal {
+
+/**
+ * \brief Performs numeric block updates (sup-col) in topological order
+ * 
+ * \param jcol current column to update
+ * \param nseg Number of segments in the U part
+ * \param segrep segment representative ...
+ * \param repfnz First nonzero column in each row  ...
+ * \param perm_r Row permutation 
+ * \param dense Store the full representation of the column
+ * \param glu Global LU data. 
+ * \return 0 - successful return 
+ *         > 0 - number of bytes allocated when run out of space
+ * 
+ */
+template <typename Scalar, typename Index>
+Index SparseLUImpl<Scalar,Index>::copy_to_ucol(const Index jcol, const Index nseg, IndexVector& segrep, BlockIndexVector repfnz ,IndexVector& perm_r, BlockScalarVector dense, GlobalLU_t& glu)
+{  
+  Index ksub, krep, ksupno; 
+    
+  Index jsupno = glu.supno(jcol);
+  
+  // For each nonzero supernode segment of U[*,j] in topological order 
+  Index k = nseg - 1, i; 
+  Index nextu = glu.xusub(jcol); 
+  Index kfnz, isub, segsize; 
+  Index new_next,irow; 
+  Index fsupc, mem; 
+  for (ksub = 0; ksub < nseg; ksub++)
+  {
+    krep = segrep(k); k--; 
+    ksupno = glu.supno(krep); 
+    if (jsupno != ksupno ) // should go into ucol(); 
+    {
+      kfnz = repfnz(krep); 
+      if (kfnz != emptyIdxLU)
+      { // Nonzero U-segment 
+        fsupc = glu.xsup(ksupno); 
+        isub = glu.xlsub(fsupc) + kfnz - fsupc; 
+        segsize = krep - kfnz + 1; 
+        new_next = nextu + segsize; 
+        while (new_next > glu.nzumax) 
+        {
+          mem = memXpand<ScalarVector>(glu.ucol, glu.nzumax, nextu, UCOL, glu.num_expansions); 
+          if (mem) return mem; 
+          mem = memXpand<IndexVector>(glu.usub, glu.nzumax, nextu, USUB, glu.num_expansions); 
+          if (mem) return mem; 
+          
+        }
+        
+        for (i = 0; i < segsize; i++)
+        {
+          irow = glu.lsub(isub); 
+          glu.usub(nextu) = perm_r(irow); // Unlike the L part, the U part is stored in its final order
+          glu.ucol(nextu) = dense(irow); 
+          dense(irow) = Scalar(0.0); 
+          nextu++;
+          isub++;
+        }
+        
+      } // end nonzero U-segment 
+      
+    } // end if jsupno 
+    
+  } // end for each segment
+  glu.xusub(jcol + 1) = nextu; // close U(*,jcol)
+  return 0; 
+}
+
+} // namespace internal
+} // end namespace Eigen
+
+#endif // SPARSELU_COPY_TO_UCOL_H
diff --git a/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h
new file mode 100644
index 0000000000000000000000000000000000000000..9e4e3e72b70721563947d9c44f7222d9f8313998
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h
@@ -0,0 +1,279 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSELU_GEMM_KERNEL_H
+#define EIGEN_SPARSELU_GEMM_KERNEL_H
+
+namespace Eigen {
+
+namespace internal {
+
+
+/** \internal
+  * A general matrix-matrix product kernel optimized for the SparseLU factorization.
+  *  - A, B, and C must be column major
+  *  - lda and ldc must be multiples of the respective packet size
+  *  - C must have the same alignment as A
+  */
+template<typename Scalar,typename Index>
+EIGEN_DONT_INLINE
+void sparselu_gemm(Index m, Index n, Index d, const Scalar* A, Index lda, const Scalar* B, Index ldb, Scalar* C, Index ldc)
+{
+  using namespace Eigen::internal;
+  
+  typedef typename packet_traits<Scalar>::type Packet;
+  enum {
+    NumberOfRegisters = EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS,
+    PacketSize = packet_traits<Scalar>::size,
+    PM = 8,                             // peeling in M
+    RN = 2,                             // register blocking
+    RK = NumberOfRegisters>=16 ? 4 : 2, // register blocking
+    BM = 4096/sizeof(Scalar),           // number of rows of A-C per chunk
+    SM = PM*PacketSize                  // step along M
+  };
+  Index d_end = (d/RK)*RK;    // number of columns of A (rows of B) suitable for full register blocking
+  Index n_end = (n/RN)*RN;    // number of columns of B-C suitable for processing RN columns at once
+  Index i0 = internal::first_aligned(A,m);
+  
+  eigen_internal_assert(((lda%PacketSize)==0) && ((ldc%PacketSize)==0) && (i0==internal::first_aligned(C,m)));
+  
+  // handle the non aligned rows of A and C without any optimization:
+  for(Index i=0; i<i0; ++i)
+  {
+    for(Index j=0; j<n; ++j)
+    {
+      Scalar c = C[i+j*ldc];
+      for(Index k=0; k<d; ++k)
+        c += B[k+j*ldb] * A[i+k*lda];
+      C[i+j*ldc] = c;
+    }
+  }
+  // process the remaining rows per chunk of BM rows
+  for(Index ib=i0; ib<m; ib+=BM)
+  {
+    Index actual_b = std::min<Index>(BM, m-ib);                 // actual number of rows
+    Index actual_b_end1 = (actual_b/SM)*SM;                   // actual number of rows suitable for peeling
+    Index actual_b_end2 = (actual_b/PacketSize)*PacketSize;   // actual number of rows suitable for vectorization
+    
+    // Let's process two columns of B-C at once
+    for(Index j=0; j<n_end; j+=RN)
+    {
+      const Scalar* Bc0 = B+(j+0)*ldb;
+      const Scalar* Bc1 = B+(j+1)*ldb;
+      
+      for(Index k=0; k<d_end; k+=RK)
+      {
+        
+        // load and expand a RN x RK block of B
+        Packet b00, b10, b20, b30, b01, b11, b21, b31;
+                  b00 = pset1<Packet>(Bc0[0]);
+                  b10 = pset1<Packet>(Bc0[1]);
+        if(RK==4) b20 = pset1<Packet>(Bc0[2]);
+        if(RK==4) b30 = pset1<Packet>(Bc0[3]);
+                  b01 = pset1<Packet>(Bc1[0]);
+                  b11 = pset1<Packet>(Bc1[1]);
+        if(RK==4) b21 = pset1<Packet>(Bc1[2]);
+        if(RK==4) b31 = pset1<Packet>(Bc1[3]);
+        
+        Packet a0, a1, a2, a3, c0, c1, t0, t1;
+        
+        const Scalar* A0 = A+ib+(k+0)*lda;
+        const Scalar* A1 = A+ib+(k+1)*lda;
+        const Scalar* A2 = A+ib+(k+2)*lda;
+        const Scalar* A3 = A+ib+(k+3)*lda;
+        
+        Scalar* C0 = C+ib+(j+0)*ldc;
+        Scalar* C1 = C+ib+(j+1)*ldc;
+        
+                  a0 = pload<Packet>(A0);
+                  a1 = pload<Packet>(A1);
+        if(RK==4)
+        {
+          a2 = pload<Packet>(A2);
+          a3 = pload<Packet>(A3);
+        }
+        else
+        {
+          // workaround "may be used uninitialized in this function" warning
+          a2 = a3 = a0;
+        }
+        
+#define KMADD(c, a, b, tmp) {tmp = b; tmp = pmul(a,tmp); c = padd(c,tmp);}
+#define WORK(I)  \
+                    c0 = pload<Packet>(C0+i+(I)*PacketSize);   \
+                    c1 = pload<Packet>(C1+i+(I)*PacketSize);   \
+                    KMADD(c0, a0, b00, t0)      \
+                    KMADD(c1, a0, b01, t1)      \
+                    a0 = pload<Packet>(A0+i+(I+1)*PacketSize); \
+                    KMADD(c0, a1, b10, t0)      \
+                    KMADD(c1, a1, b11, t1)       \
+                    a1 = pload<Packet>(A1+i+(I+1)*PacketSize); \
+          if(RK==4) KMADD(c0, a2, b20, t0)       \
+          if(RK==4) KMADD(c1, a2, b21, t1)       \
+          if(RK==4) a2 = pload<Packet>(A2+i+(I+1)*PacketSize); \
+          if(RK==4) KMADD(c0, a3, b30, t0)       \
+          if(RK==4) KMADD(c1, a3, b31, t1)       \
+          if(RK==4) a3 = pload<Packet>(A3+i+(I+1)*PacketSize); \
+                    pstore(C0+i+(I)*PacketSize, c0);           \
+                    pstore(C1+i+(I)*PacketSize, c1)
+        
+        // process rows of A' - C' with aggressive vectorization and peeling 
+        for(Index i=0; i<actual_b_end1; i+=PacketSize*8)
+        {
+          EIGEN_ASM_COMMENT("SPARSELU_GEMML_KERNEL1");
+                    prefetch((A0+i+(5)*PacketSize));
+                    prefetch((A1+i+(5)*PacketSize));
+          if(RK==4) prefetch((A2+i+(5)*PacketSize));
+          if(RK==4) prefetch((A3+i+(5)*PacketSize));
+                    WORK(0);
+                    WORK(1);
+                    WORK(2);
+                    WORK(3);
+                    WORK(4);
+                    WORK(5);
+                    WORK(6);
+                    WORK(7);
+        }
+        // process the remaining rows with vectorization only
+        for(Index i=actual_b_end1; i<actual_b_end2; i+=PacketSize)
+        {
+          WORK(0);
+        }
+#undef WORK
+        // process the remaining rows without vectorization
+        for(Index i=actual_b_end2; i<actual_b; ++i)
+        {
+          if(RK==4)
+          {
+            C0[i] += A0[i]*Bc0[0]+A1[i]*Bc0[1]+A2[i]*Bc0[2]+A3[i]*Bc0[3];
+            C1[i] += A0[i]*Bc1[0]+A1[i]*Bc1[1]+A2[i]*Bc1[2]+A3[i]*Bc1[3];
+          }
+          else
+          {
+            C0[i] += A0[i]*Bc0[0]+A1[i]*Bc0[1];
+            C1[i] += A0[i]*Bc1[0]+A1[i]*Bc1[1];
+          }
+        }
+        
+        Bc0 += RK;
+        Bc1 += RK;
+      } // peeled loop on k
+    } // peeled loop on the columns j
+    // process the last column (we now perform a matrux-vector product)
+    if((n-n_end)>0)
+    {
+      const Scalar* Bc0 = B+(n-1)*ldb;
+      
+      for(Index k=0; k<d_end; k+=RK)
+      {
+        
+        // load and expand a 1 x RK block of B
+        Packet b00, b10, b20, b30;
+                  b00 = pset1<Packet>(Bc0[0]);
+                  b10 = pset1<Packet>(Bc0[1]);
+        if(RK==4) b20 = pset1<Packet>(Bc0[2]);
+        if(RK==4) b30 = pset1<Packet>(Bc0[3]);
+        
+        Packet a0, a1, a2, a3, c0, t0/*, t1*/;
+        
+        const Scalar* A0 = A+ib+(k+0)*lda;
+        const Scalar* A1 = A+ib+(k+1)*lda;
+        const Scalar* A2 = A+ib+(k+2)*lda;
+        const Scalar* A3 = A+ib+(k+3)*lda;
+        
+        Scalar* C0 = C+ib+(n_end)*ldc;
+        
+                  a0 = pload<Packet>(A0);
+                  a1 = pload<Packet>(A1);
+        if(RK==4)
+        {
+          a2 = pload<Packet>(A2);
+          a3 = pload<Packet>(A3);
+        }
+        else
+        {
+          // workaround "may be used uninitialized in this function" warning
+          a2 = a3 = a0;
+        }
+        
+#define WORK(I) \
+                  c0 = pload<Packet>(C0+i+(I)*PacketSize);   \
+                  KMADD(c0, a0, b00, t0)       \
+                  a0 = pload<Packet>(A0+i+(I+1)*PacketSize); \
+                  KMADD(c0, a1, b10, t0)       \
+                  a1 = pload<Packet>(A1+i+(I+1)*PacketSize); \
+        if(RK==4) KMADD(c0, a2, b20, t0)       \
+        if(RK==4) a2 = pload<Packet>(A2+i+(I+1)*PacketSize); \
+        if(RK==4) KMADD(c0, a3, b30, t0)       \
+        if(RK==4) a3 = pload<Packet>(A3+i+(I+1)*PacketSize); \
+                  pstore(C0+i+(I)*PacketSize, c0);
+        
+        // agressive vectorization and peeling
+        for(Index i=0; i<actual_b_end1; i+=PacketSize*8)
+        {
+          EIGEN_ASM_COMMENT("SPARSELU_GEMML_KERNEL2");
+          WORK(0);
+          WORK(1);
+          WORK(2);
+          WORK(3);
+          WORK(4);
+          WORK(5);
+          WORK(6);
+          WORK(7);
+        }
+        // vectorization only
+        for(Index i=actual_b_end1; i<actual_b_end2; i+=PacketSize)
+        {
+          WORK(0);
+        }
+        // remaining scalars
+        for(Index i=actual_b_end2; i<actual_b; ++i)
+        {
+          if(RK==4) 
+            C0[i] += A0[i]*Bc0[0]+A1[i]*Bc0[1]+A2[i]*Bc0[2]+A3[i]*Bc0[3];
+          else
+            C0[i] += A0[i]*Bc0[0]+A1[i]*Bc0[1];
+        }
+        
+        Bc0 += RK;
+#undef WORK
+      }
+    }
+    
+    // process the last columns of A, corresponding to the last rows of B
+    Index rd = d-d_end;
+    if(rd>0)
+    {
+      for(Index j=0; j<n; ++j)
+      {
+        enum {
+          Alignment = PacketSize>1 ? Aligned : 0
+        };
+        typedef Map<Matrix<Scalar,Dynamic,1>, Alignment > MapVector;
+        typedef Map<const Matrix<Scalar,Dynamic,1>, Alignment > ConstMapVector;
+        if(rd==1)       MapVector(C+j*ldc+ib,actual_b) += B[0+d_end+j*ldb] * ConstMapVector(A+(d_end+0)*lda+ib, actual_b);
+        
+        else if(rd==2)  MapVector(C+j*ldc+ib,actual_b) += B[0+d_end+j*ldb] * ConstMapVector(A+(d_end+0)*lda+ib, actual_b)
+                                                        + B[1+d_end+j*ldb] * ConstMapVector(A+(d_end+1)*lda+ib, actual_b);
+        
+        else            MapVector(C+j*ldc+ib,actual_b) += B[0+d_end+j*ldb] * ConstMapVector(A+(d_end+0)*lda+ib, actual_b)
+                                                        + B[1+d_end+j*ldb] * ConstMapVector(A+(d_end+1)*lda+ib, actual_b)
+                                                        + B[2+d_end+j*ldb] * ConstMapVector(A+(d_end+2)*lda+ib, actual_b);
+      }
+    }
+  
+  } // blocking on the rows of A and C
+}
+#undef KMADD
+
+} // namespace internal
+
+} // namespace Eigen
+
+#endif // EIGEN_SPARSELU_GEMM_KERNEL_H
diff --git a/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h
new file mode 100644
index 0000000000000000000000000000000000000000..7a4e4305aa994e9a4b49f0e4507f141ed73ec03e
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h
@@ -0,0 +1,127 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* This file is a modified version of heap_relax_snode.c file in SuperLU
+ * -- SuperLU routine (version 3.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * October 15, 2003
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+
+#ifndef SPARSELU_HEAP_RELAX_SNODE_H
+#define SPARSELU_HEAP_RELAX_SNODE_H
+
+namespace Eigen {
+namespace internal {
+
+/** 
+ * \brief Identify the initial relaxed supernodes
+ * 
+ * This routine applied to a symmetric elimination tree. 
+ * It assumes that the matrix has been reordered according to the postorder of the etree
+ * \param n The number of columns
+ * \param et elimination tree 
+ * \param relax_columns Maximum number of columns allowed in a relaxed snode 
+ * \param descendants Number of descendants of each node in the etree
+ * \param relax_end last column in a supernode
+ */
+template <typename Scalar, typename Index>
+void SparseLUImpl<Scalar,Index>::heap_relax_snode (const Index n, IndexVector& et, const Index relax_columns, IndexVector& descendants, IndexVector& relax_end)
+{
+  
+  // The etree may not be postordered, but its heap ordered  
+  IndexVector post;
+  internal::treePostorder(n, et, post); // Post order etree
+  IndexVector inv_post(n+1); 
+  Index i;
+  for (i = 0; i < n+1; ++i) inv_post(post(i)) = i; // inv_post = post.inverse()???
+  
+  // Renumber etree in postorder 
+  IndexVector iwork(n);
+  IndexVector et_save(n+1);
+  for (i = 0; i < n; ++i)
+  {
+    iwork(post(i)) = post(et(i));
+  }
+  et_save = et; // Save the original etree
+  et = iwork; 
+  
+  // compute the number of descendants of each node in the etree
+  relax_end.setConstant(emptyIdxLU);
+  Index j, parent; 
+  descendants.setZero();
+  for (j = 0; j < n; j++) 
+  {
+    parent = et(j);
+    if (parent != n) // not the dummy root
+      descendants(parent) += descendants(j) + 1;
+  }
+  // Identify the relaxed supernodes by postorder traversal of the etree
+  Index snode_start; // beginning of a snode 
+  Index k;
+  Index nsuper_et_post = 0; // Number of relaxed snodes in postordered etree 
+  Index nsuper_et = 0; // Number of relaxed snodes in the original etree 
+  Index l; 
+  for (j = 0; j < n; )
+  {
+    parent = et(j);
+    snode_start = j; 
+    while ( parent != n && descendants(parent) < relax_columns ) 
+    {
+      j = parent; 
+      parent = et(j);
+    }
+    // Found a supernode in postordered etree, j is the last column 
+    ++nsuper_et_post;
+    k = n;
+    for (i = snode_start; i <= j; ++i)
+      k = (std::min)(k, inv_post(i));
+    l = inv_post(j);
+    if ( (l - k) == (j - snode_start) )  // Same number of columns in the snode
+    {
+      // This is also a supernode in the original etree
+      relax_end(k) = l; // Record last column 
+      ++nsuper_et; 
+    }
+    else 
+    {
+      for (i = snode_start; i <= j; ++i) 
+      {
+        l = inv_post(i);
+        if (descendants(i) == 0) 
+        {
+          relax_end(l) = l;
+          ++nsuper_et;
+        }
+      }
+    }
+    j++;
+    // Search for a new leaf
+    while (descendants(j) != 0 && j < n) j++;
+  } // End postorder traversal of the etree
+  
+  // Recover the original etree
+  et = et_save; 
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+#endif // SPARSELU_HEAP_RELAX_SNODE_H
diff --git a/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h
new file mode 100644
index 0000000000000000000000000000000000000000..0d0283b132b8dce16c06e7645103a483bfe9439a
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h
@@ -0,0 +1,130 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef SPARSELU_KERNEL_BMOD_H
+#define SPARSELU_KERNEL_BMOD_H
+
+namespace Eigen {
+namespace internal {
+  
+/**
+ * \brief Performs numeric block updates from a given supernode to a single column
+ * 
+ * \param segsize Size of the segment (and blocks ) to use for updates
+ * \param[in,out] dense Packed values of the original matrix
+ * \param tempv temporary vector to use for updates
+ * \param lusup array containing the supernodes
+ * \param lda Leading dimension in the supernode
+ * \param nrow Number of rows in the rectangular part of the supernode
+ * \param lsub compressed row subscripts of supernodes
+ * \param lptr pointer to the first column of the current supernode in lsub
+ * \param no_zeros Number of nonzeros elements before the diagonal part of the supernode
+ * \return 0 on success
+ */
+template <int SegSizeAtCompileTime> struct LU_kernel_bmod
+{
+  template <typename BlockScalarVector, typename ScalarVector, typename IndexVector, typename Index>
+  static EIGEN_DONT_INLINE void run(const int segsize, BlockScalarVector& dense, ScalarVector& tempv, ScalarVector& lusup, Index& luptr, const Index lda,
+                                    const Index nrow, IndexVector& lsub, const Index lptr, const Index no_zeros);
+};
+
+template <int SegSizeAtCompileTime>
+template <typename BlockScalarVector, typename ScalarVector, typename IndexVector, typename Index>
+EIGEN_DONT_INLINE void LU_kernel_bmod<SegSizeAtCompileTime>::run(const int segsize, BlockScalarVector& dense, ScalarVector& tempv, ScalarVector& lusup, Index& luptr, const Index lda,
+                                                                  const Index nrow, IndexVector& lsub, const Index lptr, const Index no_zeros)
+{
+  typedef typename ScalarVector::Scalar Scalar;
+  // First, copy U[*,j] segment from dense(*) to tempv(*)
+  // The result of triangular solve is in tempv[*]; 
+    // The result of matric-vector update is in dense[*]
+  Index isub = lptr + no_zeros; 
+  int i;
+  Index irow;
+  for (i = 0; i < ((SegSizeAtCompileTime==Dynamic)?segsize:SegSizeAtCompileTime); i++)
+  {
+    irow = lsub(isub); 
+    tempv(i) = dense(irow); 
+    ++isub; 
+  }
+  // Dense triangular solve -- start effective triangle
+  luptr += lda * no_zeros + no_zeros; 
+  // Form Eigen matrix and vector 
+  Map<Matrix<Scalar,SegSizeAtCompileTime,SegSizeAtCompileTime>, 0, OuterStride<> > A( &(lusup.data()[luptr]), segsize, segsize, OuterStride<>(lda) );
+  Map<Matrix<Scalar,SegSizeAtCompileTime,1> > u(tempv.data(), segsize);
+  
+  u = A.template triangularView<UnitLower>().solve(u); 
+  
+  // Dense matrix-vector product y <-- B*x 
+  luptr += segsize;
+  const Index PacketSize = internal::packet_traits<Scalar>::size;
+  Index ldl = internal::first_multiple(nrow, PacketSize);
+  Map<Matrix<Scalar,Dynamic,SegSizeAtCompileTime>, 0, OuterStride<> > B( &(lusup.data()[luptr]), nrow, segsize, OuterStride<>(lda) );
+  Index aligned_offset = internal::first_aligned(tempv.data()+segsize, PacketSize);
+  Index aligned_with_B_offset = (PacketSize-internal::first_aligned(B.data(), PacketSize))%PacketSize;
+  Map<Matrix<Scalar,Dynamic,1>, 0, OuterStride<> > l(tempv.data()+segsize+aligned_offset+aligned_with_B_offset, nrow, OuterStride<>(ldl) );
+  
+  l.setZero();
+  internal::sparselu_gemm<Scalar>(l.rows(), l.cols(), B.cols(), B.data(), B.outerStride(), u.data(), u.outerStride(), l.data(), l.outerStride());
+  
+  // Scatter tempv[] into SPA dense[] as a temporary storage 
+  isub = lptr + no_zeros;
+  for (i = 0; i < ((SegSizeAtCompileTime==Dynamic)?segsize:SegSizeAtCompileTime); i++)
+  {
+    irow = lsub(isub++); 
+    dense(irow) = tempv(i);
+  }
+  
+  // Scatter l into SPA dense[]
+  for (i = 0; i < nrow; i++)
+  {
+    irow = lsub(isub++); 
+    dense(irow) -= l(i);
+  } 
+}
+
+template <> struct LU_kernel_bmod<1>
+{
+  template <typename BlockScalarVector, typename ScalarVector, typename IndexVector, typename Index>
+  static EIGEN_DONT_INLINE void run(const int /*segsize*/, BlockScalarVector& dense, ScalarVector& /*tempv*/, ScalarVector& lusup, Index& luptr,
+                                    const Index lda, const Index nrow, IndexVector& lsub, const Index lptr, const Index no_zeros);
+};
+
+
+template <typename BlockScalarVector, typename ScalarVector, typename IndexVector, typename Index>
+EIGEN_DONT_INLINE void LU_kernel_bmod<1>::run(const int /*segsize*/, BlockScalarVector& dense, ScalarVector& /*tempv*/, ScalarVector& lusup, Index& luptr,
+                                              const Index lda, const Index nrow, IndexVector& lsub, const Index lptr, const Index no_zeros)
+{
+  typedef typename ScalarVector::Scalar Scalar;
+  Scalar f = dense(lsub(lptr + no_zeros));
+  luptr += lda * no_zeros + no_zeros + 1;
+  const Scalar* a(lusup.data() + luptr);
+  const /*typename IndexVector::Scalar*/Index*  irow(lsub.data()+lptr + no_zeros + 1);
+  Index i = 0;
+  for (; i+1 < nrow; i+=2)
+  {
+    Index i0 = *(irow++);
+    Index i1 = *(irow++);
+    Scalar a0 = *(a++);
+    Scalar a1 = *(a++);
+    Scalar d0 = dense.coeff(i0);
+    Scalar d1 = dense.coeff(i1);
+    d0 -= f*a0;
+    d1 -= f*a1;
+    dense.coeffRef(i0) = d0;
+    dense.coeffRef(i1) = d1;
+  }
+  if(i<nrow)
+    dense.coeffRef(*(irow++)) -= f * *(a++);
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+#endif // SPARSELU_KERNEL_BMOD_H
diff --git a/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h
new file mode 100644
index 0000000000000000000000000000000000000000..da0e0fc3c602b9ad78837a22d0ab95d41cc8be00
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h
@@ -0,0 +1,223 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ 
+ * NOTE: This file is the modified version of [s,d,c,z]panel_bmod.c file in SuperLU 
+ 
+ * -- SuperLU routine (version 3.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * October 15, 2003
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_PANEL_BMOD_H
+#define SPARSELU_PANEL_BMOD_H
+
+namespace Eigen {
+namespace internal {
+
+/**
+ * \brief Performs numeric block updates (sup-panel) in topological order.
+ * 
+ * Before entering this routine, the original nonzeros in the panel
+ * were already copied i nto the spa[m,w]
+ * 
+ * \param m number of rows in the matrix
+ * \param w Panel size
+ * \param jcol Starting  column of the panel
+ * \param nseg Number of segments in the U part
+ * \param dense Store the full representation of the panel 
+ * \param tempv working array 
+ * \param segrep segment representative... first row in the segment
+ * \param repfnz First nonzero rows
+ * \param glu Global LU data. 
+ * 
+ * 
+ */
+template <typename Scalar, typename Index>
+void SparseLUImpl<Scalar,Index>::panel_bmod(const Index m, const Index w, const Index jcol, 
+                                            const Index nseg, ScalarVector& dense, ScalarVector& tempv,
+                                            IndexVector& segrep, IndexVector& repfnz, GlobalLU_t& glu)
+{
+  
+  Index ksub,jj,nextl_col; 
+  Index fsupc, nsupc, nsupr, nrow; 
+  Index krep, kfnz; 
+  Index lptr; // points to the row subscripts of a supernode 
+  Index luptr; // ...
+  Index segsize,no_zeros ; 
+  // For each nonz supernode segment of U[*,j] in topological order
+  Index k = nseg - 1; 
+  const Index PacketSize = internal::packet_traits<Scalar>::size;
+  
+  for (ksub = 0; ksub < nseg; ksub++)
+  { // For each updating supernode
+    /* krep = representative of current k-th supernode
+     * fsupc =  first supernodal column
+     * nsupc = number of columns in a supernode
+     * nsupr = number of rows in a supernode
+     */
+    krep = segrep(k); k--; 
+    fsupc = glu.xsup(glu.supno(krep)); 
+    nsupc = krep - fsupc + 1; 
+    nsupr = glu.xlsub(fsupc+1) - glu.xlsub(fsupc); 
+    nrow = nsupr - nsupc; 
+    lptr = glu.xlsub(fsupc); 
+    
+    // loop over the panel columns to detect the actual number of columns and rows
+    Index u_rows = 0;
+    Index u_cols = 0;
+    for (jj = jcol; jj < jcol + w; jj++)
+    {
+      nextl_col = (jj-jcol) * m; 
+      VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero column index for each row
+      
+      kfnz = repfnz_col(krep); 
+      if ( kfnz == emptyIdxLU ) 
+        continue; // skip any zero segment
+      
+      segsize = krep - kfnz + 1;
+      u_cols++;
+      u_rows = (std::max)(segsize,u_rows);
+    }
+    
+    if(nsupc >= 2)
+    { 
+      Index ldu = internal::first_multiple<Index>(u_rows, PacketSize);
+      Map<Matrix<Scalar,Dynamic,Dynamic>, Aligned,  OuterStride<> > U(tempv.data(), u_rows, u_cols, OuterStride<>(ldu));
+      
+      // gather U
+      Index u_col = 0;
+      for (jj = jcol; jj < jcol + w; jj++)
+      {
+        nextl_col = (jj-jcol) * m; 
+        VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero column index for each row
+        VectorBlock<ScalarVector> dense_col(dense, nextl_col, m); // Scatter/gather entire matrix column from/to here
+        
+        kfnz = repfnz_col(krep); 
+        if ( kfnz == emptyIdxLU ) 
+          continue; // skip any zero segment
+        
+        segsize = krep - kfnz + 1;
+        luptr = glu.xlusup(fsupc);    
+        no_zeros = kfnz - fsupc; 
+        
+        Index isub = lptr + no_zeros;
+        Index off = u_rows-segsize;
+        for (Index i = 0; i < off; i++) U(i,u_col) = 0;
+        for (Index i = 0; i < segsize; i++)
+        {
+          Index irow = glu.lsub(isub); 
+          U(i+off,u_col) = dense_col(irow); 
+          ++isub; 
+        }
+        u_col++;
+      }
+      // solve U = A^-1 U
+      luptr = glu.xlusup(fsupc);
+      Index lda = glu.xlusup(fsupc+1) - glu.xlusup(fsupc);
+      no_zeros = (krep - u_rows + 1) - fsupc;
+      luptr += lda * no_zeros + no_zeros;
+      Map<Matrix<Scalar,Dynamic,Dynamic>, 0, OuterStride<> > A(glu.lusup.data()+luptr, u_rows, u_rows, OuterStride<>(lda) );
+      U = A.template triangularView<UnitLower>().solve(U);
+      
+      // update
+      luptr += u_rows;
+      Map<Matrix<Scalar,Dynamic,Dynamic>, 0, OuterStride<> > B(glu.lusup.data()+luptr, nrow, u_rows, OuterStride<>(lda) );
+      eigen_assert(tempv.size()>w*ldu + nrow*w + 1);
+      
+      Index ldl = internal::first_multiple<Index>(nrow, PacketSize);
+      Index offset = (PacketSize-internal::first_aligned(B.data(), PacketSize)) % PacketSize;
+      Map<Matrix<Scalar,Dynamic,Dynamic>, 0, OuterStride<> > L(tempv.data()+w*ldu+offset, nrow, u_cols, OuterStride<>(ldl));
+      
+      L.setZero();
+      internal::sparselu_gemm<Scalar>(L.rows(), L.cols(), B.cols(), B.data(), B.outerStride(), U.data(), U.outerStride(), L.data(), L.outerStride());
+      
+      // scatter U and L
+      u_col = 0;
+      for (jj = jcol; jj < jcol + w; jj++)
+      {
+        nextl_col = (jj-jcol) * m; 
+        VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero column index for each row
+        VectorBlock<ScalarVector> dense_col(dense, nextl_col, m); // Scatter/gather entire matrix column from/to here
+        
+        kfnz = repfnz_col(krep); 
+        if ( kfnz == emptyIdxLU ) 
+          continue; // skip any zero segment
+        
+        segsize = krep - kfnz + 1;
+        no_zeros = kfnz - fsupc; 
+        Index isub = lptr + no_zeros;
+        
+        Index off = u_rows-segsize;
+        for (Index i = 0; i < segsize; i++)
+        {
+          Index irow = glu.lsub(isub++); 
+          dense_col(irow) = U.coeff(i+off,u_col);
+          U.coeffRef(i+off,u_col) = 0;
+        }
+        
+        // Scatter l into SPA dense[]
+        for (Index i = 0; i < nrow; i++)
+        {
+          Index irow = glu.lsub(isub++); 
+          dense_col(irow) -= L.coeff(i,u_col);
+          L.coeffRef(i,u_col) = 0;
+        }
+        u_col++;
+      }
+    }
+    else // level 2 only
+    {
+      // Sequence through each column in the panel
+      for (jj = jcol; jj < jcol + w; jj++)
+      {
+        nextl_col = (jj-jcol) * m; 
+        VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero column index for each row
+        VectorBlock<ScalarVector> dense_col(dense, nextl_col, m); // Scatter/gather entire matrix column from/to here
+        
+        kfnz = repfnz_col(krep); 
+        if ( kfnz == emptyIdxLU ) 
+          continue; // skip any zero segment
+        
+        segsize = krep - kfnz + 1;
+        luptr = glu.xlusup(fsupc);
+        
+        Index lda = glu.xlusup(fsupc+1)-glu.xlusup(fsupc);// nsupr
+        
+        // Perform a trianglar solve and block update, 
+        // then scatter the result of sup-col update to dense[]
+        no_zeros = kfnz - fsupc; 
+              if(segsize==1)  LU_kernel_bmod<1>::run(segsize, dense_col, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
+        else  if(segsize==2)  LU_kernel_bmod<2>::run(segsize, dense_col, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
+        else  if(segsize==3)  LU_kernel_bmod<3>::run(segsize, dense_col, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
+        else                  LU_kernel_bmod<Dynamic>::run(segsize, dense_col, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros); 
+      } // End for each column in the panel 
+    }
+    
+  } // End for each updating supernode
+} // end panel bmod
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // SPARSELU_PANEL_BMOD_H
diff --git a/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h
new file mode 100644
index 0000000000000000000000000000000000000000..dc0054efd2547c181664218d1e7a0d3963ebc688
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h
@@ -0,0 +1,258 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ 
+ * NOTE: This file is the modified version of [s,d,c,z]panel_dfs.c file in SuperLU 
+ 
+ * -- SuperLU routine (version 2.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * November 15, 1997
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_PANEL_DFS_H
+#define SPARSELU_PANEL_DFS_H
+
+namespace Eigen {
+
+namespace internal {
+  
+template<typename IndexVector>
+struct panel_dfs_traits
+{
+  typedef typename IndexVector::Scalar Index;
+  panel_dfs_traits(Index jcol, Index* marker)
+    : m_jcol(jcol), m_marker(marker)
+  {}
+  bool update_segrep(Index krep, Index jj)
+  {
+    if(m_marker[krep]<m_jcol)
+    {
+      m_marker[krep] = jj; 
+      return true;
+    }
+    return false;
+  }
+  void mem_expand(IndexVector& /*glu.lsub*/, Index /*nextl*/, Index /*chmark*/) {}
+  enum { ExpandMem = false };
+  Index m_jcol;
+  Index* m_marker;
+};
+
+
+template <typename Scalar, typename Index>
+template <typename Traits>
+void SparseLUImpl<Scalar,Index>::dfs_kernel(const Index jj, IndexVector& perm_r,
+                   Index& nseg, IndexVector& panel_lsub, IndexVector& segrep,
+                   Ref<IndexVector> repfnz_col, IndexVector& xprune, Ref<IndexVector> marker, IndexVector& parent,
+                   IndexVector& xplore, GlobalLU_t& glu,
+                   Index& nextl_col, Index krow, Traits& traits
+                  )
+{
+  
+  Index kmark = marker(krow);
+      
+  // For each unmarked krow of jj
+  marker(krow) = jj; 
+  Index kperm = perm_r(krow); 
+  if (kperm == emptyIdxLU ) {
+    // krow is in L : place it in structure of L(*, jj)
+    panel_lsub(nextl_col++) = krow;  // krow is indexed into A
+    
+    traits.mem_expand(panel_lsub, nextl_col, kmark);
+  }
+  else 
+  {
+    // krow is in U : if its supernode-representative krep
+    // has been explored, update repfnz(*)
+    // krep = supernode representative of the current row
+    Index krep = glu.xsup(glu.supno(kperm)+1) - 1; 
+    // First nonzero element in the current column:
+    Index myfnz = repfnz_col(krep); 
+    
+    if (myfnz != emptyIdxLU )
+    {
+      // Representative visited before
+      if (myfnz > kperm ) repfnz_col(krep) = kperm; 
+      
+    }
+    else 
+    {
+      // Otherwise, perform dfs starting at krep
+      Index oldrep = emptyIdxLU; 
+      parent(krep) = oldrep; 
+      repfnz_col(krep) = kperm; 
+      Index xdfs =  glu.xlsub(krep); 
+      Index maxdfs = xprune(krep); 
+      
+      Index kpar;
+      do 
+      {
+        // For each unmarked kchild of krep
+        while (xdfs < maxdfs) 
+        {
+          Index kchild = glu.lsub(xdfs); 
+          xdfs++; 
+          Index chmark = marker(kchild); 
+          
+          if (chmark != jj ) 
+          {
+            marker(kchild) = jj; 
+            Index chperm = perm_r(kchild); 
+            
+            if (chperm == emptyIdxLU) 
+            {
+              // case kchild is in L: place it in L(*, j)
+              panel_lsub(nextl_col++) = kchild;
+              traits.mem_expand(panel_lsub, nextl_col, chmark);
+            }
+            else
+            {
+              // case kchild is in U :
+              // chrep = its supernode-rep. If its rep has been explored, 
+              // update its repfnz(*)
+              Index chrep = glu.xsup(glu.supno(chperm)+1) - 1; 
+              myfnz = repfnz_col(chrep); 
+              
+              if (myfnz != emptyIdxLU) 
+              { // Visited before 
+                if (myfnz > chperm) 
+                  repfnz_col(chrep) = chperm; 
+              }
+              else 
+              { // Cont. dfs at snode-rep of kchild
+                xplore(krep) = xdfs; 
+                oldrep = krep; 
+                krep = chrep; // Go deeper down G(L)
+                parent(krep) = oldrep; 
+                repfnz_col(krep) = chperm; 
+                xdfs = glu.xlsub(krep); 
+                maxdfs = xprune(krep); 
+                
+              } // end if myfnz != -1
+            } // end if chperm == -1 
+                
+          } // end if chmark !=jj
+        } // end while xdfs < maxdfs
+        
+        // krow has no more unexplored nbrs :
+        //    Place snode-rep krep in postorder DFS, if this 
+        //    segment is seen for the first time. (Note that 
+        //    "repfnz(krep)" may change later.)
+        //    Baktrack dfs to its parent
+        if(traits.update_segrep(krep,jj))
+        //if (marker1(krep) < jcol )
+        {
+          segrep(nseg) = krep; 
+          ++nseg; 
+          //marker1(krep) = jj; 
+        }
+        
+        kpar = parent(krep); // Pop recursion, mimic recursion 
+        if (kpar == emptyIdxLU) 
+          break; // dfs done 
+        krep = kpar; 
+        xdfs = xplore(krep); 
+        maxdfs = xprune(krep); 
+
+      } while (kpar != emptyIdxLU); // Do until empty stack 
+      
+    } // end if (myfnz = -1)
+
+  } // end if (kperm == -1)   
+}
+
+/**
+ * \brief Performs a symbolic factorization on a panel of columns [jcol, jcol+w)
+ * 
+ * A supernode representative is the last column of a supernode.
+ * The nonzeros in U[*,j] are segments that end at supernodes representatives
+ * 
+ * The routine returns a list of the supernodal representatives 
+ * in topological order of the dfs that generates them. This list is 
+ * a superset of the topological order of each individual column within 
+ * the panel.
+ * The location of the first nonzero in each supernodal segment 
+ * (supernodal entry location) is also returned. Each column has 
+ * a separate list for this purpose. 
+ * 
+ * Two markers arrays are used for dfs :
+ *    marker[i] == jj, if i was visited during dfs of current column jj;
+ *    marker1[i] >= jcol, if i was visited by earlier columns in this panel; 
+ * 
+ * \param[in] m number of rows in the matrix
+ * \param[in] w Panel size
+ * \param[in] jcol Starting  column of the panel
+ * \param[in] A Input matrix in column-major storage
+ * \param[in] perm_r Row permutation
+ * \param[out] nseg Number of U segments
+ * \param[out] dense Accumulate the column vectors of the panel
+ * \param[out] panel_lsub Subscripts of the row in the panel 
+ * \param[out] segrep Segment representative i.e first nonzero row of each segment
+ * \param[out] repfnz First nonzero location in each row
+ * \param[out] xprune The pruned elimination tree
+ * \param[out] marker work vector
+ * \param  parent The elimination tree
+ * \param xplore work vector
+ * \param glu The global data structure
+ * 
+ */
+
+template <typename Scalar, typename Index>
+void SparseLUImpl<Scalar,Index>::panel_dfs(const Index m, const Index w, const Index jcol, MatrixType& A, IndexVector& perm_r, Index& nseg, ScalarVector& dense, IndexVector& panel_lsub, IndexVector& segrep, IndexVector& repfnz, IndexVector& xprune, IndexVector& marker, IndexVector& parent, IndexVector& xplore, GlobalLU_t& glu)
+{
+  Index nextl_col; // Next available position in panel_lsub[*,jj] 
+  
+  // Initialize pointers 
+  VectorBlock<IndexVector> marker1(marker, m, m); 
+  nseg = 0; 
+  
+  panel_dfs_traits<IndexVector> traits(jcol, marker1.data());
+  
+  // For each column in the panel 
+  for (Index jj = jcol; jj < jcol + w; jj++) 
+  {
+    nextl_col = (jj - jcol) * m; 
+    
+    VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero location in each row
+    VectorBlock<ScalarVector> dense_col(dense,nextl_col, m); // Accumulate a column vector here
+    
+    
+    // For each nnz in A[*, jj] do depth first search
+    for (typename MatrixType::InnerIterator it(A, jj); it; ++it)
+    {
+      Index krow = it.row(); 
+      dense_col(krow) = it.value();
+      
+      Index kmark = marker(krow); 
+      if (kmark == jj) 
+        continue; // krow visited before, go to the next nonzero
+      
+      dfs_kernel(jj, perm_r, nseg, panel_lsub, segrep, repfnz_col, xprune, marker, parent,
+                   xplore, glu, nextl_col, krow, traits);
+    }// end for nonzeros in column jj
+    
+  } // end for column jj
+}
+
+} // end namespace internal
+} // end namespace Eigen
+
+#endif // SPARSELU_PANEL_DFS_H
diff --git a/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h
new file mode 100644
index 0000000000000000000000000000000000000000..ddcd4ec98f83699468441f2f6ec03085e13b723a
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h
@@ -0,0 +1,134 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ 
+ * NOTE: This file is the modified version of xpivotL.c file in SuperLU 
+ 
+ * -- SuperLU routine (version 3.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * October 15, 2003
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_PIVOTL_H
+#define SPARSELU_PIVOTL_H
+
+namespace Eigen {
+namespace internal {
+  
+/**
+ * \brief Performs the numerical pivotin on the current column of L, and the CDIV operation.
+ * 
+ * Pivot policy :
+ * (1) Compute thresh = u * max_(i>=j) abs(A_ij);
+ * (2) IF user specifies pivot row k and abs(A_kj) >= thresh THEN
+ *           pivot row = k;
+ *       ELSE IF abs(A_jj) >= thresh THEN
+ *           pivot row = j;
+ *       ELSE
+ *           pivot row = m;
+ * 
+ *   Note: If you absolutely want to use a given pivot order, then set u=0.0.
+ * 
+ * \param jcol The current column of L
+ * \param diagpivotthresh diagonal pivoting threshold
+ * \param[in,out] perm_r Row permutation (threshold pivoting)
+ * \param[in] iperm_c column permutation - used to finf diagonal of Pc*A*Pc'
+ * \param[out] pivrow  The pivot row
+ * \param glu Global LU data
+ * \return 0 if success, i > 0 if U(i,i) is exactly zero 
+ * 
+ */
+template <typename Scalar, typename Index>
+Index SparseLUImpl<Scalar,Index>::pivotL(const Index jcol, const RealScalar& diagpivotthresh, IndexVector& perm_r, IndexVector& iperm_c, Index& pivrow, GlobalLU_t& glu)
+{
+  
+  Index fsupc = (glu.xsup)((glu.supno)(jcol)); // First column in the supernode containing the column jcol
+  Index nsupc = jcol - fsupc; // Number of columns in the supernode portion, excluding jcol; nsupc >=0
+  Index lptr = glu.xlsub(fsupc); // pointer to the starting location of the row subscripts for this supernode portion
+  Index nsupr = glu.xlsub(fsupc+1) - lptr; // Number of rows in the supernode
+  Index lda = glu.xlusup(fsupc+1) - glu.xlusup(fsupc); // leading dimension
+  Scalar* lu_sup_ptr = &(glu.lusup.data()[glu.xlusup(fsupc)]); // Start of the current supernode
+  Scalar* lu_col_ptr = &(glu.lusup.data()[glu.xlusup(jcol)]); // Start of jcol in the supernode
+  Index* lsub_ptr = &(glu.lsub.data()[lptr]); // Start of row indices of the supernode
+  
+  // Determine the largest abs numerical value for partial pivoting 
+  Index diagind = iperm_c(jcol); // diagonal index 
+  RealScalar pivmax = 0.0; 
+  Index pivptr = nsupc; 
+  Index diag = emptyIdxLU; 
+  RealScalar rtemp;
+  Index isub, icol, itemp, k; 
+  for (isub = nsupc; isub < nsupr; ++isub) {
+    rtemp = std::abs(lu_col_ptr[isub]);
+    if (rtemp > pivmax) {
+      pivmax = rtemp; 
+      pivptr = isub;
+    } 
+    if (lsub_ptr[isub] == diagind) diag = isub;
+  }
+  
+  // Test for singularity
+  if ( pivmax == 0.0 ) {
+    pivrow = lsub_ptr[pivptr];
+    perm_r(pivrow) = jcol;
+    return (jcol+1);
+  }
+  
+  RealScalar thresh = diagpivotthresh * pivmax; 
+  
+  // Choose appropriate pivotal element 
+  
+  {
+    // Test if the diagonal element can be used as a pivot (given the threshold value)
+    if (diag >= 0 ) 
+    {
+      // Diagonal element exists
+      rtemp = std::abs(lu_col_ptr[diag]);
+      if (rtemp != 0.0 && rtemp >= thresh) pivptr = diag;
+    }
+    pivrow = lsub_ptr[pivptr];
+  }
+  
+  // Record pivot row
+  perm_r(pivrow) = jcol; 
+  // Interchange row subscripts
+  if (pivptr != nsupc )
+  {
+    std::swap( lsub_ptr[pivptr], lsub_ptr[nsupc] );
+    // Interchange numerical values as well, for the two rows in the whole snode
+    // such that L is indexed the same way as A
+    for (icol = 0; icol <= nsupc; icol++)
+    {
+      itemp = pivptr + icol * lda; 
+      std::swap(lu_sup_ptr[itemp], lu_sup_ptr[nsupc + icol * lda]);
+    }
+  }
+  // cdiv operations
+  Scalar temp = Scalar(1.0) / lu_col_ptr[nsupc];
+  for (k = nsupc+1; k < nsupr; k++)
+    lu_col_ptr[k] *= temp; 
+  return 0;
+}
+
+} // end namespace internal
+} // end namespace Eigen
+
+#endif // SPARSELU_PIVOTL_H
diff --git a/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h
new file mode 100644
index 0000000000000000000000000000000000000000..66460d16884c6db64bd057e507bc82766df7c6d4
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h
@@ -0,0 +1,135 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ 
+ * NOTE: This file is the modified version of [s,d,c,z]pruneL.c file in SuperLU 
+ 
+ * -- SuperLU routine (version 2.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * November 15, 1997
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_PRUNEL_H
+#define SPARSELU_PRUNEL_H
+
+namespace Eigen {
+namespace internal {
+
+/**
+ * \brief Prunes the L-structure.
+ *
+ * It prunes the L-structure  of supernodes whose L-structure contains the current pivot row "pivrow"
+ * 
+ * 
+ * \param jcol The current column of L
+ * \param[in] perm_r Row permutation
+ * \param[out] pivrow  The pivot row
+ * \param nseg Number of segments
+ * \param segrep 
+ * \param repfnz
+ * \param[out] xprune 
+ * \param glu Global LU data
+ * 
+ */
+template <typename Scalar, typename Index>
+void SparseLUImpl<Scalar,Index>::pruneL(const Index jcol, const IndexVector& perm_r, const Index pivrow, const Index nseg, const IndexVector& segrep, BlockIndexVector repfnz, IndexVector& xprune, GlobalLU_t& glu)
+{
+  // For each supernode-rep irep in U(*,j]
+  Index jsupno = glu.supno(jcol); 
+  Index i,irep,irep1; 
+  bool movnum, do_prune = false; 
+  Index kmin = 0, kmax = 0, minloc, maxloc,krow; 
+  for (i = 0; i < nseg; i++)
+  {
+    irep = segrep(i); 
+    irep1 = irep + 1; 
+    do_prune = false; 
+    
+    // Don't prune with a zero U-segment 
+    if (repfnz(irep) == emptyIdxLU) continue; 
+    
+    // If a snode overlaps with the next panel, then the U-segment
+    // is fragmented into two parts -- irep and irep1. We should let 
+    // pruning occur at the rep-column in irep1s snode. 
+    if (glu.supno(irep) == glu.supno(irep1) ) continue; // don't prune 
+    
+    // If it has not been pruned & it has a nonz in row L(pivrow,i)
+    if (glu.supno(irep) != jsupno )
+    {
+      if ( xprune (irep) >= glu.xlsub(irep1) )
+      {
+        kmin = glu.xlsub(irep);
+        kmax = glu.xlsub(irep1) - 1; 
+        for (krow = kmin; krow <= kmax; krow++)
+        {
+          if (glu.lsub(krow) == pivrow) 
+          {
+            do_prune = true; 
+            break; 
+          }
+        }
+      }
+      
+      if (do_prune) 
+      {
+        // do a quicksort-type partition
+        // movnum=true means that the num values have to be exchanged
+        movnum = false; 
+        if (irep == glu.xsup(glu.supno(irep)) ) // Snode of size 1 
+          movnum = true; 
+        
+        while (kmin <= kmax)
+        {
+          if (perm_r(glu.lsub(kmax)) == emptyIdxLU)
+            kmax--; 
+          else if ( perm_r(glu.lsub(kmin)) != emptyIdxLU)
+            kmin++;
+          else 
+          {
+            // kmin below pivrow (not yet pivoted), and kmax
+            // above pivrow: interchange the two suscripts
+            std::swap(glu.lsub(kmin), glu.lsub(kmax)); 
+            
+            // If the supernode has only one column, then we 
+            // only keep one set of subscripts. For any subscript
+            // intercnahge performed, similar interchange must be 
+            // done on the numerical values. 
+            if (movnum) 
+            {
+              minloc = glu.xlusup(irep) + ( kmin - glu.xlsub(irep) ); 
+              maxloc = glu.xlusup(irep) + ( kmax - glu.xlsub(irep) ); 
+              std::swap(glu.lusup(minloc), glu.lusup(maxloc)); 
+            }
+            kmin++;
+            kmax--;
+          }
+        } // end while 
+        
+        xprune(irep) = kmin;  //Pruning 
+      } // end if do_prune 
+    } // end pruning 
+  } // End for each U-segment
+}
+
+} // end namespace internal
+} // end namespace Eigen
+
+#endif // SPARSELU_PRUNEL_H
diff --git a/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h
new file mode 100644
index 0000000000000000000000000000000000000000..58ec32e27e96b31ac0fb13f51ffa5f7c258abb06
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h
@@ -0,0 +1,83 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* This file is a modified version of heap_relax_snode.c file in SuperLU
+ * -- SuperLU routine (version 3.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * October 15, 2003
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+
+#ifndef SPARSELU_RELAX_SNODE_H
+#define SPARSELU_RELAX_SNODE_H
+
+namespace Eigen {
+
+namespace internal {
+ 
+/** 
+ * \brief Identify the initial relaxed supernodes
+ * 
+ * This routine is applied to a column elimination tree. 
+ * It assumes that the matrix has been reordered according to the postorder of the etree
+ * \param n  the number of columns
+ * \param et elimination tree 
+ * \param relax_columns Maximum number of columns allowed in a relaxed snode 
+ * \param descendants Number of descendants of each node in the etree
+ * \param relax_end last column in a supernode
+ */
+template <typename Scalar, typename Index>
+void SparseLUImpl<Scalar,Index>::relax_snode (const Index n, IndexVector& et, const Index relax_columns, IndexVector& descendants, IndexVector& relax_end)
+{
+  
+  // compute the number of descendants of each node in the etree
+  Index j, parent; 
+  relax_end.setConstant(emptyIdxLU);
+  descendants.setZero();
+  for (j = 0; j < n; j++) 
+  {
+    parent = et(j);
+    if (parent != n) // not the dummy root
+      descendants(parent) += descendants(j) + 1;
+  }
+  // Identify the relaxed supernodes by postorder traversal of the etree
+  Index snode_start; // beginning of a snode 
+  for (j = 0; j < n; )
+  {
+    parent = et(j);
+    snode_start = j; 
+    while ( parent != n && descendants(parent) < relax_columns ) 
+    {
+      j = parent; 
+      parent = et(j);
+    }
+    // Found a supernode in postordered etree, j is the last column 
+    relax_end(snode_start) = j; // Record last column
+    j++;
+    // Search for a new leaf
+    while (descendants(j) != 0 && j < n) j++;
+  } // End postorder traversal of the etree
+  
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+#endif
diff --git a/ThirdParty/eigen3/Eigen/src/SparseQR/CMakeLists.txt b/ThirdParty/eigen3/Eigen/src/SparseQR/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f9ddf2bdb75878292267c18697d9dedbd69a6611
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SparseQR/CMakeLists.txt
@@ -0,0 +1,6 @@
+FILE(GLOB Eigen_SparseQR_SRCS "*.h")
+
+INSTALL(FILES
+  ${Eigen_SparseQR_SRCS}
+  DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/SparseQR/ COMPONENT Devel
+  )
diff --git a/ThirdParty/eigen3/Eigen/src/SparseQR/SparseQR.h b/ThirdParty/eigen3/Eigen/src/SparseQR/SparseQR.h
new file mode 100644
index 0000000000000000000000000000000000000000..07c46e4b90f41509c6dfcf182aeaacffa952a2c4
--- /dev/null
+++ b/ThirdParty/eigen3/Eigen/src/SparseQR/SparseQR.h
@@ -0,0 +1,654 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012-2013 Desire Nuentsa <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2012-2013 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_QR_H
+#define EIGEN_SPARSE_QR_H
+
+namespace Eigen {
+
+template<typename MatrixType, typename OrderingType> class SparseQR;
+template<typename SparseQRType> struct SparseQRMatrixQReturnType;
+template<typename SparseQRType> struct SparseQRMatrixQTransposeReturnType;
+template<typename SparseQRType, typename Derived> struct SparseQR_QProduct;
+namespace internal {
+  template <typename SparseQRType> struct traits<SparseQRMatrixQReturnType<SparseQRType> >
+  {
+    typedef typename SparseQRType::MatrixType ReturnType;
+    typedef typename ReturnType::Index Index;
+    typedef typename ReturnType::StorageKind StorageKind;
+  };
+  template <typename SparseQRType> struct traits<SparseQRMatrixQTransposeReturnType<SparseQRType> >
+  {
+    typedef typename SparseQRType::MatrixType ReturnType;
+  };
+  template <typename SparseQRType, typename Derived> struct traits<SparseQR_QProduct<SparseQRType, Derived> >
+  {
+    typedef typename Derived::PlainObject ReturnType;
+  };
+} // End namespace internal
+
+/**
+  * \ingroup SparseQR_Module
+  * \class SparseQR
+  * \brief Sparse left-looking rank-revealing QR factorization
+  * 
+  * This class implements a left-looking rank-revealing QR decomposition 
+  * of sparse matrices. When a column has a norm less than a given tolerance
+  * it is implicitly permuted to the end. The QR factorization thus obtained is 
+  * given by A*P = Q*R where R is upper triangular or trapezoidal. 
+  * 
+  * P is the column permutation which is the product of the fill-reducing and the
+  * rank-revealing permutations. Use colsPermutation() to get it.
+  * 
+  * Q is the orthogonal matrix represented as products of Householder reflectors. 
+  * Use matrixQ() to get an expression and matrixQ().transpose() to get the transpose.
+  * You can then apply it to a vector.
+  * 
+  * R is the sparse triangular or trapezoidal matrix. The later occurs when A is rank-deficient.
+  * matrixR().topLeftCorner(rank(), rank()) always returns a triangular factor of full rank.
+  * 
+  * \tparam _MatrixType The type of the sparse matrix A, must be a column-major SparseMatrix<>
+  * \tparam _OrderingType The fill-reducing ordering method. See the \link OrderingMethods_Module 
+  *  OrderingMethods \endlink module for the list of built-in and external ordering methods.
+  * 
+  * 
+  */
+template<typename _MatrixType, typename _OrderingType>
+class SparseQR
+{
+  public:
+    typedef _MatrixType MatrixType;
+    typedef _OrderingType OrderingType;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef SparseMatrix<Scalar,ColMajor,Index> QRMatrixType;
+    typedef Matrix<Index, Dynamic, 1> IndexVector;
+    typedef Matrix<Scalar, Dynamic, 1> ScalarVector;
+    typedef PermutationMatrix<Dynamic, Dynamic, Index> PermutationType;
+  public:
+    SparseQR () : m_isInitialized(false), m_analysisIsok(false), m_lastError(""), m_useDefaultThreshold(true),m_isQSorted(false)
+    { }
+    
+    SparseQR(const MatrixType& mat) : m_isInitialized(false), m_analysisIsok(false), m_lastError(""), m_useDefaultThreshold(true),m_isQSorted(false)
+    {
+      compute(mat);
+    }
+    void compute(const MatrixType& mat)
+    {
+      analyzePattern(mat);
+      factorize(mat);
+    }
+    void analyzePattern(const MatrixType& mat);
+    void factorize(const MatrixType& mat);
+    
+    /** \returns the number of rows of the represented matrix. 
+      */
+    inline Index rows() const { return m_pmat.rows(); }
+    
+    /** \returns the number of columns of the represented matrix. 
+      */
+    inline Index cols() const { return m_pmat.cols();}
+    
+    /** \returns a const reference to the \b sparse upper triangular matrix R of the QR factorization.
+      */
+    const QRMatrixType& matrixR() const { return m_R; }
+    
+    /** \returns the number of non linearly dependent columns as determined by the pivoting threshold.
+      *
+      * \sa setPivotThreshold()
+      */
+    Index rank() const 
+    {
+      eigen_assert(m_isInitialized && "The factorization should be called first, use compute()");
+      return m_nonzeropivots; 
+    }
+    
+    /** \returns an expression of the matrix Q as products of sparse Householder reflectors.
+    * The common usage of this function is to apply it to a dense matrix or vector
+    * \code
+    * VectorXd B1, B2;
+    * // Initialize B1
+    * B2 = matrixQ() * B1;
+    * \endcode
+    *
+    * To get a plain SparseMatrix representation of Q:
+    * \code
+    * SparseMatrix<double> Q;
+    * Q = SparseQR<SparseMatrix<double> >(A).matrixQ();
+    * \endcode
+    * Internally, this call simply performs a sparse product between the matrix Q
+    * and a sparse identity matrix. However, due to the fact that the sparse
+    * reflectors are stored unsorted, two transpositions are needed to sort
+    * them before performing the product.
+    */
+    SparseQRMatrixQReturnType<SparseQR> matrixQ() const 
+    { return SparseQRMatrixQReturnType<SparseQR>(*this); }
+    
+    /** \returns a const reference to the column permutation P that was applied to A such that A*P = Q*R
+      * It is the combination of the fill-in reducing permutation and numerical column pivoting.
+      */
+    const PermutationType& colsPermutation() const
+    { 
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_outputPerm_c;
+    }
+    
+    /** \returns A string describing the type of error.
+      * This method is provided to ease debugging, not to handle errors.
+      */
+    std::string lastErrorMessage() const { return m_lastError; }
+    
+    /** \internal */
+    template<typename Rhs, typename Dest>
+    bool _solve(const MatrixBase<Rhs> &B, MatrixBase<Dest> &dest) const
+    {
+      eigen_assert(m_isInitialized && "The factorization should be called first, use compute()");
+      eigen_assert(this->rows() == B.rows() && "SparseQR::solve() : invalid number of rows in the right hand side matrix");
+
+      Index rank = this->rank();
+      
+      // Compute Q^T * b;
+      typename Dest::PlainObject y, b;
+      y = this->matrixQ().transpose() * B; 
+      b = y;
+      
+      // Solve with the triangular matrix R
+      y.topRows(rank) = this->matrixR().topLeftCorner(rank, rank).template triangularView<Upper>().solve(b.topRows(rank));
+      y.bottomRows(y.size()-rank).setZero();
+
+      // Apply the column permutation
+      if (m_perm_c.size())  dest.topRows(cols()) = colsPermutation() * y.topRows(cols());
+      else                  dest = y.topRows(cols());
+      
+      m_info = Success;
+      return true;
+    }
+    
+
+    /** Sets the threshold that is used to determine linearly dependent columns during the factorization.
+      *
+      * In practice, if during the factorization the norm of the column that has to be eliminated is below
+      * this threshold, then the entire column is treated as zero, and it is moved at the end.
+      */
+    void setPivotThreshold(const RealScalar& threshold)
+    {
+      m_useDefaultThreshold = false;
+      m_threshold = threshold;
+    }
+    
+    /** \returns the solution X of \f$ A X = B \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<SparseQR, Rhs> solve(const MatrixBase<Rhs>& B) const 
+    {
+      eigen_assert(m_isInitialized && "The factorization should be called first, use compute()");
+      eigen_assert(this->rows() == B.rows() && "SparseQR::solve() : invalid number of rows in the right hand side matrix");
+      return internal::solve_retval<SparseQR, Rhs>(*this, B.derived());
+    }
+    template<typename Rhs>
+    inline const internal::sparse_solve_retval<SparseQR, Rhs> solve(const SparseMatrixBase<Rhs>& B) const
+    {
+          eigen_assert(m_isInitialized && "The factorization should be called first, use compute()");
+          eigen_assert(this->rows() == B.rows() && "SparseQR::solve() : invalid number of rows in the right hand side matrix");
+          return internal::sparse_solve_retval<SparseQR, Rhs>(*this, B.derived());
+    }
+    
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the QR factorization reports a numerical problem
+      *          \c InvalidInput if the input matrix is invalid
+      *
+      * \sa iparm()          
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_info;
+    }
+
+  protected:
+    inline void sort_matrix_Q()
+    {
+      if(this->m_isQSorted) return;
+      // The matrix Q is sorted during the transposition
+      SparseMatrix<Scalar, RowMajor, Index> mQrm(this->m_Q);
+      this->m_Q = mQrm;
+      this->m_isQSorted = true;
+    }
+
+    
+  protected:
+    bool m_isInitialized;
+    bool m_analysisIsok;
+    bool m_factorizationIsok;
+    mutable ComputationInfo m_info;
+    std::string m_lastError;
+    QRMatrixType m_pmat;            // Temporary matrix
+    QRMatrixType m_R;               // The triangular factor matrix
+    QRMatrixType m_Q;               // The orthogonal reflectors
+    ScalarVector m_hcoeffs;         // The Householder coefficients
+    PermutationType m_perm_c;       // Fill-reducing  Column  permutation
+    PermutationType m_pivotperm;    // The permutation for rank revealing
+    PermutationType m_outputPerm_c; // The final column permutation
+    RealScalar m_threshold;         // Threshold to determine null Householder reflections
+    bool m_useDefaultThreshold;     // Use default threshold
+    Index m_nonzeropivots;          // Number of non zero pivots found 
+    IndexVector m_etree;            // Column elimination tree
+    IndexVector m_firstRowElt;      // First element in each row
+    bool m_isQSorted;                 // whether Q is sorted or not
+    
+    template <typename, typename > friend struct SparseQR_QProduct;
+    template <typename > friend struct SparseQRMatrixQReturnType;
+    
+};
+
+/** \brief Preprocessing step of a QR factorization 
+  * 
+  * In this step, the fill-reducing permutation is computed and applied to the columns of A
+  * and the column elimination tree is computed as well. Only the sparcity pattern of \a mat is exploited.
+  * 
+  * \note In this step it is assumed that there is no empty row in the matrix \a mat.
+  */
+template <typename MatrixType, typename OrderingType>
+void SparseQR<MatrixType,OrderingType>::analyzePattern(const MatrixType& mat)
+{
+  // Compute the column fill reducing ordering
+  OrderingType ord; 
+  ord(mat, m_perm_c); 
+  Index n = mat.cols();
+  Index m = mat.rows();
+  
+  if (!m_perm_c.size())
+  {
+    m_perm_c.resize(n);
+    m_perm_c.indices().setLinSpaced(n, 0,n-1);
+  }
+  
+  // Compute the column elimination tree of the permuted matrix
+  m_outputPerm_c = m_perm_c.inverse();
+  internal::coletree(mat, m_etree, m_firstRowElt, m_outputPerm_c.indices().data());
+  
+  m_R.resize(n, n);
+  m_Q.resize(m, n);
+  
+  // Allocate space for nonzero elements : rough estimation
+  m_R.reserve(2*mat.nonZeros()); //FIXME Get a more accurate estimation through symbolic factorization with the etree
+  m_Q.reserve(2*mat.nonZeros());
+  m_hcoeffs.resize(n);
+  m_analysisIsok = true;
+}
+
+/** \brief Performs the numerical QR factorization of the input matrix
+  * 
+  * The function SparseQR::analyzePattern(const MatrixType&) must have been called beforehand with
+  * a matrix having the same sparcity pattern than \a mat.
+  * 
+  * \param mat The sparse column-major matrix
+  */
+template <typename MatrixType, typename OrderingType>
+void SparseQR<MatrixType,OrderingType>::factorize(const MatrixType& mat)
+{
+  using std::abs;
+  using std::max;
+  
+  eigen_assert(m_analysisIsok && "analyzePattern() should be called before this step");
+  Index m = mat.rows();
+  Index n = mat.cols();
+  IndexVector mark(m); mark.setConstant(-1);  // Record the visited nodes
+  IndexVector Ridx(n), Qidx(m);               // Store temporarily the row indexes for the current column of R and Q
+  Index nzcolR, nzcolQ;                       // Number of nonzero for the current column of R and Q
+  ScalarVector tval(m);                       // The dense vector used to compute the current column
+  bool found_diag;
+    
+  m_pmat = mat;
+  m_pmat.uncompress(); // To have the innerNonZeroPtr allocated
+  // Apply the fill-in reducing permutation lazily:
+  for (int i = 0; i < n; i++)
+  {
+    Index p = m_perm_c.size() ? m_perm_c.indices()(i) : i;
+    m_pmat.outerIndexPtr()[p] = mat.outerIndexPtr()[i]; 
+    m_pmat.innerNonZeroPtr()[p] = mat.outerIndexPtr()[i+1] - mat.outerIndexPtr()[i]; 
+  }
+  
+  /* Compute the default threshold, see : 
+   * Tim Davis, "Algorithm 915, SuiteSparseQR: Multifrontal Multithreaded Rank-Revealing
+   * Sparse QR Factorization, ACM Trans. on Math. Soft. 38(1), 2011, Page 8:3 
+   */
+  if(m_useDefaultThreshold) 
+  {
+    RealScalar max2Norm = 0.0;
+    for (int j = 0; j < n; j++) max2Norm = (max)(max2Norm, m_pmat.col(j).norm());
+    m_threshold = 20 * (m + n) * max2Norm * NumTraits<RealScalar>::epsilon();
+  }
+  
+  // Initialize the numerical permutation
+  m_pivotperm.setIdentity(n);
+  
+  Index nonzeroCol = 0; // Record the number of valid pivots
+  
+  // Left looking rank-revealing QR factorization: compute a column of R and Q at a time
+  for (Index col = 0; col < n; ++col)
+  {
+    mark.setConstant(-1);
+    m_R.startVec(col);
+    m_Q.startVec(col);
+    mark(nonzeroCol) = col;
+    Qidx(0) = nonzeroCol;
+    nzcolR = 0; nzcolQ = 1;
+    found_diag = false;
+    tval.setZero(); 
+    
+    // Symbolic factorization: find the nonzero locations of the column k of the factors R and Q, i.e.,
+    // all the nodes (with indexes lower than rank) reachable through the column elimination tree (etree) rooted at node k.
+    // Note: if the diagonal entry does not exist, then its contribution must be explicitly added,
+    // thus the trick with found_diag that permits to do one more iteration on the diagonal element if this one has not been found.
+    for (typename MatrixType::InnerIterator itp(m_pmat, col); itp || !found_diag; ++itp)
+    {
+      Index curIdx = nonzeroCol ;
+      if(itp) curIdx = itp.row();
+      if(curIdx == nonzeroCol) found_diag = true;
+      
+      // Get the nonzeros indexes of the current column of R
+      Index st = m_firstRowElt(curIdx); // The traversal of the etree starts here 
+      if (st < 0 )
+      {
+        m_lastError = "Empty row found during numerical factorization";
+        m_info = InvalidInput;
+        return;
+      }
+
+      // Traverse the etree 
+      Index bi = nzcolR;
+      for (; mark(st) != col; st = m_etree(st))
+      {
+        Ridx(nzcolR) = st;  // Add this row to the list,
+        mark(st) = col;     // and mark this row as visited
+        nzcolR++;
+      }
+
+      // Reverse the list to get the topological ordering
+      Index nt = nzcolR-bi;
+      for(Index i = 0; i < nt/2; i++) std::swap(Ridx(bi+i), Ridx(nzcolR-i-1));
+       
+      // Copy the current (curIdx,pcol) value of the input matrix
+      if(itp) tval(curIdx) = itp.value();
+      else    tval(curIdx) = Scalar(0);
+      
+      // Compute the pattern of Q(:,k)
+      if(curIdx > nonzeroCol && mark(curIdx) != col ) 
+      {
+        Qidx(nzcolQ) = curIdx;  // Add this row to the pattern of Q,
+        mark(curIdx) = col;     // and mark it as visited
+        nzcolQ++;
+      }
+    }
+
+    // Browse all the indexes of R(:,col) in reverse order
+    for (Index i = nzcolR-1; i >= 0; i--)
+    {
+      Index curIdx = m_pivotperm.indices()(Ridx(i));
+      
+      // Apply the curIdx-th householder vector to the current column (temporarily stored into tval)
+      Scalar tdot(0);
+      
+      // First compute q' * tval
+      tdot = m_Q.col(curIdx).dot(tval);
+
+      tdot *= m_hcoeffs(curIdx);
+      
+      // Then update tval = tval - q * tau
+      // FIXME: tval -= tdot * m_Q.col(curIdx) should amount to the same (need to check/add support for efficient "dense ?= sparse")
+      for (typename QRMatrixType::InnerIterator itq(m_Q, curIdx); itq; ++itq)
+        tval(itq.row()) -= itq.value() * tdot;
+
+      // Detect fill-in for the current column of Q
+      if(m_etree(Ridx(i)) == nonzeroCol)
+      {
+        for (typename QRMatrixType::InnerIterator itq(m_Q, curIdx); itq; ++itq)
+        {
+          Index iQ = itq.row();
+          if (mark(iQ) != col)
+          {
+            Qidx(nzcolQ++) = iQ;  // Add this row to the pattern of Q,
+            mark(iQ) = col;       // and mark it as visited
+          }
+        }
+      }
+    } // End update current column
+        
+    // Compute the Householder reflection that eliminate the current column
+    // FIXME this step should call the Householder module.
+    Scalar tau;
+    RealScalar beta;
+    Scalar c0 = nzcolQ ? tval(Qidx(0)) : Scalar(0);
+    
+    // First, the squared norm of Q((col+1):m, col)
+    RealScalar sqrNorm = 0.;
+    for (Index itq = 1; itq < nzcolQ; ++itq) sqrNorm += numext::abs2(tval(Qidx(itq)));
+    
+    if(sqrNorm == RealScalar(0) && numext::imag(c0) == RealScalar(0))
+    {
+      tau = RealScalar(0);
+      beta = numext::real(c0);
+      tval(Qidx(0)) = 1;
+     }
+    else
+    {
+      beta = std::sqrt(numext::abs2(c0) + sqrNorm);
+      if(numext::real(c0) >= RealScalar(0))
+        beta = -beta;
+      tval(Qidx(0)) = 1;
+      for (Index itq = 1; itq < nzcolQ; ++itq)
+        tval(Qidx(itq)) /= (c0 - beta);
+      tau = numext::conj((beta-c0) / beta);
+        
+    }
+
+    // Insert values in R
+    for (Index  i = nzcolR-1; i >= 0; i--)
+    {
+      Index curIdx = Ridx(i);
+      if(curIdx < nonzeroCol) 
+      {
+        m_R.insertBackByOuterInnerUnordered(col, curIdx) = tval(curIdx);
+        tval(curIdx) = Scalar(0.);
+      }
+    }
+
+    if(abs(beta) >= m_threshold)
+    {
+      m_R.insertBackByOuterInner(col, nonzeroCol) = beta;
+      nonzeroCol++;
+      // The householder coefficient
+      m_hcoeffs(col) = tau;
+      // Record the householder reflections
+      for (Index itq = 0; itq < nzcolQ; ++itq)
+      {
+        Index iQ = Qidx(itq);
+        m_Q.insertBackByOuterInnerUnordered(col,iQ) = tval(iQ);
+        tval(iQ) = Scalar(0.);
+      }    
+    }
+    else
+    {
+      // Zero pivot found: move implicitly this column to the end
+      m_hcoeffs(col) = Scalar(0);
+      for (Index j = nonzeroCol; j < n-1; j++) 
+        std::swap(m_pivotperm.indices()(j), m_pivotperm.indices()[j+1]);
+      
+      // Recompute the column elimination tree
+      internal::coletree(m_pmat, m_etree, m_firstRowElt, m_pivotperm.indices().data());
+    }
+  }
+  
+  // Finalize the column pointers of the sparse matrices R and Q
+  m_Q.finalize();
+  m_Q.makeCompressed();
+  m_R.finalize();
+  m_R.makeCompressed();
+  m_isQSorted = false;
+  
+  m_nonzeropivots = nonzeroCol;
+  
+  if(nonzeroCol<n)
+  {
+    // Permute the triangular factor to put the 'dead' columns to the end
+    MatrixType tempR(m_R);
+    m_R = tempR * m_pivotperm;
+    
+    // Update the column permutation
+    m_outputPerm_c = m_outputPerm_c * m_pivotperm;
+  }
+  
+  m_isInitialized = true; 
+  m_factorizationIsok = true;
+  m_info = Success;
+}
+
+namespace internal {
+  
+template<typename _MatrixType, typename OrderingType, typename Rhs>
+struct solve_retval<SparseQR<_MatrixType,OrderingType>, Rhs>
+  : solve_retval_base<SparseQR<_MatrixType,OrderingType>, Rhs>
+{
+  typedef SparseQR<_MatrixType,OrderingType> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+template<typename _MatrixType, typename OrderingType, typename Rhs>
+struct sparse_solve_retval<SparseQR<_MatrixType, OrderingType>, Rhs>
+ : sparse_solve_retval_base<SparseQR<_MatrixType, OrderingType>, Rhs>
+{
+  typedef SparseQR<_MatrixType, OrderingType> Dec;
+  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec, Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    this->defaultEvalTo(dst);
+  }
+};
+} // end namespace internal
+
+template <typename SparseQRType, typename Derived>
+struct SparseQR_QProduct : ReturnByValue<SparseQR_QProduct<SparseQRType, Derived> >
+{
+  typedef typename SparseQRType::QRMatrixType MatrixType;
+  typedef typename SparseQRType::Scalar Scalar;
+  typedef typename SparseQRType::Index Index;
+  // Get the references 
+  SparseQR_QProduct(const SparseQRType& qr, const Derived& other, bool transpose) : 
+  m_qr(qr),m_other(other),m_transpose(transpose) {}
+  inline Index rows() const { return m_transpose ? m_qr.rows() : m_qr.cols(); }
+  inline Index cols() const { return m_other.cols(); }
+  
+  // Assign to a vector
+  template<typename DesType>
+  void evalTo(DesType& res) const
+  {
+    Index n = m_qr.cols();
+    res = m_other;
+    if (m_transpose)
+    {
+      eigen_assert(m_qr.m_Q.rows() == m_other.rows() && "Non conforming object sizes");
+      //Compute res = Q' * other column by column
+      for(Index j = 0; j < res.cols(); j++){
+        for (Index k = 0; k < n; k++)
+        {
+          Scalar tau = Scalar(0);
+          tau = m_qr.m_Q.col(k).dot(res.col(j));
+          tau = tau * m_qr.m_hcoeffs(k);
+          res.col(j) -= tau * m_qr.m_Q.col(k);
+        }
+      }
+    }
+    else
+    {
+      eigen_assert(m_qr.m_Q.cols() == m_other.rows() && "Non conforming object sizes");
+      // Compute res = Q' * other column by column
+      for(Index j = 0; j < res.cols(); j++)
+      {
+        for (Index k = n-1; k >=0; k--)
+        {
+          Scalar tau = Scalar(0);
+          tau = m_qr.m_Q.col(k).dot(res.col(j));
+          tau = tau * m_qr.m_hcoeffs(k);
+          res.col(j) -= tau * m_qr.m_Q.col(k);
+        }
+      }
+    }
+  }
+  
+  const SparseQRType& m_qr;
+  const Derived& m_other;
+  bool m_transpose;
+};
+
+template<typename SparseQRType>
+struct SparseQRMatrixQReturnType : public EigenBase<SparseQRMatrixQReturnType<SparseQRType> >
+{  
+  typedef typename SparseQRType::Index Index;
+  typedef typename SparseQRType::Scalar Scalar;
+  typedef Matrix<Scalar,Dynamic,Dynamic> DenseMatrix;
+  SparseQRMatrixQReturnType(const SparseQRType& qr) : m_qr(qr) {}
+  template<typename Derived>
+  SparseQR_QProduct<SparseQRType, Derived> operator*(const MatrixBase<Derived>& other)
+  {
+    return SparseQR_QProduct<SparseQRType,Derived>(m_qr,other.derived(),false);
+  }
+  SparseQRMatrixQTransposeReturnType<SparseQRType> adjoint() const
+  {
+    return SparseQRMatrixQTransposeReturnType<SparseQRType>(m_qr);
+  }
+  inline Index rows() const { return m_qr.rows(); }
+  inline Index cols() const { return m_qr.cols(); }
+  // To use for operations with the transpose of Q
+  SparseQRMatrixQTransposeReturnType<SparseQRType> transpose() const
+  {
+    return SparseQRMatrixQTransposeReturnType<SparseQRType>(m_qr);
+  }
+  template<typename Dest> void evalTo(MatrixBase<Dest>& dest) const
+  {
+    dest.derived() = m_qr.matrixQ() * Dest::Identity(m_qr.rows(), m_qr.rows());
+  }
+  template<typename Dest> void evalTo(SparseMatrixBase<Dest>& dest) const
+  {
+    Dest idMat(m_qr.rows(), m_qr.rows());
+    idMat.setIdentity();
+    // Sort the sparse householder reflectors if needed
+    const_cast<SparseQRType *>(&m_qr)->sort_matrix_Q();
+    dest.derived() = SparseQR_QProduct<SparseQRType, Dest>(m_qr, idMat, false);
+  }
+
+  const SparseQRType& m_qr;
+};
+
+template<typename SparseQRType>
+struct SparseQRMatrixQTransposeReturnType
+{
+  SparseQRMatrixQTransposeReturnType(const SparseQRType& qr) : m_qr(qr) {}
+  template<typename Derived>
+  SparseQR_QProduct<SparseQRType,Derived> operator*(const MatrixBase<Derived>& other)
+  {
+    return SparseQR_QProduct<SparseQRType,Derived>(m_qr,other.derived(), true);
+  }
+  const SparseQRType& m_qr;
+};
+
+} // end namespace Eigen
+
+#endif
diff --git a/dev-tools/python-bindings/MakePyCore.py b/dev-tools/python-bindings/MakePyCore.py
index 696681addfd0aabc804f28aec9dde17ce2df6055..0fb14ce4f53e4836a8a2803d7c91b8fb88b2c2aa 100644
--- a/dev-tools/python-bindings/MakePyCore.py
+++ b/dev-tools/python-bindings/MakePyCore.py
@@ -137,7 +137,7 @@ def ManualClassTunings(mb):
     
     # ICompositeSample
     cl = mb.class_('ICompositeSample')
-    cl.member_functions().exclude()
+    #cl.member_functions().exclude()
     
     # BasicVector3D
     methods_to_exclude=[