From a63ade8b65ac9591f4cca79bddb6c060e28cc2dd Mon Sep 17 00:00:00 2001 From: Joachim Wuttke Date: Fri, 10 Jun 2022 11:58:09 +0200 Subject: [PATCH 01/13] require current versions of libheinz and formfactor --- cmake/BornAgain/Dependences.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/BornAgain/Dependences.cmake b/cmake/BornAgain/Dependences.cmake index 4ce84e16b8..207667f3b8 100644 --- a/cmake/BornAgain/Dependences.cmake +++ b/cmake/BornAgain/Dependences.cmake @@ -4,11 +4,11 @@ if(WIN32) set(CMAKE_FIND_LIBRARY_SUFFIXES .dll.a .lib) endif() -find_package(LibHeinz REQUIRED CONFIG) +find_package(LibHeinz 0.1.3 REQUIRED CONFIG) message(STATUS "LibHeinz: found=${LibHeinz_FOUND}, include_dirs=${LibHeinz_INCLUDE_DIR}, " "version=${LibHeinz_VERSION}") -find_package(formfactor REQUIRED CONFIG) +find_package(formfactor 0.1 REQUIRED CONFIG) # absolute path is needed for deployment in Python wheel get_target_property(formfactor_LIBRARIES formfactor IMPORTED_LOCATION_RELEASE) if(NOT formfactor_LIBRARIES) -- GitLab From 94b8d5f0d5784f3ca0bdf31b859f3f98fd01d62d Mon Sep 17 00:00:00 2001 From: Joachim Wuttke Date: Fri, 10 Jun 2022 12:04:25 +0200 Subject: [PATCH 02/13] CMake: uniformly no redundant, unchecked argument to endif etc --- App/CMakeLists.txt | 4 ++-- CMakeLists.txt | 4 ++-- GUI/CMakeLists.txt | 4 ++-- cmake/BornAgain/Config.cmake | 2 +- cmake/BornAgain/Directories.cmake | 2 +- cmake/BornAgain/MakeLib.cmake | 4 ++-- cmake/BornAgain/PackDebian.cmake | 4 ++-- cmake/BornAgain/PythonDocs.cmake | 2 +- cmake/BornAgain/SwigLib.cmake | 2 +- cmake/configurables/FixPack.cmake.in | 2 +- cmake/multipython/FindCustomPython3.cmake | 4 ++-- cmake/multipython/MakePythonWheel.cmake | 6 +++--- cmake/multipython/PyDependences.cmake | 8 ++++---- 13 files changed, 24 insertions(+), 24 deletions(-) diff --git a/App/CMakeLists.txt b/App/CMakeLists.txt index a1694c1a20..bb5e3383da 100644 --- a/App/CMakeLists.txt +++ b/App/CMakeLists.txt @@ -67,7 +67,7 @@ if(LINUX) # see set(link_flags "-Wl,--disable-new-dtags,-rpath,\$ORIGIN:\$ORIGIN/../lib") set_target_properties(${executable_name} PROPERTIES LINK_FLAGS ${link_flags}) -endif(LINUX) +endif() if(APPLE) set(MACOSX_BUNDLE_IDENTIFIER org.bornagainproject.BornAgain) @@ -153,7 +153,7 @@ if(LINUX) configure_file( ${CMAKE_SOURCE_DIR}/devtools/deploy/linux/adjust_pkg_linux.sh.in ${BUILD_VAR_DIR}/adjust_pkg_linux.sh @ONLY) -endif(LINUX) +endif() # execute package-fixing script before CPack builds the final package file configure_file( diff --git a/CMakeLists.txt b/CMakeLists.txt index 3016cafbd2..de65ec9c02 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,7 +55,7 @@ set(BA_PY_PLATFORM "" CACHE INTERNAL "Path to Python platform to build a Python string(STRIP "${BA_PY_PLATFORM}" BA_PY_PLATFORM) if(BA_PY_PLATFORM) set(BA_PY_PACKAGE ON) -endif(BA_PY_PLATFORM) +endif() option(BUILD_DEBIAN "Build a debian package" OFF) option(BA_APPLE_BUNDLE "Create a Mac OS X bundle" OFF) @@ -148,7 +148,7 @@ include(BornAgain/Dependences) if(WIN32) include(BornAgain/InstallDll) -endif(WIN32) +endif() # Python if(BORNAGAIN_PYTHON OR BA_PY_PACKAGE) diff --git a/GUI/CMakeLists.txt b/GUI/CMakeLists.txt index 151002856f..7827fe0bd1 100644 --- a/GUI/CMakeLists.txt +++ b/GUI/CMakeLists.txt @@ -106,9 +106,9 @@ if(WIN32) if(EXISTS ${QT_VISTA_STYLE}) install(FILES ${QT_VISTA_STYLE} DESTINATION bin/styles COMPONENT Libraries) - else(EXISTS ${QT_VISTA_STYLE}) + else() message(AUTHOR_WARNING File ${QT_VISTA_STYLE} not found.) - endif(EXISTS ${QT_VISTA_STYLE}) + endif() unset(QT_VISTA_STYLE) endif() diff --git a/cmake/BornAgain/Config.cmake b/cmake/BornAgain/Config.cmake index 37da47fe49..761f996e77 100644 --- a/cmake/BornAgain/Config.cmake +++ b/cmake/BornAgain/Config.cmake @@ -35,4 +35,4 @@ if(BUILD_DEBIAN) configure_file(${CONFIGURABLES_DIR}/postinst.in ${BUILD_VAR_DIR}/postinst @ONLY) configure_file(${CONFIGURABLES_DIR}/prerm.in ${BUILD_VAR_DIR}/prerm @ONLY) set(CMAKE_INSTALL_RPATH \$ORIGIN/../;\$ORIGIN/../../lib/${destination_suffix}) -endif(BUILD_DEBIAN) +endif() diff --git a/cmake/BornAgain/Directories.cmake b/cmake/BornAgain/Directories.cmake index 7cdeab1c8c..65e1fe0018 100644 --- a/cmake/BornAgain/Directories.cmake +++ b/cmake/BornAgain/Directories.cmake @@ -87,7 +87,7 @@ set(destination_lib ${destination_root}lib/) if(WIN32) # on Window, the libraries must be in the same folder as the executable set(destination_lib ${destination_bin}) -endif(WIN32) +endif() set(destination_include ${destination_root}include/${destination_suffix}/) set(destination_share ${destination_root}share/${destination_suffix}/) set(destination_examples ${destination_share}Examples/) diff --git a/cmake/BornAgain/MakeLib.cmake b/cmake/BornAgain/MakeLib.cmake index 798ac858d1..8c5c215ce3 100644 --- a/cmake/BornAgain/MakeLib.cmake +++ b/cmake/BornAgain/MakeLib.cmake @@ -50,14 +50,14 @@ function(MakeLib name lib tmpdir withPython) # see set(link_flags "-Wl,--disable-new-dtags,-rpath,\$ORIGIN:\$ORIGIN/extra") set_target_properties(${lib} PROPERTIES LINK_FLAGS ${link_flags}) - endif(LINUX) + endif() if(withPython) SwigLib(${name} ${lib} ${tmpdir}) if(BA_PY_PACKAGE) # add the BornAgain library to the Python wheel add_library_to_wheel(${lib}) - endif(BA_PY_PACKAGE) + endif() endif() install(TARGETS ${lib} diff --git a/cmake/BornAgain/PackDebian.cmake b/cmake/BornAgain/PackDebian.cmake index 4c2904ea05..83d2272f07 100644 --- a/cmake/BornAgain/PackDebian.cmake +++ b/cmake/BornAgain/PackDebian.cmake @@ -12,12 +12,12 @@ if(NOT CPACK_DEBIAN_PACKAGE_ARCHITECTURE) if(NOT DPKG_CMD) message(STATUS "Can not find dpkg in your path, default to i386.") set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE i386) - endif(NOT DPKG_CMD) + endif() execute_process(COMMAND ${DPKG_CMD} --print-architecture OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE ) -endif(NOT CPACK_DEBIAN_PACKAGE_ARCHITECTURE) +endif() set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) set(CPACK_DEBIAN_PACKAGE_PRIORITY optional) diff --git a/cmake/BornAgain/PythonDocs.cmake b/cmake/BornAgain/PythonDocs.cmake index 1cb5453308..409d2db7cd 100644 --- a/cmake/BornAgain/PythonDocs.cmake +++ b/cmake/BornAgain/PythonDocs.cmake @@ -18,5 +18,5 @@ function(GeneratePythonDocs PYDOC_TARGET SWIG_DIR TMP_DIR) DEPENDS ${TMP_DIR}/xml/index.xml ) - endif(CONFIGURE_PYTHON_DOCS) + endif() endfunction() diff --git a/cmake/BornAgain/SwigLib.cmake b/cmake/BornAgain/SwigLib.cmake index f505bc1c29..efe6748f0a 100644 --- a/cmake/BornAgain/SwigLib.cmake +++ b/cmake/BornAgain/SwigLib.cmake @@ -57,7 +57,7 @@ function(SwigLib name lib tmpdir) set(SWIG_FLAGS_STR "${SWIG_FLAGS_STR}" CACHE INTERNAL "") set(SWIG_DIR "${SWIG_DIR}" CACHE INTERNAL "") - endif(CONFIGURE_BINDINGS) + endif() add_custom_target( ${lib}_python diff --git a/cmake/configurables/FixPack.cmake.in b/cmake/configurables/FixPack.cmake.in index 6ed0eae0fb..5135157281 100644 --- a/cmake/configurables/FixPack.cmake.in +++ b/cmake/configurables/FixPack.cmake.in @@ -17,7 +17,7 @@ function(addPyWheel dst) file(GLOB wheel "@BA_PY_PACKAGE_WHEEL_DIR@/*.whl" ) message("${CMAKE_CURRENT_LIST}: Python wheel '${wheel}' -> '${dst}'") file(INSTALL "${wheel}" DESTINATION "${dst}") - endif(BA_PY_PACKAGE) + endif() endfunction(addPyWheel) if(LINUX) diff --git a/cmake/multipython/FindCustomPython3.cmake b/cmake/multipython/FindCustomPython3.cmake index a440733d01..f6cdbaf088 100644 --- a/cmake/multipython/FindCustomPython3.cmake +++ b/cmake/multipython/FindCustomPython3.cmake @@ -80,7 +80,7 @@ function(find_custom_python3) endif() list(APPEND _exportPars Python3_LIBRARY_DLL) - endif(WIN32) + endif() if(Python3_FOUND) foreach(pyvar IN LISTS _exportPars) @@ -102,7 +102,7 @@ function(find_custom_python3) message(STATUS " Python3_LIBRARY_RELEASE: ${Python3_LIBRARY_RELEASE}") if(WIN32) message(STATUS " Python3_LIBRARY_DLL: ${Python3_LIBRARY_DLL}") - endif(WIN32) + endif() message(STATUS " Python3_LIBRARY_DIRS: ${Python3_LIBRARY_DIRS}") message(STATUS " Python3_NumPy_VERSION: ${Python3_NumPy_VERSION}") message(STATUS " Python3_NumPy_INCLUDE_DIRS: ${Python3_NumPy_INCLUDE_DIRS}") diff --git a/cmake/multipython/MakePythonWheel.cmake b/cmake/multipython/MakePythonWheel.cmake index 9264515b87..c7d78ad623 100644 --- a/cmake/multipython/MakePythonWheel.cmake +++ b/cmake/multipython/MakePythonWheel.cmake @@ -30,7 +30,7 @@ function(make_python_wheel) if(BA_MPI) # TODO: Add MPI libs `MPI_CXX_LIBRARIES`? endif() - endif(WIN32) + endif() # make the Python wheel if(APPLE) @@ -130,7 +130,7 @@ function(make_python_wheel) BAPyWheel_init_files BAPyWheel_extra_libs ) -endfunction(make_python_wheel) +endfunction() function(add_library_to_wheel lib) @@ -150,4 +150,4 @@ function(add_library_to_wheel lib) COMMENT "Add library ${lib} to the Python wheel..." ) -endfunction(add_library_to_wheel) +endfunction() diff --git a/cmake/multipython/PyDependences.cmake b/cmake/multipython/PyDependences.cmake index 21ecb80b74..c4303511ae 100644 --- a/cmake/multipython/PyDependences.cmake +++ b/cmake/multipython/PyDependences.cmake @@ -5,10 +5,10 @@ include("multipython/FindCustomPython3") if(BA_PY_PLATFORM) message(STATUS "PyDependences: Custom Python platform path = '${BA_PY_PLATFORM}'") find_custom_python3(PATHS "${BA_PY_PLATFORM}" VERBOSE) -else(BA_PY_PLATFORM) +else() message(STATUS "PyDependences: Using default Python platform") find_custom_python3(DEFAULT_PATH VERBOSE) -endif(BA_PY_PLATFORM) +endif() set(pyversion ${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}) set(pydst "${destination_root}python/${pyversion}") @@ -47,7 +47,7 @@ if(CONFIGURE_BINDINGS) if(CONFIGURE_PYTHON_DOCS) find_package(Doxygen REQUIRED) endif() -endif(CONFIGURE_BINDINGS) +endif() if(BA_PY_PACKAGE) # define a target to make a Python wheel @@ -58,4 +58,4 @@ if(BA_PY_PACKAGE) Py3_INCLUDE_DIRS "${Python3_INCLUDE_DIRS}" Py3_LIBRARY_DIRS "${Python3_LIBRARY_DIRS}" ) -endif(BA_PY_PACKAGE) +endif() -- GitLab From cb8c8eefc1b251835a63092d81d7801326e10a1b Mon Sep 17 00:00:00 2001 From: Joachim Wuttke Date: Sun, 12 Jun 2022 15:12:56 +0200 Subject: [PATCH 03/13] forward declaration SimulationAreaIterator --- Device/Detector/IDetector.cpp | 1 + Device/Detector/IDetector.h | 4 +- Device/Detector/SimulationAreaIterator.cpp | 1 + GUI/Model/Model/JobFunctions.cpp | 1 + Sim/Fitting/SimDataPair.cpp | 1 + Tests/Unit/Device/SimulationAreaTest.cpp | 1 + Tests/Unit/Device/SphericalDetectorTest.cpp | 1 + auto/Wrap/doxygenDevice.i | 12 +++--- auto/Wrap/libBornAgainDevice.py | 4 +- auto/Wrap/libBornAgainDevice_wrap.cpp | 44 ++++++++++----------- 10 files changed, 38 insertions(+), 32 deletions(-) diff --git a/Device/Detector/IDetector.cpp b/Device/Detector/IDetector.cpp index 090cc5e067..9e44f57a88 100644 --- a/Device/Detector/IDetector.cpp +++ b/Device/Detector/IDetector.cpp @@ -20,6 +20,7 @@ #include "Base/Util/Assert.h" #include "Device/Beam/Beam.h" #include "Device/Detector/DetectorContext.h" +#include "Device/Detector/SimulationAreaIterator.h" #include "Device/Mask/DetectorMask.h" #include "Device/Mask/InfinitePlane.h" #include "Device/Resolution/ConvolutionDetectorResolution.h" diff --git a/Device/Detector/IDetector.h b/Device/Detector/IDetector.h index 15ce1f8fe4..b1b8b4df9f 100644 --- a/Device/Detector/IDetector.h +++ b/Device/Detector/IDetector.h @@ -18,12 +18,12 @@ #include "Base/Types/ICloneable.h" #include "Base/Types/OwningVector.h" #include "Device/Coord/Tags.h" // enum Coords -#include "Device/Detector/SimulationAreaIterator.h" #include "Device/Pol/PolFilter.h" #include class Beam; class CoordSystem2D; +class Datafield; class DetectorContext; class DetectorMask; class DiffuseElement; @@ -34,8 +34,8 @@ class IDetectorResolution; class IPixel; class IResolutionFunction2D; class IShape2D; +class SimulationAreaIterator; -class Datafield; //! Abstract detector interface. //! diff --git a/Device/Detector/SimulationAreaIterator.cpp b/Device/Detector/SimulationAreaIterator.cpp index 2501df2d25..3a9edbdf25 100644 --- a/Device/Detector/SimulationAreaIterator.cpp +++ b/Device/Detector/SimulationAreaIterator.cpp @@ -12,6 +12,7 @@ // // ************************************************************************************************ +#include "Device/Detector/SimulationAreaIterator.h" #include "Device/Detector/IDetector.h" #include "Device/Mask/DetectorMask.h" diff --git a/GUI/Model/Model/JobFunctions.cpp b/GUI/Model/Model/JobFunctions.cpp index 93360a6c96..fde7b61c05 100644 --- a/GUI/Model/Model/JobFunctions.cpp +++ b/GUI/Model/Model/JobFunctions.cpp @@ -15,6 +15,7 @@ #include "GUI/Model/Model/JobFunctions.h" #include "Base/Util/Assert.h" #include "Device/Detector/IDetector.h" +#include "Device/Detector/SimulationAreaIterator.h" #include "GUI/Model/Data/Data1DViewItem.h" #include "GUI/Model/Data/DataPropertyContainer.h" #include "GUI/Model/Data/IntensityDataItem.h" diff --git a/Sim/Fitting/SimDataPair.cpp b/Sim/Fitting/SimDataPair.cpp index d79a1f1894..41c5712a5d 100644 --- a/Sim/Fitting/SimDataPair.cpp +++ b/Sim/Fitting/SimDataPair.cpp @@ -22,6 +22,7 @@ #include "Device/Data/DataUtils.h" #include "Device/Data/Datafield.h" #include "Device/Detector/IDetector.h" +#include "Device/Detector/SimulationAreaIterator.h" #include "Sim/Scan/ISpecularScan.h" #include "Sim/Simulation/ISimulation2D.h" #include diff --git a/Tests/Unit/Device/SimulationAreaTest.cpp b/Tests/Unit/Device/SimulationAreaTest.cpp index 7c7aa9dd65..2a03a7bf68 100644 --- a/Tests/Unit/Device/SimulationAreaTest.cpp +++ b/Tests/Unit/Device/SimulationAreaTest.cpp @@ -1,3 +1,4 @@ +#include "Device/Detector/SimulationAreaIterator.h" #include "Device/Detector/SphericalDetector.h" #include "Device/Mask/Rectangle.h" #include "Tests/GTestWrapper/google_test.h" diff --git a/Tests/Unit/Device/SphericalDetectorTest.cpp b/Tests/Unit/Device/SphericalDetectorTest.cpp index c03b1b1258..32cfcaf6a6 100644 --- a/Tests/Unit/Device/SphericalDetectorTest.cpp +++ b/Tests/Unit/Device/SphericalDetectorTest.cpp @@ -2,6 +2,7 @@ #include "Base/Axis/FixedBinAxis.h" #include "Base/Const/Units.h" #include "Device/Beam/Beam.h" +#include "Device/Detector/SimulationAreaIterator.h" #include "Device/Mask/DetectorMask.h" #include "Device/Mask/Polygon.h" #include "Device/Mask/Rectangle.h" diff --git a/auto/Wrap/doxygenDevice.i b/auto/Wrap/doxygenDevice.i index b0c174af38..f3af490c53 100644 --- a/auto/Wrap/doxygenDevice.i +++ b/auto/Wrap/doxygenDevice.i @@ -406,12 +406,12 @@ Returns data as Python numpy array. %feature("docstring") Datafield::normalizedToMaximum "Datafield * Datafield::normalizedToMaximum() const "; -%feature("docstring") Datafield::xProjection "Datafield * Datafield::xProjection() +%feature("docstring") Datafield::xProjection "Datafield * Datafield::xProjection() const Project a 2D histogram into 1D histogram along X. The projection is made from all bins along y-axis. "; -%feature("docstring") Datafield::xProjection "Datafield * Datafield::xProjection(double yvalue) +%feature("docstring") Datafield::xProjection "Datafield * Datafield::xProjection(double yvalue) const Project a 2D histogram into 1D histogram along X. The projection is made from the y-bin closest to given ordinate yvalue. @@ -422,7 +422,7 @@ yvalue: the value on y-axis at which projection is taken "; -%feature("docstring") Datafield::xProjection "Datafield * Datafield::xProjection(double ylow, double yup) +%feature("docstring") Datafield::xProjection "Datafield * Datafield::xProjection(double ylow, double yup) const Project a 2D histogram into 1D histogram along X. The projection is made from all y-bins corresponding to ordinate between ylow and yup. @@ -436,12 +436,12 @@ yup: upper edje on y-axis "; -%feature("docstring") Datafield::yProjection "Datafield * Datafield::yProjection() +%feature("docstring") Datafield::yProjection "Datafield * Datafield::yProjection() const Project a 2D histogram into 1D histogram along Y. The projection is made from all bins along x-axis. "; -%feature("docstring") Datafield::yProjection "Datafield * Datafield::yProjection(double xvalue) +%feature("docstring") Datafield::yProjection "Datafield * Datafield::yProjection(double xvalue) const Project a 2D histogram into 1D histogram along Y. The projection is made from the x-bin closest to given abscissa xvalue. @@ -452,7 +452,7 @@ xvalue: the value on x-axis at which projection is taken "; -%feature("docstring") Datafield::yProjection "Datafield * Datafield::yProjection(double xlow, double xup) +%feature("docstring") Datafield::yProjection "Datafield * Datafield::yProjection(double xlow, double xup) const Project a 2D histogram into 1D histogram along Y. The projection is made from all x-bins corresponding to abscissa between xlow and xup. diff --git a/auto/Wrap/libBornAgainDevice.py b/auto/Wrap/libBornAgainDevice.py index 2a2f725309..1a7a0ae11a 100644 --- a/auto/Wrap/libBornAgainDevice.py +++ b/auto/Wrap/libBornAgainDevice.py @@ -2244,7 +2244,7 @@ class Datafield(object): xProjection(Datafield self) -> Datafield xProjection(Datafield self, double yvalue) -> Datafield xProjection(Datafield self, double ylow, double yup) -> Datafield - Datafield * Datafield::xProjection(double ylow, double yup) + Datafield * Datafield::xProjection(double ylow, double yup) const Project a 2D histogram into 1D histogram along X. The projection is made from all y-bins corresponding to ordinate between ylow and yup. @@ -2265,7 +2265,7 @@ class Datafield(object): yProjection(Datafield self) -> Datafield yProjection(Datafield self, double xvalue) -> Datafield yProjection(Datafield self, double xlow, double xup) -> Datafield - Datafield * Datafield::yProjection(double xlow, double xup) + Datafield * Datafield::yProjection(double xlow, double xup) const Project a 2D histogram into 1D histogram along Y. The projection is made from all x-bins corresponding to abscissa between xlow and xup. diff --git a/auto/Wrap/libBornAgainDevice_wrap.cpp b/auto/Wrap/libBornAgainDevice_wrap.cpp index 71ff9969ec..810f4b1fef 100644 --- a/auto/Wrap/libBornAgainDevice_wrap.cpp +++ b/auto/Wrap/libBornAgainDevice_wrap.cpp @@ -27870,10 +27870,10 @@ SWIGINTERN PyObject *_wrap_Datafield_xProjection__SWIG_0(PyObject *SWIGUNUSEDPAR if ((nobjs < 1) || (nobjs > 1)) 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_xProjection" "', argument " "1"" of type '" "Datafield *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Datafield_xProjection" "', argument " "1"" of type '" "Datafield const *""'"); } arg1 = reinterpret_cast< Datafield * >(argp1); - result = (Datafield *)(arg1)->xProjection(); + result = (Datafield *)((Datafield const *)arg1)->xProjection(); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Datafield, 0 | 0 ); return resultobj; fail: @@ -27894,7 +27894,7 @@ SWIGINTERN PyObject *_wrap_Datafield_xProjection__SWIG_1(PyObject *SWIGUNUSEDPAR if ((nobjs < 2) || (nobjs > 2)) 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_xProjection" "', argument " "1"" of type '" "Datafield *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Datafield_xProjection" "', argument " "1"" of type '" "Datafield const *""'"); } arg1 = reinterpret_cast< Datafield * >(argp1); ecode2 = SWIG_AsVal_double(swig_obj[1], &val2); @@ -27902,7 +27902,7 @@ SWIGINTERN PyObject *_wrap_Datafield_xProjection__SWIG_1(PyObject *SWIGUNUSEDPAR SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Datafield_xProjection" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); - result = (Datafield *)(arg1)->xProjection(arg2); + result = (Datafield *)((Datafield const *)arg1)->xProjection(arg2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Datafield, 0 | 0 ); return resultobj; fail: @@ -27926,7 +27926,7 @@ SWIGINTERN PyObject *_wrap_Datafield_xProjection__SWIG_2(PyObject *SWIGUNUSEDPAR if ((nobjs < 3) || (nobjs > 3)) 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_xProjection" "', argument " "1"" of type '" "Datafield *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Datafield_xProjection" "', argument " "1"" of type '" "Datafield const *""'"); } arg1 = reinterpret_cast< Datafield * >(argp1); ecode2 = SWIG_AsVal_double(swig_obj[1], &val2); @@ -27939,7 +27939,7 @@ SWIGINTERN PyObject *_wrap_Datafield_xProjection__SWIG_2(PyObject *SWIGUNUSEDPAR SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Datafield_xProjection" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); - result = (Datafield *)(arg1)->xProjection(arg2,arg3); + result = (Datafield *)((Datafield const *)arg1)->xProjection(arg2,arg3); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Datafield, 0 | 0 ); return resultobj; fail: @@ -28004,9 +28004,9 @@ SWIGINTERN PyObject *_wrap_Datafield_xProjection(PyObject *self, PyObject *args) fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'Datafield_xProjection'.\n" " Possible C/C++ prototypes are:\n" - " Datafield::xProjection()\n" - " Datafield::xProjection(double)\n" - " Datafield::xProjection(double,double)\n"); + " Datafield::xProjection() const\n" + " Datafield::xProjection(double) const\n" + " Datafield::xProjection(double,double) const\n"); return 0; } @@ -28021,10 +28021,10 @@ SWIGINTERN PyObject *_wrap_Datafield_yProjection__SWIG_0(PyObject *SWIGUNUSEDPAR if ((nobjs < 1) || (nobjs > 1)) 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_yProjection" "', argument " "1"" of type '" "Datafield *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Datafield_yProjection" "', argument " "1"" of type '" "Datafield const *""'"); } arg1 = reinterpret_cast< Datafield * >(argp1); - result = (Datafield *)(arg1)->yProjection(); + result = (Datafield *)((Datafield const *)arg1)->yProjection(); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Datafield, 0 | 0 ); return resultobj; fail: @@ -28045,7 +28045,7 @@ SWIGINTERN PyObject *_wrap_Datafield_yProjection__SWIG_1(PyObject *SWIGUNUSEDPAR if ((nobjs < 2) || (nobjs > 2)) 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_yProjection" "', argument " "1"" of type '" "Datafield *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Datafield_yProjection" "', argument " "1"" of type '" "Datafield const *""'"); } arg1 = reinterpret_cast< Datafield * >(argp1); ecode2 = SWIG_AsVal_double(swig_obj[1], &val2); @@ -28053,7 +28053,7 @@ SWIGINTERN PyObject *_wrap_Datafield_yProjection__SWIG_1(PyObject *SWIGUNUSEDPAR SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Datafield_yProjection" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); - result = (Datafield *)(arg1)->yProjection(arg2); + result = (Datafield *)((Datafield const *)arg1)->yProjection(arg2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Datafield, 0 | 0 ); return resultobj; fail: @@ -28077,7 +28077,7 @@ SWIGINTERN PyObject *_wrap_Datafield_yProjection__SWIG_2(PyObject *SWIGUNUSEDPAR if ((nobjs < 3) || (nobjs > 3)) 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_yProjection" "', argument " "1"" of type '" "Datafield *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Datafield_yProjection" "', argument " "1"" of type '" "Datafield const *""'"); } arg1 = reinterpret_cast< Datafield * >(argp1); ecode2 = SWIG_AsVal_double(swig_obj[1], &val2); @@ -28090,7 +28090,7 @@ SWIGINTERN PyObject *_wrap_Datafield_yProjection__SWIG_2(PyObject *SWIGUNUSEDPAR SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Datafield_yProjection" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); - result = (Datafield *)(arg1)->yProjection(arg2,arg3); + result = (Datafield *)((Datafield const *)arg1)->yProjection(arg2,arg3); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Datafield, 0 | 0 ); return resultobj; fail: @@ -28155,9 +28155,9 @@ SWIGINTERN PyObject *_wrap_Datafield_yProjection(PyObject *self, PyObject *args) fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'Datafield_yProjection'.\n" " Possible C/C++ prototypes are:\n" - " Datafield::yProjection()\n" - " Datafield::yProjection(double)\n" - " Datafield::yProjection(double,double)\n"); + " Datafield::yProjection() const\n" + " Datafield::yProjection(double) const\n" + " Datafield::yProjection(double,double) const\n"); return 0; } @@ -33462,7 +33462,7 @@ fail: SWIGINTERN PyObject *_wrap_IDetector_iterateOverRegionOfInterest(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IDetector *arg1 = (IDetector *) 0 ; - std::function< void (IDetector::const_iterator) > arg2 ; + SwigValueWrapper< std::function< void (SimulationAreaIterator const &) > > arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; @@ -33499,7 +33499,7 @@ fail: SWIGINTERN PyObject *_wrap_IDetector_iterateOverNonMaskedPoints(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IDetector *arg1 = (IDetector *) 0 ; - std::function< void (IDetector::const_iterator) > arg2 ; + SwigValueWrapper< std::function< void (SimulationAreaIterator const &) > > arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; @@ -38197,7 +38197,7 @@ static PyMethodDef SwigMethods[] = { "Datafield_xProjection(Datafield self) -> Datafield\n" "Datafield_xProjection(Datafield self, double yvalue) -> Datafield\n" "Datafield_xProjection(Datafield self, double ylow, double yup) -> Datafield\n" - "Datafield * Datafield::xProjection(double ylow, double yup)\n" + "Datafield * Datafield::xProjection(double ylow, double yup) const\n" "\n" "Project a 2D histogram into 1D histogram along X. The projection is made from all y-bins corresponding to ordinate between ylow and yup.\n" "\n" @@ -38215,7 +38215,7 @@ static PyMethodDef SwigMethods[] = { "Datafield_yProjection(Datafield self) -> Datafield\n" "Datafield_yProjection(Datafield self, double xvalue) -> Datafield\n" "Datafield_yProjection(Datafield self, double xlow, double xup) -> Datafield\n" - "Datafield * Datafield::yProjection(double xlow, double xup)\n" + "Datafield * Datafield::yProjection(double xlow, double xup) const\n" "\n" "Project a 2D histogram into 1D histogram along Y. The projection is made from all x-bins corresponding to abscissa between xlow and xup.\n" "\n" -- GitLab From 1981aed3518018eee5504d057be6d75705aa22b4 Mon Sep 17 00:00:00 2001 From: Joachim Wuttke Date: Sun, 12 Jun 2022 15:18:55 +0200 Subject: [PATCH 04/13] forward declaration --- Device/IO/IOFactory.cpp | 1 + Device/IO/ReadWriteNicos.cpp | 1 + Device/IO/ReadWriteNicos.h | 4 +++- Device/IO/ReadWriteTiff.cpp | 1 + Device/IO/ReadWriteTiff.h | 3 ++- Tests/Unit/Device/IOReaderWriterTest.cpp | 1 + 6 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Device/IO/IOFactory.cpp b/Device/IO/IOFactory.cpp index ca810b805f..7e918664b5 100644 --- a/Device/IO/IOFactory.cpp +++ b/Device/IO/IOFactory.cpp @@ -15,6 +15,7 @@ #include "Device/IO/IOFactory.h" #include "Base/Util/Assert.h" #include "Base/Util/FileSystemUtils.h" +#include "Device/Data/Datafield.h" #include "Device/Histo/DiffUtil.h" #include "Device/Histo/SimulationResult.h" #include "Device/IO/DataFormatUtils.h" diff --git a/Device/IO/ReadWriteNicos.cpp b/Device/IO/ReadWriteNicos.cpp index 64825d34f4..ab078afb37 100644 --- a/Device/IO/ReadWriteNicos.cpp +++ b/Device/IO/ReadWriteNicos.cpp @@ -16,6 +16,7 @@ #include "Base/Axis/FixedBinAxis.h" #include "Base/Axis/Frame.h" #include "Base/Util/StringUtils.h" +#include "Device/Data/Datafield.h" #include namespace { diff --git a/Device/IO/ReadWriteNicos.h b/Device/IO/ReadWriteNicos.h index af8a6823a7..917ecd24c2 100644 --- a/Device/IO/ReadWriteNicos.h +++ b/Device/IO/ReadWriteNicos.h @@ -15,7 +15,9 @@ #ifndef BORNAGAIN_DEVICE_IO_READWRITENICOS_H #define BORNAGAIN_DEVICE_IO_READWRITENICOS_H -#include "Device/Data/Datafield.h" +#include + +class Datafield; //! Read/write SANSDRaw files written by Nicos (*.001). diff --git a/Device/IO/ReadWriteTiff.cpp b/Device/IO/ReadWriteTiff.cpp index 0cbd30c387..fe687bd8a4 100644 --- a/Device/IO/ReadWriteTiff.cpp +++ b/Device/IO/ReadWriteTiff.cpp @@ -19,6 +19,7 @@ #include "Base/Axis/Frame.h" #include "Base/Util/Assert.h" #include "Base/Util/SysUtils.h" +#include "Device/Data/Datafield.h" #include // memcpy #include #include diff --git a/Device/IO/ReadWriteTiff.h b/Device/IO/ReadWriteTiff.h index 1eac5118e3..d99064b04c 100644 --- a/Device/IO/ReadWriteTiff.h +++ b/Device/IO/ReadWriteTiff.h @@ -22,11 +22,12 @@ #ifdef BA_TIFF_SUPPORT -#include "Device/Data/Datafield.h" #include #include #include +class Datafield; + //! Reads/write tiff files. class ReadWriteTiff { diff --git a/Tests/Unit/Device/IOReaderWriterTest.cpp b/Tests/Unit/Device/IOReaderWriterTest.cpp index b687167814..1920adeeac 100644 --- a/Tests/Unit/Device/IOReaderWriterTest.cpp +++ b/Tests/Unit/Device/IOReaderWriterTest.cpp @@ -1,4 +1,5 @@ #include "Base/Axis/FixedBinAxis.h" +#include "Device/Data/Datafield.h" #include "Device/IO/ReadWriteINT.h" #include "Device/IO/ReadWriteNumpyTXT.h" #include "Device/IO/ReadWriteTiff.h" -- GitLab From a672350e8e773d97989c5883edf288ff30626b95 Mon Sep 17 00:00:00 2001 From: Joachim Wuttke Date: Sun, 12 Jun 2022 15:23:54 +0200 Subject: [PATCH 05/13] forward declaration --- Device/Data/ArrayUtils.cpp | 1 + Device/Data/ArrayUtils.h | 3 ++- Device/IO/ReadWriteINT.cpp | 1 + Device/IO/ReadWriteNumpyTXT.cpp | 1 + Sim/Fitting/FitObjective.cpp | 1 + Tests/Functional/Fitting/FitTests.cpp | 1 + Tests/Functional/Fitting/SimfitTestPlan.cpp | 1 + Tests/Unit/Device/ArrayUtilsTest.cpp | 1 + 8 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Device/Data/ArrayUtils.cpp b/Device/Data/ArrayUtils.cpp index 12b3a4a196..a77e4e019f 100644 --- a/Device/Data/ArrayUtils.cpp +++ b/Device/Data/ArrayUtils.cpp @@ -13,6 +13,7 @@ // ************************************************************************************************ #include "Device/Data/ArrayUtils.h" +#include "Device/Data/Datafield.h" #include "Base/Axis/FixedBinAxis.h" #include "Base/Axis/Frame.h" #include diff --git a/Device/Data/ArrayUtils.h b/Device/Data/ArrayUtils.h index 4ede3e5cf4..fb091a8546 100644 --- a/Device/Data/ArrayUtils.h +++ b/Device/Data/ArrayUtils.h @@ -20,10 +20,11 @@ #ifndef BORNAGAIN_DEVICE_DATA_ARRAYUTILS_H #define BORNAGAIN_DEVICE_DATA_ARRAYUTILS_H -#include "Device/Data/Datafield.h" #include #include +class Datafield; + //! Array utility functions getShape namespace DataUtils::Array { diff --git a/Device/IO/ReadWriteINT.cpp b/Device/IO/ReadWriteINT.cpp index 669f18f5e4..60fd41f693 100644 --- a/Device/IO/ReadWriteINT.cpp +++ b/Device/IO/ReadWriteINT.cpp @@ -17,6 +17,7 @@ #include "Base/Axis/IAxis.h" #include "Base/Util/StringUtils.h" #include "Device/Data/ArrayUtils.h" +#include "Device/Data/Datafield.h" #include "Device/IO/DataFormatUtils.h" #include diff --git a/Device/IO/ReadWriteNumpyTXT.cpp b/Device/IO/ReadWriteNumpyTXT.cpp index 6773154a3e..455a41e92f 100644 --- a/Device/IO/ReadWriteNumpyTXT.cpp +++ b/Device/IO/ReadWriteNumpyTXT.cpp @@ -17,6 +17,7 @@ #include "Base/Axis/IAxis.h" #include "Base/Util/StringUtils.h" #include "Device/Data/ArrayUtils.h" +#include "Device/Data/Datafield.h" #include "Device/IO/DataFormatUtils.h" #include #include diff --git a/Sim/Fitting/FitObjective.cpp b/Sim/Fitting/FitObjective.cpp index 18e8dcf3a3..bc64c5326a 100644 --- a/Sim/Fitting/FitObjective.cpp +++ b/Sim/Fitting/FitObjective.cpp @@ -14,6 +14,7 @@ #include "Sim/Fitting/FitObjective.h" #include "Base/Util/Assert.h" +#include "Device/Data/Datafield.h" #include "Fit/Minimizer/MinimizerResult.h" #include "Sim/Fitting/FitStatus.h" #include "Sim/Fitting/ObjectiveMetric.h" diff --git a/Tests/Functional/Fitting/FitTests.cpp b/Tests/Functional/Fitting/FitTests.cpp index 9d6598a436..0e89f7537e 100644 --- a/Tests/Functional/Fitting/FitTests.cpp +++ b/Tests/Functional/Fitting/FitTests.cpp @@ -15,6 +15,7 @@ #include "Base/Axis/IAxis.h" #include "Base/Const/Units.h" #include "Device/Beam/Beam.h" +#include "Device/Data/Datafield.h" #include "Device/Detector/RectangularDetector.h" #include "Device/Mask/Rectangle.h" #include "Fit/Kernel/Minimizer.h" diff --git a/Tests/Functional/Fitting/SimfitTestPlan.cpp b/Tests/Functional/Fitting/SimfitTestPlan.cpp index 85cd76e6e9..85699612bb 100644 --- a/Tests/Functional/Fitting/SimfitTestPlan.cpp +++ b/Tests/Functional/Fitting/SimfitTestPlan.cpp @@ -15,6 +15,7 @@ #include "Tests/Functional/Fitting/SimfitTestPlan.h" #include "Fit/Kernel/Minimizer.h" +#include "Device/Data/Datafield.h" #include "Sample/Multilayer/MultiLayer.h" #include "Sim/Fitting/FitObjective.h" #include "Sim/Fitting/SimDataPair.h" diff --git a/Tests/Unit/Device/ArrayUtilsTest.cpp b/Tests/Unit/Device/ArrayUtilsTest.cpp index b66e2a794e..da6fe202e2 100644 --- a/Tests/Unit/Device/ArrayUtilsTest.cpp +++ b/Tests/Unit/Device/ArrayUtilsTest.cpp @@ -1,4 +1,5 @@ #include "Device/Data/ArrayUtils.h" +#include "Device/Data/Datafield.h" #include "Base/Axis/FixedBinAxis.h" #include "Tests/GTestWrapper/google_test.h" #include -- GitLab From c9cdb91e56aece8c2946ab0d2eb73c6e84fceb5d Mon Sep 17 00:00:00 2001 From: Joachim Wuttke Date: Sun, 12 Jun 2022 16:56:07 +0200 Subject: [PATCH 06/13] rm unused fct signature --- Param/Distrib/DistributionHandler.h | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Param/Distrib/DistributionHandler.h b/Param/Distrib/DistributionHandler.h index bf384f0115..e6d535eee0 100644 --- a/Param/Distrib/DistributionHandler.h +++ b/Param/Distrib/DistributionHandler.h @@ -31,12 +31,6 @@ public: DistributionHandler(); virtual ~DistributionHandler(); - //! add a sampled parameter distribution - void addParameterDistribution(const std::string& param_name, - const IDistribution1D& distribution, size_t nbr_samples, - double sigma_factor = 0.0, - const RealLimits& limits = RealLimits()); - void addParameterDistribution(const ParameterDistribution& par_distr); //! get the total number of parameter value combinations (product -- GitLab From 7ce3830b8b7a948b328935a4d28f9316471a9c1e Mon Sep 17 00:00:00 2001 From: Joachim Wuttke Date: Sun, 12 Jun 2022 17:12:47 +0200 Subject: [PATCH 07/13] forward declare --- Param/Distrib/DistributionHandler.cpp | 1 + Param/Distrib/DistributionHandler.h | 4 +++- Sim/Simulation/ISimulation.h | 1 + Tests/Unit/Param/DistributionHandlerTest.cpp | 1 + auto/Wrap/doxygenParam.i | 5 ----- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Param/Distrib/DistributionHandler.cpp b/Param/Distrib/DistributionHandler.cpp index cb29fc56fa..6915fb3b8f 100644 --- a/Param/Distrib/DistributionHandler.cpp +++ b/Param/Distrib/DistributionHandler.cpp @@ -15,6 +15,7 @@ #include "Param/Distrib/DistributionHandler.h" #include "Base/Util/Assert.h" #include "Param/Distrib/Distributions.h" +#include "Param/Distrib/ParameterDistribution.h" DistributionHandler::DistributionHandler() : m_nbr_combinations(1) diff --git a/Param/Distrib/DistributionHandler.h b/Param/Distrib/DistributionHandler.h index e6d535eee0..2008e17c69 100644 --- a/Param/Distrib/DistributionHandler.h +++ b/Param/Distrib/DistributionHandler.h @@ -20,11 +20,13 @@ #ifndef BORNAGAIN_PARAM_DISTRIB_DISTRIBUTIONHANDLER_H #define BORNAGAIN_PARAM_DISTRIB_DISTRIBUTIONHANDLER_H -#include "Param/Distrib/ParameterDistribution.h" #include #include #include +class ParameterDistribution; +class ParameterSample; + //! Provides the functionality to average over parameter distributions with weights. class DistributionHandler { public: diff --git a/Sim/Simulation/ISimulation.h b/Sim/Simulation/ISimulation.h index 0a1ea6b7c6..3795670abf 100644 --- a/Sim/Simulation/ISimulation.h +++ b/Sim/Simulation/ISimulation.h @@ -16,6 +16,7 @@ #define BORNAGAIN_SIM_SIMULATION_ISIMULATION_H #include "Param/Distrib/DistributionHandler.h" +#include "Param/Distrib/ParameterDistribution.h" #include "Param/Node/INode.h" #include diff --git a/Tests/Unit/Param/DistributionHandlerTest.cpp b/Tests/Unit/Param/DistributionHandlerTest.cpp index 1ffdbbb547..3f40e43a2f 100644 --- a/Tests/Unit/Param/DistributionHandlerTest.cpp +++ b/Tests/Unit/Param/DistributionHandlerTest.cpp @@ -1,5 +1,6 @@ #include "Param/Distrib/DistributionHandler.h" #include "Param/Distrib/Distributions.h" +#include "Param/Distrib/ParameterDistribution.h" #include "Tests/GTestWrapper/google_test.h" #include diff --git a/auto/Wrap/doxygenParam.i b/auto/Wrap/doxygenParam.i index 74a8077766..ef6edc854e 100644 --- a/auto/Wrap/doxygenParam.i +++ b/auto/Wrap/doxygenParam.i @@ -195,11 +195,6 @@ C++ includes: DistributionHandler.h %feature("docstring") DistributionHandler::~DistributionHandler "DistributionHandler::~DistributionHandler() "; -%feature("docstring") DistributionHandler::addParameterDistribution "void DistributionHandler::addParameterDistribution(const std::string ¶m_name, const IDistribution1D &distribution, size_t nbr_samples, double sigma_factor=0.0, const RealLimits &limits=RealLimits()) - -add a sampled parameter distribution -"; - %feature("docstring") DistributionHandler::addParameterDistribution "void DistributionHandler::addParameterDistribution(const ParameterDistribution &par_distr) "; -- GitLab From e0021a2a19fe1de7cbee28a591f2e32b20b458bb Mon Sep 17 00:00:00 2001 From: Joachim Wuttke Date: Sun, 12 Jun 2022 17:16:11 +0200 Subject: [PATCH 08/13] shorthand for default c'tor --- Param/Distrib/Distributions.h | 18 ++++++++-------- auto/Wrap/doxygenParam.i | 16 +++++++------- auto/Wrap/libBornAgainParam.py | 32 ++++++++++++++-------------- auto/Wrap/libBornAgainParam_wrap.cpp | 32 ++++++++++++++-------------- 4 files changed, 49 insertions(+), 49 deletions(-) diff --git a/Param/Distrib/Distributions.h b/Param/Distrib/Distributions.h index 4d2609fb74..7f3ae09b0a 100644 --- a/Param/Distrib/Distributions.h +++ b/Param/Distrib/Distributions.h @@ -16,8 +16,8 @@ #define BORNAGAIN_PARAM_DISTRIB_DISTRIBUTIONS_H #include "Base/Types/ICloneable.h" -#include "Fit/Param/RealLimits.h" #include "Param/Node/INode.h" +#include "Fit/Param/RealLimits.h" #include class ParameterSample; @@ -44,7 +44,7 @@ public: //! Returns equidistant samples, using intrinsic parameters, weighted with probabilityDensity(). std::vector equidistantSamples(size_t nbr_samples, double sigma_factor = 0., - const RealLimits& limits = RealLimits()) const; + const RealLimits& limits = {}) const; //! Returns equidistant samples from xmin to xmax, weighted with probabilityDensity(). std::vector equidistantSamplesInRange(size_t nbr_samples, double xmin, @@ -54,7 +54,7 @@ public: //! way from mean and width parameter, taking into account limits and sigma_factor. virtual std::vector equidistantPoints(size_t nbr_samples, double sigma_factor, - const RealLimits& limits = RealLimits()) const = 0; + const RealLimits& limits = {}) const = 0; //! Returns equidistant interpolation points from xmin to xmax. virtual std::vector equidistantPointsInRange(size_t nbr_samples, double xmin, @@ -109,7 +109,7 @@ public: //! Returns list of sample values std::vector equidistantPoints(size_t nbr_samples, double sigma_factor, - const RealLimits& limits = RealLimits()) const override; + const RealLimits& limits = {}) const override; bool isDelta() const override; @@ -150,7 +150,7 @@ public: //! generate list of sample values std::vector equidistantPoints(size_t nbr_samples, double sigma_factor, - const RealLimits& limits = RealLimits()) const override; + const RealLimits& limits = {}) const override; bool isDelta() const override; @@ -194,7 +194,7 @@ public: //! generate list of sample values std::vector equidistantPoints(size_t nbr_samples, double sigma_factor, - const RealLimits& limits = RealLimits()) const override; + const RealLimits& limits = {}) const override; bool isDelta() const override; @@ -238,7 +238,7 @@ public: //! generate list of sample values std::vector equidistantPoints(size_t nbr_samples, double sigma_factor, - const RealLimits& limits = RealLimits()) const override; + const RealLimits& limits = {}) const override; bool isDelta() const override; @@ -281,7 +281,7 @@ public: //! generate list of sample values std::vector equidistantPoints(size_t nbr_samples, double sigma_factor, - const RealLimits& limits = RealLimits()) const override; + const RealLimits& limits = {}) const override; bool isDelta() const override; @@ -329,7 +329,7 @@ public: //! generate list of sample values std::vector equidistantPoints(size_t nbr_samples, double sigma_factor, - const RealLimits& limits = RealLimits()) const override; + const RealLimits& limits = {}) const override; bool isDelta() const override; diff --git a/auto/Wrap/doxygenParam.i b/auto/Wrap/doxygenParam.i index ef6edc854e..1c2e6f13a5 100644 --- a/auto/Wrap/doxygenParam.i +++ b/auto/Wrap/doxygenParam.i @@ -44,7 +44,7 @@ Returns the distribution-specific mean. %feature("docstring") DistributionCosine::sigma "double DistributionCosine::sigma() const "; -%feature("docstring") DistributionCosine::equidistantPoints "std::vector< double > DistributionCosine::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits=RealLimits()) const override +%feature("docstring") DistributionCosine::equidistantPoints "std::vector< double > DistributionCosine::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits={}) const override generate list of sample values "; @@ -106,7 +106,7 @@ Returns the distribution-specific mean. %feature("docstring") DistributionGate::max "double DistributionGate::max() const "; -%feature("docstring") DistributionGate::equidistantPoints "std::vector< double > DistributionGate::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits=RealLimits()) const override +%feature("docstring") DistributionGate::equidistantPoints "std::vector< double > DistributionGate::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits={}) const override Returns list of sample values. "; @@ -165,7 +165,7 @@ Returns the distribution-specific mean. %feature("docstring") DistributionGaussian::getStdDev "double DistributionGaussian::getStdDev() const "; -%feature("docstring") DistributionGaussian::equidistantPoints "std::vector< double > DistributionGaussian::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits=RealLimits()) const override +%feature("docstring") DistributionGaussian::equidistantPoints "std::vector< double > DistributionGaussian::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits={}) const override generate list of sample values "; @@ -258,7 +258,7 @@ Returns the distribution-specific mean. %feature("docstring") DistributionLogNormal::getScalePar "double DistributionLogNormal::getScalePar() const "; -%feature("docstring") DistributionLogNormal::equidistantPoints "std::vector< double > DistributionLogNormal::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits=RealLimits()) const override +%feature("docstring") DistributionLogNormal::equidistantPoints "std::vector< double > DistributionLogNormal::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits={}) const override generate list of sample values "; @@ -317,7 +317,7 @@ Returns the distribution-specific mean. %feature("docstring") DistributionLorentz::hwhm "double DistributionLorentz::hwhm() const "; -%feature("docstring") DistributionLorentz::equidistantPoints "std::vector< double > DistributionLorentz::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits=RealLimits()) const override +%feature("docstring") DistributionLorentz::equidistantPoints "std::vector< double > DistributionLorentz::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits={}) const override generate list of sample values "; @@ -382,7 +382,7 @@ Returns the distribution-specific mean. %feature("docstring") DistributionTrapezoid::getRightWidth "double DistributionTrapezoid::getRightWidth() const "; -%feature("docstring") DistributionTrapezoid::equidistantPoints "std::vector< double > DistributionTrapezoid::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits=RealLimits()) const override +%feature("docstring") DistributionTrapezoid::equidistantPoints "std::vector< double > DistributionTrapezoid::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits={}) const override generate list of sample values "; @@ -422,7 +422,7 @@ Returns the distribution-specific probability density for value x. Returns the distribution-specific mean. "; -%feature("docstring") IDistribution1D::equidistantSamples "std::vector< ParameterSample > IDistribution1D::equidistantSamples(size_t nbr_samples, double sigma_factor=0., const RealLimits &limits=RealLimits()) const +%feature("docstring") IDistribution1D::equidistantSamples "std::vector< ParameterSample > IDistribution1D::equidistantSamples(size_t nbr_samples, double sigma_factor=0., const RealLimits &limits={}) const Returns equidistant samples, using intrinsic parameters, weighted with probabilityDensity(). "; @@ -432,7 +432,7 @@ Returns equidistant samples, using intrinsic parameters, weighted with probabil Returns equidistant samples from xmin to xmax, weighted with probabilityDensity(). "; -%feature("docstring") IDistribution1D::equidistantPoints "virtual std::vector IDistribution1D::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits=RealLimits()) const =0 +%feature("docstring") IDistribution1D::equidistantPoints "virtual std::vector IDistribution1D::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits={}) const =0 Returns equidistant interpolation points, with range computed in distribution-specific way from mean and width parameter, taking into account limits and sigma_factor. "; diff --git a/auto/Wrap/libBornAgainParam.py b/auto/Wrap/libBornAgainParam.py index e5302d3dec..6b0e042338 100644 --- a/auto/Wrap/libBornAgainParam.py +++ b/auto/Wrap/libBornAgainParam.py @@ -2180,8 +2180,8 @@ class IDistribution1D(libBornAgainBase.ICloneable, INode): def equidistantSamples(self, *args): r""" - equidistantSamples(IDistribution1D self, size_t nbr_samples, double sigma_factor=0., RealLimits const & limits=RealLimits()) -> std::vector< ParameterSample,std::allocator< ParameterSample > > - std::vector< ParameterSample > IDistribution1D::equidistantSamples(size_t nbr_samples, double sigma_factor=0., const RealLimits &limits=RealLimits()) const + equidistantSamples(IDistribution1D self, size_t nbr_samples, double sigma_factor=0., RealLimits const & limits={}) -> std::vector< ParameterSample,std::allocator< ParameterSample > > + std::vector< ParameterSample > IDistribution1D::equidistantSamples(size_t nbr_samples, double sigma_factor=0., const RealLimits &limits={}) const Returns equidistant samples, using intrinsic parameters, weighted with probabilityDensity(). @@ -2200,8 +2200,8 @@ class IDistribution1D(libBornAgainBase.ICloneable, INode): def equidistantPoints(self, *args): r""" - equidistantPoints(IDistribution1D self, size_t nbr_samples, double sigma_factor, RealLimits const & limits=RealLimits()) -> vdouble1d_t - virtual std::vector IDistribution1D::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits=RealLimits()) const =0 + equidistantPoints(IDistribution1D self, size_t nbr_samples, double sigma_factor, RealLimits const & limits={}) -> vdouble1d_t + virtual std::vector IDistribution1D::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits={}) const =0 Returns equidistant interpolation points, with range computed in distribution-specific way from mean and width parameter, taking into account limits and sigma_factor. @@ -2321,8 +2321,8 @@ class DistributionGate(IDistribution1D): def equidistantPoints(self, *args): r""" - equidistantPoints(DistributionGate self, size_t nbr_samples, double sigma_factor, RealLimits const & limits=RealLimits()) -> vdouble1d_t - std::vector< double > DistributionGate::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits=RealLimits()) const override + equidistantPoints(DistributionGate self, size_t nbr_samples, double sigma_factor, RealLimits const & limits={}) -> vdouble1d_t + std::vector< double > DistributionGate::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits={}) const override Returns list of sample values. @@ -2424,8 +2424,8 @@ class DistributionLorentz(IDistribution1D): def equidistantPoints(self, *args): r""" - equidistantPoints(DistributionLorentz self, size_t nbr_samples, double sigma_factor, RealLimits const & limits=RealLimits()) -> vdouble1d_t - std::vector< double > DistributionLorentz::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits=RealLimits()) const override + equidistantPoints(DistributionLorentz self, size_t nbr_samples, double sigma_factor, RealLimits const & limits={}) -> vdouble1d_t + std::vector< double > DistributionLorentz::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits={}) const override generate list of sample values @@ -2527,8 +2527,8 @@ class DistributionGaussian(IDistribution1D): def equidistantPoints(self, *args): r""" - equidistantPoints(DistributionGaussian self, size_t nbr_samples, double sigma_factor, RealLimits const & limits=RealLimits()) -> vdouble1d_t - std::vector< double > DistributionGaussian::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits=RealLimits()) const override + equidistantPoints(DistributionGaussian self, size_t nbr_samples, double sigma_factor, RealLimits const & limits={}) -> vdouble1d_t + std::vector< double > DistributionGaussian::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits={}) const override generate list of sample values @@ -2637,8 +2637,8 @@ class DistributionLogNormal(IDistribution1D): def equidistantPoints(self, *args): r""" - equidistantPoints(DistributionLogNormal self, size_t nbr_samples, double sigma_factor, RealLimits const & limits=RealLimits()) -> vdouble1d_t - std::vector< double > DistributionLogNormal::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits=RealLimits()) const override + equidistantPoints(DistributionLogNormal self, size_t nbr_samples, double sigma_factor, RealLimits const & limits={}) -> vdouble1d_t + std::vector< double > DistributionLogNormal::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits={}) const override generate list of sample values @@ -2740,8 +2740,8 @@ class DistributionCosine(IDistribution1D): def equidistantPoints(self, *args): r""" - equidistantPoints(DistributionCosine self, size_t nbr_samples, double sigma_factor, RealLimits const & limits=RealLimits()) -> vdouble1d_t - std::vector< double > DistributionCosine::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits=RealLimits()) const override + equidistantPoints(DistributionCosine self, size_t nbr_samples, double sigma_factor, RealLimits const & limits={}) -> vdouble1d_t + std::vector< double > DistributionCosine::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits={}) const override generate list of sample values @@ -2859,8 +2859,8 @@ class DistributionTrapezoid(IDistribution1D): def equidistantPoints(self, *args): r""" - equidistantPoints(DistributionTrapezoid self, size_t nbr_samples, double sigma_factor, RealLimits const & limits=RealLimits()) -> vdouble1d_t - std::vector< double > DistributionTrapezoid::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits=RealLimits()) const override + equidistantPoints(DistributionTrapezoid self, size_t nbr_samples, double sigma_factor, RealLimits const & limits={}) -> vdouble1d_t + std::vector< double > DistributionTrapezoid::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits={}) const override generate list of sample values diff --git a/auto/Wrap/libBornAgainParam_wrap.cpp b/auto/Wrap/libBornAgainParam_wrap.cpp index 0ff914356f..385736141f 100644 --- a/auto/Wrap/libBornAgainParam_wrap.cpp +++ b/auto/Wrap/libBornAgainParam_wrap.cpp @@ -34848,8 +34848,8 @@ static PyMethodDef SwigMethods[] = { "\n" ""}, { "IDistribution1D_equidistantSamples", _wrap_IDistribution1D_equidistantSamples, METH_VARARGS, "\n" - "IDistribution1D_equidistantSamples(IDistribution1D self, size_t nbr_samples, double sigma_factor=0., RealLimits const & limits=RealLimits()) -> std::vector< ParameterSample,std::allocator< ParameterSample > >\n" - "std::vector< ParameterSample > IDistribution1D::equidistantSamples(size_t nbr_samples, double sigma_factor=0., const RealLimits &limits=RealLimits()) const\n" + "IDistribution1D_equidistantSamples(IDistribution1D self, size_t nbr_samples, double sigma_factor=0., RealLimits const & limits={}) -> std::vector< ParameterSample,std::allocator< ParameterSample > >\n" + "std::vector< ParameterSample > IDistribution1D::equidistantSamples(size_t nbr_samples, double sigma_factor=0., const RealLimits &limits={}) const\n" "\n" "Returns equidistant samples, using intrinsic parameters, weighted with probabilityDensity(). \n" "\n" @@ -34862,8 +34862,8 @@ static PyMethodDef SwigMethods[] = { "\n" ""}, { "IDistribution1D_equidistantPoints", _wrap_IDistribution1D_equidistantPoints, METH_VARARGS, "\n" - "IDistribution1D_equidistantPoints(IDistribution1D self, size_t nbr_samples, double sigma_factor, RealLimits const & limits=RealLimits()) -> vdouble1d_t\n" - "virtual std::vector IDistribution1D::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits=RealLimits()) const =0\n" + "IDistribution1D_equidistantPoints(IDistribution1D self, size_t nbr_samples, double sigma_factor, RealLimits const & limits={}) -> vdouble1d_t\n" + "virtual std::vector IDistribution1D::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits={}) const =0\n" "\n" "Returns equidistant interpolation points, with range computed in distribution-specific way from mean and width parameter, taking into account limits and sigma_factor. \n" "\n" @@ -34935,8 +34935,8 @@ static PyMethodDef SwigMethods[] = { "\n" ""}, { "DistributionGate_equidistantPoints", _wrap_DistributionGate_equidistantPoints, METH_VARARGS, "\n" - "DistributionGate_equidistantPoints(DistributionGate self, size_t nbr_samples, double sigma_factor, RealLimits const & limits=RealLimits()) -> vdouble1d_t\n" - "std::vector< double > DistributionGate::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits=RealLimits()) const override\n" + "DistributionGate_equidistantPoints(DistributionGate self, size_t nbr_samples, double sigma_factor, RealLimits const & limits={}) -> vdouble1d_t\n" + "std::vector< double > DistributionGate::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits={}) const override\n" "\n" "Returns list of sample values. \n" "\n" @@ -34997,8 +34997,8 @@ static PyMethodDef SwigMethods[] = { "\n" ""}, { "DistributionLorentz_equidistantPoints", _wrap_DistributionLorentz_equidistantPoints, METH_VARARGS, "\n" - "DistributionLorentz_equidistantPoints(DistributionLorentz self, size_t nbr_samples, double sigma_factor, RealLimits const & limits=RealLimits()) -> vdouble1d_t\n" - "std::vector< double > DistributionLorentz::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits=RealLimits()) const override\n" + "DistributionLorentz_equidistantPoints(DistributionLorentz self, size_t nbr_samples, double sigma_factor, RealLimits const & limits={}) -> vdouble1d_t\n" + "std::vector< double > DistributionLorentz::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits={}) const override\n" "\n" "generate list of sample values \n" "\n" @@ -35059,8 +35059,8 @@ static PyMethodDef SwigMethods[] = { "\n" ""}, { "DistributionGaussian_equidistantPoints", _wrap_DistributionGaussian_equidistantPoints, METH_VARARGS, "\n" - "DistributionGaussian_equidistantPoints(DistributionGaussian self, size_t nbr_samples, double sigma_factor, RealLimits const & limits=RealLimits()) -> vdouble1d_t\n" - "std::vector< double > DistributionGaussian::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits=RealLimits()) const override\n" + "DistributionGaussian_equidistantPoints(DistributionGaussian self, size_t nbr_samples, double sigma_factor, RealLimits const & limits={}) -> vdouble1d_t\n" + "std::vector< double > DistributionGaussian::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits={}) const override\n" "\n" "generate list of sample values \n" "\n" @@ -35125,8 +35125,8 @@ static PyMethodDef SwigMethods[] = { "\n" ""}, { "DistributionLogNormal_equidistantPoints", _wrap_DistributionLogNormal_equidistantPoints, METH_VARARGS, "\n" - "DistributionLogNormal_equidistantPoints(DistributionLogNormal self, size_t nbr_samples, double sigma_factor, RealLimits const & limits=RealLimits()) -> vdouble1d_t\n" - "std::vector< double > DistributionLogNormal::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits=RealLimits()) const override\n" + "DistributionLogNormal_equidistantPoints(DistributionLogNormal self, size_t nbr_samples, double sigma_factor, RealLimits const & limits={}) -> vdouble1d_t\n" + "std::vector< double > DistributionLogNormal::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits={}) const override\n" "\n" "generate list of sample values \n" "\n" @@ -35187,8 +35187,8 @@ static PyMethodDef SwigMethods[] = { "\n" ""}, { "DistributionCosine_equidistantPoints", _wrap_DistributionCosine_equidistantPoints, METH_VARARGS, "\n" - "DistributionCosine_equidistantPoints(DistributionCosine self, size_t nbr_samples, double sigma_factor, RealLimits const & limits=RealLimits()) -> vdouble1d_t\n" - "std::vector< double > DistributionCosine::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits=RealLimits()) const override\n" + "DistributionCosine_equidistantPoints(DistributionCosine self, size_t nbr_samples, double sigma_factor, RealLimits const & limits={}) -> vdouble1d_t\n" + "std::vector< double > DistributionCosine::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits={}) const override\n" "\n" "generate list of sample values \n" "\n" @@ -35259,8 +35259,8 @@ static PyMethodDef SwigMethods[] = { "\n" ""}, { "DistributionTrapezoid_equidistantPoints", _wrap_DistributionTrapezoid_equidistantPoints, METH_VARARGS, "\n" - "DistributionTrapezoid_equidistantPoints(DistributionTrapezoid self, size_t nbr_samples, double sigma_factor, RealLimits const & limits=RealLimits()) -> vdouble1d_t\n" - "std::vector< double > DistributionTrapezoid::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits=RealLimits()) const override\n" + "DistributionTrapezoid_equidistantPoints(DistributionTrapezoid self, size_t nbr_samples, double sigma_factor, RealLimits const & limits={}) -> vdouble1d_t\n" + "std::vector< double > DistributionTrapezoid::equidistantPoints(size_t nbr_samples, double sigma_factor, const RealLimits &limits={}) const override\n" "\n" "generate list of sample values \n" "\n" -- GitLab From 96abcaa0fe6626a67207941fac52b0d1a3f760ba Mon Sep 17 00:00:00 2001 From: Joachim Wuttke Date: Sun, 12 Jun 2022 18:08:05 +0200 Subject: [PATCH 09/13] short local variable --- Sim/Simulation/ISimulation2D.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Sim/Simulation/ISimulation2D.cpp b/Sim/Simulation/ISimulation2D.cpp index 5ca22bb53a..d87f9c33ac 100644 --- a/Sim/Simulation/ISimulation2D.cpp +++ b/Sim/Simulation/ISimulation2D.cpp @@ -98,11 +98,11 @@ std::vector> ISimulation2D::generateElements(con std::vector> result; result.reserve(N); - for (size_t element_index = 0; element_index < N; ++element_index) + for (size_t i = 0; i < N; ++i) result.emplace_back(std::make_unique( - wavelength, alpha_i, phi_i, m_detector_context->createPixel(element_index), + wavelength, alpha_i, phi_i, m_detector_context->createPixel(i), beam_polMatrices, analyzer_operator, - m_detector_context->detectorIndex(element_index) == spec_index)); + m_detector_context->detectorIndex(i) == spec_index)); return result; } -- GitLab From 0539cc1787665321c45e3ec43d59fdd835fcd13f Mon Sep 17 00:00:00 2001 From: Joachim Wuttke Date: Sun, 12 Jun 2022 18:17:13 +0200 Subject: [PATCH 10/13] ISimulation2D: start accessor fcts for m_eles --- Sim/Simulation/ISimulation2D.cpp | 15 +++++++++++++++ Sim/Simulation/ISimulation2D.h | 4 ++++ Sim/Simulation/OffspecSimulation.cpp | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/Sim/Simulation/ISimulation2D.cpp b/Sim/Simulation/ISimulation2D.cpp index d87f9c33ac..69d0163735 100644 --- a/Sim/Simulation/ISimulation2D.cpp +++ b/Sim/Simulation/ISimulation2D.cpp @@ -179,3 +179,18 @@ void ISimulation2D::initDistributionHandler() } } } + +std::vector>& ISimulation2D::elements() +{ + return m_eles; +} + +const std::vector>& ISimulation2D::elements() const +{ + return m_eles; +} + +void ISimulation2D::element_emplace_back(std::unique_ptr&& ele) +{ + m_eles.emplace_back(std::move(ele)); +} diff --git a/Sim/Simulation/ISimulation2D.h b/Sim/Simulation/ISimulation2D.h index 87808efe02..83d509ea09 100644 --- a/Sim/Simulation/ISimulation2D.h +++ b/Sim/Simulation/ISimulation2D.h @@ -100,6 +100,10 @@ protected: std::vector> m_eles; std::vector m_cache; + std::vector>& elements(); + const std::vector>& elements() const; + void element_emplace_back(std::unique_ptr&&); + private: std::unique_ptr m_detector_context; #endif // SWIG diff --git a/Sim/Simulation/OffspecSimulation.cpp b/Sim/Simulation/OffspecSimulation.cpp index 712f2260af..0d2febc3f1 100644 --- a/Sim/Simulation/OffspecSimulation.cpp +++ b/Sim/Simulation/OffspecSimulation.cpp @@ -102,7 +102,7 @@ void OffspecSimulation::initElementVector() beam2.setInclination(m_alpha_i_axis->bin(i).center()); std::vector> eles_i = generateElements(beam2); for (auto&& ele : eles_i) - m_eles.emplace_back(std::move(ele)); + element_emplace_back(std::move(ele)); } if (m_cache.empty()) m_cache.resize(m_eles.size(), 0.0); -- GitLab From 21610b38954901cbd6fcb5f77a045de5bacb3c1f Mon Sep 17 00:00:00 2001 From: Joachim Wuttke Date: Sun, 12 Jun 2022 18:37:46 +0200 Subject: [PATCH 11/13] disambiguate DepthProbeSimulation::m_depth_eles from ISimulation2D::m_eles --- Sim/Simulation/DepthProbeSimulation.cpp | 26 ++++++++++++------------- Sim/Simulation/DepthProbeSimulation.h | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Sim/Simulation/DepthProbeSimulation.cpp b/Sim/Simulation/DepthProbeSimulation.cpp index eeb9b3e160..d3a1a4d718 100644 --- a/Sim/Simulation/DepthProbeSimulation.cpp +++ b/Sim/Simulation/DepthProbeSimulation.cpp @@ -135,11 +135,11 @@ void DepthProbeSimulation::setBeamParameters(double lambda, const IAxis& alpha_a void DepthProbeSimulation::initElementVector() { - m_eles = generateElements(beam()); + m_depth_eles = generateElements(beam()); if (!m_cache.empty()) return; - m_cache.resize(m_eles.size(), std::valarray(0.0, zAxis()->size())); + m_cache.resize(m_depth_eles.size(), std::valarray(0.0, zAxis()->size())); } std::vector DepthProbeSimulation::generateElements(const Beam& beam) @@ -163,8 +163,8 @@ std::vector DepthProbeSimulation::generateElements(const Beam std::unique_ptr DepthProbeSimulation::createComputation(const reSample& re_sample, size_t start, size_t n_elements) { - ASSERT(start < m_eles.size() && start + n_elements <= m_eles.size()); - const auto& begin = m_eles.begin() + static_cast(start); + ASSERT(start < m_depth_eles.size() && start + n_elements <= m_depth_eles.size()); + const auto& begin = m_depth_eles.begin() + static_cast(start); return std::make_unique(re_sample, options(), progress(), begin, begin + static_cast(n_elements)); } @@ -176,7 +176,7 @@ void DepthProbeSimulation::validityCheck() const throw std::runtime_error( "Error in DepthProbeSimulation::validityCheck: no sample found in the simulation."); - const size_t data_size = m_eles.size(); + const size_t data_size = m_depth_eles.size(); if (data_size != alphaAxis()->size()) throw std::runtime_error( "Error in DepthProbeSimulation::validityCheck: length of simulation " @@ -185,7 +185,7 @@ void DepthProbeSimulation::validityCheck() const void DepthProbeSimulation::checkCache() const { - if (m_eles.size() != m_cache.size()) + if (m_depth_eles.size() != m_cache.size()) throw std::runtime_error("Error in DepthProbeSimulation: the sizes of simulation element " "vector and of its cache are different"); } @@ -206,7 +206,7 @@ void DepthProbeSimulation::normalize(size_t start_ind, size_t n_elements) { const double beam_intensity = beam().intensity(); for (size_t i = start_ind, stop_point = start_ind + n_elements; i < stop_point; ++i) { - auto& element = m_eles[i]; + auto& element = m_depth_eles[i]; const double alpha_i = -element.alphaI(); const auto* footprint = beam().footprintFactor(); double intensity_factor = beam_intensity; @@ -226,15 +226,15 @@ void DepthProbeSimulation::addBackgroundIntensity(size_t, size_t) void DepthProbeSimulation::addDataToCache(double weight) { checkCache(); - for (size_t i = 0, size = m_eles.size(); i < size; ++i) - m_cache[i] += m_eles[i].getIntensities() * weight; + for (size_t i = 0, size = m_depth_eles.size(); i < size; ++i) + m_cache[i] += m_depth_eles[i].getIntensities() * weight; } void DepthProbeSimulation::moveDataFromCache() { checkCache(); - for (size_t i = 0, size = m_eles.size(); i < size; ++i) - m_eles[i].setIntensities(std::move(m_cache[i])); + for (size_t i = 0, size = m_depth_eles.size(); i < size; ++i) + m_depth_eles[i].setIntensities(std::move(m_cache[i])); m_cache.clear(); m_cache.shrink_to_fit(); } @@ -250,8 +250,8 @@ std::unique_ptr DepthProbeSimulation::createIntensityData() const std::vector out(frame->size()); size_t iout = 0; - for (size_t i = 0, size = m_eles.size(); i < size; ++i) - for (const double v: m_eles[i].getIntensities()) + for (size_t i = 0, size = m_depth_eles.size(); i < size; ++i) + for (const double v: m_depth_eles[i].getIntensities()) out[iout++] = v; return std::unique_ptr(new Datafield(frame, out)); diff --git a/Sim/Simulation/DepthProbeSimulation.h b/Sim/Simulation/DepthProbeSimulation.h index f560e3bd15..78fa52c981 100644 --- a/Sim/Simulation/DepthProbeSimulation.h +++ b/Sim/Simulation/DepthProbeSimulation.h @@ -114,7 +114,7 @@ private: std::unique_ptr m_alpha_axis; std::unique_ptr m_z_axis; - std::vector m_eles; + std::vector m_depth_eles; // TODO remerge with ISimulation2D::m_eles std::vector> m_cache; #endif }; -- GitLab From 004944cbadbb468040f3efe63a56d17dfb5d681b Mon Sep 17 00:00:00 2001 From: Joachim Wuttke Date: Sun, 12 Jun 2022 18:41:34 +0200 Subject: [PATCH 12/13] always set m_eles through element_emplace_back --- Sim/Simulation/ScatteringSimulation.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Sim/Simulation/ScatteringSimulation.cpp b/Sim/Simulation/ScatteringSimulation.cpp index 910dc839ed..7c3fd4b27f 100644 --- a/Sim/Simulation/ScatteringSimulation.cpp +++ b/Sim/Simulation/ScatteringSimulation.cpp @@ -61,7 +61,9 @@ ICoordSystem* ScatteringSimulation::createCoordSystem() const void ScatteringSimulation::initElementVector() { - m_eles = generateElements(beam()); + for (auto& ele: generateElements(beam())) + element_emplace_back(std::move(ele)); + if (m_cache.empty()) m_cache.resize(m_eles.size(), 0.0); } -- GitLab From 742bf0dce9060fbd40c98475e92c503fcee59548 Mon Sep 17 00:00:00 2001 From: Joachim Wuttke Date: Sun, 12 Jun 2022 18:45:30 +0200 Subject: [PATCH 13/13] ISimulation2D::m_eles now private --- Sim/Simulation/ISimulation2D.h | 2 +- Sim/Simulation/OffspecSimulation.cpp | 8 ++++---- Sim/Simulation/ScatteringSimulation.cpp | 5 +++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Sim/Simulation/ISimulation2D.h b/Sim/Simulation/ISimulation2D.h index 83d509ea09..38fcdba932 100644 --- a/Sim/Simulation/ISimulation2D.h +++ b/Sim/Simulation/ISimulation2D.h @@ -97,7 +97,6 @@ protected: std::unique_ptr m_beam; std::unique_ptr m_detector; - std::vector> m_eles; std::vector m_cache; std::vector>& elements(); @@ -105,6 +104,7 @@ protected: void element_emplace_back(std::unique_ptr&&); private: + std::vector> m_eles; std::unique_ptr m_detector_context; #endif // SWIG }; diff --git a/Sim/Simulation/OffspecSimulation.cpp b/Sim/Simulation/OffspecSimulation.cpp index 0d2febc3f1..08916e22e8 100644 --- a/Sim/Simulation/OffspecSimulation.cpp +++ b/Sim/Simulation/OffspecSimulation.cpp @@ -54,7 +54,7 @@ SimulationResult OffspecSimulation::pack_result() checkInitialization(); const IAxis& phi_axis = detector().axis(0); size_t phi_f_size = phi_axis.size(); - ASSERT(phi_f_size * m_intensity_map->size() == m_eles.size()); + ASSERT(phi_f_size * m_intensity_map->size() == elements().size()); for (size_t i = 0; i < m_alpha_i_axis->size(); ++i) transferDetectorImage(i); @@ -96,7 +96,7 @@ size_t OffspecSimulation::intensityMapSize() const void OffspecSimulation::initElementVector() { - m_eles.clear(); + elements().clear(); Beam beam2 = beam(); for (size_t i = 0; i < m_alpha_i_axis->size(); ++i) { beam2.setInclination(m_alpha_i_axis->bin(i).center()); @@ -105,7 +105,7 @@ void OffspecSimulation::initElementVector() element_emplace_back(std::move(ele)); } if (m_cache.empty()) - m_cache.resize(m_eles.size(), 0.0); + m_cache.resize(elements().size(), 0.0); } void OffspecSimulation::validateParametrization(const ParameterDistribution& par_distr) const @@ -145,7 +145,7 @@ void OffspecSimulation::transferDetectorImage(size_t index) size_t N = detector_image->size(); for (size_t i = 0; i < N; ++i) - (*detector_image)[i] = m_eles[index * N + i]->intensity(); + (*detector_image)[i] = elements()[index * N + i]->intensity(); detector().applyDetectorResolution(detector_image.get()); size_t y_axis_size = detector().axis(1).size(); for (size_t i = 0; i < N; ++i) diff --git a/Sim/Simulation/ScatteringSimulation.cpp b/Sim/Simulation/ScatteringSimulation.cpp index 7c3fd4b27f..cdcaf9ac52 100644 --- a/Sim/Simulation/ScatteringSimulation.cpp +++ b/Sim/Simulation/ScatteringSimulation.cpp @@ -38,7 +38,7 @@ void ScatteringSimulation::prepareSimulation() SimulationResult ScatteringSimulation::pack_result() { auto* const coordsys = createCoordSystem(); - const std::unique_ptr data(detector().createDetectorIntensity(m_eles)); + const std::unique_ptr data(detector().createDetectorIntensity(elements())); return {*data, *coordsys}; } @@ -61,9 +61,10 @@ ICoordSystem* ScatteringSimulation::createCoordSystem() const void ScatteringSimulation::initElementVector() { + elements().clear(); for (auto& ele: generateElements(beam())) element_emplace_back(std::move(ele)); if (m_cache.empty()) - m_cache.resize(m_eles.size(), 0.0); + m_cache.resize(elements().size(), 0.0); } -- GitLab