diff --git a/Core/Fitting/AdjustMinimizerStrategy.cpp b/Core/Fitting/AdjustMinimizerStrategy.cpp new file mode 100644 index 0000000000000000000000000000000000000000..eff1b62629bc0ef7808998596865d301f6552eca --- /dev/null +++ b/Core/Fitting/AdjustMinimizerStrategy.cpp @@ -0,0 +1,76 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Core/Fitting/AdjustMinimizerStrategy.cpp +//! @brief Implements class AdjustMinimizerStrategy. +//! +//! @homepage http://www.bornagainproject.org +//! @license GNU General Public License v3 or higher (see COPYING) +//! @copyright Forschungszentrum Jülich GmbH 2015 +//! @authors Scientific Computing Group at MLZ Garching +//! @authors C. Durniak, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke +// +// ************************************************************************** // + +#include "AdjustMinimizerStrategy.h" +#include "FitSuiteImp.h" +#include "IMinimizer.h" +#include "MinimizerFactory.h" + +AdjustMinimizerStrategy::AdjustMinimizerStrategy() + : IFitStrategy("FitStrategy/AdjustMinimizer") +{ +} + +AdjustMinimizerStrategy::AdjustMinimizerStrategy(const std::string &minimizerName, + const std::string &algorithmName, + const std::string &optionString) + : IFitStrategy("FitStrategy/AdjustMinimizer") + , m_minimizerName(minimizerName) + , m_algorithmName(algorithmName) + , m_optionString(optionString) +{ + setMinimizer(minimizerName, algorithmName, optionString); +} + + +AdjustMinimizerStrategy* AdjustMinimizerStrategy::clone() const +{ + AdjustMinimizerStrategy* result = new AdjustMinimizerStrategy(*this); + return result; +} + +void AdjustMinimizerStrategy::setMinimizer(const std::string &minimizerName, + const std::string &algorithmName, + const std::string &optionString) +{ + m_minimizerName = minimizerName; + m_algorithmName = algorithmName; + m_optionString = optionString; +} + +void AdjustMinimizerStrategy::execute() +{ + m_kernel->setMinimizer( + MinimizerFactory::createMinimizer(m_minimizerName, m_algorithmName, m_optionString)); + m_kernel->minimize(); +} + +std::string AdjustMinimizerStrategy::toString() const +{ + std::ostringstream ostr; + ostr << "FitStrategy/AdjustMinimizer (" + << m_minimizerName << ", " + << m_algorithmName << ", " + << m_optionString << ")"; + return ostr.str(); +} + +AdjustMinimizerStrategy::AdjustMinimizerStrategy(const AdjustMinimizerStrategy &other) + : IFitStrategy(other) +{ + m_minimizerName = other.m_minimizerName; + m_algorithmName = other.m_algorithmName; + m_optionString = other.m_optionString; +} diff --git a/Core/Fitting/AdjustMinimizerStrategy.h b/Core/Fitting/AdjustMinimizerStrategy.h new file mode 100644 index 0000000000000000000000000000000000000000..65d153facd31037c4ed757f0111668347fee9a66 --- /dev/null +++ b/Core/Fitting/AdjustMinimizerStrategy.h @@ -0,0 +1,52 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Core/Fitting/AdjustMinimizerStrategy.h +//! @brief Defines class AdjustMinimizerStrategy +//! +//! @homepage http://www.bornagainproject.org +//! @license GNU General Public License v3 or higher (see COPYING) +//! @copyright Forschungszentrum Jülich GmbH 2015 +//! @authors Scientific Computing Group at MLZ Garching +//! @authors C. Durniak, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke +// +// ************************************************************************** // + +#ifndef FITSTRATEGYADJUSTMINIMIZER_H +#define FITSTRATEGYADJUSTMINIMIZER_H + +#include "IFitStrategy.h" + +//! @class AdjustMinimizerStrategy +//! @ingroup fitting +//! @brief Strategy modifies mimimizer settings before running minimization round. + +class BA_CORE_API_ AdjustMinimizerStrategy : public IFitStrategy +{ +public: + AdjustMinimizerStrategy(); + + AdjustMinimizerStrategy(const std::string& minimizerName, + const std::string& algorithmName = std::string(), + const std::string& optionString=std::string()); + + virtual AdjustMinimizerStrategy* clone() const; + + void setMinimizer(const std::string& minimizerName, + const std::string& algorithmName = std::string(), + const std::string& optionString=std::string()); + + virtual void execute(); + +protected: + virtual std::string toString() const; + AdjustMinimizerStrategy(const AdjustMinimizerStrategy &other); + +private: + std::string m_minimizerName; + std::string m_algorithmName; + std::string m_optionString; +}; + +#endif diff --git a/Core/Fitting/FitStrategyAdjustMinimizer.cpp b/Core/Fitting/FitStrategyAdjustMinimizer.cpp deleted file mode 100644 index dcd4bde8145002b78c58902bc54ebf32cedf3975..0000000000000000000000000000000000000000 --- a/Core/Fitting/FitStrategyAdjustMinimizer.cpp +++ /dev/null @@ -1,94 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Core/Fitting/FitStrategyAdjustMinimizer.cpp -//! @brief Implements class FitStrategyAdjustMinimizer. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2015 -//! @authors Scientific Computing Group at MLZ Garching -//! @authors C. Durniak, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke -// -// ************************************************************************** // - -#include "FitStrategyAdjustMinimizer.h" -#include "FitSuiteImp.h" -#include "IMinimizer.h" -#include "MinimizerFactory.h" - -FitStrategyAdjustMinimizer::FitStrategyAdjustMinimizer() - : IFitStrategy("FitStrategyAdjustMinimizer"), m_minimizer(nullptr) -{ -} - -FitStrategyAdjustMinimizer::FitStrategyAdjustMinimizer(const std::string &minimizer_name, - const std::string &algorithm_name, - const std::string &minimizer_options) - : IFitStrategy("FitStrategyAdjustMinimizer"), m_minimizer(nullptr) -{ - setMinimizer(minimizer_name, algorithm_name, minimizer_options); -} - -FitStrategyAdjustMinimizer::~FitStrategyAdjustMinimizer() -{ - delete m_minimizer; -} - -// partial clone -FitStrategyAdjustMinimizer* FitStrategyAdjustMinimizer::clone() const -{ - FitStrategyAdjustMinimizer* result = new FitStrategyAdjustMinimizer(); - result->setName(getName()); - result->setMinimizer( MinimizerFactory::createMinimizer(m_minimizer)); - return result; -} - -IMinimizer* FitStrategyAdjustMinimizer::getMinimizer() -{ - return m_minimizer; -} - -void FitStrategyAdjustMinimizer::setMinimizer(IMinimizer* minimizer) -{ - m_minimizer = minimizer; -} - -void FitStrategyAdjustMinimizer::setMinimizer(const std::string &minimizer_name, - const std::string &algorithm_name, - const std::string &minimizer_options) -{ - setMinimizer(MinimizerFactory::createMinimizer( - minimizer_name, algorithm_name, minimizer_options)); -} - -void FitStrategyAdjustMinimizer::execute() -{ - - m_kernel->setMinimizer( MinimizerFactory::createMinimizer(m_minimizer) ); - - m_kernel->minimize(); - - //m_fit_suite->printResults(); -} - -ObsoleteMinimizerOptions* FitStrategyAdjustMinimizer::getMinimizerOptions() -{ -// if(!m_minimizer) -// return nullptr; -// return m_minimizer->getOptions(); - assert(0); - return nullptr; -} - -void FitStrategyAdjustMinimizer::print(std::ostream &ostr) const -{ - assert(0); - ostr << "FitStrategy/AdjustMinimizer: "; -// if(m_minimizer) { -// ostr << m_minimizer->getMinimizerName(); -// if(m_minimizer->getAlgorithmName().size()) -// ostr << "(" << m_minimizer->getAlgorithmName() << ")"; -// } -} diff --git a/Core/Fitting/FitStrategyAdjustMinimizer.h b/Core/Fitting/FitStrategyAdjustMinimizer.h deleted file mode 100644 index 8664790f68d00cd95fa26fbdf5f9eff6cb71d9b3..0000000000000000000000000000000000000000 --- a/Core/Fitting/FitStrategyAdjustMinimizer.h +++ /dev/null @@ -1,59 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Core/Fitting/FitStrategyAdjustMinimizer.h -//! @brief Defines class FitStrategyAdjustMinimizer -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2015 -//! @authors Scientific Computing Group at MLZ Garching -//! @authors C. Durniak, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke -// -// ************************************************************************** // - -#ifndef FITSTRATEGYADJUSTMINIMIZER_H -#define FITSTRATEGYADJUSTMINIMIZER_H - -#include "IFitStrategy.h" - -class IMinimizer; -class ObsoleteMinimizerOptions; - -//! @class FitStrategyAdjustMinimizer -//! @ingroup fitting -//! @brief Strategy modifies mimimizer settings before running minimization round - -class BA_CORE_API_ FitStrategyAdjustMinimizer : public IFitStrategy -{ -public: - FitStrategyAdjustMinimizer(); - - FitStrategyAdjustMinimizer(const std::string& minimizer_name, - const std::string& algorithm_name = std::string(), - const std::string& minimizer_options=std::string()); - - virtual ~FitStrategyAdjustMinimizer(); - - virtual FitStrategyAdjustMinimizer* clone() const; - - IMinimizer* getMinimizer(); - void setMinimizer(IMinimizer* minimizer); - - void setMinimizer(const std::string& minimizer_name, - const std::string& algorithm_name = std::string(), - const std::string& minimizer_options=std::string()); - - virtual void execute(); - - virtual ObsoleteMinimizerOptions* getMinimizerOptions(); - -protected: - virtual void print(std::ostream &ostr) const; - -private: - IMinimizer* m_minimizer; -}; - -#endif // FITSTRATEGYADJUSTMINIMIZER_H diff --git a/Core/Fitting/FitSuite.cpp b/Core/Fitting/FitSuite.cpp index 022e8e41642bb42fe617a6ee1daac1fdab388f40..d31eaab26d081c88afd942fe1f67065ea63bd4c8 100644 --- a/Core/Fitting/FitSuite.cpp +++ b/Core/Fitting/FitSuite.cpp @@ -19,6 +19,7 @@ #include "FitSuitePrintObserver.h" #include "IHistogram.h" #include "MinimizerFactory.h" +#include <iostream> FitSuite::FitSuite() : m_impl(new FitSuiteImp(std::bind(&FitSuite::notifyObservers, this))) diff --git a/Core/Fitting/FitSuiteFunctions.cpp b/Core/Fitting/FitSuiteFunctions.cpp index ae9a9e71c9e82298d2275ed4c0c3ced874cfb7df..3fb0268572cdfdd578f1da7d93c73045701a679b 100644 --- a/Core/Fitting/FitSuiteFunctions.cpp +++ b/Core/Fitting/FitSuiteFunctions.cpp @@ -65,7 +65,6 @@ double FitSuiteGradientFunction::evaluate( m_ncalls_total++; if(index == 0 ) { - //if(index == 0 && !gradients) { m_kernel->notifyObservers(); m_ncall++; } diff --git a/Core/Fitting/FitSuiteFunctions.h b/Core/Fitting/FitSuiteFunctions.h index 3b1bd1c6c9fad8e89ff1e02bfe2eb9ab8f32332d..c3daf39603fd85db4eb2136fbaefb2fad81b4762 100644 --- a/Core/Fitting/FitSuiteFunctions.h +++ b/Core/Fitting/FitSuiteFunctions.h @@ -19,7 +19,7 @@ #include "WinDllMacros.h" #include <vector> -using std::size_t; +#include <cstddef> class FitSuiteImp; @@ -50,7 +50,6 @@ class BA_CORE_API_ FitSuiteChiSquaredFunction : public IFitSuiteFunction FitSuiteChiSquaredFunction() {} virtual ~FitSuiteChiSquaredFunction() {} //! evaluate method for chi2 value called directly from the minimizer -// double evaluate(const double* pars); double evaluate(const std::vector<double> &pars); }; @@ -66,8 +65,8 @@ class BA_CORE_API_ FitSuiteGradientFunction : public IFitSuiteFunction : m_npars(0), m_ndatasize(0), m_prev_index(-1), m_ncalls_total(0), m_ncalls_gradient(0) {} virtual ~FitSuiteGradientFunction() {} + //! evaluate method for gradients and residuals called directly from the minimizer -// double evaluate(const double* pars, unsigned int index, double* gradients); double evaluate(const std::vector<double> &pars, unsigned int index, std::vector<double>& gradients); diff --git a/Core/Fitting/FitSuiteImp.cpp b/Core/Fitting/FitSuiteImp.cpp index 55b8a4f089c703cf84cbd48d0fe91f0ac22beb9e..189d89ded869a3bea8c4906e9ad99f9c637218d3 100644 --- a/Core/Fitting/FitSuiteImp.cpp +++ b/Core/Fitting/FitSuiteImp.cpp @@ -25,7 +25,6 @@ #include <stdexcept> FitSuiteImp::FitSuiteImp(const std::function<void()>& notifyObservers) -// : m_minimizer(MinimizerFactory::createMinimizer("Minuit2", "Migrad")) : m_is_last_iteration(false) , m_is_interrupted(false) , m_notifyObservers(notifyObservers) @@ -45,7 +44,7 @@ FitSuiteImp::~FitSuiteImp() void FitSuiteImp::clear() { m_fit_objects.clear(); -// m_fit_parameters.clear(); + m_kernel->clear(); m_fit_strategies.clear(); m_is_last_iteration = false; m_is_interrupted = false; @@ -63,7 +62,7 @@ FitParameterLinked *FitSuiteImp::addFitParameter(const std::string& name, double const AttLimits& limits, double step) { if(step <=0.0) - step = value * getOptions().getStepFactor(); + step = value * getOptions().stepFactor(); FitParameterLinked *result = new FitParameterLinked(name, value, limits, step); m_kernel->fitParameters()->addFitParameter(result); @@ -72,15 +71,11 @@ FitParameterLinked *FitSuiteImp::addFitParameter(const std::string& name, double void FitSuiteImp::addFitStrategy(const IFitStrategy& strategy) { - m_fit_strategies.addStrategy(strategy.clone()); + m_fit_strategies.addStrategy(strategy); } void FitSuiteImp::setMinimizer(IMinimizer* minimizer) { - if(!minimizer) - throw std::runtime_error( - "FitSuite::setMinimizer() -> Error. Attempt to set nullptr minimizer"); -// m_minimizer.reset(minimizer); m_kernel->setMinimizer(minimizer); } @@ -104,11 +99,6 @@ void FitSuiteImp::runFit() void FitSuiteImp::minimize() { - // initialize minimizer with fitting functions -// IMinimizer::function_chi2_t fun_chi2 = -// [&] (const double* pars) {return m_function_chi2.evaluate(pars);}; -// m_minimizer->setChiSquaredFunction( fun_chi2, m_fit_parameters.size()); - objective_function_t fun_chi2 = [&] (const std::vector<double>& pars) {return m_function_chi2.evaluate(pars);}; m_kernel->setObjectiveFunction( fun_chi2); @@ -121,11 +111,6 @@ void FitSuiteImp::minimize() m_kernel->setGradientFunction( fun_gradient, m_fit_objects.getSizeOfDataSet() ); - // initialize minimizer's parameters with the list of local fit parameters -// m_minimizer->setParameters(m_fit_parameters); - - // setting number of free parameters for proper chi2 normalization -// m_fit_objects.setNfreeParameters((int)m_fit_parameters.numberOfFreeFitParameters()); m_fit_objects.setNfreeParameters((int)fitParameters()->freeFitParameterCount()); // minimize @@ -134,9 +119,6 @@ void FitSuiteImp::minimize() m_kernel->minimize(); } catch (int) {} - // set found values to the parameters -// m_minimizer->propagateResults(m_fit_parameters); - m_fit_objects.runSimulations(); // we run simulation once again for best values found } @@ -147,35 +129,16 @@ FitParameterSet *FitSuiteImp::fitParameters() { // get current number of minimization function calls size_t FitSuiteImp::numberOfIterations() const { - //return m_minimizer->getNCalls(); - // I don't know which function Minimizer calls (chi2 or gradient) - return m_function_chi2.getNCalls() ? - m_function_chi2.getNCalls() : m_function_gradient.getNCalls(); + return m_kernel->functionCalls(); } size_t FitSuiteImp::currentStrategyIndex() const { - return m_fit_strategies.getCurrentStrategyIndex(); + return m_fit_strategies.currentStrategyIndex(); } std::string FitSuiteImp::reportResults() const { -// std::ostringstream result; - -// result << std::endl; -// result -// << "--- FitSuite::printResults -----------------------------------------------------\n"; -// result << " Chi2:" << std::scientific << std::setprecision(8) -// << m_fit_objects.getChiSquaredValue() -// << " chi2.NCall:" << m_function_chi2.getNCalls() -// << " grad.NCall:" << m_function_gradient.getNCalls() << "," -// << m_function_gradient.getNCallsGradient() << "," -// << m_function_gradient.getNCallsTotal() << " (neval, ngrad, total)" << std::endl; - -// result << m_minimizer->reportResults(); -// result << m_fit_parameters.reportResults(); - -// return result.str(); return m_kernel->reportResults(); } @@ -184,19 +147,10 @@ const FitKernel *FitSuiteImp::kernel() const return m_kernel.get(); } -//FitKernel *FitSuiteImp::kernel() -//{ -// return m_kernel.get(); -//} - bool FitSuiteImp::check_prerequisites() const { -// if( !m_minimizer ) throw Exceptions::LogicErrorException( -// "FitSuite::check_prerequisites() -> Error! No minimizer found."); if( !m_fit_objects.getNumberOfFitObjects() ) throw Exceptions::LogicErrorException( "FitSuite::check_prerequisites() -> Error! No simulation/data description defined"); -// if( !m_fit_parameters.size() ) throw Exceptions::LogicErrorException( -// "FitSuite::check_prerequisites() -> Error! No fit parameters defined"); if( m_fit_objects.getSizeOfDataSet() == 0) throw Exceptions::LogicErrorException( "FitSuite::check_prerequisites() -> Error! No elements to fit. " "Looks like whole detector is masked."); @@ -217,17 +171,3 @@ void FitSuiteImp::link_fit_parameters() msglog(MSG::DEBUG2) << "FitSuite::link_fit_parameters() -> Parameter pool:"; msglog(MSG::DEBUG2) << *pool; } - -//void FitSuiteKernel::link_fit_parameters() -//{ -// const std::unique_ptr<ParameterPool> pool(m_fit_objects.createParameterTree()); -// for (auto par: m_fit_parameters.getFitParameters()) { -// FitParameterLinked* linkedPar = dynamic_cast<FitParameterLinked*>(par); -// if( !linkedPar ) -// throw std::runtime_error( -// "FitKernel::link_fit_parameters() -> Error! Can't cast to FitParameterLinked."); -// linkedPar->addMatchedParametersFromPool(pool.get()); -// } -// msglog(MSG::DEBUG2) << "FitSuite::link_fit_parameters() -> Parameter pool:"; -// msglog(MSG::DEBUG2) << *pool; -//} diff --git a/Core/Fitting/FitSuitePrintObserver.cpp b/Core/Fitting/FitSuitePrintObserver.cpp index addabff36f219896a6a59ef21e285cf985f70246..451cb6f105fb57cbe72a7048ea6171288f1d1424 100644 --- a/Core/Fitting/FitSuitePrintObserver.cpp +++ b/Core/Fitting/FitSuitePrintObserver.cpp @@ -17,13 +17,14 @@ #include "FitSuite.h" #include "FitParameterSet.h" #include "FitSuiteStrategies.h" - +#include "MinimizerUtils.h" +#include <iostream> +#include <iomanip> FitSuitePrintObserver::FitSuitePrintObserver(int print_every_nth) : IFitObserver(print_every_nth) , m_fit_suite(0) { - m_last_call_time = boost::posix_time::second_clock::local_time(); } void FitSuitePrintObserver::update(FitSuite* fit_suite) @@ -31,16 +32,14 @@ void FitSuitePrintObserver::update(FitSuite* fit_suite) m_fit_suite = fit_suite; if(fit_suite->numberOfIterations()== 0) { - m_start_time = boost::posix_time::second_clock::local_time(); - m_last_call_time = boost::posix_time::second_clock::local_time(); + m_run_time.start(); + m_last_call_time.start(); } if(m_strategy_has_changed) { - std::cout << - "-------------------------------------------------------------------------------\n"; - std::cout << (*m_fit_suite->fitStrategies()->getCurrentStrategy()) << std::endl; - std::cout << - "-------------------------------------------------------------------------------\n"; + std::cout << MinimizerUtils::sectionString() << "\n"; + std::cout << (*m_fit_suite->fitStrategies()->currentStrategy()) << std::endl; + std::cout << MinimizerUtils::sectionString() << "\n"; } printIterationHeader(); @@ -62,12 +61,10 @@ void FitSuitePrintObserver::printIterationHeader() void FitSuitePrintObserver::printWallTime() { - boost::posix_time::time_duration diff = boost::posix_time::microsec_clock::local_time() - - m_last_call_time; - std::cout << "Wall time since last call:" - << std::fixed << std::setprecision(2) - << diff.total_milliseconds()/1000. << " sec." <<std::endl; - m_last_call_time = boost::posix_time::microsec_clock::local_time(); + m_last_call_time.stop(); + std::cout << "Wall time since last call:" << std::fixed << std::setprecision(2) + << m_last_call_time.runTime() << std::endl; + m_last_call_time.start(); } void FitSuitePrintObserver::printParameters() @@ -78,11 +75,9 @@ void FitSuitePrintObserver::printParameters() void FitSuitePrintObserver::printFitResults() { std::cout << "This was the last iteration." << std::endl; + m_run_time.stop(); m_fit_suite->printResults(); - boost::posix_time::time_duration diff = boost::posix_time::second_clock::local_time() - - m_start_time; - std::cout << "Total time spend: " - << std::fixed << std::setprecision(2) - << diff.total_milliseconds()/1000. << " sec." <<std::endl; + std::cout << "Total time spend: " << std::fixed << std::setprecision(2) + << m_run_time.runTime() << " sec." <<std::endl; std::cout << std::endl; } diff --git a/Core/Fitting/FitSuitePrintObserver.h b/Core/Fitting/FitSuitePrintObserver.h index 5f704b30334ce938f0d127ad6780764f51fac044..e17a79bba97f3248b02961746b9c134d2b001af6 100644 --- a/Core/Fitting/FitSuitePrintObserver.h +++ b/Core/Fitting/FitSuitePrintObserver.h @@ -17,7 +17,7 @@ #define FITSUITEPRINTOBSERVER_H #include "IFitObserver.h" -#include <boost/date_time/posix_time/posix_time.hpp> +#include "TimeInterval.h" //! @class FitSuitePrintObserver //! @ingroup fitting_internal @@ -38,8 +38,8 @@ protected: void printFitResults(); FitSuite* m_fit_suite; - boost::posix_time::ptime m_start_time; - boost::posix_time::ptime m_last_call_time; + TimeInterval m_run_time; + TimeInterval m_last_call_time; }; #endif // FITSUITEPRINTOBSERVER_H diff --git a/Core/Fitting/FitSuiteStrategies.cpp b/Core/Fitting/FitSuiteStrategies.cpp index 139a5f92766eef4ee467458ae939ec1733cd9bc5..5627961529e39261c575584721bf0e8ad13cf585 100644 --- a/Core/Fitting/FitSuiteStrategies.cpp +++ b/Core/Fitting/FitSuiteStrategies.cpp @@ -14,8 +14,8 @@ // ************************************************************************** // #include "FitSuiteStrategies.h" -#include <cassert> #include "FitSuiteImp.h" +#include <stdexcept> FitSuiteStrategies::FitSuiteStrategies() : m_kernel(nullptr), m_current_strategy_index(0) @@ -33,18 +33,19 @@ void FitSuiteStrategies::clear() m_current_strategy_index = 0; } -IFitStrategy *FitSuiteStrategies::getCurrentStrategy() +IFitStrategy *FitSuiteStrategies::currentStrategy() { - assert(m_current_strategy_index < m_strategies.size()); + if(m_current_strategy_index >= m_strategies.size()) + throw std::runtime_error("FitSuiteStrategies::currentStrategy() -> Error in index."); return m_strategies[m_current_strategy_index]; } -void FitSuiteStrategies::addStrategy(IFitStrategy* strategy) +void FitSuiteStrategies::addStrategy(const IFitStrategy &strategy) { - assert(m_kernel); - strategy->init(m_kernel); - m_strategies.push_back(strategy); + IFitStrategy *clone = strategy.clone(); + clone->init(m_kernel); + m_strategies.push_back(clone); } void FitSuiteStrategies::minimize() diff --git a/Core/Fitting/FitSuiteStrategies.h b/Core/Fitting/FitSuiteStrategies.h index 4b67af448db299648bc5b2ea14e20f15777010aa..f338940dc99d6fd3cdeb6f8c2b834a90ab8869ca 100644 --- a/Core/Fitting/FitSuiteStrategies.h +++ b/Core/Fitting/FitSuiteStrategies.h @@ -19,7 +19,6 @@ #include "IFitStrategy.h" #include "SafePointerVector.h" - //! @class FitSuiteStrategies //! @ingroup fitting_internal //! @brief Collection of strategies to fit @@ -29,20 +28,22 @@ class BA_CORE_API_ FitSuiteStrategies public: FitSuiteStrategies(); virtual ~FitSuiteStrategies(); + FitSuiteStrategies(const FitSuiteStrategies &other) = delete; + FitSuiteStrategies& operator=(const FitSuiteStrategies &other) = delete; void init(FitSuiteImp* fit_suite) { m_kernel = fit_suite; } - void addStrategy(IFitStrategy* strategy); + void addStrategy(const IFitStrategy& strategy); void minimize(); - size_t getCurrentStrategyIndex() const { return m_current_strategy_index; } + size_t currentStrategyIndex() const { return m_current_strategy_index; } size_t size() const { return m_strategies.size(); } void clear(); - IFitStrategy* getCurrentStrategy(); + IFitStrategy* currentStrategy(); private: SafePointerVector<IFitStrategy> m_strategies; diff --git a/Core/Fitting/IFitStrategy.cpp b/Core/Fitting/IFitStrategy.cpp index 33e7199dcce41af0173749b00513fb499f63590e..6f1e64d4280f95e9289fa0e1332318496e0d0bb4 100644 --- a/Core/Fitting/IFitStrategy.cpp +++ b/Core/Fitting/IFitStrategy.cpp @@ -15,12 +15,7 @@ #include "IFitStrategy.h" #include "FitSuiteImp.h" -#include "Exceptions.h" - -IFitStrategy::IFitStrategy() - : m_kernel(nullptr) -{ -} +#include <stdexcept> IFitStrategy::IFitStrategy(const std::string &name) : INamed(name), m_kernel(nullptr) @@ -32,9 +27,9 @@ void IFitStrategy::init(FitSuiteImp* fit_suite) m_kernel = fit_suite; } -void IFitStrategy::print(std::ostream &ostr) const +std::string IFitStrategy::toString() const { - ostr << getName(); + return getName(); } IFitStrategy::IFitStrategy(const IFitStrategy &other) @@ -50,17 +45,21 @@ FitStrategyDefault::FitStrategyDefault() { } -IFitStrategy* FitStrategyDefault::clone() const +FitStrategyDefault *FitStrategyDefault::clone() const { - return new FitStrategyDefault(); + return new FitStrategyDefault(*this); } void FitStrategyDefault::execute() { if( !m_kernel ) - throw Exceptions::NullPointerException( - "FitStrategyDefault::execute() -> FitSuite doesn't exists"); + throw std::runtime_error("FitStrategyDefault::execute() -> FitSuite doesn't exists"); - // calling minimization m_kernel->minimize(); } + +FitStrategyDefault::FitStrategyDefault(const FitStrategyDefault &other) + : IFitStrategy(other) +{ + +} diff --git a/Core/Fitting/IFitStrategy.h b/Core/Fitting/IFitStrategy.h index 8da04cd4bbbf69d6da4eaee732df629423db6a18..d839040e21491ddfee0c803fc0e47fdce81b44e0 100644 --- a/Core/Fitting/IFitStrategy.h +++ b/Core/Fitting/IFitStrategy.h @@ -29,28 +29,25 @@ class FitSuiteImp; class BA_CORE_API_ IFitStrategy : public INamed { public: - IFitStrategy(); - IFitStrategy(const std::string& name); + explicit IFitStrategy(const std::string& name); + IFitStrategy& operator=(const IFitStrategy &other) = delete; + virtual ~IFitStrategy() {} + virtual IFitStrategy* clone() const = 0; - virtual ~IFitStrategy() {}; virtual void init(FitSuiteImp* fit_suite); virtual void execute() = 0; friend std::ostream &operator<<(std::ostream &ostr, const IFitStrategy &m) { - m.print(ostr); - return ostr; + ostr << m.toString(); return ostr; } protected: - virtual void print(std::ostream &ostr) const; - - FitSuiteImp* m_kernel; IFitStrategy(const IFitStrategy &other); -private: - IFitStrategy& operator=(const IFitStrategy& ); + virtual std::string toString() const; + FitSuiteImp* m_kernel; }; @@ -60,10 +57,13 @@ private: class BA_CORE_API_ FitStrategyDefault : public IFitStrategy { - public: +public: FitStrategyDefault(); - virtual IFitStrategy* clone() const; + virtual FitStrategyDefault* clone() const; virtual void execute(); + +protected: + FitStrategyDefault(const FitStrategyDefault &other); }; #endif // IFITSTRATEGY_H diff --git a/Core/Parametrization/ParameterPool.cpp b/Core/Parametrization/ParameterPool.cpp index 75af9abc67314e38f626a0d24cbc51149f7ab5f4..952a9973aa966e94e194f86a591e925dedefdda4 100644 --- a/Core/Parametrization/ParameterPool.cpp +++ b/Core/Parametrization/ParameterPool.cpp @@ -117,7 +117,7 @@ std::vector<RealParameter*> ParameterPool::getMatchedParameters(const std::strin std::vector<RealParameter*> selected_parameters; // loop over all parameters in the pool for (auto* par: m_params) - if( StringUtils::matchesPattern( par->getName(), pattern ) ) + if( Utils::String::matchesPattern( par->getName(), pattern ) ) selected_parameters.push_back(par); if( selected_parameters.empty() ) report_find_matched_parameters_error(pattern); @@ -145,7 +145,7 @@ int ParameterPool::setMatchedParametersValue(const std::string& pattern, double { int npars(0); for (auto* par: m_params) { - if( StringUtils::matchesPattern( par->getName(), pattern ) ) { + if( Utils::String::matchesPattern( par->getName(), pattern ) ) { try { par->setValue(value); npars++; diff --git a/Core/Tools/Utils.cpp b/Core/Tools/Utils.cpp index 63926cd01891ded2489b8f5dbeacf986932d8a02..e2a109c5d51c47fd7d61f136d6b0ce97a0d70764 100644 --- a/Core/Tools/Utils.cpp +++ b/Core/Tools/Utils.cpp @@ -14,7 +14,6 @@ // ************************************************************************** // #include "Utils.h" -#include <boost/algorithm/string.hpp> #include <boost/date_time/posix_time/posix_time.hpp> #include <thread> @@ -23,32 +22,6 @@ #endif #endif -//! Returns token vector obtained by splitting string at delimiters. - -std::vector<std::string> Utils::String::split(const std::string& text, const std::string& delimiter) -{ - std::vector<std::string> tokens; - boost::split(tokens, text, boost::is_any_of(delimiter)); - return tokens; -} - -void Utils::String::replaceItemsFromString( - std::string& text, const std::vector<std::string>& items, const std::string& replacement) -{ - for(size_t i=0; i<items.size(); ++i) - boost::replace_all(text, items[i], replacement); -} - -std::string Utils::String::join(const std::vector<std::string>& joinable, const std::string& joint) -{ - std::string result; - size_t n = joinable.size(); - for(size_t i=0; i<n-1; ++i) - result += joinable[i] + joint; - result += joinable[n-1]; - return result; -} - int Utils::System::getThreadHardwareConcurrency() { return std::thread::hardware_concurrency(); diff --git a/Core/Tools/Utils.h b/Core/Tools/Utils.h index 2d3593595dabc853fd21baac186d4c7c0131fde2..d361cf6be419beb89522a7ad3d01e38e122813b5 100644 --- a/Core/Tools/Utils.h +++ b/Core/Tools/Utils.h @@ -17,29 +17,12 @@ #define UTILS_H #include "WinDllMacros.h" +#include "StringUtils.h" #include <string> #include <vector> namespace Utils { -//! Collection of utilities for std::string. -//! @ingroup tools_internal - -class BA_CORE_API_ String -{ -public: - //! Split string into vector of string using delimeter. - static std::vector<std::string> split(const std::string& text, const std::string& delimeter); - - //! replace all occurences of items from string text with delimeter - static void replaceItemsFromString(std::string& text, const std::vector<std::string>& items, - const std::string& replacement=std::string("")); - - //! Returns string obtain by joining vector elements - static std::string join(const std::vector<std::string>& joinable, const std::string& joint); -}; - - class BA_CORE_API_ System { public: diff --git a/Examples/python/fitting/ex06_FitStrategies/FitStrategyAdjustMinimizer.py b/Examples/python/fitting/ex06_FitStrategies/FitStrategyAdjustMinimizer.py index 4d038460d91844a45adbfe6c278202fc1b322778..1adc65d8e36847635e3f89c35ca0fb6228d06e81 100644 --- a/Examples/python/fitting/ex06_FitStrategies/FitStrategyAdjustMinimizer.py +++ b/Examples/python/fitting/ex06_FitStrategies/FitStrategyAdjustMinimizer.py @@ -96,23 +96,22 @@ def run_fitting(): # setting fitting parameters with starting values # Here we select starting values being quite far from true values # to puzzle our minimizer's as much as possible - fit_suite.addFitParameter( - "*Height", 1.*nm, ba.RealLimits.limited(0.01, 30.), 0.04*nm) - fit_suite.addFitParameter( - "*Radius", 20.*nm, ba.RealLimits.limited(0.01, 30.), 0.06*nm) + fit_suite.addFitParameter("*Height", 1.*nm).setLimited(0.01, 30.)\ + .setStep(0.05*nm) + fit_suite.addFitParameter("*Radius", 20.*nm).setLimited(0.01, 30.)\ + .setStep(0.05*nm) # Now we create first fig strategy which will run first minimization round # using the Genetic minimizer. # The Genetic minimizer is able to explore large parameter space # without being trapped by some local minima. - strategy1 = ba.FitStrategyAdjustMinimizer("Genetic") - strategy1.getMinimizerOptions().setMaxIterations(3) + strategy1 = ba.AdjustMinimizerStrategy("Genetic", "", "MaxIterations=1") fit_suite.addFitStrategy(strategy1) # Second fit strategy will use another minimizer. # It starts from best parameters found in previous minimization # and then continues until fit converges. - strategy2 = ba.FitStrategyAdjustMinimizer("Minuit2", "Migrad") + strategy2 = ba.AdjustMinimizerStrategy("Minuit2", "Migrad") fit_suite.addFitStrategy(strategy2) # running fit @@ -120,9 +119,8 @@ def run_fitting(): print("Fitting completed.") print("chi2:", fit_suite.getChi2()) - fitpars = fit_suite.getFitParameters() - for i in range(0, fitpars.size()): - print(fitpars[i].getName(), fitpars[i].getValue(), fitpars[i].getError()) + for fitPar in fit_suite.fitParameters(): + print(fitPar.name(), fitPar.value(), fitPar.error()) if __name__ == '__main__': diff --git a/Examples/python/fitting/ex10_FitGALAXIData/FitGALAXIData.py b/Examples/python/fitting/ex10_FitGALAXIData/FitGALAXIData.py index cde1ee93b72cfc17e3dae00dc1359e35e5a2f534..4af8736786ef049e0b352ae213354e58169f0e8a 100644 --- a/Examples/python/fitting/ex10_FitGALAXIData/FitGALAXIData.py +++ b/Examples/python/fitting/ex10_FitGALAXIData/FitGALAXIData.py @@ -83,13 +83,12 @@ def run_fitting(): use_two_minimizers_strategy = False if use_two_minimizers_strategy: - strategy1 = ba.FitStrategyAdjustMinimizer("Genetic") - strategy1.getMinimizerOptions().setMaxIterations(3) + strategy1 = ba.AdjustMinimizerStrategy("Genetic") fit_suite.addFitStrategy(strategy1) # Second fit strategy will use another algorithm. # It will use best parameters found from previous minimization round. - strategy2 = ba.FitStrategyAdjustMinimizer("Minuit2", "Migrad") + strategy2 = ba.AdjustMinimizerStrategy("Minuit2", "Migrad") fit_suite.addFitStrategy(strategy2) # running fit diff --git a/Fit/Kernel/FitKernel.cpp b/Fit/Kernel/FitKernel.cpp index fee3e139c273d20d05eb764cf47b68fb41f5cec1..e0b4cc78cc147ed7b808c43a28a0d5150a2b7039 100644 --- a/Fit/Kernel/FitKernel.cpp +++ b/Fit/Kernel/FitKernel.cpp @@ -34,6 +34,11 @@ FitKernel::~FitKernel() } +void FitKernel::clear() +{ + m_impl->clear(); +} + void FitKernel::setMinimizer(const std::string &minimizerName, const std::string &algorithmName) { m_impl->setMinimizer(MinimizerFactory::createMinimizer(minimizerName, algorithmName)); @@ -41,6 +46,9 @@ void FitKernel::setMinimizer(const std::string &minimizerName, const std::string void FitKernel::setMinimizer(IMinimizer *minimizer) { + if(!minimizer) + throw std::runtime_error("FitKernel::setMinimizer() -> Error. Nullptr minimizer"); + m_impl->setMinimizer(minimizer); } @@ -88,3 +96,8 @@ const FitParameterSet *FitKernel::fitParameters() const { return m_impl->fitParameters(); } + +int FitKernel::functionCalls() const +{ + return m_impl->functionCalls(); +} diff --git a/Fit/Kernel/FitKernel.h b/Fit/Kernel/FitKernel.h index 78af1f34ac95070871d6943180b86eebe143d786..6bfe93f87f74791b8e15951945c4d1e2794a6709 100644 --- a/Fit/Kernel/FitKernel.h +++ b/Fit/Kernel/FitKernel.h @@ -36,6 +36,8 @@ public: FitKernel(); ~FitKernel(); + void clear(); + //! Sets minimizer with given name and algorithm type //! @param minimizerName The name of the minimizer //! @param algorithmName Optional name of the minimizer's algorithm @@ -63,6 +65,8 @@ public: FitParameterSet* fitParameters(); const FitParameterSet* fitParameters() const; + //! Number of objective function calls. + int functionCalls() const; private: std::unique_ptr<FitKernelImp> m_impl; }; diff --git a/Fit/Kernel/FitKernelImp.cpp b/Fit/Kernel/FitKernelImp.cpp index e4f2dac7d2e9a39d0ecd35c19a21cc6b347c600c..21293f0a3baa02279593789feb27b78881293cd8 100644 --- a/Fit/Kernel/FitKernelImp.cpp +++ b/Fit/Kernel/FitKernelImp.cpp @@ -28,6 +28,12 @@ FitKernelImp::~FitKernelImp() } +void FitKernelImp::clear() +{ + m_fit_parameters.clear(); + m_minimizer.reset(); +} + void FitKernelImp::setMinimizer(IMinimizer *minimizer) { m_minimizer.reset(minimizer); @@ -50,6 +56,12 @@ void FitKernelImp::setGradientFunction(gradient_function_t func, int ndatasize) void FitKernelImp::minimize() { + if(!m_minimizer) + throw std::runtime_error("FitKernelImp::minimize() -> Error. Minimizer is not defined."); + + if(m_fit_parameters.size() == 0) + throw std::runtime_error("FitKernelImp::minimize() -> Error. No fit parameters defined."); + m_time_interval.start(); objective_function_t func = @@ -65,10 +77,7 @@ void FitKernelImp::minimize() m_minimizer->setParameters(m_fit_parameters); - // minimize - try { - m_minimizer->minimize(); - } catch (int) {} + m_minimizer->minimize(); // set found values to the parameters m_minimizer->propagateResults(m_fit_parameters); @@ -97,3 +106,8 @@ IMinimizer *FitKernelImp::minimizer() { return m_minimizer.get(); } + +int FitKernelImp::functionCalls() const +{ + return m_objective_function.functionCalls(); +} diff --git a/Fit/Kernel/FitKernelImp.h b/Fit/Kernel/FitKernelImp.h index efd2221ce7bd5d8c843471daabf8d69bff6a77ad..794c101083101d4fdce4c4fde80c4f92bf80b212 100644 --- a/Fit/Kernel/FitKernelImp.h +++ b/Fit/Kernel/FitKernelImp.h @@ -36,6 +36,8 @@ public: FitKernelImp(); ~FitKernelImp(); + void clear(); + //! Sets minimizer void setMinimizer(IMinimizer* minimizer); @@ -55,6 +57,8 @@ public: IMinimizer *minimizer(); + //! Number of objective function calls. + int functionCalls() const; private: FitParameterSet m_fit_parameters; std::unique_ptr<IMinimizer> m_minimizer; diff --git a/Fit/Kernel/FitOptions.h b/Fit/Kernel/FitOptions.h index de519647eb57afca57c03746d91f9faeaac80ed9..20f4382038258b00e347c02a3f0cc56614698af1 100644 --- a/Fit/Kernel/FitOptions.h +++ b/Fit/Kernel/FitOptions.h @@ -28,10 +28,10 @@ class BA_CORE_API_ FitOptions FitOptions(); ~FitOptions(){} - double getDerivEpsilon() const; + double derivEpsilon() const; void setDerivEpsilon(double deriv_epsilon); - double getStepFactor() const; + double stepFactor() const; void setStepFactor(double step_factor); private: @@ -45,7 +45,7 @@ inline FitOptions::FitOptions() { } -inline double FitOptions::getDerivEpsilon() const +inline double FitOptions::derivEpsilon() const { return m_deriv_epsilon; } @@ -55,7 +55,7 @@ inline void FitOptions::setDerivEpsilon(double deriv_epsilon) m_deriv_epsilon = deriv_epsilon; } -inline double FitOptions::getStepFactor() const +inline double FitOptions::stepFactor() const { return m_step_factor; } @@ -65,8 +65,6 @@ inline void FitOptions::setStepFactor(double step_factor) m_step_factor = step_factor; } - - #endif // FITOPTIONS_H diff --git a/Fit/Kernel/IMinimizer.cpp b/Fit/Kernel/IMinimizer.cpp index 9053c928bccf8daa633e10d60378a7939f902d37..aa8eda5665756ef77a8bcc35d48690606646ee06 100644 --- a/Fit/Kernel/IMinimizer.cpp +++ b/Fit/Kernel/IMinimizer.cpp @@ -40,9 +40,9 @@ void IMinimizer::setParameters(const FitParameterSet & /*parameters*/) throw std::runtime_error("IMinimizer::setParameters() -> Not implemented."); } -double IMinimizer::getMinValue() const +double IMinimizer::minValue() const { - throw std::runtime_error("IMinimizer::getMinValue() -> Not implemented."); + throw std::runtime_error("IMinimizer::minValue() -> Not implemented."); } std::string IMinimizer::reportResults() const @@ -53,6 +53,10 @@ std::string IMinimizer::reportResults() const void IMinimizer::propagateResults(FitParameterSet &/*parameters*/) { - throw std::runtime_error("IMinimizer::propagateResults() -> Not implemented."); + throw std::runtime_error("IMinimizer::propagateResults() -> Not implemented."); +} +void IMinimizer::setOptions(const std::string &/*options*/) +{ + throw std::runtime_error("IMinimizer::setOptions() -> Not implemented."); } diff --git a/Fit/Kernel/IMinimizer.h b/Fit/Kernel/IMinimizer.h index da590095ee8d65e25b10e7536542fa5a80f983d0..b9b91c2c4cc9192f09d5fe8853a827cbad85c16b 100644 --- a/Fit/Kernel/IMinimizer.h +++ b/Fit/Kernel/IMinimizer.h @@ -32,6 +32,9 @@ class BA_CORE_API_ IMinimizer IMinimizer() { } virtual ~IMinimizer() { } + IMinimizer(const IMinimizer &other) = delete; + IMinimizer & operator=(const IMinimizer &other) = delete; + //! return name of the minimizer virtual std::string minimizerName() const; @@ -52,13 +55,16 @@ class BA_CORE_API_ IMinimizer virtual void setGradientFunction(gradient_function_t, int ){} //! Returns minimum function value - virtual double getMinValue() const; + virtual double minValue() const; //! Prints fit results virtual std::string reportResults() const; //! Propagates results of minimization to fit parameter set virtual void propagateResults(FitParameterSet& parameters); + + //! Sets option string to the minimizer + virtual void setOptions(const std::string &options); }; #endif diff --git a/Fit/Kernel/MinimizerFactory.cpp b/Fit/Kernel/MinimizerFactory.cpp index 0228f4292eaa0ed5acf0eafe58ca9fad39a3faf8..ee660ffa9214512221e8a9d60c7b2de9c0a0bacd 100644 --- a/Fit/Kernel/MinimizerFactory.cpp +++ b/Fit/Kernel/MinimizerFactory.cpp @@ -26,7 +26,7 @@ IMinimizer* MinimizerFactory::createMinimizer(const std::string& minimizerName, const std::string& algorithmType, - const std::string& ) + const std::string& optionString) { IMinimizer* result(0); @@ -61,6 +61,9 @@ IMinimizer* MinimizerFactory::createMinimizer(const std::string& minimizerName, throw std::runtime_error(ostr.str()); } + if(!optionString.empty()) + result->setOptions(optionString); + return result; } @@ -74,18 +77,6 @@ std::string MinimizerFactory::catalogueToString() return catalogue().toString(); } -//! Create minimizer using existing one. Only minimizer type and minimizer settings are propagated. -//! This method serves as a kind of 'shallow' clone for minimizer. -//! The reason why the minimizer doesn't have own clone method is because of complicate structure of -//! ROOT minimizer internals. -IMinimizer* MinimizerFactory::createMinimizer(const IMinimizer* other) -{ - IMinimizer *result = createMinimizer(other->minimizerName(), other->algorithmName()); -// if(other->getOptions()) -// result->setOptions(*other->getOptions()); - return result; -} - const MinimizerCatalogue& MinimizerFactory::catalogue() { static MinimizerCatalogue s_catalogue = MinimizerCatalogue(); diff --git a/Fit/Kernel/MinimizerFactory.h b/Fit/Kernel/MinimizerFactory.h index e0e07f16d826b61ea55256b86f69349fed2b3af8..82701b51b7801b3f4e5e3a49c46e5b966dca4de9 100644 --- a/Fit/Kernel/MinimizerFactory.h +++ b/Fit/Kernel/MinimizerFactory.h @@ -43,16 +43,13 @@ class BA_CORE_API_ MinimizerFactory { public: static IMinimizer* createMinimizer(const std::string& minimizerName, - const std::string& algorithmType="", - const std::string& =""); + const std::string& algorithmType = std::string(), + const std::string& optionString = std::string()); static void printCatalogue(); static std::string catalogueToString(); - //! Returns copy of minimizer type and settings. No full clone, would be too heavy! - static IMinimizer* createMinimizer(const IMinimizer* other); - static const MinimizerCatalogue& catalogue(); }; diff --git a/Fit/Kernel/MinimizerOptions.cpp b/Fit/Kernel/MinimizerOptions.cpp index 0e9a22517e8595ced6b22eb3e887ddcb944cf8a2..146dba29c4c15862b9af795e11ee03b3f280017e 100644 --- a/Fit/Kernel/MinimizerOptions.cpp +++ b/Fit/Kernel/MinimizerOptions.cpp @@ -14,9 +14,16 @@ // ************************************************************************** // #include "MinimizerOptions.h" +#include "StringUtils.h" #include <sstream> +#include <iostream> +#include <stdexcept> -std::string MinimizerOptions::toOptionString(const std::string &delimeter) const +namespace { +const std::string delimeter(";"); +} + +std::string MinimizerOptions::toOptionString() const { std::ostringstream result; for(auto option: m_options) { @@ -25,3 +32,37 @@ std::string MinimizerOptions::toOptionString(const std::string &delimeter) const return result.str(); } +void MinimizerOptions::setOptionString(const std::string &options) +{ + // splits multiple option string "Strategy=1;Tolerance=0.01;" + std::vector<std::string> tokens = Utils::String::split(options, delimeter); + try { + for(std::string opt : tokens) + if(opt.size()) + processCommand(opt); + } catch(std::exception &ex) { + std::ostringstream ostr; + ostr << "MinimizerOptions::setOptions() -> Error. Can't parse option string '" + << options << "'.\n, error message '" + << ex.what() << "'"; + throw std::runtime_error(ostr.str()); + } +} + +//! Process single option string 'Tolerance=0.01' and sets the value +//! to corresponding MultiOption + +void MinimizerOptions::processCommand(const std::string &command) +{ + std::vector<std::string> tokens = Utils::String::split(command, "="); + if(tokens.size() != 2) + throw std::runtime_error("MinimizerOptions::processOption() -> Can't parse option '"+ + command+"'"); + + std::string name = tokens[0]; + std::string value = tokens[1]; + + OptionContainer::option_t opt = option(name); + opt->setFromString(value); +} + diff --git a/Fit/Kernel/MinimizerOptions.h b/Fit/Kernel/MinimizerOptions.h index afbfefb20dbee419aee6df04f706be3113283a1d..bc8071b4667115be5888237e419bac679af5f3f0 100644 --- a/Fit/Kernel/MinimizerOptions.h +++ b/Fit/Kernel/MinimizerOptions.h @@ -25,9 +25,14 @@ class BA_CORE_API_ MinimizerOptions : public OptionContainer { public: - //! Returns string with all options using given delimeter - std::string toOptionString(const std::string &delimeter=";") const; + //! Returns string with all options (i.e. "Strategy=1;Tolerance=0.01;") + std::string toOptionString() const; + //! Set options from their string representation + void setOptionString(const std::string &options); + +private: + void processCommand(const std::string &command); }; #endif diff --git a/Fit/Kernel/MultiOption.cpp b/Fit/Kernel/MultiOption.cpp index 7790432f77a50f6e58d2863e1e99f281a3884893..82641611fc3cc3f864fa30e018d7f9bff033734d 100644 --- a/Fit/Kernel/MultiOption.cpp +++ b/Fit/Kernel/MultiOption.cpp @@ -14,6 +14,7 @@ // ************************************************************************** // #include "MultiOption.h" +#include <boost/lexical_cast.hpp> MultiOption::MultiOption(const std::string &name) : m_name(name) @@ -45,3 +46,20 @@ MultiOption::variant_t& MultiOption::defaultValue() { return m_default_value; } + +//! Sets the value of option from string. +//! TODO find more elegant way (without if/else and boost::lexical_cast + +void MultiOption::setFromString(const std::string &value) +{ + if(m_value.which() == 0) { + m_value = boost::lexical_cast<int>(value); + } + + else if(m_value.which() == 1) { + m_value = boost::lexical_cast<double>(value); + + } else { + m_value = value; + } +} diff --git a/Fit/Kernel/MultiOption.h b/Fit/Kernel/MultiOption.h index a622efe24ea8012830c1912f0f5e4383c19d21ce..ab887d3e7687efb6e759731e6730f4ab6bcdf28d 100644 --- a/Fit/Kernel/MultiOption.h +++ b/Fit/Kernel/MultiOption.h @@ -54,6 +54,8 @@ public: template<typename T> T getDefault() const; + void setFromString(const std::string &value); + private: std::string m_name; std::string m_description; diff --git a/Fit/RootAdapter/RootMinimizerAdapter.cpp b/Fit/RootAdapter/RootMinimizerAdapter.cpp index 2699da77b229c25d2cc908f91df86ea7880c2d4d..ab66be1f34c3bdb4376643914e3aa011ab926176 100644 --- a/Fit/RootAdapter/RootMinimizerAdapter.cpp +++ b/Fit/RootAdapter/RootMinimizerAdapter.cpp @@ -85,6 +85,11 @@ void RootMinimizerAdapter::setGradientFunction(gradient_function_t func, int nda m_obj_func->setGradientCallback(func, ndatasize); } +double RootMinimizerAdapter::minValue() const +{ + return rootMinimizer()->MinValue(); +} + std::string RootMinimizerAdapter::reportResults() const { MinimizerResultsHelper reporter; @@ -112,7 +117,7 @@ std::map<std::string, std::string> RootMinimizerAdapter::statusMap() const result["ProvidesError"] = "Doesn't provide error calculation"; } - result["MinValue"] = to_string_scientific(rootMinimizer()->MinValue()); + result["MinValue"] = to_string_scientific(minValue()); return result; } @@ -138,6 +143,11 @@ void RootMinimizerAdapter::propagateResults(FitParameterSet ¶meters) } } +void RootMinimizerAdapter::setOptions(const std::string &optionString) +{ + options().setOptionString(optionString); +} + //! Propagate fit parameter down to ROOT minimizer. void RootMinimizerAdapter::setParameter(size_t index, const FitParameter *par) diff --git a/Fit/RootAdapter/RootMinimizerAdapter.h b/Fit/RootAdapter/RootMinimizerAdapter.h index 065dfc627d92e017246bd54e4f5b300eddd5c9b3..04b9eb8ea3ac546b08c0207d9e92dee5f00a3fd7 100644 --- a/Fit/RootAdapter/RootMinimizerAdapter.h +++ b/Fit/RootAdapter/RootMinimizerAdapter.h @@ -52,6 +52,8 @@ public: void setGradientFunction(gradient_function_t func, int ndatasize) override final; + double minValue() const override final; + std::string reportResults() const override final; MinimizerOptions& options() { return m_options; } @@ -69,6 +71,9 @@ public: //! Propagates results of minimization to fit parameter set void propagateResults(FitParameterSet& parameters) override; + //! Sets option string to the minimizer + void setOptions(const std::string &optionString) override final; + protected: RootMinimizerAdapter(const MinimizerInfo &minimizerInfo); diff --git a/Fit/Utils/StringUtils.cpp b/Fit/Utils/StringUtils.cpp index 698f96c4f2158d0df6fe1c2bd6dffd5043d26908..c2f778db68450401aa024eaf388852a1209b74d3 100644 --- a/Fit/Utils/StringUtils.cpp +++ b/Fit/Utils/StringUtils.cpp @@ -19,7 +19,7 @@ //! Returns true if text matches pattern with wildcards '*' and '?'. -bool StringUtils::matchesPattern(const std::string& text, const std::string& wildcardPattern) +bool Utils::String::matchesPattern(const std::string& text, const std::string& wildcardPattern) { bool caseSensitive(true); @@ -52,9 +52,35 @@ bool StringUtils::matchesPattern(const std::string& text, const std::string& wil //! Returns string right-padded with blanks. -std::string StringUtils::padRight(const std::string& name, int length) +std::string Utils::String::padRight(const std::string& name, int length) { std::string result = name; result.resize(length,' '); return result; } + +//! Returns token vector obtained by splitting string at delimiters. + +std::vector<std::string> Utils::String::split(const std::string& text, const std::string& delimiter) +{ + std::vector<std::string> tokens; + boost::split(tokens, text, boost::is_any_of(delimiter)); + return tokens; +} + +void Utils::String::replaceItemsFromString( + std::string& text, const std::vector<std::string>& items, const std::string& replacement) +{ + for(size_t i=0; i<items.size(); ++i) + boost::replace_all(text, items[i], replacement); +} + +std::string Utils::String::join(const std::vector<std::string>& joinable, const std::string& joint) +{ + std::string result; + size_t n = joinable.size(); + for(size_t i=0; i<n-1; ++i) + result += joinable[i] + joint; + result += joinable[n-1]; + return result; +} diff --git a/Fit/Utils/StringUtils.h b/Fit/Utils/StringUtils.h index 8075caf00ca08248a3c47d4bfc03c8218aac9fdf..ec787543261715d879e9845e34e2115e2bc78e38 100644 --- a/Fit/Utils/StringUtils.h +++ b/Fit/Utils/StringUtils.h @@ -20,13 +20,26 @@ #include <string> #include <vector> -namespace StringUtils { +namespace Utils { - //! Returns true if text matches pattern with wildcards '*' and '?'. - BA_CORE_API_ bool matchesPattern(const std::string& text, const std::string& wildcardPattern); +namespace String { - BA_CORE_API_ std::string padRight(const std::string& name, int length); +//! Returns true if text matches pattern with wildcards '*' and '?'. +BA_CORE_API_ bool matchesPattern(const std::string& text, const std::string& wildcardPattern); -} // namespace StringUtils +BA_CORE_API_ std::string padRight(const std::string& name, int length); -#endif // STRINGUTILS_H +//! Split string into vector of string using delimeter. +BA_CORE_API_ std::vector<std::string> split(const std::string& text, const std::string& delimeter); + +//! replace all occurences of items from string text with delimeter +BA_CORE_API_ void replaceItemsFromString(std::string& text, const std::vector<std::string>& items, + const std::string& replacement=std::string("")); + +//! Returns string obtain by joining vector elements +BA_CORE_API_ std::string join(const std::vector<std::string>& joinable, const std::string& joint); + +} +} + +#endif diff --git a/Fit/Utils/TimeInterval.cpp b/Fit/Utils/TimeInterval.cpp index ae1b56f16822446f6968dd14052a2b0ddee29ff0..ee9aadc5d4fca89dbc8ea575a03fac7bb359edb7 100644 --- a/Fit/Utils/TimeInterval.cpp +++ b/Fit/Utils/TimeInterval.cpp @@ -21,6 +21,8 @@ class TimeIntervalImp public: boost::posix_time::ptime m_start_time; boost::posix_time::ptime m_end_time; + bool m_is_running; + TimeIntervalImp() : m_is_running(false){} }; TimeInterval::TimeInterval() @@ -36,16 +38,23 @@ TimeInterval::~TimeInterval() void TimeInterval::start() { + m_imp->m_is_running = true; m_imp->m_start_time = boost::posix_time::microsec_clock::local_time(); } void TimeInterval::stop() { + m_imp->m_is_running = false; m_imp->m_end_time = boost::posix_time::microsec_clock::local_time(); } double TimeInterval::runTime() const { - boost::posix_time::time_duration diff = m_imp->m_end_time - m_imp->m_start_time; + boost::posix_time::time_duration diff ; + if(m_imp->m_is_running) { + diff = boost::posix_time::microsec_clock::local_time() - m_imp->m_start_time; + } else { + diff = m_imp->m_end_time - m_imp->m_start_time; + } return diff.total_milliseconds()/1000.; } diff --git a/GUI/coregui/Models/DomainFittingBuilder.cpp b/GUI/coregui/Models/DomainFittingBuilder.cpp index e2f68a3623f2e9ce70d064d94c7165060c0c11ac..930a5749d4c372bea2daa4608f7a85766b7b5d72 100644 --- a/GUI/coregui/Models/DomainFittingBuilder.cpp +++ b/GUI/coregui/Models/DomainFittingBuilder.cpp @@ -48,8 +48,7 @@ std::shared_ptr<FitSuite> DomainFittingBuilder::createFitSuite(JobItem *jobItem) QString link = linkItem->getItemValue(FitParameterLinkItem::P_LINK).toString(); std::string domainPath = "*" + ModelPath::translateParameterName(jobItem->getMultiLayerItem()->parent(), link); linkItem->setItemValue(FitParameterLinkItem::P_DOMAIN, QString::fromStdString(domainPath)); -// result->addFitParameter(domainPath, value, parItem->getLimits()); - assert(0); + result->addFitParameter(domainPath, value, parItem->getAttLimits()); //FIXME only link is possible at the time due to limitations in FitCore break; } diff --git a/GUI/coregui/Models/FitParameterItems.cpp b/GUI/coregui/Models/FitParameterItems.cpp index 24ffdb08b4d59fed8e509a5b37161474760412f0..57259be649509278b60480ed3a87d84d2f2ea2f3 100644 --- a/GUI/coregui/Models/FitParameterItems.cpp +++ b/GUI/coregui/Models/FitParameterItems.cpp @@ -112,18 +112,31 @@ void FitParameterItem::initMinMaxValues(const RealLimits &limits) //! Constructs Limits correspodning to current GUI settings. -RealLimits FitParameterItem::getLimits() +AttLimits FitParameterItem::getAttLimits() { - if(isLimited()) - return RealLimits::limited(getItemValue(P_MIN).toDouble(), getItemValue(P_MAX).toDouble()); + if(isFixed()) { + return AttLimits::fixed(); + } - if(isLowerLimited()) - return RealLimits::lowerLimited(getItemValue(P_MIN).toDouble()); + else if(isLimited()) { + return AttLimits::limited(getItemValue(P_MIN).toDouble(), getItemValue(P_MAX).toDouble()); + } - if(isUpperLimited()) - return RealLimits::upperLimited(getItemValue(P_MAX).toDouble()); + else if(isLowerLimited()) { + return AttLimits::lowerLimited(getItemValue(P_MIN).toDouble()); + } - return RealLimits::limitless(); + else if(isUpperLimited()) { + return AttLimits::upperLimited(getItemValue(P_MAX).toDouble()); + } + + else if(isFree()) { + return AttLimits::limitless(); + } + + else { + throw GUIHelpers::Error("FitParameterItem::getLimits() -> Error. Unknown limit type"); + } } //! Enables/disables min, max properties on FitParameterItem's type diff --git a/GUI/coregui/Models/FitParameterItems.h b/GUI/coregui/Models/FitParameterItems.h index 2e51e175e35efa2770356449f6c6c615c034a018..412bf27c378c20e92b33cfd3444fd945bb7fbf64 100644 --- a/GUI/coregui/Models/FitParameterItems.h +++ b/GUI/coregui/Models/FitParameterItems.h @@ -17,7 +17,7 @@ #define FITPARAMETERITEMS_H #include "SessionItem.h" - +#include "AttLimits.h" //! FitParameterItems is a collection of items to define fit parameters in GUI. @@ -48,7 +48,7 @@ public: void initMinMaxValues(const RealLimits &limits); - RealLimits getLimits(); + AttLimits getAttLimits(); private: void onTypeChange(); diff --git a/Tests/Functional/Fit/AdjustMinimizerStrategyTest.cpp b/Tests/Functional/Fit/AdjustMinimizerStrategyTest.cpp new file mode 100644 index 0000000000000000000000000000000000000000..fc92b196026758dc46829ddb844a5d1a33b105b7 --- /dev/null +++ b/Tests/Functional/Fit/AdjustMinimizerStrategyTest.cpp @@ -0,0 +1,55 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Tests/Functional/Fit/AdjustMinimizerStrategyTest.cpp +//! @brief Implements class AdjustMinimizerStrategyTest. +//! +//! @homepage http://www.bornagainproject.org +//! @license GNU General Public License v3 or higher (see COPYING) +//! @copyright Forschungszentrum Jülich GmbH 2015 +//! @authors Scientific Computing Group at MLZ Garching +//! @authors C. Durniak, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke +// +// ************************************************************************** // + +#include "AdjustMinimizerStrategyTest.h" +#include "Units.h" +#include "FitSuite.h" +#include "MinimizerFactory.h" +#include "AdjustMinimizerStrategy.h" +#include "MinimizerConstants.h" + + +AdjustMinimizerStrategyTest::AdjustMinimizerStrategyTest() + : IMinimizerTest("undefined", "undefined") +{} + +void AdjustMinimizerStrategyTest::initParameterPlan() +{ + m_parameters.clear(); + m_parameters.push_back(FitParameterPlan("*Height", 2.0 * Units::nanometer, + 5.0 * Units::nanometer, + AttLimits::limited(0.01, 30.0), 0.05)); + m_parameters.push_back(FitParameterPlan("*Radius", 10.0 * Units::nanometer, + 5.0 * Units::nanometer, + AttLimits::limited(0.01, 30.0), 0.05)); + +} + +std::unique_ptr<FitSuite> AdjustMinimizerStrategyTest::createFitSuite() { + std::unique_ptr<FitSuite> result(new FitSuite()); + result->initPrint(50); + + result->addFitStrategy(AdjustMinimizerStrategy( + MinimizerNames::Genetic, std::string(), "MaxIterations=2;RandomSeed=1")); + + result->addFitStrategy(AdjustMinimizerStrategy(MinimizerNames::Minuit2, + AlgorithmNames::Migrad)); + + for (size_t i = 0; i < m_parameters.size(); ++i) + result->addFitParameter(m_parameters[i].m_name, + m_parameters[i].m_start_value, + m_parameters[i].m_limits, m_parameters[i].m_step); + return result; +} diff --git a/Tests/Functional/Fit/ExperimentalFitTest.h b/Tests/Functional/Fit/AdjustMinimizerStrategyTest.h similarity index 61% rename from Tests/Functional/Fit/ExperimentalFitTest.h rename to Tests/Functional/Fit/AdjustMinimizerStrategyTest.h index 5df4e31ee004697f0a9d9e7c87cc1d948f5f8da5..80afc93156d8c2dfbacf1e519bddfb924a71f4f9 100644 --- a/Tests/Functional/Fit/ExperimentalFitTest.h +++ b/Tests/Functional/Fit/AdjustMinimizerStrategyTest.h @@ -2,8 +2,8 @@ // // BornAgain: simulate and fit scattering at grazing incidence // -//! @file Tests/Functional/Fit/ExperimentalFitTest.h -//! @brief Declares class ExperimentalFitTest. +//! @file Tests/Functional/Fit/MinimizerStrategyTest.h +//! @brief Declares class MinimizerStrategyTest. //! //! @homepage http://www.bornagainproject.org //! @license GNU General Public License v3 or higher (see COPYING) @@ -18,18 +18,18 @@ #include "IMinimizerTest.h" -//! @class ExperimentalFitTest +//! @class AdjustMinimizerStrategyTest //! @ingroup standard_samples -//! @brief Experimental test on the way to refactored minimizers +//! @brief The AdjustMinimizerStrategyTest verifies fitting with the chain of minimizers. -class ExperimentalFitTest : public IMinimizerTest +class AdjustMinimizerStrategyTest : public IMinimizerTest { public: - ExperimentalFitTest(); + AdjustMinimizerStrategyTest(); protected: - virtual std::unique_ptr<FitSuite> createFitSuite(); - + void initParameterPlan() override; + std::unique_ptr<FitSuite> createFitSuite() override; }; -#endif // EXPERIMENTALFITTEST_H +#endif diff --git a/Tests/Functional/Fit/CMakeLists.txt b/Tests/Functional/Fit/CMakeLists.txt index 22253d01748272b293fad133464663f53fb7725c..c06585d09c0b385cf10be7e4cd4f241ca482af1c 100644 --- a/Tests/Functional/Fit/CMakeLists.txt +++ b/Tests/Functional/Fit/CMakeLists.txt @@ -11,7 +11,7 @@ set(test_cases Minuit2_Fumili Minuit2_Migrad RectDetectorFit - ExperimentalFit + AdjustMinimizerStrategy StandaloneFit ) diff --git a/Tests/Functional/Fit/ExperimentalFitTest.cpp b/Tests/Functional/Fit/ExperimentalFitTest.cpp deleted file mode 100644 index bceb8e90d6f0f3c86ca334fbdc4a56705fefb595..0000000000000000000000000000000000000000 --- a/Tests/Functional/Fit/ExperimentalFitTest.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Tests/Functional/Fit/ExperimentalFitTest.cpp -//! @brief Implements class ExperimentalFitTest. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2015 -//! @authors Scientific Computing Group at MLZ Garching -//! @authors C. Durniak, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke -// -// ************************************************************************** // - -#include "ExperimentalFitTest.h" -#include "Minuit2Minimizer.h" -#include "FitSuite.h" - -ExperimentalFitTest::ExperimentalFitTest() - : IMinimizerTest("Minuit2", "Migrad") -{} - -std::unique_ptr<FitSuite> ExperimentalFitTest::createFitSuite() -{ - std::unique_ptr<FitSuite> result(new FitSuite()); - result->initPrint(10); - result->setMinimizer( new Minuit2Minimizer() ); - for (const auto& par: m_parameters) - result->addFitParameter( - par.m_name, par.m_start_value, - AttLimits::lowerLimited(0.01), par.m_start_value/100.); - return result; -} diff --git a/Tests/Functional/Fit/FitParameterPlan.cpp b/Tests/Functional/Fit/FitParameterPlan.cpp index e7c08b08ac492e7e47767260292e5cd1d495222c..0f2c8a79a2becf2716b94e7aa553a5d92d70e44d 100644 --- a/Tests/Functional/Fit/FitParameterPlan.cpp +++ b/Tests/Functional/Fit/FitParameterPlan.cpp @@ -15,9 +15,22 @@ #include "FitParameterPlan.h" -FitParameterPlan::FitParameterPlan(double start_value, double expected_value, +FitParameterPlan::FitParameterPlan() + : m_name(std::string()) + , m_start_value(0.0) + , m_expected_value(0.0) + , m_limits(AttLimits::limitless()) + , m_step(0.0) + , m_threshold(0.0) +{ + +} + +FitParameterPlan::FitParameterPlan(const std::string &name, double start_value, + double expected_value, const AttLimits &limits, double step) - : m_start_value(start_value) + : m_name(name) + , m_start_value(start_value) , m_expected_value(expected_value) , m_limits(limits) , m_step(step) @@ -25,8 +38,3 @@ FitParameterPlan::FitParameterPlan(double start_value, double expected_value, { } - -FitParameterPlan::~FitParameterPlan() -{ - -} diff --git a/Tests/Functional/Fit/FitParameterPlan.h b/Tests/Functional/Fit/FitParameterPlan.h index d86c610f08cc65926ed800ccef0b06f56dd8b5ba..9910206e28d7d344bc4a72ecc9a8e60fadcaa37b 100644 --- a/Tests/Functional/Fit/FitParameterPlan.h +++ b/Tests/Functional/Fit/FitParameterPlan.h @@ -26,10 +26,11 @@ class FitParameterPlan { public: - FitParameterPlan(double start_value, double expected_value, + FitParameterPlan(); + FitParameterPlan(const std::string &name, double start_value, double expected_value, const AttLimits &limits, double step); - ~FitParameterPlan(); + std::string m_name; double m_start_value; //!< starting value of fit parameter double m_expected_value; //!< expected value to find in the fit AttLimits m_limits; //!< limits of fit parameter diff --git a/Tests/Functional/Fit/IMinimizerTest.cpp b/Tests/Functional/Fit/IMinimizerTest.cpp index 360173f724e494abda468b480c1894df5a0b3d6f..3d0b746cb1d55306094c2a2d93c75a4ab9e46ad1 100644 --- a/Tests/Functional/Fit/IMinimizerTest.cpp +++ b/Tests/Functional/Fit/IMinimizerTest.cpp @@ -25,13 +25,13 @@ #include <boost/format.hpp> #include <memory> -IMinimizerTest::TestParameter::TestParameter(const std::string &name, - double real_value, - double start_value) - : m_name(name) - , m_real_value(real_value) - , m_start_value(start_value) - , m_found_value(0.0) {} +//IMinimizerTest::TestParameter::TestParameter(const std::string &name, +// double real_value, +// double start_value) +// : m_name(name) +// , m_real_value(real_value) +// , m_start_value(start_value) +// , m_found_value(0.0) {} IMinimizerTest::IMinimizerTest(const std::string& minimizer_name, const std::string& minimizer_algorithm) @@ -41,18 +41,14 @@ IMinimizerTest::IMinimizerTest(const std::string& minimizer_name, , m_sample_builder_name("CylindersInBABuilder") , m_parameter_tolerance(0.01) { - m_parameters.push_back( - TestParameter("*Height", 5.0 * Units::nanometer, 4.5 * Units::nanometer)); - m_parameters.push_back( - TestParameter("*Radius", 5.0 * Units::nanometer, 5.5 * Units::nanometer)); } bool IMinimizerTest::runTest() { + initParameterPlan(); + std::unique_ptr<MultiLayer> sample(createSample()); - for (size_t i = 0; i < m_parameters.size(); ++i) - sample->setParameterValue(m_parameters[i].m_name, m_parameters[i].m_real_value); std::unique_ptr<GISASSimulation> simulation(createSimulation()); simulation->setSample(*sample.get()); @@ -67,34 +63,46 @@ bool IMinimizerTest::runTest() fitSuite->runFit(); std::vector<double> valuesAtMinimum = fitSuite->fitParameters()->values(); - for (size_t i = 0; i < m_parameters.size(); ++i) - m_parameters[i].m_found_value = valuesAtMinimum[i]; // analyze results bool success = true; for (size_t i = 0; i < m_parameters.size(); ++i) { - double diff = std::abs(m_parameters[i].m_found_value - m_parameters[i].m_real_value) - / m_parameters[i].m_real_value; + double foundValue = valuesAtMinimum[i]; + double diff = std::abs(foundValue - m_parameters[i].m_expected_value) + / m_parameters[i].m_expected_value; if (diff > m_parameter_tolerance) success = false; std::cout << boost::format("%|12t| %-10s : %-6.4f (diff %6.4g) %s\n") % - m_parameters[i].m_name % m_parameters[i].m_found_value % diff % + m_parameters[i].m_name % foundValue % diff % (success ? "OK" : "FAILED"); } return success; } +//! Creates plan with initial/real values of fit parameters. + +void IMinimizerTest::initParameterPlan() { + m_parameters.clear(); + m_parameters.push_back(FitParameterPlan("*Height", 4.5 * Units::nanometer, + 5.0 * Units::nanometer, + AttLimits::lowerLimited(0.01), 0.01)); + m_parameters.push_back(FitParameterPlan("*Radius", 5.5 * Units::nanometer, + 5.0 * Units::nanometer, + AttLimits::lowerLimited(0.01), 0.01)); +} + std::unique_ptr<FitSuite> IMinimizerTest::createFitSuite() { std::unique_ptr<FitSuite> result(new FitSuite()); result->initPrint(10); IMinimizer* minimizer = MinimizerFactory::createMinimizer( - m_minimizer_name, m_minimizer_algorithm); + m_minimizer_name, m_minimizer_algorithm); result->setMinimizer(minimizer); + for (size_t i = 0; i < m_parameters.size(); ++i) result->addFitParameter( m_parameters[i].m_name, m_parameters[i].m_start_value, - AttLimits::lowerLimited(0.01), m_parameters[i].m_start_value / 100.); + m_parameters[i].m_limits, m_parameters[i].m_start_value / 100.); return result; } @@ -102,6 +110,8 @@ std::unique_ptr<MultiLayer> IMinimizerTest::createSample() { SampleBuilderFactory builderFactory; std::unique_ptr<MultiLayer> result(builderFactory.createSample(m_sample_builder_name)); + for (size_t i = 0; i < m_parameters.size(); ++i) + result->setParameterValue(m_parameters[i].m_name, m_parameters[i].m_expected_value); return result; } diff --git a/Tests/Functional/Fit/IMinimizerTest.h b/Tests/Functional/Fit/IMinimizerTest.h index 95ec49cb61ac890a2710ce0ced9b974d68411ee1..af82f67f50f575f559b0a1729b80543fc762238c 100644 --- a/Tests/Functional/Fit/IMinimizerTest.h +++ b/Tests/Functional/Fit/IMinimizerTest.h @@ -18,6 +18,7 @@ #include "IFunctionalTest.h" #include "OutputData.h" +#include "FitParameterPlan.h" #include <memory> class FitSuite; @@ -37,25 +38,16 @@ public: bool runTest() final; - class TestParameter - { - public: - TestParameter(const std::string &name, double real_value, double start_value); - std::string m_name; //!< sample parameter name - double m_real_value; //!< real value to construct the sample - double m_start_value; //!< starting value for the minimizer - double m_found_value; //!< the value found during the fit - }; - void setParameterTolerance(double value) { m_parameter_tolerance = value; } protected: + virtual void initParameterPlan(); virtual std::unique_ptr<FitSuite> createFitSuite(); virtual std::unique_ptr<MultiLayer> createSample(); virtual std::unique_ptr<GISASSimulation> createSimulation(); virtual std::unique_ptr<OutputData<double>> createOutputData(const GISASSimulation* simulation); - std::vector<TestParameter> m_parameters; + std::vector<FitParameterPlan> m_parameters; std::string m_minimizer_name; std::string m_minimizer_algorithm; std::string m_simulation_name; diff --git a/Tests/Functional/Fit/ObjectiveFunctionPlan.cpp b/Tests/Functional/Fit/ObjectiveFunctionPlan.cpp index d8b5f63609ffbae690442df0799bc11cb4f0a2c5..cccc0353028a834807657fefad5a667bb7613291 100644 --- a/Tests/Functional/Fit/ObjectiveFunctionPlan.cpp +++ b/Tests/Functional/Fit/ObjectiveFunctionPlan.cpp @@ -29,7 +29,8 @@ ObjectiveFunctionPlan::ObjectiveFunctionPlan(const std::string &name, objective_ void ObjectiveFunctionPlan::addParameter(double start_value, double expected_value, const AttLimits &limits, double step) { - m_parameters.push_back(FitParameterPlan(start_value, expected_value, limits, step)); + std::string name = "par"+std::to_string(m_parameters.size()); + m_parameters.push_back(FitParameterPlan(name, start_value, expected_value, limits, step)); } //! Plan for finding rosenbrock function minimum diff --git a/Tests/Functional/Fit/StandardFitsFactory.cpp b/Tests/Functional/Fit/StandardFitsFactory.cpp index dabd05c54e8d4738598708e2ab5ad0acad7dbcbc..d505c3a0303faa248cdfd24c9dcb03bb69cc2712 100644 --- a/Tests/Functional/Fit/StandardFitsFactory.cpp +++ b/Tests/Functional/Fit/StandardFitsFactory.cpp @@ -16,7 +16,7 @@ #include "StandardFitsFactory.h" #include "MinimizerTests.h" #include "RectDetectorFitTest.h" -#include "ExperimentalFitTest.h" +#include "AdjustMinimizerStrategyTest.h" #include "StandaloneFitTest.h" #include <boost/format.hpp> @@ -63,9 +63,9 @@ StandardFitsFactory::StandardFitsFactory() "Fit of rectangular detector, with crop and masks applied"); registerItem( - "ExperimentalFit", - create_new<ExperimentalFitTest>, - "Experimental fit on the way to refactoring"); + "AdjustMinimizerStrategy", + create_new<AdjustMinimizerStrategyTest>, + "Test of minimizer chain: genetic -> minuit2"); registerItem( "StandaloneFit", diff --git a/Tests/Functional/TestMachinery/StandardSimulationsRegistry.cpp b/Tests/Functional/TestMachinery/StandardSimulationsRegistry.cpp index 22c7625f04ba961adef73c6876080e47b80d4037..33acf4264f6b219b2c64df008b1f607137b41c23 100644 --- a/Tests/Functional/TestMachinery/StandardSimulationsRegistry.cpp +++ b/Tests/Functional/TestMachinery/StandardSimulationsRegistry.cpp @@ -365,8 +365,8 @@ void StandardSimulationsRegistry::printCatalogue(std::ostream& ostr) const { for(auto it = m_catalogue.begin(); it != m_catalogue.end(); ++it) { SimulationInfo info = it->second; - ostr << StringUtils::padRight(info.m_test_name, 20) << " | "; - ostr << StringUtils::padRight(info.m_test_description, 40) << " | "; + ostr << Utils::String::padRight(info.m_test_name, 20) << " | "; + ostr << Utils::String::padRight(info.m_test_description, 40) << " | "; ostr << info.m_simulation_name << ", "; ostr << info.m_sample_builder_name << ", "; ostr << info.m_subtest_type; diff --git a/Tests/UnitTests/Fit/0/MinimizerOptionsTest.h b/Tests/UnitTests/Fit/0/MinimizerOptionsTest.h new file mode 100644 index 0000000000000000000000000000000000000000..ab6b6a4b6484ad16b90b4591c8e53c339f4e065e --- /dev/null +++ b/Tests/UnitTests/Fit/0/MinimizerOptionsTest.h @@ -0,0 +1,49 @@ +#ifndef MINIMIZEROPTIONSTEST_H +#define MINIMIZEROPTIONSTEST_H + +#include "MinimizerOptions.h" +#include "gtest/gtest.h" +#include <exception> + +class MinimizerOptionsTest : public ::testing::Test { +protected: + MinimizerOptionsTest(){} +}; + +TEST_F(MinimizerOptionsTest, toOptionString) +{ + MinimizerOptions options; + + options.addOption("option_1", 99); + options.addOption("option_2", 1.1); + options.addOption("option_3", "xxx"); + + EXPECT_EQ(options.toOptionString(), "option_1=99;option_2=1.1;option_3=xxx;"); +} + + +TEST_F(MinimizerOptionsTest, setOptionsFromString) +{ + MinimizerOptions options; + + options.addOption("Strategy", 1); + options.addOption("Tolerance", 0.01); + options.addOption("Algorithm", "Default"); + EXPECT_EQ(1, options.optionValue<int>("Strategy")); + EXPECT_EQ(0.01, options.optionValue<double>("Tolerance")); + + options.setOptionString("Strategy=2;"); + EXPECT_EQ(2, options.optionValue<int>("Strategy")); + options.setOptionString("Strategy=3"); + EXPECT_EQ(3, options.optionValue<int>("Strategy")); + EXPECT_EQ(0.01, options.optionValue<double>("Tolerance")); + + options.setOptionString("Strategy=5;Tolerance=0.0001;Algorithm=Unknown"); + EXPECT_EQ(5, options.optionValue<int>("Strategy")); + EXPECT_EQ(0.0001, options.optionValue<double>("Tolerance")); + EXPECT_EQ("Unknown", options.optionValue<std::string>("Algorithm")); + + EXPECT_THROW(options.setOptionString("Strategy=5;XXX=y;Tolerance=0.0001;"), std::runtime_error); +} + +#endif diff --git a/Tests/UnitTests/Fit/0/MultiOptionTest.h b/Tests/UnitTests/Fit/0/MultiOptionTest.h index dd3e0b22f4264abe44ef53714257dcc6e362a72d..efa4942812fad74140603735264ca5d35fa78794 100644 --- a/Tests/UnitTests/Fit/0/MultiOptionTest.h +++ b/Tests/UnitTests/Fit/0/MultiOptionTest.h @@ -84,4 +84,22 @@ TEST_F(MultiOptionTest, Assignment) EXPECT_EQ(double_value, copy.getDefault<double>()); } +TEST_F(MultiOptionTest, SetFromString) +{ + MultiOption opt("name", 2.0); + opt.setFromString("2.1"); + EXPECT_EQ(2.1, opt.get<double>()); + opt.setFromString("2"); + EXPECT_EQ(2.0, opt.get<double>()); + + MultiOption opt2("name", 99); + opt2.setFromString("100"); + EXPECT_EQ(100, opt2.get<int>()); + + MultiOption opt3("name", "xxx"); + opt3.setFromString("yyy"); + EXPECT_EQ("yyy", opt3.get<std::string>()); +} + + #endif diff --git a/Tests/UnitTests/Fit/0/OptionContainerTest.h b/Tests/UnitTests/Fit/0/OptionContainerTest.h index 8ec636870b514661f0035cfa4514bd6aa6556a68..516cc27dd9bd380f8dac501117661c6bd0b6600c 100644 --- a/Tests/UnitTests/Fit/0/OptionContainerTest.h +++ b/Tests/UnitTests/Fit/0/OptionContainerTest.h @@ -68,7 +68,6 @@ TEST_F(OptionContainerTest, setOptionValue) // setting wrong type to the option EXPECT_THROW(test.setOptionValue("option #1", 99.0), std::runtime_error); - } TEST_F(OptionContainerTest, Copying) diff --git a/Tests/UnitTests/Fit/0/testlist.h b/Tests/UnitTests/Fit/0/testlist.h index fa102bbe5157d07f202bdef5d73ebe062f69b5a2..0723625645c832a27ed7d0d8be0cb8c3fb6d067d 100644 --- a/Tests/UnitTests/Fit/0/testlist.h +++ b/Tests/UnitTests/Fit/0/testlist.h @@ -6,6 +6,7 @@ #include "FitParameterSetTest.h" #include "FitParameterTest.h" #include "FitSuiteTest.h" +#include "MinimizerOptionsTest.h" #include "MultiOptionTest.h" #include "OptionContainerTest.h" #include "RealLimitsTest.h" diff --git a/Wrap/swig/libBornAgainCore.i b/Wrap/swig/libBornAgainCore.i index f2fe3c4a1a6d1cf25d637ce6ba5228e79229f459..6bc1550f3187e79c96a5390ed7c1f9c1a1dd067d 100644 --- a/Wrap/swig/libBornAgainCore.i +++ b/Wrap/swig/libBornAgainCore.i @@ -218,7 +218,7 @@ #include "IIntensityNormalizer.h" #include "ISquaredFunction.h" #include "MathFunctions.h" -#include "FitStrategyAdjustMinimizer.h" +#include "AdjustMinimizerStrategy.h" %} // ownership @@ -290,8 +290,7 @@ %include "FitSuite.h" %include "FitSuiteObjects.h" %include "MathFunctions.h" -%include "FitStrategyAdjustMinimizer.h" - +%include "AdjustMinimizerStrategy.h" %include "IFactory.h" %include "IMultiLayerBuilder.h" %include "ISampleVisitor.h" diff --git a/auto/Wrap/libBornAgainCore.py b/auto/Wrap/libBornAgainCore.py index b349aa0d34e91842ce09b7ddb89e78975bde9b88..016f36642889a1334ea892c5bd612d3e74ad416f 100644 --- a/auto/Wrap/libBornAgainCore.py +++ b/auto/Wrap/libBornAgainCore.py @@ -4643,6 +4643,8 @@ class IFitStrategy(INamed): def __init__(self, *args, **kwargs): raise AttributeError("No constructor defined - class is abstract") __repr__ = _swig_repr + __swig_destroy__ = _libBornAgainCore.delete_IFitStrategy + __del__ = lambda self: None def clone(self): """ @@ -4653,8 +4655,6 @@ class IFitStrategy(INamed): """ return _libBornAgainCore.IFitStrategy_clone(self) - __swig_destroy__ = _libBornAgainCore.delete_IFitStrategy - __del__ = lambda self: None def init(self, fit_suite): """ @@ -4713,7 +4713,7 @@ class FitStrategyDefault(IFitStrategy): def clone(self): """ - clone(FitStrategyDefault self) -> IFitStrategy + clone(FitStrategyDefault self) -> FitStrategyDefault IFitStrategy * FitStrategyDefault::clone() const @@ -5687,9 +5687,9 @@ class FitOptions(_object): __swig_destroy__ = _libBornAgainCore.delete_FitOptions __del__ = lambda self: None - def getDerivEpsilon(self): - """getDerivEpsilon(FitOptions self) -> double""" - return _libBornAgainCore.FitOptions_getDerivEpsilon(self) + def derivEpsilon(self): + """derivEpsilon(FitOptions self) -> double""" + return _libBornAgainCore.FitOptions_derivEpsilon(self) def setDerivEpsilon(self, deriv_epsilon): @@ -5697,9 +5697,9 @@ class FitOptions(_object): return _libBornAgainCore.FitOptions_setDerivEpsilon(self, deriv_epsilon) - def getStepFactor(self): - """getStepFactor(FitOptions self) -> double""" - return _libBornAgainCore.FitOptions_getStepFactor(self) + def stepFactor(self): + """stepFactor(FitOptions self) -> double""" + return _libBornAgainCore.FitOptions_stepFactor(self) def setStepFactor(self, step_factor): @@ -6542,98 +6542,64 @@ def GenerateNormalRandom(average, std_dev): """ return _libBornAgainCore.GenerateNormalRandom(average, std_dev) -class FitStrategyAdjustMinimizer(IFitStrategy): - """ - - - Strategy modifies mimimizer settings before running minimization round. - - C++ includes: FitStrategyAdjustMinimizer.h - - """ +class AdjustMinimizerStrategy(IFitStrategy): + """Proxy of C++ AdjustMinimizerStrategy class.""" __swig_setmethods__ = {} for _s in [IFitStrategy]: __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {})) - __setattr__ = lambda self, name, value: _swig_setattr(self, FitStrategyAdjustMinimizer, name, value) + __setattr__ = lambda self, name, value: _swig_setattr(self, AdjustMinimizerStrategy, name, value) __swig_getmethods__ = {} for _s in [IFitStrategy]: __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {})) - __getattr__ = lambda self, name: _swig_getattr(self, FitStrategyAdjustMinimizer, name) + __getattr__ = lambda self, name: _swig_getattr(self, AdjustMinimizerStrategy, name) __repr__ = _swig_repr def __init__(self, *args): """ - __init__(FitStrategyAdjustMinimizer self) -> FitStrategyAdjustMinimizer - __init__(FitStrategyAdjustMinimizer self, std::string const & minimizer_name, std::string const & algorithm_name, std::string const & minimizer_options) -> FitStrategyAdjustMinimizer - __init__(FitStrategyAdjustMinimizer self, std::string const & minimizer_name, std::string const & algorithm_name) -> FitStrategyAdjustMinimizer - __init__(FitStrategyAdjustMinimizer self, std::string const & minimizer_name) -> FitStrategyAdjustMinimizer - - FitStrategyAdjustMinimizer::FitStrategyAdjustMinimizer(const std::string &minimizer_name, const std::string &algorithm_name=std::string(), const std::string &minimizer_options=std::string()) - + __init__(AdjustMinimizerStrategy self) -> AdjustMinimizerStrategy + __init__(AdjustMinimizerStrategy self, std::string const & minimizerName, std::string const & algorithmName, std::string const & optionString) -> AdjustMinimizerStrategy + __init__(AdjustMinimizerStrategy self, std::string const & minimizerName, std::string const & algorithmName) -> AdjustMinimizerStrategy + __init__(AdjustMinimizerStrategy self, std::string const & minimizerName) -> AdjustMinimizerStrategy """ - this = _libBornAgainCore.new_FitStrategyAdjustMinimizer(*args) + this = _libBornAgainCore.new_AdjustMinimizerStrategy(*args) try: self.this.append(this) except Exception: self.this = this - __swig_destroy__ = _libBornAgainCore.delete_FitStrategyAdjustMinimizer - __del__ = lambda self: None def clone(self): """ - clone(FitStrategyAdjustMinimizer self) -> FitStrategyAdjustMinimizer - - FitStrategyAdjustMinimizer * FitStrategyAdjustMinimizer::clone() const - - """ - return _libBornAgainCore.FitStrategyAdjustMinimizer_clone(self) - - - def getMinimizer(self): - """ - getMinimizer(FitStrategyAdjustMinimizer self) -> IMinimizer * + clone(AdjustMinimizerStrategy self) -> AdjustMinimizerStrategy - IMinimizer * FitStrategyAdjustMinimizer::getMinimizer() + virtual IFitStrategy* IFitStrategy::clone() const =0 """ - return _libBornAgainCore.FitStrategyAdjustMinimizer_getMinimizer(self) + return _libBornAgainCore.AdjustMinimizerStrategy_clone(self) def setMinimizer(self, *args): """ - setMinimizer(FitStrategyAdjustMinimizer self, IMinimizer * minimizer) - setMinimizer(FitStrategyAdjustMinimizer self, std::string const & minimizer_name, std::string const & algorithm_name, std::string const & minimizer_options) - setMinimizer(FitStrategyAdjustMinimizer self, std::string const & minimizer_name, std::string const & algorithm_name) - setMinimizer(FitStrategyAdjustMinimizer self, std::string const & minimizer_name) - - void FitStrategyAdjustMinimizer::setMinimizer(const std::string &minimizer_name, const std::string &algorithm_name=std::string(), const std::string &minimizer_options=std::string()) - + setMinimizer(AdjustMinimizerStrategy self, std::string const & minimizerName, std::string const & algorithmName, std::string const & optionString) + setMinimizer(AdjustMinimizerStrategy self, std::string const & minimizerName, std::string const & algorithmName) + setMinimizer(AdjustMinimizerStrategy self, std::string const & minimizerName) """ - return _libBornAgainCore.FitStrategyAdjustMinimizer_setMinimizer(self, *args) + return _libBornAgainCore.AdjustMinimizerStrategy_setMinimizer(self, *args) def execute(self): """ - execute(FitStrategyAdjustMinimizer self) - - void FitStrategyAdjustMinimizer::execute() + execute(AdjustMinimizerStrategy self) - """ - return _libBornAgainCore.FitStrategyAdjustMinimizer_execute(self) - - - def getMinimizerOptions(self): - """ - getMinimizerOptions(FitStrategyAdjustMinimizer self) -> ObsoleteMinimizerOptions * - - ObsoleteMinimizerOptions * FitStrategyAdjustMinimizer::getMinimizerOptions() + virtual void IFitStrategy::execute()=0 """ - return _libBornAgainCore.FitStrategyAdjustMinimizer_getMinimizerOptions(self) + return _libBornAgainCore.AdjustMinimizerStrategy_execute(self) -FitStrategyAdjustMinimizer_swigregister = _libBornAgainCore.FitStrategyAdjustMinimizer_swigregister -FitStrategyAdjustMinimizer_swigregister(FitStrategyAdjustMinimizer) + __swig_destroy__ = _libBornAgainCore.delete_AdjustMinimizerStrategy + __del__ = lambda self: None +AdjustMinimizerStrategy_swigregister = _libBornAgainCore.AdjustMinimizerStrategy_swigregister +AdjustMinimizerStrategy_swigregister(AdjustMinimizerStrategy) class IMultiLayerBuilder(IParameterized): """ diff --git a/auto/Wrap/libBornAgainCore_wrap.cpp b/auto/Wrap/libBornAgainCore_wrap.cpp index c26f72d91c7a3e3433a4e2e36d27aed855947c1d..13903c1cb0c4e20edbb731137e3358afe3a44a83 100644 --- a/auto/Wrap/libBornAgainCore_wrap.cpp +++ b/auto/Wrap/libBornAgainCore_wrap.cpp @@ -3454,55 +3454,55 @@ namespace Swig { /* -------- TYPES TABLE (BEGIN) -------- */ -#define SWIGTYPE_p_AngularPixelMap swig_types[0] -#define SWIGTYPE_p_AttLimits swig_types[1] -#define SWIGTYPE_p_Attributes swig_types[2] -#define SWIGTYPE_p_BasicVector3DT_double_t swig_types[3] -#define SWIGTYPE_p_BasicVector3DT_int_t swig_types[4] -#define SWIGTYPE_p_BasicVector3DT_std__complexT_double_t_t swig_types[5] -#define SWIGTYPE_p_Beam swig_types[6] -#define SWIGTYPE_p_Bin1D swig_types[7] -#define SWIGTYPE_p_Bin1DCVector swig_types[8] -#define SWIGTYPE_p_Bin1DKVector swig_types[9] -#define SWIGTYPE_p_CallbackMap_t swig_types[10] -#define SWIGTYPE_p_ChiSquaredModule swig_types[11] -#define SWIGTYPE_p_ConstKBinAxis swig_types[12] -#define SWIGTYPE_p_CreateItemCallback swig_types[13] -#define SWIGTYPE_p_Crystal swig_types[14] -#define SWIGTYPE_p_CustomBinAxis swig_types[15] -#define SWIGTYPE_p_DescriptionMap_t swig_types[16] -#define SWIGTYPE_p_DetectorMask swig_types[17] -#define SWIGTYPE_p_DistributionCosine swig_types[18] -#define SWIGTYPE_p_DistributionGate swig_types[19] -#define SWIGTYPE_p_DistributionGaussian swig_types[20] -#define SWIGTYPE_p_DistributionHandler swig_types[21] -#define SWIGTYPE_p_DistributionLogNormal swig_types[22] -#define SWIGTYPE_p_DistributionLorentz swig_types[23] -#define SWIGTYPE_p_FTDecayFunction1DCauchy swig_types[24] -#define SWIGTYPE_p_FTDecayFunction1DGauss swig_types[25] -#define SWIGTYPE_p_FTDecayFunction1DTriangle swig_types[26] -#define SWIGTYPE_p_FTDecayFunction1DVoigt swig_types[27] -#define SWIGTYPE_p_FTDecayFunction2DCauchy swig_types[28] -#define SWIGTYPE_p_FTDecayFunction2DGauss swig_types[29] -#define SWIGTYPE_p_FTDecayFunction2DVoigt swig_types[30] -#define SWIGTYPE_p_FTDistribution1DCauchy swig_types[31] -#define SWIGTYPE_p_FTDistribution1DCosine swig_types[32] -#define SWIGTYPE_p_FTDistribution1DGate swig_types[33] -#define SWIGTYPE_p_FTDistribution1DGauss swig_types[34] -#define SWIGTYPE_p_FTDistribution1DTriangle swig_types[35] -#define SWIGTYPE_p_FTDistribution1DVoigt swig_types[36] -#define SWIGTYPE_p_FTDistribution2DCauchy swig_types[37] -#define SWIGTYPE_p_FTDistribution2DCone swig_types[38] -#define SWIGTYPE_p_FTDistribution2DGate swig_types[39] -#define SWIGTYPE_p_FTDistribution2DGauss swig_types[40] -#define SWIGTYPE_p_FTDistribution2DVoigt swig_types[41] -#define SWIGTYPE_p_FitObject swig_types[42] -#define SWIGTYPE_p_FitObjects_t swig_types[43] -#define SWIGTYPE_p_FitOptions swig_types[44] -#define SWIGTYPE_p_FitParameter swig_types[45] -#define SWIGTYPE_p_FitParameterLinked swig_types[46] -#define SWIGTYPE_p_FitParameterSet swig_types[47] -#define SWIGTYPE_p_FitStrategyAdjustMinimizer swig_types[48] +#define SWIGTYPE_p_AdjustMinimizerStrategy swig_types[0] +#define SWIGTYPE_p_AngularPixelMap swig_types[1] +#define SWIGTYPE_p_AttLimits swig_types[2] +#define SWIGTYPE_p_Attributes swig_types[3] +#define SWIGTYPE_p_BasicVector3DT_double_t swig_types[4] +#define SWIGTYPE_p_BasicVector3DT_int_t swig_types[5] +#define SWIGTYPE_p_BasicVector3DT_std__complexT_double_t_t swig_types[6] +#define SWIGTYPE_p_Beam swig_types[7] +#define SWIGTYPE_p_Bin1D swig_types[8] +#define SWIGTYPE_p_Bin1DCVector swig_types[9] +#define SWIGTYPE_p_Bin1DKVector swig_types[10] +#define SWIGTYPE_p_CallbackMap_t swig_types[11] +#define SWIGTYPE_p_ChiSquaredModule swig_types[12] +#define SWIGTYPE_p_ConstKBinAxis swig_types[13] +#define SWIGTYPE_p_CreateItemCallback swig_types[14] +#define SWIGTYPE_p_Crystal swig_types[15] +#define SWIGTYPE_p_CustomBinAxis swig_types[16] +#define SWIGTYPE_p_DescriptionMap_t swig_types[17] +#define SWIGTYPE_p_DetectorMask swig_types[18] +#define SWIGTYPE_p_DistributionCosine swig_types[19] +#define SWIGTYPE_p_DistributionGate swig_types[20] +#define SWIGTYPE_p_DistributionGaussian swig_types[21] +#define SWIGTYPE_p_DistributionHandler swig_types[22] +#define SWIGTYPE_p_DistributionLogNormal swig_types[23] +#define SWIGTYPE_p_DistributionLorentz swig_types[24] +#define SWIGTYPE_p_FTDecayFunction1DCauchy swig_types[25] +#define SWIGTYPE_p_FTDecayFunction1DGauss swig_types[26] +#define SWIGTYPE_p_FTDecayFunction1DTriangle swig_types[27] +#define SWIGTYPE_p_FTDecayFunction1DVoigt swig_types[28] +#define SWIGTYPE_p_FTDecayFunction2DCauchy swig_types[29] +#define SWIGTYPE_p_FTDecayFunction2DGauss swig_types[30] +#define SWIGTYPE_p_FTDecayFunction2DVoigt swig_types[31] +#define SWIGTYPE_p_FTDistribution1DCauchy swig_types[32] +#define SWIGTYPE_p_FTDistribution1DCosine swig_types[33] +#define SWIGTYPE_p_FTDistribution1DGate swig_types[34] +#define SWIGTYPE_p_FTDistribution1DGauss swig_types[35] +#define SWIGTYPE_p_FTDistribution1DTriangle swig_types[36] +#define SWIGTYPE_p_FTDistribution1DVoigt swig_types[37] +#define SWIGTYPE_p_FTDistribution2DCauchy swig_types[38] +#define SWIGTYPE_p_FTDistribution2DCone swig_types[39] +#define SWIGTYPE_p_FTDistribution2DGate swig_types[40] +#define SWIGTYPE_p_FTDistribution2DGauss swig_types[41] +#define SWIGTYPE_p_FTDistribution2DVoigt swig_types[42] +#define SWIGTYPE_p_FitObject swig_types[43] +#define SWIGTYPE_p_FitObjects_t swig_types[44] +#define SWIGTYPE_p_FitOptions swig_types[45] +#define SWIGTYPE_p_FitParameter swig_types[46] +#define SWIGTYPE_p_FitParameterLinked swig_types[47] +#define SWIGTYPE_p_FitParameterSet swig_types[48] #define SWIGTYPE_p_FitStrategyDefault swig_types[49] #define SWIGTYPE_p_FitSuite swig_types[50] #define SWIGTYPE_p_FitSuiteImp swig_types[51] @@ -3635,121 +3635,120 @@ namespace Swig { #define SWIGTYPE_p_MesoCrystal swig_types[178] #define SWIGTYPE_p_MultiLayer swig_types[179] #define SWIGTYPE_p_MultiLayerRTCoefficients_t swig_types[180] -#define SWIGTYPE_p_ObsoleteMinimizerOptions swig_types[181] -#define SWIGTYPE_p_OffSpecSimulation swig_types[182] -#define SWIGTYPE_p_OutputDataIteratorT_double_OutputDataT_double_t_t swig_types[183] -#define SWIGTYPE_p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t swig_types[184] -#define SWIGTYPE_p_OutputDataT_CumulativeValue_t swig_types[185] -#define SWIGTYPE_p_OutputDataT_bool_t swig_types[186] -#define SWIGTYPE_p_OutputDataT_double_t swig_types[187] -#define SWIGTYPE_p_OutputDataT_std__complexT_double_t_t swig_types[188] -#define SWIGTYPE_p_ParameterDistribution swig_types[189] -#define SWIGTYPE_p_ParameterPool swig_types[190] -#define SWIGTYPE_p_ParameterSample swig_types[191] -#define SWIGTYPE_p_Particle swig_types[192] -#define SWIGTYPE_p_ParticleComposition swig_types[193] -#define SWIGTYPE_p_ParticleCoreShell swig_types[194] -#define SWIGTYPE_p_ParticleDistribution swig_types[195] -#define SWIGTYPE_p_ParticleLayout swig_types[196] -#define SWIGTYPE_p_PolygonalTopology swig_types[197] -#define SWIGTYPE_p_PolyhedralEdge swig_types[198] -#define SWIGTYPE_p_PolyhedralFace swig_types[199] -#define SWIGTYPE_p_PolyhedralTopology swig_types[200] -#define SWIGTYPE_p_ProgressHandler__Callback_t swig_types[201] -#define SWIGTYPE_p_RealLimits swig_types[202] -#define SWIGTYPE_p_RealParameter swig_types[203] -#define SWIGTYPE_p_RectPixelMap swig_types[204] -#define SWIGTYPE_p_RectangularDetector swig_types[205] -#define SWIGTYPE_p_ResolutionFunction2DGaussian swig_types[206] -#define SWIGTYPE_p_RotationEuler swig_types[207] -#define SWIGTYPE_p_RotationX swig_types[208] -#define SWIGTYPE_p_RotationY swig_types[209] -#define SWIGTYPE_p_RotationZ swig_types[210] -#define SWIGTYPE_p_SafePointerVectorT_IParticle_const_t swig_types[211] -#define SWIGTYPE_p_SimpleSelectionRule swig_types[212] -#define SWIGTYPE_p_Simulation swig_types[213] -#define SWIGTYPE_p_SimulationOptions swig_types[214] -#define SWIGTYPE_p_SpecularSimulation swig_types[215] -#define SWIGTYPE_p_SphericalDetector swig_types[216] -#define SWIGTYPE_p_SquaredFunctionDefault swig_types[217] -#define SWIGTYPE_p_SquaredFunctionGaussianError swig_types[218] -#define SWIGTYPE_p_SquaredFunctionMeanSquaredError swig_types[219] -#define SWIGTYPE_p_SquaredFunctionSimError swig_types[220] -#define SWIGTYPE_p_SquaredFunctionSystematicError swig_types[221] -#define SWIGTYPE_p_ThreadInfo swig_types[222] -#define SWIGTYPE_p_Transform3D swig_types[223] -#define SWIGTYPE_p_VariableBinAxis swig_types[224] -#define SWIGTYPE_p_WavevectorInfo swig_types[225] -#define SWIGTYPE_p__object swig_types[226] -#define SWIGTYPE_p_allocator_type swig_types[227] -#define SWIGTYPE_p_bool swig_types[228] -#define SWIGTYPE_p_char swig_types[229] -#define SWIGTYPE_p_const_iterator swig_types[230] -#define SWIGTYPE_p_const_reference swig_types[231] -#define SWIGTYPE_p_difference_type swig_types[232] -#define SWIGTYPE_p_double swig_types[233] -#define SWIGTYPE_p_int swig_types[234] -#define SWIGTYPE_p_iterator swig_types[235] -#define SWIGTYPE_p_long_long swig_types[236] -#define SWIGTYPE_p_observer_t swig_types[237] -#define SWIGTYPE_p_observerlist_t swig_types[238] -#define SWIGTYPE_p_p__object swig_types[239] -#define SWIGTYPE_p_reference swig_types[240] -#define SWIGTYPE_p_short swig_types[241] -#define SWIGTYPE_p_signed_char swig_types[242] -#define SWIGTYPE_p_size_type swig_types[243] -#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_double_t_t swig_types[244] -#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t swig_types[245] -#define SWIGTYPE_p_std__allocatorT_IFormFactor_p_t swig_types[246] -#define SWIGTYPE_p_std__allocatorT_ISample_const_p_t swig_types[247] -#define SWIGTYPE_p_std__allocatorT_ISample_p_t swig_types[248] -#define SWIGTYPE_p_std__allocatorT_double_t swig_types[249] -#define SWIGTYPE_p_std__allocatorT_int_t swig_types[250] -#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[251] -#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[252] -#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[253] -#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[254] -#define SWIGTYPE_p_std__complexT_double_t swig_types[255] -#define SWIGTYPE_p_std__functionT_GISASSimulation_pfF_t swig_types[256] -#define SWIGTYPE_p_std__functionT_IMultiLayerBuilder_pfF_t swig_types[257] -#define SWIGTYPE_p_std__functionT_void_fF_t swig_types[258] -#define SWIGTYPE_p_std__invalid_argument swig_types[259] -#define SWIGTYPE_p_std__mapT_std__string_std__string_t__const_iterator swig_types[260] -#define SWIGTYPE_p_std__ostream swig_types[261] -#define SWIGTYPE_p_std__shared_ptrT_IFitObserver_t swig_types[262] -#define SWIGTYPE_p_std__shared_ptrT_ILayerRTCoefficients_const_t swig_types[263] -#define SWIGTYPE_p_std__shared_ptrT_IMultiLayerBuilder_t swig_types[264] -#define SWIGTYPE_p_std__shared_ptrT_IObserver_t swig_types[265] -#define SWIGTYPE_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t swig_types[266] -#define SWIGTYPE_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t swig_types[267] -#define SWIGTYPE_p_std__vectorT_FitElement_std__allocatorT_FitElement_t_t swig_types[268] -#define SWIGTYPE_p_std__vectorT_FitElement_std__allocatorT_FitElement_t_t__const_iterator swig_types[269] -#define SWIGTYPE_p_std__vectorT_FitElement_std__allocatorT_FitElement_t_t__iterator swig_types[270] -#define SWIGTYPE_p_std__vectorT_IDetector2D__EAxesUnits_std__allocatorT_IDetector2D__EAxesUnits_t_t swig_types[271] -#define SWIGTYPE_p_std__vectorT_IFTDistribution2D_const_p_std__allocatorT_IFTDistribution2D_const_p_t_t swig_types[272] -#define SWIGTYPE_p_std__vectorT_IFormFactor_p_std__allocatorT_IFormFactor_p_t_t swig_types[273] -#define SWIGTYPE_p_std__vectorT_IMaterial_const_p_std__allocatorT_IMaterial_const_p_t_t swig_types[274] -#define SWIGTYPE_p_std__vectorT_IParticle_const_p_std__allocatorT_IParticle_const_p_t_t swig_types[275] -#define SWIGTYPE_p_std__vectorT_ISample_const_p_std__allocatorT_ISample_const_p_t_t swig_types[276] -#define SWIGTYPE_p_std__vectorT_ISample_p_std__allocatorT_ISample_p_t_t swig_types[277] -#define SWIGTYPE_p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t swig_types[278] -#define SWIGTYPE_p_std__vectorT_PolygonalTopology_std__allocatorT_PolygonalTopology_t_t swig_types[279] -#define SWIGTYPE_p_std__vectorT_RealParameter_p_std__allocatorT_RealParameter_p_t_t swig_types[280] -#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[281] -#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[282] -#define SWIGTYPE_p_std__vectorT_size_t_std__allocatorT_size_t_t_t swig_types[283] -#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[284] -#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[285] -#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[286] -#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[287] -#define SWIGTYPE_p_swig__SwigPyIterator swig_types[288] -#define SWIGTYPE_p_unsigned_char swig_types[289] -#define SWIGTYPE_p_unsigned_int swig_types[290] -#define SWIGTYPE_p_unsigned_long_long swig_types[291] -#define SWIGTYPE_p_unsigned_short swig_types[292] -#define SWIGTYPE_p_value_type swig_types[293] -static swig_type_info *swig_types[295]; -static swig_module_info swig_module = {swig_types, 294, 0, 0, 0, 0}; +#define SWIGTYPE_p_OffSpecSimulation swig_types[181] +#define SWIGTYPE_p_OutputDataIteratorT_double_OutputDataT_double_t_t swig_types[182] +#define SWIGTYPE_p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t swig_types[183] +#define SWIGTYPE_p_OutputDataT_CumulativeValue_t swig_types[184] +#define SWIGTYPE_p_OutputDataT_bool_t swig_types[185] +#define SWIGTYPE_p_OutputDataT_double_t swig_types[186] +#define SWIGTYPE_p_OutputDataT_std__complexT_double_t_t swig_types[187] +#define SWIGTYPE_p_ParameterDistribution swig_types[188] +#define SWIGTYPE_p_ParameterPool swig_types[189] +#define SWIGTYPE_p_ParameterSample swig_types[190] +#define SWIGTYPE_p_Particle swig_types[191] +#define SWIGTYPE_p_ParticleComposition swig_types[192] +#define SWIGTYPE_p_ParticleCoreShell swig_types[193] +#define SWIGTYPE_p_ParticleDistribution swig_types[194] +#define SWIGTYPE_p_ParticleLayout swig_types[195] +#define SWIGTYPE_p_PolygonalTopology swig_types[196] +#define SWIGTYPE_p_PolyhedralEdge swig_types[197] +#define SWIGTYPE_p_PolyhedralFace swig_types[198] +#define SWIGTYPE_p_PolyhedralTopology swig_types[199] +#define SWIGTYPE_p_ProgressHandler__Callback_t swig_types[200] +#define SWIGTYPE_p_RealLimits swig_types[201] +#define SWIGTYPE_p_RealParameter swig_types[202] +#define SWIGTYPE_p_RectPixelMap swig_types[203] +#define SWIGTYPE_p_RectangularDetector swig_types[204] +#define SWIGTYPE_p_ResolutionFunction2DGaussian swig_types[205] +#define SWIGTYPE_p_RotationEuler swig_types[206] +#define SWIGTYPE_p_RotationX swig_types[207] +#define SWIGTYPE_p_RotationY swig_types[208] +#define SWIGTYPE_p_RotationZ swig_types[209] +#define SWIGTYPE_p_SafePointerVectorT_IParticle_const_t swig_types[210] +#define SWIGTYPE_p_SimpleSelectionRule swig_types[211] +#define SWIGTYPE_p_Simulation swig_types[212] +#define SWIGTYPE_p_SimulationOptions swig_types[213] +#define SWIGTYPE_p_SpecularSimulation swig_types[214] +#define SWIGTYPE_p_SphericalDetector swig_types[215] +#define SWIGTYPE_p_SquaredFunctionDefault swig_types[216] +#define SWIGTYPE_p_SquaredFunctionGaussianError swig_types[217] +#define SWIGTYPE_p_SquaredFunctionMeanSquaredError swig_types[218] +#define SWIGTYPE_p_SquaredFunctionSimError swig_types[219] +#define SWIGTYPE_p_SquaredFunctionSystematicError swig_types[220] +#define SWIGTYPE_p_ThreadInfo swig_types[221] +#define SWIGTYPE_p_Transform3D swig_types[222] +#define SWIGTYPE_p_VariableBinAxis swig_types[223] +#define SWIGTYPE_p_WavevectorInfo swig_types[224] +#define SWIGTYPE_p__object swig_types[225] +#define SWIGTYPE_p_allocator_type swig_types[226] +#define SWIGTYPE_p_bool swig_types[227] +#define SWIGTYPE_p_char swig_types[228] +#define SWIGTYPE_p_const_iterator swig_types[229] +#define SWIGTYPE_p_const_reference swig_types[230] +#define SWIGTYPE_p_difference_type swig_types[231] +#define SWIGTYPE_p_double swig_types[232] +#define SWIGTYPE_p_int swig_types[233] +#define SWIGTYPE_p_iterator swig_types[234] +#define SWIGTYPE_p_long_long swig_types[235] +#define SWIGTYPE_p_observer_t swig_types[236] +#define SWIGTYPE_p_observerlist_t swig_types[237] +#define SWIGTYPE_p_p__object swig_types[238] +#define SWIGTYPE_p_reference swig_types[239] +#define SWIGTYPE_p_short swig_types[240] +#define SWIGTYPE_p_signed_char swig_types[241] +#define SWIGTYPE_p_size_type swig_types[242] +#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_double_t_t swig_types[243] +#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t swig_types[244] +#define SWIGTYPE_p_std__allocatorT_IFormFactor_p_t swig_types[245] +#define SWIGTYPE_p_std__allocatorT_ISample_const_p_t swig_types[246] +#define SWIGTYPE_p_std__allocatorT_ISample_p_t swig_types[247] +#define SWIGTYPE_p_std__allocatorT_double_t swig_types[248] +#define SWIGTYPE_p_std__allocatorT_int_t swig_types[249] +#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[250] +#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[251] +#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[252] +#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[253] +#define SWIGTYPE_p_std__complexT_double_t swig_types[254] +#define SWIGTYPE_p_std__functionT_GISASSimulation_pfF_t swig_types[255] +#define SWIGTYPE_p_std__functionT_IMultiLayerBuilder_pfF_t swig_types[256] +#define SWIGTYPE_p_std__functionT_void_fF_t swig_types[257] +#define SWIGTYPE_p_std__invalid_argument swig_types[258] +#define SWIGTYPE_p_std__mapT_std__string_std__string_t__const_iterator swig_types[259] +#define SWIGTYPE_p_std__ostream swig_types[260] +#define SWIGTYPE_p_std__shared_ptrT_IFitObserver_t swig_types[261] +#define SWIGTYPE_p_std__shared_ptrT_ILayerRTCoefficients_const_t swig_types[262] +#define SWIGTYPE_p_std__shared_ptrT_IMultiLayerBuilder_t swig_types[263] +#define SWIGTYPE_p_std__shared_ptrT_IObserver_t swig_types[264] +#define SWIGTYPE_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t swig_types[265] +#define SWIGTYPE_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t swig_types[266] +#define SWIGTYPE_p_std__vectorT_FitElement_std__allocatorT_FitElement_t_t swig_types[267] +#define SWIGTYPE_p_std__vectorT_FitElement_std__allocatorT_FitElement_t_t__const_iterator swig_types[268] +#define SWIGTYPE_p_std__vectorT_FitElement_std__allocatorT_FitElement_t_t__iterator swig_types[269] +#define SWIGTYPE_p_std__vectorT_IDetector2D__EAxesUnits_std__allocatorT_IDetector2D__EAxesUnits_t_t swig_types[270] +#define SWIGTYPE_p_std__vectorT_IFTDistribution2D_const_p_std__allocatorT_IFTDistribution2D_const_p_t_t swig_types[271] +#define SWIGTYPE_p_std__vectorT_IFormFactor_p_std__allocatorT_IFormFactor_p_t_t swig_types[272] +#define SWIGTYPE_p_std__vectorT_IMaterial_const_p_std__allocatorT_IMaterial_const_p_t_t swig_types[273] +#define SWIGTYPE_p_std__vectorT_IParticle_const_p_std__allocatorT_IParticle_const_p_t_t swig_types[274] +#define SWIGTYPE_p_std__vectorT_ISample_const_p_std__allocatorT_ISample_const_p_t_t swig_types[275] +#define SWIGTYPE_p_std__vectorT_ISample_p_std__allocatorT_ISample_p_t_t swig_types[276] +#define SWIGTYPE_p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t swig_types[277] +#define SWIGTYPE_p_std__vectorT_PolygonalTopology_std__allocatorT_PolygonalTopology_t_t swig_types[278] +#define SWIGTYPE_p_std__vectorT_RealParameter_p_std__allocatorT_RealParameter_p_t_t swig_types[279] +#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[280] +#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[281] +#define SWIGTYPE_p_std__vectorT_size_t_std__allocatorT_size_t_t_t swig_types[282] +#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[283] +#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[284] +#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[285] +#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[286] +#define SWIGTYPE_p_swig__SwigPyIterator swig_types[287] +#define SWIGTYPE_p_unsigned_char swig_types[288] +#define SWIGTYPE_p_unsigned_int swig_types[289] +#define SWIGTYPE_p_unsigned_long_long swig_types[290] +#define SWIGTYPE_p_unsigned_short swig_types[291] +#define SWIGTYPE_p_value_type swig_types[292] +static swig_type_info *swig_types[294]; +static swig_module_info swig_module = {swig_types, 293, 0, 0, 0, 0}; #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name) #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name) @@ -6486,7 +6485,7 @@ SWIGINTERN void std_vector_Sl_std_string_Sg__insert__SWIG_1(std::vector< std::st #include "IIntensityNormalizer.h" #include "ISquaredFunction.h" #include "MathFunctions.h" -#include "FitStrategyAdjustMinimizer.h" +#include "AdjustMinimizerStrategy.h" SWIGINTERN BasicVector3D< double > BasicVector3D_Sl_double_Sg____add__(BasicVector3D< double > const *self,BasicVector3D< double > const &rhs){ return *(self) + rhs; } @@ -35969,43 +35968,43 @@ SWIGINTERN PyObject *IFitObserver_swigregister(PyObject *SWIGUNUSEDPARM(self), P return SWIG_Py_Void(); } -SWIGINTERN PyObject *_wrap_IFitStrategy_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_delete_IFitStrategy(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IFitStrategy *arg1 = (IFitStrategy *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - IFitStrategy *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:IFitStrategy_clone",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IFitStrategy, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:delete_IFitStrategy",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IFitStrategy, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFitStrategy_clone" "', argument " "1"" of type '" "IFitStrategy const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IFitStrategy" "', argument " "1"" of type '" "IFitStrategy *""'"); } arg1 = reinterpret_cast< IFitStrategy * >(argp1); - result = (IFitStrategy *)((IFitStrategy const *)arg1)->clone(); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IFitStrategy, 0 | 0 ); + delete arg1; + resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_delete_IFitStrategy(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_IFitStrategy_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IFitStrategy *arg1 = (IFitStrategy *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; + IFitStrategy *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:delete_IFitStrategy",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IFitStrategy, SWIG_POINTER_DISOWN | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:IFitStrategy_clone",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IFitStrategy, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IFitStrategy" "', argument " "1"" of type '" "IFitStrategy *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IFitStrategy_clone" "', argument " "1"" of type '" "IFitStrategy const *""'"); } arg1 = reinterpret_cast< IFitStrategy * >(argp1); - delete arg1; - resultobj = SWIG_Py_Void(); + result = (IFitStrategy *)((IFitStrategy const *)arg1)->clone(); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IFitStrategy, 0 | 0 ); return resultobj; fail: return NULL; @@ -36089,7 +36088,7 @@ SWIGINTERN PyObject *_wrap_FitStrategyDefault_clone(PyObject *SWIGUNUSEDPARM(sel void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - IFitStrategy *result = 0 ; + FitStrategyDefault *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:FitStrategyDefault_clone",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FitStrategyDefault, 0 | 0 ); @@ -36097,8 +36096,8 @@ SWIGINTERN PyObject *_wrap_FitStrategyDefault_clone(PyObject *SWIGUNUSEDPARM(sel SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FitStrategyDefault_clone" "', argument " "1"" of type '" "FitStrategyDefault const *""'"); } arg1 = reinterpret_cast< FitStrategyDefault * >(argp1); - result = (IFitStrategy *)((FitStrategyDefault const *)arg1)->clone(); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IFitStrategy, 0 | 0 ); + result = (FitStrategyDefault *)((FitStrategyDefault const *)arg1)->clone(); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FitStrategyDefault, 0 | 0 ); return resultobj; fail: return NULL; @@ -38783,7 +38782,7 @@ fail: } -SWIGINTERN PyObject *_wrap_FitOptions_getDerivEpsilon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_FitOptions_derivEpsilon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; FitOptions *arg1 = (FitOptions *) 0 ; void *argp1 = 0 ; @@ -38791,13 +38790,13 @@ SWIGINTERN PyObject *_wrap_FitOptions_getDerivEpsilon(PyObject *SWIGUNUSEDPARM(s PyObject * obj0 = 0 ; double result; - if (!PyArg_ParseTuple(args,(char *)"O:FitOptions_getDerivEpsilon",&obj0)) SWIG_fail; + if (!PyArg_ParseTuple(args,(char *)"O:FitOptions_derivEpsilon",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FitOptions, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FitOptions_getDerivEpsilon" "', argument " "1"" of type '" "FitOptions const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FitOptions_derivEpsilon" "', argument " "1"" of type '" "FitOptions const *""'"); } arg1 = reinterpret_cast< FitOptions * >(argp1); - result = (double)((FitOptions const *)arg1)->getDerivEpsilon(); + result = (double)((FitOptions const *)arg1)->derivEpsilon(); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: @@ -38835,7 +38834,7 @@ fail: } -SWIGINTERN PyObject *_wrap_FitOptions_getStepFactor(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_FitOptions_stepFactor(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; FitOptions *arg1 = (FitOptions *) 0 ; void *argp1 = 0 ; @@ -38843,13 +38842,13 @@ SWIGINTERN PyObject *_wrap_FitOptions_getStepFactor(PyObject *SWIGUNUSEDPARM(sel PyObject * obj0 = 0 ; double result; - if (!PyArg_ParseTuple(args,(char *)"O:FitOptions_getStepFactor",&obj0)) SWIG_fail; + if (!PyArg_ParseTuple(args,(char *)"O:FitOptions_stepFactor",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FitOptions, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FitOptions_getStepFactor" "', argument " "1"" of type '" "FitOptions const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FitOptions_stepFactor" "', argument " "1"" of type '" "FitOptions const *""'"); } arg1 = reinterpret_cast< FitOptions * >(argp1); - result = (double)((FitOptions const *)arg1)->getStepFactor(); + result = (double)((FitOptions const *)arg1)->stepFactor(); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: @@ -42776,20 +42775,20 @@ fail: } -SWIGINTERN PyObject *_wrap_new_FitStrategyAdjustMinimizer__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_new_AdjustMinimizerStrategy__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - FitStrategyAdjustMinimizer *result = 0 ; + AdjustMinimizerStrategy *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)":new_FitStrategyAdjustMinimizer")) SWIG_fail; - result = (FitStrategyAdjustMinimizer *)new FitStrategyAdjustMinimizer(); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FitStrategyAdjustMinimizer, SWIG_POINTER_NEW | 0 ); + if (!PyArg_ParseTuple(args,(char *)":new_AdjustMinimizerStrategy")) SWIG_fail; + result = (AdjustMinimizerStrategy *)new AdjustMinimizerStrategy(); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_AdjustMinimizerStrategy, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_new_FitStrategyAdjustMinimizer__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_new_AdjustMinimizerStrategy__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::string *arg1 = 0 ; std::string *arg2 = 0 ; @@ -42800,17 +42799,17 @@ SWIGINTERN PyObject *_wrap_new_FitStrategyAdjustMinimizer__SWIG_1(PyObject *SWIG PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; - FitStrategyAdjustMinimizer *result = 0 ; + AdjustMinimizerStrategy *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"OOO:new_FitStrategyAdjustMinimizer",&obj0,&obj1,&obj2)) SWIG_fail; + if (!PyArg_ParseTuple(args,(char *)"OOO:new_AdjustMinimizerStrategy",&obj0,&obj1,&obj2)) SWIG_fail; { std::string *ptr = (std::string *)0; res1 = SWIG_AsPtr_std_string(obj0, &ptr); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_FitStrategyAdjustMinimizer" "', argument " "1"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_AdjustMinimizerStrategy" "', argument " "1"" of type '" "std::string const &""'"); } if (!ptr) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_FitStrategyAdjustMinimizer" "', argument " "1"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_AdjustMinimizerStrategy" "', argument " "1"" of type '" "std::string const &""'"); } arg1 = ptr; } @@ -42818,10 +42817,10 @@ SWIGINTERN PyObject *_wrap_new_FitStrategyAdjustMinimizer__SWIG_1(PyObject *SWIG std::string *ptr = (std::string *)0; res2 = SWIG_AsPtr_std_string(obj1, &ptr); if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_FitStrategyAdjustMinimizer" "', argument " "2"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_AdjustMinimizerStrategy" "', argument " "2"" of type '" "std::string const &""'"); } if (!ptr) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_FitStrategyAdjustMinimizer" "', argument " "2"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_AdjustMinimizerStrategy" "', argument " "2"" of type '" "std::string const &""'"); } arg2 = ptr; } @@ -42829,15 +42828,15 @@ SWIGINTERN PyObject *_wrap_new_FitStrategyAdjustMinimizer__SWIG_1(PyObject *SWIG std::string *ptr = (std::string *)0; res3 = SWIG_AsPtr_std_string(obj2, &ptr); if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_FitStrategyAdjustMinimizer" "', argument " "3"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_AdjustMinimizerStrategy" "', argument " "3"" of type '" "std::string const &""'"); } if (!ptr) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_FitStrategyAdjustMinimizer" "', argument " "3"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_AdjustMinimizerStrategy" "', argument " "3"" of type '" "std::string const &""'"); } arg3 = ptr; } - result = (FitStrategyAdjustMinimizer *)new FitStrategyAdjustMinimizer((std::string const &)*arg1,(std::string const &)*arg2,(std::string const &)*arg3); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FitStrategyAdjustMinimizer, SWIG_POINTER_NEW | 0 ); + result = (AdjustMinimizerStrategy *)new AdjustMinimizerStrategy((std::string const &)*arg1,(std::string const &)*arg2,(std::string const &)*arg3); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_AdjustMinimizerStrategy, SWIG_POINTER_NEW | 0 ); if (SWIG_IsNewObj(res1)) delete arg1; if (SWIG_IsNewObj(res2)) delete arg2; if (SWIG_IsNewObj(res3)) delete arg3; @@ -42850,7 +42849,7 @@ fail: } -SWIGINTERN PyObject *_wrap_new_FitStrategyAdjustMinimizer__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_new_AdjustMinimizerStrategy__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::string *arg1 = 0 ; std::string *arg2 = 0 ; @@ -42858,17 +42857,17 @@ SWIGINTERN PyObject *_wrap_new_FitStrategyAdjustMinimizer__SWIG_2(PyObject *SWIG int res2 = SWIG_OLDOBJ ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; - FitStrategyAdjustMinimizer *result = 0 ; + AdjustMinimizerStrategy *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"OO:new_FitStrategyAdjustMinimizer",&obj0,&obj1)) SWIG_fail; + if (!PyArg_ParseTuple(args,(char *)"OO:new_AdjustMinimizerStrategy",&obj0,&obj1)) SWIG_fail; { std::string *ptr = (std::string *)0; res1 = SWIG_AsPtr_std_string(obj0, &ptr); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_FitStrategyAdjustMinimizer" "', argument " "1"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_AdjustMinimizerStrategy" "', argument " "1"" of type '" "std::string const &""'"); } if (!ptr) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_FitStrategyAdjustMinimizer" "', argument " "1"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_AdjustMinimizerStrategy" "', argument " "1"" of type '" "std::string const &""'"); } arg1 = ptr; } @@ -42876,15 +42875,15 @@ SWIGINTERN PyObject *_wrap_new_FitStrategyAdjustMinimizer__SWIG_2(PyObject *SWIG std::string *ptr = (std::string *)0; res2 = SWIG_AsPtr_std_string(obj1, &ptr); if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_FitStrategyAdjustMinimizer" "', argument " "2"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_AdjustMinimizerStrategy" "', argument " "2"" of type '" "std::string const &""'"); } if (!ptr) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_FitStrategyAdjustMinimizer" "', argument " "2"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_AdjustMinimizerStrategy" "', argument " "2"" of type '" "std::string const &""'"); } arg2 = ptr; } - result = (FitStrategyAdjustMinimizer *)new FitStrategyAdjustMinimizer((std::string const &)*arg1,(std::string const &)*arg2); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FitStrategyAdjustMinimizer, SWIG_POINTER_NEW | 0 ); + result = (AdjustMinimizerStrategy *)new AdjustMinimizerStrategy((std::string const &)*arg1,(std::string const &)*arg2); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_AdjustMinimizerStrategy, SWIG_POINTER_NEW | 0 ); if (SWIG_IsNewObj(res1)) delete arg1; if (SWIG_IsNewObj(res2)) delete arg2; return resultobj; @@ -42895,27 +42894,27 @@ fail: } -SWIGINTERN PyObject *_wrap_new_FitStrategyAdjustMinimizer__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_new_AdjustMinimizerStrategy__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; std::string *arg1 = 0 ; int res1 = SWIG_OLDOBJ ; PyObject * obj0 = 0 ; - FitStrategyAdjustMinimizer *result = 0 ; + AdjustMinimizerStrategy *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:new_FitStrategyAdjustMinimizer",&obj0)) SWIG_fail; + if (!PyArg_ParseTuple(args,(char *)"O:new_AdjustMinimizerStrategy",&obj0)) SWIG_fail; { std::string *ptr = (std::string *)0; res1 = SWIG_AsPtr_std_string(obj0, &ptr); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_FitStrategyAdjustMinimizer" "', argument " "1"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_AdjustMinimizerStrategy" "', argument " "1"" of type '" "std::string const &""'"); } if (!ptr) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_FitStrategyAdjustMinimizer" "', argument " "1"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_AdjustMinimizerStrategy" "', argument " "1"" of type '" "std::string const &""'"); } arg1 = ptr; } - result = (FitStrategyAdjustMinimizer *)new FitStrategyAdjustMinimizer((std::string const &)*arg1); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FitStrategyAdjustMinimizer, SWIG_POINTER_NEW | 0 ); + result = (AdjustMinimizerStrategy *)new AdjustMinimizerStrategy((std::string const &)*arg1); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_AdjustMinimizerStrategy, SWIG_POINTER_NEW | 0 ); if (SWIG_IsNewObj(res1)) delete arg1; return resultobj; fail: @@ -42924,7 +42923,7 @@ fail: } -SWIGINTERN PyObject *_wrap_new_FitStrategyAdjustMinimizer(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_new_AdjustMinimizerStrategy(PyObject *self, PyObject *args) { Py_ssize_t argc; PyObject *argv[4] = { 0 @@ -42937,14 +42936,14 @@ SWIGINTERN PyObject *_wrap_new_FitStrategyAdjustMinimizer(PyObject *self, PyObje argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 0) { - return _wrap_new_FitStrategyAdjustMinimizer__SWIG_0(self, args); + return _wrap_new_AdjustMinimizerStrategy__SWIG_0(self, args); } if (argc == 1) { int _v; int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0)); _v = SWIG_CheckState(res); if (_v) { - return _wrap_new_FitStrategyAdjustMinimizer__SWIG_3(self, args); + return _wrap_new_AdjustMinimizerStrategy__SWIG_3(self, args); } } if (argc == 2) { @@ -42955,7 +42954,7 @@ SWIGINTERN PyObject *_wrap_new_FitStrategyAdjustMinimizer(PyObject *self, PyObje int res = SWIG_AsPtr_std_string(argv[1], (std::string**)(0)); _v = SWIG_CheckState(res); if (_v) { - return _wrap_new_FitStrategyAdjustMinimizer__SWIG_2(self, args); + return _wrap_new_AdjustMinimizerStrategy__SWIG_2(self, args); } } } @@ -42970,121 +42969,48 @@ SWIGINTERN PyObject *_wrap_new_FitStrategyAdjustMinimizer(PyObject *self, PyObje int res = SWIG_AsPtr_std_string(argv[2], (std::string**)(0)); _v = SWIG_CheckState(res); if (_v) { - return _wrap_new_FitStrategyAdjustMinimizer__SWIG_1(self, args); + return _wrap_new_AdjustMinimizerStrategy__SWIG_1(self, args); } } } } fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_FitStrategyAdjustMinimizer'.\n" + SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_AdjustMinimizerStrategy'.\n" " Possible C/C++ prototypes are:\n" - " FitStrategyAdjustMinimizer::FitStrategyAdjustMinimizer()\n" - " FitStrategyAdjustMinimizer::FitStrategyAdjustMinimizer(std::string const &,std::string const &,std::string const &)\n" - " FitStrategyAdjustMinimizer::FitStrategyAdjustMinimizer(std::string const &,std::string const &)\n" - " FitStrategyAdjustMinimizer::FitStrategyAdjustMinimizer(std::string const &)\n"); + " AdjustMinimizerStrategy::AdjustMinimizerStrategy()\n" + " AdjustMinimizerStrategy::AdjustMinimizerStrategy(std::string const &,std::string const &,std::string const &)\n" + " AdjustMinimizerStrategy::AdjustMinimizerStrategy(std::string const &,std::string const &)\n" + " AdjustMinimizerStrategy::AdjustMinimizerStrategy(std::string const &)\n"); return 0; } -SWIGINTERN PyObject *_wrap_delete_FitStrategyAdjustMinimizer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AdjustMinimizerStrategy_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - FitStrategyAdjustMinimizer *arg1 = (FitStrategyAdjustMinimizer *) 0 ; + AdjustMinimizerStrategy *arg1 = (AdjustMinimizerStrategy *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; + AdjustMinimizerStrategy *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:delete_FitStrategyAdjustMinimizer",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FitStrategyAdjustMinimizer, SWIG_POINTER_DISOWN | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AdjustMinimizerStrategy_clone",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjustMinimizerStrategy, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_FitStrategyAdjustMinimizer" "', argument " "1"" of type '" "FitStrategyAdjustMinimizer *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjustMinimizerStrategy_clone" "', argument " "1"" of type '" "AdjustMinimizerStrategy const *""'"); } - arg1 = reinterpret_cast< FitStrategyAdjustMinimizer * >(argp1); - delete arg1; - resultobj = SWIG_Py_Void(); + arg1 = reinterpret_cast< AdjustMinimizerStrategy * >(argp1); + result = (AdjustMinimizerStrategy *)((AdjustMinimizerStrategy const *)arg1)->clone(); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_AdjustMinimizerStrategy, 0 | 0 ); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_FitStrategyAdjustMinimizer_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AdjustMinimizerStrategy_setMinimizer__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - FitStrategyAdjustMinimizer *arg1 = (FitStrategyAdjustMinimizer *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - FitStrategyAdjustMinimizer *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:FitStrategyAdjustMinimizer_clone",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FitStrategyAdjustMinimizer, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FitStrategyAdjustMinimizer_clone" "', argument " "1"" of type '" "FitStrategyAdjustMinimizer const *""'"); - } - arg1 = reinterpret_cast< FitStrategyAdjustMinimizer * >(argp1); - result = (FitStrategyAdjustMinimizer *)((FitStrategyAdjustMinimizer const *)arg1)->clone(); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FitStrategyAdjustMinimizer, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_FitStrategyAdjustMinimizer_getMinimizer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - FitStrategyAdjustMinimizer *arg1 = (FitStrategyAdjustMinimizer *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - IMinimizer *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:FitStrategyAdjustMinimizer_getMinimizer",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FitStrategyAdjustMinimizer, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FitStrategyAdjustMinimizer_getMinimizer" "', argument " "1"" of type '" "FitStrategyAdjustMinimizer *""'"); - } - arg1 = reinterpret_cast< FitStrategyAdjustMinimizer * >(argp1); - result = (IMinimizer *)(arg1)->getMinimizer(); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IMinimizer, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_FitStrategyAdjustMinimizer_setMinimizer__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - FitStrategyAdjustMinimizer *arg1 = (FitStrategyAdjustMinimizer *) 0 ; - IMinimizer *arg2 = (IMinimizer *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 = 0 ; - int res2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"OO:FitStrategyAdjustMinimizer_setMinimizer",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FitStrategyAdjustMinimizer, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FitStrategyAdjustMinimizer_setMinimizer" "', argument " "1"" of type '" "FitStrategyAdjustMinimizer *""'"); - } - arg1 = reinterpret_cast< FitStrategyAdjustMinimizer * >(argp1); - res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_IMinimizer, 0 | 0 ); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FitStrategyAdjustMinimizer_setMinimizer" "', argument " "2"" of type '" "IMinimizer *""'"); - } - arg2 = reinterpret_cast< IMinimizer * >(argp2); - (arg1)->setMinimizer(arg2); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_FitStrategyAdjustMinimizer_setMinimizer__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - FitStrategyAdjustMinimizer *arg1 = (FitStrategyAdjustMinimizer *) 0 ; + AdjustMinimizerStrategy *arg1 = (AdjustMinimizerStrategy *) 0 ; std::string *arg2 = 0 ; std::string *arg3 = 0 ; std::string *arg4 = 0 ; @@ -43098,20 +43024,20 @@ SWIGINTERN PyObject *_wrap_FitStrategyAdjustMinimizer_setMinimizer__SWIG_1(PyObj PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; - if (!PyArg_ParseTuple(args,(char *)"OOOO:FitStrategyAdjustMinimizer_setMinimizer",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FitStrategyAdjustMinimizer, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"OOOO:AdjustMinimizerStrategy_setMinimizer",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjustMinimizerStrategy, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FitStrategyAdjustMinimizer_setMinimizer" "', argument " "1"" of type '" "FitStrategyAdjustMinimizer *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjustMinimizerStrategy_setMinimizer" "', argument " "1"" of type '" "AdjustMinimizerStrategy *""'"); } - arg1 = reinterpret_cast< FitStrategyAdjustMinimizer * >(argp1); + arg1 = reinterpret_cast< AdjustMinimizerStrategy * >(argp1); { std::string *ptr = (std::string *)0; res2 = SWIG_AsPtr_std_string(obj1, &ptr); if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FitStrategyAdjustMinimizer_setMinimizer" "', argument " "2"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AdjustMinimizerStrategy_setMinimizer" "', argument " "2"" of type '" "std::string const &""'"); } if (!ptr) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FitStrategyAdjustMinimizer_setMinimizer" "', argument " "2"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "AdjustMinimizerStrategy_setMinimizer" "', argument " "2"" of type '" "std::string const &""'"); } arg2 = ptr; } @@ -43119,10 +43045,10 @@ SWIGINTERN PyObject *_wrap_FitStrategyAdjustMinimizer_setMinimizer__SWIG_1(PyObj std::string *ptr = (std::string *)0; res3 = SWIG_AsPtr_std_string(obj2, &ptr); if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "FitStrategyAdjustMinimizer_setMinimizer" "', argument " "3"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "AdjustMinimizerStrategy_setMinimizer" "', argument " "3"" of type '" "std::string const &""'"); } if (!ptr) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FitStrategyAdjustMinimizer_setMinimizer" "', argument " "3"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "AdjustMinimizerStrategy_setMinimizer" "', argument " "3"" of type '" "std::string const &""'"); } arg3 = ptr; } @@ -43130,10 +43056,10 @@ SWIGINTERN PyObject *_wrap_FitStrategyAdjustMinimizer_setMinimizer__SWIG_1(PyObj std::string *ptr = (std::string *)0; res4 = SWIG_AsPtr_std_string(obj3, &ptr); if (!SWIG_IsOK(res4)) { - SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "FitStrategyAdjustMinimizer_setMinimizer" "', argument " "4"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "AdjustMinimizerStrategy_setMinimizer" "', argument " "4"" of type '" "std::string const &""'"); } if (!ptr) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FitStrategyAdjustMinimizer_setMinimizer" "', argument " "4"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "AdjustMinimizerStrategy_setMinimizer" "', argument " "4"" of type '" "std::string const &""'"); } arg4 = ptr; } @@ -43151,9 +43077,9 @@ fail: } -SWIGINTERN PyObject *_wrap_FitStrategyAdjustMinimizer_setMinimizer__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AdjustMinimizerStrategy_setMinimizer__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - FitStrategyAdjustMinimizer *arg1 = (FitStrategyAdjustMinimizer *) 0 ; + AdjustMinimizerStrategy *arg1 = (AdjustMinimizerStrategy *) 0 ; std::string *arg2 = 0 ; std::string *arg3 = 0 ; void *argp1 = 0 ; @@ -43164,20 +43090,20 @@ SWIGINTERN PyObject *_wrap_FitStrategyAdjustMinimizer_setMinimizer__SWIG_2(PyObj PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; - if (!PyArg_ParseTuple(args,(char *)"OOO:FitStrategyAdjustMinimizer_setMinimizer",&obj0,&obj1,&obj2)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FitStrategyAdjustMinimizer, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"OOO:AdjustMinimizerStrategy_setMinimizer",&obj0,&obj1,&obj2)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjustMinimizerStrategy, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FitStrategyAdjustMinimizer_setMinimizer" "', argument " "1"" of type '" "FitStrategyAdjustMinimizer *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjustMinimizerStrategy_setMinimizer" "', argument " "1"" of type '" "AdjustMinimizerStrategy *""'"); } - arg1 = reinterpret_cast< FitStrategyAdjustMinimizer * >(argp1); + arg1 = reinterpret_cast< AdjustMinimizerStrategy * >(argp1); { std::string *ptr = (std::string *)0; res2 = SWIG_AsPtr_std_string(obj1, &ptr); if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FitStrategyAdjustMinimizer_setMinimizer" "', argument " "2"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AdjustMinimizerStrategy_setMinimizer" "', argument " "2"" of type '" "std::string const &""'"); } if (!ptr) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FitStrategyAdjustMinimizer_setMinimizer" "', argument " "2"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "AdjustMinimizerStrategy_setMinimizer" "', argument " "2"" of type '" "std::string const &""'"); } arg2 = ptr; } @@ -43185,10 +43111,10 @@ SWIGINTERN PyObject *_wrap_FitStrategyAdjustMinimizer_setMinimizer__SWIG_2(PyObj std::string *ptr = (std::string *)0; res3 = SWIG_AsPtr_std_string(obj2, &ptr); if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "FitStrategyAdjustMinimizer_setMinimizer" "', argument " "3"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "AdjustMinimizerStrategy_setMinimizer" "', argument " "3"" of type '" "std::string const &""'"); } if (!ptr) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FitStrategyAdjustMinimizer_setMinimizer" "', argument " "3"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "AdjustMinimizerStrategy_setMinimizer" "', argument " "3"" of type '" "std::string const &""'"); } arg3 = ptr; } @@ -43204,9 +43130,9 @@ fail: } -SWIGINTERN PyObject *_wrap_FitStrategyAdjustMinimizer_setMinimizer__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AdjustMinimizerStrategy_setMinimizer__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - FitStrategyAdjustMinimizer *arg1 = (FitStrategyAdjustMinimizer *) 0 ; + AdjustMinimizerStrategy *arg1 = (AdjustMinimizerStrategy *) 0 ; std::string *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; @@ -43214,20 +43140,20 @@ SWIGINTERN PyObject *_wrap_FitStrategyAdjustMinimizer_setMinimizer__SWIG_3(PyObj PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; - if (!PyArg_ParseTuple(args,(char *)"OO:FitStrategyAdjustMinimizer_setMinimizer",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FitStrategyAdjustMinimizer, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"OO:AdjustMinimizerStrategy_setMinimizer",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjustMinimizerStrategy, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FitStrategyAdjustMinimizer_setMinimizer" "', argument " "1"" of type '" "FitStrategyAdjustMinimizer *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjustMinimizerStrategy_setMinimizer" "', argument " "1"" of type '" "AdjustMinimizerStrategy *""'"); } - arg1 = reinterpret_cast< FitStrategyAdjustMinimizer * >(argp1); + arg1 = reinterpret_cast< AdjustMinimizerStrategy * >(argp1); { std::string *ptr = (std::string *)0; res2 = SWIG_AsPtr_std_string(obj1, &ptr); if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FitStrategyAdjustMinimizer_setMinimizer" "', argument " "2"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AdjustMinimizerStrategy_setMinimizer" "', argument " "2"" of type '" "std::string const &""'"); } if (!ptr) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FitStrategyAdjustMinimizer_setMinimizer" "', argument " "2"" of type '" "std::string const &""'"); + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "AdjustMinimizerStrategy_setMinimizer" "', argument " "2"" of type '" "std::string const &""'"); } arg2 = ptr; } @@ -43241,7 +43167,7 @@ fail: } -SWIGINTERN PyObject *_wrap_FitStrategyAdjustMinimizer_setMinimizer(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_AdjustMinimizerStrategy_setMinimizer(PyObject *self, PyObject *args) { Py_ssize_t argc; PyObject *argv[5] = { 0 @@ -43256,34 +43182,20 @@ SWIGINTERN PyObject *_wrap_FitStrategyAdjustMinimizer_setMinimizer(PyObject *sel if (argc == 2) { int _v; void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_FitStrategyAdjustMinimizer, 0); - _v = SWIG_CheckState(res); - if (_v) { - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_IMinimizer, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_FitStrategyAdjustMinimizer_setMinimizer__SWIG_0(self, args); - } - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_FitStrategyAdjustMinimizer, 0); + int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AdjustMinimizerStrategy, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsPtr_std_string(argv[1], (std::string**)(0)); _v = SWIG_CheckState(res); if (_v) { - return _wrap_FitStrategyAdjustMinimizer_setMinimizer__SWIG_3(self, args); + return _wrap_AdjustMinimizerStrategy_setMinimizer__SWIG_2(self, args); } } } if (argc == 3) { int _v; void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_FitStrategyAdjustMinimizer, 0); + int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AdjustMinimizerStrategy, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsPtr_std_string(argv[1], (std::string**)(0)); @@ -43292,7 +43204,7 @@ SWIGINTERN PyObject *_wrap_FitStrategyAdjustMinimizer_setMinimizer(PyObject *sel int res = SWIG_AsPtr_std_string(argv[2], (std::string**)(0)); _v = SWIG_CheckState(res); if (_v) { - return _wrap_FitStrategyAdjustMinimizer_setMinimizer__SWIG_2(self, args); + return _wrap_AdjustMinimizerStrategy_setMinimizer__SWIG_1(self, args); } } } @@ -43300,7 +43212,7 @@ SWIGINTERN PyObject *_wrap_FitStrategyAdjustMinimizer_setMinimizer(PyObject *sel if (argc == 4) { int _v; void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_FitStrategyAdjustMinimizer, 0); + int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AdjustMinimizerStrategy, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsPtr_std_string(argv[1], (std::string**)(0)); @@ -43312,7 +43224,7 @@ SWIGINTERN PyObject *_wrap_FitStrategyAdjustMinimizer_setMinimizer(PyObject *sel int res = SWIG_AsPtr_std_string(argv[3], (std::string**)(0)); _v = SWIG_CheckState(res); if (_v) { - return _wrap_FitStrategyAdjustMinimizer_setMinimizer__SWIG_1(self, args); + return _wrap_AdjustMinimizerStrategy_setMinimizer__SWIG_0(self, args); } } } @@ -43320,29 +43232,28 @@ SWIGINTERN PyObject *_wrap_FitStrategyAdjustMinimizer_setMinimizer(PyObject *sel } fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'FitStrategyAdjustMinimizer_setMinimizer'.\n" + SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AdjustMinimizerStrategy_setMinimizer'.\n" " Possible C/C++ prototypes are:\n" - " FitStrategyAdjustMinimizer::setMinimizer(IMinimizer *)\n" - " FitStrategyAdjustMinimizer::setMinimizer(std::string const &,std::string const &,std::string const &)\n" - " FitStrategyAdjustMinimizer::setMinimizer(std::string const &,std::string const &)\n" - " FitStrategyAdjustMinimizer::setMinimizer(std::string const &)\n"); + " AdjustMinimizerStrategy::setMinimizer(std::string const &,std::string const &,std::string const &)\n" + " AdjustMinimizerStrategy::setMinimizer(std::string const &,std::string const &)\n" + " AdjustMinimizerStrategy::setMinimizer(std::string const &)\n"); return 0; } -SWIGINTERN PyObject *_wrap_FitStrategyAdjustMinimizer_execute(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AdjustMinimizerStrategy_execute(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - FitStrategyAdjustMinimizer *arg1 = (FitStrategyAdjustMinimizer *) 0 ; + AdjustMinimizerStrategy *arg1 = (AdjustMinimizerStrategy *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:FitStrategyAdjustMinimizer_execute",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FitStrategyAdjustMinimizer, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AdjustMinimizerStrategy_execute",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjustMinimizerStrategy, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FitStrategyAdjustMinimizer_execute" "', argument " "1"" of type '" "FitStrategyAdjustMinimizer *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjustMinimizerStrategy_execute" "', argument " "1"" of type '" "AdjustMinimizerStrategy *""'"); } - arg1 = reinterpret_cast< FitStrategyAdjustMinimizer * >(argp1); + arg1 = reinterpret_cast< AdjustMinimizerStrategy * >(argp1); (arg1)->execute(); resultobj = SWIG_Py_Void(); return resultobj; @@ -43351,32 +43262,31 @@ fail: } -SWIGINTERN PyObject *_wrap_FitStrategyAdjustMinimizer_getMinimizerOptions(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_delete_AdjustMinimizerStrategy(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - FitStrategyAdjustMinimizer *arg1 = (FitStrategyAdjustMinimizer *) 0 ; + AdjustMinimizerStrategy *arg1 = (AdjustMinimizerStrategy *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - ObsoleteMinimizerOptions *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:FitStrategyAdjustMinimizer_getMinimizerOptions",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FitStrategyAdjustMinimizer, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:delete_AdjustMinimizerStrategy",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjustMinimizerStrategy, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FitStrategyAdjustMinimizer_getMinimizerOptions" "', argument " "1"" of type '" "FitStrategyAdjustMinimizer *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_AdjustMinimizerStrategy" "', argument " "1"" of type '" "AdjustMinimizerStrategy *""'"); } - arg1 = reinterpret_cast< FitStrategyAdjustMinimizer * >(argp1); - result = (ObsoleteMinimizerOptions *)(arg1)->getMinimizerOptions(); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ObsoleteMinimizerOptions, 0 | 0 ); + arg1 = reinterpret_cast< AdjustMinimizerStrategy * >(argp1); + delete arg1; + resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *FitStrategyAdjustMinimizer_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *AdjustMinimizerStrategy_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; - SWIG_TypeNewClientData(SWIGTYPE_p_FitStrategyAdjustMinimizer, SWIG_NewClientData(obj)); + SWIG_TypeNewClientData(SWIGTYPE_p_AdjustMinimizerStrategy, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } @@ -102441,18 +102351,18 @@ static PyMethodDef SwigMethods[] = { { (char *)"delete_IFitObserver", _wrap_delete_IFitObserver, METH_VARARGS, (char *)"delete_IFitObserver(IFitObserver self)"}, { (char *)"disown_IFitObserver", _wrap_disown_IFitObserver, METH_VARARGS, NULL}, { (char *)"IFitObserver_swigregister", IFitObserver_swigregister, METH_VARARGS, NULL}, - { (char *)"IFitStrategy_clone", _wrap_IFitStrategy_clone, METH_VARARGS, (char *)"\n" - "IFitStrategy_clone(IFitStrategy self) -> IFitStrategy\n" - "\n" - "virtual IFitStrategy* IFitStrategy::clone() const =0\n" - "\n" - ""}, { (char *)"delete_IFitStrategy", _wrap_delete_IFitStrategy, METH_VARARGS, (char *)"\n" "delete_IFitStrategy(IFitStrategy self)\n" "\n" "virtual IFitStrategy::~IFitStrategy()\n" "\n" ""}, + { (char *)"IFitStrategy_clone", _wrap_IFitStrategy_clone, METH_VARARGS, (char *)"\n" + "IFitStrategy_clone(IFitStrategy self) -> IFitStrategy\n" + "\n" + "virtual IFitStrategy* IFitStrategy::clone() const =0\n" + "\n" + ""}, { (char *)"IFitStrategy_init", _wrap_IFitStrategy_init, METH_VARARGS, (char *)"\n" "IFitStrategy_init(IFitStrategy self, FitSuiteImp * fit_suite)\n" "\n" @@ -102473,7 +102383,7 @@ static PyMethodDef SwigMethods[] = { "\n" ""}, { (char *)"FitStrategyDefault_clone", _wrap_FitStrategyDefault_clone, METH_VARARGS, (char *)"\n" - "FitStrategyDefault_clone(FitStrategyDefault self) -> IFitStrategy\n" + "FitStrategyDefault_clone(FitStrategyDefault self) -> FitStrategyDefault\n" "\n" "IFitStrategy * FitStrategyDefault::clone() const \n" "\n" @@ -102937,9 +102847,9 @@ static PyMethodDef SwigMethods[] = { { (char *)"FitObject_swigregister", FitObject_swigregister, METH_VARARGS, NULL}, { (char *)"new_FitOptions", _wrap_new_FitOptions, METH_VARARGS, (char *)"new_FitOptions() -> FitOptions"}, { (char *)"delete_FitOptions", _wrap_delete_FitOptions, METH_VARARGS, (char *)"delete_FitOptions(FitOptions self)"}, - { (char *)"FitOptions_getDerivEpsilon", _wrap_FitOptions_getDerivEpsilon, METH_VARARGS, (char *)"FitOptions_getDerivEpsilon(FitOptions self) -> double"}, + { (char *)"FitOptions_derivEpsilon", _wrap_FitOptions_derivEpsilon, METH_VARARGS, (char *)"FitOptions_derivEpsilon(FitOptions self) -> double"}, { (char *)"FitOptions_setDerivEpsilon", _wrap_FitOptions_setDerivEpsilon, METH_VARARGS, (char *)"FitOptions_setDerivEpsilon(FitOptions self, double deriv_epsilon)"}, - { (char *)"FitOptions_getStepFactor", _wrap_FitOptions_getStepFactor, METH_VARARGS, (char *)"FitOptions_getStepFactor(FitOptions self) -> double"}, + { (char *)"FitOptions_stepFactor", _wrap_FitOptions_stepFactor, METH_VARARGS, (char *)"FitOptions_stepFactor(FitOptions self) -> double"}, { (char *)"FitOptions_setStepFactor", _wrap_FitOptions_setStepFactor, METH_VARARGS, (char *)"FitOptions_setStepFactor(FitOptions self, double step_factor)"}, { (char *)"FitOptions_swigregister", FitOptions_swigregister, METH_VARARGS, NULL}, { (char *)"new_FitParameterLinked", _wrap_new_FitParameterLinked, METH_VARARGS, (char *)"\n" @@ -103479,55 +103389,31 @@ static PyMethodDef SwigMethods[] = { "double MathFunctions::GenerateNormalRandom(double average, double std_dev)\n" "\n" ""}, - { (char *)"new_FitStrategyAdjustMinimizer", _wrap_new_FitStrategyAdjustMinimizer, METH_VARARGS, (char *)"\n" - "FitStrategyAdjustMinimizer()\n" - "FitStrategyAdjustMinimizer(std::string const & minimizer_name, std::string const & algorithm_name, std::string const & minimizer_options)\n" - "FitStrategyAdjustMinimizer(std::string const & minimizer_name, std::string const & algorithm_name)\n" - "new_FitStrategyAdjustMinimizer(std::string const & minimizer_name) -> FitStrategyAdjustMinimizer\n" - "\n" - "FitStrategyAdjustMinimizer::FitStrategyAdjustMinimizer(const std::string &minimizer_name, const std::string &algorithm_name=std::string(), const std::string &minimizer_options=std::string())\n" - "\n" - ""}, - { (char *)"delete_FitStrategyAdjustMinimizer", _wrap_delete_FitStrategyAdjustMinimizer, METH_VARARGS, (char *)"\n" - "delete_FitStrategyAdjustMinimizer(FitStrategyAdjustMinimizer self)\n" - "\n" - "FitStrategyAdjustMinimizer::~FitStrategyAdjustMinimizer()\n" - "\n" - ""}, - { (char *)"FitStrategyAdjustMinimizer_clone", _wrap_FitStrategyAdjustMinimizer_clone, METH_VARARGS, (char *)"\n" - "FitStrategyAdjustMinimizer_clone(FitStrategyAdjustMinimizer self) -> FitStrategyAdjustMinimizer\n" - "\n" - "FitStrategyAdjustMinimizer * FitStrategyAdjustMinimizer::clone() const \n" - "\n" - ""}, - { (char *)"FitStrategyAdjustMinimizer_getMinimizer", _wrap_FitStrategyAdjustMinimizer_getMinimizer, METH_VARARGS, (char *)"\n" - "FitStrategyAdjustMinimizer_getMinimizer(FitStrategyAdjustMinimizer self) -> IMinimizer *\n" - "\n" - "IMinimizer * FitStrategyAdjustMinimizer::getMinimizer()\n" - "\n" + { (char *)"new_AdjustMinimizerStrategy", _wrap_new_AdjustMinimizerStrategy, METH_VARARGS, (char *)"\n" + "AdjustMinimizerStrategy()\n" + "AdjustMinimizerStrategy(std::string const & minimizerName, std::string const & algorithmName, std::string const & optionString)\n" + "AdjustMinimizerStrategy(std::string const & minimizerName, std::string const & algorithmName)\n" + "new_AdjustMinimizerStrategy(std::string const & minimizerName) -> AdjustMinimizerStrategy\n" ""}, - { (char *)"FitStrategyAdjustMinimizer_setMinimizer", _wrap_FitStrategyAdjustMinimizer_setMinimizer, METH_VARARGS, (char *)"\n" - "setMinimizer(IMinimizer * minimizer)\n" - "setMinimizer(std::string const & minimizer_name, std::string const & algorithm_name, std::string const & minimizer_options)\n" - "setMinimizer(std::string const & minimizer_name, std::string const & algorithm_name)\n" - "FitStrategyAdjustMinimizer_setMinimizer(FitStrategyAdjustMinimizer self, std::string const & minimizer_name)\n" + { (char *)"AdjustMinimizerStrategy_clone", _wrap_AdjustMinimizerStrategy_clone, METH_VARARGS, (char *)"\n" + "AdjustMinimizerStrategy_clone(AdjustMinimizerStrategy self) -> AdjustMinimizerStrategy\n" "\n" - "void FitStrategyAdjustMinimizer::setMinimizer(const std::string &minimizer_name, const std::string &algorithm_name=std::string(), const std::string &minimizer_options=std::string())\n" + "virtual IFitStrategy* IFitStrategy::clone() const =0\n" "\n" ""}, - { (char *)"FitStrategyAdjustMinimizer_execute", _wrap_FitStrategyAdjustMinimizer_execute, METH_VARARGS, (char *)"\n" - "FitStrategyAdjustMinimizer_execute(FitStrategyAdjustMinimizer self)\n" - "\n" - "void FitStrategyAdjustMinimizer::execute()\n" - "\n" + { (char *)"AdjustMinimizerStrategy_setMinimizer", _wrap_AdjustMinimizerStrategy_setMinimizer, METH_VARARGS, (char *)"\n" + "setMinimizer(std::string const & minimizerName, std::string const & algorithmName, std::string const & optionString)\n" + "setMinimizer(std::string const & minimizerName, std::string const & algorithmName)\n" + "AdjustMinimizerStrategy_setMinimizer(AdjustMinimizerStrategy self, std::string const & minimizerName)\n" ""}, - { (char *)"FitStrategyAdjustMinimizer_getMinimizerOptions", _wrap_FitStrategyAdjustMinimizer_getMinimizerOptions, METH_VARARGS, (char *)"\n" - "FitStrategyAdjustMinimizer_getMinimizerOptions(FitStrategyAdjustMinimizer self) -> ObsoleteMinimizerOptions *\n" + { (char *)"AdjustMinimizerStrategy_execute", _wrap_AdjustMinimizerStrategy_execute, METH_VARARGS, (char *)"\n" + "AdjustMinimizerStrategy_execute(AdjustMinimizerStrategy self)\n" "\n" - "ObsoleteMinimizerOptions * FitStrategyAdjustMinimizer::getMinimizerOptions()\n" + "virtual void IFitStrategy::execute()=0\n" "\n" ""}, - { (char *)"FitStrategyAdjustMinimizer_swigregister", FitStrategyAdjustMinimizer_swigregister, METH_VARARGS, NULL}, + { (char *)"delete_AdjustMinimizerStrategy", _wrap_delete_AdjustMinimizerStrategy, METH_VARARGS, (char *)"delete_AdjustMinimizerStrategy(AdjustMinimizerStrategy self)"}, + { (char *)"AdjustMinimizerStrategy_swigregister", AdjustMinimizerStrategy_swigregister, METH_VARARGS, NULL}, { (char *)"new_IMultiLayerBuilder", _wrap_new_IMultiLayerBuilder, METH_VARARGS, (char *)"\n" "new_IMultiLayerBuilder(PyObject * arg2) -> IMultiLayerBuilder\n" "\n" @@ -113272,12 +113158,12 @@ static void *_p_RotationZTo_p_IRotation(void *x, int *SWIGUNUSEDPARM(newmemory)) static void *_p_RotationXTo_p_IRotation(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IRotation *) ((RotationX *) x)); } +static void *_p_AdjustMinimizerStrategyTo_p_IFitStrategy(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((IFitStrategy *) ((AdjustMinimizerStrategy *) x)); +} static void *_p_FitStrategyDefaultTo_p_IFitStrategy(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IFitStrategy *) ((FitStrategyDefault *) x)); } -static void *_p_FitStrategyAdjustMinimizerTo_p_IFitStrategy(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((IFitStrategy *) ((FitStrategyAdjustMinimizer *) x)); -} static void *_p_SimpleSelectionRuleTo_p_ISelectionRule(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((ISelectionRule *) ((SimpleSelectionRule *) x)); } @@ -113834,9 +113720,6 @@ static void *_p_RectPixelMapTo_p_IPixelMap(void *x, int *SWIGUNUSEDPARM(newmemor static void *_p_FormFactorBoxTo_p_INamed(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INamed *) (IParameterized *)(ISample *)(IFormFactor *)(IFormFactorBorn *) ((FormFactorBox *) x)); } -static void *_p_FitStrategyAdjustMinimizerTo_p_INamed(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((INamed *) (IFitStrategy *) ((FitStrategyAdjustMinimizer *) x)); -} static void *_p_FormFactorSphereGaussianRadiusTo_p_INamed(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INamed *) (IParameterized *)(ISample *)(IFormFactor *)(IFormFactorBorn *) ((FormFactorSphereGaussianRadius *) x)); } @@ -114155,6 +114038,9 @@ static void *_p_FormFactorCone6To_p_INamed(void *x, int *SWIGUNUSEDPARM(newmemor static void *_p_FormFactorLongRipple1GaussTo_p_INamed(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INamed *) (IParameterized *)(ISample *)(IFormFactor *)(IFormFactorBorn *) ((FormFactorLongRipple1Gauss *) x)); } +static void *_p_AdjustMinimizerStrategyTo_p_INamed(void *x, int *SWIGUNUSEDPARM(newmemory)) { + return (void *)((INamed *) (IFitStrategy *) ((AdjustMinimizerStrategy *) x)); +} static void *_p_IFitStrategyTo_p_INamed(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((INamed *) ((IFitStrategy *) x)); } @@ -115145,6 +115031,7 @@ static void *_p_FTDecayFunction2DVoigtTo_p_IFTDecayFunction2D(void *x, int *SWIG static void *_p_ResolutionFunction2DGaussianTo_p_IResolutionFunction2D(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((IResolutionFunction2D *) ((ResolutionFunction2DGaussian *) x)); } +static swig_type_info _swigt__p_AdjustMinimizerStrategy = {"_p_AdjustMinimizerStrategy", "AdjustMinimizerStrategy *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_AngularPixelMap = {"_p_AngularPixelMap", "AngularPixelMap *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_AttLimits = {"_p_AttLimits", "AttLimits *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Attributes = {"_p_Attributes", "Attributes *", 0, 0, (void*)0, 0}; @@ -115193,7 +115080,6 @@ static swig_type_info _swigt__p_FitOptions = {"_p_FitOptions", "FitOptions *", 0 static swig_type_info _swigt__p_FitParameter = {"_p_FitParameter", "FitParameter *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_FitParameterLinked = {"_p_FitParameterLinked", "FitParameterLinked *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_FitParameterSet = {"_p_FitParameterSet", "FitParameterSet *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_FitStrategyAdjustMinimizer = {"_p_FitStrategyAdjustMinimizer", "FitStrategyAdjustMinimizer *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_FitStrategyDefault = {"_p_FitStrategyDefault", "FitStrategyDefault *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_FitSuite = {"_p_FitSuite", "FitSuite *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_FitSuiteImp = {"_p_FitSuiteImp", "FitSuiteImp *", 0, 0, (void*)0, 0}; @@ -115326,7 +115212,6 @@ static swig_type_info _swigt__p_Mask = {"_p_Mask", "Mask *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_MesoCrystal = {"_p_MesoCrystal", "MesoCrystal *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_MultiLayer = {"_p_MultiLayer", "MultiLayer *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_MultiLayerRTCoefficients_t = {"_p_MultiLayerRTCoefficients_t", "MultiLayerRTCoefficients_t *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_ObsoleteMinimizerOptions = {"_p_ObsoleteMinimizerOptions", "ObsoleteMinimizerOptions *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_OffSpecSimulation = {"_p_OffSpecSimulation", "OffSpecSimulation *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_OutputDataIteratorT_double_OutputDataT_double_t_t = {"_p_OutputDataIteratorT_double_OutputDataT_double_t_t", "OutputData< double >::iterator *|OutputDataIterator< double,OutputData< double > > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t = {"_p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t", "OutputDataIterator< double const,OutputData< double > const > *|OutputData< double >::const_iterator *", 0, 0, (void*)0, 0}; @@ -115441,6 +115326,7 @@ static swig_type_info _swigt__p_unsigned_short = {"_p_unsigned_short", "unsigned static swig_type_info _swigt__p_value_type = {"_p_value_type", "value_type *", 0, 0, (void*)0, 0}; static swig_type_info *swig_type_initial[] = { + &_swigt__p_AdjustMinimizerStrategy, &_swigt__p_AngularPixelMap, &_swigt__p_AttLimits, &_swigt__p_Attributes, @@ -115489,7 +115375,6 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_FitParameter, &_swigt__p_FitParameterLinked, &_swigt__p_FitParameterSet, - &_swigt__p_FitStrategyAdjustMinimizer, &_swigt__p_FitStrategyDefault, &_swigt__p_FitSuite, &_swigt__p_FitSuiteImp, @@ -115622,7 +115507,6 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_MesoCrystal, &_swigt__p_MultiLayer, &_swigt__p_MultiLayerRTCoefficients_t, - &_swigt__p_ObsoleteMinimizerOptions, &_swigt__p_OffSpecSimulation, &_swigt__p_OutputDataIteratorT_double_OutputDataT_double_t_t, &_swigt__p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t, @@ -115737,6 +115621,7 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_value_type, }; +static swig_cast_info _swigc__p_AdjustMinimizerStrategy[] = { {&_swigt__p_AdjustMinimizerStrategy, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_AngularPixelMap[] = { {&_swigt__p_AngularPixelMap, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_AttLimits[] = { {&_swigt__p_AttLimits, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Attributes[] = { {&_swigt__p_Attributes, 0, 0, 0},{0, 0, 0, 0}}; @@ -115785,7 +115670,6 @@ static swig_cast_info _swigc__p_FitOptions[] = { {&_swigt__p_FitOptions, 0, 0, static swig_cast_info _swigc__p_FitParameter[] = { {&_swigt__p_FitParameter, 0, 0, 0}, {&_swigt__p_FitParameterLinked, _p_FitParameterLinkedTo_p_FitParameter, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_FitParameterLinked[] = { {&_swigt__p_FitParameterLinked, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_FitParameterSet[] = { {&_swigt__p_FitParameterSet, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_FitStrategyAdjustMinimizer[] = { {&_swigt__p_FitStrategyAdjustMinimizer, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_FitStrategyDefault[] = { {&_swigt__p_FitStrategyDefault, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_FitSuite[] = { {&_swigt__p_FitSuite, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_FitSuiteImp[] = { {&_swigt__p_FitSuiteImp, 0, 0, 0},{0, 0, 0, 0}}; @@ -115865,7 +115749,7 @@ static swig_cast_info _swigc__p_IFactoryT_std__string_GISASSimulation_t[] = { { static swig_cast_info _swigc__p_IFactoryT_std__string_IMultiLayerBuilder_t[] = { {&_swigt__p_IFactoryT_std__string_IMultiLayerBuilder_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IFitObserver[] = { {&_swigt__p_IFitObserver, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IFitParameter[] = { {&_swigt__p_IFitParameter, 0, 0, 0}, {&_swigt__p_FitParameter, _p_FitParameterTo_p_IFitParameter, 0, 0}, {&_swigt__p_FitParameterLinked, _p_FitParameterLinkedTo_p_IFitParameter, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_IFitStrategy[] = { {&_swigt__p_IFitStrategy, 0, 0, 0}, {&_swigt__p_FitStrategyDefault, _p_FitStrategyDefaultTo_p_IFitStrategy, 0, 0}, {&_swigt__p_FitStrategyAdjustMinimizer, _p_FitStrategyAdjustMinimizerTo_p_IFitStrategy, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_IFitStrategy[] = { {&_swigt__p_IFitStrategy, 0, 0, 0}, {&_swigt__p_AdjustMinimizerStrategy, _p_AdjustMinimizerStrategyTo_p_IFitStrategy, 0, 0}, {&_swigt__p_FitStrategyDefault, _p_FitStrategyDefaultTo_p_IFitStrategy, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IFormFactor[] = { {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_IFormFactor, 0, 0}, {&_swigt__p_IFormFactor, 0, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorRipple1, _p_FormFactorRipple1To_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorRipple2, _p_FormFactorRipple2To_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorLongRipple1Gauss, _p_FormFactorLongRipple1GaussTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_IFormFactor, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_IFormFactor, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorTrivial, _p_FormFactorTrivialTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorDecoratorDebyeWaller, _p_FormFactorDecoratorDebyeWallerTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorLongRipple1Lorentz, _p_FormFactorLongRipple1LorentzTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorLongRipple2Lorentz, _p_FormFactorLongRipple2LorentzTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorLorentz, _p_FormFactorLorentzTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorSphereUniformRadius, _p_FormFactorSphereUniformRadiusTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorLongRipple2Gauss, _p_FormFactorLongRipple2GaussTo_p_IFormFactor, 0, 0}, {&_swigt__p_FormFactorGauss, _p_FormFactorGaussTo_p_IFormFactor, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IFormFactorBorn[] = { {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorRipple1, _p_FormFactorRipple1To_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorRipple2, _p_FormFactorRipple2To_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorLongRipple1Gauss, _p_FormFactorLongRipple1GaussTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_IFormFactorBorn, 0, 0, 0}, {&_swigt__p_FormFactorTrivial, _p_FormFactorTrivialTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorLorentz, _p_FormFactorLorentzTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorLongRipple2Lorentz, _p_FormFactorLongRipple2LorentzTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorLongRipple1Lorentz, _p_FormFactorLongRipple1LorentzTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorSphereUniformRadius, _p_FormFactorSphereUniformRadiusTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorLongRipple2Gauss, _p_FormFactorLongRipple2GaussTo_p_IFormFactorBorn, 0, 0}, {&_swigt__p_FormFactorGauss, _p_FormFactorGaussTo_p_IFormFactorBorn, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IFormFactorDecorator[] = { {&_swigt__p_IFormFactorDecorator, 0, 0, 0}, {&_swigt__p_FormFactorDecoratorDebyeWaller, _p_FormFactorDecoratorDebyeWallerTo_p_IFormFactorDecorator, 0, 0},{0, 0, 0, 0}}; @@ -115878,7 +115762,7 @@ static swig_cast_info _swigc__p_ILayout[] = { {&_swigt__p_ILayout, 0, 0, 0}, { static swig_cast_info _swigc__p_IMaterial[] = { {&_swigt__p_IMaterial, 0, 0, 0}, {&_swigt__p_HomogeneousMaterial, _p_HomogeneousMaterialTo_p_IMaterial, 0, 0}, {&_swigt__p_HomogeneousMagneticMaterial, _p_HomogeneousMagneticMaterialTo_p_IMaterial, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IMinimizer[] = { {&_swigt__p_IMinimizer, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IMultiLayerBuilder[] = { {&_swigt__p_IMultiLayerBuilder, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_INamed[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_INamed, 0, 0}, {&_swigt__p_FitStrategyAdjustMinimizer, _p_FitStrategyAdjustMinimizerTo_p_INamed, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_INamed, 0, 0}, {&_swigt__p_ParameterDistribution, _p_ParameterDistributionTo_p_INamed, 0, 0}, {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_INamed, 0, 0}, {&_swigt__p_Geometry__Polygon, _p_Geometry__PolygonTo_p_INamed, 0, 0}, {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_INamed, 0, 0}, {&_swigt__p_Geometry__Ellipse, _p_Geometry__EllipseTo_p_INamed, 0, 0}, {&_swigt__p_ILayout, _p_ILayoutTo_p_INamed, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_INamed, 0, 0}, {&_swigt__p_IntensityScaleAndShiftNormalizer, _p_IntensityScaleAndShiftNormalizerTo_p_INamed, 0, 0}, {&_swigt__p_IntensityNormalizer, _p_IntensityNormalizerTo_p_INamed, 0, 0}, {&_swigt__p_IIntensityNormalizer, _p_IIntensityNormalizerTo_p_INamed, 0, 0}, {&_swigt__p_Geometry__HorizontalLine, _p_Geometry__HorizontalLineTo_p_INamed, 0, 0}, {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_INamed, 0, 0}, {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_INamed, 0, 0}, {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_INamed, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_INamed, 0, 0}, {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_INamed, 0, 0}, {&_swigt__p_Simulation, _p_SimulationTo_p_INamed, 0, 0}, {&_swigt__p_OffSpecSimulation, _p_OffSpecSimulationTo_p_INamed, 0, 0}, {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution2DCone, _p_FTDistribution2DConeTo_p_INamed, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_INamed, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_INamed, 0, 0}, {&_swigt__p_ISample, _p_ISampleTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_INamed, 0, 0}, {&_swigt__p_ICompositeSample, _p_ICompositeSampleTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_INamed, 0, 0}, {&_swigt__p_FitSuiteObjects, _p_FitSuiteObjectsTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_INamed, 0, 0}, {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_INamed, 0, 0}, {&_swigt__p_Instrument, _p_InstrumentTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DVoigt, _p_FTDistribution1DVoigtTo_p_INamed, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_INamed, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_INamed, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_INamed, 0, 0}, {&_swigt__p_Geometry__IShape2D, _p_Geometry__IShape2DTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution2DGauss, _p_FTDistribution2DGaussTo_p_INamed, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_INamed, 0, 0}, {&_swigt__p_Geometry__Rectangle, _p_Geometry__RectangleTo_p_INamed, 0, 0}, {&_swigt__p_FitStrategyDefault, _p_FitStrategyDefaultTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorGauss, _p_FormFactorGaussTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongRipple2Gauss, _p_FormFactorLongRipple2GaussTo_p_INamed, 0, 0}, {&_swigt__p_Geometry__VerticalLine, _p_Geometry__VerticalLineTo_p_INamed, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_INamed, 0, 0}, {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_INamed, 0, 0}, {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_INamed, 0, 0}, {&_swigt__p_IMultiLayerBuilder, _p_IMultiLayerBuilderTo_p_INamed, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_INamed, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_INamed, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorTrivial, _p_FormFactorTrivialTo_p_INamed, 0, 0}, {&_swigt__p_INamed, 0, 0, 0}, {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_INamed, 0, 0}, {&_swigt__p_IDistribution1D, _p_IDistribution1DTo_p_INamed, 0, 0}, {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_INamed, 0, 0}, {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorRipple1, _p_FormFactorRipple1To_p_INamed, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_INamed, 0, 0}, {&_swigt__p_IMaterial, _p_IMaterialTo_p_INamed, 0, 0}, {&_swigt__p_HomogeneousMaterial, _p_HomogeneousMaterialTo_p_INamed, 0, 0}, {&_swigt__p_HomogeneousMagneticMaterial, _p_HomogeneousMagneticMaterialTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorDecoratorDebyeWaller, _p_FormFactorDecoratorDebyeWallerTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorRipple2, _p_FormFactorRipple2To_p_INamed, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_INamed, 0, 0}, {&_swigt__p_IParameterT_double_t, _p_IParameterT_double_tTo_p_INamed, 0, 0}, {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_INamed, 0, 0}, {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_INamed, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorSphereUniformRadius, _p_FormFactorSphereUniformRadiusTo_p_INamed, 0, 0}, {&_swigt__p_Geometry__Line, _p_Geometry__LineTo_p_INamed, 0, 0}, {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_INamed, 0, 0}, {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_INamed, 0, 0}, {&_swigt__p_FitObject, _p_FitObjectTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongRipple1Gauss, _p_FormFactorLongRipple1GaussTo_p_INamed, 0, 0}, {&_swigt__p_Beam, _p_BeamTo_p_INamed, 0, 0}, {&_swigt__p_IFitStrategy, _p_IFitStrategyTo_p_INamed, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_INamed, 0, 0}, {&_swigt__p_IParameterized, _p_IParameterizedTo_p_INamed, 0, 0}, {&_swigt__p_IRoughness, _p_IRoughnessTo_p_INamed, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_INamed, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_INamed, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_INamed, 0, 0}, {&_swigt__p_IFTDecayFunction2D, _p_IFTDecayFunction2DTo_p_INamed, 0, 0}, {&_swigt__p_IFTDistribution2D, _p_IFTDistribution2DTo_p_INamed, 0, 0}, {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_INamed, 0, 0}, {&_swigt__p_RealParameter, _p_RealParameterTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLorentz, _p_FormFactorLorentzTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongRipple2Lorentz, _p_FormFactorLongRipple2LorentzTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongRipple1Lorentz, _p_FormFactorLongRipple1LorentzTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_INamed, 0, 0}, {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_INamed, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_INamed, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_INamed[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_INamed, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_INamed, 0, 0}, {&_swigt__p_ParameterDistribution, _p_ParameterDistributionTo_p_INamed, 0, 0}, {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_INamed, 0, 0}, {&_swigt__p_Geometry__Polygon, _p_Geometry__PolygonTo_p_INamed, 0, 0}, {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_INamed, 0, 0}, {&_swigt__p_Geometry__Ellipse, _p_Geometry__EllipseTo_p_INamed, 0, 0}, {&_swigt__p_ILayout, _p_ILayoutTo_p_INamed, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_INamed, 0, 0}, {&_swigt__p_IntensityScaleAndShiftNormalizer, _p_IntensityScaleAndShiftNormalizerTo_p_INamed, 0, 0}, {&_swigt__p_IntensityNormalizer, _p_IntensityNormalizerTo_p_INamed, 0, 0}, {&_swigt__p_IIntensityNormalizer, _p_IIntensityNormalizerTo_p_INamed, 0, 0}, {&_swigt__p_Geometry__HorizontalLine, _p_Geometry__HorizontalLineTo_p_INamed, 0, 0}, {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_INamed, 0, 0}, {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_INamed, 0, 0}, {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_INamed, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_INamed, 0, 0}, {&_swigt__p_OffSpecSimulation, _p_OffSpecSimulationTo_p_INamed, 0, 0}, {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_INamed, 0, 0}, {&_swigt__p_Simulation, _p_SimulationTo_p_INamed, 0, 0}, {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution2DCone, _p_FTDistribution2DConeTo_p_INamed, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_INamed, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_INamed, 0, 0}, {&_swigt__p_ISample, _p_ISampleTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_INamed, 0, 0}, {&_swigt__p_ICompositeSample, _p_ICompositeSampleTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_INamed, 0, 0}, {&_swigt__p_FitSuiteObjects, _p_FitSuiteObjectsTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_INamed, 0, 0}, {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_INamed, 0, 0}, {&_swigt__p_Instrument, _p_InstrumentTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DVoigt, _p_FTDistribution1DVoigtTo_p_INamed, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_INamed, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_INamed, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_INamed, 0, 0}, {&_swigt__p_Geometry__IShape2D, _p_Geometry__IShape2DTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution2DGauss, _p_FTDistribution2DGaussTo_p_INamed, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_INamed, 0, 0}, {&_swigt__p_Geometry__Rectangle, _p_Geometry__RectangleTo_p_INamed, 0, 0}, {&_swigt__p_FitStrategyDefault, _p_FitStrategyDefaultTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorGauss, _p_FormFactorGaussTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongRipple2Gauss, _p_FormFactorLongRipple2GaussTo_p_INamed, 0, 0}, {&_swigt__p_Geometry__VerticalLine, _p_Geometry__VerticalLineTo_p_INamed, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_INamed, 0, 0}, {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_INamed, 0, 0}, {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_INamed, 0, 0}, {&_swigt__p_IMultiLayerBuilder, _p_IMultiLayerBuilderTo_p_INamed, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_INamed, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_INamed, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorTrivial, _p_FormFactorTrivialTo_p_INamed, 0, 0}, {&_swigt__p_INamed, 0, 0, 0}, {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_INamed, 0, 0}, {&_swigt__p_IDistribution1D, _p_IDistribution1DTo_p_INamed, 0, 0}, {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_INamed, 0, 0}, {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorRipple1, _p_FormFactorRipple1To_p_INamed, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_INamed, 0, 0}, {&_swigt__p_IMaterial, _p_IMaterialTo_p_INamed, 0, 0}, {&_swigt__p_HomogeneousMaterial, _p_HomogeneousMaterialTo_p_INamed, 0, 0}, {&_swigt__p_HomogeneousMagneticMaterial, _p_HomogeneousMagneticMaterialTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorDecoratorDebyeWaller, _p_FormFactorDecoratorDebyeWallerTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorRipple2, _p_FormFactorRipple2To_p_INamed, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_INamed, 0, 0}, {&_swigt__p_IParameterT_double_t, _p_IParameterT_double_tTo_p_INamed, 0, 0}, {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_INamed, 0, 0}, {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_INamed, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorSphereUniformRadius, _p_FormFactorSphereUniformRadiusTo_p_INamed, 0, 0}, {&_swigt__p_Geometry__Line, _p_Geometry__LineTo_p_INamed, 0, 0}, {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_INamed, 0, 0}, {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_INamed, 0, 0}, {&_swigt__p_FitObject, _p_FitObjectTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongRipple1Gauss, _p_FormFactorLongRipple1GaussTo_p_INamed, 0, 0}, {&_swigt__p_Beam, _p_BeamTo_p_INamed, 0, 0}, {&_swigt__p_AdjustMinimizerStrategy, _p_AdjustMinimizerStrategyTo_p_INamed, 0, 0}, {&_swigt__p_IFitStrategy, _p_IFitStrategyTo_p_INamed, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_INamed, 0, 0}, {&_swigt__p_IParameterized, _p_IParameterizedTo_p_INamed, 0, 0}, {&_swigt__p_IRoughness, _p_IRoughnessTo_p_INamed, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_INamed, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_INamed, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_INamed, 0, 0}, {&_swigt__p_IFTDecayFunction2D, _p_IFTDecayFunction2DTo_p_INamed, 0, 0}, {&_swigt__p_IFTDistribution2D, _p_IFTDistribution2DTo_p_INamed, 0, 0}, {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_INamed, 0, 0}, {&_swigt__p_RealParameter, _p_RealParameterTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLorentz, _p_FormFactorLorentzTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongRipple2Lorentz, _p_FormFactorLongRipple2LorentzTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongRipple1Lorentz, _p_FormFactorLongRipple1LorentzTo_p_INamed, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_INamed, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_INamed, 0, 0}, {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_INamed, 0, 0}, {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_INamed, 0, 0}, {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_INamed, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_INamed, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_INoncopyable[] = { {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_INoncopyable, 0, 0}, {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_INoncopyable, 0, 0}, {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_INoncopyable, 0, 0}, {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_INoncopyable, 0, 0}, {&_swigt__p_Geometry__Polygon, _p_Geometry__PolygonTo_p_INoncopyable, 0, 0}, {&_swigt__p_Geometry__Ellipse, _p_Geometry__EllipseTo_p_INoncopyable, 0, 0}, {&_swigt__p_ILayout, _p_ILayoutTo_p_INoncopyable, 0, 0}, {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_INoncopyable, 0, 0}, {&_swigt__p_IChiSquaredModule, _p_IChiSquaredModuleTo_p_INoncopyable, 0, 0}, {&_swigt__p_ChiSquaredModule, _p_ChiSquaredModuleTo_p_INoncopyable, 0, 0}, {&_swigt__p_Geometry__HorizontalLine, _p_Geometry__HorizontalLineTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_INoncopyable, 0, 0}, {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_INoncopyable, 0, 0}, {&_swigt__p_Simulation, _p_SimulationTo_p_INoncopyable, 0, 0}, {&_swigt__p_OffSpecSimulation, _p_OffSpecSimulationTo_p_INoncopyable, 0, 0}, {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_INoncopyable, 0, 0}, {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_INoncopyable, 0, 0}, {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_INoncopyable, 0, 0}, {&_swigt__p_ISample, _p_ISampleTo_p_INoncopyable, 0, 0}, {&_swigt__p_ICompositeSample, _p_ICompositeSampleTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_INoncopyable, 0, 0}, {&_swigt__p_FitSuiteObjects, _p_FitSuiteObjectsTo_p_INoncopyable, 0, 0}, {&_swigt__p_IRotation, _p_IRotationTo_p_INoncopyable, 0, 0}, {&_swigt__p_RotationX, _p_RotationXTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_INoncopyable, 0, 0}, {&_swigt__p_RotationY, _p_RotationYTo_p_INoncopyable, 0, 0}, {&_swigt__p_Geometry__IShape2D, _p_Geometry__IShape2DTo_p_INoncopyable, 0, 0}, {&_swigt__p_RotationZ, _p_RotationZTo_p_INoncopyable, 0, 0}, {&_swigt__p_Geometry__Rectangle, _p_Geometry__RectangleTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorGauss, _p_FormFactorGaussTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorLongRipple2Gauss, _p_FormFactorLongRipple2GaussTo_p_INoncopyable, 0, 0}, {&_swigt__p_Geometry__VerticalLine, _p_Geometry__VerticalLineTo_p_INoncopyable, 0, 0}, {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_INoncopyable, 0, 0}, {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_INoncopyable, 0, 0}, {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_INoncopyable, 0, 0}, {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_INoncopyable, 0, 0}, {&_swigt__p_IParticle, _p_IParticleTo_p_INoncopyable, 0, 0}, {&_swigt__p_Particle, _p_ParticleTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorTrivial, _p_FormFactorTrivialTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_INoncopyable, 0, 0}, {&_swigt__p_INoncopyable, 0, 0, 0}, {&_swigt__p_FormFactorRipple1, _p_FormFactorRipple1To_p_INoncopyable, 0, 0}, {&_swigt__p_Layer, _p_LayerTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorDecoratorDebyeWaller, _p_FormFactorDecoratorDebyeWallerTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorRipple2, _p_FormFactorRipple2To_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_INoncopyable, 0, 0}, {&_swigt__p_IParameterT_double_t, _p_IParameterT_double_tTo_p_INoncopyable, 0, 0}, {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorSphereUniformRadius, _p_FormFactorSphereUniformRadiusTo_p_INoncopyable, 0, 0}, {&_swigt__p_Geometry__Line, _p_Geometry__LineTo_p_INoncopyable, 0, 0}, {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_INoncopyable, 0, 0}, {&_swigt__p_FitObject, _p_FitObjectTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorLongRipple1Gauss, _p_FormFactorLongRipple1GaussTo_p_INoncopyable, 0, 0}, {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_INoncopyable, 0, 0}, {&_swigt__p_IRoughness, _p_IRoughnessTo_p_INoncopyable, 0, 0}, {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_INoncopyable, 0, 0}, {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_INoncopyable, 0, 0}, {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_INoncopyable, 0, 0}, {&_swigt__p_Crystal, _p_CrystalTo_p_INoncopyable, 0, 0}, {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_INoncopyable, 0, 0}, {&_swigt__p_RealParameter, _p_RealParameterTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorLorentz, _p_FormFactorLorentzTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorLongRipple2Lorentz, _p_FormFactorLongRipple2LorentzTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorLongRipple1Lorentz, _p_FormFactorLongRipple1LorentzTo_p_INoncopyable, 0, 0}, {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_INoncopyable, 0, 0}, {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_INoncopyable, 0, 0}, {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_INoncopyable, 0, 0}, {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_INoncopyable, 0, 0}, {&_swigt__p_ICloneable, _p_ICloneableTo_p_INoncopyable, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IObservable[] = { {&_swigt__p_IObservable, 0, 0, 0}, {&_swigt__p_FitSuite, _p_FitSuiteTo_p_IObservable, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IObserver[] = { {&_swigt__p_IObserver, 0, 0, 0}, {&_swigt__p_IFitObserver, _p_IFitObserverTo_p_IObserver, 0, 0},{0, 0, 0, 0}}; @@ -115918,7 +115802,6 @@ static swig_cast_info _swigc__p_Mask[] = { {&_swigt__p_Mask, 0, 0, 0},{0, 0, 0, static swig_cast_info _swigc__p_MesoCrystal[] = { {&_swigt__p_MesoCrystal, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_MultiLayer[] = { {&_swigt__p_MultiLayer, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_MultiLayerRTCoefficients_t[] = { {&_swigt__p_MultiLayerRTCoefficients_t, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_ObsoleteMinimizerOptions[] = { {&_swigt__p_ObsoleteMinimizerOptions, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_OffSpecSimulation[] = { {&_swigt__p_OffSpecSimulation, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_OutputDataIteratorT_double_OutputDataT_double_t_t[] = { {&_swigt__p_OutputDataIteratorT_double_OutputDataT_double_t_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t[] = { {&_swigt__p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t, 0, 0, 0},{0, 0, 0, 0}}; @@ -116033,6 +115916,7 @@ static swig_cast_info _swigc__p_unsigned_short[] = { {&_swigt__p_unsigned_short static swig_cast_info _swigc__p_value_type[] = { {&_swigt__p_value_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info *swig_cast_initial[] = { + _swigc__p_AdjustMinimizerStrategy, _swigc__p_AngularPixelMap, _swigc__p_AttLimits, _swigc__p_Attributes, @@ -116081,7 +115965,6 @@ static swig_cast_info *swig_cast_initial[] = { _swigc__p_FitParameter, _swigc__p_FitParameterLinked, _swigc__p_FitParameterSet, - _swigc__p_FitStrategyAdjustMinimizer, _swigc__p_FitStrategyDefault, _swigc__p_FitSuite, _swigc__p_FitSuiteImp, @@ -116214,7 +116097,6 @@ static swig_cast_info *swig_cast_initial[] = { _swigc__p_MesoCrystal, _swigc__p_MultiLayer, _swigc__p_MultiLayerRTCoefficients_t, - _swigc__p_ObsoleteMinimizerOptions, _swigc__p_OffSpecSimulation, _swigc__p_OutputDataIteratorT_double_OutputDataT_double_t_t, _swigc__p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t, diff --git a/auto/Wrap/libBornAgainFit.py b/auto/Wrap/libBornAgainFit.py index ae9711abb8c37345e0fa97f9d6c20a3e27454b60..4196daa24eff60918f5e2269f613555a1651c84b 100644 --- a/auto/Wrap/libBornAgainFit.py +++ b/auto/Wrap/libBornAgainFit.py @@ -1708,16 +1708,9 @@ class IMinimizer(_object): return _libBornAgainFit.IMinimizer_setGradientFunction(self, arg2, arg3) - def getMinValue(self): - """ - getMinValue(IMinimizer self) -> double - - double IMinimizer::getMinValue() const - - Returns minimum function value. - - """ - return _libBornAgainFit.IMinimizer_getMinValue(self) + def minValue(self): + """minValue(IMinimizer self) -> double""" + return _libBornAgainFit.IMinimizer_minValue(self) def reportResults(self): @@ -1743,6 +1736,11 @@ class IMinimizer(_object): """ return _libBornAgainFit.IMinimizer_propagateResults(self, parameters) + + def setOptions(self, options): + """setOptions(IMinimizer self, std::string const & options)""" + return _libBornAgainFit.IMinimizer_setOptions(self, options) + IMinimizer_swigregister = _libBornAgainFit.IMinimizer_swigregister IMinimizer_swigregister(IMinimizer) @@ -2289,6 +2287,18 @@ class MinimizerFactory(_object): __getattr__ = lambda self, name: _swig_getattr(self, MinimizerFactory, name) __repr__ = _swig_repr + def createMinimizer(*args): + """ + createMinimizer(std::string const & minimizerName, std::string const & algorithmType, std::string const & optionString) -> IMinimizer + createMinimizer(std::string const & minimizerName, std::string const & algorithmType) -> IMinimizer + createMinimizer(std::string const & minimizerName) -> IMinimizer + """ + return _libBornAgainFit.MinimizerFactory_createMinimizer(*args) + + if _newclass: + createMinimizer = staticmethod(createMinimizer) + __swig_getmethods__["createMinimizer"] = lambda x: createMinimizer + def printCatalogue(): """printCatalogue()""" return _libBornAgainFit.MinimizerFactory_printCatalogue() @@ -2305,19 +2315,6 @@ class MinimizerFactory(_object): catalogueToString = staticmethod(catalogueToString) __swig_getmethods__["catalogueToString"] = lambda x: catalogueToString - def createMinimizer(*args): - """ - createMinimizer(std::string const & minimizerName, std::string const & algorithmType, std::string const & arg3) -> IMinimizer - createMinimizer(std::string const & minimizerName, std::string const & algorithmType) -> IMinimizer - createMinimizer(std::string const & minimizerName) -> IMinimizer - createMinimizer(IMinimizer other) -> IMinimizer - """ - return _libBornAgainFit.MinimizerFactory_createMinimizer(*args) - - if _newclass: - createMinimizer = staticmethod(createMinimizer) - __swig_getmethods__["createMinimizer"] = lambda x: createMinimizer - def catalogue(): """catalogue() -> MinimizerCatalogue""" return _libBornAgainFit.MinimizerFactory_catalogue() @@ -2351,6 +2348,14 @@ class MinimizerFactory(_object): MinimizerFactory_swigregister = _libBornAgainFit.MinimizerFactory_swigregister MinimizerFactory_swigregister(MinimizerFactory) +def MinimizerFactory_createMinimizer(*args): + """ + createMinimizer(std::string const & minimizerName, std::string const & algorithmType, std::string const & optionString) -> IMinimizer + createMinimizer(std::string const & minimizerName, std::string const & algorithmType) -> IMinimizer + MinimizerFactory_createMinimizer(std::string const & minimizerName) -> IMinimizer + """ + return _libBornAgainFit.MinimizerFactory_createMinimizer(*args) + def MinimizerFactory_printCatalogue(): """MinimizerFactory_printCatalogue()""" return _libBornAgainFit.MinimizerFactory_printCatalogue() @@ -2359,15 +2364,6 @@ def MinimizerFactory_catalogueToString(): """MinimizerFactory_catalogueToString() -> std::string""" return _libBornAgainFit.MinimizerFactory_catalogueToString() -def MinimizerFactory_createMinimizer(*args): - """ - createMinimizer(std::string const & minimizerName, std::string const & algorithmType, std::string const & arg3) -> IMinimizer - createMinimizer(std::string const & minimizerName, std::string const & algorithmType) -> IMinimizer - createMinimizer(std::string const & minimizerName) -> IMinimizer - MinimizerFactory_createMinimizer(IMinimizer other) -> IMinimizer - """ - return _libBornAgainFit.MinimizerFactory_createMinimizer(*args) - def MinimizerFactory_catalogue(): """MinimizerFactory_catalogue() -> MinimizerCatalogue""" return _libBornAgainFit.MinimizerFactory_catalogue() diff --git a/auto/Wrap/libBornAgainFit_wrap.cpp b/auto/Wrap/libBornAgainFit_wrap.cpp index b38bbae34319a7e2ce7a2a5e8a9101a4067c40df..3f7e9e2e63523f33feeb6b4f20d36c8f522bc7c1 100644 --- a/auto/Wrap/libBornAgainFit_wrap.cpp +++ b/auto/Wrap/libBornAgainFit_wrap.cpp @@ -19234,7 +19234,7 @@ fail: } -SWIGINTERN PyObject *_wrap_IMinimizer_getMinValue(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_IMinimizer_minValue(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IMinimizer *arg1 = (IMinimizer *) 0 ; void *argp1 = 0 ; @@ -19242,13 +19242,13 @@ SWIGINTERN PyObject *_wrap_IMinimizer_getMinValue(PyObject *SWIGUNUSEDPARM(self) PyObject * obj0 = 0 ; double result; - if (!PyArg_ParseTuple(args,(char *)"O:IMinimizer_getMinValue",&obj0)) SWIG_fail; + if (!PyArg_ParseTuple(args,(char *)"O:IMinimizer_minValue",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IMinimizer, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IMinimizer_getMinValue" "', argument " "1"" of type '" "IMinimizer const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IMinimizer_minValue" "', argument " "1"" of type '" "IMinimizer const *""'"); } arg1 = reinterpret_cast< IMinimizer * >(argp1); - result = (double)((IMinimizer const *)arg1)->getMinValue(); + result = (double)((IMinimizer const *)arg1)->minValue(); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: @@ -19311,6 +19311,43 @@ fail: } +SWIGINTERN PyObject *_wrap_IMinimizer_setOptions(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + IMinimizer *arg1 = (IMinimizer *) 0 ; + std::string *arg2 = 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + int res2 = SWIG_OLDOBJ ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OO:IMinimizer_setOptions",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IMinimizer, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IMinimizer_setOptions" "', argument " "1"" of type '" "IMinimizer *""'"); + } + arg1 = reinterpret_cast< IMinimizer * >(argp1); + { + std::string *ptr = (std::string *)0; + res2 = SWIG_AsPtr_std_string(obj1, &ptr); + if (!SWIG_IsOK(res2)) { + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IMinimizer_setOptions" "', argument " "2"" of type '" "std::string const &""'"); + } + if (!ptr) { + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IMinimizer_setOptions" "', argument " "2"" of type '" "std::string const &""'"); + } + arg2 = ptr; + } + (arg1)->setOptions((std::string const &)*arg2); + resultobj = SWIG_Py_Void(); + if (SWIG_IsNewObj(res2)) delete arg2; + return resultobj; +fail: + if (SWIG_IsNewObj(res2)) delete arg2; + return NULL; +} + + SWIGINTERN PyObject *IMinimizer_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; @@ -21472,53 +21509,6 @@ fail: } -SWIGINTERN PyObject *_wrap_MinimizerFactory_printCatalogue(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - - if (!PyArg_ParseTuple(args,(char *)":MinimizerFactory_printCatalogue")) SWIG_fail; - MinimizerFactory::printCatalogue(); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_MinimizerFactory_catalogueToString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - std::string result; - - if (!PyArg_ParseTuple(args,(char *)":MinimizerFactory_catalogueToString")) SWIG_fail; - result = MinimizerFactory::catalogueToString(); - resultobj = SWIG_From_std_string(static_cast< std::string >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_MinimizerFactory_createMinimizer__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - IMinimizer *arg1 = (IMinimizer *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - IMinimizer *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:MinimizerFactory_createMinimizer",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IMinimizer, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MinimizerFactory_createMinimizer" "', argument " "1"" of type '" "IMinimizer const *""'"); - } - arg1 = reinterpret_cast< IMinimizer * >(argp1); - result = (IMinimizer *)MinimizerFactory::createMinimizer((IMinimizer const *)arg1); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IMinimizer, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - SWIGINTERN PyObject *_wrap_MinimizerFactory_createMinimizer(PyObject *self, PyObject *args) { Py_ssize_t argc; PyObject *argv[4] = { @@ -21531,15 +21521,6 @@ SWIGINTERN PyObject *_wrap_MinimizerFactory_createMinimizer(PyObject *self, PyOb for (ii = 0; (ii < 3) && (ii < argc); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_IMinimizer, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_MinimizerFactory_createMinimizer__SWIG_3(self, args); - } - } if (argc == 1) { int _v; int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0)); @@ -21582,12 +21563,36 @@ fail: " Possible C/C++ prototypes are:\n" " MinimizerFactory::createMinimizer(std::string const &,std::string const &,std::string const &)\n" " MinimizerFactory::createMinimizer(std::string const &,std::string const &)\n" - " MinimizerFactory::createMinimizer(std::string const &)\n" - " MinimizerFactory::createMinimizer(IMinimizer const *)\n"); + " MinimizerFactory::createMinimizer(std::string const &)\n"); return 0; } +SWIGINTERN PyObject *_wrap_MinimizerFactory_printCatalogue(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + + if (!PyArg_ParseTuple(args,(char *)":MinimizerFactory_printCatalogue")) SWIG_fail; + MinimizerFactory::printCatalogue(); + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_MinimizerFactory_catalogueToString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + std::string result; + + if (!PyArg_ParseTuple(args,(char *)":MinimizerFactory_catalogueToString")) SWIG_fail; + result = MinimizerFactory::catalogueToString(); + resultobj = SWIG_From_std_string(static_cast< std::string >(result)); + return resultobj; +fail: + return NULL; +} + + SWIGINTERN PyObject *_wrap_MinimizerFactory_catalogue(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; MinimizerCatalogue *result = 0 ; @@ -22123,14 +22128,7 @@ static PyMethodDef SwigMethods[] = { "virtual void IMinimizer::setGradientFunction(gradient_function_t, int)\n" "\n" ""}, - { (char *)"IMinimizer_getMinValue", _wrap_IMinimizer_getMinValue, METH_VARARGS, (char *)"\n" - "IMinimizer_getMinValue(IMinimizer self) -> double\n" - "\n" - "double IMinimizer::getMinValue() const\n" - "\n" - "Returns minimum function value. \n" - "\n" - ""}, + { (char *)"IMinimizer_minValue", _wrap_IMinimizer_minValue, METH_VARARGS, (char *)"IMinimizer_minValue(IMinimizer self) -> double"}, { (char *)"IMinimizer_reportResults", _wrap_IMinimizer_reportResults, METH_VARARGS, (char *)"\n" "IMinimizer_reportResults(IMinimizer self) -> std::string\n" "\n" @@ -22147,6 +22145,7 @@ static PyMethodDef SwigMethods[] = { "Propagates results of minimization to fit parameter set. \n" "\n" ""}, + { (char *)"IMinimizer_setOptions", _wrap_IMinimizer_setOptions, METH_VARARGS, (char *)"IMinimizer_setOptions(IMinimizer self, std::string const & options)"}, { (char *)"IMinimizer_swigregister", IMinimizer_swigregister, METH_VARARGS, NULL}, { (char *)"delete_IFitParameter", _wrap_delete_IFitParameter, METH_VARARGS, (char *)"delete_IFitParameter(IFitParameter self)"}, { (char *)"IFitParameter_clone", _wrap_IFitParameter_clone, METH_VARARGS, (char *)"IFitParameter_clone(IFitParameter self) -> IFitParameter"}, @@ -22412,14 +22411,13 @@ static PyMethodDef SwigMethods[] = { ""}, { (char *)"delete_MinimizerCatalogue", _wrap_delete_MinimizerCatalogue, METH_VARARGS, (char *)"delete_MinimizerCatalogue(MinimizerCatalogue self)"}, { (char *)"MinimizerCatalogue_swigregister", MinimizerCatalogue_swigregister, METH_VARARGS, NULL}, - { (char *)"MinimizerFactory_printCatalogue", _wrap_MinimizerFactory_printCatalogue, METH_VARARGS, (char *)"MinimizerFactory_printCatalogue()"}, - { (char *)"MinimizerFactory_catalogueToString", _wrap_MinimizerFactory_catalogueToString, METH_VARARGS, (char *)"MinimizerFactory_catalogueToString() -> std::string"}, { (char *)"MinimizerFactory_createMinimizer", _wrap_MinimizerFactory_createMinimizer, METH_VARARGS, (char *)"\n" - "createMinimizer(std::string const & minimizerName, std::string const & algorithmType, std::string const & arg3) -> IMinimizer\n" + "createMinimizer(std::string const & minimizerName, std::string const & algorithmType, std::string const & optionString) -> IMinimizer\n" "createMinimizer(std::string const & minimizerName, std::string const & algorithmType) -> IMinimizer\n" - "createMinimizer(std::string const & minimizerName) -> IMinimizer\n" - "MinimizerFactory_createMinimizer(IMinimizer other) -> IMinimizer\n" + "MinimizerFactory_createMinimizer(std::string const & minimizerName) -> IMinimizer\n" ""}, + { (char *)"MinimizerFactory_printCatalogue", _wrap_MinimizerFactory_printCatalogue, METH_VARARGS, (char *)"MinimizerFactory_printCatalogue()"}, + { (char *)"MinimizerFactory_catalogueToString", _wrap_MinimizerFactory_catalogueToString, METH_VARARGS, (char *)"MinimizerFactory_catalogueToString() -> std::string"}, { (char *)"MinimizerFactory_catalogue", _wrap_MinimizerFactory_catalogue, METH_VARARGS, (char *)"MinimizerFactory_catalogue() -> MinimizerCatalogue"}, { (char *)"new_MinimizerFactory", _wrap_new_MinimizerFactory, METH_VARARGS, (char *)"\n" "new_MinimizerFactory() -> MinimizerFactory\n"