From 69557388586966ee3cbe04ed87a12d755122841c Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de> Date: Thu, 13 Apr 2023 14:30:43 +0200 Subject: [PATCH 1/8] rm unused include --- Device/Coord/ICoordSystem.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Device/Coord/ICoordSystem.cpp b/Device/Coord/ICoordSystem.cpp index 7e41e822229..bc481d51271 100644 --- a/Device/Coord/ICoordSystem.cpp +++ b/Device/Coord/ICoordSystem.cpp @@ -14,7 +14,6 @@ #include "Device/Coord/ICoordSystem.h" #include "Base/Util/Assert.h" -#include <sstream> ICoordSystem::~ICoordSystem() = default; -- GitLab From be3ac6933b29324ef86ab76db0d9e5a9f83e446c Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de> Date: Thu, 13 Apr 2023 14:31:18 +0200 Subject: [PATCH 2/8] rm unused include --- Base/Axis/Frame.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Base/Axis/Frame.cpp b/Base/Axis/Frame.cpp index 1419a2f766d..1e02a36b844 100644 --- a/Base/Axis/Frame.cpp +++ b/Base/Axis/Frame.cpp @@ -13,7 +13,6 @@ // ************************************************************************************************ #include "Base/Axis/Frame.h" -#include "Base/Axis/Bin.h" #include "Base/Axis/IAxis.h" #include "Base/Util/Assert.h" -- GitLab From 2fb4d8a2f61a72af27dfe61fcbd42e130a79f6ae Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de> Date: Thu, 13 Apr 2023 15:29:42 +0200 Subject: [PATCH 3/8] + FramUtil::product_size --- Base/Axis/FrameUtil.cpp | 10 ++++++++++ Base/Axis/FrameUtil.h | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/Base/Axis/FrameUtil.cpp b/Base/Axis/FrameUtil.cpp index 8d99b7bf826..dde6d5ab92a 100644 --- a/Base/Axis/FrameUtil.cpp +++ b/Base/Axis/FrameUtil.cpp @@ -17,6 +17,16 @@ #include "Base/Axis/Frame.h" #include "Base/Axis/IAxis.h" +size_t FramUtil::product_size(const std::vector<const IAxis*>& axes) +{ + if (axes.empty()) + return 0; + size_t result = 1; + for (const IAxis* ax : axes) + result *= ax->size(); + return result; +} + // For axis FixedBinAxis("axis", 8, -5.0, 3.0) the coordinate x=-4.5 (center of bin #0) will // be converted into 0.5 (which is a bin center expressed in bin fraction coordinates). // The coordinate -5.0 (outside of axis definition) will be converted to -0.5 diff --git a/Base/Axis/FrameUtil.h b/Base/Axis/FrameUtil.h index fcc5ba14e1e..f59c7114fbb 100644 --- a/Base/Axis/FrameUtil.h +++ b/Base/Axis/FrameUtil.h @@ -15,11 +15,17 @@ #ifndef BORNAGAIN_BASE_AXIS_FRAMEUTIL_H #define BORNAGAIN_BASE_AXIS_FRAMEUTIL_H +#include <cstddef> +#include <vector> + class Frame; class IAxis; namespace FramUtil { +//! Product of axis sizes. +size_t product_size(const std::vector<const IAxis*>& axes); + //! Transforms coordinate on axis into the bin-fraction-coordinate. double coordinateToBinf(double coordinate, const IAxis& axis); -- GitLab From a4ea7ca453643e1f1fa2f3bcb2137343a8dac536 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de> Date: Thu, 13 Apr 2023 15:30:18 +0200 Subject: [PATCH 4/8] rename -> FrameUtil --- Base/Axis/FrameUtil.cpp | 12 ++++---- Base/Axis/FrameUtil.h | 6 ++-- GUI/Model/Data/MaskUnitsConverter.cpp | 12 ++++---- .../Device/IntensityDataFunctionsTest.cpp | 28 +++++++++---------- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/Base/Axis/FrameUtil.cpp b/Base/Axis/FrameUtil.cpp index dde6d5ab92a..02d4f129f08 100644 --- a/Base/Axis/FrameUtil.cpp +++ b/Base/Axis/FrameUtil.cpp @@ -3,7 +3,7 @@ // BornAgain: simulate and fit reflection and scattering // //! @file Base/Axis/FrameUtil.cpp -//! @brief Implements namespace FramUtil. +//! @brief Implements namespace FrameUtil. //! //! @homepage http://www.bornagainproject.org //! @license GNU General Public License v3 or higher (see COPYING) @@ -17,7 +17,7 @@ #include "Base/Axis/Frame.h" #include "Base/Axis/IAxis.h" -size_t FramUtil::product_size(const std::vector<const IAxis*>& axes) +size_t FrameUtil::product_size(const std::vector<const IAxis*>& axes) { if (axes.empty()) return 0; @@ -33,7 +33,7 @@ size_t FramUtil::product_size(const std::vector<const IAxis*>& axes) // (center of non-existing bin #-1). // Used for Mask conversion. -double FramUtil::coordinateToBinf(double coordinate, const IAxis& axis) +double FrameUtil::coordinateToBinf(double coordinate, const IAxis& axis) { size_t index = axis.findClosestIndex(coordinate); Bin1D bin = axis.bin(index); @@ -41,7 +41,7 @@ double FramUtil::coordinateToBinf(double coordinate, const IAxis& axis) return static_cast<double>(index) + f; } -double FramUtil::coordinateFromBinf(double value, const IAxis& axis) +double FrameUtil::coordinateFromBinf(double value, const IAxis& axis) { int index = static_cast<int>(value); @@ -60,13 +60,13 @@ double FramUtil::coordinateFromBinf(double value, const IAxis& axis) return result; } -void FramUtil::coordinatesToBinf(double& x, double& y, const Frame& frame) +void FrameUtil::coordinatesToBinf(double& x, double& y, const Frame& frame) { x = coordinateToBinf(x, frame.xAxis()); y = coordinateToBinf(y, frame.yAxis()); } -void FramUtil::coordinatesFromBinf(double& x, double& y, const Frame& frame) +void FrameUtil::coordinatesFromBinf(double& x, double& y, const Frame& frame) { x = coordinateFromBinf(x, frame.xAxis()); y = coordinateFromBinf(y, frame.yAxis()); diff --git a/Base/Axis/FrameUtil.h b/Base/Axis/FrameUtil.h index f59c7114fbb..28ad4ded0a5 100644 --- a/Base/Axis/FrameUtil.h +++ b/Base/Axis/FrameUtil.h @@ -3,7 +3,7 @@ // BornAgain: simulate and fit reflection and scattering // //! @file Base/Axis/FrameUtil.h -//! @brief Defines namespace FramUtil. +//! @brief Defines namespace FrameUtil. //! //! @homepage http://www.bornagainproject.org //! @license GNU General Public License v3 or higher (see COPYING) @@ -21,7 +21,7 @@ class Frame; class IAxis; -namespace FramUtil { +namespace FrameUtil { //! Product of axis sizes. size_t product_size(const std::vector<const IAxis*>& axes); @@ -38,6 +38,6 @@ void coordinatesToBinf(double& x, double& y, const Frame& frame); //! Transforms x,y coordinate from bin-fraction-coordinates to Datafield's axes coordinates. void coordinatesFromBinf(double& x, double& y, const Frame& frame); -} // namespace FramUtil +} // namespace FrameUtil #endif // BORNAGAIN_BASE_AXIS_FRAMEUTIL_H diff --git a/GUI/Model/Data/MaskUnitsConverter.cpp b/GUI/Model/Data/MaskUnitsConverter.cpp index 5e0c2ce3a2a..7c5c4291da0 100644 --- a/GUI/Model/Data/MaskUnitsConverter.cpp +++ b/GUI/Model/Data/MaskUnitsConverter.cpp @@ -86,11 +86,11 @@ void MaskUnitsConverter::convertMask(MaskItem* maskItem) double y2 = yc + yR; if (m_direction == TO_NBINS) { - FramUtil::coordinatesToBinf(xc, yc, m_data->frame()); - FramUtil::coordinatesToBinf(x2, y2, m_data->frame()); + FrameUtil::coordinatesToBinf(xc, yc, m_data->frame()); + FrameUtil::coordinatesToBinf(x2, y2, m_data->frame()); } else { - FramUtil::coordinatesFromBinf(xc, yc, m_data->frame()); - FramUtil::coordinatesFromBinf(x2, y2, m_data->frame()); + FrameUtil::coordinatesFromBinf(xc, yc, m_data->frame()); + FrameUtil::coordinatesFromBinf(x2, y2, m_data->frame()); } ellItem->setXCenter(xc); ellItem->setYCenter(yc); @@ -109,8 +109,8 @@ double MaskUnitsConverter::convert(double value, Axis axis) ASSERT(axis_index == 0 || axis_index == 1); if (m_direction == TO_NBINS) - return FramUtil::coordinateToBinf(value, m_data->axis(axis_index)); + return FrameUtil::coordinateToBinf(value, m_data->axis(axis_index)); if (m_direction == FROM_NBINS) - return FramUtil::coordinateFromBinf(value, m_data->axis(axis_index)); + return FrameUtil::coordinateFromBinf(value, m_data->axis(axis_index)); ASSERT(false); } diff --git a/Tests/Unit/Device/IntensityDataFunctionsTest.cpp b/Tests/Unit/Device/IntensityDataFunctionsTest.cpp index fc87d29022c..7e72414d524 100644 --- a/Tests/Unit/Device/IntensityDataFunctionsTest.cpp +++ b/Tests/Unit/Device/IntensityDataFunctionsTest.cpp @@ -65,20 +65,20 @@ TEST(DataUtilsTest, createRearrangedDataSet) TEST(DataUtilsTest, coordinateToFromBinf) { FixedBinAxis axis("axis", 8, -5.0, 3.0); - EXPECT_EQ(0.5, FramUtil::coordinateToBinf(-4.5, axis)); - EXPECT_EQ(-4.5, FramUtil::coordinateFromBinf(0.5, axis)); + EXPECT_EQ(0.5, FrameUtil::coordinateToBinf(-4.5, axis)); + EXPECT_EQ(-4.5, FrameUtil::coordinateFromBinf(0.5, axis)); - EXPECT_EQ(1.0, FramUtil::coordinateToBinf(-4.0, axis)); - EXPECT_EQ(-4.0, FramUtil::coordinateFromBinf(1.0, axis)); + EXPECT_EQ(1.0, FrameUtil::coordinateToBinf(-4.0, axis)); + EXPECT_EQ(-4.0, FrameUtil::coordinateFromBinf(1.0, axis)); - EXPECT_EQ(-0.5, FramUtil::coordinateToBinf(-5.5, axis)); - EXPECT_EQ(-5.5, FramUtil::coordinateFromBinf(-0.5, axis)); + EXPECT_EQ(-0.5, FrameUtil::coordinateToBinf(-5.5, axis)); + EXPECT_EQ(-5.5, FrameUtil::coordinateFromBinf(-0.5, axis)); - EXPECT_EQ(8.0, FramUtil::coordinateToBinf(3.0, axis)); - EXPECT_EQ(3.0, FramUtil::coordinateFromBinf(8.0, axis)); + EXPECT_EQ(8.0, FrameUtil::coordinateToBinf(3.0, axis)); + EXPECT_EQ(3.0, FrameUtil::coordinateFromBinf(8.0, axis)); - EXPECT_EQ(8.5, FramUtil::coordinateToBinf(3.5, axis)); - EXPECT_EQ(3.5, FramUtil::coordinateFromBinf(8.5, axis)); + EXPECT_EQ(8.5, FrameUtil::coordinateToBinf(3.5, axis)); + EXPECT_EQ(3.5, FrameUtil::coordinateFromBinf(8.5, axis)); } //! Transformation of coordinates from one Datafield to another using conversion from axes @@ -91,15 +91,15 @@ TEST(DataUtilsTest, datafieldToFromBinf) {new FixedBinAxis("axis0", 8, -10.0, 70.0), new FixedBinAxis("axis1", 3, -10.0, 20.0)}); double x(-4.5), y(2.5); - FramUtil::coordinatesToBinf(x, y, data1); - FramUtil::coordinatesFromBinf(x, y, data2); + FrameUtil::coordinatesToBinf(x, y, data1); + FrameUtil::coordinatesFromBinf(x, y, data2); EXPECT_DOUBLE_EQ(x, -5.0); EXPECT_DOUBLE_EQ(y, -5.0); x = 3.1; y = 5.1; - FramUtil::coordinatesToBinf(x, y, data1); - FramUtil::coordinatesFromBinf(x, y, data2); + FrameUtil::coordinatesToBinf(x, y, data1); + FrameUtil::coordinatesFromBinf(x, y, data2); EXPECT_DOUBLE_EQ(x, 71.0); EXPECT_DOUBLE_EQ(y, 21.0); } -- GitLab From b13fb717cd8c8e4cc98794cc5b5b7a00198e60ed Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de> Date: Thu, 13 Apr 2023 15:32:03 +0200 Subject: [PATCH 5/8] use it --- Base/Axis/Frame.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Base/Axis/Frame.cpp b/Base/Axis/Frame.cpp index 1e02a36b844..5f50664370e 100644 --- a/Base/Axis/Frame.cpp +++ b/Base/Axis/Frame.cpp @@ -13,17 +13,14 @@ // ************************************************************************************************ #include "Base/Axis/Frame.h" +#include "Base/Axis/FrameUtil.h" #include "Base/Axis/IAxis.h" #include "Base/Util/Assert.h" Frame::Frame(const std::vector<const IAxis*>& axes) : m_axes(axes) - , m_size(1) + , m_size(FrameUtil::product_size(axes)) { - for (size_t k = 0; k < rank(); ++k) { - ASSERT(axis(k).size() > 0); - m_size *= axis(k).size(); - } } Frame* Frame::clone() const -- GitLab From 6ed467c781d5f920e53a24df480c15797274a090 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de> Date: Thu, 13 Apr 2023 15:32:56 +0200 Subject: [PATCH 6/8] provide ICoordSystem::size --- Device/Coord/ICoordSystem.cpp | 12 ++++++++++++ Device/Coord/ICoordSystem.h | 9 +++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/Device/Coord/ICoordSystem.cpp b/Device/Coord/ICoordSystem.cpp index bc481d51271..92d59f2c815 100644 --- a/Device/Coord/ICoordSystem.cpp +++ b/Device/Coord/ICoordSystem.cpp @@ -13,8 +13,15 @@ // ************************************************************************************************ #include "Device/Coord/ICoordSystem.h" +#include "Base/Axis/FrameUtil.h" #include "Base/Util/Assert.h" +ICoordSystem::ICoordSystem(std::vector<const IAxis*> axes) + : m_axes(axes) + , m_size(FrameUtil::product_size(axes)) +{ +} + ICoordSystem::~ICoordSystem() = default; std::vector<const IAxis*> ICoordSystem::defaultAxes() const @@ -27,6 +34,11 @@ size_t ICoordSystem::rank() const return m_axes.size(); } +size_t ICoordSystem::size() const +{ + return m_size; +} + std::vector<const IAxis*> ICoordSystem::convertedAxes(Coords units) const { std::vector<const IAxis*> result; diff --git a/Device/Coord/ICoordSystem.h b/Device/Coord/ICoordSystem.h index 5351c8e7725..ff7356ea91a 100644 --- a/Device/Coord/ICoordSystem.h +++ b/Device/Coord/ICoordSystem.h @@ -35,15 +35,13 @@ class IAxis; class ICoordSystem : public ICloneable { public: - ICoordSystem(std::vector<const IAxis*> axes) - : m_axes(axes) - { - } + ICoordSystem(std::vector<const IAxis*> axes); ~ICoordSystem() override; ICoordSystem* clone() const override = 0; size_t rank() const; + size_t size() const; virtual double calculateMin(size_t i_axis, Coords units) const = 0; virtual double calculateMax(size_t i_axis, Coords units) const = 0; @@ -62,6 +60,9 @@ protected: Coords substituteDefaultUnits(Coords units) const; std::vector<const IAxis*> m_axes; + +private: + size_t m_size; // cached product of axis sizes }; #endif // BORNAGAIN_DEVICE_COORD_ICOORDSYSTEM_H -- GitLab From 22d1e5874dbe5f1b1bfd61dbf0be8fb6f069f965 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de> Date: Thu, 13 Apr 2023 15:34:59 +0200 Subject: [PATCH 7/8] use it --- Device/Histo/SimulationResult.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Device/Histo/SimulationResult.cpp b/Device/Histo/SimulationResult.cpp index 8cdfd547448..89a2740fc32 100644 --- a/Device/Histo/SimulationResult.cpp +++ b/Device/Histo/SimulationResult.cpp @@ -44,12 +44,12 @@ SimulationResult& SimulationResult::operator=(SimulationResult&& other) noexcept size_t SimulationResult::rank() const { - return m_data->rank(); + return m_coordsys ? m_coordsys->rank() : 0; } size_t SimulationResult::size() const { - return m_data ? m_data->size() : 0; + return m_coordsys ? m_coordsys->size() : 0; } bool SimulationResult::empty() const -- GitLab From 36a7e54330a53a5478513e4cba395a07e9221189 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de> Date: Thu, 13 Apr 2023 15:52:43 +0200 Subject: [PATCH 8/8] Datafield::scaled modify out of place --- Device/Data/Datafield.cpp | 20 ++++++++++++++----- Device/Data/Datafield.h | 4 ++-- Examples/fit/specular/Honeycomb_fit.py | 3 +-- .../specular/RealLifeReflectometryFitting.py | 2 +- auto/Wrap/libBornAgainDevice.py | 6 +++--- auto/Wrap/libBornAgainDevice_wrap.cpp | 15 +++++++------- 6 files changed, 30 insertions(+), 20 deletions(-) diff --git a/Device/Data/Datafield.cpp b/Device/Data/Datafield.cpp index 1b151691ce7..43619e775c1 100644 --- a/Device/Data/Datafield.cpp +++ b/Device/Data/Datafield.cpp @@ -149,14 +149,24 @@ const std::vector<double>& Datafield::flatVector() const return m_values; } -void Datafield::scale(double factor) +Datafield Datafield::scaled(double factor) const { - for (size_t i = 0; i < frame().size(); ++i) - m_values[i] *= factor; + size_t N = frame().size(); - if (!m_errSigmas.empty()) + std::vector<double> out_val; + std::vector<double> out_err; + + out_val.resize(N); + for (size_t i = 0; i < N; ++i) + out_val[i] = factor * m_values[i]; + + if (!m_errSigmas.empty()) { + out_err.resize(N); for (size_t i = 0; i < frame().size(); ++i) - m_errSigmas[i] *= factor; + out_err[i] = factor * m_errSigmas[i]; + } + + return Datafield(frame().clone(), out_val, out_err); } double Datafield::maxVal() const diff --git a/Device/Data/Datafield.h b/Device/Data/Datafield.h index d2a7245d422..5f1d465c28e 100644 --- a/Device/Data/Datafield.h +++ b/Device/Data/Datafield.h @@ -78,8 +78,8 @@ public: const double& operator[](size_t i) const; - //! Multiplies contents by constant factor - void scale(double factor); + //! Returns Datafield with contents multiplied by constant factor + Datafield scaled(double factor) const; // helpers diff --git a/Examples/fit/specular/Honeycomb_fit.py b/Examples/fit/specular/Honeycomb_fit.py index e2199b0f29e..4fc812abf2e 100755 --- a/Examples/fit/specular/Honeycomb_fit.py +++ b/Examples/fit/specular/Honeycomb_fit.py @@ -82,7 +82,7 @@ def get_simulation(q_axis, parameters, sign, ms150=False): dq = parameters["dq"]*q_axis scan = ba.QzScan(q_axis) scan.setVectorResolution(q_distr, dq) - + scan.setIntensity(parameters["intensity"]) if ms150: sample = get_sample(parameters=parameters, @@ -102,7 +102,6 @@ def run_simulation(q_axis, fitParams, *, sign, ms150=False): simulation = get_simulation(q_axis, parameters, sign, ms150) result = simulation.simulate() - result.data_field().scale(parameters["intensity"]) return result diff --git a/Examples/fit/specular/RealLifeReflectometryFitting.py b/Examples/fit/specular/RealLifeReflectometryFitting.py index 9f34368f3d1..bb3277c0bb4 100755 --- a/Examples/fit/specular/RealLifeReflectometryFitting.py +++ b/Examples/fit/specular/RealLifeReflectometryFitting.py @@ -99,6 +99,7 @@ def create_simulation(sample, arg_dict, bin_start, bin_end): scan = ba.AlphaScan(wavelength, get_real_data_axis(bin_start, bin_end)) scan.setAngleDistribution(alpha_distr) scan.setFootprintFactor(footprint) + scan.setIntensity(arg_dict["intensity"]) simulation = ba.SpecularSimulation(scan, sample) return simulation @@ -141,7 +142,6 @@ def run_simulation(arg_dict, bin_start=0, bin_end=-1): simulation = create_simulation(sample, arg_dict, bin_start, bin_end) result = simulation.simulate() - result.data_field().scale(arg_dict["intensity"]) return result diff --git a/auto/Wrap/libBornAgainDevice.py b/auto/Wrap/libBornAgainDevice.py index 63f81d62177..6aac3f95b9e 100644 --- a/auto/Wrap/libBornAgainDevice.py +++ b/auto/Wrap/libBornAgainDevice.py @@ -2116,9 +2116,9 @@ class Datafield(object): r"""setVector(Datafield self, vdouble1d_t data_vector)""" return _libBornAgainDevice.Datafield_setVector(self, data_vector) - def scale(self, factor): - r"""scale(Datafield self, double factor)""" - return _libBornAgainDevice.Datafield_scale(self, factor) + def scaled(self, factor): + r"""scaled(Datafield self, double factor) -> Datafield""" + return _libBornAgainDevice.Datafield_scaled(self, factor) def hasSameSizes(self, other): r"""hasSameSizes(Datafield self, Datafield other) -> bool""" diff --git a/auto/Wrap/libBornAgainDevice_wrap.cpp b/auto/Wrap/libBornAgainDevice_wrap.cpp index c846d54d9de..de4d812d0c0 100644 --- a/auto/Wrap/libBornAgainDevice_wrap.cpp +++ b/auto/Wrap/libBornAgainDevice_wrap.cpp @@ -28247,7 +28247,7 @@ fail: } -SWIGINTERN PyObject *_wrap_Datafield_scale(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_Datafield_scaled(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Datafield *arg1 = (Datafield *) 0 ; double arg2 ; @@ -28256,20 +28256,21 @@ SWIGINTERN PyObject *_wrap_Datafield_scale(PyObject *self, PyObject *args) { double val2 ; int ecode2 = 0 ; PyObject *swig_obj[2] ; + SwigValueWrapper< Datafield > result; - if (!SWIG_Python_UnpackTuple(args, "Datafield_scale", 2, 2, swig_obj)) SWIG_fail; + if (!SWIG_Python_UnpackTuple(args, "Datafield_scaled", 2, 2, swig_obj)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Datafield, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Datafield_scale" "', argument " "1"" of type '" "Datafield *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Datafield_scaled" "', argument " "1"" of type '" "Datafield const *""'"); } arg1 = reinterpret_cast< Datafield * >(argp1); ecode2 = SWIG_AsVal_double(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Datafield_scale" "', argument " "2"" of type '" "double""'"); + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Datafield_scaled" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); - (arg1)->scale(arg2); - resultobj = SWIG_Py_Void(); + result = ((Datafield const *)arg1)->scaled(arg2); + resultobj = SWIG_NewPointerObj((new Datafield(result)), SWIGTYPE_p_Datafield, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; @@ -38382,7 +38383,7 @@ static PyMethodDef SwigMethods[] = { { "Datafield_minVal", _wrap_Datafield_minVal, METH_O, "Datafield_minVal(Datafield self) -> double"}, { "Datafield_setAllTo", _wrap_Datafield_setAllTo, METH_VARARGS, "Datafield_setAllTo(Datafield self, double const & value)"}, { "Datafield_setVector", _wrap_Datafield_setVector, METH_VARARGS, "Datafield_setVector(Datafield self, vdouble1d_t data_vector)"}, - { "Datafield_scale", _wrap_Datafield_scale, METH_VARARGS, "Datafield_scale(Datafield self, double factor)"}, + { "Datafield_scaled", _wrap_Datafield_scaled, METH_VARARGS, "Datafield_scaled(Datafield self, double factor) -> Datafield"}, { "Datafield_hasSameSizes", _wrap_Datafield_hasSameSizes, METH_VARARGS, "Datafield_hasSameSizes(Datafield self, Datafield other) -> bool"}, { "Datafield_hasSameShape", _wrap_Datafield_hasSameShape, METH_VARARGS, "Datafield_hasSameShape(Datafield self, Datafield other) -> bool"}, { "Datafield_crop", _wrap_Datafield_crop, METH_VARARGS, "\n" -- GitLab