Mantid
Loading...
Searching...
No Matches
IFunctionModel.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2019 ISIS Rutherford Appleton Laboratory UKRI,
4// NScD Oak Ridge National Laboratory, European Spallation Source,
5// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
6// SPDX - License - Identifier: GPL - 3.0 +
7#pragma once
8
9#include "DllOption.h"
10
14
15#include <QList>
16#include <QPair>
17#include <QString>
18#include <QStringList>
19
20namespace MantidQt {
21namespace MantidWidgets {
22
23using namespace Mantid::API;
24
26public:
27 virtual ~IFunctionModel() = default;
28 void setFunctionString(std::string const &funStr);
29 std::string getFunctionString() const;
30 std::string getFitFunctionString() const;
31 void clear();
32 int getNumberLocalFunctions() const;
33 virtual void setFunction(IFunction_sptr fun) = 0;
34 virtual IFunction_sptr getFullFunction() const = 0;
35 virtual IFunction_sptr getFitFunction() const = 0;
36 virtual bool hasFunction() const = 0;
37 virtual void addFunction(std::string const &prefix, std::string const &funStr) = 0;
38 virtual void removeFunction(std::string const &functionIndex) = 0;
39 virtual void setParameter(std::string const &parameterName, double value) = 0;
40 virtual void setParameterError(std::string const &parameterName, double value) = 0;
41 virtual double getParameter(std::string const &parameterName) const = 0;
42 virtual double getParameterError(std::string const &parameterName) const = 0;
43 virtual std::string getParameterDescription(std::string const &parameterName) const = 0;
44 virtual std::vector<std::string> getParameterNames() const = 0;
45 virtual IFunction_sptr getSingleFunction(int index) const = 0;
47 virtual void setNumberDomains(int) = 0;
48 virtual void setDatasets(const QList<FunctionModelDataset> &datasets) = 0;
49 virtual std::vector<std::string> getDatasetNames() const = 0;
50 virtual std::vector<std::string> getDatasetDomainNames() const = 0;
51 virtual int getNumberDomains() const = 0;
52 virtual int currentDomainIndex() const = 0;
53 virtual void setCurrentDomainIndex(int) = 0;
54 virtual void changeTie(std::string const &parameterName, std::string const &tie) = 0;
55 virtual void addConstraint(std::string const &functionIndex, std::string const &constraint) = 0;
56 virtual void removeConstraint(std::string const &parameterName) = 0;
57 virtual std::vector<std::string> getGlobalParameters() const = 0;
58 virtual void setGlobal(std::string const &parameterName, bool on) = 0;
59 virtual void setGlobalParameters(const std::vector<std::string> &globals) = 0;
60 virtual bool isGlobal(std::string const &parameterName) const = 0;
61 virtual std::vector<std::string> getLocalParameters() const = 0;
62 virtual void updateMultiDatasetParameters(const IFunction &fun) = 0;
63 virtual void updateMultiDatasetParameters(const ITableWorkspace &paramTable) = 0;
64 virtual void updateParameters(const IFunction &fun) = 0;
65 virtual double getLocalParameterValue(std::string const &parameterName, int i) const = 0;
66 virtual bool isLocalParameterFixed(std::string const &parameterName, int i) const = 0;
67 virtual std::string getLocalParameterTie(std::string const &parameterName, int i) const = 0;
68 virtual std::string getLocalParameterConstraint(std::string const &parameterName, int i) const = 0;
69 virtual void setLocalParameterValue(std::string const &parameterName, int i, double value) = 0;
70 virtual void setLocalParameterValue(std::string const &parameterName, int i, double value, double error) = 0;
71 virtual void setLocalParameterFixed(std::string const &parameterName, int i, bool fixed) = 0;
72 virtual void setLocalParameterTie(std::string const &parameterName, int i, std::string const &tie) = 0;
73 virtual void setLocalParameterConstraint(std::string const &parameterName, int i, std::string const &constraint) = 0;
74 virtual void setGlobalParameterValue(std::string const &parameterName, double value) = 0;
75 virtual std::string setBackgroundA0(double value) = 0;
76 virtual void setResolution(const std::vector<std::pair<std::string, size_t>> &fitResolutions) = 0;
77 virtual void setQValues(const std::vector<double> &qValues) = 0;
78
79protected:
80 static void copyParametersAndErrors(const IFunction &funFrom, IFunction &funTo);
81 void copyParametersAndErrorsToAllLocalFunctions(const IFunction &fun);
82};
83
84} // namespace MantidWidgets
85} // namespace MantidQt
#define EXPORT_OPT_MANTIDQT_COMMON
Definition DllOption.h:15
double value
The value of the point.
Definition FitMW.cpp:51
double error
std::map< DeltaEMode::Type, std::string > index
virtual void setQValues(const std::vector< double > &qValues)=0
virtual int getNumberDomains() const =0
virtual bool isLocalParameterFixed(std::string const &parameterName, int i) const =0
virtual void setGlobal(std::string const &parameterName, bool on)=0
virtual bool hasFunction() const =0
virtual void changeTie(std::string const &parameterName, std::string const &tie)=0
virtual void addFunction(std::string const &prefix, std::string const &funStr)=0
virtual void setResolution(const std::vector< std::pair< std::string, size_t > > &fitResolutions)=0
virtual std::vector< std::string > getDatasetDomainNames() const =0
virtual std::vector< std::string > getLocalParameters() const =0
virtual void updateMultiDatasetParameters(const IFunction &fun)=0
virtual std::vector< std::string > getDatasetNames() const =0
virtual void setLocalParameterFixed(std::string const &parameterName, int i, bool fixed)=0
virtual IFunction_sptr getCurrentFunction() const =0
virtual int currentDomainIndex() const =0
virtual void setLocalParameterValue(std::string const &parameterName, int i, double value, double error)=0
virtual void setDatasets(const QList< FunctionModelDataset > &datasets)=0
virtual void setFunction(IFunction_sptr fun)=0
virtual void setGlobalParameterValue(std::string const &parameterName, double value)=0
virtual IFunction_sptr getSingleFunction(int index) const =0
virtual void updateMultiDatasetParameters(const ITableWorkspace &paramTable)=0
virtual std::string getParameterDescription(std::string const &parameterName) const =0
virtual std::vector< std::string > getGlobalParameters() const =0
virtual void setLocalParameterTie(std::string const &parameterName, int i, std::string const &tie)=0
virtual void setParameter(std::string const &parameterName, double value)=0
virtual void setLocalParameterConstraint(std::string const &parameterName, int i, std::string const &constraint)=0
virtual double getParameter(std::string const &parameterName) const =0
virtual void removeFunction(std::string const &functionIndex)=0
virtual void removeConstraint(std::string const &parameterName)=0
virtual void setGlobalParameters(const std::vector< std::string > &globals)=0
virtual std::vector< std::string > getParameterNames() const =0
virtual std::string setBackgroundA0(double value)=0
virtual bool isGlobal(std::string const &parameterName) const =0
virtual void updateParameters(const IFunction &fun)=0
virtual void setLocalParameterValue(std::string const &parameterName, int i, double value)=0
virtual double getParameterError(std::string const &parameterName) const =0
virtual std::string getLocalParameterTie(std::string const &parameterName, int i) const =0
virtual void addConstraint(std::string const &functionIndex, std::string const &constraint)=0
virtual IFunction_sptr getFitFunction() const =0
virtual std::string getLocalParameterConstraint(std::string const &parameterName, int i) const =0
virtual void setParameterError(std::string const &parameterName, double value)=0
virtual IFunction_sptr getFullFunction() const =0
virtual double getLocalParameterValue(std::string const &parameterName, int i) const =0
This is an interface to a fitting function - a semi-abstarct class.
Definition IFunction.h:166
ITableWorkspace is an implementation of Workspace in which the data are organised in columns of same ...
The AlgorithmProgressDialogPresenter keeps track of the running algorithms and displays a progress ba...
std::shared_ptr< IFunction > IFunction_sptr
shared pointer to the function base class
Definition IFunction.h:743