From 83091b4d95d8f729c5b2ac9ffae0c510aa165b0b Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Fri, 14 Aug 2020 15:44:20 +0200 Subject: [PATCH] Distributions now also delegating parameter registration to INode and unrelated: rm unused fct args --- Core/Parametrization/Distributions.cpp | 112 ++++++--- Core/Parametrization/Distributions.h | 35 +-- Core/Scattering/Rotations.cpp | 21 +- GUI/coregui/Models/ModelMapper.cpp | 5 +- auto/Wrap/libBornAgainCore.py | 20 +- auto/Wrap/libBornAgainCore_wrap.cpp | 316 +++++++++++++++++++++---- 6 files changed, 394 insertions(+), 115 deletions(-) diff --git a/Core/Parametrization/Distributions.cpp b/Core/Parametrization/Distributions.cpp index 92127008fd5..211c42bc8d8 100644 --- a/Core/Parametrization/Distributions.cpp +++ b/Core/Parametrization/Distributions.cpp @@ -16,8 +16,8 @@ #include "Core/Basics/Exceptions.h" #include "Core/Basics/MathConstants.h" #include "Core/Parametrization/ParameterPool.h" -#include "Core/Parametrization/ParameterSample.h" #include "Core/Parametrization/RealParameter.h" +#include "Core/Parametrization/ParameterSample.h" #include <algorithm> #include <cmath> #include <limits> @@ -124,13 +124,21 @@ IDistribution1D::generateSamplesFromValues(const std::vector<double>& sample_val // class DistributionGate // ************************************************************************** // -DistributionGate::DistributionGate(double min, double max) : m_min(min), m_max(max) +DistributionGate::DistributionGate(const std::vector<double> P) + : IDistribution1D( + {"DistributionGate", + "class_tooltip", + {{"Min", "", "para_tooltip", -INF, +INF, 0}, {"Max", "", "para_tooltip", -INF, +INF, 0}}}, + P), + m_min(m_P[0]), m_max(m_P[1]) { - setName("DistributionGate"); if (m_max < m_min) throw Exceptions::ClassInitializationException("DistributionGate: max<min"); - registerParameter("Min", &m_min); - registerParameter("Max", &m_max); +} + +DistributionGate::DistributionGate(double min, double max) + : DistributionGate(std::vector<double>{min, max}) +{ } DistributionGate::DistributionGate() : DistributionGate(0., 1.) {} @@ -144,10 +152,9 @@ double DistributionGate::probabilityDensity(double x) const return 1.0 / (m_max - m_min); } -std::vector<double> DistributionGate::equidistantPoints(size_t nbr_samples, double sigma_factor, +std::vector<double> DistributionGate::equidistantPoints(size_t nbr_samples, double /*sigma_factor*/, const RealLimits& limits) const { - (void)sigma_factor; double xmin = m_min; double xmax = m_max; adjustMinMaxForLimits(xmin, xmax, limits); @@ -163,13 +170,21 @@ bool DistributionGate::isDelta() const // class DistributionLorentz // ************************************************************************** // -DistributionLorentz::DistributionLorentz(double mean, double hwhm) : m_mean(mean), m_hwhm(hwhm) +DistributionLorentz::DistributionLorentz(const std::vector<double> P) + : IDistribution1D({"DistributionLorentz", + "class_tooltip", + {{"Mean", "", "para_tooltip", -INF, +INF, 0}, + {"HWHM", "", "para_tooltip", -INF, +INF, 0}}}, + P), + m_mean(m_P[0]), m_hwhm(m_P[1]) { - setName("DistributionLorentz"); if (m_hwhm < 0.0) throw Exceptions::ClassInitializationException("DistributionLorentz: hwhm<0"); - registerParameter("Mean", &m_mean); - registerParameter("HWHM", &m_hwhm); +} + +DistributionLorentz::DistributionLorentz(double mean, double hwhm) + : DistributionLorentz(std::vector<double>{mean, hwhm}) +{ } DistributionLorentz::DistributionLorentz() : DistributionLorentz(0., 1.) {} @@ -201,14 +216,21 @@ bool DistributionLorentz::isDelta() const // class DistributionGaussian // ************************************************************************** // -DistributionGaussian::DistributionGaussian(double mean, double std_dev) - : m_mean(mean), m_std_dev(std_dev) +DistributionGaussian::DistributionGaussian(const std::vector<double> P) + : IDistribution1D({"DistributionGaussian", + "class_tooltip", + {{"Mean", "", "para_tooltip", -INF, +INF, 0}, + {"StdDev", "", "para_tooltip", -INF, +INF, 0}}}, + P), + m_mean(m_P[0]), m_std_dev(m_P[1]) { - setName("DistributionGaussian"); if (m_std_dev < 0.0) throw Exceptions::ClassInitializationException("DistributionGaussian: std_dev < 0"); - registerParameter("Mean", &m_mean); - registerParameter("StdDev", &m_std_dev); +} + +DistributionGaussian::DistributionGaussian(double mean, double std_dev) + : DistributionGaussian(std::vector<double>{mean, std_dev}) +{ } DistributionGaussian::DistributionGaussian() : DistributionGaussian(0., 1.) {} @@ -241,18 +263,27 @@ bool DistributionGaussian::isDelta() const // class DistributionLogNormal // ************************************************************************** // -DistributionLogNormal::DistributionLogNormal(double median, double scale_param) - : m_median(median), m_scale_param(scale_param) +DistributionLogNormal::DistributionLogNormal(const std::vector<double> P) + : IDistribution1D({"DistributionLogNormal", + "class_tooltip", + {{"Median", "", "para_tooltip", -INF, +INF, 0}, + {"ScaleParameter", "", "para_tooltip", -INF, +INF, 0}}}, + P), + m_median(m_P[0]), m_scale_param(m_P[1]) { - setName("DistributionLogNormal"); if (m_scale_param < 0.0) throw Exceptions::ClassInitializationException("DistributionLogNormal: scale_param < 0"); if (m_median <= 0.0) throw Exceptions::ClassInitializationException("DistributionLogNormal: median < 0"); - registerParameter("Median", &m_median); - registerParameter("ScaleParameter", &m_scale_param); } +DistributionLogNormal::DistributionLogNormal(double median, double scale_param) + : DistributionLogNormal(std::vector<double>{median, scale_param}) +{ +} + +DistributionTrapezoid::DistributionTrapezoid() : DistributionTrapezoid(0., 0., 1., 0.) {} + double DistributionLogNormal::probabilityDensity(double x) const { if (m_scale_param == 0.0) @@ -299,13 +330,21 @@ void DistributionLogNormal::setUnits(const std::string& units) // class DistributionCosine // ************************************************************************** // -DistributionCosine::DistributionCosine(double mean, double sigma) : m_mean(mean), m_sigma(sigma) +DistributionCosine::DistributionCosine(const std::vector<double> P) + : IDistribution1D({"DistributionCosine", + "class_tooltip", + {{"Mean", "", "para_tooltip", -INF, +INF, 0}, + {"Sigma", "", "para_tooltip", -INF, +INF, 0}}}, + P), + m_mean(m_P[0]), m_sigma(m_P[1]) { - setName("DistributionCosine"); if (m_sigma < 0.0) throw Exceptions::ClassInitializationException("DistributionCosine: sigma<0"); - registerParameter("Mean", &m_mean); - registerParameter("Sigma", &m_sigma); +} + +DistributionCosine::DistributionCosine(double mean, double sigma) + : DistributionCosine(std::vector<double>{mean, sigma}) +{ } DistributionCosine::DistributionCosine() : DistributionCosine(0., 1.) {} @@ -339,24 +378,29 @@ bool DistributionCosine::isDelta() const // class DistributionTrapezoidal // ************************************************************************** // -DistributionTrapezoid::DistributionTrapezoid(double center, double left, double middle, - double right) - : m_center(center), m_left(left), m_middle(middle), m_right(right) +DistributionTrapezoid::DistributionTrapezoid(const std::vector<double> P) + : IDistribution1D({"DistributionTrapezoid", + "class_tooltip", + {{"Center", "", "para_tooltip", -INF, +INF, 0}, + {"LeftWidth", "", "para_tooltip", -INF, +INF, 0}, + {"MiddleWidth", "", "para_tooltip", -INF, +INF, 0}, + {"RightWidth", "", "para_tooltip", -INF, +INF, 0}}}, + P), + m_center(m_P[0]), m_left(m_P[1]), m_middle(m_P[2]), m_right(m_P[3]) { - setName("DistributionTrapezoid"); if (m_left < 0.0) throw Exceptions::ClassInitializationException("DistributionTrapezoid: leftWidth < 0"); if (m_middle < 0.0) throw Exceptions::ClassInitializationException("DistributionTrapezoid: middleWidth < 0"); if (m_right < 0.0) throw Exceptions::ClassInitializationException("DistributionTrapezoid: rightWidth < 0"); - registerParameter("Center", &m_center); - registerParameter("LeftWidth", &m_left); - registerParameter("MiddleWidth", &m_middle); - registerParameter("RightWidth", &m_right); } -DistributionTrapezoid::DistributionTrapezoid() : DistributionTrapezoid(0., 0., 1., 0.) {} +DistributionTrapezoid::DistributionTrapezoid(double center, double left, double middle, + double right) + : DistributionTrapezoid(std::vector<double>{center, left, middle, right}) +{ +} double DistributionTrapezoid::probabilityDensity(double x) const { diff --git a/Core/Parametrization/Distributions.h b/Core/Parametrization/Distributions.h index 87f4793c96d..738d080307f 100644 --- a/Core/Parametrization/Distributions.h +++ b/Core/Parametrization/Distributions.h @@ -32,7 +32,6 @@ class ParameterSample; class BA_CORE_API_ IDistribution1D : public ICloneable, public INode { public: - IDistribution1D() = default; IDistribution1D(const NodeMeta& meta, const std::vector<double>& PValues); virtual IDistribution1D* clone() const = 0; @@ -86,6 +85,7 @@ protected: class BA_CORE_API_ DistributionGate : public IDistribution1D { public: + DistributionGate(const std::vector<double> P); DistributionGate(double min, double max); DistributionGate(); @@ -105,8 +105,8 @@ public: void accept(INodeVisitor* visitor) const final { visitor->visit(this); } private: - double m_min; - double m_max; + const double& m_min; + const double& m_max; }; // ************************************************************************** // @@ -119,6 +119,7 @@ private: class BA_CORE_API_ DistributionLorentz : public IDistribution1D { public: + DistributionLorentz(const std::vector<double> P); DistributionLorentz(double mean, double hwhm); DistributionLorentz(); @@ -137,8 +138,8 @@ public: void accept(INodeVisitor* visitor) const final { visitor->visit(this); } private: - double m_mean; - double m_hwhm; + const double& m_mean; + const double& m_hwhm; }; // ************************************************************************** // @@ -151,6 +152,7 @@ private: class BA_CORE_API_ DistributionGaussian : public IDistribution1D { public: + DistributionGaussian(const std::vector<double> P); DistributionGaussian(double mean, double std_dev); DistributionGaussian(); @@ -172,8 +174,8 @@ public: void accept(INodeVisitor* visitor) const final { visitor->visit(this); } private: - double m_mean; - double m_std_dev; + const double& m_mean; + const double& m_std_dev; }; // ************************************************************************** // @@ -186,6 +188,7 @@ private: class BA_CORE_API_ DistributionLogNormal : public IDistribution1D { public: + DistributionLogNormal(const std::vector<double> P); DistributionLogNormal(double median, double scale_param); DistributionLogNormal() = delete; @@ -210,8 +213,8 @@ public: virtual void setUnits(const std::string& units); private: - double m_median; - double m_scale_param; + const double& m_median; + const double& m_scale_param; }; // ************************************************************************** // @@ -224,6 +227,7 @@ private: class BA_CORE_API_ DistributionCosine : public IDistribution1D { public: + DistributionCosine(const std::vector<double> P); DistributionCosine(double mean, double sigma); DistributionCosine(); @@ -242,8 +246,8 @@ public: void accept(INodeVisitor* visitor) const final { visitor->visit(this); } private: - double m_mean; - double m_sigma; + const double& m_mean; + const double& m_sigma; }; // ************************************************************************** // @@ -256,6 +260,7 @@ private: class BA_CORE_API_ DistributionTrapezoid : public IDistribution1D { public: + DistributionTrapezoid(const std::vector<double> P); DistributionTrapezoid(double center, double left, double middle, double right); DistributionTrapezoid(); @@ -280,10 +285,10 @@ public: private: void adjustLimitsToNonZeroSamples(double& min, double& max, size_t nbr_samples) const; - double m_center; - double m_left; - double m_middle; - double m_right; + const double& m_center; + const double& m_left; + const double& m_middle; + const double& m_right; }; #endif // BORNAGAIN_CORE_PARAMETRIZATION_DISTRIBUTIONS_H diff --git a/Core/Scattering/Rotations.cpp b/Core/Scattering/Rotations.cpp index 6ce31721724..fb499db3e0c 100644 --- a/Core/Scattering/Rotations.cpp +++ b/Core/Scattering/Rotations.cpp @@ -101,10 +101,9 @@ Transform3D IdentityRotation::getTransform3D() const //! Constructor of rotation around x-axis //! @param angle: rotation angle around x-axis in radians RotationX::RotationX(const std::vector<double> P) - : IRotation({"XRotation", - "class_tooltip", - {{"Angle", "rad", "Angle around x axis", -INF, +INF, 0}}}, - P), + : IRotation( + {"XRotation", "class_tooltip", {{"Angle", "rad", "Angle around x axis", -INF, +INF, 0}}}, + P), m_angle(m_P[0]) { } @@ -123,10 +122,9 @@ Transform3D RotationX::getTransform3D() const //! Constructor of rotation around y-axis //! @param angle: rotation angle around y-axis in radians RotationY::RotationY(const std::vector<double> P) - : IRotation({"YRotation", - "class_tooltip", - {{"Angle", "rad", "Angle around y axis", -INF, +INF, 0}}}, - P), + : IRotation( + {"YRotation", "class_tooltip", {{"Angle", "rad", "Angle around y axis", -INF, +INF, 0}}}, + P), m_angle(m_P[0]) { } @@ -147,10 +145,9 @@ Transform3D RotationY::getTransform3D() const //! Constructor of rotation around z-axis //! @param angle: rotation angle around z-axis in radians RotationZ::RotationZ(const std::vector<double> P) - : IRotation({"ZRotation", - "class_tooltip", - {{"Angle", "rad", "Angle around z axis", -INF, +INF, 0}}}, - P), + : IRotation( + {"ZRotation", "class_tooltip", {{"Angle", "rad", "Angle around z axis", -INF, +INF, 0}}}, + P), m_angle(m_P[0]) { } diff --git a/GUI/coregui/Models/ModelMapper.cpp b/GUI/coregui/Models/ModelMapper.cpp index 82f2519da51..0021ef25161 100644 --- a/GUI/coregui/Models/ModelMapper.cpp +++ b/GUI/coregui/Models/ModelMapper.cpp @@ -34,10 +34,7 @@ void ModelMapper::setOnValueChange(std::function<void(void)> f, const void* call void ModelMapper::setOnPropertyChange(std::function<void(QString)> f, const void* caller) { - auto ff = [=](SessionItem* item, const QString& property) { - (void)item; - f(property); - }; + auto ff = [=](SessionItem* /*item*/, const QString& property) { f(property); }; m_onPropertyChange.push_back(call_item_str_t(ff, caller)); } diff --git a/auto/Wrap/libBornAgainCore.py b/auto/Wrap/libBornAgainCore.py index 9d44d54318a..b07ad6f8a8d 100644 --- a/auto/Wrap/libBornAgainCore.py +++ b/auto/Wrap/libBornAgainCore.py @@ -6693,8 +6693,9 @@ class DistributionGate(IDistribution1D): def __init__(self, *args): r""" - __init__(DistributionGate self) -> DistributionGate + __init__(DistributionGate self, vdouble1d_t P) -> DistributionGate __init__(DistributionGate self, double min, double max) -> DistributionGate + __init__(DistributionGate self) -> DistributionGate DistributionGate::DistributionGate(double min, double max) """ @@ -6793,8 +6794,9 @@ class DistributionLorentz(IDistribution1D): def __init__(self, *args): r""" - __init__(DistributionLorentz self) -> DistributionLorentz + __init__(DistributionLorentz self, vdouble1d_t P) -> DistributionLorentz __init__(DistributionLorentz self, double mean, double hwhm) -> DistributionLorentz + __init__(DistributionLorentz self) -> DistributionLorentz DistributionLorentz::DistributionLorentz(double mean, double hwhm) """ @@ -6885,8 +6887,9 @@ class DistributionGaussian(IDistribution1D): def __init__(self, *args): r""" - __init__(DistributionGaussian self) -> DistributionGaussian + __init__(DistributionGaussian self, vdouble1d_t P) -> DistributionGaussian __init__(DistributionGaussian self, double mean, double std_dev) -> DistributionGaussian + __init__(DistributionGaussian self) -> DistributionGaussian DistributionGaussian::DistributionGaussian(double mean, double std_dev) """ @@ -6975,13 +6978,14 @@ class DistributionLogNormal(IDistribution1D): thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") __repr__ = _swig_repr - def __init__(self, median, scale_param): + def __init__(self, *args): r""" + __init__(DistributionLogNormal self, vdouble1d_t P) -> DistributionLogNormal __init__(DistributionLogNormal self, double median, double scale_param) -> DistributionLogNormal DistributionLogNormal::DistributionLogNormal(double median, double scale_param) """ - _libBornAgainCore.DistributionLogNormal_swiginit(self, _libBornAgainCore.new_DistributionLogNormal(median, scale_param)) + _libBornAgainCore.DistributionLogNormal_swiginit(self, _libBornAgainCore.new_DistributionLogNormal(*args)) def clone(self): r""" @@ -7086,8 +7090,9 @@ class DistributionCosine(IDistribution1D): def __init__(self, *args): r""" - __init__(DistributionCosine self) -> DistributionCosine + __init__(DistributionCosine self, vdouble1d_t P) -> DistributionCosine __init__(DistributionCosine self, double mean, double sigma) -> DistributionCosine + __init__(DistributionCosine self) -> DistributionCosine DistributionCosine::DistributionCosine(double mean, double sigma) """ @@ -7178,8 +7183,9 @@ class DistributionTrapezoid(IDistribution1D): def __init__(self, *args): r""" - __init__(DistributionTrapezoid self) -> DistributionTrapezoid + __init__(DistributionTrapezoid self, vdouble1d_t P) -> DistributionTrapezoid __init__(DistributionTrapezoid self, double center, double left, double middle, double right) -> DistributionTrapezoid + __init__(DistributionTrapezoid self) -> DistributionTrapezoid DistributionTrapezoid::DistributionTrapezoid(double center, double left_width, double middle_width, double right_width) """ diff --git a/auto/Wrap/libBornAgainCore_wrap.cpp b/auto/Wrap/libBornAgainCore_wrap.cpp index ee3cbcee0be..7d559cc33c5 100644 --- a/auto/Wrap/libBornAgainCore_wrap.cpp +++ b/auto/Wrap/libBornAgainCore_wrap.cpp @@ -61779,12 +61779,22 @@ SWIGINTERN PyObject *IDistribution1D_swigregister(PyObject *SWIGUNUSEDPARM(self) return SWIG_Py_Void(); } -SWIGINTERN PyObject *_wrap_new_DistributionGate__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { +SWIGINTERN PyObject *_wrap_new_DistributionGate__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; + std::vector< double,std::allocator< double > > arg1 ; DistributionGate *result = 0 ; - if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; - result = (DistributionGate *)new DistributionGate(); + if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; + { + std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0; + int res = swig::asptr(swig_obj[0], &ptr); + if (!SWIG_IsOK(res) || !ptr) { + SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_DistributionGate" "', argument " "1"" of type '" "std::vector< double,std::allocator< double > > const""'"); + } + arg1 = *ptr; + if (SWIG_IsNewObj(res)) delete ptr; + } + result = (DistributionGate *)new DistributionGate(arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_DistributionGate, SWIG_POINTER_NEW | 0 ); return resultobj; fail: @@ -61821,6 +61831,19 @@ fail: } +SWIGINTERN PyObject *_wrap_new_DistributionGate__SWIG_2(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { + PyObject *resultobj = 0; + DistributionGate *result = 0 ; + + if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; + result = (DistributionGate *)new DistributionGate(); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_DistributionGate, SWIG_POINTER_NEW | 0 ); + return resultobj; +fail: + return NULL; +} + + SWIGINTERN PyObject *_wrap_new_DistributionGate(PyObject *self, PyObject *args) { Py_ssize_t argc; PyObject *argv[3] = { @@ -61830,7 +61853,15 @@ SWIGINTERN PyObject *_wrap_new_DistributionGate(PyObject *self, PyObject *args) if (!(argc = SWIG_Python_UnpackTuple(args, "new_DistributionGate", 0, 2, argv))) SWIG_fail; --argc; if (argc == 0) { - return _wrap_new_DistributionGate__SWIG_0(self, argc, argv); + return _wrap_new_DistributionGate__SWIG_2(self, argc, argv); + } + if (argc == 1) { + int _v; + int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0)); + _v = SWIG_CheckState(res); + if (_v) { + return _wrap_new_DistributionGate__SWIG_0(self, argc, argv); + } } if (argc == 2) { int _v; @@ -61852,8 +61883,9 @@ SWIGINTERN PyObject *_wrap_new_DistributionGate(PyObject *self, PyObject *args) fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_DistributionGate'.\n" " Possible C/C++ prototypes are:\n" - " DistributionGate::DistributionGate()\n" - " DistributionGate::DistributionGate(double,double)\n"); + " DistributionGate::DistributionGate(std::vector< double,std::allocator< double > > const)\n" + " DistributionGate::DistributionGate(double,double)\n" + " DistributionGate::DistributionGate()\n"); return 0; } @@ -62214,12 +62246,22 @@ SWIGINTERN PyObject *DistributionGate_swiginit(PyObject *SWIGUNUSEDPARM(self), P return SWIG_Python_InitShadowInstance(args); } -SWIGINTERN PyObject *_wrap_new_DistributionLorentz__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { +SWIGINTERN PyObject *_wrap_new_DistributionLorentz__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; + std::vector< double,std::allocator< double > > arg1 ; DistributionLorentz *result = 0 ; - if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; - result = (DistributionLorentz *)new DistributionLorentz(); + if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; + { + std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0; + int res = swig::asptr(swig_obj[0], &ptr); + if (!SWIG_IsOK(res) || !ptr) { + SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_DistributionLorentz" "', argument " "1"" of type '" "std::vector< double,std::allocator< double > > const""'"); + } + arg1 = *ptr; + if (SWIG_IsNewObj(res)) delete ptr; + } + result = (DistributionLorentz *)new DistributionLorentz(arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_DistributionLorentz, SWIG_POINTER_NEW | 0 ); return resultobj; fail: @@ -62256,6 +62298,19 @@ fail: } +SWIGINTERN PyObject *_wrap_new_DistributionLorentz__SWIG_2(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { + PyObject *resultobj = 0; + DistributionLorentz *result = 0 ; + + if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; + result = (DistributionLorentz *)new DistributionLorentz(); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_DistributionLorentz, SWIG_POINTER_NEW | 0 ); + return resultobj; +fail: + return NULL; +} + + SWIGINTERN PyObject *_wrap_new_DistributionLorentz(PyObject *self, PyObject *args) { Py_ssize_t argc; PyObject *argv[3] = { @@ -62265,7 +62320,15 @@ SWIGINTERN PyObject *_wrap_new_DistributionLorentz(PyObject *self, PyObject *arg if (!(argc = SWIG_Python_UnpackTuple(args, "new_DistributionLorentz", 0, 2, argv))) SWIG_fail; --argc; if (argc == 0) { - return _wrap_new_DistributionLorentz__SWIG_0(self, argc, argv); + return _wrap_new_DistributionLorentz__SWIG_2(self, argc, argv); + } + if (argc == 1) { + int _v; + int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0)); + _v = SWIG_CheckState(res); + if (_v) { + return _wrap_new_DistributionLorentz__SWIG_0(self, argc, argv); + } } if (argc == 2) { int _v; @@ -62287,8 +62350,9 @@ SWIGINTERN PyObject *_wrap_new_DistributionLorentz(PyObject *self, PyObject *arg fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_DistributionLorentz'.\n" " Possible C/C++ prototypes are:\n" - " DistributionLorentz::DistributionLorentz()\n" - " DistributionLorentz::DistributionLorentz(double,double)\n"); + " DistributionLorentz::DistributionLorentz(std::vector< double,std::allocator< double > > const)\n" + " DistributionLorentz::DistributionLorentz(double,double)\n" + " DistributionLorentz::DistributionLorentz()\n"); return 0; } @@ -62626,12 +62690,22 @@ SWIGINTERN PyObject *DistributionLorentz_swiginit(PyObject *SWIGUNUSEDPARM(self) return SWIG_Python_InitShadowInstance(args); } -SWIGINTERN PyObject *_wrap_new_DistributionGaussian__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { +SWIGINTERN PyObject *_wrap_new_DistributionGaussian__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; + std::vector< double,std::allocator< double > > arg1 ; DistributionGaussian *result = 0 ; - if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; - result = (DistributionGaussian *)new DistributionGaussian(); + if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; + { + std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0; + int res = swig::asptr(swig_obj[0], &ptr); + if (!SWIG_IsOK(res) || !ptr) { + SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_DistributionGaussian" "', argument " "1"" of type '" "std::vector< double,std::allocator< double > > const""'"); + } + arg1 = *ptr; + if (SWIG_IsNewObj(res)) delete ptr; + } + result = (DistributionGaussian *)new DistributionGaussian(arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_DistributionGaussian, SWIG_POINTER_NEW | 0 ); return resultobj; fail: @@ -62668,6 +62742,19 @@ fail: } +SWIGINTERN PyObject *_wrap_new_DistributionGaussian__SWIG_2(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { + PyObject *resultobj = 0; + DistributionGaussian *result = 0 ; + + if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; + result = (DistributionGaussian *)new DistributionGaussian(); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_DistributionGaussian, SWIG_POINTER_NEW | 0 ); + return resultobj; +fail: + return NULL; +} + + SWIGINTERN PyObject *_wrap_new_DistributionGaussian(PyObject *self, PyObject *args) { Py_ssize_t argc; PyObject *argv[3] = { @@ -62677,7 +62764,15 @@ SWIGINTERN PyObject *_wrap_new_DistributionGaussian(PyObject *self, PyObject *ar if (!(argc = SWIG_Python_UnpackTuple(args, "new_DistributionGaussian", 0, 2, argv))) SWIG_fail; --argc; if (argc == 0) { - return _wrap_new_DistributionGaussian__SWIG_0(self, argc, argv); + return _wrap_new_DistributionGaussian__SWIG_2(self, argc, argv); + } + if (argc == 1) { + int _v; + int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0)); + _v = SWIG_CheckState(res); + if (_v) { + return _wrap_new_DistributionGaussian__SWIG_0(self, argc, argv); + } } if (argc == 2) { int _v; @@ -62699,8 +62794,9 @@ SWIGINTERN PyObject *_wrap_new_DistributionGaussian(PyObject *self, PyObject *ar fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_DistributionGaussian'.\n" " Possible C/C++ prototypes are:\n" - " DistributionGaussian::DistributionGaussian()\n" - " DistributionGaussian::DistributionGaussian(double,double)\n"); + " DistributionGaussian::DistributionGaussian(std::vector< double,std::allocator< double > > const)\n" + " DistributionGaussian::DistributionGaussian(double,double)\n" + " DistributionGaussian::DistributionGaussian()\n"); return 0; } @@ -63038,7 +63134,30 @@ SWIGINTERN PyObject *DistributionGaussian_swiginit(PyObject *SWIGUNUSEDPARM(self return SWIG_Python_InitShadowInstance(args); } -SWIGINTERN PyObject *_wrap_new_DistributionLogNormal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_new_DistributionLogNormal__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { + PyObject *resultobj = 0; + std::vector< double,std::allocator< double > > arg1 ; + DistributionLogNormal *result = 0 ; + + if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; + { + std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0; + int res = swig::asptr(swig_obj[0], &ptr); + if (!SWIG_IsOK(res) || !ptr) { + SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_DistributionLogNormal" "', argument " "1"" of type '" "std::vector< double,std::allocator< double > > const""'"); + } + arg1 = *ptr; + if (SWIG_IsNewObj(res)) delete ptr; + } + result = (DistributionLogNormal *)new DistributionLogNormal(arg1); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_DistributionLogNormal, SWIG_POINTER_NEW | 0 ); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_new_DistributionLogNormal__SWIG_1(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; double arg1 ; double arg2 ; @@ -63046,10 +63165,9 @@ SWIGINTERN PyObject *_wrap_new_DistributionLogNormal(PyObject *SWIGUNUSEDPARM(se int ecode1 = 0 ; double val2 ; int ecode2 = 0 ; - PyObject *swig_obj[2] ; DistributionLogNormal *result = 0 ; - if (!SWIG_Python_UnpackTuple(args, "new_DistributionLogNormal", 2, 2, swig_obj)) SWIG_fail; + if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; ecode1 = SWIG_AsVal_double(swig_obj[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_DistributionLogNormal" "', argument " "1"" of type '" "double""'"); @@ -63068,6 +63186,48 @@ fail: } +SWIGINTERN PyObject *_wrap_new_DistributionLogNormal(PyObject *self, PyObject *args) { + Py_ssize_t argc; + PyObject *argv[3] = { + 0 + }; + + if (!(argc = SWIG_Python_UnpackTuple(args, "new_DistributionLogNormal", 0, 2, argv))) SWIG_fail; + --argc; + if (argc == 1) { + int _v; + int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0)); + _v = SWIG_CheckState(res); + if (_v) { + return _wrap_new_DistributionLogNormal__SWIG_0(self, argc, argv); + } + } + if (argc == 2) { + int _v; + { + int res = SWIG_AsVal_double(argv[0], NULL); + _v = SWIG_CheckState(res); + } + if (_v) { + { + int res = SWIG_AsVal_double(argv[1], NULL); + _v = SWIG_CheckState(res); + } + if (_v) { + return _wrap_new_DistributionLogNormal__SWIG_1(self, argc, argv); + } + } + } + +fail: + SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_DistributionLogNormal'.\n" + " Possible C/C++ prototypes are:\n" + " DistributionLogNormal::DistributionLogNormal(std::vector< double,std::allocator< double > > const)\n" + " DistributionLogNormal::DistributionLogNormal(double,double)\n"); + return 0; +} + + SWIGINTERN PyObject *_wrap_DistributionLogNormal_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; DistributionLogNormal *arg1 = (DistributionLogNormal *) 0 ; @@ -63460,12 +63620,22 @@ SWIGINTERN PyObject *DistributionLogNormal_swiginit(PyObject *SWIGUNUSEDPARM(sel return SWIG_Python_InitShadowInstance(args); } -SWIGINTERN PyObject *_wrap_new_DistributionCosine__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { +SWIGINTERN PyObject *_wrap_new_DistributionCosine__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; + std::vector< double,std::allocator< double > > arg1 ; DistributionCosine *result = 0 ; - if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; - result = (DistributionCosine *)new DistributionCosine(); + if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; + { + std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0; + int res = swig::asptr(swig_obj[0], &ptr); + if (!SWIG_IsOK(res) || !ptr) { + SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_DistributionCosine" "', argument " "1"" of type '" "std::vector< double,std::allocator< double > > const""'"); + } + arg1 = *ptr; + if (SWIG_IsNewObj(res)) delete ptr; + } + result = (DistributionCosine *)new DistributionCosine(arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_DistributionCosine, SWIG_POINTER_NEW | 0 ); return resultobj; fail: @@ -63502,6 +63672,19 @@ fail: } +SWIGINTERN PyObject *_wrap_new_DistributionCosine__SWIG_2(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { + PyObject *resultobj = 0; + DistributionCosine *result = 0 ; + + if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; + result = (DistributionCosine *)new DistributionCosine(); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_DistributionCosine, SWIG_POINTER_NEW | 0 ); + return resultobj; +fail: + return NULL; +} + + SWIGINTERN PyObject *_wrap_new_DistributionCosine(PyObject *self, PyObject *args) { Py_ssize_t argc; PyObject *argv[3] = { @@ -63511,7 +63694,15 @@ SWIGINTERN PyObject *_wrap_new_DistributionCosine(PyObject *self, PyObject *args if (!(argc = SWIG_Python_UnpackTuple(args, "new_DistributionCosine", 0, 2, argv))) SWIG_fail; --argc; if (argc == 0) { - return _wrap_new_DistributionCosine__SWIG_0(self, argc, argv); + return _wrap_new_DistributionCosine__SWIG_2(self, argc, argv); + } + if (argc == 1) { + int _v; + int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0)); + _v = SWIG_CheckState(res); + if (_v) { + return _wrap_new_DistributionCosine__SWIG_0(self, argc, argv); + } } if (argc == 2) { int _v; @@ -63533,8 +63724,9 @@ SWIGINTERN PyObject *_wrap_new_DistributionCosine(PyObject *self, PyObject *args fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_DistributionCosine'.\n" " Possible C/C++ prototypes are:\n" - " DistributionCosine::DistributionCosine()\n" - " DistributionCosine::DistributionCosine(double,double)\n"); + " DistributionCosine::DistributionCosine(std::vector< double,std::allocator< double > > const)\n" + " DistributionCosine::DistributionCosine(double,double)\n" + " DistributionCosine::DistributionCosine()\n"); return 0; } @@ -63872,12 +64064,22 @@ SWIGINTERN PyObject *DistributionCosine_swiginit(PyObject *SWIGUNUSEDPARM(self), return SWIG_Python_InitShadowInstance(args); } -SWIGINTERN PyObject *_wrap_new_DistributionTrapezoid__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { +SWIGINTERN PyObject *_wrap_new_DistributionTrapezoid__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; + std::vector< double,std::allocator< double > > arg1 ; DistributionTrapezoid *result = 0 ; - if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; - result = (DistributionTrapezoid *)new DistributionTrapezoid(); + if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; + { + std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0; + int res = swig::asptr(swig_obj[0], &ptr); + if (!SWIG_IsOK(res) || !ptr) { + SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_DistributionTrapezoid" "', argument " "1"" of type '" "std::vector< double,std::allocator< double > > const""'"); + } + arg1 = *ptr; + if (SWIG_IsNewObj(res)) delete ptr; + } + result = (DistributionTrapezoid *)new DistributionTrapezoid(arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_DistributionTrapezoid, SWIG_POINTER_NEW | 0 ); return resultobj; fail: @@ -63930,6 +64132,19 @@ fail: } +SWIGINTERN PyObject *_wrap_new_DistributionTrapezoid__SWIG_2(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { + PyObject *resultobj = 0; + DistributionTrapezoid *result = 0 ; + + if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; + result = (DistributionTrapezoid *)new DistributionTrapezoid(); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_DistributionTrapezoid, SWIG_POINTER_NEW | 0 ); + return resultobj; +fail: + return NULL; +} + + SWIGINTERN PyObject *_wrap_new_DistributionTrapezoid(PyObject *self, PyObject *args) { Py_ssize_t argc; PyObject *argv[5] = { @@ -63939,7 +64154,15 @@ SWIGINTERN PyObject *_wrap_new_DistributionTrapezoid(PyObject *self, PyObject *a if (!(argc = SWIG_Python_UnpackTuple(args, "new_DistributionTrapezoid", 0, 4, argv))) SWIG_fail; --argc; if (argc == 0) { - return _wrap_new_DistributionTrapezoid__SWIG_0(self, argc, argv); + return _wrap_new_DistributionTrapezoid__SWIG_2(self, argc, argv); + } + if (argc == 1) { + int _v; + int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0)); + _v = SWIG_CheckState(res); + if (_v) { + return _wrap_new_DistributionTrapezoid__SWIG_0(self, argc, argv); + } } if (argc == 4) { int _v; @@ -63973,8 +64196,9 @@ SWIGINTERN PyObject *_wrap_new_DistributionTrapezoid(PyObject *self, PyObject *a fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_DistributionTrapezoid'.\n" " Possible C/C++ prototypes are:\n" - " DistributionTrapezoid::DistributionTrapezoid()\n" - " DistributionTrapezoid::DistributionTrapezoid(double,double,double,double)\n"); + " DistributionTrapezoid::DistributionTrapezoid(std::vector< double,std::allocator< double > > const)\n" + " DistributionTrapezoid::DistributionTrapezoid(double,double,double,double)\n" + " DistributionTrapezoid::DistributionTrapezoid()\n"); return 0; } @@ -125535,8 +125759,9 @@ static PyMethodDef SwigMethods[] = { ""}, { "IDistribution1D_swigregister", IDistribution1D_swigregister, METH_O, NULL}, { "new_DistributionGate", _wrap_new_DistributionGate, METH_VARARGS, "\n" - "DistributionGate()\n" - "new_DistributionGate(double min, double max) -> DistributionGate\n" + "DistributionGate(vdouble1d_t P)\n" + "DistributionGate(double min, double max)\n" + "new_DistributionGate() -> DistributionGate\n" "DistributionGate::DistributionGate(double min, double max)\n" "\n" ""}, @@ -125598,8 +125823,9 @@ static PyMethodDef SwigMethods[] = { { "DistributionGate_swigregister", DistributionGate_swigregister, METH_O, NULL}, { "DistributionGate_swiginit", DistributionGate_swiginit, METH_VARARGS, NULL}, { "new_DistributionLorentz", _wrap_new_DistributionLorentz, METH_VARARGS, "\n" - "DistributionLorentz()\n" - "new_DistributionLorentz(double mean, double hwhm) -> DistributionLorentz\n" + "DistributionLorentz(vdouble1d_t P)\n" + "DistributionLorentz(double mean, double hwhm)\n" + "new_DistributionLorentz() -> DistributionLorentz\n" "DistributionLorentz::DistributionLorentz(double mean, double hwhm)\n" "\n" ""}, @@ -125656,8 +125882,9 @@ static PyMethodDef SwigMethods[] = { { "DistributionLorentz_swigregister", DistributionLorentz_swigregister, METH_O, NULL}, { "DistributionLorentz_swiginit", DistributionLorentz_swiginit, METH_VARARGS, NULL}, { "new_DistributionGaussian", _wrap_new_DistributionGaussian, METH_VARARGS, "\n" - "DistributionGaussian()\n" - "new_DistributionGaussian(double mean, double std_dev) -> DistributionGaussian\n" + "DistributionGaussian(vdouble1d_t P)\n" + "DistributionGaussian(double mean, double std_dev)\n" + "new_DistributionGaussian() -> DistributionGaussian\n" "DistributionGaussian::DistributionGaussian(double mean, double std_dev)\n" "\n" ""}, @@ -125714,6 +125941,7 @@ static PyMethodDef SwigMethods[] = { { "DistributionGaussian_swigregister", DistributionGaussian_swigregister, METH_O, NULL}, { "DistributionGaussian_swiginit", DistributionGaussian_swiginit, METH_VARARGS, NULL}, { "new_DistributionLogNormal", _wrap_new_DistributionLogNormal, METH_VARARGS, "\n" + "DistributionLogNormal(vdouble1d_t P)\n" "new_DistributionLogNormal(double median, double scale_param) -> DistributionLogNormal\n" "DistributionLogNormal::DistributionLogNormal(double median, double scale_param)\n" "\n" @@ -125783,8 +126011,9 @@ static PyMethodDef SwigMethods[] = { { "DistributionLogNormal_swigregister", DistributionLogNormal_swigregister, METH_O, NULL}, { "DistributionLogNormal_swiginit", DistributionLogNormal_swiginit, METH_VARARGS, NULL}, { "new_DistributionCosine", _wrap_new_DistributionCosine, METH_VARARGS, "\n" - "DistributionCosine()\n" - "new_DistributionCosine(double mean, double sigma) -> DistributionCosine\n" + "DistributionCosine(vdouble1d_t P)\n" + "DistributionCosine(double mean, double sigma)\n" + "new_DistributionCosine() -> DistributionCosine\n" "DistributionCosine::DistributionCosine(double mean, double sigma)\n" "\n" ""}, @@ -125841,8 +126070,9 @@ static PyMethodDef SwigMethods[] = { { "DistributionCosine_swigregister", DistributionCosine_swigregister, METH_O, NULL}, { "DistributionCosine_swiginit", DistributionCosine_swiginit, METH_VARARGS, NULL}, { "new_DistributionTrapezoid", _wrap_new_DistributionTrapezoid, METH_VARARGS, "\n" - "DistributionTrapezoid()\n" - "new_DistributionTrapezoid(double center, double left, double middle, double right) -> DistributionTrapezoid\n" + "DistributionTrapezoid(vdouble1d_t P)\n" + "DistributionTrapezoid(double center, double left, double middle, double right)\n" + "new_DistributionTrapezoid() -> DistributionTrapezoid\n" "DistributionTrapezoid::DistributionTrapezoid(double center, double left_width, double middle_width, double right_width)\n" "\n" ""}, -- GitLab