From 952abe54cc224ca2dbd4d4fe1ab6ed0e022f5609 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de>
Date: Tue, 22 Aug 2023 19:26:20 +0200
Subject: [PATCH] m_trafo map -> vec, as we need to preserve sorting

---
 Base/Axis/Scale.cpp                 | 28 ++++++++++++++++++++--
 Base/Axis/Scale.h                   |  5 ++--
 Device/Detector/FlatDetector.cpp    |  4 ++--
 auto/Wrap/libBornAgainBase_wrap.cpp | 36 ++++++++++++++---------------
 4 files changed, 48 insertions(+), 25 deletions(-)

diff --git a/Base/Axis/Scale.cpp b/Base/Axis/Scale.cpp
index 393062a1837..25c19a96138 100644
--- a/Base/Axis/Scale.cpp
+++ b/Base/Axis/Scale.cpp
@@ -21,6 +21,22 @@
 #include <stdexcept>
 using std::numbers::pi;
 
+namespace {
+
+trafo_map_t::const_iterator find(std::string label, const trafo_map_t& trafos)
+{
+    for (trafo_map_t::const_iterator e = trafos.cbegin(); e != trafos.cend(); ++e)
+        if (e->first == label) {
+            std::cerr << "DEBUG FOUND " << label << std::endl;
+            return e;
+        }
+    std::cerr << "DEBUG NOT FOUND " << label << std::endl;
+    return trafos.cend();
+}
+
+} // namespace
+
+
 Scale::Scale(std::vector<Bin1D> bins, trafo_map_t trafos)
     : m_bins(std::move(bins))
     , m_trafos(std::move(trafos))
@@ -49,6 +65,11 @@ Scale::Scale(const Coordinate& coord, std::vector<Bin1D> bins)
 {
 }
 
+Scale* Scale::clone() const
+{
+    return new Scale(m_bins, m_trafos);
+}
+
 void Scale::setTrafos(trafo_map_t trafos)
 {
     m_trafos = std::move(trafos);
@@ -227,10 +248,13 @@ Scale Scale::plottableScale(std::string label) const
     ASSERT(!m_trafos.empty());
     trafo_map_t::const_iterator entry;
     if (label.empty()) {
+        std::cerr << "DEBUG A" << std::endl;
         entry = m_trafos.cbegin();
+        label = entry->first;
     } else {
-        entry = m_trafos.find(label);
-        if (entry == m_trafos.end())
+        std::cerr << "DEBUG B" << std::endl;
+        entry = find(label, m_trafos);
+        if (entry == m_trafos.cend())
             throw std::runtime_error("Scale::plottableScale called with unknown label '" + label
                                      + "';" + " available labels are: " + availableLabels());
     }
diff --git a/Base/Axis/Scale.h b/Base/Axis/Scale.h
index d2a5bbf9c0e..34919c46028 100644
--- a/Base/Axis/Scale.h
+++ b/Base/Axis/Scale.h
@@ -18,13 +18,12 @@
 #include "Base/Axis/Bin.h"
 #include "Base/Axis/Coordinate.h"
 #include <functional>
-#include <map>
 #include <string>
 #include <utility>
 #include <vector>
 
 using trafo_t = std::function<double(double)>;
-using trafo_map_t = std::map<std::string, std::function<double(double)>>;
+using trafo_map_t = std::vector<std::pair<std::string, std::function<double(double)>>>;
 
 //! Abstract base class for one-dimensional axes.
 
@@ -32,7 +31,7 @@ class Scale {
 public:
     Scale(std::vector<Bin1D> bins, trafo_map_t trafos);
     Scale(const Coordinate& coord, std::vector<Bin1D> bins);
-    Scale* clone() const { return new Scale(*this); }
+    Scale* clone() const;
 
     void setTrafos(trafo_map_t trafos);
 
diff --git a/Device/Detector/FlatDetector.cpp b/Device/Detector/FlatDetector.cpp
index ed8ca5e45e7..f0f50231347 100644
--- a/Device/Detector/FlatDetector.cpp
+++ b/Device/Detector/FlatDetector.cpp
@@ -80,7 +80,7 @@ FlatDetector::FlatDetector(size_t nxbins, size_t nybins, double width, double he
              const R3 q = kf - ki;
              return -q.y();
          }},
-        {"u (mm)", [=](double u) -> double { return u; }},
+        {"u (mm)", [](double u) -> double { return u; }},
         {"nxbins", [=](double u) -> double { return nxbins / width * u; }},
         {"phi_f (deg)",
          [=](double u) -> double {
@@ -96,7 +96,7 @@ FlatDetector::FlatDetector(size_t nxbins, size_t nybins, double width, double he
              const R3 q = kf - ki;
              return q.z();
          }},
-        {"v (mm)", [=](double v) -> double { return v; }},
+        {"v (mm)", [](double v) -> double { return v; }},
         {"nybins", [=](double v) -> double { return nybins / height * v; }},
         {"alpha_f (deg)",
          [=](double v) -> double {
diff --git a/auto/Wrap/libBornAgainBase_wrap.cpp b/auto/Wrap/libBornAgainBase_wrap.cpp
index 6caa4bfee9f..d0683017207 100644
--- a/auto/Wrap/libBornAgainBase_wrap.cpp
+++ b/auto/Wrap/libBornAgainBase_wrap.cpp
@@ -3424,15 +3424,15 @@ namespace Swig {
 #define SWIGTYPE_p_std__invalid_argument swig_types[35]
 #define SWIGTYPE_p_std__lessT_std__string_t swig_types[36]
 #define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[37]
-#define SWIGTYPE_p_std__mapT_std__string_std__functionT_double_fdoubleF_t_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_std__functionT_double_fdoubleF_t_t_t_t swig_types[38]
-#define SWIGTYPE_p_std__optionalT_Bin1D_t swig_types[39]
-#define SWIGTYPE_p_std__pairT_double_double_t swig_types[40]
-#define SWIGTYPE_p_std__vectorT_Bin1D_std__allocatorT_Bin1D_t_t swig_types[41]
-#define SWIGTYPE_p_std__vectorT_Scale_const_p_std__allocatorT_Scale_const_p_t_t swig_types[42]
-#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[43]
-#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[44]
-#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[45]
-#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[46]
+#define SWIGTYPE_p_std__optionalT_Bin1D_t swig_types[38]
+#define SWIGTYPE_p_std__pairT_double_double_t swig_types[39]
+#define SWIGTYPE_p_std__vectorT_Bin1D_std__allocatorT_Bin1D_t_t swig_types[40]
+#define SWIGTYPE_p_std__vectorT_Scale_const_p_std__allocatorT_Scale_const_p_t_t swig_types[41]
+#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[42]
+#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[43]
+#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[44]
+#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[45]
+#define SWIGTYPE_p_std__vectorT_std__pairT_std__string_std__functionT_double_fdoubleF_t_t_std__allocatorT_std__pairT_std__string_std__functionT_double_fdoubleF_t_t_t_t swig_types[46]
 #define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[47]
 #define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[48]
 #define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[49]
@@ -25783,7 +25783,7 @@ SWIGINTERN PyObject *Bin1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject
 SWIGINTERN PyObject *_wrap_new_Scale__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   SwigValueWrapper< std::vector< Bin1D,std::allocator< Bin1D > > > arg1 ;
-  SwigValueWrapper< std::map< std::string,std::function< double (double) >,std::less< std::string >,std::allocator< std::pair< std::string const,std::function< double (double) > > > > > arg2 ;
+  SwigValueWrapper< std::vector< std::pair< std::string,std::function< double (double) > >,std::allocator< std::pair< std::string,std::function< double (double) > > > > > arg2 ;
   void *argp1 ;
   int res1 = 0 ;
   void *argp2 ;
@@ -25805,7 +25805,7 @@ SWIGINTERN PyObject *_wrap_new_Scale__SWIG_0(PyObject *self, Py_ssize_t nobjs, P
     }
   }
   {
-    res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_std__mapT_std__string_std__functionT_double_fdoubleF_t_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_std__functionT_double_fdoubleF_t_t_t_t,  0  | 0);
+    res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_std__vectorT_std__pairT_std__string_std__functionT_double_fdoubleF_t_t_std__allocatorT_std__pairT_std__string_std__functionT_double_fdoubleF_t_t_t_t,  0  | 0);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_Scale" "', argument " "2"" of type '" "trafo_map_t""'"); 
     }  
@@ -25898,7 +25898,7 @@ SWIGINTERN PyObject *_wrap_new_Scale(PyObject *self, PyObject *args) {
     int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_std__vectorT_Bin1D_std__allocatorT_Bin1D_t_t, SWIG_POINTER_NO_NULL | 0);
     _v = SWIG_CheckState(res);
     if (_v) {
-      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_std__mapT_std__string_std__functionT_double_fdoubleF_t_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_std__functionT_double_fdoubleF_t_t_t_t, SWIG_POINTER_NO_NULL | 0);
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_std__vectorT_std__pairT_std__string_std__functionT_double_fdoubleF_t_t_std__allocatorT_std__pairT_std__string_std__functionT_double_fdoubleF_t_t_t_t, SWIG_POINTER_NO_NULL | 0);
       _v = SWIG_CheckState(res);
       if (_v) {
         return _wrap_new_Scale__SWIG_0(self, argc, argv);
@@ -25963,7 +25963,7 @@ fail:
 SWIGINTERN PyObject *_wrap_Scale_setTrafos(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Scale *arg1 = (Scale *) 0 ;
-  SwigValueWrapper< std::map< std::string,std::function< double (double) >,std::less< std::string >,std::allocator< std::pair< std::string const,std::function< double (double) > > > > > arg2 ;
+  SwigValueWrapper< std::vector< std::pair< std::string,std::function< double (double) > >,std::allocator< std::pair< std::string,std::function< double (double) > > > > > arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 ;
@@ -25977,7 +25977,7 @@ SWIGINTERN PyObject *_wrap_Scale_setTrafos(PyObject *self, PyObject *args) {
   }
   arg1 = reinterpret_cast< Scale * >(argp1);
   {
-    res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_std__mapT_std__string_std__functionT_double_fdoubleF_t_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_std__functionT_double_fdoubleF_t_t_t_t,  0  | 0);
+    res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_std__vectorT_std__pairT_std__string_std__functionT_double_fdoubleF_t_t_std__allocatorT_std__pairT_std__string_std__functionT_double_fdoubleF_t_t_t_t,  0  | 0);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Scale_setTrafos" "', argument " "2"" of type '" "trafo_map_t""'"); 
     }  
@@ -30679,7 +30679,6 @@ static swig_type_info _swigt__p_std__functionT_double_fdoubleF_t = {"_p_std__fun
 static swig_type_info _swigt__p_std__invalid_argument = {"_p_std__invalid_argument", "std::invalid_argument *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_std__lessT_std__string_t = {"_p_std__lessT_std__string_t", "std::less< std::string > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t = {"_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t", "std::map< std::string,double,std::less< std::string >,std::allocator< std::pair< std::string const,double > > > *|std::map< std::string,double > *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__mapT_std__string_std__functionT_double_fdoubleF_t_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_std__functionT_double_fdoubleF_t_t_t_t = {"_p_std__mapT_std__string_std__functionT_double_fdoubleF_t_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_std__functionT_double_fdoubleF_t_t_t_t", "trafo_map_t *|std::map< std::string,std::function< double (double) >,std::less< std::string >,std::allocator< std::pair< std::string const,std::function< double (double) > > > > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_std__optionalT_Bin1D_t = {"_p_std__optionalT_Bin1D_t", "std::optional< Bin1D > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_std__pairT_double_double_t = {"_p_std__pairT_double_double_t", "std::pair< double,double > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_std__vectorT_Bin1D_std__allocatorT_Bin1D_t_t = {"_p_std__vectorT_Bin1D_std__allocatorT_Bin1D_t_t", "std::vector< Bin1D,std::allocator< Bin1D > > *", 0, 0, (void*)0, 0};
@@ -30688,6 +30687,7 @@ static swig_type_info _swigt__p_std__vectorT_double_std__allocatorT_double_t_t =
 static swig_type_info _swigt__p_std__vectorT_int_std__allocatorT_int_t_t = {"_p_std__vectorT_int_std__allocatorT_int_t_t", "std::vector< int,std::allocator< int > > *|std::vector< int > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t = {"_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t", "std::vector< std::complex< double >,std::allocator< std::complex< double > > > *|std::vector< std::complex< double > > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t = {"_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t", "std::vector< std::pair< double,double >,std::allocator< std::pair< double,double > > > *|std::vector< std::pair< double,double > > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorT_std__pairT_std__string_std__functionT_double_fdoubleF_t_t_std__allocatorT_std__pairT_std__string_std__functionT_double_fdoubleF_t_t_t_t = {"_p_std__vectorT_std__pairT_std__string_std__functionT_double_fdoubleF_t_t_std__allocatorT_std__pairT_std__string_std__functionT_double_fdoubleF_t_t_t_t", "trafo_map_t *|std::vector< std::pair< std::string,std::function< double (double) > >,std::allocator< std::pair< std::string,std::function< double (double) > > > > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_std__vectorT_std__string_std__allocatorT_std__string_t_t = {"_p_std__vectorT_std__string_std__allocatorT_std__string_t_t", "std::vector< std::string,std::allocator< std::string > > *|std::vector< std::string > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t = {"_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t", "std::vector< std::vector< double,std::allocator< double > > > *|std::vector< std::vector< double,std::allocator< double > >,std::allocator< std::vector< double,std::allocator< double > > > > *|std::vector< std::vector< double > > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t = {"_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t", "std::vector< std::vector< int,std::allocator< int > > > *|std::vector< std::vector< int,std::allocator< int > >,std::allocator< std::vector< int,std::allocator< int > > > > *|std::vector< std::vector< int > > *", 0, 0, (void*)0, 0};
@@ -30739,7 +30739,6 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_std__invalid_argument,
   &_swigt__p_std__lessT_std__string_t,
   &_swigt__p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t,
-  &_swigt__p_std__mapT_std__string_std__functionT_double_fdoubleF_t_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_std__functionT_double_fdoubleF_t_t_t_t,
   &_swigt__p_std__optionalT_Bin1D_t,
   &_swigt__p_std__pairT_double_double_t,
   &_swigt__p_std__vectorT_Bin1D_std__allocatorT_Bin1D_t_t,
@@ -30748,6 +30747,7 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_std__vectorT_int_std__allocatorT_int_t_t,
   &_swigt__p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t,
   &_swigt__p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t,
+  &_swigt__p_std__vectorT_std__pairT_std__string_std__functionT_double_fdoubleF_t_t_std__allocatorT_std__pairT_std__string_std__functionT_double_fdoubleF_t_t_t_t,
   &_swigt__p_std__vectorT_std__string_std__allocatorT_std__string_t_t,
   &_swigt__p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t,
   &_swigt__p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t,
@@ -30799,7 +30799,6 @@ static swig_cast_info _swigc__p_std__functionT_double_fdoubleF_t[] = {  {&_swigt
 static swig_cast_info _swigc__p_std__invalid_argument[] = {  {&_swigt__p_std__invalid_argument, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_std__lessT_std__string_t[] = {  {&_swigt__p_std__lessT_std__string_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t[] = {  {&_swigt__p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__mapT_std__string_std__functionT_double_fdoubleF_t_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_std__functionT_double_fdoubleF_t_t_t_t[] = {  {&_swigt__p_std__mapT_std__string_std__functionT_double_fdoubleF_t_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_std__functionT_double_fdoubleF_t_t_t_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_std__optionalT_Bin1D_t[] = {  {&_swigt__p_std__optionalT_Bin1D_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_std__pairT_double_double_t[] = {  {&_swigt__p_std__pairT_double_double_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_std__vectorT_Bin1D_std__allocatorT_Bin1D_t_t[] = {  {&_swigt__p_std__vectorT_Bin1D_std__allocatorT_Bin1D_t_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -30808,6 +30807,7 @@ static swig_cast_info _swigc__p_std__vectorT_double_std__allocatorT_double_t_t[]
 static swig_cast_info _swigc__p_std__vectorT_int_std__allocatorT_int_t_t[] = {  {&_swigt__p_std__vectorT_int_std__allocatorT_int_t_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t[] = {  {&_swigt__p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t[] = {  {&_swigt__p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorT_std__pairT_std__string_std__functionT_double_fdoubleF_t_t_std__allocatorT_std__pairT_std__string_std__functionT_double_fdoubleF_t_t_t_t[] = {  {&_swigt__p_std__vectorT_std__pairT_std__string_std__functionT_double_fdoubleF_t_t_std__allocatorT_std__pairT_std__string_std__functionT_double_fdoubleF_t_t_t_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_std__vectorT_std__string_std__allocatorT_std__string_t_t[] = {  {&_swigt__p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t[] = {  {&_swigt__p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t[] = {  {&_swigt__p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -30859,7 +30859,6 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_std__invalid_argument,
   _swigc__p_std__lessT_std__string_t,
   _swigc__p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t,
-  _swigc__p_std__mapT_std__string_std__functionT_double_fdoubleF_t_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_std__functionT_double_fdoubleF_t_t_t_t,
   _swigc__p_std__optionalT_Bin1D_t,
   _swigc__p_std__pairT_double_double_t,
   _swigc__p_std__vectorT_Bin1D_std__allocatorT_Bin1D_t_t,
@@ -30868,6 +30867,7 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_std__vectorT_int_std__allocatorT_int_t_t,
   _swigc__p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t,
   _swigc__p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t,
+  _swigc__p_std__vectorT_std__pairT_std__string_std__functionT_double_fdoubleF_t_t_std__allocatorT_std__pairT_std__string_std__functionT_double_fdoubleF_t_t_t_t,
   _swigc__p_std__vectorT_std__string_std__allocatorT_std__string_t_t,
   _swigc__p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t,
   _swigc__p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t,
-- 
GitLab